/* * MIT License * Author: Mark Allyn * * text.vert — vertex shader for FreeType glyph-atlas text rendering. * Each glyph is a textured quad. Vertices are in window pixels * (top-left origin); the shader converts to NDC and passes the * glyph atlas UV coordinates to the fragment shader. */ #version 330 core layout(location = 0) in vec4 aVertex; // xy = screen pos (px), zw = atlas UV out vec2 vTexCoord; uniform vec2 u_viewportSize; // (WINDOW_WIDTH, WINDOW_HEIGHT) void main() { vec2 pos = aVertex.xy; vTexCoord = aVertex.zw; vec2 ndc = vec2( pos.x / u_viewportSize.x * 2.0 - 1.0, -pos.y / u_viewportSize.y * 2.0 + 1.0 ); gl_Position = vec4(ndc, 0.0, 1.0); }