]> git.tdb.fi Git - libs/gl.git/blob - tests/glsl/variable_assignment_subscript.glsl
Allocate locations to interface variables
[libs/gl.git] / tests / glsl / variable_assignment_subscript.glsl
1 uniform mat4 mvp;
2 uniform int mask_index;
3
4 #pragma MSP stage(vertex)
5 layout(location=0) in vec4 position;
6 layout(location=1) in vec4 color;
7 out VertexOut
8 {
9         vec4 color;
10         vec4 mask_color;
11 } vs_out;
12 void main()
13 {
14         int index = mask_index%4;
15         vs_out.color = color;
16         vs_out.color[index] = 0.0;
17         vs_out.mask_color = vec4(1.0);
18         vs_out.mask_color[index] = 1.0;
19         gl_Position = mvp*position;
20 }
21
22 #pragma MSP stage(fragment)
23 layout(location=0) out vec4 frag_color;
24 void main()
25 {
26         frag_color = vs_out.color+vs_out.mask_color;
27 }
28
29 /* Expected output: vertex
30 layout(location=0) uniform mat4 mvp;
31 layout(location=4) uniform int mask_index;
32 layout(location=0) in vec4 position;
33 layout(location=1) in vec4 color;
34 out VertexOut
35 {
36         vec4 color;
37         vec4 mask_color;
38 } vs_out;
39 void main()
40 {
41         int index = mask_index%4;
42         vs_out.color = color;
43         vs_out.color[index] = 0.0;
44         vs_out.mask_color = vec4(1.0);
45         vs_out.mask_color[index] = 1.0;
46         gl_Position = mvp*position;
47 }
48 /*
49
50 /* Expected output: fragment
51 layout(location=0) out vec4 frag_color;
52 in VertexOut
53 {
54         vec4 color;
55         vec4 mask_color;
56 } vs_out;
57 void main()
58 {
59         frag_color = vs_out.color+vs_out.mask_color;
60 }
61 */