summaryrefslogtreecommitdiff
path: root/sway/desktop/shaders/corner.frag
diff options
context:
space:
mode:
Diffstat (limited to 'sway/desktop/shaders/corner.frag')
-rw-r--r--sway/desktop/shaders/corner.frag36
1 files changed, 0 insertions, 36 deletions
diff --git a/sway/desktop/shaders/corner.frag b/sway/desktop/shaders/corner.frag
deleted file mode 100644
index 7699299a..00000000
--- a/sway/desktop/shaders/corner.frag
+++ /dev/null
@@ -1,36 +0,0 @@
-precision mediump float;
-varying vec4 v_color;
-varying vec2 v_texcoord;
-
-uniform bool is_top_left;
-uniform bool is_top_right;
-uniform bool is_bottom_left;
-uniform bool is_bottom_right;
-
-uniform vec2 position;
-uniform float radius;
-uniform vec2 half_size;
-uniform float half_thickness;
-
-float roundedBoxSDF(vec2 center, vec2 size, float radius) {
- return length(max(abs(center) - size + radius, 0.0)) - radius;
-}
-
-void main() {
- vec2 center = gl_FragCoord.xy - position - half_size;
- float distance = roundedBoxSDF(center, half_size - half_thickness, radius + half_thickness);
- float smoothedAlphaOuter = 1.0 - smoothstep(-1.0, 1.0, distance - half_thickness);
- // Create an inner circle that isn't as anti-aliased as the outer ring
- float smoothedAlphaInner = 1.0 - smoothstep(-1.0, 0.5, distance + half_thickness);
- gl_FragColor = mix(vec4(0), v_color, smoothedAlphaOuter - smoothedAlphaInner);
-
- if (is_top_left && (center.y > 0.0 || center.x > 0.0)) {
- discard;
- } else if (is_top_right && (center.y > 0.0 || center.x < 0.0)) {
- discard;
- } else if (is_bottom_left && (center.y < 0.0 || center.x > 0.0)) {
- discard;
- } else if (is_bottom_right && (center.y < 0.0 || center.x < 0.0)) {
- discard;
- }
-}