#version 140 #extension GL_ARB_enhanced_layouts : require in vec4 k; out vec4 o; in float gl_ClipDistance[5]; layout(row_major) uniform; uniform sampler2D samp2Da[3]; layout(std140) uniform bn { layout(row_major) mat4 matra[4]; layout(column_major) mat4 matca[4]; layout(row_major) mat4 matr; layout(column_major) mat4 matc; layout(align=512, offset=1024) mat4 matrdef; }; uniform sampler2DRect sampR; uniform isamplerBuffer sampB; float foo(); void main() { o.y = gl_ClipDistance[2]; o.z = gl_ClipDistance[int(k)]; o.w = float(textureSize(sampR) + textureSize(sampB)) / 100.0; o.z = foo(); } // Test extra-function initializers float i1 = gl_FrontFacing ? -2.0 : 2.0; float i2 = 102; float foo() { return i1 + i2; } // test arrayed block layout(std140) uniform bi { vec3 v[2]; } bname[4];