2024-04-22 08:08:37 +02:00
|
|
|
varying vec2 v_vTexcoord;
|
|
|
|
varying vec4 v_vColour;
|
|
|
|
|
|
|
|
uniform vec4 color;
|
2024-06-03 05:44:08 +02:00
|
|
|
uniform int fill;
|
2024-05-31 09:18:09 +02:00
|
|
|
uniform float thickness;
|
|
|
|
uniform float antialias;
|
2024-08-06 12:39:22 +02:00
|
|
|
uniform float radius;
|
2024-04-22 08:08:37 +02:00
|
|
|
|
|
|
|
void main() {
|
2024-05-31 09:18:09 +02:00
|
|
|
float th = thickness == 0.? 0.05 : thickness;
|
|
|
|
float aa = antialias == 0.? 0.05 : antialias;
|
2024-08-06 12:39:22 +02:00
|
|
|
float rr = radius == 0.? 0.5 : radius;
|
2024-04-22 08:08:37 +02:00
|
|
|
|
2024-08-06 12:39:22 +02:00
|
|
|
float dist = length(v_vTexcoord - .5) / rr - (1. - th - aa);
|
2024-06-03 05:44:08 +02:00
|
|
|
float a;
|
|
|
|
|
|
|
|
if(fill == 0) {
|
|
|
|
dist = abs(dist);
|
|
|
|
a = smoothstep(th + aa, th, dist);
|
|
|
|
|
|
|
|
} else if(fill == 1) {
|
|
|
|
a = smoothstep(aa, 0., dist);
|
|
|
|
}
|
|
|
|
|
2024-11-30 12:02:41 +01:00
|
|
|
vec4 c = vec4(color.rgb, color.a * a);
|
2024-04-22 08:08:37 +02:00
|
|
|
|
|
|
|
gl_FragColor = c;
|
|
|
|
}
|