[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