[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