summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon
diff options
context:
space:
mode:
authorshuffle2 <godisgovernment@gmail.com>2015-10-03 18:10:23 -0700
committershuffle2 <godisgovernment@gmail.com>2015-10-03 18:10:23 -0700
commit81414b4fa2edadf0b2a2bb0bd4df61dd59165eec (patch)
tree4711189a836176019e1cd3913a6bac08b2bd751a /Source/Core/VideoCommon
parentb926061f641692ae31bacbeba304f5941db7d3bc (diff)
parent7c1565b201ed3e1a2579da3e55efa995cbfb3f5d (diff)
Merge pull request #3076 from void-ghost/stereo3d_presets
Stereo3d presets
Diffstat (limited to 'Source/Core/VideoCommon')
-rw-r--r--Source/Core/VideoCommon/VideoBackendBase.h1
-rw-r--r--Source/Core/VideoCommon/VideoConfig.cpp21
-rw-r--r--Source/Core/VideoCommon/VideoConfig.h10
3 files changed, 32 insertions, 0 deletions
diff --git a/Source/Core/VideoCommon/VideoBackendBase.h b/Source/Core/VideoCommon/VideoBackendBase.h
index f6cd1d12bf..8a8a48f1bd 100644
--- a/Source/Core/VideoCommon/VideoBackendBase.h
+++ b/Source/Core/VideoCommon/VideoBackendBase.h
@@ -72,6 +72,7 @@ public:
virtual std::string GetName() const = 0;
virtual std::string GetDisplayName() const { return GetName(); }
+ virtual std::string GetConfigName() const = 0;
virtual void ShowConfig(void*) = 0;
diff --git a/Source/Core/VideoCommon/VideoConfig.cpp b/Source/Core/VideoCommon/VideoConfig.cpp
index 6aadfbf075..ef04dc8287 100644
--- a/Source/Core/VideoCommon/VideoConfig.cpp
+++ b/Source/Core/VideoCommon/VideoConfig.cpp
@@ -96,6 +96,16 @@ void VideoConfig::Load(const std::string& ini_file)
enhancements->Get("StereoConvergence", &iStereoConvergence, 20);
enhancements->Get("StereoSwapEyes", &bStereoSwapEyes, false);
+ //currently these settings are not saved in global config, so we could've initialized them directly
+ for (int i = 0; i < oStereoPresets.size(); ++i)
+ {
+ enhancements->Get(StringFromFormat("StereoConvergence_%d", i), &oStereoPresets[i].depth, iStereoConvergence);
+ enhancements->Get(StringFromFormat("StereoDepth_%d", i), &oStereoPresets[i].convergence, iStereoDepth);
+ }
+ enhancements->Get("StereoActivePreset", &iStereoActivePreset, 0);
+ iStereoConvergence = oStereoPresets[iStereoActivePreset].convergence;
+ iStereoDepth = oStereoPresets[iStereoActivePreset].depth;
+
IniFile::Section* hacks = iniFile.GetOrCreateSection("Hacks");
hacks->Get("EFBAccessEnable", &bEFBAccessEnable, true);
hacks->Get("BBoxEnable", &bBBoxEnable, false);
@@ -200,6 +210,17 @@ void VideoConfig::GameIniLoad()
CHECK_SETTING("Video_Enhancements", "StereoConvergence", iStereoConvergence);
CHECK_SETTING("Video_Enhancements", "StereoSwapEyes", bStereoSwapEyes);
+ //these are not overrides, they are per-game settings, hence no warning
+ IniFile::Section* enhancements = iniFile.GetOrCreateSection("Enhancements");
+ for (int i = 0; i < oStereoPresets.size(); ++i)
+ {
+ enhancements->Get(StringFromFormat("StereoConvergence_%d", i), &oStereoPresets[i].depth, iStereoConvergence);
+ enhancements->Get(StringFromFormat("StereoDepth_%d", i), &oStereoPresets[i].convergence, iStereoDepth);
+ }
+ enhancements->Get("StereoActivePreset", &iStereoActivePreset, 0);
+ iStereoConvergence = oStereoPresets[iStereoActivePreset].convergence;
+ iStereoDepth = oStereoPresets[iStereoActivePreset].depth;
+
CHECK_SETTING("Video_Stereoscopy", "StereoEFBMonoDepth", bStereoEFBMonoDepth);
CHECK_SETTING("Video_Stereoscopy", "StereoDepthPercentage", iStereoDepthPercentage);
CHECK_SETTING("Video_Stereoscopy", "StereoConvergenceMinimum", iStereoConvergenceMinimum);
diff --git a/Source/Core/VideoCommon/VideoConfig.h b/Source/Core/VideoCommon/VideoConfig.h
index f6b4f9e7f0..6504353004 100644
--- a/Source/Core/VideoCommon/VideoConfig.h
+++ b/Source/Core/VideoCommon/VideoConfig.h
@@ -51,6 +51,14 @@ enum StereoMode
STEREO_3DVISION
};
+constexpr int STEREOSCOPY_PRESETS_NUM = 3;
+
+struct StereoscopyPreset final
+{
+ int depth;
+ int convergence;
+};
+
// NEVER inherit from this class.
struct VideoConfig final
{
@@ -84,6 +92,8 @@ struct VideoConfig final
int iStereoDepth;
int iStereoConvergence;
bool bStereoSwapEyes;
+ std::array<StereoscopyPreset, STEREOSCOPY_PRESETS_NUM> oStereoPresets;
+ int iStereoActivePreset;
// Information
bool bShowFPS;