Vertex Shader:
in vec4 v_color;
flat out vec4 out_color;
in vec2 Position;
void main()
{
gl_Position = vec4(Position,0.0,1.0);
out_color = v_color;
}
Geom shader:
#version 150
#extension GL_EXT_geometry_shader4 : enable
layout (triangles)in;
layout (triangle_strip, max_vertices=4)out;
flat in vec4 out_color[];
flat out vec4 col;
void main()
{
int i;
vec4 vertex;
for(i=0;i<gl_in.length();i++)
{
gl_Position = gl_in[i].gl_Position;
col=out_color[i];
EmitVertex();
}
gl_Position = gl_in[1].gl_Position + vec4(0.5,0.5,0.0,0.0);
col=out_color[1];
EmitVertex();
EndPrimitive();
}
Frag shader:
out vec4 Color;
flat in vec4 col;
void main()
{
Color = vec4(col);
}