diff options
Diffstat (limited to 'include/surfaceflinger')
-rw-r--r-- | include/surfaceflinger/IGraphicBufferAlloc.h | 2 | ||||
-rw-r--r-- | include/surfaceflinger/ISurface.h | 25 | ||||
-rw-r--r-- | include/surfaceflinger/ISurfaceComposer.h | 13 | ||||
-rw-r--r-- | include/surfaceflinger/ISurfaceComposerClient.h | 6 | ||||
-rw-r--r-- | include/surfaceflinger/Surface.h | 73 | ||||
-rw-r--r-- | include/surfaceflinger/SurfaceComposerClient.h | 6 |
6 files changed, 13 insertions, 112 deletions
diff --git a/include/surfaceflinger/IGraphicBufferAlloc.h b/include/surfaceflinger/IGraphicBufferAlloc.h index 01e4bd9..e1b6b57 100644 --- a/include/surfaceflinger/IGraphicBufferAlloc.h +++ b/include/surfaceflinger/IGraphicBufferAlloc.h @@ -27,6 +27,8 @@ namespace android { // ---------------------------------------------------------------------------- +class GraphicBuffer; + class IGraphicBufferAlloc : public IInterface { public: diff --git a/include/surfaceflinger/ISurface.h b/include/surfaceflinger/ISurface.h index cd0ee40..5fdf234 100644 --- a/include/surfaceflinger/ISurface.h +++ b/include/surfaceflinger/ISurface.h @@ -27,42 +27,23 @@ #include <ui/PixelFormat.h> -#include <hardware/hardware.h> -#include <hardware/gralloc.h> - namespace android { typedef int32_t SurfaceID; -class GraphicBuffer; +class ISurfaceTexture; class ISurface : public IInterface { protected: enum { - RESERVED0 = IBinder::FIRST_CALL_TRANSACTION, - RESERVED1, - RESERVED2, - REQUEST_BUFFER, - SET_BUFFER_COUNT, + GET_SURFACE_TEXTURE = IBinder::FIRST_CALL_TRANSACTION, }; public: DECLARE_META_INTERFACE(Surface); - /* - * requests a new buffer for the given index. If w, h, or format are - * null the buffer is created with the parameters assigned to the - * surface it is bound to. Otherwise the buffer's parameters are - * set to those specified. - */ - virtual sp<GraphicBuffer> requestBuffer(int bufferIdx, - uint32_t w, uint32_t h, uint32_t format, uint32_t usage) = 0; - - /* - * sets the number of buffers dequeuable for this surface. - */ - virtual status_t setBufferCount(int bufferCount) = 0; + virtual sp<ISurfaceTexture> getSurfaceTexture() const = 0; }; // ---------------------------------------------------------------------------- diff --git a/include/surfaceflinger/ISurfaceComposer.h b/include/surfaceflinger/ISurfaceComposer.h index dea1b10..03fd01b 100644 --- a/include/surfaceflinger/ISurfaceComposer.h +++ b/include/surfaceflinger/ISurfaceComposer.h @@ -33,6 +33,8 @@ namespace android { // ---------------------------------------------------------------------------- +class IMemoryHeap; + class ISurfaceComposer : public IInterface { public: @@ -95,10 +97,6 @@ public: */ virtual sp<ISurfaceComposerClient> createConnection() = 0; - /* create a client connection with surface flinger - */ - virtual sp<ISurfaceComposerClient> createClientConnection() = 0; - /* create a graphic buffer allocator */ virtual sp<IGraphicBufferAlloc> createGraphicBufferAlloc() = 0; @@ -134,11 +132,6 @@ public: virtual status_t turnElectronBeamOff(int32_t mode) = 0; virtual status_t turnElectronBeamOn(int32_t mode) = 0; - /* Signal surfaceflinger that there might be some work to do - * This is an ASYNCHRONOUS call. - */ - virtual void signal() const = 0; - /* verify that an ISurface was created by SurfaceFlinger. */ virtual bool authenticateSurface(const sp<ISurface>& surface) const = 0; @@ -154,7 +147,6 @@ public: // Java by ActivityManagerService. BOOT_FINISHED = IBinder::FIRST_CALL_TRANSACTION, CREATE_CONNECTION, - CREATE_CLIENT_CONNECTION, CREATE_GRAPHIC_BUFFER_ALLOC, GET_CBLK, OPEN_GLOBAL_TRANSACTION, @@ -162,7 +154,6 @@ public: SET_ORIENTATION, FREEZE_DISPLAY, UNFREEZE_DISPLAY, - SIGNAL, CAPTURE_SCREEN, TURN_ELECTRON_BEAM_OFF, TURN_ELECTRON_BEAM_ON, diff --git a/include/surfaceflinger/ISurfaceComposerClient.h b/include/surfaceflinger/ISurfaceComposerClient.h index 46b1bb7..2e75a0e 100644 --- a/include/surfaceflinger/ISurfaceComposerClient.h +++ b/include/surfaceflinger/ISurfaceComposerClient.h @@ -33,9 +33,6 @@ namespace android { // ---------------------------------------------------------------------------- -class IMemoryHeap; - -typedef int32_t ClientID; typedef int32_t DisplayID; // ---------------------------------------------------------------------------- @@ -57,9 +54,6 @@ public: status_t writeToParcel(Parcel* parcel) const; }; - virtual sp<IMemoryHeap> getControlBlock() const = 0; - virtual ssize_t getTokenForSurface(const sp<ISurface>& sur) const = 0; - /* * Requires ACCESS_SURFACE_FLINGER permission */ diff --git a/include/surfaceflinger/Surface.h b/include/surfaceflinger/Surface.h index ab30f45..8845dc9 100644 --- a/include/surfaceflinger/Surface.h +++ b/include/surfaceflinger/Surface.h @@ -43,9 +43,7 @@ class IOMX; class Rect; class Surface; class SurfaceComposerClient; -class SharedClient; -class SharedBufferClient; -class SurfaceClient; +class SurfaceTextureClient; // --------------------------------------------------------------------------- @@ -162,9 +160,6 @@ public: status_t lock(SurfaceInfo* info, Region* dirty, bool blocking = true); status_t unlockAndPost(); - // setSwapRectangle() is intended to be used by GL ES clients - void setSwapRectangle(const Rect& r); - sp<IBinder> asBinder() const; private: @@ -209,6 +204,7 @@ private: static int query(const ANativeWindow* window, int what, int* value); static int perform(ANativeWindow* window, int operation, ...); + int setSwapInterval(int interval); int dequeueBuffer(ANativeWindowBuffer** buffer); int lockBuffer(ANativeWindowBuffer* buffer); int queueBuffer(ANativeWindowBuffer* buffer); @@ -216,83 +212,23 @@ private: int query(int what, int* value) const; int perform(int operation, va_list args); - void dispatch_setUsage(va_list args); - int dispatch_connect(va_list args); - int dispatch_disconnect(va_list args); - int dispatch_crop(va_list args); - int dispatch_set_buffer_count(va_list args); - int dispatch_set_buffers_geometry(va_list args); - int dispatch_set_buffers_transform(va_list args); - int dispatch_set_buffers_timestamp(va_list args); - - void setUsage(uint32_t reqUsage); - int connect(int api); - int disconnect(int api); - int crop(Rect const* rect); - int setBufferCount(int bufferCount); - int setBuffersGeometry(int w, int h, int format); - int setBuffersTransform(int transform); - int setBuffersTimestamp(int64_t timestamp); - /* * private stuff... */ void init(); status_t validate(bool inCancelBuffer = false) const; - // When the buffer pool is a fixed size we want to make sure SurfaceFlinger - // won't stall clients, so we require an extra buffer. - enum { MIN_UNDEQUEUED_BUFFERS = 2 }; - - inline const GraphicBufferMapper& getBufferMapper() const { return mBufferMapper; } - inline GraphicBufferMapper& getBufferMapper() { return mBufferMapper; } - - status_t getBufferLocked(int index, - uint32_t w, uint32_t h, uint32_t format, uint32_t usage); - int getBufferIndex(const sp<GraphicBuffer>& buffer) const; - int getConnectedApi() const; - bool needNewBuffer(int bufIdx, - uint32_t *pWidth, uint32_t *pHeight, - uint32_t *pFormat, uint32_t *pUsage) const; - static void cleanCachedSurfacesLocked(); - class BufferInfo { - uint32_t mWidth; - uint32_t mHeight; - uint32_t mFormat; - uint32_t mUsage; - mutable uint32_t mDirty; - enum { - GEOMETRY = 0x01 - }; - public: - BufferInfo(); - void set(uint32_t w, uint32_t h, uint32_t format); - void set(uint32_t usage); - void get(uint32_t *pWidth, uint32_t *pHeight, - uint32_t *pFormat, uint32_t *pUsage) const; - bool validateBuffer(const sp<GraphicBuffer>& buffer) const; - }; - // constants - GraphicBufferMapper& mBufferMapper; - SurfaceClient& mClient; - SharedBufferClient* mSharedBufferClient; status_t mInitCheck; sp<ISurface> mSurface; + sp<SurfaceTextureClient> mSurfaceTextureClient; uint32_t mIdentity; PixelFormat mFormat; uint32_t mFlags; - - // protected by mSurfaceLock - Rect mSwapRectangle; - int mConnected; - Rect mNextBufferCrop; - uint32_t mNextBufferTransform; - BufferInfo mBufferInfo; // protected by mSurfaceLock. These are also used from lock/unlock // but in that case, they must be called form the same thread. @@ -304,9 +240,6 @@ private: mutable Region mOldDirtyRegion; bool mReserved; - // only used from dequeueBuffer() - Vector< sp<GraphicBuffer> > mBuffers; - // query() must be called from dequeueBuffer() thread uint32_t mWidth; uint32_t mHeight; diff --git a/include/surfaceflinger/SurfaceComposerClient.h b/include/surfaceflinger/SurfaceComposerClient.h index c61a5bf..140b9f8 100644 --- a/include/surfaceflinger/SurfaceComposerClient.h +++ b/include/surfaceflinger/SurfaceComposerClient.h @@ -36,10 +36,10 @@ namespace android { // --------------------------------------------------------------------------- -class Region; -class SharedClient; -class ISurfaceComposer; class DisplayInfo; +class IMemoryHeap; +class ISurfaceComposer; +class Region; class surface_flinger_cblk_t; // --------------------------------------------------------------------------- |