@@ -127,6 +127,8 @@ GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsWindow* dialog, QWidget*
127127 !m_dialog->hasGameTrait (GameDatabase::Trait::DisableTextureFiltering) ||
128128 !m_dialog->hasGameTrait (GameDatabase::Trait::DisableSpriteTextureFiltering));
129129 SettingWidgetBinder::SetAvailability (m_ui.pgxpEnable , !m_dialog->hasGameTrait (GameDatabase::Trait::DisablePGXP));
130+ SettingWidgetBinder::SetAvailability (m_ui.pgxpDepthBuffer ,
131+ !m_dialog->hasGameTrait (GameDatabase::Trait::DisablePGXPDepthBuffer));
130132 SettingWidgetBinder::SetAvailability (m_ui.widescreenHack ,
131133 !m_dialog->hasGameTrait (GameDatabase::Trait::DisableWidescreen));
132134
@@ -205,14 +207,18 @@ GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsWindow* dialog, QWidget*
205207 !m_dialog->hasGameTrait (GameDatabase::Trait::DisablePGXPColorCorrection));
206208 SettingWidgetBinder::SetAvailability (m_ui.pgxpCulling ,
207209 !m_dialog->hasGameTrait (GameDatabase::Trait::DisablePGXPCulling));
208- SettingWidgetBinder::SetAvailability (m_ui.pgxpPreserveProjPrecision ,
209- !m_dialog->hasDatabaseEntry () ||
210- m_dialog->getDatabaseEntry ()->gpu_pgxp_preserve_proj_fp .value_or (true ));
211210 SettingWidgetBinder::SetForceEnabled (m_ui.pgxpCPU , m_dialog->hasGameTrait (GameDatabase::Trait::ForcePGXPCPUMode));
212211 SettingWidgetBinder::SetForceEnabled (m_ui.pgxpVertexCache ,
213212 m_dialog->hasGameTrait (GameDatabase::Trait::ForcePGXPVertexCache));
214213 SettingWidgetBinder::SetForceEnabled (m_ui.pgxpDisableOn2DPolygons ,
215214 m_dialog->hasGameTrait (GameDatabase::Trait::DisablePGXPOn2DPolygons));
215+ if (auto dbentry = m_dialog->getDatabaseEntry (); dbentry && dbentry->gpu_pgxp_preserve_proj_fp .has_value ())
216+ {
217+ if (*dbentry->gpu_pgxp_preserve_proj_fp )
218+ SettingWidgetBinder::SetForceEnabled (m_ui.pgxpPreserveProjPrecision , true );
219+ else
220+ SettingWidgetBinder::SetAvailability (m_ui.pgxpPreserveProjPrecision , false );
221+ }
216222
217223 // OSD Tab
218224
@@ -977,8 +983,7 @@ void GraphicsSettingsWidget::updatePGXPSettingsEnabled()
977983 !m_dialog->hasGameTrait (GameDatabase::Trait::DisablePGXPColorCorrection));
978984 m_ui.pgxpDepthBuffer ->setEnabled (enabled && !m_dialog->hasGameTrait (GameDatabase::Trait::DisablePGXPDepthBuffer));
979985 m_ui.pgxpPreserveProjPrecision ->setEnabled (
980- enabled &&
981- (!m_dialog->hasDatabaseEntry () || m_dialog->getDatabaseEntry ()->gpu_pgxp_preserve_proj_fp .value_or (true )));
986+ enabled && (!m_dialog->hasDatabaseEntry () || !m_dialog->getDatabaseEntry ()->gpu_pgxp_preserve_proj_fp .has_value ()));
982987 m_ui.pgxpCPU ->setEnabled (enabled && !m_dialog->hasGameTrait (GameDatabase::Trait::ForcePGXPCPUMode));
983988 m_ui.pgxpVertexCache ->setEnabled (enabled && !m_dialog->hasGameTrait (GameDatabase::Trait::ForcePGXPVertexCache));
984989 m_ui.pgxpGeometryTolerance ->setEnabled (enabled);
0 commit comments