Merge pull request #3017 from Armada651/convergence

VideoConfig: Change convergence setting to percentage value.
This commit is contained in:
Markus Wick 2015-12-14 00:14:42 +01:00
commit fe2cbc49f1
8 changed files with 22 additions and 15 deletions

View File

@ -25,4 +25,4 @@ EFBToTextureEnable = False
FastDepthCalc = False FastDepthCalc = False
[Video_Stereoscopy] [Video_Stereoscopy]
StereoConvergenceMinimum = 115 StereoConvergence = 115

View File

@ -18,4 +18,4 @@ EmulationIssues = Classic mode score report needs real xfb. Nes masterpieces and
# Add action replay cheats here. # Add action replay cheats here.
[Video_Stereoscopy] [Video_Stereoscopy]
StereoConvergenceMinimum = 136 StereoConvergence = 136

View File

@ -22,4 +22,4 @@ FastDepthCalc = False
SafeTextureCacheColorSamples = 512 SafeTextureCacheColorSamples = 512
[Video_Stereoscopy] [Video_Stereoscopy]
StereoConvergenceMinimum = 26 StereoConvergence = 26

View File

@ -439,7 +439,9 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title, con
szr_stereo->Add(new wxStaticText(page_enh, wxID_ANY, _("Depth:")), 1, wxALIGN_CENTER_VERTICAL, 0); szr_stereo->Add(new wxStaticText(page_enh, wxID_ANY, _("Depth:")), 1, wxALIGN_CENTER_VERTICAL, 0);
szr_stereo->Add(sep_slider, 0, wxEXPAND | wxRIGHT); szr_stereo->Add(sep_slider, 0, wxEXPAND | wxRIGHT);
wxSlider* const conv_slider = new wxSlider(page_enh, wxID_ANY, vconfig.iStereoConvergence, 0, 500, wxDefaultPosition, wxDefaultSize); conv_slider = new wxSlider(page_enh, wxID_ANY, vconfig.iStereoConvergencePercentage, 0, 200, wxDefaultPosition, wxDefaultSize, wxSL_AUTOTICKS);
conv_slider->ClearTicks();
conv_slider->SetTick(100);
conv_slider->Bind(wxEVT_SLIDER, &VideoConfigDiag::Event_StereoConvergence, this); conv_slider->Bind(wxEVT_SLIDER, &VideoConfigDiag::Event_StereoConvergence, this);
RegisterControl(conv_slider, wxGetTranslation(stereo_convergence_desc)); RegisterControl(conv_slider, wxGetTranslation(stereo_convergence_desc));

View File

@ -168,7 +168,12 @@ protected:
void Event_StereoConvergence(wxCommandEvent &ev) void Event_StereoConvergence(wxCommandEvent &ev)
{ {
vconfig.iStereoConvergence = ev.GetInt(); // Snap the slider
int value = ev.GetInt();
if (90 < value && value < 110)
conv_slider->SetValue(100);
vconfig.iStereoConvergencePercentage = conv_slider->GetValue();
ev.Skip(); ev.Skip();
} }
@ -256,6 +261,7 @@ protected:
wxStaticText* text_aamode; wxStaticText* text_aamode;
wxChoice* choice_aamode; wxChoice* choice_aamode;
wxSlider* conv_slider;
wxStaticText* label_display_resolution; wxStaticText* label_display_resolution;

View File

@ -63,7 +63,7 @@ void GeometryShaderManager::SetConstants()
constants.stereoparams[0] = constants.stereoparams[1] = 0; constants.stereoparams[0] = constants.stereoparams[1] = 0;
} }
constants.stereoparams[2] = (float)(g_ActiveConfig.iStereoConvergenceMinimum + g_ActiveConfig.iStereoConvergence); constants.stereoparams[2] = (float)(g_ActiveConfig.iStereoConvergence * (g_ActiveConfig.iStereoConvergencePercentage / 100.0f));
dirty = true; dirty = true;
} }

View File

