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);
}
|