diff options
Diffstat (limited to 'chromium/third_party/glslang/src/Test/spv.variableArrayIndex.frag')
-rw-r--r-- | chromium/third_party/glslang/src/Test/spv.variableArrayIndex.frag | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/chromium/third_party/glslang/src/Test/spv.variableArrayIndex.frag b/chromium/third_party/glslang/src/Test/spv.variableArrayIndex.frag new file mode 100644 index 00000000000..ab52f548e8d --- /dev/null +++ b/chromium/third_party/glslang/src/Test/spv.variableArrayIndex.frag @@ -0,0 +1,49 @@ +#version 400 + +uniform sampler2D samp2D; +in 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; +}; + + +flat in lunarStruct1 foo; +flat in lunarStruct2 foo2[5]; +flat in lunarStruct3 foo3; +flat in 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 * texture(samp2D, coord); + + vec2[3] constructed = vec2[3](coord, vec2(scale), vec2(1.0, 2.0)); + gl_FragColor += vec4(constructed[foo.i], constructed[foo.i]); +} + |