[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [11464] branches/2-44-stable/blender/ source/blender: branches/2-44-stable

Diego Borghetti (Plumiferos) bdiego at gmail.com
Wed Aug 1 19:36:08 CEST 2007


Revision: 11464
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11464
Author:   bdiego
Date:     2007-08-01 19:36:08 +0200 (Wed, 01 Aug 2007)

Log Message:
-----------
branches/2-44-stable

Merge from trunk:
	revision 10898
	revision 11351
	revision 11396
	revision 11441

Revision Links:
--------------
    http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=10898
    http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11351
    http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11396
    http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11441

Modified Paths:
--------------
    branches/2-44-stable/blender/source/blender/nodes/intern/CMP_nodes/CMP_math.c
    branches/2-44-stable/blender/source/blender/render/intern/source/shadeoutput.c
    branches/2-44-stable/blender/source/blender/src/editscreen.c

Modified: branches/2-44-stable/blender/source/blender/nodes/intern/CMP_nodes/CMP_math.c
===================================================================
--- branches/2-44-stable/blender/source/blender/nodes/intern/CMP_nodes/CMP_math.c	2007-08-01 17:33:53 UTC (rev 11463)
+++ branches/2-44-stable/blender/source/blender/nodes/intern/CMP_nodes/CMP_math.c	2007-08-01 17:36:08 UTC (rev 11464)
@@ -142,7 +142,7 @@
 	CompBuf *stackbuf; 
 
 	/* check for inputs and outputs for early out*/
-	if(in[0]->hasinput==0 || in[1]->hasinput==0) return;
+	if(in[0]->hasinput==0 && in[1]->hasinput==0) return;
 	if(out[0]->hasoutput==0) return;
 
 	/* no image-color operation */

Modified: branches/2-44-stable/blender/source/blender/render/intern/source/shadeoutput.c
===================================================================
--- branches/2-44-stable/blender/source/blender/render/intern/source/shadeoutput.c	2007-08-01 17:33:53 UTC (rev 11463)
+++ branches/2-44-stable/blender/source/blender/render/intern/source/shadeoutput.c	2007-08-01 17:36:08 UTC (rev 11464)
@@ -1245,12 +1245,17 @@
 						lamp_get_shadow(lar, shi, inp, shadfac, shi->depth);
 						
 					/* warning, here it skips the loop */
-					if(lar->mode & LA_ONLYSHADOW) {
+					if((lar->mode & LA_ONLYSHADOW) && i>0.0) {
 						
 						shadfac[3]= i*lar->energy*(1.0f-shadfac[3]);
 						shr->shad[0] -= shadfac[3]*shi->r;
 						shr->shad[1] -= shadfac[3]*shi->g;
 						shr->shad[2] -= shadfac[3]*shi->b;
+						
+						shr->spec[0] -= shadfac[3]*shi->specr;
+						shr->spec[1] -= shadfac[3]*shi->specg;
+						shr->spec[2] -= shadfac[3]*shi->specb;
+						
 						return;
 					}
 					
@@ -1280,7 +1285,7 @@
 		}
 		
 		/* specularity */
-		if(shadfac[3]>0.0f && shi->spec!=0.0f && !(lar->mode & LA_NO_SPEC)) {
+		if(shadfac[3]>0.0f && shi->spec!=0.0f && !(lar->mode & LA_NO_SPEC) && !(lar->mode & LA_ONLYSHADOW)) {
 			
 			if(!(passflag & (SCE_PASS_COMBINED|SCE_PASS_SPEC)));
 			else if(lar->type==LA_HEMI) {
@@ -1508,6 +1513,16 @@
 			shade_one_light(lar, shi, shr, passflag);
 		}
 
+		/*this check is to prevent only shadow lamps from producing negative
+		  colors.*/
+		if (shr->spec[0] < 0) shr->spec[0] = 0;
+		if (shr->spec[1] < 0) shr->spec[1] = 0;
+		if (shr->spec[2] < 0) shr->spec[2] = 0;
+
+		if (shr->shad[0] < 0) shr->shad[0] = 0;
+		if (shr->shad[1] < 0) shr->shad[1] = 0;
+		if (shr->shad[2] < 0) shr->shad[2] = 0;
+						
 		if(ma->sss_flag & MA_DIFF_SSS) {
 			float sss[3], col[3], texfac= ma->sss_texfac;
 

Modified: branches/2-44-stable/blender/source/blender/src/editscreen.c
===================================================================
--- branches/2-44-stable/blender/source/blender/src/editscreen.c	2007-08-01 17:33:53 UTC (rev 11463)
+++ branches/2-44-stable/blender/source/blender/src/editscreen.c	2007-08-01 17:36:08 UTC (rev 11464)
@@ -1400,10 +1400,9 @@
 				bScreen *sc= G.curscreen->id.next;
 
 				/* if screen is last, set it to first */
-				if(sc == NULL)
-					sc= G.main->screen.first;
+				if(sc == NULL) sc= G.main->screen.first;
 				
-				setscreen(sc);
+				if(is_allowed_to_change_screen(sc)) setscreen(sc);
 				g_activearea= NULL;
 				towin= 0;
 			}
@@ -1413,10 +1412,9 @@
 				bScreen *sc= G.curscreen->id.prev;
 				
 				/* if screen is first, set it to last */
-				if(sc == NULL)
-					sc= G.main->screen.last;
+				if(sc == NULL) sc= G.main->screen.last;
 				
-				setscreen(sc);
+				if(is_allowed_to_change_screen(sc)) setscreen(sc);
 				g_activearea= NULL;
 				towin= 0;
 			}





More information about the Bf-blender-cvs mailing list