Revision: 43520
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=43520
Author:   campbellbarton
Date:     2012-01-19 08:22:23 +0000 (Thu, 19 Jan 2012)
Log Message:
-----------
add utility functions linearrgb_to_srgb_uchar4,
linearrgb_to_srgb_uchar3, was being done inline.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/node.c
    trunk/blender/source/blender/blenlib/intern/math_color_inline.c
    trunk/blender/source/blender/editors/uvedit/uvedit_ops.c
    trunk/blender/source/blender/render/intern/source/rendercore.c

Modified: trunk/blender/source/blender/blenkernel/intern/node.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/node.c       2012-01-19 
07:12:30 UTC (rev 43519)
+++ trunk/blender/source/blender/blenkernel/intern/node.c       2012-01-19 
08:22:23 UTC (rev 43520)
@@ -790,16 +790,14 @@
                                unsigned char *tar= preview->rect+ 
4*((preview->xsize*y) + x);
                                
                                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]));
+                                       linearrgb_to_srgb_uchar4(tar, col);
                                }
                                else {
                                        tar[0]= FTOCHAR(col[0]);
                                        tar[1]= FTOCHAR(col[1]);
                                        tar[2]= FTOCHAR(col[2]);
+                                       tar[3]= FTOCHAR(col[3]);
                                }
-                               tar[3]= FTOCHAR(col[3]);
                        }
                        //else printf("prv out bound x y %d %d\n", x, y);
                }

Modified: trunk/blender/source/blender/blenlib/intern/math_color_inline.c
===================================================================
--- trunk/blender/source/blender/blenlib/intern/math_color_inline.c     
2012-01-19 07:12:30 UTC (rev 43519)
+++ trunk/blender/source/blender/blenlib/intern/math_color_inline.c     
2012-01-19 08:22:23 UTC (rev 43520)
@@ -62,6 +62,34 @@
        srgb[3] = linear[3];
 }
 
+MINLINE void linearrgb_to_srgb_uchar3(unsigned char srgb[4], const float 
linear[4])
+{
+       int r, g, b;
+
+       r = 255 * linearrgb_to_srgb(linear[0]) * 255;
+       g = 255 * linearrgb_to_srgb(linear[1]) * 255;
+       b = 255 * linearrgb_to_srgb(linear[2]) * 255;
+
+       srgb[0] = FTOCHAR(r);
+       srgb[1] = FTOCHAR(g);
+       srgb[2] = FTOCHAR(b);
+}
+
+MINLINE void linearrgb_to_srgb_uchar4(unsigned char srgb[4], const float 
linear[4])
+{
+       int r, g, b, a;
+
+       r = 255 * linearrgb_to_srgb(linear[0]) * 255;
+       g = 255 * linearrgb_to_srgb(linear[1]) * 255;
+       b = 255 * linearrgb_to_srgb(linear[2]) * 255;
+       a = 255 * linear[3];
+
+       srgb[0] = FTOCHAR(r);
+       srgb[1] = FTOCHAR(g);
+       srgb[2] = FTOCHAR(b);
+       srgb[3] = FTOCHAR(a);
+}
+
 /* predivide versions to work on associated/premultipled alpha. if this should
    be done or not depends on the background the image will be composited over,
    ideally you would never do color space conversion on an image with alpha

Modified: trunk/blender/source/blender/editors/uvedit/uvedit_ops.c
===================================================================
--- trunk/blender/source/blender/editors/uvedit/uvedit_ops.c    2012-01-19 
07:12:30 UTC (rev 43519)
+++ trunk/blender/source/blender/editors/uvedit/uvedit_ops.c    2012-01-19 
08:22:23 UTC (rev 43520)
@@ -103,7 +103,7 @@
        return ED_space_image_show_uvedit(sima, obedit) && 
!(toolsettings->use_uv_sculpt);
 }
 
-static int ED_operator_uvmap_mesh(bContext *C)
+static int UNUSED_FUNCTION(ED_operator_uvmap_mesh)(bContext *C)
 {
        Object *ob= CTX_data_active_object(C);
 

Modified: trunk/blender/source/blender/render/intern/source/rendercore.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/rendercore.c      
2012-01-19 07:12:30 UTC (rev 43519)
+++ trunk/blender/source/blender/render/intern/source/rendercore.c      
2012-01-19 08:22:23 UTC (rev 43520)
@@ -2166,17 +2166,10 @@
                }
        }
        else {
-               char *col= (char *)(bs->rect + bs->rectx*y + x);
+               unsigned char *col= (unsigned char *)(bs->rect + bs->rectx*y + 
x);
 
                if (ELEM(bs->type, RE_BAKE_ALL, RE_BAKE_TEXTURE) &&     
(R.r.color_mgt_flag & R_COLOR_MANAGEMENT)) {
-                       float srgb[3];
-                       srgb[0]= linearrgb_to_srgb(shr.combined[0]);
-                       srgb[1]= linearrgb_to_srgb(shr.combined[1]);
-                       srgb[2]= linearrgb_to_srgb(shr.combined[2]);
-                       
-                       col[0]= FTOCHAR(srgb[0]);
-                       col[1]= FTOCHAR(srgb[1]);
-                       col[2]= FTOCHAR(srgb[2]);
+                       linearrgb_to_srgb_uchar3(col, shr.combined);
                } else {
                        col[0]= FTOCHAR(shr.combined[0]);
                        col[1]= FTOCHAR(shr.combined[1]);

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

Reply via email to