From 82b4975ccfa8fe2c72278388a3cf3a8432cc9fb0 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Wed, 13 May 2009 06:42:15 +0000 Subject: BGE #18732: Python Light options don't work with GLSL materials. Commited patch from dfelinto and moguri, thanks for the good work. --- source/gameengine/Ketsji/KX_Light.cpp | 9 +++++++++ source/gameengine/Ketsji/KX_Light.h | 1 + 2 files changed, 10 insertions(+) (limited to 'source/gameengine') diff --git a/source/gameengine/Ketsji/KX_Light.cpp b/source/gameengine/Ketsji/KX_Light.cpp index 777a7f32629..3af34c39123 100644 --- a/source/gameengine/Ketsji/KX_Light.cpp +++ b/source/gameengine/Ketsji/KX_Light.cpp @@ -61,6 +61,11 @@ KX_LightObject::KX_LightObject(void* sgReplicationInfo,SG_Callbacks callbacks, m_rendertools->AddLight(&m_lightobj); m_glsl = glsl; m_blenderscene = ((KX_Scene*)sgReplicationInfo)->GetBlenderScene(); + + m_initialvalues[0] = lightobj.m_red; + m_initialvalues[1] = lightobj.m_green; + m_initialvalues[2] = lightobj.m_blue; + m_initialvalues[3] = lightobj.m_energy; }; @@ -71,6 +76,8 @@ KX_LightObject::~KX_LightObject() if((lamp = GetGPULamp())) { float obmat[4][4] = {{0}}; GPU_lamp_update(lamp, 0, obmat); + GPU_lamp_update_colors(lamp, m_initialvalues[0], m_initialvalues[1], + m_initialvalues[2], m_initialvalues[3]); } m_rendertools->RemoveLight(&m_lightobj); @@ -114,6 +121,8 @@ void KX_LightObject::Update() obmat[i][j] = (float)*dobmat; GPU_lamp_update(lamp, m_lightobj.m_layer, obmat); + GPU_lamp_update_colors(lamp, m_lightobj.m_red, m_lightobj.m_green, + m_lightobj.m_blue, m_lightobj.m_energy); } } diff --git a/source/gameengine/Ketsji/KX_Light.h b/source/gameengine/Ketsji/KX_Light.h index 35f25515e3b..690231ff090 100644 --- a/source/gameengine/Ketsji/KX_Light.h +++ b/source/gameengine/Ketsji/KX_Light.h @@ -44,6 +44,7 @@ class KX_LightObject : public KX_GameObject Py_Header; protected: RAS_LightObject m_lightobj; + float m_initialvalues [4]; class RAS_IRenderTools* m_rendertools; //needed for registering and replication of lightobj bool m_glsl; Scene* m_blenderscene; -- cgit v1.2.3