summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bgfx/3rdparty/glslang/Test/localAggregates.frag
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/bgfx/3rdparty/glslang/Test/localAggregates.frag')
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/localAggregates.frag72
1 files changed, 72 insertions, 0 deletions
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/localAggregates.frag b/3rdparty/bgfx/3rdparty/glslang/Test/localAggregates.frag
new file mode 100644
index 00000000000..d8a7fb18d2d
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/localAggregates.frag
@@ -0,0 +1,72 @@
+#version 130
+
+uniform sampler2D sampler;
+varying vec2 coord;
+varying vec4 color;
+
+struct s1 {
+ int i;
+ float f;
+};
+
+struct s2 {
+ int i;
+ float f;
+ s1 s1_1;
+ vec4 bleh;
+};
+
+struct s3 {
+ s2 s2_1;
+ int i;
+ float f;
+ s1 s1_1;
+};
+
+
+uniform s1 foo;
+uniform s2 foo2;
+uniform s3 foo3;
+
+uniform float[16] uFloatArray;
+uniform int condition;
+
+void main()
+{
+ s2 locals2;
+ s3 locals3;
+ float localFArray[16];
+ int localIArray[8];
+
+ locals2 = foo3.s2_1;
+
+ if (foo3.s2_1.i > 0) {
+ locals2.s1_1.f = 1.0;
+ localFArray[4] = coord.x;
+ localIArray[2] = foo3.s2_1.i;
+ } else {
+ locals2.s1_1.f = coord.x;
+ localFArray[4] = 1.0;
+ localIArray[2] = 0;
+ }
+
+ if (localIArray[2] == 0)
+ ++localFArray[4];
+
+ float localArray[16];
+ int x = 5;
+ localArray[x] = coord.x;
+
+ float[16] a;
+
+ for (int i = 0; i < 16; i++)
+ a[i] = 0.0;
+
+ if (condition == 1)
+ a = localArray;
+
+ locals2.bleh = color;
+ locals2.bleh.z = coord.y;
+
+ gl_FragColor = locals2.bleh * (localFArray[4] + locals2.s1_1.f + localArray[x] + a[x]) * texture2D(sampler, coord);
+}