From ae4fda82b026ae6e2b003c1105f329b7e76582b0 Mon Sep 17 00:00:00 2001 From: Daniel Stokes Date: Tue, 1 May 2012 02:50:17 +0000 Subject: Merging phase 1 of the BGE Harmony branch: * Shadow color now usable in the BGE * Simplified the shadow panel while "Blender Game" renderer is active * Added variance shadow maps for the BGE * Buffered shadows on sun lamps in the BGE (orthographic) * Light textures in the BGE --- source/gameengine/Ketsji/KX_Light.cpp | 17 +++++++++++++++++ source/gameengine/Ketsji/KX_Light.h | 1 + 2 files changed, 18 insertions(+) (limited to 'source/gameengine/Ketsji') diff --git a/source/gameengine/Ketsji/KX_Light.cpp b/source/gameengine/Ketsji/KX_Light.cpp index 7e9d95b37a2..5922e97aaf4 100644 --- a/source/gameengine/Ketsji/KX_Light.cpp +++ b/source/gameengine/Ketsji/KX_Light.cpp @@ -45,6 +45,7 @@ #include "DNA_object_types.h" #include "DNA_scene_types.h" +#include "DNA_lamp_types.h" #include "GPU_material.h" KX_LightObject::KX_LightObject(void* sgReplicationInfo,SG_Callbacks callbacks, @@ -267,6 +268,22 @@ void KX_LightObject::UnbindShadowBuffer(RAS_IRasterizer *ras) GPU_lamp_shadow_buffer_unbind(lamp); } +struct Image *KX_LightObject::GetTextureImage(short texslot) +{ + Lamp *la = (Lamp*)GetBlenderObject()->data; + + if (texslot >= MAX_MTEX || texslot < 0) + { + printf("KX_LightObject::GetTextureImage(): texslot exceeds slot bounds (0-%d)\n", MAX_MTEX-1); + return NULL; + } + + if (la->mtex[texslot]) + return la->mtex[texslot]->tex->ima; + + return NULL; +} + #ifdef WITH_PYTHON /* ------------------------------------------------------------------------- */ /* Python Integration Hooks */ diff --git a/source/gameengine/Ketsji/KX_Light.h b/source/gameengine/Ketsji/KX_Light.h index c2815e7afaa..9fe13f471ba 100644 --- a/source/gameengine/Ketsji/KX_Light.h +++ b/source/gameengine/Ketsji/KX_Light.h @@ -66,6 +66,7 @@ public: int GetShadowLayer(); void BindShadowBuffer(class RAS_IRasterizer *ras, class KX_Camera *cam, class MT_Transform& camtrans); void UnbindShadowBuffer(class RAS_IRasterizer *ras); + struct Image *GetTextureImage(short texslot); void Update(); void UpdateScene(class KX_Scene *kxscene) {m_lightobj.m_scene = (void*)kxscene;} -- cgit v1.2.3