#version 130 uniform int c; uniform usampler2D us2D; in ivec2 x; in vec2 v2a; in float c1D; in vec2 c2D; in vec3 c3D; smooth vec4 c4D; // ?? uniform vec4 v4; void main() { float f = 3; switch (c) { // full switch testing in switch.frag case 1: f = sin(f); break; case 2: f = f * f; default: f = 3.0; } uint i; i = texture(us2D, x).w; // full uint testing in uint.frag i << 3u | 0x8Au >> 1u & 0xFFu; vec3 modfOut, modfIn; vec3 v11 = modf(modfIn, modfOut); float t = trunc(f); vec2 v12 = round(v2a); vec2 v13 = roundEven(v2a); bvec2 b10 = isnan(v2a); bvec4 b11 = isinf(v4); sinh(c1D) + cosh(c1D) * tanh(c2D); asinh(c4D) + acosh(c4D); atanh(c3D); int id = gl_VertexID; gl_ClipDistance[1] = 0.3; } // version 140 features //uniform isamplerBuffer sbuf; //layout(std140) uniform blockName { // int anonMem; //}; void foo88() { int id = gl_InstanceID; // ERROR //id += anonMem; id += texelFetch(id, 8); gl_ClipVertex; // these are all present... gl_Color; gl_LightSource[0]; gl_DepthRange.far; gl_TexCoord; gl_FogFragCoord; gl_FrontColor; } // token pasting #define mac abc##def int mac; #define macr(A,B) A##B int macr(qrs,tuv);