Loading include/private/surfaceflinger/LayerState.h +8 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ namespace android { class Parcel; class ISurfaceComposerClient; struct layer_state_t { Loading Loading @@ -68,6 +69,13 @@ struct layer_state_t { Region transparentRegion; }; struct ComposerState { sp<ISurfaceComposerClient> client; layer_state_t state; status_t write(Parcel& output) const; status_t read(const Parcel& input); }; }; // namespace android #endif // ANDROID_SF_LAYER_STATE_H Loading include/surfaceflinger/ISurfaceComposer.h +3 −4 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ namespace android { // ---------------------------------------------------------------------------- class IMemoryHeap; class ComposerState; class ISurfaceComposer : public IInterface { Loading Loading @@ -105,8 +106,7 @@ public: virtual sp<IMemoryHeap> getCblk() const = 0; /* open/close transactions. requires ACCESS_SURFACE_FLINGER permission */ virtual void openGlobalTransaction() = 0; virtual void closeGlobalTransaction() = 0; virtual void setTransactionState(const Vector<ComposerState>& state) = 0; /* [un]freeze display. requires ACCESS_SURFACE_FLINGER permission */ virtual status_t freezeDisplay(DisplayID dpy, uint32_t flags) = 0; Loading Loading @@ -149,8 +149,7 @@ public: CREATE_CONNECTION, CREATE_GRAPHIC_BUFFER_ALLOC, GET_CBLK, OPEN_GLOBAL_TRANSACTION, CLOSE_GLOBAL_TRANSACTION, SET_TRANSACTION_STATE, SET_ORIENTATION, FREEZE_DISPLAY, UNFREEZE_DISPLAY, Loading include/surfaceflinger/ISurfaceComposerClient.h +0 −7 Original line number Diff line number Diff line Loading @@ -37,8 +37,6 @@ typedef int32_t DisplayID; // ---------------------------------------------------------------------------- class layer_state_t; class ISurfaceComposerClient : public IInterface { public: Loading Loading @@ -69,11 +67,6 @@ public: * Requires ACCESS_SURFACE_FLINGER permission */ virtual status_t destroySurface(SurfaceID sid) = 0; /* * Requires ACCESS_SURFACE_FLINGER permission */ virtual status_t setState(int32_t count, const layer_state_t* states) = 0; }; // ---------------------------------------------------------------------------- Loading include/surfaceflinger/SurfaceComposerClient.h +9 −17 Original line number Diff line number Diff line Loading @@ -37,10 +37,12 @@ namespace android { // --------------------------------------------------------------------------- class DisplayInfo; class Composer; class IMemoryHeap; class ISurfaceComposer; class Region; class surface_flinger_cblk_t; struct layer_state_t; // --------------------------------------------------------------------------- Loading @@ -59,8 +61,11 @@ public: // --------------------------------------------------------------------------- class Composer; class SurfaceComposerClient : public RefBase { friend class Composer; public: SurfaceComposerClient(); virtual ~SurfaceComposerClient(); Loading Loading @@ -101,13 +106,7 @@ public: // All composer parameters must be changed within a transaction // several surfaces can be updated in one transaction, all changes are // committed at once when the transaction is closed. // CloseTransaction() usually requires an IPC with the server. //! Open a composer transaction status_t openTransaction(); //! commit the transaction status_t closeTransaction(); // closeGlobalTransaction() usually requires an IPC with the server. //! Open a composer transaction on all active SurfaceComposerClients. static void openGlobalTransaction(); Loading Loading @@ -152,19 +151,12 @@ public: private: virtual void onFirstRef(); inline layer_state_t* get_state_l(SurfaceID id); layer_state_t* lockLayerState(SurfaceID id); inline void unlockLayerState(); Composer& getComposer(); mutable Mutex mLock; SortedVector<layer_state_t> mStates; int32_t mTransactionOpen; layer_state_t* mPrebuiltLayerState; // these don't need to be protected because they never change // after assignment status_t mStatus; sp<ISurfaceComposerClient> mClient; Composer& mComposer; }; // --------------------------------------------------------------------------- Loading include/utils/SortedVector.h +2 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,8 @@ namespace android { template <class TYPE> class SortedVector : private SortedVectorImpl { friend class Vector<TYPE>; public: typedef TYPE value_type; Loading Loading
include/private/surfaceflinger/LayerState.h +8 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ namespace android { class Parcel; class ISurfaceComposerClient; struct layer_state_t { Loading Loading @@ -68,6 +69,13 @@ struct layer_state_t { Region transparentRegion; }; struct ComposerState { sp<ISurfaceComposerClient> client; layer_state_t state; status_t write(Parcel& output) const; status_t read(const Parcel& input); }; }; // namespace android #endif // ANDROID_SF_LAYER_STATE_H Loading
include/surfaceflinger/ISurfaceComposer.h +3 −4 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ namespace android { // ---------------------------------------------------------------------------- class IMemoryHeap; class ComposerState; class ISurfaceComposer : public IInterface { Loading Loading @@ -105,8 +106,7 @@ public: virtual sp<IMemoryHeap> getCblk() const = 0; /* open/close transactions. requires ACCESS_SURFACE_FLINGER permission */ virtual void openGlobalTransaction() = 0; virtual void closeGlobalTransaction() = 0; virtual void setTransactionState(const Vector<ComposerState>& state) = 0; /* [un]freeze display. requires ACCESS_SURFACE_FLINGER permission */ virtual status_t freezeDisplay(DisplayID dpy, uint32_t flags) = 0; Loading Loading @@ -149,8 +149,7 @@ public: CREATE_CONNECTION, CREATE_GRAPHIC_BUFFER_ALLOC, GET_CBLK, OPEN_GLOBAL_TRANSACTION, CLOSE_GLOBAL_TRANSACTION, SET_TRANSACTION_STATE, SET_ORIENTATION, FREEZE_DISPLAY, UNFREEZE_DISPLAY, Loading
include/surfaceflinger/ISurfaceComposerClient.h +0 −7 Original line number Diff line number Diff line Loading @@ -37,8 +37,6 @@ typedef int32_t DisplayID; // ---------------------------------------------------------------------------- class layer_state_t; class ISurfaceComposerClient : public IInterface { public: Loading Loading @@ -69,11 +67,6 @@ public: * Requires ACCESS_SURFACE_FLINGER permission */ virtual status_t destroySurface(SurfaceID sid) = 0; /* * Requires ACCESS_SURFACE_FLINGER permission */ virtual status_t setState(int32_t count, const layer_state_t* states) = 0; }; // ---------------------------------------------------------------------------- Loading
include/surfaceflinger/SurfaceComposerClient.h +9 −17 Original line number Diff line number Diff line Loading @@ -37,10 +37,12 @@ namespace android { // --------------------------------------------------------------------------- class DisplayInfo; class Composer; class IMemoryHeap; class ISurfaceComposer; class Region; class surface_flinger_cblk_t; struct layer_state_t; // --------------------------------------------------------------------------- Loading @@ -59,8 +61,11 @@ public: // --------------------------------------------------------------------------- class Composer; class SurfaceComposerClient : public RefBase { friend class Composer; public: SurfaceComposerClient(); virtual ~SurfaceComposerClient(); Loading Loading @@ -101,13 +106,7 @@ public: // All composer parameters must be changed within a transaction // several surfaces can be updated in one transaction, all changes are // committed at once when the transaction is closed. // CloseTransaction() usually requires an IPC with the server. //! Open a composer transaction status_t openTransaction(); //! commit the transaction status_t closeTransaction(); // closeGlobalTransaction() usually requires an IPC with the server. //! Open a composer transaction on all active SurfaceComposerClients. static void openGlobalTransaction(); Loading Loading @@ -152,19 +151,12 @@ public: private: virtual void onFirstRef(); inline layer_state_t* get_state_l(SurfaceID id); layer_state_t* lockLayerState(SurfaceID id); inline void unlockLayerState(); Composer& getComposer(); mutable Mutex mLock; SortedVector<layer_state_t> mStates; int32_t mTransactionOpen; layer_state_t* mPrebuiltLayerState; // these don't need to be protected because they never change // after assignment status_t mStatus; sp<ISurfaceComposerClient> mClient; Composer& mComposer; }; // --------------------------------------------------------------------------- Loading
include/utils/SortedVector.h +2 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,8 @@ namespace android { template <class TYPE> class SortedVector : private SortedVectorImpl { friend class Vector<TYPE>; public: typedef TYPE value_type; Loading