summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorRamkumar Radhakrishnan <ramkumar@codeaurora.org>2012-11-07 11:30:19 -0800
committerGerrit Code Review <gerrit@cyanogenmod.org>2013-03-10 22:55:44 -0700
commit31152b94cd0471a3853fb658e9aff507d4eec384 (patch)
tree041a5ab856784ee1eb4bb6b49d738847658c33f8 /services
parentaed9f3c81b67ff72b92a9de18de4ff38af523e54 (diff)
downloadframeworks_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.cpp15
-rw-r--r--services/surfaceflinger/DisplayHardware/GraphicBufferAlloc.h5
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
};