diff options
| author | 2020-07-24 17:42:39 -0700 | |
|---|---|---|
| committer | 2020-07-30 16:53:13 -0700 | |
| commit | d24328904823a47edc328d2dceb167f73f74850b (patch) | |
| tree | 09bb583e20485187620517a7666a24c71697dbab /libs/gui/SurfaceComposerClient.cpp | |
| parent | 6278ece89a4745141d9fc83d2affffa40614db22 (diff) | |
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
Diffstat (limited to 'libs/gui/SurfaceComposerClient.cpp')
| -rw-r--r-- | libs/gui/SurfaceComposerClient.cpp | 26 |
1 files changed, 21 insertions, 5 deletions
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<IBinder>& display, ui::Dataspace reqDataSpace, +status_t ScreenshotClient::capture(const sp<IBinder>& display, ui::Dataspace /* reqDataspace */, ui::PixelFormat reqPixelFormat, const Rect& sourceCrop, uint32_t reqWidth, uint32_t reqHeight, bool useIdentityTransform, ui::Rotation rotation, bool captureSecureLayers, sp<GraphicBuffer>* outBuffer, bool& outCapturedSecureLayers) { sp<ISurfaceComposer> 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<GraphicBuffer>* outBuffer) { sp<ISurfaceComposer> 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<IBinder>& layerHandle, ui::Dataspace reqDataSpace, |