[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14027] trunk/blender/source/blender/ render/intern/source/rendercore.c: masked/ alpha baking commit was missing a null check for imbuf,

Campbell Barton ideasman42 at gmail.com
Sun Mar 9 19:06:56 CET 2008


Revision: 14027
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14027
Author:   campbellbarton
Date:     2008-03-09 19:06:48 +0100 (Sun, 09 Mar 2008)

Log Message:
-----------
masked/alpha baking commit was missing a null check for imbuf,
made textures also bake alpha

Modified Paths:
--------------
    trunk/blender/source/blender/render/intern/source/rendercore.c

Modified: trunk/blender/source/blender/render/intern/source/rendercore.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/rendercore.c	2008-03-09 17:32:32 UTC (rev 14026)
+++ trunk/blender/source/blender/render/intern/source/rendercore.c	2008-03-09 18:06:48 UTC (rev 14027)
@@ -1983,13 +1983,14 @@
 			shr.combined[0]= shi->r;
 			shr.combined[1]= shi->g;
 			shr.combined[2]= shi->b;
+			shr.alpha = shi->alpha;
 		}
 	}
 	
 	if(bs->rect_float) {
 		float *col= bs->rect_float + 4*(bs->rectx*y + x);
 		VECCOPY(col, shr.combined);
-		if (bs->type==RE_BAKE_ALL) {
+		if (bs->type==RE_BAKE_ALL || bs->type==RE_BAKE_TEXTURE) {
 			col[3]= shr.alpha;
 		} else {
 			col[3]= 1.0;
@@ -2002,7 +2003,7 @@
 		col[2]= FTOCHAR(shr.combined[2]);
 		
 		
-		if (bs->type==RE_BAKE_ALL) {
+		if (bs->type==RE_BAKE_ALL || bs->type==RE_BAKE_TEXTURE) {
 			col[3]= FTOCHAR(shr.alpha);
 		} else {
 			col[3]= 255;
@@ -2337,8 +2338,6 @@
 	get_next_bake_face(NULL);
 	
 	/* do we need a mask? */
-	
-	/*if ((re->r.bake_mode==RE_BAKE_ALL) && (re->r.bake_filter) && (re->r.bake_flag & R_BAKE_CLEAR)==0)*/
 	if (re->r.bake_filter && (re->r.bake_flag & R_BAKE_CLEAR)==0)
 		usemask = 1;
 	
@@ -2346,7 +2345,8 @@
 	for(ima= G.main->image.first; ima; ima= ima->id.next) {
 		ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL);
 		ima->id.flag |= LIB_DOIT;
-		ibuf->userdata = NULL; /* use for masking if needed */
+		if (ibuf)
+			ibuf->userdata = NULL; /* use for masking if needed */
 	}
 	
 	BLI_init_threads(&threads, do_bake_thread, re->r.threads);





More information about the Bf-blender-cvs mailing list