| #version 330 |
| |
| in vec4 inVar; |
| out vec4 outVar; |
| |
| const int constInt = 3; |
| |
| uniform int uniformInt; |
| |
| void main() |
| { |
| const int a1 = 2; // okay |
| const int a2 = constInt; // okay |
| const int a3 = uniformInt; // error |
| |
| vec4 c[constInt]; // okay |
| vec4 d[uniformInt]; // error |
| vec4 e[constInt + uniformInt]; // error |
| vec4 f[uniformInt + constInt]; // error |
| |
| vec4 g[int(sin(0.3)) + 1]; // okay |
| } |
| |
| const struct S { |
| vec3 v3; |
| ivec2 iv2; |
| } s = S(vec3(3.0), ivec2(3, constInt + uniformInt)); // ERROR, non-const y componenent |
| |
| const struct S2 { |
| vec3 v3; |
| ivec2 iv2; |
| mat2x4 m; |
| } s2 = S2(vec3(3.0), ivec2(3, constInt), mat2x4(1.0, 2.0, 3.0, inVar.x, 5.0, 6.0, 7.0, 8.0)); // ERROR, non-constant matrix |
| |
| const float f = 3; // okay, type conversion |