@ -44,7 +44,7 @@ VideoConfig::VideoConfig()
// Game-specific stereoscopy settings // Game-specific stereoscopy settings
bStereoEFBMonoDepth = false; bStereoEFBMonoDepth = false;
iStereoDepthPercentage = 100; iStereoDepthPercentage = 100;
iStereoConvergenceMinimum = 0; iStereoConvergence = 20;
} }
void VideoConfig::Load(const std::string& ini_file) void VideoConfig::Load(const std::string& ini_file)
@ -92,7 +92,7 @@ void VideoConfig::Load(const std::string& ini_file)
enhancements->Get("PostProcessingShader", &sPostProcessingShader, ""); enhancements->Get("PostProcessingShader", &sPostProcessingShader, "");
enhancements->Get("StereoMode", &iStereoMode, 0); enhancements->Get("StereoMode", &iStereoMode, 0);
enhancements->Get("StereoDepth", &iStereoDepth, 20); enhancements->Get("StereoDepth", &iStereoDepth, 20);
enhancements->Get("StereoConvergence", &iStereoConvergence, 20); enhancements->Get("StereoConvergencePercentage", &iStereoConvergencePercentage, 100);
enhancements->Get("StereoSwapEyes", &bStereoSwapEyes, false); enhancements->Get("StereoSwapEyes", &bStereoSwapEyes, false);
//currently these settings are not saved in global config, so we could've initialized them directly //currently these settings are not saved in global config, so we could've initialized them directly
@ -222,7 +222,6 @@ void VideoConfig::GameIniLoad()
CHECK_SETTING("Video_Stereoscopy", "StereoEFBMonoDepth", bStereoEFBMonoDepth); CHECK_SETTING("Video_Stereoscopy", "StereoEFBMonoDepth", bStereoEFBMonoDepth);
CHECK_SETTING("Video_Stereoscopy", "StereoDepthPercentage", iStereoDepthPercentage); CHECK_SETTING("Video_Stereoscopy", "StereoDepthPercentage", iStereoDepthPercentage);
CHECK_SETTING("Video_Stereoscopy", "StereoConvergenceMinimum", iStereoConvergenceMinimum);
CHECK_SETTING("Video_Hacks", "EFBAccessEnable", bEFBAccessEnable); CHECK_SETTING("Video_Hacks", "EFBAccessEnable", bEFBAccessEnable);
CHECK_SETTING("Video_Hacks", "BBoxEnable", bBBoxEnable); CHECK_SETTING("Video_Hacks", "BBoxEnable", bBBoxEnable);
@ -309,7 +308,7 @@ void VideoConfig::Save(const std::string& ini_file)
enhancements->Set("PostProcessingShader", sPostProcessingShader); enhancements->Set("PostProcessingShader", sPostProcessingShader);
enhancements->Set("StereoMode", iStereoMode); enhancements->Set("StereoMode", iStereoMode);
enhancements->Set("StereoDepth", iStereoDepth); enhancements->Set("StereoDepth", iStereoDepth);
enhancements->Set("StereoConvergence", iStereoConvergence); enhancements->Set("StereoConvergencePercentage", iStereoConvergencePercentage);
enhancements->Set("StereoSwapEyes", bStereoSwapEyes); enhancements->Set("StereoSwapEyes", bStereoSwapEyes);
IniFile::Section* hacks = iniFile.GetOrCreateSection("Hacks"); IniFile::Section* hacks = iniFile.GetOrCreateSection("Hacks");

View File

@ -88,10 +88,6 @@ struct VideoConfig final
bool bForceFiltering; bool bForceFiltering;
int iMaxAnisotropy; int iMaxAnisotropy;
std::string sPostProcessingShader; std::string sPostProcessingShader;
int iStereoMode;
int iStereoDepth;
int iStereoConvergence;
bool bStereoSwapEyes;
std::array<StereoscopyPreset, STEREOSCOPY_PRESETS_NUM> oStereoPresets; std::array<StereoscopyPreset, STEREOSCOPY_PRESETS_NUM> oStereoPresets;
int iStereoActivePreset; int iStereoActivePreset;
@ -136,9 +132,13 @@ struct VideoConfig final
int iSaveTargetId; // TODO: Should be dropped int iSaveTargetId; // TODO: Should be dropped
// Stereoscopy // Stereoscopy
int iStereoMode;
int iStereoDepth;
int iStereoConvergence;
int iStereoConvergencePercentage;
bool bStereoSwapEyes;
bool bStereoEFBMonoDepth; bool bStereoEFBMonoDepth;
int iStereoDepthPercentage; int iStereoDepthPercentage;
int iStereoConvergenceMinimum;
// D3D only config, mostly to be merged into the above // D3D only config, mostly to be merged into the above
int iAdapter; int iAdapter;