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

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

Merge "Fix ownership for RenderArea in screenshots." into main

parents 5bfedbb8 37973d9a
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -7648,7 +7648,7 @@ ftl::SharedFuture<FenceResult> SurfaceFlinger::captureScreenshot(

    if (hdrBuffer && gainmapBuffer) {
        ftl::SharedFuture<FenceResult> hdrRenderFuture =
                renderScreenImpl(renderArea.get(), hdrBuffer, regionSampling, grayscale,
                renderScreenImpl(std::move(renderArea), hdrBuffer, regionSampling, grayscale,
                                 isProtected, captureResults, displayState, layers);
        captureResults.buffer = buffer->getBuffer();
        captureResults.optionalGainMap = gainmapBuffer->getBuffer();
@@ -7672,7 +7672,7 @@ ftl::SharedFuture<FenceResult> SurfaceFlinger::captureScreenshot(
                        })
                        .share();
    } else {
        renderFuture = renderScreenImpl(renderArea.get(), buffer, regionSampling, grayscale,
        renderFuture = renderScreenImpl(std::move(renderArea), buffer, regionSampling, grayscale,
                                        isProtected, captureResults, displayState, layers);
    }

@@ -7693,7 +7693,8 @@ ftl::SharedFuture<FenceResult> SurfaceFlinger::captureScreenshot(
}

ftl::SharedFuture<FenceResult> SurfaceFlinger::renderScreenImpl(
        const RenderArea* renderArea, const std::shared_ptr<renderengine::ExternalTexture>& buffer,
        std::unique_ptr<const RenderArea> renderArea,
        const std::shared_ptr<renderengine::ExternalTexture>& buffer,
        bool regionSampling, bool grayscale, bool isProtected, ScreenCaptureResults& captureResults,
        const std::optional<OutputCompositionState>& displayState,
        const std::vector<std::pair<Layer*, sp<LayerFE>>>& layers) {
+2 −1
Original line number Diff line number Diff line
@@ -894,7 +894,8 @@ private:
            const std::shared_ptr<renderengine::ExternalTexture>& gainmapBuffer = nullptr);

    ftl::SharedFuture<FenceResult> renderScreenImpl(
            const RenderArea*, const std::shared_ptr<renderengine::ExternalTexture>&,
            std::unique_ptr<const RenderArea> renderArea,
            const std::shared_ptr<renderengine::ExternalTexture>&,
            bool regionSampling, bool grayscale, bool isProtected, ScreenCaptureResults&,
            const std::optional<OutputCompositionState>& displayState,
            const std::vector<std::pair<Layer*, sp<LayerFE>>>& layers);
+1 −1
Original line number Diff line number Diff line
@@ -473,7 +473,7 @@ public:
        auto displayState = std::optional{display->getCompositionDisplay()->getState()};
        auto layers = getLayerSnapshotsFn();

        return mFlinger->renderScreenImpl(renderArea.get(), buffer, regionSampling,
        return mFlinger->renderScreenImpl(std::move(renderArea), buffer, regionSampling,
                                          false /* grayscale */, false /* isProtected */,
                                          captureResults, displayState, layers);
    }