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:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2012-05-02 14:10:05 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2012-05-02 14:10:05 +0400
commitf965858867a6df5825b52060d13d736793e25595 (patch)
tree2fa82d7c2849a655e72d5e29915e45bdaebf20f5 /source/blender
parentafcc42c324e8f3bf6508f2087602a0e055eedead (diff)
Fix 31220: glsl sun lamp shadows did not apparently respect shadow flag when
working in blender render rather than blender game mode. Tweaked the flags a bit to make it compatible more, but for full configuration you need to be in blender game mode still.
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/gpu/intern/gpu_material.c2
-rw-r--r--source/blender/makesrna/intern/rna_lamp.c14
2 files changed, 11 insertions, 5 deletions
diff --git a/source/blender/gpu/intern/gpu_material.c b/source/blender/gpu/intern/gpu_material.c
index 173fbf02287..383dd6b8f2f 100644
--- a/source/blender/gpu/intern/gpu_material.c
+++ b/source/blender/gpu/intern/gpu_material.c
@@ -1669,7 +1669,7 @@ GPULamp *GPU_lamp_from_blender(Scene *scene, Object *ob, Object *par)
la = ob->data;
gpu_lamp_from_blender(scene, ob, par, la, lamp);
- if ((la->type==LA_SPOT || la->type==LA_SUN) && (la->mode & LA_SHAD_BUF)) {
+ if ((la->type==LA_SPOT && (la->mode & LA_SHAD_BUF)) || (la->type==LA_SUN && (la->mode & LA_SHAD_RAY))) {
/* opengl */
lamp->fb = GPU_framebuffer_create();
if (!lamp->fb) {
diff --git a/source/blender/makesrna/intern/rna_lamp.c b/source/blender/makesrna/intern/rna_lamp.c
index 88bab4d5af3..fef362c8f10 100644
--- a/source/blender/makesrna/intern/rna_lamp.c
+++ b/source/blender/makesrna/intern/rna_lamp.c
@@ -89,18 +89,24 @@ static void rna_Lamp_active_texture_set(PointerRNA *ptr, PointerRNA value)
static int rna_use_shadow_get(PointerRNA *ptr)
{
Lamp *la = (Lamp*)ptr->data;
- return la->mode & LA_SHAD_BUF;
+
+ if(la->type == LA_SPOT)
+ return la->mode & LA_SHAD_BUF;
+ else
+ return la->mode & LA_SHAD_RAY;
}
static void rna_use_shadow_set(PointerRNA *ptr, int value)
{
Lamp *la = (Lamp*)ptr->data;
if (value) {
- la->mode |= LA_SHAD_BUF;
- la->mode &= ~LA_SHAD_RAY;
+ if(la->type == LA_SPOT)
+ la->mode |= LA_SHAD_BUF;
+ else
+ la->mode |= LA_SHAD_RAY;
}
else
- la->mode &= ~(LA_SHAD_BUF + LA_SHAD_RAY);
+ la->mode &= ~(LA_SHAD_BUF|LA_SHAD_RAY);
}
static StructRNA* rna_Lamp_refine(struct PointerRNA *ptr)