summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon
diff options
context:
space:
mode:
authorJules Blok <jules.blok@gmail.com>2014-11-08 16:19:15 +0100
committerJules Blok <jules.blok@gmail.com>2014-11-23 14:27:40 +0100
commit0f63186371c4f0bcc784fa8506d18b9514075d29 (patch)
tree2470df87ce474d93f6a8503833058b53283a63d9 /Source/Core/VideoCommon
parent9994ccb3422b88649eb160bf373d4d29b08a4768 (diff)
TextureCache: Add "Mono EFB Depth Copy" stereoscopy option.
Diffstat (limited to 'Source/Core/VideoCommon')
-rw-r--r--Source/Core/VideoCommon/TextureCacheBase.cpp4
-rw-r--r--Source/Core/VideoCommon/TextureCacheBase.h1
-rw-r--r--Source/Core/VideoCommon/VideoConfig.cpp3
-rw-r--r--Source/Core/VideoCommon/VideoConfig.h1
4 files changed, 8 insertions, 1 deletions
diff --git a/Source/Core/VideoCommon/TextureCacheBase.cpp b/Source/Core/VideoCommon/TextureCacheBase.cpp
index e057b379ad..7fa540022d 100644
--- a/Source/Core/VideoCommon/TextureCacheBase.cpp
+++ b/Source/Core/VideoCommon/TextureCacheBase.cpp
@@ -116,7 +116,8 @@ void TextureCache::OnConfigChanged(VideoConfig& config)
g_texture_cache->ClearRenderTargets();
}
- if ((config.iStereoMode > 0) != backup_config.s_stereo_3d)
+ if ((config.iStereoMode > 0) != backup_config.s_stereo_3d ||
+ config.bStereoMonoEFBDepth != backup_config.s_mono_efb_depth)
{
g_texture_cache->DeleteShaders();
g_texture_cache->CompileShaders();
@@ -133,6 +134,7 @@ void TextureCache::OnConfigChanged(VideoConfig& config)
backup_config.s_hires_textures = config.bHiresTextures;
backup_config.s_copy_cache_enable = config.bEFBCopyCacheEnable;
backup_config.s_stereo_3d = config.iStereoMode > 0;
+ backup_config.s_mono_efb_depth = config.bStereoMonoEFBDepth;
}
void TextureCache::Cleanup()
diff --git a/Source/Core/VideoCommon/TextureCacheBase.h b/Source/Core/VideoCommon/TextureCacheBase.h
index 64bc41f19d..d9cd2b8c16 100644
--- a/Source/Core/VideoCommon/TextureCacheBase.h
+++ b/Source/Core/VideoCommon/TextureCacheBase.h
@@ -146,6 +146,7 @@ private:
bool s_hires_textures;
bool s_copy_cache_enable;
bool s_stereo_3d;
+ bool s_mono_efb_depth;
} backup_config;
};
diff --git a/Source/Core/VideoCommon/VideoConfig.cpp b/Source/Core/VideoCommon/VideoConfig.cpp
index d97a5a9377..de2891fa74 100644
--- a/Source/Core/VideoCommon/VideoConfig.cpp
+++ b/Source/Core/VideoCommon/VideoConfig.cpp
@@ -70,6 +70,7 @@ void VideoConfig::Load(const std::string& ini_file)
settings->Get("StereoSeparation", &iStereoSeparation, 50);
settings->Get("StereoFocalLength", &iStereoFocalLength, 30);
settings->Get("StereoSwapEyes", &bStereoSwapEyes, false);
+ settings->Get("StereoMonoEFBDepth", &bStereoMonoEFBDepth, false);
settings->Get("EnablePixelLighting", &bEnablePixelLighting, 0);
settings->Get("FastDepthCalc", &bFastDepthCalc, true);
settings->Get("MSAA", &iMultisampleMode, 0);
@@ -145,6 +146,7 @@ void VideoConfig::GameIniLoad()
CHECK_SETTING("Video_Settings", "StereoSeparation", iStereoSeparation);
CHECK_SETTING("Video_Settings", "StereoFocalLength", iStereoFocalLength);
CHECK_SETTING("Video_Settings", "StereoSwapEyes", bStereoSwapEyes);
+ CHECK_SETTING("Video_Settings", "StereoMonoEFBDepth", bStereoMonoEFBDepth);
CHECK_SETTING("Video_Settings", "EnablePixelLighting", bEnablePixelLighting);
CHECK_SETTING("Video_Settings", "FastDepthCalc", bFastDepthCalc);
CHECK_SETTING("Video_Settings", "MSAA", iMultisampleMode);
@@ -237,6 +239,7 @@ void VideoConfig::Save(const std::string& ini_file)
settings->Set("StereoSeparation", iStereoSeparation);
settings->Set("StereoFocalLength", iStereoFocalLength);
settings->Set("StereoSwapEyes", bStereoSwapEyes);
+ settings->Set("StereoMonoEFBDepth", bStereoMonoEFBDepth);
settings->Set("EnablePixelLighting", bEnablePixelLighting);
settings->Set("FastDepthCalc", bFastDepthCalc);
settings->Set("ShowEFBCopyRegions", bShowEFBCopyRegions);
diff --git a/Source/Core/VideoCommon/VideoConfig.h b/Source/Core/VideoCommon/VideoConfig.h
index 994264e58e..9d926a879b 100644
--- a/Source/Core/VideoCommon/VideoConfig.h
+++ b/Source/Core/VideoCommon/VideoConfig.h
@@ -83,6 +83,7 @@ struct VideoConfig final
int iStereoSeparation;
int iStereoFocalLength;
bool bStereoSwapEyes;
+ bool bStereoMonoEFBDepth;
// Information
bool bShowFPS;