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

layout(std140, set = 3, binding = 0) uniform UiUniforms {
    float background_opacity;
} u_ui;

layout(location = 0) in vec4 v_color;

layout(location = 0) out vec4 o_col;

void main() {
    // Preserve shape coverage for destination subtraction. The pipeline uses
    // the matching opacity blend constant for source alpha, so graphics laid
    // over a background with the same opacity do not accumulate opaque seams.
    // Text/cursor draw groups bind opacity 1 instead.
    o_col = vec4(v_color.rgb * clamp(u_ui.background_opacity, 0.0, 1.0), v_color.a);
}