[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [46181] trunk/blender/source/blender: Fix 31220: glsl sun lamp shadows did not apparently respect shadow flag when
Brecht Van Lommel
brechtvanlommel at pandora.be
Wed May 2 12:10:07 CEST 2012
Revision: 46181
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=46181
Author: blendix
Date: 2012-05-02 10:10:05 +0000 (Wed, 02 May 2012)
Log Message:
-----------
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.
Modified Paths:
--------------
trunk/blender/source/blender/gpu/intern/gpu_material.c
trunk/blender/source/blender/makesrna/intern/rna_lamp.c
Modified: trunk/blender/source/blender/gpu/intern/gpu_material.c
===================================================================
--- trunk/blender/source/blender/gpu/intern/gpu_material.c 2012-05-02 09:50:48 UTC (rev 46180)
+++ trunk/blender/source/blender/gpu/intern/gpu_material.c 2012-05-02 10:10:05 UTC (rev 46181)
@@ -1669,7 +1669,7 @@
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) {
Modified: trunk/blender/source/blender/makesrna/intern/rna_lamp.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_lamp.c 2012-05-02 09:50:48 UTC (rev 46180)
+++ trunk/blender/source/blender/makesrna/intern/rna_lamp.c 2012-05-02 10:10:05 UTC (rev 46181)
@@ -89,18 +89,24 @@
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)
More information about the Bf-blender-cvs
mailing list