From a681386f28f51f512c195b2a29709459e743348d Mon Sep 17 00:00:00 2001 From: Stenzek Date: Sat, 1 Feb 2025 23:19:12 +1000 Subject: [PATCH] Qt: Fix some options not being disabled with SW --- src/duckstation-qt/graphicssettingswidget.cpp | 14 +++++++++++--- src/duckstation-qt/graphicssettingswidget.ui | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/duckstation-qt/graphicssettingswidget.cpp b/src/duckstation-qt/graphicssettingswidget.cpp index 9fd59b715..392f115be 100644 --- a/src/duckstation-qt/graphicssettingswidget.cpp +++ b/src/duckstation-qt/graphicssettingswidget.cpp @@ -110,6 +110,8 @@ GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsWindow* dialog, QWidget* !m_dialog->hasGameTrait(GameDatabase::Trait::DisableUpscaling)); SettingWidgetBinder::SetAvailability(m_ui.textureFiltering, !m_dialog->hasGameTrait(GameDatabase::Trait::DisableTextureFiltering)); + SettingWidgetBinder::SetAvailability(m_ui.spriteTextureFiltering, + !m_dialog->hasGameTrait(GameDatabase::Trait::DisableTextureFiltering)); SettingWidgetBinder::SetAvailability(m_ui.trueColor, !m_dialog->hasGameTrait(GameDatabase::Trait::DisableTrueColor)); SettingWidgetBinder::SetAvailability(m_ui.pgxpEnable, !m_dialog->hasGameTrait(GameDatabase::Trait::DisablePGXP)); SettingWidgetBinder::SetAvailability(m_ui.widescreenHack, @@ -816,6 +818,10 @@ void GraphicsSettingsWidget::updateRendererDependentOptions() !m_dialog->hasGameTrait(GameDatabase::Trait::DisableTextureFiltering)); m_ui.textureFilteringLabel->setEnabled(is_hardware && !m_dialog->hasGameTrait(GameDatabase::Trait::DisableTextureFiltering)); + m_ui.spriteTextureFiltering->setEnabled(is_hardware && + !m_dialog->hasGameTrait(GameDatabase::Trait::DisableTextureFiltering)); + m_ui.spriteTextureFilteringLabel->setEnabled(is_hardware && + !m_dialog->hasGameTrait(GameDatabase::Trait::DisableTextureFiltering)); m_ui.gpuDownsampleLabel->setEnabled(is_hardware); m_ui.gpuDownsampleMode->setEnabled(is_hardware); m_ui.gpuDownsampleScale->setEnabled(is_hardware); @@ -1047,6 +1053,7 @@ void GraphicsSettingsWidget::onAspectRatioChanged() void GraphicsSettingsWidget::updateResolutionDependentOptions() { + const bool is_hardware = (getEffectiveRenderer() != GPURenderer::Software); const int scale = m_dialog->getEffectiveIntValue("GPU", "ResolutionScale", 1); const GPUTextureFilter texture_filtering = Settings::ParseTextureFilterName( @@ -1055,18 +1062,19 @@ void GraphicsSettingsWidget::updateResolutionDependentOptions() Settings::GetTextureFilterName(Settings::DEFAULT_GPU_TEXTURE_FILTER)) .c_str()) .value_or(Settings::DEFAULT_GPU_TEXTURE_FILTER); - m_ui.forceRoundedTexcoords->setEnabled(scale > 1 && texture_filtering == GPUTextureFilter::Nearest); + m_ui.forceRoundedTexcoords->setEnabled(is_hardware && scale > 1 && texture_filtering == GPUTextureFilter::Nearest); onTrueColorChanged(); } void GraphicsSettingsWidget::onTrueColorChanged() { + const bool is_hardware = (getEffectiveRenderer() != GPURenderer::Software); const int resolution_scale = m_dialog->getEffectiveIntValue("GPU", "ResolutionScale", 1); const bool true_color = m_dialog->getEffectiveBoolValue("GPU", "TrueColor", false); const bool allow_scaled_dithering = (resolution_scale != 1 && !true_color && !m_dialog->hasGameTrait(GameDatabase::Trait::DisableScaledDithering)); - m_ui.scaledDithering->setEnabled(allow_scaled_dithering); - m_ui.accurateBlending->setEnabled(!true_color); + m_ui.scaledDithering->setEnabled(is_hardware && allow_scaled_dithering); + m_ui.accurateBlending->setEnabled(is_hardware && !true_color); } void GraphicsSettingsWidget::onDownsampleModeChanged() diff --git a/src/duckstation-qt/graphicssettingswidget.ui b/src/duckstation-qt/graphicssettingswidget.ui index 0ae4861da..469ea0c58 100644 --- a/src/duckstation-qt/graphicssettingswidget.ui +++ b/src/duckstation-qt/graphicssettingswidget.ui @@ -254,7 +254,7 @@ - + Sprite Texture Filtering: