summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/OGL/PostProcessing.cpp
diff options
context:
space:
mode:
authorJules Blok <jules.blok@gmail.com>2014-11-08 15:08:41 +0100
committerJules Blok <jules.blok@gmail.com>2014-11-23 14:27:40 +0100
commit9994ccb3422b88649eb160bf373d4d29b08a4768 (patch)
tree19995375f1444968ecb6ce5ec0ed9457c5bcd23a /Source/Core/VideoBackends/OGL/PostProcessing.cpp
parentf3ddf37d074f80bf40b42995e91db98b4d599534 (diff)
PostProcessing: Invalidate shader when anaglyph stereoscopy is toggled.
Diffstat (limited to 'Source/Core/VideoBackends/OGL/PostProcessing.cpp')
-rw-r--r--Source/Core/VideoBackends/OGL/PostProcessing.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/Source/Core/VideoBackends/OGL/PostProcessing.cpp b/Source/Core/VideoBackends/OGL/PostProcessing.cpp
index 84088459ed..80bdf8eef4 100644
--- a/Source/Core/VideoBackends/OGL/PostProcessing.cpp
+++ b/Source/Core/VideoBackends/OGL/PostProcessing.cpp
@@ -38,6 +38,7 @@ static char s_vertex_shader[] =
OpenGLPostProcessing::OpenGLPostProcessing()
: m_initialized(false)
+ , m_anaglyph(false)
{
CreateHeader();
@@ -160,7 +161,8 @@ void OpenGLPostProcessing::BlitFromTexture(TargetRectangle src, TargetRectangle
void OpenGLPostProcessing::ApplyShader()
{
// shader didn't changed
- if (m_initialized && m_config.GetShader() == g_ActiveConfig.sPostProcessingShader)
+ if (m_initialized && m_config.GetShader() == g_ActiveConfig.sPostProcessingShader &&
+ ((g_ActiveConfig.iStereoMode == STEREO_ANAGLYPH) == m_anaglyph))
return;
m_shader.Destroy();
@@ -222,6 +224,7 @@ void OpenGLPostProcessing::ApplyShader()
std::string glsl_name = "option_" + it.first;
m_uniform_bindings[it.first] = glGetUniformLocation(m_shader.glprogid, glsl_name.c_str());
}
+ m_anaglyph = g_ActiveConfig.iStereoMode == STEREO_ANAGLYPH;
m_initialized = true;
}