1617a3babSopenharmony_ci#version 150 core
2617a3babSopenharmony_ci
3617a3babSopenharmony_cilayout(triangles_adjacency) in;
4617a3babSopenharmony_cilayout(max_vertices = 30) out;
5617a3babSopenharmony_cilayout(stream = 3, triangle_strip) out;
6617a3babSopenharmony_ci
7617a3babSopenharmony_ciin fromVertex {
8617a3babSopenharmony_ci    in vec3 color;
9617a3babSopenharmony_ci} fromV[];
10617a3babSopenharmony_ci
11617a3babSopenharmony_ciout toFragment {
12617a3babSopenharmony_ci    out vec3 color;
13617a3babSopenharmony_ci} toF;
14617a3babSopenharmony_ci
15617a3babSopenharmony_ciout fromVertex {
16617a3babSopenharmony_ci    vec3 color;
17617a3babSopenharmony_ci};
18617a3babSopenharmony_ci
19617a3babSopenharmony_civoid main()
20617a3babSopenharmony_ci{
21617a3babSopenharmony_ci    color = fromV[0].color;
22617a3babSopenharmony_ci    //?? gl_ClipDistance[3] = gl_in[1].gl_ClipDistance[2];
23617a3babSopenharmony_ci    gl_Position = gl_in[0].gl_Position;
24617a3babSopenharmony_ci    gl_PointSize = gl_in[3].gl_PointSize;
25617a3babSopenharmony_ci    gl_PrimitiveID = gl_PrimitiveIDIn;
26617a3babSopenharmony_ci    gl_Layer = 2;
27617a3babSopenharmony_ci
28617a3babSopenharmony_ci    EmitVertex();
29617a3babSopenharmony_ci
30617a3babSopenharmony_ci    color = 2 * fromV[0].color;
31617a3babSopenharmony_ci    gl_Position = 2.0 * gl_in[0].gl_Position;
32617a3babSopenharmony_ci    gl_PointSize = 2.0 * gl_in[3].gl_PointSize;
33617a3babSopenharmony_ci    gl_PrimitiveID = gl_PrimitiveIDIn + 1;
34617a3babSopenharmony_ci    gl_Layer = 3;
35617a3babSopenharmony_ci
36617a3babSopenharmony_ci    EmitVertex();
37617a3babSopenharmony_ci
38617a3babSopenharmony_ci    EndPrimitive();
39617a3babSopenharmony_ci}
40