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

Commit 8a405095 authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 7580922 from 4d56aeed to sc-d1-release

Change-Id: I5c66dc85665c902c35cf8a9068a3c6768ac8faa4
parents 4a0260dd 4d56aeed
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -218,6 +218,7 @@ void CachedSet::render(renderengine::RenderEngine& renderEngine, TexturePool& te
    }

    renderengine::LayerSettings holePunchSettings;
    renderengine::LayerSettings holePunchBackgroundSettings;
    if (mHolePunchLayer) {
        auto clientCompositionList =
                mHolePunchLayer->getOutputLayer()->getLayerFE().prepareClientCompositionList(
@@ -232,6 +233,15 @@ void CachedSet::render(renderengine::RenderEngine& renderEngine, TexturePool& te
        holePunchSettings.alpha = 0.0f;
        holePunchSettings.name = std::string("hole punch layer");
        layerSettingsPointers.push_back(&holePunchSettings);

        // Add a solid background as the first layer in case there is no opaque
        // buffer behind the punch hole
        holePunchBackgroundSettings.alpha = 1.0f;
        holePunchBackgroundSettings.name = std::string("holePunchBackground");
        holePunchBackgroundSettings.geometry.boundaries = holePunchSettings.geometry.boundaries;
        holePunchBackgroundSettings.geometry.positionTransform =
                holePunchSettings.geometry.positionTransform;
        layerSettingsPointers.insert(layerSettingsPointers.begin(), &holePunchBackgroundSettings);
    }

    if (sDebugHighlighLayers) {
+33 −12
Original line number Diff line number Diff line
@@ -656,12 +656,22 @@ TEST_F(CachedSetTest, addHolePunch) {
                                base::unique_fd&&, base::unique_fd*) -> size_t {
        // If the highlight layer is enabled, it will increase the size by 1.
        // We're interested in the third layer either way.
        EXPECT_GE(layers.size(), 3u);
        const auto* holePunchSettings = layers[2];
        EXPECT_GE(layers.size(), 4u);
        {
            const auto* holePunchSettings = layers[3];
            EXPECT_EQ(nullptr, holePunchSettings->source.buffer.buffer);
            EXPECT_EQ(half3(0.0f, 0.0f, 0.0f), holePunchSettings->source.solidColor);
            EXPECT_TRUE(holePunchSettings->disableBlending);
            EXPECT_EQ(0.0f, holePunchSettings->alpha);
        }

        {
            const auto* holePunchBackgroundSettings = layers[0];
            EXPECT_EQ(nullptr, holePunchBackgroundSettings->source.buffer.buffer);
            EXPECT_EQ(half3(0.0f, 0.0f, 0.0f), holePunchBackgroundSettings->source.solidColor);
            EXPECT_FALSE(holePunchBackgroundSettings->disableBlending);
            EXPECT_EQ(1.0f, holePunchBackgroundSettings->alpha);
        }

        return NO_ERROR;
    };
@@ -706,12 +716,23 @@ TEST_F(CachedSetTest, addHolePunch_noBuffer) {
                                base::unique_fd&&, base::unique_fd*) -> size_t {
        // If the highlight layer is enabled, it will increase the size by 1.
        // We're interested in the third layer either way.
        EXPECT_GE(layers.size(), 3u);
        const auto* holePunchSettings = layers[2];
        EXPECT_GE(layers.size(), 4u);

        {
            const auto* holePunchSettings = layers[3];
            EXPECT_EQ(nullptr, holePunchSettings->source.buffer.buffer);
            EXPECT_EQ(half3(0.0f, 0.0f, 0.0f), holePunchSettings->source.solidColor);
            EXPECT_TRUE(holePunchSettings->disableBlending);
            EXPECT_EQ(0.0f, holePunchSettings->alpha);
        }

        {
            const auto* holePunchBackgroundSettings = layers[0];
            EXPECT_EQ(nullptr, holePunchBackgroundSettings->source.buffer.buffer);
            EXPECT_EQ(half3(0.0f, 0.0f, 0.0f), holePunchBackgroundSettings->source.solidColor);
            EXPECT_FALSE(holePunchBackgroundSettings->disableBlending);
            EXPECT_EQ(1.0f, holePunchBackgroundSettings->alpha);
        }

        return NO_ERROR;
    };