aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar joakim.landberg <joakim.landberg@intel.com>2014-12-01 06:46:01 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2014-12-01 06:46:01 -0800
commitbb25e44593ff9c318d9fe1dbb5cf30bc2b89eb76 (patch)
tree0108a45ec371d22d580c4cf5f784d41a4253043c
parent8a2198a56bc2e5130295453cb1e3039ca876d200 (diff)
Add extra safety check to the EGL context setup.
Adds a check to make sure eglChooseConfig actually found a valid config. Besides checking for EGL errors, we also have to handle the case when no matching configs are found, i.e when num_config is 0. BUG=skia: Review URL: https://codereview.chromium.org/762113003
-rw-r--r--src/gpu/gl/egl/SkCreatePlatformGLContext_egl.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/gpu/gl/egl/SkCreatePlatformGLContext_egl.cpp b/src/gpu/gl/egl/SkCreatePlatformGLContext_egl.cpp
index 6fc8f48373..1974197f3e 100644
--- a/src/gpu/gl/egl/SkCreatePlatformGLContext_egl.cpp
+++ b/src/gpu/gl/egl/SkCreatePlatformGLContext_egl.cpp
@@ -87,7 +87,7 @@ EGLGLContext::EGLGLContext(GrGLStandard forcedGpuAPI)
continue;
}
- EGLint numConfigs;
+ EGLint numConfigs = 0;
const EGLint configAttribs[] = {
EGL_SURFACE_TYPE, EGL_PBUFFER_BIT,
EGL_RENDERABLE_TYPE, kAPIs[api].fRenderableTypeBit,
@@ -104,6 +104,11 @@ EGLGLContext::EGLGLContext(GrGLStandard forcedGpuAPI)
continue;
}
+ if (0 == numConfigs) {
+ SkDebugf("No suitable EGL config found.\n");
+ continue;
+ }
+
fContext = eglCreateContext(fDisplay, surfaceConfig, NULL, kAPIs[api].fContextAttribs);
if (EGL_NO_CONTEXT == fContext) {
SkDebugf("eglCreateContext failed. EGL Error: 0x%08x\n", eglGetError());