Loading libs/gui/ISurfaceComposerClient.cpp +7 −6 Original line number Diff line number Diff line Loading @@ -49,13 +49,13 @@ public: status_t createSurface(const String8& name, uint32_t width, uint32_t height, PixelFormat format, uint32_t flags, const sp<IBinder>& parent, LayerMetadata metadata, sp<IBinder>* handle, sp<IGraphicBufferProducer>* gbp, sp<IBinder>* handle, sp<IGraphicBufferProducer>* gbp, int32_t* outId, uint32_t* outTransformHint) override { return callRemote<decltype(&ISurfaceComposerClient::createSurface)>(Tag::CREATE_SURFACE, name, width, height, format, flags, parent, std::move(metadata), handle, gbp, handle, gbp, outId, outTransformHint); } Loading @@ -63,14 +63,14 @@ public: PixelFormat format, uint32_t flags, const sp<IGraphicBufferProducer>& parent, LayerMetadata metadata, sp<IBinder>* handle, sp<IGraphicBufferProducer>* gbp, sp<IGraphicBufferProducer>* gbp, int32_t* outId, uint32_t* outTransformHint) override { return callRemote<decltype( &ISurfaceComposerClient::createWithSurfaceParent)>(Tag::CREATE_WITH_SURFACE_PARENT, name, width, height, format, flags, parent, std::move(metadata), handle, gbp, outTransformHint); outId, outTransformHint); } status_t clearLayerFrameStats(const sp<IBinder>& handle) const override { Loading @@ -85,10 +85,11 @@ public: outStats); } status_t mirrorSurface(const sp<IBinder>& mirrorFromHandle, sp<IBinder>* outHandle) override { status_t mirrorSurface(const sp<IBinder>& mirrorFromHandle, sp<IBinder>* outHandle, int32_t* outId) override { return callRemote<decltype(&ISurfaceComposerClient::mirrorSurface)>(Tag::MIRROR_SURFACE, mirrorFromHandle, outHandle); outHandle, outId); } }; Loading libs/gui/SurfaceComposerClient.cpp +8 −3 Original line number Diff line number Diff line Loading @@ -1669,8 +1669,10 @@ sp<SurfaceControl> SurfaceComposerClient::createWithSurfaceParent(const String8& sp<IGraphicBufferProducer> gbp; uint32_t transformHint = 0; int32_t id = -1; err = mClient->createWithSurfaceParent(name, w, h, format, flags, parentGbp, std::move(metadata), &handle, &gbp, &transformHint); std::move(metadata), &handle, &gbp, &id, &transformHint); if (outTransformHint) { *outTransformHint = transformHint; } Loading Loading @@ -1700,8 +1702,10 @@ status_t SurfaceComposerClient::createSurfaceChecked(const String8& name, uint32 } uint32_t transformHint = 0; int32_t id = -1; err = mClient->createSurface(name, w, h, format, flags, parentHandle, std::move(metadata), &handle, &gbp, &transformHint); &handle, &gbp, &id, &transformHint); if (outTransformHint) { *outTransformHint = transformHint; } Loading @@ -1720,7 +1724,8 @@ sp<SurfaceControl> SurfaceComposerClient::mirrorSurface(SurfaceControl* mirrorFr sp<IBinder> handle; sp<IBinder> mirrorFromHandle = mirrorFromSurface->getHandle(); status_t err = mClient->mirrorSurface(mirrorFromHandle, &handle); int32_t layer_id = -1; status_t err = mClient->mirrorSurface(mirrorFromHandle, &handle, &layer_id); if (err == NO_ERROR) { return new SurfaceControl(this, handle, nullptr, true /* owned */); } Loading libs/gui/include/gui/ISurfaceComposerClient.h +5 −3 Original line number Diff line number Diff line Loading @@ -58,7 +58,8 @@ public: virtual status_t createSurface(const String8& name, uint32_t w, uint32_t h, PixelFormat format, uint32_t flags, const sp<IBinder>& parent, LayerMetadata metadata, sp<IBinder>* handle, sp<IGraphicBufferProducer>* gbp, uint32_t* outTransformHint) = 0; sp<IGraphicBufferProducer>* gbp, int32_t* outId, uint32_t* outTransformHint) = 0; /* * Requires ACCESS_SURFACE_FLINGER permission Loading @@ -67,7 +68,7 @@ public: PixelFormat format, uint32_t flags, const sp<IGraphicBufferProducer>& parent, LayerMetadata metadata, sp<IBinder>* handle, sp<IGraphicBufferProducer>* gbp, sp<IGraphicBufferProducer>* gbp, int32_t* outId, uint32_t* outTransformHint) = 0; /* Loading @@ -80,7 +81,8 @@ public: */ virtual status_t getLayerFrameStats(const sp<IBinder>& handle, FrameStats* outStats) const = 0; virtual status_t mirrorSurface(const sp<IBinder>& mirrorFromHandle, sp<IBinder>* outHandle) = 0; virtual status_t mirrorSurface(const sp<IBinder>& mirrorFromHandle, sp<IBinder>* outHandle, int32_t* outId) = 0; }; class BnSurfaceComposerClient : public SafeBnInterface<ISurfaceComposerClient> { Loading services/surfaceflinger/Client.cpp +8 −6 Original line number Diff line number Diff line Loading @@ -79,17 +79,18 @@ sp<Layer> Client::getLayerUser(const sp<IBinder>& handle) const status_t Client::createSurface(const String8& name, uint32_t w, uint32_t h, PixelFormat format, uint32_t flags, const sp<IBinder>& parentHandle, LayerMetadata metadata, sp<IBinder>* handle, sp<IGraphicBufferProducer>* gbp, uint32_t* outTransformHint) { sp<IGraphicBufferProducer>* gbp, int32_t* outId, uint32_t* outTransformHint) { // We rely on createLayer to check permissions. return mFlinger->createLayer(name, this, w, h, format, flags, std::move(metadata), handle, gbp, parentHandle, nullptr, outTransformHint); parentHandle, nullptr, outId, outTransformHint); } status_t Client::createWithSurfaceParent(const String8& name, uint32_t w, uint32_t h, PixelFormat format, uint32_t flags, const sp<IGraphicBufferProducer>& parent, LayerMetadata metadata, sp<IBinder>* handle, sp<IGraphicBufferProducer>* gbp, sp<IGraphicBufferProducer>* gbp, int32_t* outId, uint32_t* outTransformHint) { if (mFlinger->authenticateSurfaceTexture(parent) == false) { ALOGE("failed to authenticate surface texture"); Loading @@ -103,11 +104,12 @@ status_t Client::createWithSurfaceParent(const String8& name, uint32_t w, uint32 } return mFlinger->createLayer(name, this, w, h, format, flags, std::move(metadata), handle, gbp, nullptr, layer, outTransformHint); nullptr, layer, outId, outTransformHint); } status_t Client::mirrorSurface(const sp<IBinder>& mirrorFromHandle, sp<IBinder>* outHandle) { return mFlinger->mirrorLayer(this, mirrorFromHandle, outHandle); status_t Client::mirrorSurface(const sp<IBinder>& mirrorFromHandle, sp<IBinder>* outHandle, int32_t* outId) { return mFlinger->mirrorLayer(this, mirrorFromHandle, outHandle, outId); } status_t Client::clearLayerFrameStats(const sp<IBinder>& handle) const { Loading services/surfaceflinger/Client.h +4 −3 Original line number Diff line number Diff line Loading @@ -50,17 +50,18 @@ private: virtual status_t createSurface(const String8& name, uint32_t w, uint32_t h, PixelFormat format, uint32_t flags, const sp<IBinder>& parent, LayerMetadata metadata, sp<IBinder>* handle, sp<IGraphicBufferProducer>* gbp, sp<IGraphicBufferProducer>* gbp, int32_t* outId, uint32_t* outTransformHint = nullptr); virtual status_t createWithSurfaceParent(const String8& name, uint32_t w, uint32_t h, PixelFormat format, uint32_t flags, const sp<IGraphicBufferProducer>& parent, LayerMetadata metadata, sp<IBinder>* handle, sp<IGraphicBufferProducer>* gbp, sp<IGraphicBufferProducer>* gbp, int32_t* outId, uint32_t* outTransformHint = nullptr); status_t mirrorSurface(const sp<IBinder>& mirrorFromHandle, sp<IBinder>* handle); status_t mirrorSurface(const sp<IBinder>& mirrorFromHandle, sp<IBinder>* handle, int32_t* outId); virtual status_t clearLayerFrameStats(const sp<IBinder>& handle) const; Loading Loading
libs/gui/ISurfaceComposerClient.cpp +7 −6 Original line number Diff line number Diff line Loading @@ -49,13 +49,13 @@ public: status_t createSurface(const String8& name, uint32_t width, uint32_t height, PixelFormat format, uint32_t flags, const sp<IBinder>& parent, LayerMetadata metadata, sp<IBinder>* handle, sp<IGraphicBufferProducer>* gbp, sp<IBinder>* handle, sp<IGraphicBufferProducer>* gbp, int32_t* outId, uint32_t* outTransformHint) override { return callRemote<decltype(&ISurfaceComposerClient::createSurface)>(Tag::CREATE_SURFACE, name, width, height, format, flags, parent, std::move(metadata), handle, gbp, handle, gbp, outId, outTransformHint); } Loading @@ -63,14 +63,14 @@ public: PixelFormat format, uint32_t flags, const sp<IGraphicBufferProducer>& parent, LayerMetadata metadata, sp<IBinder>* handle, sp<IGraphicBufferProducer>* gbp, sp<IGraphicBufferProducer>* gbp, int32_t* outId, uint32_t* outTransformHint) override { return callRemote<decltype( &ISurfaceComposerClient::createWithSurfaceParent)>(Tag::CREATE_WITH_SURFACE_PARENT, name, width, height, format, flags, parent, std::move(metadata), handle, gbp, outTransformHint); outId, outTransformHint); } status_t clearLayerFrameStats(const sp<IBinder>& handle) const override { Loading @@ -85,10 +85,11 @@ public: outStats); } status_t mirrorSurface(const sp<IBinder>& mirrorFromHandle, sp<IBinder>* outHandle) override { status_t mirrorSurface(const sp<IBinder>& mirrorFromHandle, sp<IBinder>* outHandle, int32_t* outId) override { return callRemote<decltype(&ISurfaceComposerClient::mirrorSurface)>(Tag::MIRROR_SURFACE, mirrorFromHandle, outHandle); outHandle, outId); } }; Loading
libs/gui/SurfaceComposerClient.cpp +8 −3 Original line number Diff line number Diff line Loading @@ -1669,8 +1669,10 @@ sp<SurfaceControl> SurfaceComposerClient::createWithSurfaceParent(const String8& sp<IGraphicBufferProducer> gbp; uint32_t transformHint = 0; int32_t id = -1; err = mClient->createWithSurfaceParent(name, w, h, format, flags, parentGbp, std::move(metadata), &handle, &gbp, &transformHint); std::move(metadata), &handle, &gbp, &id, &transformHint); if (outTransformHint) { *outTransformHint = transformHint; } Loading Loading @@ -1700,8 +1702,10 @@ status_t SurfaceComposerClient::createSurfaceChecked(const String8& name, uint32 } uint32_t transformHint = 0; int32_t id = -1; err = mClient->createSurface(name, w, h, format, flags, parentHandle, std::move(metadata), &handle, &gbp, &transformHint); &handle, &gbp, &id, &transformHint); if (outTransformHint) { *outTransformHint = transformHint; } Loading @@ -1720,7 +1724,8 @@ sp<SurfaceControl> SurfaceComposerClient::mirrorSurface(SurfaceControl* mirrorFr sp<IBinder> handle; sp<IBinder> mirrorFromHandle = mirrorFromSurface->getHandle(); status_t err = mClient->mirrorSurface(mirrorFromHandle, &handle); int32_t layer_id = -1; status_t err = mClient->mirrorSurface(mirrorFromHandle, &handle, &layer_id); if (err == NO_ERROR) { return new SurfaceControl(this, handle, nullptr, true /* owned */); } Loading
libs/gui/include/gui/ISurfaceComposerClient.h +5 −3 Original line number Diff line number Diff line Loading @@ -58,7 +58,8 @@ public: virtual status_t createSurface(const String8& name, uint32_t w, uint32_t h, PixelFormat format, uint32_t flags, const sp<IBinder>& parent, LayerMetadata metadata, sp<IBinder>* handle, sp<IGraphicBufferProducer>* gbp, uint32_t* outTransformHint) = 0; sp<IGraphicBufferProducer>* gbp, int32_t* outId, uint32_t* outTransformHint) = 0; /* * Requires ACCESS_SURFACE_FLINGER permission Loading @@ -67,7 +68,7 @@ public: PixelFormat format, uint32_t flags, const sp<IGraphicBufferProducer>& parent, LayerMetadata metadata, sp<IBinder>* handle, sp<IGraphicBufferProducer>* gbp, sp<IGraphicBufferProducer>* gbp, int32_t* outId, uint32_t* outTransformHint) = 0; /* Loading @@ -80,7 +81,8 @@ public: */ virtual status_t getLayerFrameStats(const sp<IBinder>& handle, FrameStats* outStats) const = 0; virtual status_t mirrorSurface(const sp<IBinder>& mirrorFromHandle, sp<IBinder>* outHandle) = 0; virtual status_t mirrorSurface(const sp<IBinder>& mirrorFromHandle, sp<IBinder>* outHandle, int32_t* outId) = 0; }; class BnSurfaceComposerClient : public SafeBnInterface<ISurfaceComposerClient> { Loading
services/surfaceflinger/Client.cpp +8 −6 Original line number Diff line number Diff line Loading @@ -79,17 +79,18 @@ sp<Layer> Client::getLayerUser(const sp<IBinder>& handle) const status_t Client::createSurface(const String8& name, uint32_t w, uint32_t h, PixelFormat format, uint32_t flags, const sp<IBinder>& parentHandle, LayerMetadata metadata, sp<IBinder>* handle, sp<IGraphicBufferProducer>* gbp, uint32_t* outTransformHint) { sp<IGraphicBufferProducer>* gbp, int32_t* outId, uint32_t* outTransformHint) { // We rely on createLayer to check permissions. return mFlinger->createLayer(name, this, w, h, format, flags, std::move(metadata), handle, gbp, parentHandle, nullptr, outTransformHint); parentHandle, nullptr, outId, outTransformHint); } status_t Client::createWithSurfaceParent(const String8& name, uint32_t w, uint32_t h, PixelFormat format, uint32_t flags, const sp<IGraphicBufferProducer>& parent, LayerMetadata metadata, sp<IBinder>* handle, sp<IGraphicBufferProducer>* gbp, sp<IGraphicBufferProducer>* gbp, int32_t* outId, uint32_t* outTransformHint) { if (mFlinger->authenticateSurfaceTexture(parent) == false) { ALOGE("failed to authenticate surface texture"); Loading @@ -103,11 +104,12 @@ status_t Client::createWithSurfaceParent(const String8& name, uint32_t w, uint32 } return mFlinger->createLayer(name, this, w, h, format, flags, std::move(metadata), handle, gbp, nullptr, layer, outTransformHint); nullptr, layer, outId, outTransformHint); } status_t Client::mirrorSurface(const sp<IBinder>& mirrorFromHandle, sp<IBinder>* outHandle) { return mFlinger->mirrorLayer(this, mirrorFromHandle, outHandle); status_t Client::mirrorSurface(const sp<IBinder>& mirrorFromHandle, sp<IBinder>* outHandle, int32_t* outId) { return mFlinger->mirrorLayer(this, mirrorFromHandle, outHandle, outId); } status_t Client::clearLayerFrameStats(const sp<IBinder>& handle) const { Loading
services/surfaceflinger/Client.h +4 −3 Original line number Diff line number Diff line Loading @@ -50,17 +50,18 @@ private: virtual status_t createSurface(const String8& name, uint32_t w, uint32_t h, PixelFormat format, uint32_t flags, const sp<IBinder>& parent, LayerMetadata metadata, sp<IBinder>* handle, sp<IGraphicBufferProducer>* gbp, sp<IGraphicBufferProducer>* gbp, int32_t* outId, uint32_t* outTransformHint = nullptr); virtual status_t createWithSurfaceParent(const String8& name, uint32_t w, uint32_t h, PixelFormat format, uint32_t flags, const sp<IGraphicBufferProducer>& parent, LayerMetadata metadata, sp<IBinder>* handle, sp<IGraphicBufferProducer>* gbp, sp<IGraphicBufferProducer>* gbp, int32_t* outId, uint32_t* outTransformHint = nullptr); status_t mirrorSurface(const sp<IBinder>& mirrorFromHandle, sp<IBinder>* handle); status_t mirrorSurface(const sp<IBinder>& mirrorFromHandle, sp<IBinder>* handle, int32_t* outId); virtual status_t clearLayerFrameStats(const sp<IBinder>& handle) const; Loading