diff options
Diffstat (limited to 'chromium/third_party/skia/src/gpu/gl/GrGLSL.cpp')
-rw-r--r-- | chromium/third_party/skia/src/gpu/gl/GrGLSL.cpp | 42 |
1 files changed, 24 insertions, 18 deletions
diff --git a/chromium/third_party/skia/src/gpu/gl/GrGLSL.cpp b/chromium/third_party/skia/src/gpu/gl/GrGLSL.cpp index dce44f3aff6..468b13b138d 100644 --- a/chromium/third_party/skia/src/gpu/gl/GrGLSL.cpp +++ b/chromium/third_party/skia/src/gpu/gl/GrGLSL.cpp @@ -9,56 +9,62 @@ #include "GrGLShaderVar.h" #include "SkString.h" -GrGLSLGeneration GrGetGLSLGeneration(GrGLBinding binding, const GrGLInterface* gl) { +bool GrGetGLSLGeneration(const GrGLInterface* gl, GrGLSLGeneration* generation) { + SkASSERT(NULL != generation); GrGLSLVersion ver = GrGLGetGLSLVersion(gl); - switch (binding) { - case kDesktop_GrGLBinding: + 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; } - case kES_GrGLBinding: + 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 Binding"); - return k110_GrGLSLGeneration; // suppress warning + SkFAIL("Unknown GL Standard"); + return false; } } const char* GrGetGLSLVersionDecl(const GrGLContextInfo& info) { switch (info.glslGeneration()) { case k110_GrGLSLGeneration: - if (kES_GrGLBinding == info.binding()) { + if (kGLES_GrGLStandard == info.standard()) { // ES2s shader language is based on version 1.20 but is version // 1.00 of the ES language. return "#version 100\n"; } else { - SkASSERT(kDesktop_GrGLBinding == info.binding()); + SkASSERT(kGL_GrGLStandard == info.standard()); return "#version 110\n"; } case k130_GrGLSLGeneration: - SkASSERT(kDesktop_GrGLBinding == info.binding()); + SkASSERT(kGL_GrGLStandard == info.standard()); return "#version 130\n"; case k140_GrGLSLGeneration: - SkASSERT(kDesktop_GrGLBinding == info.binding()); + SkASSERT(kGL_GrGLStandard == info.standard()); return "#version 140\n"; case k150_GrGLSLGeneration: - SkASSERT(kDesktop_GrGLBinding == info.binding()); + SkASSERT(kGL_GrGLStandard == info.standard()); if (info.caps()->isCoreProfile()) { return "#version 150\n"; } else { return "#version 150 compatibility\n"; } default: - GrCrash("Unknown GL version."); + SkFAIL("Unknown GL version."); return ""; // suppress warning } } @@ -67,7 +73,7 @@ namespace { void append_tabs(SkString* outAppend, int tabCnt) { static const char kTabs[] = "\t\t\t\t\t\t\t\t"; while (tabCnt) { - int cnt = GrMin((int)GR_ARRAY_COUNT(kTabs), tabCnt); + int cnt = SkTMin((int)SK_ARRAY_COUNT(kTabs), tabCnt); outAppend->append(kTabs, cnt); tabCnt -= cnt; } |