[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57594] trunk/blender/source/gameengine: BGE: Fix for [#34781] "bge.texture.ImageRender does not show Font object" reported by Monster.

Mitchell Stokes mogurijin at gmail.com
Thu Jun 20 05:50:02 CEST 2013


Revision: 57594
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57594
Author:   moguri
Date:     2013-06-20 03:50:02 +0000 (Thu, 20 Jun 2013)
Log Message:
-----------
BGE: Fix for [#34781] "bge.texture.ImageRender does not show Font object" reported by Monster.

This fix is mostly based off of HG1's patch from the bug report, which had ImageRender::Render() call KX_KetsjiEngine::RenderFonts(). However, I have moved RenderFonts() from KX_KetsjiEngine to KX_Scene where all of the other font and rendering functions are. The real fix for this mess would be to not have ImageRender::Render() have so much duplicate code from KX_KetsjiEngine::Render(), but that's a code cleanup problem for another day.

Modified Paths:
--------------
    trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
    trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.h
    trunk/blender/source/gameengine/Ketsji/KX_Scene.cpp
    trunk/blender/source/gameengine/Ketsji/KX_Scene.h
    trunk/blender/source/gameengine/VideoTexture/ImageRender.cpp

Modified: trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.cpp	2013-06-20 03:22:55 UTC (rev 57593)
+++ trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.cpp	2013-06-20 03:50:02 UTC (rev 57594)
@@ -54,7 +54,6 @@
 #include "MT_Transform.h"
 #include "SCA_IInputDevice.h"
 #include "KX_Camera.h"
-#include "KX_FontObject.h"
 #include "KX_Dome.h"
 #include "KX_Light.h"
 #include "KX_PythonInit.h"
@@ -340,7 +339,7 @@
 				// do the rendering
 				m_dome->RenderDomeFrame(scene,cam, i);
 				//render all the font objects for this scene
-				RenderFonts(scene);
+				scene->RenderFonts();
 			}
 			
 			list<class KX_Camera*>* cameras = scene->GetCameras();
@@ -358,7 +357,7 @@
 					// do the rendering
 					m_dome->RenderDomeFrame(scene, (*it),i);
 					//render all the font objects for this scene
-					RenderFonts(scene);
+					scene->RenderFonts();
 				}
 				
 				it++;
@@ -1339,23 +1338,12 @@
 	scene->RenderBuckets(camtrans, m_rasterizer, m_rendertools);
 
 	//render all the font objects for this scene
-	RenderFonts(scene);
+	scene->RenderFonts();
 	
 	if (scene->GetPhysicsEnvironment())
 		scene->GetPhysicsEnvironment()->debugDrawWorld();
 }
 
-void KX_KetsjiEngine::RenderFonts(KX_Scene* scene)
-{
-	list<class KX_FontObject*>* fonts = scene->GetFonts();
-	
-	list<KX_FontObject*>::iterator it = fonts->begin();
-	while (it != fonts->end()) {
-		(*it)->DrawText();
-		++it;
-	}
-}
-
 /*
  * To run once per scene
  */

Modified: trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.h
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.h	2013-06-20 03:22:55 UTC (rev 57593)
+++ trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.h	2013-06-20 03:50:02 UTC (rev 57594)
@@ -205,7 +205,6 @@
 	void					RenderDebugProperties();
 	void					RenderShadowBuffers(KX_Scene *scene);
 	void					SetBackGround(KX_WorldInfo* worldinfo);
-	void					RenderFonts(KX_Scene* scene);
 
 public:
 	KX_KetsjiEngine(class KX_ISystem* system);

Modified: trunk/blender/source/gameengine/Ketsji/KX_Scene.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_Scene.cpp	2013-06-20 03:22:55 UTC (rev 57593)
+++ trunk/blender/source/gameengine/Ketsji/KX_Scene.cpp	2013-06-20 03:50:02 UTC (rev 57594)
@@ -40,6 +40,7 @@
 #include "MT_assert.h"
 #include "KX_KetsjiEngine.h"
 #include "KX_BlenderMaterial.h"
+#include "KX_FontObject.h"
 #include "RAS_IPolygonMaterial.h"
 #include "ListValue.h"
 #include "SCA_LogicManager.h"
@@ -352,11 +353,6 @@
 	return &m_cameras;
 }
 
-list<class KX_FontObject*>* KX_Scene::GetFonts()
-{
-	return &m_fonts;
-}
-
 void KX_Scene::SetFramingType(RAS_FrameSettings & frame_settings)
 {
 	m_frame_settings = frame_settings;
@@ -1639,6 +1635,15 @@
 	KX_BlenderMaterial::EndFrame();
 }
 
+void KX_Scene::RenderFonts()
+{
+	list<KX_FontObject*>::iterator it = m_fonts.begin();
+	while (it != m_fonts.end()) {
+		(*it)->DrawText();
+		++it;
+	}
+}
+
 void KX_Scene::UpdateObjectActivity(void) 
 {
 	if (m_activity_culling) {

Modified: trunk/blender/source/gameengine/Ketsji/KX_Scene.h
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_Scene.h	2013-06-20 03:22:55 UTC (rev 57593)
+++ trunk/blender/source/gameengine/Ketsji/KX_Scene.h	2013-06-20 03:50:02 UTC (rev 57594)
@@ -381,10 +381,6 @@
 	);
 
 	/** Font Routines */
-		
-		std::list<class KX_FontObject*>*
-	GetFonts(
-	);
 
 	/** Find a font in the scene by pointer. */
 		KX_FontObject*              
@@ -398,6 +394,10 @@
 		KX_FontObject*
 	);
 
+	/** Render the fonts in this scene. */
+		void
+	RenderFonts(
+	);
 
 	/** Camera Routines */
 

Modified: trunk/blender/source/gameengine/VideoTexture/ImageRender.cpp
===================================================================
--- trunk/blender/source/gameengine/VideoTexture/ImageRender.cpp	2013-06-20 03:22:55 UTC (rev 57593)
+++ trunk/blender/source/gameengine/VideoTexture/ImageRender.cpp	2013-06-20 03:50:02 UTC (rev 57594)
@@ -275,6 +275,8 @@
 
 	m_scene->RenderBuckets(camtrans, m_rasterizer, m_rendertools);
 
+	m_scene->RenderFonts();
+
 	// restore the canvas area now that the render is completed
 	m_canvas->GetWindowArea() = area;
 }




More information about the Bf-blender-cvs mailing list