[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [39043] branches/soc-2011-cucumber/source/ gameengine: Now dynamic lights from the light pool don' t get converted to game objects.

Daniel Stokes kupomail at gmail.com
Fri Aug 5 07:22:14 CEST 2011


Revision: 39043
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=39043
Author:   kupoman
Date:     2011-08-05 05:22:13 +0000 (Fri, 05 Aug 2011)
Log Message:
-----------
Now dynamic lights from the light pool don't get converted to game objects.

Modified Paths:
--------------
    branches/soc-2011-cucumber/source/gameengine/Converter/BL_BlenderDataConversion.cpp
    branches/soc-2011-cucumber/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
    branches/soc-2011-cucumber/source/gameengine/Ketsji/KX_Light.cpp

Modified: branches/soc-2011-cucumber/source/gameengine/Converter/BL_BlenderDataConversion.cpp
===================================================================
--- branches/soc-2011-cucumber/source/gameengine/Converter/BL_BlenderDataConversion.cpp	2011-08-05 04:47:05 UTC (rev 39042)
+++ branches/soc-2011-cucumber/source/gameengine/Converter/BL_BlenderDataConversion.cpp	2011-08-05 05:22:13 UTC (rev 39043)
@@ -2224,6 +2224,11 @@
 	for (SETLOOPER(blenderscene, sce_iter, base))
 	{
 		Object* blenderobject = base->object;
+
+		// Skip lights from the light pool
+		if (strcmp(blenderobject->id.name, "__pool__") == 0)
+			continue;
+
 		allblobj.insert(blenderobject);
 
 		KX_GameObject* gameobj = gameobject_from_blenderobject(

Modified: branches/soc-2011-cucumber/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
===================================================================
--- branches/soc-2011-cucumber/source/gameengine/Converter/KX_BlenderSceneConverter.cpp	2011-08-05 04:47:05 UTC (rev 39042)
+++ branches/soc-2011-cucumber/source/gameengine/Converter/KX_BlenderSceneConverter.cpp	2011-08-05 05:22:13 UTC (rev 39043)
@@ -366,8 +366,7 @@
 			break;
 	}
 
-	//For now this is before converting blender objects (which means the light pool gets converted to KX_lights that never get used)
-	//If this is moved after the conversion, things go crazy with materials since InitBlenderLightPool frees the materials
+	// Lights added to the scene during the light pool initialization are now skipped when converting objects
 	if(blenderscene && m_useglslmat)
 		KX_LightObject::InitBlenderLightPool(blenderscene,
 											blenderscene->gm.dynpoints,

Modified: branches/soc-2011-cucumber/source/gameengine/Ketsji/KX_Light.cpp
===================================================================
--- branches/soc-2011-cucumber/source/gameengine/Ketsji/KX_Light.cpp	2011-08-05 04:47:05 UTC (rev 39042)
+++ branches/soc-2011-cucumber/source/gameengine/Ketsji/KX_Light.cpp	2011-08-05 05:22:13 UTC (rev 39043)
@@ -303,8 +303,11 @@
 	for (int i = 0; i < count; ++i)
 	{
 		subpool->at(i) = add_object(m_blenderlight_scene, OB_LAMP);
+
+		//Give the lights a unique name so the converter can avoid them
+		strcpy(subpool->at(i)->id.name, "__pool__");
+
 		la = (Lamp*)subpool->at(i)->data;
-
 		la->type = type;
 		la->energy = 0;
 	}




More information about the Bf-blender-cvs mailing list