#version 300 es | |
uniform block { | |
mediump float f; | |
} instanceName; | |
struct S { | |
int i; | |
} s; | |
float a[5]; | |
void main() | |
{ | |
bool b; | |
float f; | |
int i; | |
uint u; | |
bvec3 b3; | |
vec3 v3; | |
ivec3 iv3; | |
uvec3 uv3; | |
vec4 v4; | |
ivec4 iv4; | |
uvec4 uv4; | |
mat2 m2; | |
mat4 m4; | |
// These are all errors: | |
instanceName + instanceName; | |
s + s; | |
i + f; | |
u + f; | |
u + i; | |
iv3 *= iv4; | |
iv4 / uv4; | |
i - v3; | |
iv3 + uv3; | |
a * a; | |
b / b; | |
f % f; | |
i % f; | |
f % u; | |
instanceName++; | |
++s; | |
a--; | |
++b3; | |
iv3 < uv3; | |
m2 > m2; | |
m2 != m4; | |
i >= u; | |
a <= a; | |
b > b; | |
b && b3; | |
b3 ^^ b3; | |
b3 || b; | |
i && i; | |
u || u; | |
m2 ^^ m2; | |
!u; | |
!i; | |
!m2; | |
!v3; | |
!a; | |
~f; | |
~m4; | |
~v3; | |
~a; | |
~instanceName; | |
i << iv3; | |
u << uv3; | |
i >> f; | |
f >> i; | |
m4 >> i; | |
a >> u; | |
iv3 >> iv4; | |
i & u; | |
u &= uv3; | |
i | uv3; | |
u & f; | |
m2 | m2; | |
s ^ s; | |
(f = f) = f; | |
// These are all okay: | |
f * v4; | |
u + u; | |
uv4 / u; | |
iv3 -= iv3; | |
i %= 3; | |
uv3 % 4u; | |
--m2; | |
iv4++; | |
m4 != m4; | |
m2 == m2; | |
i <= i; | |
a == a; | |
s != s; | |
b && b; | |
b || b; | |
b ^^ b; | |
!b, uv3; | |
~i; | |
~u; | |
~uv3; | |
~iv3; | |
uv3 <<= i; | |
i >> i; | |
u << u; | |
iv3 >> iv3; | |
i & i; | |
u | u; | |
iv3 ^ iv3; | |
u & uv3; | |
uv3 | u; | |
uv3 &= u; | |
int arr[0x222 & 0xf]; | |
arr[1]; // size 2 | |
int arr2[(uvec2(0, 0x2) | 0x1u).y]; | |
arr2[2]; // size 3 | |
} |