diff options
author | joakim.landberg <joakim.landberg@intel.com> | 2014-12-01 06:46:01 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-12-01 06:46:01 -0800 |
commit | bb25e44593ff9c318d9fe1dbb5cf30bc2b89eb76 (patch) | |
tree | 0108a45ec371d22d580c4cf5f784d41a4253043c | |
parent | 8a2198a56bc2e5130295453cb1e3039ca876d200 (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.cpp | 7 |
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()); |