Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/KhronosGroup/SPIRV-Cross.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Kristian Arntzen <post@arntzen-software.no>2020-06-29 16:22:39 +0300
committerGitHub <noreply@github.com>2020-06-29 16:22:39 +0300
commitb1082c10afe15eef03e8b12d66008388ce2a468c (patch)
treeec1e4eff6abb5a99878fd0ca52dd69ec4dfbdd4d /reference/shaders
parent42096ca4a124f8700052e949a5c6443335d124c4 (diff)
parent4d79d634f5d03e4a0bc50f518c476793f20370c9 (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.frag78
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;
+}
+