GrGLGLSL.cpp revision 086e5354fe7ae60e69c42bdfbc3d03bd8559b44f
1086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.com/*
2086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.com * Copyright 2011 Google Inc.
3086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.com *
4086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.com * Use of this source code is governed by a BSD-style license that can be
5086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.com * found in the LICENSE file.
6086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.com */
7086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.com
8086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.com#include "GrGLSL.h"
9086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.com
10086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.comGrGLSLGeneration GetGLSLGeneration(GrGLBinding binding,
11086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.com                                   const GrGLInterface* gl) {
12086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.com    GrGLSLVersion ver = GrGLGetGLSLVersion(gl);
13086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.com    switch (binding) {
14086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.com        case kDesktop_GrGLBinding:
15086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.com            GrAssert(ver >= GR_GLSL_VER(1,10));
16086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.com            if (ver >= GR_GLSL_VER(1,50)) {
17086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.com                return k150_GLSLGeneration;
18086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.com            } else if (ver >= GR_GLSL_VER(1,30)) {
19086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.com                return k130_GLSLGeneration;
20086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.com            } else {
21086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.com                return k110_GLSLGeneration;
22086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.com            }
23086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.com        case kES2_GrGLBinding:
24086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.com            // version 1.00 of ES GLSL based on ver 1.20 of desktop GLSL
25086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.com            GrAssert(ver >= GR_GL_VER(1,00));
26086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.com            return k110_GLSLGeneration;
27086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.com        default:
28086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.com            GrCrash("Unknown GL Binding");
29086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.com            return k110_GLSLGeneration; // suppress warning
30086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.com    }
31086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.com}
32086e5354fe7ae60e69c42bdfbc3d03bd8559b44ftomhudson@google.com
33