From ca68526ec776069669cf4fa0f11a917d9a9db877 Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Tue, 26 Aug 2014 07:08:37 -0500 Subject: [PATCH] Clear the texture used by PP shaders prior to use. We were generating a texture without ever setting the data to a known value. This happened on the old code as well, just that PP shaders are receiving some love and people are using it and noticing some of its issues. --- Source/Core/VideoBackends/OGL/PostProcessing.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Source/Core/VideoBackends/OGL/PostProcessing.cpp b/Source/Core/VideoBackends/OGL/PostProcessing.cpp index 311756d063..648ed5c76a 100644 --- a/Source/Core/VideoBackends/OGL/PostProcessing.cpp +++ b/Source/Core/VideoBackends/OGL/PostProcessing.cpp @@ -55,7 +55,17 @@ OpenGLPostProcessing::~OpenGLPostProcessing() void OpenGLPostProcessing::BindTargetFramebuffer() { - glBindFramebuffer(GL_DRAW_FRAMEBUFFER, m_enable ? m_fbo : 0); + if (m_enable) + { + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, m_fbo); + // Clear the buffer so there isn't any remaining garbage from the previous post processing shader frame + glClear(GL_COLOR_BUFFER_BIT); + } + else + { + // Bind to default framebuffer if we aren't post processing + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); + } } void OpenGLPostProcessing::BlitToScreen()