diff options
author | Daniel Lam <dalam@google.com> | 2012-03-23 19:44:11 -0700 |
---|---|---|
committer | Daniel Lam <dalam@google.com> | 2012-03-26 15:11:47 -0700 |
commit | ae540b9943dfd3b5ff757954a988978b68e73687 (patch) | |
tree | f33686011a2957c1ef95b21168aa4033af5b5700 /libs | |
parent | 0c44525a4888de321c9497204d59c8515f828499 (diff) | |
download | frameworks_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.cpp | 8 |
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); |