summaryrefslogtreecommitdiffstats
path: root/opengl/libs/EGL/egl.cpp
diff options
context:
space:
mode:
authorMathias Agopian <mathias@google.com>2009-06-25 00:01:11 -0700
committerMathias Agopian <mathias@google.com>2009-06-25 00:01:11 -0700
commit3a7e1832ac940cf5b8f92d3c3e8e8e5303c3c34e (patch)
tree94a910da72d31fbf8c5c684303df7a7d7dc4ce25 /opengl/libs/EGL/egl.cpp
parent2eab9d8d7034ef05cead1ee26667a75061b5f0aa (diff)
downloadframeworks_base-3a7e1832ac940cf5b8f92d3c3e8e8e5303c3c34e.zip
frameworks_base-3a7e1832ac940cf5b8f92d3c3e8e8e5303c3c34e.tar.gz
frameworks_base-3a7e1832ac940cf5b8f92d3c3e8e8e5303c3c34e.tar.bz2
fix [1942438] eglGetCurrentSurface() returns bogus value
Diffstat (limited to 'opengl/libs/EGL/egl.cpp')
-rw-r--r--opengl/libs/EGL/egl.cpp8
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);