Merge pull request #2891 from dneto0/hlsl-namespace
[platform/upstream/glslang.git] / Test / variableArrayIndex.frag
1 #version 130\r
2 uniform sampler2D sampler;\r
3 varying vec2 coord;\r
4 \r
5 struct lunarStruct1 {\r
6     int i;\r
7     float f;\r
8 };\r
9 \r
10 struct lunarStruct2 {\r
11     int i;\r
12     float f;\r
13     lunarStruct1 s1_1;\r
14 };\r
15 \r
16 struct lunarStruct3 {\r
17     lunarStruct2 s2_1[3];\r
18     int i;\r
19     float f;\r
20     lunarStruct1 s1_1;\r
21 };\r
22 \r
23 \r
24 uniform lunarStruct1 foo;\r
25 uniform lunarStruct2 foo2[5];\r
26 uniform lunarStruct3 foo3;\r
27 uniform int Count;\r
28 \r
29 void main()\r
30 {\r
31     float scale;\r
32     int iLocal = Count;\r
33 \r
34     if (foo3.s2_1[1].i > 0)\r
35         scale = foo2[foo3.s2_1[foo.i].i + 2 + ++iLocal].s1_1.f;\r
36     else\r
37         scale = foo3.s2_1[0].s1_1.f;\r
38 \r
39     //for (int i = 0; i < iLocal; ++i) {\r
40     //  scale += foo2[i].f;\r
41     //}\r
42 \r
43     gl_FragColor =  scale * texture2D(sampler, coord);\r
44 \r
45     vec2[3] constructed = vec2[3](coord, vec2(scale), vec2(1.0, 2.0));\r
46     gl_FragColor += vec4(constructed[foo.i], constructed[foo.i]);\r
47 }\r
48 \r