diff options
| author | 2019-01-09 20:57:54 +0000 | |
|---|---|---|
| committer | 2019-01-09 20:57:54 +0000 | |
| commit | 5d5004925e833f08b1c5bcc5be1158c2e280b03b (patch) | |
| tree | 5bec4278c0f49f101cca1d456ac62b63dbb4f355 /libs/gui/SurfaceComposerClient.cpp | |
| parent | 717e1ad9f623811cd19f68228941c31dc2bb9065 (diff) | |
| parent | e14cb784b4384379f21e1369fbc4a44e9a7df068 (diff) | |
Merge changes Ife4b9b7c,Id05ac58a
* changes:
blast: Add composer overlay flag to AHardwareBuffer
blast: create SurfaceControl from Surface parent
Diffstat (limited to 'libs/gui/SurfaceComposerClient.cpp')
| -rw-r--r-- | libs/gui/SurfaceComposerClient.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/libs/gui/SurfaceComposerClient.cpp b/libs/gui/SurfaceComposerClient.cpp index 824e43fb07..cee9153cf3 100644 --- a/libs/gui/SurfaceComposerClient.cpp +++ b/libs/gui/SurfaceComposerClient.cpp @@ -972,6 +972,29 @@ sp<SurfaceControl> SurfaceComposerClient::createSurface( return s; } +sp<SurfaceControl> SurfaceComposerClient::createWithSurfaceParent(const String8& name, uint32_t w, + uint32_t h, PixelFormat format, + uint32_t flags, Surface* parent, + int32_t windowType, + int32_t ownerUid) { + sp<SurfaceControl> sur; + status_t err = mStatus; + + if (mStatus == NO_ERROR) { + sp<IBinder> handle; + sp<IGraphicBufferProducer> parentGbp = parent->getIGraphicBufferProducer(); + sp<IGraphicBufferProducer> gbp; + + err = mClient->createWithSurfaceParent(name, w, h, format, flags, parentGbp, windowType, + ownerUid, &handle, &gbp); + ALOGE_IF(err, "SurfaceComposerClient::createWithSurfaceParent error %s", strerror(-err)); + if (err == NO_ERROR) { + return new SurfaceControl(this, handle, gbp, true /* owned */); + } + } + return nullptr; +} + status_t SurfaceComposerClient::createSurfaceChecked( const String8& name, uint32_t w, @@ -1134,6 +1157,7 @@ status_t SurfaceComposerClient::getDisplayedContentSample(const sp<IBinder>& dis return ComposerService::getComposerService()->getDisplayedContentSample(display, maxFrames, timestamp, outStats); } + // ---------------------------------------------------------------------------- status_t ScreenshotClient::capture(const sp<IBinder>& display, const ui::Dataspace reqDataSpace, |