#version 450 core #pragma include ./shared.glsl in VertexData vertexData[]; layout (points) in; layout (triangle_strip, max_vertices = 4) out; layout (location = 2) uniform vec2 uOffset; out FragmentData fragmentData; void main() { VertexData d = vertexData[0]; gl_Position = vec4(vec2(d.posMin.x, d.posMax.y), 0.0, 1.0); fragmentData.texCoords = vec2(d.texMin.x, d.texMax.y); fragmentData.color = d.color; EmitVertex(); gl_Position = vec4(vec2(d.posMin.x, d.posMin.y), 0.0, 1.0); fragmentData.texCoords = vec2(d.texMin.x, d.texMin.y); fragmentData.color = d.color; EmitVertex(); gl_Position = vec4(vec2(d.posMax.x, d.posMax.y), 0.0, 1.0); fragmentData.texCoords = vec2(d.texMax.x, d.texMax.y); fragmentData.color = d.color; EmitVertex(); gl_Position = vec4(vec2(d.posMax.x, d.posMin.y), 0.0, 1.0); fragmentData.texCoords = vec2(d.texMax.x, d.texMin.y); fragmentData.color = d.color; EmitVertex(); EndPrimitive(); }