Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Fukhaut <turjuque@gmail.com>2016-01-28 16:44:58 +0300
committerClément Fukhaut <turjuque@gmail.com>2016-01-28 16:44:58 +0300
commit20afa773245f856989dae4cb2a03a261f1f350c0 (patch)
tree5df65a13514d9c33b2305bcf7efa35d8175e24af /source/gameengine/Rasterizer
parent371c289af8f44264854b697fa095425e00d69c70 (diff)
parentba9468768ddcfd1e028893a1bc4f255bae7eac5a (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')
-rw-r--r--source/gameengine/Rasterizer/RAS_ILightObject.h10
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLLight.cpp20
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLLight.h2
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();