From 61b1bd7ead64b85658b653ccd8ff61917aa12fda Mon Sep 17 00:00:00 2001 From: kd-11 Date: Sun, 22 Mar 2026 16:36:02 +0300 Subject: [PATCH] overlays/sdf: Take element padding into account - Helps to smooth out the outer edges of ellipses and circles --- rpcs3/Emu/RSX/Overlays/overlay_controls.cpp | 13 +++++++++---- rpcs3/Emu/RSX/Overlays/overlay_slider.cpp | 1 + 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/rpcs3/Emu/RSX/Overlays/overlay_controls.cpp b/rpcs3/Emu/RSX/Overlays/overlay_controls.cpp index 67c9fdf36f..b311dff7fb 100644 --- a/rpcs3/Emu/RSX/Overlays/overlay_controls.cpp +++ b/rpcs3/Emu/RSX/Overlays/overlay_controls.cpp @@ -621,11 +621,16 @@ 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 rw = static_cast(w) - (padding_left + padding_right); + const f32 ry = padding_top + static_cast(y); + const f32 rh = static_cast(h) - (padding_top + padding_bottom); + config.sdf_config.func = func; - config.sdf_config.cx = margin_left + x + (w / 2.f); - config.sdf_config.cy = margin_top + y + (h / 2.f); - config.sdf_config.hx = w / 2.f; - config.sdf_config.hy = h / 2.f; + config.sdf_config.cx = margin_left + rx + (rw / 2.f); + config.sdf_config.cy = margin_top + ry + (rh / 2.f); + config.sdf_config.hx = rw / 2.f; + config.sdf_config.hy = rh / 2.f; config.sdf_config.br = 0.f; config.sdf_config.bw = border_size; config.sdf_config.border_color = border_color; diff --git a/rpcs3/Emu/RSX/Overlays/overlay_slider.cpp b/rpcs3/Emu/RSX/Overlays/overlay_slider.cpp index 0040d5b20d..c0be8cb275 100644 --- a/rpcs3/Emu/RSX/Overlays/overlay_slider.cpp +++ b/rpcs3/Emu/RSX/Overlays/overlay_slider.cpp @@ -36,6 +36,7 @@ namespace rsx::overlays indicator->radius = slider_indicator_radius; indicator->set_size(slider_indicator_dia, slider_indicator_dia); + indicator->set_padding(2); indicator->back_color = color4f(1.f); background->radius = slider_rail_thickness / 2;