summaryrefslogtreecommitdiff
path: root/render
diff options
context:
space:
mode:
authorWilliam McKinnon <[email protected]>2024-09-18 00:33:31 -0400
committerWilliam McKinnon <[email protected]>2024-09-20 01:44:13 -0400
commitbf8c9d6745a0e9054dca28d865df97479767c5a8 (patch)
tree7a75657dc9a644085fdbfd36c5a8df1c1f9275dc /render
parent9b30e2d5e97c455d5a8c0e6b5e37ce50a4e3db81 (diff)
shadow premultiply
Diffstat (limited to 'render')
-rw-r--r--render/fx_renderer/fx_pass.c3
-rw-r--r--render/fx_renderer/gles2/shaders/box_shadow.frag2
2 files changed, 2 insertions, 3 deletions
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);
}