]> git.tdb.fi Git - libs/gl.git/blob - tests/glsl/block_name_conflict.glsl
Redesign ExpressionInliner
[libs/gl.git] / tests / glsl / block_name_conflict.glsl
1 #pragma MSP stage(vertex)
2 layout(location=0) in vec4 position;
3 out Output
4 {
5         vec2 texcoord;
6 } vs_out;
7 out vec4 Output;
8 void Output();
9 void main()
10 {
11         vs_out.texcoord = position.xy*0.5+0.5;
12         gl_Position = position;
13 }
14
15 #pragma MSP stage(geometry)
16 layout(triangles) in;
17 layout(triangle_strip, max_vertices=3) out;
18 in Output
19 {
20         vec2 texcoord;
21 } vs_out[];
22 out Output
23 {
24         vec2 texcoord;
25 } gs_out;
26 out Output
27 {
28         vec4 color;
29 };
30 void main()
31 {
32         for(int i=0; i<3; ++i)
33         {
34                 gs_out.texcoord = vs_out[i].texcoord;
35                 gl_Position = gl_in[i].gl_Position;
36                 EmitVertex();
37         }
38 }
39
40 /* Expected error:
41 <test>:7: Multiple definition of 'Output'
42 <test>:3: Previous definition is here
43 <test>:8: Multiple definition of 'Output'
44 <test>:3: Previous definition is here
45 <test>:26: Multiple definition of interface block 'out Output'
46 <test>:22: Previous definition is here
47 */