summaryrefslogtreecommitdiffstats
path: root/libs
diff options
context:
space:
mode:
authorDaniel Lam <dalam@google.com>2012-03-23 19:44:11 -0700
committerDaniel Lam <dalam@google.com>2012-03-26 15:11:47 -0700
commitae540b9943dfd3b5ff757954a988978b68e73687 (patch)
treef33686011a2957c1ef95b21168aa4033af5b5700 /libs
parent0c44525a4888de321c9497204d59c8515f828499 (diff)
downloadframeworks_base-ae540b9943dfd3b5ff757954a988978b68e73687.zip
frameworks_base-ae540b9943dfd3b5ff757954a988978b68e73687.tar.gz
frameworks_base-ae540b9943dfd3b5ff757954a988978b68e73687.tar.bz2
rsdGL uses DummyConsumer
Using a DummyConsumer instead of a SurfaceTexture avoids errors such as BufferQueue has been abandoned due to the SurfaceTexture going out of scope and disconnecting from the BufferQueue. Bug: 6172739 Change-Id: I775ead2d0392a68fd0f7e724d6eb25298d2fb00d
Diffstat (limited to 'libs')
-rw-r--r--libs/rs/driver/rsdGL.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/libs/rs/driver/rsdGL.cpp b/libs/rs/driver/rsdGL.cpp
index fae602c..0860417 100644
--- a/libs/rs/driver/rsdGL.cpp
+++ b/libs/rs/driver/rsdGL.cpp
@@ -43,6 +43,7 @@
#include "rsdFrameBufferObj.h"
#include <gui/SurfaceTextureClient.h>
+#include <gui/DummyConsumer.h>
using namespace android;
using namespace android::renderscript;
@@ -326,8 +327,11 @@ bool rsdGLInit(const Context *rsc) {
}
gGLContextCount++;
- sp<SurfaceTexture> st(new SurfaceTexture(123));
- sp<SurfaceTextureClient> stc(new SurfaceTextureClient(st));
+ // Create a BufferQueue with a fake consumer
+ sp<BufferQueue> bq = new BufferQueue();
+ sp<DummyConsumer> dummy = new DummyConsumer(bq);
+ sp<SurfaceTextureClient> stc(new SurfaceTextureClient(static_cast<sp<ISurfaceTexture> >(bq)));
+
dc->gl.egl.surfaceDefault = eglCreateWindowSurface(dc->gl.egl.display, dc->gl.egl.config,
static_cast<ANativeWindow*>(stc.get()),
NULL);