From d24328904823a47edc328d2dceb167f73f74850b Mon Sep 17 00:00:00 2001 From: chaviw Date: Fri, 24 Jul 2020 17:42:39 -0700 Subject: Use DisplayCaptureArgs for displayCapture functions. Updated displayCapture functions to use the DisplayCaptureArgs and ScreenCaptureResults instead of the list of arguments and out arguments. This only updated the native code, not JNI or Java Test: display screenshot + secure works Test: adb shell screencap Test: SurfaceFlinger_test Bug: 162367424 Change-Id: I5210a0881c96436c128c3ffb328a5a6ee01beca7 --- libs/gui/SurfaceComposerClient.cpp | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) (limited to 'libs/gui/SurfaceComposerClient.cpp') diff --git a/libs/gui/SurfaceComposerClient.cpp b/libs/gui/SurfaceComposerClient.cpp index 229a5c2e62..2982a99859 100644 --- a/libs/gui/SurfaceComposerClient.cpp +++ b/libs/gui/SurfaceComposerClient.cpp @@ -1922,19 +1922,31 @@ status_t SurfaceComposerClient::setGlobalShadowSettings(const half4& ambientColo // ---------------------------------------------------------------------------- -status_t ScreenshotClient::capture(const sp& display, ui::Dataspace reqDataSpace, +status_t ScreenshotClient::capture(const sp& display, ui::Dataspace /* reqDataspace */, ui::PixelFormat reqPixelFormat, const Rect& sourceCrop, uint32_t reqWidth, uint32_t reqHeight, bool useIdentityTransform, ui::Rotation rotation, bool captureSecureLayers, sp* outBuffer, bool& outCapturedSecureLayers) { sp s(ComposerService::getComposerService()); if (s == nullptr) return NO_INIT; - status_t ret = s->captureScreen(display, outBuffer, outCapturedSecureLayers, reqDataSpace, - reqPixelFormat, sourceCrop, reqWidth, reqHeight, - useIdentityTransform, rotation, captureSecureLayers); + + DisplayCaptureArgs args; + args.displayToken = display; + args.pixelFormat = reqPixelFormat; + args.sourceCrop = sourceCrop; + args.width = reqWidth; + args.height = reqHeight; + args.useIdentityTransform = useIdentityTransform; + args.rotation = rotation; + args.captureSecureLayers = captureSecureLayers; + + ScreenCaptureResults captureResults; + status_t ret = s->captureDisplay(args, captureResults); if (ret != NO_ERROR) { return ret; } + *outBuffer = captureResults.buffer; + outCapturedSecureLayers = captureResults.capturedSecureLayers; return ret; } @@ -1951,7 +1963,11 @@ status_t ScreenshotClient::capture(uint64_t displayOrLayerStack, ui::Dataspace* sp* outBuffer) { sp s(ComposerService::getComposerService()); if (s == nullptr) return NO_INIT; - return s->captureScreen(displayOrLayerStack, outDataspace, outBuffer); + ScreenCaptureResults captureResults; + status_t ret = s->captureDisplay(displayOrLayerStack, captureResults); + *outBuffer = captureResults.buffer; + *outDataspace = captureResults.capturedDataspace; + return ret; } status_t ScreenshotClient::captureLayers(const sp& layerHandle, ui::Dataspace reqDataSpace, -- cgit v1.2.3-59-g8ed1b