From bf8c9d6745a0e9054dca28d865df97479767c5a8 Mon Sep 17 00:00:00 2001 From: William McKinnon Date: Wed, 18 Sep 2024 00:33:31 -0400 Subject: shadow premultiply --- render/fx_renderer/fx_pass.c | 3 +-- render/fx_renderer/gles2/shaders/box_shadow.frag | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) (limited to 'render/fx_renderer') diff --git a/render/fx_renderer/fx_pass.c b/render/fx_renderer/fx_pass.c index dd45535..627f142 100644 --- a/render/fx_renderer/fx_pass.c +++ b/render/fx_renderer/fx_pass.c @@ -489,8 +489,7 @@ void fx_render_pass_add_box_shadow(struct fx_gles_render_pass *pass, glUniform2f(renderer->shaders.box_shadow.size, shadow_box.width, shadow_box.height); glUniform2f(renderer->shaders.box_shadow.position, shadow_box.x, shadow_box.y); - render(&shadow_box, &render_region, renderer->shaders.box_shadow.pos_attrib); - + render(&shadow_box, options->clip, renderer->shaders.box_shadow.pos_attrib); pixman_region32_fini(&render_region); glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); diff --git a/render/fx_renderer/gles2/shaders/box_shadow.frag b/render/fx_renderer/gles2/shaders/box_shadow.frag index 9ab9937..e98cf92 100644 --- a/render/fx_renderer/gles2/shaders/box_shadow.frag +++ b/render/fx_renderer/gles2/shaders/box_shadow.frag @@ -82,5 +82,5 @@ void main() { // 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)); - gl_FragColor = vec4(v_color.rgb, shadow_alpha * (1.0 - window_alpha)); + gl_FragColor = vec4(v_color.rgb, shadow_alpha) * (1.0 - window_alpha); } -- cgit v1.2.3