diff options
Diffstat (limited to 'chromium/third_party/glslang/src/Test/variableArrayIndex.frag')
-rw-r--r-- | chromium/third_party/glslang/src/Test/variableArrayIndex.frag | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/chromium/third_party/glslang/src/Test/variableArrayIndex.frag b/chromium/third_party/glslang/src/Test/variableArrayIndex.frag new file mode 100644 index 00000000000..18c7e7b7eae --- /dev/null +++ b/chromium/third_party/glslang/src/Test/variableArrayIndex.frag @@ -0,0 +1,48 @@ +#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]); +} + |