diff options
author | Jeff Brown <jeffbrown@google.com> | 2012-08-24 20:00:51 -0700 |
---|---|---|
committer | Jeff Brown <jeffbrown@google.com> | 2012-08-27 14:40:17 -0700 |
commit | 9d4e3d2f42e93e2d12bacabe97d307d30c3c20dd (patch) | |
tree | 3db010ef45a3793c5b09887ae321b4a8095a5001 /include | |
parent | 225c66a48cdc3acef21ee380dc134449749d3cb3 (diff) | |
download | frameworks_native-9d4e3d2f42e93e2d12bacabe97d307d30c3c20dd.zip frameworks_native-9d4e3d2f42e93e2d12bacabe97d307d30c3c20dd.tar.gz frameworks_native-9d4e3d2f42e93e2d12bacabe97d307d30c3c20dd.tar.bz2 |
Banish DisplayID from the SurfaceFlinger API.
Use only display tokens in the API to refer to new displays.
Don't require the caller to specify the display when creating
a surface (since in general a surface could be shown on
any display).
This is intended to be a minimum change just to update the API.
Note that SurfaceFlinger still uses DisplayID in a few places
internally that might cause some features not to work properly
when there are multiple displays (LayerScreenshot, for example).
Change-Id: I3d91eec2da406eefd97bcd53655d403ad865a7e6
Diffstat (limited to 'include')
-rw-r--r-- | include/gui/ISurfaceComposer.h | 16 | ||||
-rw-r--r-- | include/gui/ISurfaceComposerClient.h | 3 | ||||
-rw-r--r-- | include/gui/Surface.h | 1 | ||||
-rw-r--r-- | include/gui/SurfaceComposerClient.h | 28 |
4 files changed, 23 insertions, 25 deletions
diff --git a/include/gui/ISurfaceComposer.h b/include/gui/ISurfaceComposer.h index 9ab35b1..f4af705 100644 --- a/include/gui/ISurfaceComposer.h +++ b/include/gui/ISurfaceComposer.h @@ -65,7 +65,7 @@ public: /* return an IDisplayEventConnection */ virtual sp<IDisplayEventConnection> createDisplayEventConnection() = 0; - /* create a display with given id. + /* create a display * requires ACCESS_SURFACE_FLINGER permission. */ virtual sp<IBinder> createDisplay() = 0; @@ -92,10 +92,10 @@ public: /* Capture the specified screen. requires READ_FRAME_BUFFER permission * This function will fail if there is a secure window on screen. */ - virtual status_t captureScreen(DisplayID dpy, sp<IMemoryHeap>* heap, + virtual status_t captureScreen(const sp<IBinder>& display, sp<IMemoryHeap>* heap, uint32_t* width, uint32_t* height, PixelFormat* format, - uint32_t reqWidth, uint32_t reqHeight, uint32_t minLayerZ, - uint32_t maxLayerZ) = 0; + uint32_t reqWidth, uint32_t reqHeight, + uint32_t minLayerZ, uint32_t maxLayerZ) = 0; /* triggers screen off and waits for it to complete */ @@ -104,12 +104,12 @@ public: /* triggers screen on and waits for it to complete */ virtual void unblank() = 0; - /* returns information about a physical screen. This is intended to be - * used by low-level native tests */ - virtual status_t getDisplayInfo(DisplayID dpy, DisplayInfo* info) = 0; + /* returns information about a display + * intended to be used to get information about built-in displays */ + virtual status_t getDisplayInfo(const sp<IBinder>& display, DisplayInfo* info) = 0; /* connects to an external display */ - virtual void connectDisplay(const sp<ISurfaceTexture> display) = 0; + virtual void connectDisplay(const sp<ISurfaceTexture>& display) = 0; }; // ---------------------------------------------------------------------------- diff --git a/include/gui/ISurfaceComposerClient.h b/include/gui/ISurfaceComposerClient.h index 259c1df..39cf090 100644 --- a/include/gui/ISurfaceComposerClient.h +++ b/include/gui/ISurfaceComposerClient.h @@ -33,6 +33,7 @@ namespace android { // ---------------------------------------------------------------------------- +// TODO: Remove this declaration, it is only used internally by SurfaceFlinger. typedef int32_t DisplayID; // ---------------------------------------------------------------------------- @@ -70,7 +71,7 @@ public: * Requires ACCESS_SURFACE_FLINGER permission */ virtual sp<ISurface> createSurface(surface_data_t* data, - const String8& name, DisplayID display, uint32_t w, uint32_t h, + const String8& name, uint32_t w, uint32_t h, PixelFormat format, uint32_t flags) = 0; /* diff --git a/include/gui/Surface.h b/include/gui/Surface.h index 7b8873a..6f2d40f 100644 --- a/include/gui/Surface.h +++ b/include/gui/Surface.h @@ -60,6 +60,7 @@ public: // release surface data from java void clear(); + status_t setLayerStack(int32_t layerStack); status_t setLayer(int32_t layer); status_t setPosition(int32_t x, int32_t y); status_t setSize(uint32_t w, uint32_t h); diff --git a/include/gui/SurfaceComposerClient.h b/include/gui/SurfaceComposerClient.h index 5776038..15a0c1e 100644 --- a/include/gui/SurfaceComposerClient.h +++ b/include/gui/SurfaceComposerClient.h @@ -39,6 +39,7 @@ class DisplayInfo; class Composer; class IMemoryHeap; class ISurfaceComposerClient; +class ISurfaceTexture; class Region; // --------------------------------------------------------------------------- @@ -64,7 +65,7 @@ public: void* cookie = NULL, uint32_t flags = 0); // Get information about a display - static status_t getDisplayInfo(DisplayID dpy, DisplayInfo* info); + static status_t getDisplayInfo(const sp<IBinder>& display, DisplayInfo* info); // ------------------------------------------------------------------------ // surface creation / destruction @@ -72,23 +73,19 @@ public: //! Create a surface sp<SurfaceControl> createSurface( const String8& name,// name of the surface - DisplayID display, // Display to create this surface on - uint32_t w, // width in pixel - uint32_t h, // height in pixel - PixelFormat format, // pixel-format desired - uint32_t flags = 0 // usage flags - ); - - sp<SurfaceControl> createSurface( - DisplayID display, // Display to create this surface on uint32_t w, // width in pixel uint32_t h, // height in pixel PixelFormat format, // pixel-format desired uint32_t flags = 0 // usage flags ); + //! Create a display static sp<IBinder> createDisplay(); + //! Get the token for the existing default displays. + //! Possible values for id are eDisplayIdMain and eDisplayIdHdmi. + static sp<IBinder> getBuiltInDisplay(int32_t id); + // ------------------------------------------------------------------------ // Composer parameters // All composer parameters must be changed within a transaction @@ -102,9 +99,6 @@ public: //! Close a composer transaction on all active SurfaceComposerClients. static void closeGlobalTransaction(bool synchronous = false); - //! Set the orientation of the given display - static int setOrientation(DisplayID dpy, int orientation, uint32_t flags); - status_t hide(SurfaceID id); status_t show(SurfaceID id, int32_t layer = -1); status_t setFlags(SurfaceID id, uint32_t flags, uint32_t mask); @@ -150,9 +144,11 @@ public: ScreenshotClient(); // frees the previous screenshot and capture a new one - status_t update(); - status_t update(uint32_t reqWidth, uint32_t reqHeight); - status_t update(uint32_t reqWidth, uint32_t reqHeight, + status_t update(const sp<IBinder>& display); + status_t update(const sp<IBinder>& display, + uint32_t reqWidth, uint32_t reqHeight); + status_t update(const sp<IBinder>& display, + uint32_t reqWidth, uint32_t reqHeight, uint32_t minLayerZ, uint32_t maxLayerZ); // release memory occupied by the screenshot |