shader_type canvas_item;
//shadertoy 4lKXWD
uniform vec4 bg_color: source_color = vec4(0,0,0,0.1);
uniform float dash_color: hint_range(0.0, 1.0, 0.1) = 1;
uniform float empty_color: hint_range(0.0, 1.0, 0.1) = 0;
const vec2 center = vec2(0.5, 0.5);
void fragment() {
vec2 fw = fwidth(UV);
vec2 dist = abs(UV - center);
if (all(lessThan(dist, center)) && any(greaterThan(dist, center - fw))) {
float dir = (dist.x > dist.y) ? -sign(UV.x - center.x) : sign(UV.y - center.y);
float dash = step(0.5, fract((FRAGCOORD.x + FRAGCOORD.y) * dir / 10.0 + TIME));
float col = mix(dash_color, empty_color, dash);
COLOR = vec4(col, col, col, 1);
} else { COLOR = bg_color; }
}