diff options
author | Hans-Kristian Arntzen <post@arntzen-software.no> | 2020-06-29 16:22:39 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-29 16:22:39 +0300 |
commit | b1082c10afe15eef03e8b12d66008388ce2a468c (patch) | |
tree | ec1e4eff6abb5a99878fd0ca52dd69ec4dfbdd4d /reference/shaders | |
parent | 42096ca4a124f8700052e949a5c6443335d124c4 (diff) | |
parent | 4d79d634f5d03e4a0bc50f518c476793f20370c9 (diff) |
Merge pull request #1410 from KhronosGroup/fix-14062020-06-29
GLSL: Support switch more properly in legacy ESSL
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; +} + |