Loading libs/gui/SurfaceComposerClient.cpp +15 −1 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ #include <gui/TraceUtils.h> #include <utils/Errors.h> #include <utils/Log.h> #include <utils/Mutex.h> #include <utils/SortedVector.h> #include <utils/String8.h> #include <utils/threads.h> Loading Loading @@ -2620,6 +2621,7 @@ SurfaceComposerClient::SurfaceComposerClient(const sp<ISurfaceComposerClient>& c void SurfaceComposerClient::onFirstRef() { sp<gui::ISurfaceComposer> sf(ComposerServiceAIDL::getComposerService()); Mutex::Autolock _lm(mLock); if (sf != nullptr && mStatus == NO_INIT) { sp<ISurfaceComposerClient> conn; binder::Status status = sf->createConnection(&conn); Loading @@ -2635,10 +2637,12 @@ SurfaceComposerClient::~SurfaceComposerClient() { } status_t SurfaceComposerClient::initCheck() const { Mutex::Autolock _lm(mLock); return mStatus; } sp<IBinder> SurfaceComposerClient::connection() const { Mutex::Autolock _lm(mLock); return IInterface::asBinder(mClient); } Loading Loading @@ -2687,6 +2691,7 @@ status_t SurfaceComposerClient::createSurfaceChecked(const String8& name, uint32 const sp<IBinder>& parentHandle, LayerMetadata metadata, uint32_t* outTransformHint) { Mutex::Autolock _lm(mLock); status_t err = mStatus; if (mStatus == NO_ERROR) { Loading @@ -2713,6 +2718,8 @@ sp<SurfaceControl> SurfaceComposerClient::mirrorSurface(SurfaceControl* mirrorFr return nullptr; } Mutex::Autolock _lm(mLock); sp<IBinder> mirrorFromHandle = mirrorFromSurface->getHandle(); sp<IBinder> stopAtHandle = stopAt ? stopAt->getHandle() : nullptr; gui::CreateSurfaceResult result; Loading @@ -2726,6 +2733,8 @@ sp<SurfaceControl> SurfaceComposerClient::mirrorSurface(SurfaceControl* mirrorFr } sp<SurfaceControl> SurfaceComposerClient::mirrorDisplay(DisplayId displayId) { Mutex::Autolock _lm(mLock); gui::CreateSurfaceResult result; const binder::Status status = mClient->mirrorDisplay(displayId.value, &result); const status_t err = statusTFromBinderStatus(status); Loading @@ -2737,6 +2746,8 @@ sp<SurfaceControl> SurfaceComposerClient::mirrorDisplay(DisplayId displayId) { } status_t SurfaceComposerClient::clearLayerFrameStats(const sp<IBinder>& token) const { Mutex::Autolock _lm(mLock); if (mStatus != NO_ERROR) { return mStatus; } Loading @@ -2746,9 +2757,12 @@ status_t SurfaceComposerClient::clearLayerFrameStats(const sp<IBinder>& token) c status_t SurfaceComposerClient::getLayerFrameStats(const sp<IBinder>& token, FrameStats* outStats) const { Mutex::Autolock _lm(mLock); if (mStatus != NO_ERROR) { return mStatus; } gui::FrameStats stats; const binder::Status status = mClient->getLayerFrameStats(token, &stats); if (status.isOk()) { Loading libs/gui/include/gui/SurfaceComposerClient.h +7 −3 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ #include <utils/Errors.h> #include <utils/RefBase.h> #include <utils/Mutex.h> #include <utils/Singleton.h> #include <utils/SortedVector.h> #include <utils/threads.h> Loading Loading @@ -875,7 +876,10 @@ public: static void setDisplayProjection(const sp<IBinder>& token, ui::Rotation orientation, const Rect& layerStackRect, const Rect& displayRect); inline sp<ISurfaceComposerClient> getClient() { return mClient; } inline sp<ISurfaceComposerClient> getClient() { Mutex::Autolock _lm(mLock); return mClient; } static status_t getDisplayedContentSamplingAttributes(const sp<IBinder>& display, ui::PixelFormat* outFormat, Loading Loading @@ -922,8 +926,8 @@ private: virtual void onFirstRef(); mutable Mutex mLock; status_t mStatus; sp<ISurfaceComposerClient> mClient; status_t mStatus GUARDED_BY(mLock); sp<ISurfaceComposerClient> mClient GUARDED_BY(mLock); }; // --------------------------------------------------------------------------- Loading Loading
libs/gui/SurfaceComposerClient.cpp +15 −1 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ #include <gui/TraceUtils.h> #include <utils/Errors.h> #include <utils/Log.h> #include <utils/Mutex.h> #include <utils/SortedVector.h> #include <utils/String8.h> #include <utils/threads.h> Loading Loading @@ -2620,6 +2621,7 @@ SurfaceComposerClient::SurfaceComposerClient(const sp<ISurfaceComposerClient>& c void SurfaceComposerClient::onFirstRef() { sp<gui::ISurfaceComposer> sf(ComposerServiceAIDL::getComposerService()); Mutex::Autolock _lm(mLock); if (sf != nullptr && mStatus == NO_INIT) { sp<ISurfaceComposerClient> conn; binder::Status status = sf->createConnection(&conn); Loading @@ -2635,10 +2637,12 @@ SurfaceComposerClient::~SurfaceComposerClient() { } status_t SurfaceComposerClient::initCheck() const { Mutex::Autolock _lm(mLock); return mStatus; } sp<IBinder> SurfaceComposerClient::connection() const { Mutex::Autolock _lm(mLock); return IInterface::asBinder(mClient); } Loading Loading @@ -2687,6 +2691,7 @@ status_t SurfaceComposerClient::createSurfaceChecked(const String8& name, uint32 const sp<IBinder>& parentHandle, LayerMetadata metadata, uint32_t* outTransformHint) { Mutex::Autolock _lm(mLock); status_t err = mStatus; if (mStatus == NO_ERROR) { Loading @@ -2713,6 +2718,8 @@ sp<SurfaceControl> SurfaceComposerClient::mirrorSurface(SurfaceControl* mirrorFr return nullptr; } Mutex::Autolock _lm(mLock); sp<IBinder> mirrorFromHandle = mirrorFromSurface->getHandle(); sp<IBinder> stopAtHandle = stopAt ? stopAt->getHandle() : nullptr; gui::CreateSurfaceResult result; Loading @@ -2726,6 +2733,8 @@ sp<SurfaceControl> SurfaceComposerClient::mirrorSurface(SurfaceControl* mirrorFr } sp<SurfaceControl> SurfaceComposerClient::mirrorDisplay(DisplayId displayId) { Mutex::Autolock _lm(mLock); gui::CreateSurfaceResult result; const binder::Status status = mClient->mirrorDisplay(displayId.value, &result); const status_t err = statusTFromBinderStatus(status); Loading @@ -2737,6 +2746,8 @@ sp<SurfaceControl> SurfaceComposerClient::mirrorDisplay(DisplayId displayId) { } status_t SurfaceComposerClient::clearLayerFrameStats(const sp<IBinder>& token) const { Mutex::Autolock _lm(mLock); if (mStatus != NO_ERROR) { return mStatus; } Loading @@ -2746,9 +2757,12 @@ status_t SurfaceComposerClient::clearLayerFrameStats(const sp<IBinder>& token) c status_t SurfaceComposerClient::getLayerFrameStats(const sp<IBinder>& token, FrameStats* outStats) const { Mutex::Autolock _lm(mLock); if (mStatus != NO_ERROR) { return mStatus; } gui::FrameStats stats; const binder::Status status = mClient->getLayerFrameStats(token, &stats); if (status.isOk()) { Loading
libs/gui/include/gui/SurfaceComposerClient.h +7 −3 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ #include <utils/Errors.h> #include <utils/RefBase.h> #include <utils/Mutex.h> #include <utils/Singleton.h> #include <utils/SortedVector.h> #include <utils/threads.h> Loading Loading @@ -875,7 +876,10 @@ public: static void setDisplayProjection(const sp<IBinder>& token, ui::Rotation orientation, const Rect& layerStackRect, const Rect& displayRect); inline sp<ISurfaceComposerClient> getClient() { return mClient; } inline sp<ISurfaceComposerClient> getClient() { Mutex::Autolock _lm(mLock); return mClient; } static status_t getDisplayedContentSamplingAttributes(const sp<IBinder>& display, ui::PixelFormat* outFormat, Loading Loading @@ -922,8 +926,8 @@ private: virtual void onFirstRef(); mutable Mutex mLock; status_t mStatus; sp<ISurfaceComposerClient> mClient; status_t mStatus GUARDED_BY(mLock); sp<ISurfaceComposerClient> mClient GUARDED_BY(mLock); }; // --------------------------------------------------------------------------- Loading