constErrors.frag 816 B

123456789101112131415161718192021222324252627282930313233343536
  1. #version 330
  2. in vec4 inVar;
  3. out vec4 outVar;
  4. const int constInt = 3;
  5. uniform int uniformInt;
  6. void main()
  7. {
  8. const int a1 = 2; // okay
  9. const int a2 = constInt; // okay
  10. const int a3 = uniformInt; // error
  11. vec4 c[constInt]; // okay
  12. vec4 d[uniformInt]; // error
  13. vec4 e[constInt + uniformInt]; // error
  14. vec4 f[uniformInt + constInt]; // error
  15. vec4 g[int(sin(0.3)) + 1]; // okay
  16. }
  17. const struct S {
  18. vec3 v3;
  19. ivec2 iv2;
  20. } s = S(vec3(3.0), ivec2(3, constInt + uniformInt)); // ERROR, non-const y componenent
  21. const struct S2 {
  22. vec3 v3;
  23. ivec2 iv2;
  24. mat2x4 m;
  25. } 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
  26. const float f = 3; // okay, type conversion