[require] GLSL >= 1.10 [vertex shader] uniform vec4 arg[4]; varying vec4 color; void main() { gl_Position = gl_Vertex; color = arg[int(arg[0].x)]; } [fragment shader] varying vec4 color; void main() { gl_FragColor = color; } [test] uniform vec4 arg[0] 1.0 0.0 0.0 0.0 uniform vec4 arg[1] 0.0 1.0 0.0 0.0 uniform vec4 arg[2] 0.0 0.0 1.0 0.0 uniform vec4 arg[3] 1.0 0.0 1.0 0.0 draw rect -1 -1 2 2 probe rgb 1 1 0.0 1.0 0.0