summaryrefslogtreecommitdiff
path: root/shaders/ui.frag.glsl
blob: 2284fa0b6918792e9df9a3efd2a8c8f8a8ecc9c8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#version 450

// Sample the glyph atlas (R = coverage 0..1) and mix the cell's bg up to its fg
// by that coverage. Fully opaque: the swapchain is SDR, no blending needed.

layout(set = 2, binding = 0) uniform sampler2D u_atlas;

layout(location = 0) in vec2 v_uv;
layout(location = 1) in vec3 v_fg;
layout(location = 2) in vec3 v_bg;

layout(location = 0) out vec4 o_col;

void main() {
    float a = texture(u_atlas, v_uv).r;
    vec3 col = mix(v_bg, v_fg, a);
    o_col = vec4(col, 1.0);
}