123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204 |
- #version 120
- in vec4 i; // ERROR
- out vec4 o; // ERROR
- attribute vec2 attv2;
- attribute vec4 attv4;
- uniform sampler2D s2D;
- invariant varying vec2 centTexCoord;
- invariant gl_Position;
- centroid gl_Position; // ERROR
- centroid centroid foo; // ERROR
- invariant gl_Position, gl_PointSize;
- void main()
- {
- centTexCoord = attv2;
- gl_Position = attv4;
- gl_ClipVertex = attv4;
- gl_ClipDistance[1] = 0.2; // ERROR
- vec3[12] a;
- vec4[a.length()] b;
- gl_Position = b[b.length()-1];
- float f[];
- int a1 = f.length(); // ERROR
- float f[7];
- int aa = f.length();
- int a2 = f.length; // ERROR
- int a3 = f.length(a); // ERROR
- int a4 = f.flizbit; // ERROR
- int a4 = f.flizbit(); // ERROR
- float md[2][4]; // ERROR
- float[2] md2[4]; // ERROR
- float[2][4] md3; // ERROR
- float md5, md6[2][3]; // ERROR
- float[2] md4, md7[4]; // ERROR
- float md9[2][3] = float[2][3](1, 2, 3, 4, 5, 6); // ERROR
- float md10, md11[2][3] = float[2][3](1, 2, 3, 4, 5, 6); // ERROR
- gl_PointSize = 3.8;
- }
- uniform float initted = 3.4; // okay
- const float concall = sin(0.3);
- int[2][3] foo( // ERROR
- float[2][3] a, // ERROR
- float[2] b[3], // ERROR
- float c[2][3]); // ERROR
- int overloadA(in float f);
- int overloadA(out float f); // ERROR, different qualifiers
- float overloadA(float); // ERROR, different return value for same signature
- float overloadA(out float f, int);
- float overloadA(int i);
- void overloadB(float, const in float) { }
- vec2 overloadC(int, int);
- vec2 overloadC(const in int, float);
- vec2 overloadC(float, int);
- vec2 overloadC(vec2, vec2);
- vec3 overloadD(int, float);
- vec3 overloadD(float, in int);
- vec3 overloadE(float[2]);
- vec3 overloadE(mat2 m);
- vec3 overloadE(vec2 v);
- vec3 overloadF(int);
- vec3 overloadF(float);
- void foo()
- {
- float f;
- int i;
- overloadB(f, f);
- overloadB(f, 2);
- overloadB(1, i);
- overloadC(1); // ERROR
- overloadC(1, i);
- overloadC(vec2(1), vec2(2));
- overloadC(f, 3.0); // ERROR, no way
- overloadC(ivec2(1), vec2(2));
- overloadD(i, f);
- overloadD(f, i);
- overloadD(i, i); // ERROR, ambiguous
- int overloadB; // hiding
- overloadB(1, i); // ERROR
- sin(1);
- texture2D(s2D, ivec2(0));
- clamp(attv4, 0, 1);
- clamp(ivec4(attv4), 0, 1);
- int a[2];
- overloadC(a, 3); // ERROR
- overloadE(a); // ERROR
- overloadE(3.3); // ERROR
- overloadE(vec2(3.3));
- overloadE(mat2(0.5));
- overloadE(ivec4(1)); // ERROR
- overloadE(ivec2(1));
- float b[2];
- overloadE(b);
-
- overloadF(1, 1); // ERROR
- overloadF(1);
- }
- varying vec4 gl_TexCoord[35]; // ERROR, size too big
- // tests for output conversions
- void outFun(in float, out ivec2, in int, out float);
- int outFunRet(in float, out int, const in int, out ivec4);
- ivec2 outFunRet(in float, out ivec4, in int, out ivec4);
- void foo2()
- {
- vec2 v2;
- vec4 v4;
- float f;
- int i;
- outFun(i, v2, i, f);
- outFunRet(i, f, i, v4);
- float ret = outFunRet(i, f, i, v4);
- vec2 ret2 = outFunRet(i, v4, i, v4);
- bool b = any(lessThan(v4, attv4)); // tests aggregate arg to unary built-in
- }
- void noise()
- {
- float f1 = noise1(1.0);
- vec2 f2 = noise2(vec2(1.0));
- vec3 f3 = noise3(vec3(1.0));
- vec4 f4 = noise4(vec4(1.0));
- }
- // version 130 features
- uniform int c;
- attribute ivec2 x;
- attribute vec2 v2a;
- attribute float c1D;
- attribute vec2 c2D;
- attribute vec3 c3D;
- uniform vec4 v4;
- void foo213()
- {
- float f = 3;
- switch (c) { // ERRORs...
- case 1:
- f = sin(f);
- break;
- case 2:
- f = f * f;
- default:
- f = 3.0;
- }
- int i;
- i << 3 | 0x8A >> 1 & 0xFF; // ERRORs...
- vec3 modfOut, modfIn;
- vec3 v11 = modf(modfIn, modfOut); // ERRORS...
- float t = trunc(f);
- vec2 v12 = round(v2a);
- vec2 v13 = roundEven(v2a);
- bvec2 b10 = isnan(v2a);
- bvec4 b11 = isinf(v4);
- sinh(c1D) + // ERRORS...
- cosh(c1D) * tanh(c2D);
- asinh(c4D) + acosh(c4D);
- atanh(c3D);
- int id = gl_VertexID; // ERROR
- gl_ClipDistance[1] = 0.3; // ERROR
- }
- int gl_ModelViewMatrix[] = 0;
- // token pasting (ERRORS...)
- #define mac abc##def
- int mac;
- #define macr(A,B) A ## B
- int macr(qrs,tuv);
|