overlays/sdf: Take element padding into account

- Helps to smooth out the outer edges of ellipses and circles
This commit is contained in:
kd-11 2026-03-22 16:36:02 +03:00 committed by kd-11
parent 2bad4f47f1
commit 61b1bd7ead
2 changed files with 10 additions and 4 deletions

View File

@ -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<f32>(x);
const f32 rw = static_cast<f32>(w) - (padding_left + padding_right);
const f32 ry = padding_top + static_cast<f32>(y);
const f32 rh = static_cast<f32>(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;

View File

@ -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;