diff options
author | 2020-09-11 16:10:26 +0000 | |
---|---|---|
committer | 2020-09-11 16:10:26 +0000 | |
commit | ac4ce2a34d4433f836b2f616a18d9d6961d013f5 (patch) | |
tree | f196acc82e52093f713aed29c2d69c072be1c30d /services/surfaceflinger/RegionSamplingThread.cpp | |
parent | b1a3a81748d6388d9e15875e375abe57da857665 (diff) | |
parent | 99eeeb8ddb1613fbc688bd37ebdaf8b66d105eed (diff) |
Merge "Revert "Update screen capture functions to accept a ScreenCaptur...""
Diffstat (limited to 'services/surfaceflinger/RegionSamplingThread.cpp')
-rw-r--r-- | services/surfaceflinger/RegionSamplingThread.cpp | 17 |
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); |