summaryrefslogtreecommitdiff
path: root/render/fx_renderer
diff options
context:
space:
mode:
authorWilliam McKinnon <[email protected]>2024-09-20 02:06:12 -0400
committerWilliam McKinnon <[email protected]>2024-09-20 02:06:12 -0400
commitbe3eea191cb9aecea1ddf4f1399bcbb390027998 (patch)
tree011f999489895c6bff323ab4abcee05ae598182a /render/fx_renderer
parentbf8c9d6745a0e9054dca28d865df97479767c5a8 (diff)
fixed shadow damage tracking clip
Diffstat (limited to 'render/fx_renderer')
-rw-r--r--render/fx_renderer/fx_pass.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/render/fx_renderer/fx_pass.c b/render/fx_renderer/fx_pass.c
index 627f142..f26f5e9 100644
--- a/render/fx_renderer/fx_pass.c
+++ b/render/fx_renderer/fx_pass.c
@@ -466,10 +466,10 @@ void fx_render_pass_add_box_shadow(struct fx_gles_render_pass *pass,
pixman_region32_t inner_region;
pixman_region32_init_rect(&inner_region,
- surface_box.x + options->corner_radius * 0.5,
- surface_box.y + options->corner_radius * 0.5,
- fmax(surface_box.width - options->corner_radius, 0),
- fmax(surface_box.height - options->corner_radius, 0));
+ surface_box.x + options->corner_radius * 0.3,
+ surface_box.y + options->corner_radius * 0.3,
+ fmax(surface_box.width - options->corner_radius * 0.6, 0),
+ fmax(surface_box.height - options->corner_radius * 0.6, 0));
pixman_region32_subtract(&render_region, options->clip, &inner_region);
pixman_region32_fini(&inner_region);
@@ -489,7 +489,8 @@ 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, options->clip, renderer->shaders.box_shadow.pos_attrib);
+ // TODO: also account for options->clip
+ render(&shadow_box, &render_region, renderer->shaders.box_shadow.pos_attrib);
pixman_region32_fini(&render_region);
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);