diff options
author | Mathias Agopian <mathias@google.com> | 2009-06-25 00:01:11 -0700 |
---|---|---|
committer | Mathias Agopian <mathias@google.com> | 2009-06-25 00:01:11 -0700 |
commit | 3a7e1832ac940cf5b8f92d3c3e8e8e5303c3c34e (patch) | |
tree | 94a910da72d31fbf8c5c684303df7a7d7dc4ce25 /opengl/libs | |
parent | 2eab9d8d7034ef05cead1ee26667a75061b5f0aa (diff) | |
download | frameworks_base-3a7e1832ac940cf5b8f92d3c3e8e8e5303c3c34e.zip frameworks_base-3a7e1832ac940cf5b8f92d3c3e8e8e5303c3c34e.tar.gz frameworks_base-3a7e1832ac940cf5b8f92d3c3e8e8e5303c3c34e.tar.bz2 |
fix [1942438] eglGetCurrentSurface() returns bogus value
Diffstat (limited to 'opengl/libs')
-rw-r--r-- | opengl/libs/EGL/egl.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/opengl/libs/EGL/egl.cpp b/opengl/libs/EGL/egl.cpp index 77648f2..fec4e5d 100644 --- a/opengl/libs/EGL/egl.cpp +++ b/opengl/libs/EGL/egl.cpp @@ -965,23 +965,25 @@ EGLBoolean eglMakeCurrent( EGLDisplay dpy, EGLSurface draw, if (!validate_display_context(dpy, ctx)) return EGL_FALSE; + EGLSurface impl_draw = EGL_NO_SURFACE; + EGLSurface impl_read = EGL_NO_SURFACE; egl_context_t * const c = get_context(ctx); if (draw != EGL_NO_SURFACE) { egl_surface_t const * d = get_surface(draw); if (!d) return setError(EGL_BAD_SURFACE, EGL_FALSE); if (d->impl != c->impl) return setError(EGL_BAD_MATCH, EGL_FALSE); - draw = d->surface; + impl_draw = d->surface; } if (read != EGL_NO_SURFACE) { egl_surface_t const * r = get_surface(read); if (!r) return setError(EGL_BAD_SURFACE, EGL_FALSE); if (r->impl != c->impl) return setError(EGL_BAD_MATCH, EGL_FALSE); - read = r->surface; + impl_read = r->surface; } EGLBoolean result = c->cnx->hooks->egl.eglMakeCurrent( - dp->dpys[c->impl], draw, read, c->context); + dp->dpys[c->impl], impl_draw, impl_read, c->context); if (result == EGL_TRUE) { setGlThreadSpecific(c->cnx->hooks); |