| #version 130 | |
| uniform sampler2D sampler; | |
| varying vec2 coord; | |
| struct lunarStruct1 { | |
| int i; | |
| float f; | |
| }; | |
| struct lunarStruct2 { | |
| int i; | |
| float f; | |
| lunarStruct1 s1_1; | |
| }; | |
| struct lunarStruct3 { | |
| lunarStruct2 s2_1[3]; | |
| int i; | |
| float f; | |
| lunarStruct1 s1_1; | |
| }; | |
| uniform lunarStruct1 foo; | |
| uniform lunarStruct2 foo2[5]; | |
| uniform lunarStruct3 foo3; | |
| uniform int Count; | |
| void main() | |
| { | |
| float scale; | |
| int iLocal = Count; | |
| if (foo3.s2_1[1].i > 0) | |
| scale = foo2[foo3.s2_1[foo.i].i + 2 + ++iLocal].s1_1.f; | |
| else | |
| scale = foo3.s2_1[0].s1_1.f; | |
| //for (int i = 0; i < iLocal; ++i) { | |
| // scale += foo2[i].f; | |
| //} | |
| gl_FragColor = scale * texture2D(sampler, coord); | |
| vec2[3] constructed = vec2[3](coord, vec2(scale), vec2(1.0, 2.0)); | |
| gl_FragColor += vec4(constructed[foo.i], constructed[foo.i]); | |
| } | |