mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-15 14:50:06 +00:00
87c9503293
The border and color shaders - the ones that do AA - now multiply their coordinates by the scale factor, which gives them better rounding capabilities. This in particular improves the case where they are used in fractional scaling situations, where the scale is defined at the root element.
23 lines
644 B
GLSL
23 lines
644 B
GLSL
#version 420 core
|
|
|
|
#include "clip.frag.glsl"
|
|
#include "rounded-rect.glsl"
|
|
|
|
layout(location = 0) in vec2 inPos;
|
|
layout(location = 1) in vec4 inColor;
|
|
layout(location = 2) in RoundedRect inRect;
|
|
layout(location = 5) in vec4 inBorderWidths;
|
|
|
|
layout(location = 0) out vec4 color;
|
|
|
|
void main()
|
|
{
|
|
RoundedRect routside = inRect;
|
|
RoundedRect rinside = rounded_rect_shrink (routside, inBorderWidths);
|
|
|
|
float alpha = clamp (rounded_rect_coverage (routside, inPos) -
|
|
rounded_rect_coverage (rinside, inPos),
|
|
0.0, 1.0);
|
|
color = clip_scaled (inPos, vec4(inColor.rgb * inColor.a, inColor.a) * alpha);
|
|
}
|