diff options
author | Clément Fukhaut <turjuque@gmail.com> | 2016-01-28 16:44:58 +0300 |
---|---|---|
committer | Clément Fukhaut <turjuque@gmail.com> | 2016-01-28 16:44:58 +0300 |
commit | 20afa773245f856989dae4cb2a03a261f1f350c0 (patch) | |
tree | 5df65a13514d9c33b2305bcf7efa35d8175e24af /source/gameengine/Rasterizer | |
parent | 371c289af8f44264854b697fa095425e00d69c70 (diff) | |
parent | ba9468768ddcfd1e028893a1bc4f255bae7eac5a (diff) |
Merge branch 'master' of git://git.blender.org/blender
# Conflicts:
# source/blender/editors/space_view3d/drawmesh.c
# source/blender/gpu/CMakeLists.txt
# source/blender/gpu/GPU_draw.h
# source/blender/gpu/GPU_material.h
# source/blender/gpu/GPU_texture.h
# source/blender/gpu/intern/gpu_codegen.c
# source/blender/gpu/intern/gpu_draw.c
# source/blender/gpu/intern/gpu_material.c
# source/blender/gpu/intern/gpu_shader.c
# source/blender/gpu/intern/gpu_texture.c
# source/blender/makesrna/intern/rna_image_api.c
# source/blender/nodes/shader/nodes/node_shader_vectTransform.c
Diffstat (limited to 'source/gameengine/Rasterizer')
3 files changed, 32 insertions, 0 deletions
diff --git a/source/gameengine/Rasterizer/RAS_ILightObject.h b/source/gameengine/Rasterizer/RAS_ILightObject.h index f087f3bbb70..59475200a73 100644 --- a/source/gameengine/Rasterizer/RAS_ILightObject.h +++ b/source/gameengine/Rasterizer/RAS_ILightObject.h @@ -38,6 +38,7 @@ class KX_Camera; class KX_Scene; class MT_Transform; +class MT_Matrix4x4; struct Image; @@ -56,6 +57,13 @@ public: float m_energy; float m_distance; + float m_shadowclipstart; + float m_shadowfrustumsize; + float m_shadowclipend; + float m_shadowbias; + float m_shadowbleedbias; + short m_shadowmaptype; + float m_shadowcolor[3]; float m_color[3]; @@ -74,6 +82,8 @@ public: virtual RAS_ILightObject* Clone() = 0; virtual bool HasShadowBuffer() = 0; + virtual int GetShadowBindCode() = 0; + virtual MT_Matrix4x4 GetShadowMatrix() = 0; virtual int GetShadowLayer() = 0; virtual void BindShadowBuffer(RAS_ICanvas *canvas, KX_Camera *cam, MT_Transform& camtrans) = 0; virtual void UnbindShadowBuffer() = 0; diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLLight.cpp b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLLight.cpp index a14a211b90d..edca4b925bb 100644 --- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLLight.cpp +++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLLight.cpp @@ -177,6 +177,26 @@ bool RAS_OpenGLLight::HasShadowBuffer() return false; } +int RAS_OpenGLLight::GetShadowBindCode() +{ + GPULamp *lamp; + + if ((lamp = GetGPULamp())) + return GPU_lamp_shadow_bind_code(lamp); + return -1; +} + +MT_Matrix4x4 RAS_OpenGLLight::GetShadowMatrix() +{ + GPULamp *lamp; + + if ((lamp = GetGPULamp())) + return MT_Matrix4x4(GPU_lamp_dynpersmat(lamp)); + MT_Matrix4x4 mat; + mat.setIdentity(); + return mat; +} + int RAS_OpenGLLight::GetShadowLayer() { GPULamp *lamp; diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLLight.h b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLLight.h index 0c4e5bf41c4..a520b18c434 100644 --- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLLight.h +++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLLight.h @@ -46,6 +46,8 @@ public: RAS_OpenGLLight* Clone() { return new RAS_OpenGLLight(*this); } bool HasShadowBuffer(); + int GetShadowBindCode(); + MT_Matrix4x4 GetShadowMatrix(); int GetShadowLayer(); void BindShadowBuffer(RAS_ICanvas *canvas, KX_Camera *cam, MT_Transform& camtrans); void UnbindShadowBuffer(); |