diff options
author | Ramkumar Radhakrishnan <ramkumar@codeaurora.org> | 2012-11-07 11:30:19 -0800 |
---|---|---|
committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2013-03-10 22:55:44 -0700 |
commit | 31152b94cd0471a3853fb658e9aff507d4eec384 (patch) | |
tree | 041a5ab856784ee1eb4bb6b49d738847658c33f8 /services | |
parent | aed9f3c81b67ff72b92a9de18de4ff38af523e54 (diff) | |
download | frameworks_native-31152b94cd0471a3853fb658e9aff507d4eec384.zip frameworks_native-31152b94cd0471a3853fb658e9aff507d4eec384.tar.gz frameworks_native-31152b94cd0471a3853fb658e9aff507d4eec384.tar.bz2 |
Add support for custom buffer sizes.
Add native window properties NATIVE_WINDOW_SET_BUFFERS_SIZE to the
perform function of SurfaceTextureClient to set the user defined size
of graphic buffers.
Change-Id: I1dc2203990a3641fbb9ddab9a86f7e9017f05270
Diffstat (limited to 'services')
-rw-r--r-- | services/surfaceflinger/DisplayHardware/GraphicBufferAlloc.cpp | 15 | ||||
-rw-r--r-- | services/surfaceflinger/DisplayHardware/GraphicBufferAlloc.h | 5 |
2 files changed, 20 insertions, 0 deletions
diff --git a/services/surfaceflinger/DisplayHardware/GraphicBufferAlloc.cpp b/services/surfaceflinger/DisplayHardware/GraphicBufferAlloc.cpp index 965ff01..0c94c7d 100644 --- a/services/surfaceflinger/DisplayHardware/GraphicBufferAlloc.cpp +++ b/services/surfaceflinger/DisplayHardware/GraphicBufferAlloc.cpp @@ -26,6 +26,9 @@ namespace android { // ---------------------------------------------------------------------------- GraphicBufferAlloc::GraphicBufferAlloc() { +#ifdef QCOM_BSP + mBufferSize = 0; +#endif } GraphicBufferAlloc::~GraphicBufferAlloc() { @@ -33,7 +36,13 @@ GraphicBufferAlloc::~GraphicBufferAlloc() { sp<GraphicBuffer> GraphicBufferAlloc::createGraphicBuffer(uint32_t w, uint32_t h, PixelFormat format, uint32_t usage, status_t* error) { +#ifdef QCOM_BSP + sp<GraphicBuffer> graphicBuffer(new GraphicBuffer(w, h, format, + usage, mBufferSize)); +#else sp<GraphicBuffer> graphicBuffer(new GraphicBuffer(w, h, format, usage)); +#endif + status_t err = graphicBuffer->initCheck(); *error = err; if (err != 0 || graphicBuffer->handle == 0) { @@ -48,6 +57,12 @@ sp<GraphicBuffer> GraphicBufferAlloc::createGraphicBuffer(uint32_t w, uint32_t h return graphicBuffer; } +#ifdef QCOM_BSP +void GraphicBufferAlloc::setGraphicBufferSize(int size) { + mBufferSize = size; +} +#endif + // ---------------------------------------------------------------------------- }; // namespace android // ---------------------------------------------------------------------------- diff --git a/services/surfaceflinger/DisplayHardware/GraphicBufferAlloc.h b/services/surfaceflinger/DisplayHardware/GraphicBufferAlloc.h index b08750c..521383d 100644 --- a/services/surfaceflinger/DisplayHardware/GraphicBufferAlloc.h +++ b/services/surfaceflinger/DisplayHardware/GraphicBufferAlloc.h @@ -35,6 +35,11 @@ public: virtual ~GraphicBufferAlloc(); virtual sp<GraphicBuffer> createGraphicBuffer(uint32_t w, uint32_t h, PixelFormat format, uint32_t usage, status_t* error); +#ifdef QCOM_BSP + virtual void setGraphicBufferSize(int size); +private: + int mBufferSize; +#endif }; |