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