#version 450
// Immediate-mode UI: pixel-space quads for text glyphs, solid rects and thumbnails.
layout(location = 0) in vec2 in_pos; // pixels, top-left origin
layout(location = 1) in vec2 in_uv;
layout(location = 2) in vec4 in_color; // straight alpha
layout(location = 3) in float in_tex; // 0: R8 atlas coverage, 1: RGBA thumbnail atlas
layout(location = 0) out vec2 uv;
layout(location = 1) out vec4 color;
layout(location = 2) out float tex;
layout(push_constant) uniform Push { vec2 screen; float hdr_white; } pc;
void main() {
vec2 ndc = in_pos / pc.screen * 2.0 - 1.0; // Vulkan NDC: (-1,-1) top-left
gl_Position = vec4(ndc, 0.0, 1.0);
uv = in_uv;
color = in_color;
tex = in_tex;
}