#version 330 core precision highp float; layout(triangles) in; layout(triangle_strip, max_vertices = 4) out; in block { vec2 Color; vec2 Texcoord; flat ivec3 in_a; } In[]; out block { vec4 Color; vec4 a; vec2 b[3]; } Out; void main() { for(int i = 0; i < gl_in.length(); ++i) { gl_Position = gl_in[i].gl_Position; Out.Color = vec4(In[i].Color, 0, 1); EmitVertex(); } EndPrimitive(); }