VideoConfig/LocalConfig/HotkeyManager: Added hotkeys for switching stereo-3d presets.

Added 3 depth/convergence presets. They are adjustable via (existing) hotkeys - changes to depth and convergence are applied to current preset.
Added 3 hotkeys for activating presets. Added hotkey for toggle between first and second preset.
Added OSD message for convergence/depth changes.
Presets are saved into per-game configs.
This commit is contained in:
ghost
2015-09-22 05:28:26 +03:00
parent 07e4b4f7c4
commit 7c1565b201
5 changed files with 90 additions and 4 deletions

View File

@ -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);