[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [39054] branches/soc-2011-cucumber/source/ gameengine/Ketsji: Libloaded lights now work with the dynamic light settings.

Daniel Stokes kupomail at gmail.com
Fri Aug 5 09:12:55 CEST 2011


Revision: 39054
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=39054
Author:   kupoman
Date:     2011-08-05 07:12:55 +0000 (Fri, 05 Aug 2011)
Log Message:
-----------
Libloaded lights now work with the dynamic light settings.

Modified Paths:
--------------
    branches/soc-2011-cucumber/source/gameengine/Ketsji/KX_Light.cpp
    branches/soc-2011-cucumber/source/gameengine/Ketsji/KX_Light.h
    branches/soc-2011-cucumber/source/gameengine/Ketsji/KX_Scene.cpp

Modified: branches/soc-2011-cucumber/source/gameengine/Ketsji/KX_Light.cpp
===================================================================
--- branches/soc-2011-cucumber/source/gameengine/Ketsji/KX_Light.cpp	2011-08-05 07:01:54 UTC (rev 39053)
+++ branches/soc-2011-cucumber/source/gameengine/Ketsji/KX_Light.cpp	2011-08-05 07:12:55 UTC (rev 39054)
@@ -114,12 +114,17 @@
 	replica->m_lightobj.m_light = replica;
 	m_rendertools->AddLight(&replica->m_lightobj);
 
-	replica->SetBlenderObject(checkout_blenderlight());
-	replica->m_dynamic = true;
+	replica->MakeDynamic();
 
 	return replica;
 }
 
+void KX_LightObject::MakeDynamic()
+{
+	m_dynamic = true;
+	SetBlenderObject(checkout_blenderlight());
+}
+
 bool KX_LightObject::ApplyLight(KX_Scene *kxscene, int oblayer, int slot)
 {
 	KX_Scene* lightscene = (KX_Scene*)m_lightobj.m_scene;
@@ -213,7 +218,10 @@
 GPULamp *KX_LightObject::GetGPULamp()
 {
 	if(m_glsl && GetBlenderObject())
-		return GPU_lamp_from_blender(m_blenderscene, GetBlenderObject(), GetBlenderGroupObject());
+	{
+		Scene *scene = (m_dynamic) ? m_blenderlight_scene : m_blenderscene;
+		return GPU_lamp_from_blender(scene, GetBlenderObject(), GetBlenderGroupObject());
+	}
 	else
 		return NULL;
 }

Modified: branches/soc-2011-cucumber/source/gameengine/Ketsji/KX_Light.h
===================================================================
--- branches/soc-2011-cucumber/source/gameengine/Ketsji/KX_Light.h	2011-08-05 07:01:54 UTC (rev 39053)
+++ branches/soc-2011-cucumber/source/gameengine/Ketsji/KX_Light.h	2011-08-05 07:12:55 UTC (rev 39054)
@@ -63,6 +63,7 @@
 	virtual ~KX_LightObject();
 	virtual CValue*		GetReplica();
 	RAS_LightObject*	GetLightData() { return &m_lightobj;}
+	void				MakeDynamic();
 
 	/* OpenGL Light */
 	bool ApplyLight(KX_Scene *kxscene, int oblayer, int slot);

Modified: branches/soc-2011-cucumber/source/gameengine/Ketsji/KX_Scene.cpp
===================================================================
--- branches/soc-2011-cucumber/source/gameengine/Ketsji/KX_Scene.cpp	2011-08-05 07:01:54 UTC (rev 39053)
+++ branches/soc-2011-cucumber/source/gameengine/Ketsji/KX_Scene.cpp	2011-08-05 07:12:55 UTC (rev 39054)
@@ -1773,9 +1773,12 @@
 		}
 #endif // USE_BULLET
 	}
-	/* If the object is a light, update it's scene */
+	/* If the object is a light, update it's scene and make it dynamic*/
 	if (gameobj->GetGameObjectType() == SCA_IObject::OBJ_LIGHT)
+	{
 		((KX_LightObject*)gameobj)->UpdateScene(to);
+		((KX_LightObject*)gameobj)->MakeDynamic();
+	}
 
 	/* Add the object to the scene's logic manager */
 	to->GetLogicManager()->RegisterGameObjectName(gameobj->GetName(), gameobj);




More information about the Bf-blender-cvs mailing list