summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/OGL/Render.cpp
diff options
context:
space:
mode:
authorRyan Houdek <Sonicadvance1@gmail.com>2014-08-13 02:41:15 -0500
committerRyan Houdek <Sonicadvance1@gmail.com>2014-08-13 02:41:15 -0500
commitf2a1dd91fe7b94580534b4299803ef9e6cb60d04 (patch)
tree8f94445a0ae3a33f8520a207053b0f789abfcf71 /Source/Core/VideoBackends/OGL/Render.cpp
parente4e44909d5ffa60abf81d4685a156654c463bbf9 (diff)
parent287758f15d07cb6e0c19d861d8134124361d2d30 (diff)
Merge pull request #693 from Sonicadvance1/PP-shaders-improvement
Improved system for post processing shaders.
Diffstat (limited to 'Source/Core/VideoBackends/OGL/Render.cpp')
-rw-r--r--Source/Core/VideoBackends/OGL/Render.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/Source/Core/VideoBackends/OGL/Render.cpp b/Source/Core/VideoBackends/OGL/Render.cpp
index a3bba96fd1..d6881171e7 100644
--- a/Source/Core/VideoBackends/OGL/Render.cpp
+++ b/Source/Core/VideoBackends/OGL/Render.cpp
@@ -641,6 +641,9 @@ void Renderer::Shutdown()
delete s_pfont;
s_pfont = nullptr;
s_ShowEFBCopyRegions.Destroy();
+
+ delete m_post_processor;
+ m_post_processor = nullptr;
}
void Renderer::Init()
@@ -649,6 +652,8 @@ void Renderer::Init()
g_framebuffer_manager = new FramebufferManager(s_target_width, s_target_height,
s_MSAASamples);
+ m_post_processor = new OpenGLPostProcessing();
+
s_pfont = new RasterFont();
ProgramShaderCache::CompileShader(s_ShowEFBCopyRegions,
@@ -1331,7 +1336,7 @@ void Renderer::SwapImpl(u32 xfbAddr, u32 fbWidth, u32 fbHeight,const EFBRectangl
ResetAPIState();
- PostProcessing::Update(s_backbuffer_width, s_backbuffer_height);
+ m_post_processor->Update(s_backbuffer_width, s_backbuffer_height);
UpdateDrawRectangle(s_backbuffer_width, s_backbuffer_height);
TargetRectangle flipped_trc = GetTargetRectangle();
@@ -1354,7 +1359,7 @@ void Renderer::SwapImpl(u32 xfbAddr, u32 fbWidth, u32 fbHeight,const EFBRectangl
if (g_ActiveConfig.bUseXFB)
{
// Render to the real/postprocessing buffer now.
- PostProcessing::BindTargetFramebuffer();
+ m_post_processor->BindTargetFramebuffer();
// draw each xfb source
glBindFramebuffer(GL_READ_FRAMEBUFFER, FramebufferManager::GetXFBFramebuffer());
@@ -1413,7 +1418,7 @@ void Renderer::SwapImpl(u32 xfbAddr, u32 fbWidth, u32 fbHeight,const EFBRectangl
FramebufferManager::ResolveAndGetRenderTarget(rc);
// Render to the real/postprocessing buffer now. (resolve have changed this in msaa mode)
- PostProcessing::BindTargetFramebuffer();
+ m_post_processor->BindTargetFramebuffer();
// always the non-msaa fbo
GLuint fb = s_MSAASamples>1?FramebufferManager::GetResolvedFramebuffer():FramebufferManager::GetEFBFramebuffer();
@@ -1424,7 +1429,7 @@ void Renderer::SwapImpl(u32 xfbAddr, u32 fbWidth, u32 fbHeight,const EFBRectangl
GL_COLOR_BUFFER_BIT, GL_LINEAR);
}
- PostProcessing::BlitToScreen();
+ m_post_processor->BlitToScreen();
glBindFramebuffer(GL_READ_FRAMEBUFFER, 0);