diff options
author | commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2014-04-30 01:26:04 +0000 |
---|---|---|
committer | commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2014-04-30 01:26:04 +0000 |
commit | f4e67e3e5e5017284300a61e7bb046723a44b0cf (patch) | |
tree | 8b5008f8f6b70dee5521e4faa8a2afa3851cde4f /src/gpu/gl/GrGLSL.cpp | |
parent | 359e4f0a5d514323650ea55c99fd9e53fe263fe3 (diff) |
Fail to create GrContext when we get a NULL for a GL/GLSL version string
BUG=368107
R=jvanverth@google.com
Author: bsalomon@google.com
Review URL: https://codereview.chromium.org/254083002
git-svn-id: http://skia.googlecode.com/svn/trunk@14452 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/gpu/gl/GrGLSL.cpp')
-rw-r--r-- | src/gpu/gl/GrGLSL.cpp | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/gpu/gl/GrGLSL.cpp b/src/gpu/gl/GrGLSL.cpp index 1ff0850a1d..7587fe8d64 100644 --- a/src/gpu/gl/GrGLSL.cpp +++ b/src/gpu/gl/GrGLSL.cpp @@ -9,27 +9,33 @@ #include "GrGLShaderVar.h" #include "SkString.h" -GrGLSLGeneration GrGetGLSLGeneration(const GrGLInterface* gl) { +bool GrGetGLSLGeneration(const GrGLInterface* gl, GrGLSLGeneration* generation) { + SkASSERT(NULL != generation); GrGLSLVersion ver = GrGLGetGLSLVersion(gl); + if (GR_GLSL_INVALID_VER == ver) { + return false; + } switch (gl->fStandard) { case kGL_GrGLStandard: SkASSERT(ver >= GR_GLSL_VER(1,10)); if (ver >= GR_GLSL_VER(1,50)) { - return k150_GrGLSLGeneration; + *generation = k150_GrGLSLGeneration; } else if (ver >= GR_GLSL_VER(1,40)) { - return k140_GrGLSLGeneration; + *generation = k140_GrGLSLGeneration; } else if (ver >= GR_GLSL_VER(1,30)) { - return k130_GrGLSLGeneration; + *generation = k130_GrGLSLGeneration; } else { - return k110_GrGLSLGeneration; + *generation = k110_GrGLSLGeneration; } + return true; case kGLES_GrGLStandard: // version 1.00 of ES GLSL based on ver 1.20 of desktop GLSL SkASSERT(ver >= GR_GL_VER(1,00)); - return k110_GrGLSLGeneration; + *generation = k110_GrGLSLGeneration; + return true; default: GrCrash("Unknown GL Standard"); - return k110_GrGLSLGeneration; // suppress warning + return false; } } |