aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/gl/GrGLSL.cpp
diff options
context:
space:
mode:
authorGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-04-30 01:26:04 +0000
committerGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-04-30 01:26:04 +0000
commitf4e67e3e5e5017284300a61e7bb046723a44b0cf (patch)
tree8b5008f8f6b70dee5521e4faa8a2afa3851cde4f /src/gpu/gl/GrGLSL.cpp
parent359e4f0a5d514323650ea55c99fd9e53fe263fe3 (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.cpp20
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;
}
}