summaryrefslogtreecommitdiffstats
path: root/opengl
diff options
context:
space:
mode:
authorMathias Agopian <mathias@google.com>2010-09-23 11:32:52 -0700
committerMathias Agopian <mathias@google.com>2010-09-23 13:19:02 -0700
commit05c53113e0c73c7cab61edf53524c61c20a547c2 (patch)
treea24217e789461e58d4c2397aa09efd5f4378cab5 /opengl
parent53c155baf8da4e3a07c1b9898311752438ab2ec0 (diff)
downloadframeworks_native-05c53113e0c73c7cab61edf53524c61c20a547c2.zip
frameworks_native-05c53113e0c73c7cab61edf53524c61c20a547c2.tar.gz
frameworks_native-05c53113e0c73c7cab61edf53524c61c20a547c2.tar.bz2
fix [3028370] GL get error should return a valid error if no context is bound.
glGetError() will now always return GL_INVALID_OPERATION if called from a thread with no GL context bound. Change-Id: I28ba458871db051bb4f5a26668a1fa123526869c
Diffstat (limited to 'opengl')
-rw-r--r--opengl/libs/EGL/egl.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/opengl/libs/EGL/egl.cpp b/opengl/libs/EGL/egl.cpp
index 105ebb4..0437263 100644
--- a/opengl/libs/EGL/egl.cpp
+++ b/opengl/libs/EGL/egl.cpp
@@ -437,6 +437,12 @@ static void gl_no_context() {
}
}
+// Always return GL_INVALID_OPERATION from glGetError() when called from
+// a thread without a bound context.
+static GLenum gl_no_context_glGetError() {
+ return GL_INVALID_OPERATION;
+}
+
static void early_egl_init(void)
{
#if !USE_FAST_TLS_KEY
@@ -447,6 +453,9 @@ static void early_egl_init(void)
(uint32_t*)(void*)&gHooksNoContext,
addr,
sizeof(gHooksNoContext));
+
+ gHooksNoContext.gl.glGetError = gl_no_context_glGetError;
+
setGlThreadSpecific(&gHooksNoContext);
}