diff options
Diffstat (limited to 'render/fx_renderer/gles2')
-rw-r--r-- | render/fx_renderer/gles2/shaders/box_shadow.frag | 6 |
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); } |