diff options
| author | shuffle2 <godisgovernment@gmail.com> | 2015-10-03 18:10:23 -0700 |
|---|---|---|
| committer | shuffle2 <godisgovernment@gmail.com> | 2015-10-03 18:10:23 -0700 |
| commit | 81414b4fa2edadf0b2a2bb0bd4df61dd59165eec (patch) | |
| tree | 4711189a836176019e1cd3913a6bac08b2bd751a /Source/Core/VideoCommon | |
| parent | b926061f641692ae31bacbeba304f5941db7d3bc (diff) | |
| parent | 7c1565b201ed3e1a2579da3e55efa995cbfb3f5d (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.h | 1 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/VideoConfig.cpp | 21 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/VideoConfig.h | 10 |
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; |
