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;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to