diff options
| author | Bryan Jacobs <b@q3q.us> | 2024-08-15 17:20:00 +1000 |
|---|---|---|
| committer | Bryan Jacobs <b@q3q.us> | 2024-08-22 07:11:43 +1000 |
| commit | 7ec6d116e8ee94bee8bdecf2bf2801ea45f09432 (patch) | |
| tree | 3a6ade09680357339872b26b8c329ba3787fe256 /Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp | |
| parent | 93617e96c3c208e032f31053e1b02f6c9ddc35e9 (diff) | |
Graphics: Adapt aspect ratio when SBS/TAB 3D is used
Adds support for choosing to present the full resolution
independently to each eye when using side-by-side or
top-and-bottom 3D.
Diffstat (limited to 'Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp')
| -rw-r--r-- | Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp b/Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp index f70b01ef6a..897eea6be6 100644 --- a/Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp +++ b/Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp @@ -213,8 +213,12 @@ void EnhancementsWidget::CreateWidgets() m_3d_depth = new ConfigSlider(0, Config::GFX_STEREO_DEPTH_MAXIMUM, Config::GFX_STEREO_DEPTH); m_3d_convergence = new ConfigSlider(0, Config::GFX_STEREO_CONVERGENCE_MAXIMUM, Config::GFX_STEREO_CONVERGENCE, 100); + m_3d_swap_eyes = new ConfigBool(tr("Swap Eyes"), Config::GFX_STEREO_SWAP_EYES); + m_3d_per_eye_resolution = + new ConfigBool(tr("Use Full Resolution Per Eye"), Config::GFX_STEREO_PER_EYE_RESOLUTION_FULL); + stereoscopy_layout->addWidget(new QLabel(tr("Stereoscopic 3D Mode:")), 0, 0); stereoscopy_layout->addWidget(m_3d_mode, 0, 1); stereoscopy_layout->addWidget(new QLabel(tr("Depth:")), 1, 0); @@ -222,6 +226,11 @@ void EnhancementsWidget::CreateWidgets() stereoscopy_layout->addWidget(new QLabel(tr("Convergence:")), 2, 0); stereoscopy_layout->addWidget(m_3d_convergence, 2, 1); stereoscopy_layout->addWidget(m_3d_swap_eyes, 3, 0); + stereoscopy_layout->addWidget(m_3d_per_eye_resolution, 4, 0); + + auto current_stereo_mode = Config::Get(Config::GFX_STEREO_MODE); + if (current_stereo_mode != StereoMode::SBS && current_stereo_mode != StereoMode::TAB) + m_3d_per_eye_resolution->hide(); main_layout->addWidget(enhancements_box); main_layout->addWidget(stereoscopy_box); @@ -241,9 +250,16 @@ void EnhancementsWidget::ConnectWidgets() connect(m_3d_mode, &QComboBox::currentIndexChanged, [this] { m_block_save = true; m_configure_color_correction->setEnabled(g_Config.backend_info.bSupportsPostProcessing); - LoadPPShaders(static_cast<StereoMode>(m_3d_mode->currentIndex())); - m_block_save = false; + auto current_stereo_mode = Config::Get(Config::GFX_STEREO_MODE); + LoadPPShaders(current_stereo_mode); + + if (current_stereo_mode == StereoMode::SBS || current_stereo_mode == StereoMode::TAB) + m_3d_per_eye_resolution->show(); + else + m_3d_per_eye_resolution->hide(); + + m_block_save = false; SaveSettings(); }); connect(m_configure_color_correction, &QPushButton::clicked, this, @@ -609,6 +625,10 @@ void EnhancementsWidget::AddDescriptions() static const char TR_3D_SWAP_EYES_DESCRIPTION[] = QT_TR_NOOP( "Swaps the left and right eye. Most useful in side-by-side stereoscopy " "mode.<br><br><dolphin_emphasis>If unsure, leave this unchecked.</dolphin_emphasis>"); + static const char TR_3D_PER_EYE_RESOLUTION_DESCRIPTION[] = + QT_TR_NOOP("Whether each eye gets full or half image resolution when using side-by-side " + "or above-and-below 3D." + "<br><br><dolphin_emphasis>If unsure, leave this unchecked.</dolphin_emphasis>"); static const char TR_FORCE_24BIT_DESCRIPTION[] = QT_TR_NOOP( "Forces the game to render the RGB color channels in 24-bit, thereby increasing " "quality by reducing color banding.<br><br>Has no impact on performance and causes " @@ -679,6 +699,8 @@ void EnhancementsWidget::AddDescriptions() m_3d_convergence->SetTitle(tr("Convergence")); m_3d_convergence->SetDescription(tr(TR_3D_CONVERGENCE_DESCRIPTION)); + m_3d_per_eye_resolution->SetDescription(tr(TR_3D_PER_EYE_RESOLUTION_DESCRIPTION)); + m_3d_swap_eyes->SetDescription(tr(TR_3D_SWAP_EYES_DESCRIPTION)); } |
