[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