#version 430 core layout(location = 0) in vec2 aPos; // screen pixels, origin top-left layout(location = 1) in vec2 aUv; layout(location = 2) in vec4 aColor; uniform vec2 uScreenSize; out vec2 vUv; out vec4 vColor; void main() { // Convert pixel coords (origin top-left, +Y down) to NDC (origin center, +Y up). vec2 ndc = vec2( aPos.x / uScreenSize.x * 2.0 - 1.0, 1.0 - aPos.y / uScreenSize.y * 2.0); gl_Position = vec4(ndc, 0.0, 1.0); vUv = aUv; vColor = aColor; }