summaryrefslogtreecommitdiffstats
path: root/libs/ui/FramebufferNativeWindow.cpp
diff options
context:
space:
mode:
authorNaseer Ahmed <naseer@codeaurora.org>2012-06-29 12:02:32 -0700
committerIliyan Malchev <malchev@google.com>2012-07-09 22:04:19 -0700
commit0bc64be3f5198f8dda1ced21bbc957a1d76efbb7 (patch)
tree4fa7dd1ad90ea500c918122c63a5d9019aafe9c9 /libs/ui/FramebufferNativeWindow.cpp
parent07912f50930cf8cea2bc5f8f94e014c31af583b6 (diff)
downloadframeworks_native-0bc64be3f5198f8dda1ced21bbc957a1d76efbb7.zip
frameworks_native-0bc64be3f5198f8dda1ced21bbc957a1d76efbb7.tar.gz
frameworks_native-0bc64be3f5198f8dda1ced21bbc957a1d76efbb7.tar.bz2
libs/ui: Add support for triple framebuffers
Change-Id: I90dd38deeeda9a3785b87286cc7d252c6f948750
Diffstat (limited to 'libs/ui/FramebufferNativeWindow.cpp')
-rw-r--r--libs/ui/FramebufferNativeWindow.cpp18
1 files changed, 12 insertions, 6 deletions
diff --git a/libs/ui/FramebufferNativeWindow.cpp b/libs/ui/FramebufferNativeWindow.cpp
index dec99b6..a1f204c 100644
--- a/libs/ui/FramebufferNativeWindow.cpp
+++ b/libs/ui/FramebufferNativeWindow.cpp
@@ -92,8 +92,13 @@ FramebufferNativeWindow::FramebufferNativeWindow()
mUpdateOnDemand = (fbDev->setUpdateRect != 0);
// initialize the buffer FIFO
- mNumBuffers = NUM_FRAME_BUFFERS;
- mNumFreeBuffers = NUM_FRAME_BUFFERS;
+ if(fbDev->numFramebuffers >= MIN_NUM_FRAME_BUFFERS &&
+ fbDev->numFramebuffers <= MAX_NUM_FRAME_BUFFERS){
+ mNumBuffers = fbDev->numFramebuffers;
+ } else {
+ mNumBuffers = MIN_NUM_FRAME_BUFFERS;
+ }
+ mNumFreeBuffers = mNumBuffers;
mBufferHead = mNumBuffers-1;
/*
@@ -154,10 +159,11 @@ FramebufferNativeWindow::FramebufferNativeWindow()
FramebufferNativeWindow::~FramebufferNativeWindow()
{
if (grDev) {
- if (buffers[0] != NULL)
- grDev->free(grDev, buffers[0]->handle);
- if (buffers[1] != NULL)
- grDev->free(grDev, buffers[1]->handle);
+ for(int i = 0; i < mNumBuffers; i++) {
+ if (buffers[i] != NULL) {
+ grDev->free(grDev, buffers[i]->handle);
+ }
+ }
gralloc_close(grDev);
}