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

Commit a70acde2 authored by Alec Mouri's avatar Alec Mouri Committed by Android (Google) Code Review
Browse files

Merge "Respect buffer rotation in OutputLayer's filtering test" into main

parents 29911e57 b6d78937
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -844,10 +844,16 @@ void OutputLayer::applyDeviceLayerRequest(hal::LayerRequest request) {

bool OutputLayer::needsFiltering() const {
    const auto& state = getState();
    const auto& displayFrame = state.displayFrame;
    const auto& sourceCrop = state.sourceCrop;
    return sourceCrop.getHeight() != displayFrame.getHeight() ||
            sourceCrop.getWidth() != displayFrame.getWidth();
    auto displayFrameWidth = static_cast<float>(state.displayFrame.getWidth());
    auto displayFrameHeight = static_cast<float>(state.displayFrame.getHeight());

    if (state.bufferTransform & HAL_TRANSFORM_ROT_90) {
        std::swap(displayFrameWidth, displayFrameHeight);
    }

    return sourceCrop.getHeight() != displayFrameHeight ||
            sourceCrop.getWidth() != displayFrameWidth;
}

std::optional<LayerFE::LayerSettings> OutputLayer::getOverrideCompositionSettings() const {
+15 −0
Original line number Diff line number Diff line
@@ -1614,5 +1614,20 @@ TEST_F(OutputLayerTest, needsFilteringReturnsTrueIfDisplaySizeDifferentFromSourc
    EXPECT_TRUE(mOutputLayer.needsFiltering());
}

TEST_F(OutputLayerTest, needsFilteringReturnsFalseIfRotatedDisplaySizeSameAsSourceSize) {
    mOutputLayer.editState().displayFrame = Rect(100, 100, 300, 200);
    mOutputLayer.editState().sourceCrop = FloatRect{0.f, 0.f, 100.f, 200.f};
    mOutputLayer.editState().bufferTransform = Hwc2::Transform::ROT_90;

    EXPECT_FALSE(mOutputLayer.needsFiltering());
}

TEST_F(OutputLayerTest, needsFilteringReturnsTrueIfRotatedDisplaySizeDiffersFromSourceSize) {
    mOutputLayer.editState().displayFrame = Rect(100, 100, 300, 200);
    mOutputLayer.editState().sourceCrop = FloatRect{0.f, 0.f, 100.f, 200.f};

    EXPECT_TRUE(mOutputLayer.needsFiltering());
}

} // namespace
} // namespace android::compositionengine