1*c8dee2aaSAndroid Build Coastguard Worker /* 2*c8dee2aaSAndroid Build Coastguard Worker * Copyright 2021 Google Inc. 3*c8dee2aaSAndroid Build Coastguard Worker * 4*c8dee2aaSAndroid Build Coastguard Worker * Use of this source code is governed by a BSD-style license that can be 5*c8dee2aaSAndroid Build Coastguard Worker * found in the LICENSE file. 6*c8dee2aaSAndroid Build Coastguard Worker */ 7*c8dee2aaSAndroid Build Coastguard Worker 8*c8dee2aaSAndroid Build Coastguard Worker #ifndef SkSLGLSL_DEFINED 9*c8dee2aaSAndroid Build Coastguard Worker #define SkSLGLSL_DEFINED 10*c8dee2aaSAndroid Build Coastguard Worker 11*c8dee2aaSAndroid Build Coastguard Worker namespace SkSL { 12*c8dee2aaSAndroid Build Coastguard Worker 13*c8dee2aaSAndroid Build Coastguard Worker // Limited set of GLSL versions we build shaders for. Caller should round 14*c8dee2aaSAndroid Build Coastguard Worker // down the GLSL version to one of these enums. 15*c8dee2aaSAndroid Build Coastguard Worker enum class GLSLGeneration { 16*c8dee2aaSAndroid Build Coastguard Worker /** 17*c8dee2aaSAndroid Build Coastguard Worker * Desktop GLSL 1.10 and ES2 shading language (based on desktop GLSL 1.20) 18*c8dee2aaSAndroid Build Coastguard Worker */ 19*c8dee2aaSAndroid Build Coastguard Worker k110, 20*c8dee2aaSAndroid Build Coastguard Worker k100es = k110, 21*c8dee2aaSAndroid Build Coastguard Worker /** 22*c8dee2aaSAndroid Build Coastguard Worker * Desktop GLSL 1.30 23*c8dee2aaSAndroid Build Coastguard Worker */ 24*c8dee2aaSAndroid Build Coastguard Worker k130, 25*c8dee2aaSAndroid Build Coastguard Worker /** 26*c8dee2aaSAndroid Build Coastguard Worker * Desktop GLSL 1.40 27*c8dee2aaSAndroid Build Coastguard Worker */ 28*c8dee2aaSAndroid Build Coastguard Worker k140, 29*c8dee2aaSAndroid Build Coastguard Worker /** 30*c8dee2aaSAndroid Build Coastguard Worker * Desktop GLSL 1.50 31*c8dee2aaSAndroid Build Coastguard Worker */ 32*c8dee2aaSAndroid Build Coastguard Worker k150, 33*c8dee2aaSAndroid Build Coastguard Worker /** 34*c8dee2aaSAndroid Build Coastguard Worker * Desktop GLSL 3.30, and ES GLSL 3.00 35*c8dee2aaSAndroid Build Coastguard Worker */ 36*c8dee2aaSAndroid Build Coastguard Worker k330, 37*c8dee2aaSAndroid Build Coastguard Worker k300es = k330, 38*c8dee2aaSAndroid Build Coastguard Worker /** 39*c8dee2aaSAndroid Build Coastguard Worker * Desktop GLSL 4.00 40*c8dee2aaSAndroid Build Coastguard Worker */ 41*c8dee2aaSAndroid Build Coastguard Worker k400, 42*c8dee2aaSAndroid Build Coastguard Worker /** 43*c8dee2aaSAndroid Build Coastguard Worker * Desktop GLSL 4.20 44*c8dee2aaSAndroid Build Coastguard Worker */ 45*c8dee2aaSAndroid Build Coastguard Worker k420, 46*c8dee2aaSAndroid Build Coastguard Worker /** 47*c8dee2aaSAndroid Build Coastguard Worker * ES GLSL 3.10 only TODO Make GLSLCap objects to make this more granular 48*c8dee2aaSAndroid Build Coastguard Worker */ 49*c8dee2aaSAndroid Build Coastguard Worker k310es, 50*c8dee2aaSAndroid Build Coastguard Worker /** 51*c8dee2aaSAndroid Build Coastguard Worker * ES GLSL 3.20 52*c8dee2aaSAndroid Build Coastguard Worker */ 53*c8dee2aaSAndroid Build Coastguard Worker k320es, 54*c8dee2aaSAndroid Build Coastguard Worker }; 55*c8dee2aaSAndroid Build Coastguard Worker 56*c8dee2aaSAndroid Build Coastguard Worker } // namespace SkSL 57*c8dee2aaSAndroid Build Coastguard Worker 58*c8dee2aaSAndroid Build Coastguard Worker #endif 59