| #version 300 es |
| |
| precision mediump float; |
| |
| struct S { |
| vec4 u; |
| uvec4 v; |
| lowp isampler3D sampler; |
| vec3 w; |
| struct T1 { // ERROR |
| int a; |
| } t; |
| }; |
| |
| uniform S s; |
| |
| uniform fooBlock { |
| uvec4 bv; |
| uniform mat2 bm2; |
| lowp isampler2D sampler; // ERROR |
| struct T2 { // ERROR |
| int a; |
| } t; |
| S fbs; // ERROR, contains a sampler |
| }; |
| |
| uniform barBlock { |
| uvec4 nbv; |
| int ni; |
| } inst; |
| |
| uniform barBlockArray { |
| uvec4 nbv; |
| int ni; |
| } insts[4]; |
| |
| uniform unreferenced { |
| float f; |
| uint u; |
| }; |
| |
| void main() |
| { |
| texture(s.sampler, vec3(inst.ni, bv.y, insts[2].nbv.z)); |
| insts[s.v.x]; // ERROR |
| fooBlock; // ERROR |
| mat4(s); // ERROR |
| int insts; |
| float barBlock; |
| mat4(barBlock); |
| mat4(unreferenced); // ERROR, bad type |
| ++s; // ERROR |
| inst - 1; // ERROR |
| ++barBlock; |
| 2 * barBlockArray; // ERROR |
| } |
| |
| int fooBlock; // ERROR, redef. |