From 04f7dd02fd4f9f85ceb8a7294f35c138987ff58e Mon Sep 17 00:00:00 2001 From: kd-11 Date: Sun, 22 Mar 2026 17:25:31 +0300 Subject: [PATCH] overlays: Fix SDF rendering when scrolling is involved --- rpcs3/Emu/RSX/Overlays/overlay_controls.cpp | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/rpcs3/Emu/RSX/Overlays/overlay_controls.cpp b/rpcs3/Emu/RSX/Overlays/overlay_controls.cpp index b311dff7fb..a3ab1239af 100644 --- a/rpcs3/Emu/RSX/Overlays/overlay_controls.cpp +++ b/rpcs3/Emu/RSX/Overlays/overlay_controls.cpp @@ -293,6 +293,12 @@ namespace rsx { v += vertex(x_offset, y_offset, 0.f, 0.f); } + + if (draw_commands[n].config.sdf_config.func != sdf_function::none) + { + draw_commands[n].config.sdf_config.cx += x_offset; + draw_commands[n].config.sdf_config.cy += y_offset; + } } } @@ -309,6 +315,12 @@ namespace rsx v += vertex(x_offset, y_offset, 0.f, 0.f); } + if (draw_commands[n].config.sdf_config.func != sdf_function::none) + { + draw_commands[n].config.sdf_config.cx += x_offset; + draw_commands[n].config.sdf_config.cy += y_offset; + } + draw_commands[n].config.clip_rect = clip_rect; draw_commands[n].config.clip_region = true; } @@ -621,14 +633,14 @@ namespace rsx void overlay_element::configure_sdf(compiled_resource::command_config& config, sdf_function func) { - const f32 rx = padding_left + static_cast(x); + const f32 rx = static_cast(x) + padding_left; const f32 rw = static_cast(w) - (padding_left + padding_right); - const f32 ry = padding_top + static_cast(y); + const f32 ry = static_cast(y) + padding_top; const f32 rh = static_cast(h) - (padding_top + padding_bottom); config.sdf_config.func = func; - config.sdf_config.cx = margin_left + rx + (rw / 2.f); - config.sdf_config.cy = margin_top + ry + (rh / 2.f); + config.sdf_config.cx = rx + (rw / 2.f); + config.sdf_config.cy = ry + (rh / 2.f); config.sdf_config.hx = rw / 2.f; config.sdf_config.hy = rh / 2.f; config.sdf_config.br = 0.f;