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