diff options
author | amy <[email protected]> | 2024-10-27 19:14:24 -0500 |
---|---|---|
committer | GitHub <[email protected]> | 2024-10-27 19:14:24 -0500 |
commit | 5eaf99e89af029623297f08d684cd98449c81eb3 (patch) | |
tree | 6d139a90abffb3a706fdc40126c0701abfb8cd79 /render/fx_renderer/gles2/shaders | |
parent | 042ed3a4c2667d04613fe6800700e9b1943fdb70 (diff) | |
parent | d998099612f0397234910ce753859ee127ec5b45 (diff) |
Diffstat (limited to 'render/fx_renderer/gles2/shaders')
-rw-r--r-- | render/fx_renderer/gles2/shaders/box_shadow.frag | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/render/fx_renderer/gles2/shaders/box_shadow.frag b/render/fx_renderer/gles2/shaders/box_shadow.frag index 1980434..ff8ac74 100644 --- a/render/fx_renderer/gles2/shaders/box_shadow.frag +++ b/render/fx_renderer/gles2/shaders/box_shadow.frag @@ -11,9 +11,11 @@ varying vec2 v_texcoord; uniform vec2 position; uniform vec2 size; -uniform vec2 offset; uniform float blur_sigma; uniform float corner_radius; +uniform vec2 window_position; +uniform vec2 window_half_size; +uniform float window_corner_radius; float gaussian(float x, float sigma) { const float pi = 3.141592653589793; @@ -80,8 +82,8 @@ void main() { // dither the alpha to break up color bands shadow_alpha += (random() - 0.5) / 128.0; - // get the window alpha so we can render around the window (fix pixel gap by adding 0.5 to radius) - float window_alpha = 1.0 - smoothstep(-1.0, 1.0, roundRectSDF((size * 0.5) - blur_sigma, position + blur_sigma, corner_radius + 0.5)); + // get the window alpha so we can render around the window (fix pixel gap by adding 1.0 to radius) + float window_alpha = smoothstep(-1.0, 1.0, roundRectSDF(window_half_size, window_position, window_corner_radius + 1.0)); - gl_FragColor = vec4(v_color.rgb, shadow_alpha) * (1.0 - window_alpha); + gl_FragColor = vec4(v_color.rgb, shadow_alpha) * window_alpha; } |