summaryrefslogtreecommitdiff
path: root/render/fx_renderer/gles2/shaders/box_shadow.frag
diff options
context:
space:
mode:
authorErik Reider <[email protected]>2024-09-27 04:55:55 +0200
committerGitHub <[email protected]>2024-09-26 22:55:55 -0400
commitf05626176636c49ba27c3ba2b69658f50c9b5730 (patch)
tree6923782fae76afa833aa4f2ebc81ce20aaed881e /render/fx_renderer/gles2/shaders/box_shadow.frag
parentbe3eea191cb9aecea1ddf4f1399bcbb390027998 (diff)
Fixed shadows not respecting offset (#63)
Diffstat (limited to 'render/fx_renderer/gles2/shaders/box_shadow.frag')
-rw-r--r--render/fx_renderer/gles2/shaders/box_shadow.frag6
1 files changed, 5 insertions, 1 deletions
diff --git a/render/fx_renderer/gles2/shaders/box_shadow.frag b/render/fx_renderer/gles2/shaders/box_shadow.frag
index e98cf92..d318c93 100644
--- a/render/fx_renderer/gles2/shaders/box_shadow.frag
+++ b/render/fx_renderer/gles2/shaders/box_shadow.frag
@@ -11,6 +11,7 @@ varying vec2 v_texcoord;
uniform vec2 position;
uniform vec2 size;
+uniform vec2 offset;
uniform float blur_sigma;
uniform float corner_radius;
@@ -80,7 +81,10 @@ void main() {
shadow_alpha += (random() - 0.5) / 128.0;
// get the window alpha so we can render around the window
- float window_alpha = 1.0 - smoothstep(-1.0, 1.0, roundRectSDF((size * 0.5) - blur_sigma, position + blur_sigma, corner_radius));
+ float window_alpha = 1.0 - smoothstep(-1.0, 1.0,
+ roundRectSDF((size * 0.5) - blur_sigma,
+ vec2(position.x + blur_sigma - offset.x, position.y + blur_sigma - offset.y),
+ corner_radius));
gl_FragColor = vec4(v_color.rgb, shadow_alpha) * (1.0 - window_alpha);
}