From 8664e35adf6be85b2c9603171049c5a880ced147 Mon Sep 17 00:00:00 2001 From: Dalai Felinto Date: Sun, 12 Apr 2009 19:46:50 +0000 Subject: [PATCH] 2DFilter bugfixes: [#18154] 2dFilter and motion blur should run only once to all the scenes [#18504] The GL_PROJECTION matrix is being reset by the 2dfilter. --- source/gameengine/Ketsji/KX_KetsjiEngine.cpp | 7 +++---- source/gameengine/Rasterizer/RAS_2DFilterManager.cpp | 8 ++++++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/source/gameengine/Ketsji/KX_KetsjiEngine.cpp b/source/gameengine/Ketsji/KX_KetsjiEngine.cpp index e64ffa95161..aeb80806f6c 100644 --- a/source/gameengine/Ketsji/KX_KetsjiEngine.cpp +++ b/source/gameengine/Ketsji/KX_KetsjiEngine.cpp @@ -898,6 +898,9 @@ void KX_KetsjiEngine::Render() } } // if(m_rasterizer->Stereo()) + // run the 2dfilters and motion blur once for all the scenes + PostRenderFrame(); + EndFrame(); } @@ -1264,16 +1267,12 @@ void KX_KetsjiEngine::RenderFrame(KX_Scene* scene, KX_Camera* cam) scene->GetPhysicsEnvironment()->debugDrawWorld(); m_rasterizer->FlushDebugLines(); - - PostRenderFrame(); } void KX_KetsjiEngine::PostRenderFrame() { - m_rendertools->PushMatrix(); m_rendertools->Render2DFilters(m_canvas); m_rendertools->MotionBlur(m_rasterizer); - m_rendertools->PopMatrix(); } void KX_KetsjiEngine::StopEngine() diff --git a/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp b/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp index 282c7306285..176da51b183 100644 --- a/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp +++ b/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp @@ -435,11 +435,12 @@ void RAS_2DFilterManager::RenderFilters(RAS_ICanvas* canvas) glViewport(0,0, texturewidth, textureheight); glDisable(GL_DEPTH_TEST); + glPushMatrix(); //GL_MODELVIEW + glLoadIdentity(); // GL_MODELVIEW glMatrixMode(GL_TEXTURE); glLoadIdentity(); glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glMatrixMode(GL_MODELVIEW); + glPushMatrix(); glLoadIdentity(); for(passindex =0; passindex& propNames, void* gameObj, RAS_2DFILTER_MODE mode, int pass, STR_String& text)