#version 450 core layout(points) in; layout(triangle_strip, max_vertices = 4) out; layout(std140, binding = 0) uniform TheMat { mat4 theMat; }; void main() { vec2 p1 = gl_in[0].gl_Position.xy; vec2 p2 = gl_in[0].gl_Position.zw; gl_Position = theMat * vec4(p1,100,1); EmitVertex(); gl_Position = theMat * vec4(p1,5000,1); EmitVertex(); gl_Position = theMat * vec4(p2,100,1); EmitVertex(); gl_Position = theMat * vec4(p2,5000,1); EmitVertex(); EndPrimitive(); }