[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [35385] trunk/blender/source/blender: Bugfix #26388

Ton Roosendaal ton at blender.org
Mon Mar 7 12:51:09 CET 2011


Revision: 35385
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=35385
Author:   ton
Date:     2011-03-07 11:51:09 +0000 (Mon, 07 Mar 2011)
Log Message:
-----------
Bugfix #26388

Actually a todo item I forgot:

Material nodes previews now follow the scene "color managenent"
setting.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_node.h
    trunk/blender/source/blender/blenkernel/intern/node.c
    trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_material.c
    trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_output.c
    trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_texture.c
    trunk/blender/source/blender/nodes/intern/TEX_util.c
    trunk/blender/source/blender/render/extern/include/RE_shader_ext.h
    trunk/blender/source/blender/render/intern/source/shadeinput.c

Modified: trunk/blender/source/blender/blenkernel/BKE_node.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_node.h	2011-03-07 08:57:35 UTC (rev 35384)
+++ trunk/blender/source/blender/blenkernel/BKE_node.h	2011-03-07 11:51:09 UTC (rev 35385)
@@ -168,7 +168,7 @@
 
 void			nodeVerifyType(struct bNodeTree *ntree, struct bNode *node);
 
-void			nodeAddToPreview(struct bNode *, float *, int, int);
+void			nodeAddToPreview(struct bNode *, float *, int, int, int);
 
 void			nodeUnlinkNode(struct bNodeTree *ntree, struct bNode *node);
 void			nodeUniqueName(struct bNodeTree *ntree, struct bNode *node);

Modified: trunk/blender/source/blender/blenkernel/intern/node.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/node.c	2011-03-07 08:57:35 UTC (rev 35384)
+++ trunk/blender/source/blender/blenkernel/intern/node.c	2011-03-07 11:51:09 UTC (rev 35385)
@@ -1325,7 +1325,7 @@
 /* hack warning! this function is only used for shader previews, and 
 since it gets called multiple times per pixel for Ztransp we only
 add the color once. Preview gets cleared before it starts render though */
-void nodeAddToPreview(bNode *node, float *col, int x, int y)
+void nodeAddToPreview(bNode *node, float *col, int x, int y, int do_manage)
 {
 	bNodePreview *preview= node->preview;
 	if(preview) {
@@ -1333,7 +1333,7 @@
 			if(x<preview->xsize && y<preview->ysize) {
 				unsigned char *tar= preview->rect+ 4*((preview->xsize*y) + x);
 				
-				if(TRUE) {
+				if(do_manage) {
 					tar[0]= FTOCHAR(linearrgb_to_srgb(col[0]));
 					tar[1]= FTOCHAR(linearrgb_to_srgb(col[1]));
 					tar[2]= FTOCHAR(linearrgb_to_srgb(col[2]));

Modified: trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_material.c
===================================================================
--- trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_material.c	2011-03-07 08:57:35 UTC (rev 35384)
+++ trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_material.c	2011-03-07 11:51:09 UTC (rev 35385)
@@ -155,7 +155,7 @@
 		col[3]= shrnode.alpha;
 		
 		if(shi->do_preview)
-			nodeAddToPreview(node, col, shi->xs, shi->ys);
+			nodeAddToPreview(node, col, shi->xs, shi->ys, shi->do_manage);
 		
 		VECCOPY(out[MAT_OUT_COLOR]->vec, col);
 		out[MAT_OUT_ALPHA]->vec[0]= shrnode.alpha;

Modified: trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_output.c
===================================================================
--- trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_output.c	2011-03-07 08:57:35 UTC (rev 35384)
+++ trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_output.c	2011-03-07 11:51:09 UTC (rev 35385)
@@ -52,7 +52,7 @@
 		nodestack_get_vec(col+3, SOCK_VALUE, in[1]);
 		
 		if(shi->do_preview) {
-			nodeAddToPreview(node, col, shi->xs, shi->ys);
+			nodeAddToPreview(node, col, shi->xs, shi->ys, shi->do_manage);
 			node->lasty= shi->ys;
 		}
 		

Modified: trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_texture.c
===================================================================
--- trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_texture.c	2011-03-07 08:57:35 UTC (rev 35384)
+++ trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_texture.c	2011-03-07 11:51:09 UTC (rev 35385)
@@ -116,7 +116,7 @@
 		VECCOPY(out[2]->vec, nor);
 		
 		if(shi->do_preview)
-			nodeAddToPreview(node, out[1]->vec, shi->xs, shi->ys);
+			nodeAddToPreview(node, out[1]->vec, shi->xs, shi->ys, shi->do_manage);
 		
 	}
 }

Modified: trunk/blender/source/blender/nodes/intern/TEX_util.c
===================================================================
--- trunk/blender/source/blender/nodes/intern/TEX_util.c	2011-03-07 08:57:35 UTC (rev 35384)
+++ trunk/blender/source/blender/nodes/intern/TEX_util.c	2011-03-07 11:51:09 UTC (rev 35385)
@@ -124,7 +124,7 @@
 		int xs= ((co[0] + 1.0f)*0.5f)*preview->xsize;
 		int ys= ((co[1] + 1.0f)*0.5f)*preview->ysize;
 
-		nodeAddToPreview(node, col, xs, ys);
+		nodeAddToPreview(node, col, xs, ys, 0); /* 0 = no color management */
 	}
 }
 

Modified: trunk/blender/source/blender/render/extern/include/RE_shader_ext.h
===================================================================
--- trunk/blender/source/blender/render/extern/include/RE_shader_ext.h	2011-03-07 08:57:35 UTC (rev 35384)
+++ trunk/blender/source/blender/render/extern/include/RE_shader_ext.h	2011-03-07 11:51:09 UTC (rev 35385)
@@ -174,6 +174,7 @@
 
 	/* from initialize, part or renderlayer */
 	short do_preview;		/* for nodes, in previewrender */
+	short do_manage;		/* color management flag */
 	short thread, sample;	/* sample: ShadeSample array index */
 	short nodes;			/* indicate node shading, temp hack to prevent recursion */
 	

Modified: trunk/blender/source/blender/render/intern/source/shadeinput.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/shadeinput.c	2011-03-07 08:57:35 UTC (rev 35384)
+++ trunk/blender/source/blender/render/intern/source/shadeinput.c	2011-03-07 11:51:09 UTC (rev 35385)
@@ -582,7 +582,7 @@
 		}
 	}
 	
