| #version 420 core | |
| // testing input arrays without a gl_in[] block redeclaration, see 400.geom for with | |
| int i; | |
| void foo() | |
| { | |
| gl_in.length(); // ERROR | |
| gl_in[1].gl_Position; | |
| gl_in[i].gl_Position; // ERROR | |
| } | |
| layout(triangles) in; | |
| in vec4 color3[3]; | |
| void foo3() | |
| { | |
| gl_in.length(); | |
| gl_in[i].gl_Position; | |
| color3.length(); | |
| } | |
| uniform sampler2D s2D; | |
| in vec2 coord[]; | |
| uniform vec4 v4; | |
| void foo4() | |
| { | |
| const ivec2 offsets[5] = | |
| { | |
| ivec2(0,1), | |
| ivec2(1,-2), | |
| ivec2(0,3), | |
| ivec2(-3,0), | |
| ivec2(2,1) | |
| }; | |
| vec4 v = textureGatherOffset(s2D, coord[0], offsets[i].xy); | |
| offsets[i].xy = ivec2(3); // ERROR | |
| v4.x = 3.2; // ERROR | |
| v4.xy; // should have non-uniform type | |
| } | |
| out gl_PerVertex { | |
| float gl_PointSize[1]; // ERROR, adding array | |
| float gl_ClipDistance; // ERROR, removing array | |
| }; | |
| float foo5() | |
| { | |
| return i; // implicit conversion of return type | |
| } |