]> git.tdb.fi Git - libs/gl.git/blob - tests/glsl/ignore_array_in_geometry_passthrough.glsl
Allocate locations to interface variables
[libs/gl.git] / tests / glsl / ignore_array_in_geometry_passthrough.glsl
1 uniform mat4 vp_matrix;
2 uniform sampler2D tex;
3
4 #pragma MSP stage(vertex)
5 layout(location=0) in vec4 position;
6 layout(location=1) in vec2 texcoord;
7 layout(location=2) in vec4 instance_transform[3];
8 void main()
9 {
10         passthrough;
11         mat4 model_matrix = transpose(mat4(instance_transform[0], instance_transform[1], instance_transform[2], vec4(0.0, 0.0, 0.0, 1.0)));
12         gl_Position = vp_matrix*model_matrix*position;
13 }
14
15 #pragma MSP stage(geometry)
16 layout(triangles) in;
17 layout(triangle_strip, max_vertices=3) out;
18 void main()
19 {
20         for(int i=0; i<3; ++i)
21         {
22                 passthrough[i];
23                 EmitVertex();
24         }
25 }
26
27 #pragma MSP stage(fragment)
28 layout(location=0) out vec4 frag_color;
29 void main()
30 {
31         frag_color = texture(tex, texcoord);
32 }
33
34 /* Expected output: vertex
35 layout(location=0) uniform mat4 vp_matrix;
36 layout(location=0) in vec4 position;
37 layout(location=1) in vec2 texcoord;
38 layout(location=2) in vec4 instance_transform[3];
39 layout(location=0) out vec2 _vs_out_texcoord;
40 void main()
41 {
42   _vs_out_texcoord = texcoord;
43   gl_Position = vp_matrix*transpose(mat4(instance_transform[0], instance_transform[1], instance_transform[2], vec4(0.0, 0.0, 0.0, 1.0)))*position;
44 }
45 */
46
47 /* Expected output: geometry
48 layout(triangles) in;
49 layout(triangle_strip, max_vertices=3) out;
50 layout(location=0) in vec2 _vs_out_texcoord[];
51 layout(location=0) out vec2 _gs_out_texcoord;
52 void main()
53 {
54         for(int i = 0; i<3; ++i)
55         {
56                 gl_Position = gl_in[i].gl_Position;
57                 _gs_out_texcoord = _vs_out_texcoord[i];
58                 EmitVertex();
59         }
60 }
61 */
62
63 /* Expected output: fragment
64 layout(location=4) uniform sampler2D tex;
65 layout(location=0) out vec4 frag_color;
66 layout(location=0) in vec2 _gs_out_texcoord;
67 void main()
68 {
69         frag_color = texture(tex, _gs_out_texcoord);
70 }
71 */