-	if (R.r.color_mgt_flag & R_COLOR_MANAGEMENT) {
+	if (shi->do_manage) {
 		if(mode & (MA_VERTEXCOL|MA_VERTEXCOLP|MA_FACETEXTURE)) {
 			srgb_to_linearrgb_v3_v3(shi->vcol, shi->vcol);
 		}
@@ -1315,7 +1315,7 @@
 	} /* else {
 	 Note! For raytracing winco is not set, important because thus means all shader input's need to have their variables set to zero else in-initialized values are used
 	*/
-	if (R.r.color_mgt_flag & R_COLOR_MANAGEMENT) {
+	if (shi->do_manage) {
 		if(mode & (MA_VERTEXCOL|MA_VERTEXCOLP|MA_FACETEXTURE)) {
 			srgb_to_linearrgb_v3_v3(shi->vcol, shi->vcol);
 		}
@@ -1334,6 +1334,7 @@
 	shi->sample= sample;
 	shi->thread= pa->thread;
 	shi->do_preview= (R.r.scemode & R_MATNODE_PREVIEW) != 0;
+	shi->do_manage= (R.r.color_mgt_flag & R_COLOR_MANAGEMENT);
 	shi->lay= rl->lay;
 	shi->layflag= rl->layflag;
 	shi->passflag= rl->passflag;




More information about the Bf-blender-cvs mailing list