diff options
author | Hans-Kristian Arntzen <post@arntzen-software.no> | 2020-06-29 14:23:13 +0300 |
---|---|---|
committer | Hans-Kristian Arntzen <post@arntzen-software.no> | 2020-06-29 14:35:46 +0300 |
commit | 4d79d634f5d03e4a0bc50f518c476793f20370c9 (patch) | |
tree | 74eb3fd1656b9bcb69ec8e66700833978c483b18 /reference/shaders | |
parent | bae76d791597b1a009a268ef7e83f7f445314043 (diff) |
GLSL: Implement switch on ESSL 1.0.
Cannot use switch on legacy ESSL, fallback to plain branches.
Diffstat (limited to 'reference/shaders')
-rw-r--r-- | reference/shaders/legacy/fragment/switch.legacy.frag | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/reference/shaders/legacy/fragment/switch.legacy.frag b/reference/shaders/legacy/fragment/switch.legacy.frag new file mode 100644 index 00000000..9960ce7e --- /dev/null +++ b/reference/shaders/legacy/fragment/switch.legacy.frag @@ -0,0 +1,78 @@ +#version 100 +precision mediump float; +precision highp int; + +varying highp float vIndexF; + +void main() +{ + int vIndex = int(vIndexF); + highp vec4 v = vec4(0.0); + for (int SPIRV_Cross_Dummy = 0; SPIRV_Cross_Dummy < 1; SPIRV_Cross_Dummy++) + { + if (vIndex == 2) + { + v = vec4(0.0, 2.0, 3.0, 4.0); + break; + } + else if ((vIndex == 4) || (vIndex == 5)) + { + v = vec4(1.0, 2.0, 3.0, 4.0); + break; + } + else if ((vIndex == 8) || (vIndex == 9)) + { + v = vec4(40.0, 20.0, 30.0, 40.0); + break; + } + else if (vIndex == 10) + { + v = vec4(10.0); + highp vec4 _43 = v; + highp vec4 _44 = vec4(1.0); + highp vec4 _45 = _43 + _44; + v = _45; + highp vec4 _46 = v; + highp vec4 _47 = vec4(2.0); + highp vec4 _48 = _46 + _47; + v = _48; + break; + } + else if (vIndex == 11) + { + highp vec4 _43 = v; + highp vec4 _44 = vec4(1.0); + highp vec4 _45 = _43 + _44; + v = _45; + highp vec4 _46 = v; + highp vec4 _47 = vec4(2.0); + highp vec4 _48 = _46 + _47; + v = _48; + break; + } + else if (vIndex == 12) + { + highp vec4 _46 = v; + highp vec4 _47 = vec4(2.0); + highp vec4 _48 = _46 + _47; + v = _48; + break; + } + else + { + v = vec4(10.0, 20.0, 30.0, 40.0); + break; + } + } + highp vec4 w = vec4(20.0); + for (int SPIRV_Cross_Dummy = 0; SPIRV_Cross_Dummy < 1; SPIRV_Cross_Dummy++) + { + if ((vIndex == 10) || (vIndex == 20)) + { + w = vec4(40.0); + break; + } + } + gl_FragData[0] = v + w; +} + |