1
0
mirror of https://github.com/RPCS3/rpcs3.git synced 2024-11-22 02:32:36 +01:00

overlays: Ignore 14 in anisotropic settings

This value has no CELL equivalent
This commit is contained in:
Megamouse 2024-09-29 18:12:37 +02:00
parent 7fc31e20b3
commit d379dd4c8d
2 changed files with 15 additions and 6 deletions

View File

@ -43,7 +43,7 @@ namespace rsx
: home_menu_settings_page(x, y, width, height, use_separators, parent, get_localized_string(localized_string_id::HOME_MENU_SETTINGS_VIDEO)) : home_menu_settings_page(x, y, width, height, use_separators, parent, get_localized_string(localized_string_id::HOME_MENU_SETTINGS_VIDEO))
{ {
add_dropdown(&g_cfg.video.frame_limit, "Frame Limit"); add_dropdown(&g_cfg.video.frame_limit, "Frame Limit");
add_unsigned_slider(&g_cfg.video.anisotropic_level_override, "Anisotropic Filter Override", "x", 2, {{0, "Auto"}}); add_unsigned_slider(&g_cfg.video.anisotropic_level_override, "Anisotropic Filter Override", "x", 2, {{0, "Auto"}}, {14});
add_dropdown(&g_cfg.video.output_scaling, "Output Scaling"); add_dropdown(&g_cfg.video.output_scaling, "Output Scaling");
if (g_cfg.video.renderer == video_renderer::vulkan && g_cfg.video.output_scaling == output_scaling_mode::fsr) if (g_cfg.video.renderer == video_renderer::vulkan && g_cfg.video.output_scaling == output_scaling_mode::fsr)
@ -65,7 +65,7 @@ namespace rsx
add_dropdown(&g_cfg.core.sleep_timers_accuracy, "Sleep Timers Accuracy"); add_dropdown(&g_cfg.core.sleep_timers_accuracy, "Sleep Timers Accuracy");
add_signed_slider(&g_cfg.core.max_spurs_threads, "Max SPURS Threads", "", 1); add_signed_slider(&g_cfg.core.max_spurs_threads, "Max SPURS Threads", "", 1);
add_unsigned_slider(&g_cfg.video.driver_wakeup_delay, "Driver Wake-Up Delay", " µs", 20, {}, g_cfg.video.driver_wakeup_delay.min, 800); add_unsigned_slider(&g_cfg.video.driver_wakeup_delay, "Driver Wake-Up Delay", " µs", 20, {}, {}, g_cfg.video.driver_wakeup_delay.min, 800);
add_signed_slider(&g_cfg.video.vblank_rate, "VBlank Frequency", " Hz", 30); add_signed_slider(&g_cfg.video.vblank_rate, "VBlank Frequency", " Hz", 30);
add_checkbox(&g_cfg.video.vblank_ntsc, "VBlank NTSC Fixup"); add_checkbox(&g_cfg.video.vblank_ntsc, "VBlank NTSC Fixup");

View File

@ -127,12 +127,13 @@ namespace rsx
} }
template <u64 Min, u64 Max> template <u64 Min, u64 Max>
void add_unsigned_slider(cfg::uint<Min, Max>* setting, const std::string& text, const std::string& suffix, u64 step_size, std::map<u64, std::string> special_labels = {}, u64 minimum = Min, u64 maximum = Max) void add_unsigned_slider(cfg::uint<Min, Max>* setting, const std::string& text, const std::string& suffix, u64 step_size, std::map<u64, std::string> special_labels = {}, const std::set<u64>& exceptions = {}, u64 minimum = Min, u64 maximum = Max)
{ {
ensure(setting && setting->get_is_dynamic()); ensure(setting && setting->get_is_dynamic());
ensure(!exceptions.contains(minimum) && !exceptions.contains(maximum));
std::unique_ptr<overlay_element> elem = std::make_unique<home_menu_unsigned_slider<Min, Max>>(setting, text, suffix, special_labels, minimum, maximum); std::unique_ptr<overlay_element> elem = std::make_unique<home_menu_unsigned_slider<Min, Max>>(setting, text, suffix, special_labels, minimum, maximum);
add_item(elem, [this, setting, text, step_size, minimum, maximum](pad_button btn) -> page_navigation add_item(elem, [this, setting, text, step_size, minimum, maximum, exceptions](pad_button btn) -> page_navigation
{ {
if (setting) if (setting)
{ {
@ -141,11 +142,19 @@ namespace rsx
{ {
case pad_button::dpad_left: case pad_button::dpad_left:
case pad_button::ls_left: case pad_button::ls_left:
value = step_size > value ? minimum : std::max(value - step_size, minimum); do
{
value = step_size > value ? minimum : std::max(value - step_size, minimum);
}
while (exceptions.contains(value));
break; break;
case pad_button::dpad_right: case pad_button::dpad_right:
case pad_button::ls_right: case pad_button::ls_right:
value = std::min(value + step_size, maximum); do
{
value = std::min(value + step_size, maximum);
}
while (exceptions.contains(value));
break; break;
default: default:
return page_navigation::stay; return page_navigation::stay;