[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19687] trunk/blender/source/gameengine: 2DFilter bugfixes:

Dalai Felinto dfelinto at gmail.com
Sun Apr 12 21:46:50 CEST 2009


Revision: 19687
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19687
Author:   dfelinto
Date:     2009-04-12 21:46:50 +0200 (Sun, 12 Apr 2009)

Log Message:
-----------
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.

Modified Paths:
--------------
    trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
    trunk/blender/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp

Modified: trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.cpp	2009-04-12 17:54:07 UTC (rev 19686)
+++ trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.cpp	2009-04-12 19:46:50 UTC (rev 19687)
@@ -898,6 +898,9 @@
 		}
 	} // if(m_rasterizer->Stereo())
 
+	// run the 2dfilters and motion blur once for all the scenes
+	PostRenderFrame();
+
 	EndFrame();
 }
 
@@ -1264,16 +1267,12 @@
 		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()

Modified: trunk/blender/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp
===================================================================
--- trunk/blender/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp	2009-04-12 17:54:07 UTC (rev 19686)
+++ trunk/blender/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp	2009-04-12 19:46:50 UTC (rev 19687)
@@ -435,12 +435,13 @@
 	glViewport(0,0, texturewidth, textureheight);
 
 	glDisable(GL_DEPTH_TEST);
+	glPushMatrix();		//GL_MODELVIEW
+	glLoadIdentity();	// GL_MODELVIEW
 	glMatrixMode(GL_TEXTURE);
 	glLoadIdentity();
 	glMatrixMode(GL_PROJECTION);
+	glPushMatrix();
 	glLoadIdentity();
-	glMatrixMode(GL_MODELVIEW);
-	glLoadIdentity();
 
 	for(passindex =0; passindex<MAX_RENDER_PASS; passindex++)
 	{
@@ -466,6 +467,9 @@
 	glEnable(GL_DEPTH_TEST);
 	glViewport(viewport[0],viewport[1],viewport[2],viewport[3]);
 	EndShaderProgram();	
+	glPopMatrix();
+	glMatrixMode(GL_MODELVIEW);
+	glPopMatrix();
 }
 
 void RAS_2DFilterManager::EnableFilter(vector<STR_String>& propNames, void* gameObj, RAS_2DFILTER_MODE mode, int pass, STR_String& text)





More information about the Bf-blender-cvs mailing list