diff options
| author | 2012-02-28 10:16:06 -0800 | |
|---|---|---|
| committer | 2012-02-28 10:16:06 -0800 | |
| commit | eb8b1fe91faa6ecaf1fb119bd557f96bde9f6bbc (patch) | |
| tree | 24798e8432955a7edef713773031b6579888272c | |
| parent | 9c821d71e992067ff30eacec73ae09ae43274869 (diff) | |
Using surface texture as a default renderscript surface.
Change-Id: I969aa56683fdf4538ff54fa1065dada77cf9d04d
| -rw-r--r-- | libs/rs/driver/rsdGL.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/libs/rs/driver/rsdGL.cpp b/libs/rs/driver/rsdGL.cpp index 8033b0881b01..b6fc00e34f9e 100644 --- a/libs/rs/driver/rsdGL.cpp +++ b/libs/rs/driver/rsdGL.cpp @@ -41,6 +41,8 @@ #include "rsdVertexArray.h" #include "rsdFrameBufferObj.h" +#include <gui/SurfaceTextureClient.h> + using namespace android; using namespace android::renderscript; @@ -299,14 +301,15 @@ bool rsdGLInit(const Context *rsc) { } gGLContextCount++; + sp<SurfaceTexture> st(new SurfaceTexture(123)); + sp<SurfaceTextureClient> stc(new SurfaceTextureClient(st)); + dc->gl.egl.surfaceDefault = eglCreateWindowSurface(dc->gl.egl.display, dc->gl.egl.config, + static_cast<ANativeWindow*>(stc.get()), + NULL); - EGLint pbuffer_attribs[] = { EGL_WIDTH, 1, EGL_HEIGHT, 1, EGL_NONE }; - rsc->setWatchdogGL("eglCreatePbufferSurface", __LINE__, __FILE__); - dc->gl.egl.surfaceDefault = eglCreatePbufferSurface(dc->gl.egl.display, dc->gl.egl.config, - pbuffer_attribs); - checkEglError("eglCreatePbufferSurface"); + checkEglError("eglCreateWindowSurface"); if (dc->gl.egl.surfaceDefault == EGL_NO_SURFACE) { - ALOGE("eglCreatePbufferSurface returned EGL_NO_SURFACE"); + ALOGE("eglCreateWindowSurface returned EGL_NO_SURFACE"); rsdGLShutdown(rsc); rsc->setWatchdogGL(NULL, 0, NULL); return false; |