summaryrefslogtreecommitdiff
path: root/services/surfaceflinger/RegionSamplingThread.cpp
diff options
context:
space:
mode:
author Melody Hsu <melodymhsu@google.com> 2024-05-03 01:25:50 +0000
committer Melody Hsu <melodymhsu@google.com> 2024-05-06 22:34:48 +0000
commit41ade202bb683797beaa64e3459a69952ce1f0bc (patch)
tree8b4cce20ab36dc777d850df0962911df8a827d31 /services/surfaceflinger/RegionSamplingThread.cpp
parentd50d517fb36c05ee2a877a3684fb1d3ff6e273c2 (diff)
Wrap RenderArea creation in a builder pattern
Use a builder to pass around parameters used for RenderArea creation. This allows more flexibility for when the RenderArea is created, which aids in the overall goal of reducing the number of SF main thread hops during screenshots. Creating a builder will allow the render area to later be passed into captureScreenCommon() without being wrapped in a future. Bug: b/294936197 Test: atest SurfaceFlinger_test Change-Id: I9545e02af42c7e6cd9b0c328e2ecce995811f2d7
Diffstat (limited to 'services/surfaceflinger/RegionSamplingThread.cpp')
-rw-r--r--services/surfaceflinger/RegionSamplingThread.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/services/surfaceflinger/RegionSamplingThread.cpp b/services/surfaceflinger/RegionSamplingThread.cpp
index 77e045d6f9..2ec20ad5c2 100644
--- a/services/surfaceflinger/RegionSamplingThread.cpp
+++ b/services/surfaceflinger/RegionSamplingThread.cpp
@@ -42,6 +42,7 @@
#include "DisplayRenderArea.h"
#include "FrontEnd/LayerCreationArgs.h"
#include "Layer.h"
+#include "RenderAreaBuilder.h"
#include "Scheduler/VsyncController.h"
#include "SurfaceFlinger.h"
@@ -279,8 +280,11 @@ void RegionSamplingThread::captureSample() {
constexpr bool kHintForSeamlessTransition = false;
SurfaceFlinger::RenderAreaFuture renderAreaFuture = ftl::defer([=] {
- return DisplayRenderArea::create(displayWeak, sampledBounds, sampledBounds.getSize(),
- ui::Dataspace::V0_SRGB, kHintForSeamlessTransition);
+ DisplayRenderAreaBuilder displayRenderArea(sampledBounds, sampledBounds.getSize(),
+ ui::Dataspace::V0_SRGB,
+ kHintForSeamlessTransition,
+ true /* captureSecureLayers */, displayWeak);
+ return displayRenderArea.build();
});
std::unordered_set<sp<IRegionSamplingListener>, SpHash<IRegionSamplingListener>> listeners;