Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7ad7afab authored by Ram Indani's avatar Ram Indani Committed by Automerger Merge Worker
Browse files

Merge "Use the primaryDisplayRotationFlags for the source crop calculation"...

Merge "Use the primaryDisplayRotationFlags for the source crop calculation" into tm-dev am: cd6ebf35 am: 8e945b70

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/17665899



Change-Id: I62b43bb48775a3ad8beb4918a9df65ea94f5996e
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 39bd8733 8e945b70
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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;
+3 −5
Original line number Diff line number Diff line
@@ -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 {};
@@ -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;
@@ -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));

+4 −3
Original line number Diff line number Diff line
@@ -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);
    }
};

@@ -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));

@@ -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))