Loading services/surfaceflinger/CompositionEngine/include/compositionengine/impl/OutputLayer.h +1 −1 Original line number Diff line number Diff line Loading @@ -60,7 +60,7 @@ public: std::vector<LayerFE::LayerSettings> getOverrideCompositionList() const override; void dump(std::string&) const override; virtual FloatRect calculateOutputSourceCrop() const; virtual FloatRect calculateOutputSourceCrop(uint32_t internalDisplayRotationFlags) const; virtual Rect calculateOutputDisplayFrame() const; virtual uint32_t calculateOutputRelativeBufferTransform( uint32_t internalDisplayRotationFlags) const; Loading services/surfaceflinger/CompositionEngine/src/OutputLayer.cpp +3 −5 Original line number Diff line number Diff line Loading @@ -106,9 +106,8 @@ Rect OutputLayer::calculateInitialCrop() const { return activeCrop; } FloatRect OutputLayer::calculateOutputSourceCrop() const { FloatRect OutputLayer::calculateOutputSourceCrop(uint32_t internalDisplayRotationFlags) const { const auto& layerState = *getLayerFE().getCompositionState(); const auto& outputState = getOutput().getState(); if (!layerState.geomUsesSourceCrop) { return {}; Loading Loading @@ -140,8 +139,7 @@ FloatRect OutputLayer::calculateOutputSourceCrop() const { * the code below applies the primary display's inverse transform to the * buffer */ uint32_t invTransformOrient = ui::Transform::toRotationFlags(outputState.displaySpace.getOrientation()); uint32_t invTransformOrient = internalDisplayRotationFlags; // calculate the inverse transform if (invTransformOrient & HAL_TRANSFORM_ROT_90) { invTransformOrient ^= HAL_TRANSFORM_FLIP_V | HAL_TRANSFORM_FLIP_H; Loading Loading @@ -304,7 +302,7 @@ void OutputLayer::updateCompositionState( state.forceClientComposition = false; state.displayFrame = calculateOutputDisplayFrame(); state.sourceCrop = calculateOutputSourceCrop(); state.sourceCrop = calculateOutputSourceCrop(internalDisplayRotationFlags); state.bufferTransform = static_cast<Hwc2::Transform>( calculateOutputRelativeBufferTransform(internalDisplayRotationFlags)); Loading services/surfaceflinger/CompositionEngine/tests/OutputLayerTest.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -169,7 +169,7 @@ struct OutputLayerSourceCropTest : public OutputLayerTest { FloatRect calculateOutputSourceCrop() { mLayerFEState.geomInverseLayerTransform = mLayerFEState.geomLayerTransform.inverse(); return mOutputLayer.calculateOutputSourceCrop(); return mOutputLayer.calculateOutputSourceCrop(ui::Transform::RotationFlags::ROT_0); } }; Loading Loading @@ -533,7 +533,7 @@ struct OutputLayerPartialMockForUpdateCompositionState : public impl::OutputLaye sp<compositionengine::LayerFE> layerFE) : mOutput(output), mLayerFE(layerFE) {} // Mock everything called by updateCompositionState to simplify testing it. MOCK_CONST_METHOD0(calculateOutputSourceCrop, FloatRect()); MOCK_CONST_METHOD1(calculateOutputSourceCrop, FloatRect(uint32_t)); MOCK_CONST_METHOD0(calculateOutputDisplayFrame, Rect()); MOCK_CONST_METHOD1(calculateOutputRelativeBufferTransform, uint32_t(uint32_t)); Loading Loading @@ -563,7 +563,8 @@ public: ~OutputLayerUpdateCompositionStateTest() = default; void setupGeometryChildCallValues(ui::Transform::RotationFlags internalDisplayRotationFlags) { EXPECT_CALL(mOutputLayer, calculateOutputSourceCrop()).WillOnce(Return(kSourceCrop)); EXPECT_CALL(mOutputLayer, calculateOutputSourceCrop(internalDisplayRotationFlags)) .WillOnce(Return(kSourceCrop)); EXPECT_CALL(mOutputLayer, calculateOutputDisplayFrame()).WillOnce(Return(kDisplayFrame)); EXPECT_CALL(mOutputLayer, calculateOutputRelativeBufferTransform(internalDisplayRotationFlags)) Loading Loading
services/surfaceflinger/CompositionEngine/include/compositionengine/impl/OutputLayer.h +1 −1 Original line number Diff line number Diff line Loading @@ -60,7 +60,7 @@ public: std::vector<LayerFE::LayerSettings> getOverrideCompositionList() const override; void dump(std::string&) const override; virtual FloatRect calculateOutputSourceCrop() const; virtual FloatRect calculateOutputSourceCrop(uint32_t internalDisplayRotationFlags) const; virtual Rect calculateOutputDisplayFrame() const; virtual uint32_t calculateOutputRelativeBufferTransform( uint32_t internalDisplayRotationFlags) const; Loading
services/surfaceflinger/CompositionEngine/src/OutputLayer.cpp +3 −5 Original line number Diff line number Diff line Loading @@ -106,9 +106,8 @@ Rect OutputLayer::calculateInitialCrop() const { return activeCrop; } FloatRect OutputLayer::calculateOutputSourceCrop() const { FloatRect OutputLayer::calculateOutputSourceCrop(uint32_t internalDisplayRotationFlags) const { const auto& layerState = *getLayerFE().getCompositionState(); const auto& outputState = getOutput().getState(); if (!layerState.geomUsesSourceCrop) { return {}; Loading Loading @@ -140,8 +139,7 @@ FloatRect OutputLayer::calculateOutputSourceCrop() const { * the code below applies the primary display's inverse transform to the * buffer */ uint32_t invTransformOrient = ui::Transform::toRotationFlags(outputState.displaySpace.getOrientation()); uint32_t invTransformOrient = internalDisplayRotationFlags; // calculate the inverse transform if (invTransformOrient & HAL_TRANSFORM_ROT_90) { invTransformOrient ^= HAL_TRANSFORM_FLIP_V | HAL_TRANSFORM_FLIP_H; Loading Loading @@ -304,7 +302,7 @@ void OutputLayer::updateCompositionState( state.forceClientComposition = false; state.displayFrame = calculateOutputDisplayFrame(); state.sourceCrop = calculateOutputSourceCrop(); state.sourceCrop = calculateOutputSourceCrop(internalDisplayRotationFlags); state.bufferTransform = static_cast<Hwc2::Transform>( calculateOutputRelativeBufferTransform(internalDisplayRotationFlags)); Loading
services/surfaceflinger/CompositionEngine/tests/OutputLayerTest.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -169,7 +169,7 @@ struct OutputLayerSourceCropTest : public OutputLayerTest { FloatRect calculateOutputSourceCrop() { mLayerFEState.geomInverseLayerTransform = mLayerFEState.geomLayerTransform.inverse(); return mOutputLayer.calculateOutputSourceCrop(); return mOutputLayer.calculateOutputSourceCrop(ui::Transform::RotationFlags::ROT_0); } }; Loading Loading @@ -533,7 +533,7 @@ struct OutputLayerPartialMockForUpdateCompositionState : public impl::OutputLaye sp<compositionengine::LayerFE> layerFE) : mOutput(output), mLayerFE(layerFE) {} // Mock everything called by updateCompositionState to simplify testing it. MOCK_CONST_METHOD0(calculateOutputSourceCrop, FloatRect()); MOCK_CONST_METHOD1(calculateOutputSourceCrop, FloatRect(uint32_t)); MOCK_CONST_METHOD0(calculateOutputDisplayFrame, Rect()); MOCK_CONST_METHOD1(calculateOutputRelativeBufferTransform, uint32_t(uint32_t)); Loading Loading @@ -563,7 +563,8 @@ public: ~OutputLayerUpdateCompositionStateTest() = default; void setupGeometryChildCallValues(ui::Transform::RotationFlags internalDisplayRotationFlags) { EXPECT_CALL(mOutputLayer, calculateOutputSourceCrop()).WillOnce(Return(kSourceCrop)); EXPECT_CALL(mOutputLayer, calculateOutputSourceCrop(internalDisplayRotationFlags)) .WillOnce(Return(kSourceCrop)); EXPECT_CALL(mOutputLayer, calculateOutputDisplayFrame()).WillOnce(Return(kDisplayFrame)); EXPECT_CALL(mOutputLayer, calculateOutputRelativeBufferTransform(internalDisplayRotationFlags)) Loading