From e7b9f278d924e10d53336e4c0a9bb6b11352a087 Mon Sep 17 00:00:00 2001 From: chaviw Date: Tue, 18 Aug 2020 16:08:59 -0700 Subject: Update screen capture functions to accept a ScreenCaptureListener Move all screen capture functions to be asynchronous. The screen capture functions will no longer wait for screenshot results and will return immediately. Test: adb shell screencap Test: power + volume down Bug: 162367424 Change-Id: I0fd32ede58d3d0a858fc0ce4aae058b9a9234c00 --- services/surfaceflinger/RegionSamplingThread.cpp | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) (limited to 'services/surfaceflinger/RegionSamplingThread.cpp') diff --git a/services/surfaceflinger/RegionSamplingThread.cpp b/services/surfaceflinger/RegionSamplingThread.cpp index a2fc6925b8..4dc20c44b8 100644 --- a/services/surfaceflinger/RegionSamplingThread.cpp +++ b/services/surfaceflinger/RegionSamplingThread.cpp @@ -29,6 +29,7 @@ #include #include #include +#include #include #include @@ -446,22 +447,6 @@ 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 resultsFuture = resultsPromise.get_future(); - return resultsFuture.get(); - } - - private: - std::promise resultsPromise; - }; - const sp captureListener = new SyncScreenCaptureListener(); mFlinger.captureScreenCommon(std::move(renderAreaFuture), traverseLayers, buffer, true /* regionSampling */, captureListener); -- cgit v1.2.3-59-g8ed1b