From 8d5a9dc722de8e8e881adf8c7f16e76226a1dad8 Mon Sep 17 00:00:00 2001 From: Darkhost1999 <60384196+Darkhost1999@users.noreply.github.com> Date: Sun, 30 Oct 2022 15:06:53 -0500 Subject: [PATCH] Add Texture lod bias to UI (#12905) --- rpcs3/rpcs3qt/emu_settings_type.h | 2 ++ rpcs3/rpcs3qt/settings_dialog.cpp | 8 ++++++++ rpcs3/rpcs3qt/settings_dialog.ui | 23 +++++++++++++++++++++++ rpcs3/rpcs3qt/tooltips.h | 2 ++ 4 files changed, 35 insertions(+) diff --git a/rpcs3/rpcs3qt/emu_settings_type.h b/rpcs3/rpcs3qt/emu_settings_type.h index 5c2bad36cd..fca7afce85 100644 --- a/rpcs3/rpcs3qt/emu_settings_type.h +++ b/rpcs3/rpcs3qt/emu_settings_type.h @@ -78,6 +78,7 @@ enum class emu_settings_type ShaderPrecisionQuality, Enable3D, AnisotropicFilterOverride, + TextureLodBias, ResolutionScale, MinimumScalableDimension, FsrUpscalingEnable, @@ -259,6 +260,7 @@ inline static const QMap settings_location = { emu_settings_type::RelaxedZCULL, { "Video", "Relaxed ZCULL Sync"}}, { emu_settings_type::PreciseZCULL, { "Video", "Accurate ZCULL stats"}}, { emu_settings_type::AnisotropicFilterOverride, { "Video", "Anisotropic Filter Override"}}, + { emu_settings_type::TextureLodBias, { "Video", "Texture LOD Bias Addend"}}, { emu_settings_type::ResolutionScale, { "Video", "Resolution Scale"}}, { emu_settings_type::MinimumScalableDimension, { "Video", "Minimum Scalable Dimension"}}, { emu_settings_type::VulkanAdapter, { "Video", "Vulkan", "Adapter"}}, diff --git a/rpcs3/rpcs3qt/settings_dialog.cpp b/rpcs3/rpcs3qt/settings_dialog.cpp index 6e02427479..3f674fe6a9 100644 --- a/rpcs3/rpcs3qt/settings_dialog.cpp +++ b/rpcs3/rpcs3qt/settings_dialog.cpp @@ -730,6 +730,14 @@ settings_dialog::settings_dialog(std::shared_ptr gui_settings, std ui->fsrSharpeningStrength->setValue(fsr_sharpening_strength_def); }); + // DoubleSpinBoxes + m_emu_settings->EnhanceDoubleSpinBox(ui->TextureLODBias, emu_settings_type::TextureLodBias); + SubscribeTooltip(ui->gb_Level_of_Detail, tooltips.settings.texture_lod_bias); + connect(ui->TextureLODBiasReset, &QAbstractButton::clicked, [this]() + { + ui->TextureLODBias->setValue(stod(m_emu_settings->GetSettingDefault(emu_settings_type::TextureLodBias))); + }); + // Remove renderers from the renderer Combobox if not supported for (const auto& renderer : r_creator->renderers) { diff --git a/rpcs3/rpcs3qt/settings_dialog.ui b/rpcs3/rpcs3qt/settings_dialog.ui index 5f9e248472..dd2839a2db 100644 --- a/rpcs3/rpcs3qt/settings_dialog.ui +++ b/rpcs3/rpcs3qt/settings_dialog.ui @@ -849,6 +849,29 @@ + + + + Level of Detail + + + + + + + + + + + Reset + + + + + + + + diff --git a/rpcs3/rpcs3qt/tooltips.h b/rpcs3/rpcs3qt/tooltips.h index 00bd4ff8ad..4428f24dc9 100644 --- a/rpcs3/rpcs3qt/tooltips.h +++ b/rpcs3/rpcs3qt/tooltips.h @@ -184,6 +184,8 @@ public: const QString fsr_upscaling = tr("Enable FidelityFX Super Resolution upscaling filter to improve the look of upscaled images.\nIf the game is rendering at an internal resolution lower than your window resolution, FidelityFX will handle the upscale.\nCan cause visual artifacts.\nDoes not work with stereo 3D output for now."); const QString fsr_rcas_strength = tr("Control the sharpening strength applied by FidelityFX Super Resolution. Higher values will give sharper output but may introduce artifacts."); + const QString texture_lod_bias = tr("Changes Texture sampling accuracy. (Small changes have a big effect.)\nAvoid using values outside the range of -12 to +12 if you're unsure.\n-3 to +3 is plenty for most usecases"); + // gui const QString log_limit = tr("Sets the maximum amount of blocks that the log can display.\nThis usually equals the number of lines.\nSet 0 in order to remove the limit.");