summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon
diff options
context:
space:
mode:
authorJordan Woyak <jordan.woyak@gmail.com>2025-11-12 16:43:21 -0600
committerGitHub <noreply@github.com>2025-11-12 16:43:21 -0600
commitc08fda96ca26d207fe5af8a41fff4caaabfda60b (patch)
treebe6ad920febceda9901db932c7a9856de847ba7a /Source/Core/VideoCommon
parent8495e0166819919c3e1b9e162460d749720a0111 (diff)
parent113c86f1b4661c7e300d3867cd26ed26b2640f2a (diff)
Merge pull request #14100 from AndrewGDX/master
Improved stereoscopic 3D settings
Diffstat (limited to 'Source/Core/VideoCommon')
-rw-r--r--Source/Core/VideoCommon/GeometryShaderManager.cpp6
-rw-r--r--Source/Core/VideoCommon/VideoConfig.cpp8
-rw-r--r--Source/Core/VideoCommon/VideoConfig.h6
3 files changed, 8 insertions, 12 deletions
diff --git a/Source/Core/VideoCommon/GeometryShaderManager.cpp b/Source/Core/VideoCommon/GeometryShaderManager.cpp
index 183b16acab..43c934ed28 100644
--- a/Source/Core/VideoCommon/GeometryShaderManager.cpp
+++ b/Source/Core/VideoCommon/GeometryShaderManager.cpp
@@ -54,8 +54,7 @@ void GeometryShaderManager::SetConstants(PrimitiveType prim)
if (xfmem.projection.type == ProjectionType::Perspective)
{
- float offset = (g_ActiveConfig.iStereoDepth / 1000.0f) *
- (g_ActiveConfig.iStereoDepthPercentage / 100.0f);
+ const float offset = g_ActiveConfig.stereo_depth;
constants.stereoparams[0] = g_ActiveConfig.bStereoSwapEyes ? offset : -offset;
constants.stereoparams[1] = g_ActiveConfig.bStereoSwapEyes ? -offset : offset;
}
@@ -64,8 +63,7 @@ void GeometryShaderManager::SetConstants(PrimitiveType prim)
constants.stereoparams[0] = constants.stereoparams[1] = 0;
}
- constants.stereoparams[2] = (float)(g_ActiveConfig.iStereoConvergence *
- (g_ActiveConfig.iStereoConvergencePercentage / 100.0f));
+ constants.stereoparams[2] = g_ActiveConfig.stereo_convergence;
dirty = true;
}
diff --git a/Source/Core/VideoCommon/VideoConfig.cpp b/Source/Core/VideoCommon/VideoConfig.cpp
index d9444efaf4..a15331569d 100644
--- a/Source/Core/VideoCommon/VideoConfig.cpp
+++ b/Source/Core/VideoCommon/VideoConfig.cpp
@@ -162,12 +162,12 @@ void VideoConfig::Refresh()
stereo_mode = Config::Get(Config::GFX_STEREO_MODE);
stereo_per_eye_resolution_full = Config::Get(Config::GFX_STEREO_PER_EYE_RESOLUTION_FULL);
- iStereoDepth = Config::Get(Config::GFX_STEREO_DEPTH);
- iStereoConvergencePercentage = Config::Get(Config::GFX_STEREO_CONVERGENCE_PERCENTAGE);
+ stereo_depth = Config::Get(Config::GFX_STEREO_DEPTH) *
+ Config::Get(Config::GFX_STEREO_DEPTH_PERCENTAGE) * 0.00001f;
+ stereo_convergence = Config::Get(Config::GFX_STEREO_CONVERGENCE) *
+ Config::Get(Config::GFX_STEREO_CONVERGENCE_PERCENTAGE) * 0.01f;
bStereoSwapEyes = Config::Get(Config::GFX_STEREO_SWAP_EYES);
- iStereoConvergence = Config::Get(Config::GFX_STEREO_CONVERGENCE);
bStereoEFBMonoDepth = Config::Get(Config::GFX_STEREO_EFB_MONO_DEPTH);
- iStereoDepthPercentage = Config::Get(Config::GFX_STEREO_DEPTH_PERCENTAGE);
bEFBAccessEnable = Config::Get(Config::GFX_HACK_EFB_ACCESS_ENABLE);
bEFBAccessDeferInvalidation = Config::Get(Config::GFX_HACK_EFB_DEFER_INVALIDATION);
diff --git a/Source/Core/VideoCommon/VideoConfig.h b/Source/Core/VideoCommon/VideoConfig.h
index e42b8e5d85..b826fcb783 100644
--- a/Source/Core/VideoCommon/VideoConfig.h
+++ b/Source/Core/VideoCommon/VideoConfig.h
@@ -310,12 +310,10 @@ struct VideoConfig final
// Stereoscopy
StereoMode stereo_mode{};
bool stereo_per_eye_resolution_full = false;
- int iStereoDepth = 0;
- int iStereoConvergence = 0;
- int iStereoConvergencePercentage = 0;
+ float stereo_depth = 0;
+ float stereo_convergence = 0;
bool bStereoSwapEyes = false;
bool bStereoEFBMonoDepth = false;
- int iStereoDepthPercentage = 0;
// D3D only config, mostly to be merged into the above
int iAdapter = 0;