summaryrefslogtreecommitdiff
path: root/services/surfaceflinger/RegionSamplingThread.cpp
diff options
context:
space:
mode:
author Chavi Weingarten <chaviw@google.com> 2020-09-10 20:55:11 +0000
committer Chavi Weingarten <chaviw@google.com> 2020-09-10 23:02:56 +0000
commit99eeeb8ddb1613fbc688bd37ebdaf8b66d105eed (patch)
tree0d555f8b204af9d1b6f0c72fac63bb2465a3012d /services/surfaceflinger/RegionSamplingThread.cpp
parentdcafa8d51740854c4d67fd12706e38db53a27afc (diff)
Revert "Update screen capture functions to accept a ScreenCaptur..."
Revert submission 12404049-async_screencapture Reason for revert: 168149157, 168154840 Reverted Changes: I54c34003c:Send ScreenCaptureListener to native screen captur... I9cbc833f8:Update screen capture functions to accept a Screen... Change-Id: Ib5eacad84b794897173516e7d29b9af1eecace60 Bug: 168149157 Bug: 168154840
Diffstat (limited to 'services/surfaceflinger/RegionSamplingThread.cpp')
-rw-r--r--services/surfaceflinger/RegionSamplingThread.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/services/surfaceflinger/RegionSamplingThread.cpp b/services/surfaceflinger/RegionSamplingThread.cpp
index 4dc20c44b8..a2fc6925b8 100644
--- a/services/surfaceflinger/RegionSamplingThread.cpp
+++ b/services/surfaceflinger/RegionSamplingThread.cpp
@@ -29,7 +29,6 @@
#include <compositionengine/impl/OutputCompositionState.h>
#include <cutils/properties.h>
#include <gui/IRegionSamplingListener.h>
-#include <gui/SyncScreenCaptureListener.h>
#include <ui/DisplayStatInfo.h>
#include <utils/Trace.h>
@@ -447,6 +446,22 @@ void RegionSamplingThread::captureSample() {
PIXEL_FORMAT_RGBA_8888, 1, usage, "RegionSamplingThread");
}
+ class SyncScreenCaptureListener : public BnScreenCaptureListener {
+ public:
+ status_t onScreenCaptureComplete(const ScreenCaptureResults& captureResults) override {
+ resultsPromise.set_value(captureResults);
+ return NO_ERROR;
+ }
+
+ ScreenCaptureResults waitForResults() {
+ std::future<ScreenCaptureResults> resultsFuture = resultsPromise.get_future();
+ return resultsFuture.get();
+ }
+
+ private:
+ std::promise<ScreenCaptureResults> resultsPromise;
+ };
+
const sp<SyncScreenCaptureListener> captureListener = new SyncScreenCaptureListener();
mFlinger.captureScreenCommon(std::move(renderAreaFuture), traverseLayers, buffer,
true /* regionSampling */, captureListener);