[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [42932] branches/bmesh/blender: svn merge ^/trunk/blender -r42927:42931

Campbell Barton ideasman42 at gmail.com
Wed Dec 28 15:05:06 CET 2011


Revision: 42932
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42932
Author:   campbellbarton
Date:     2011-12-28 14:05:02 +0000 (Wed, 28 Dec 2011)
Log Message:
-----------
svn merge ^/trunk/blender -r42927:42931

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42927

Modified Paths:
--------------
    branches/bmesh/blender/source/blender/blenkernel/BKE_colortools.h
    branches/bmesh/blender/source/blender/blenkernel/intern/colortools.c
    branches/bmesh/blender/source/blender/blenlib/BLI_math_color.h
    branches/bmesh/blender/source/blender/blenlib/intern/math_color.c
    branches/bmesh/blender/source/blender/blenloader/intern/writefile.c
    branches/bmesh/blender/source/blender/editors/render/render_internal.c
    branches/bmesh/blender/source/blender/editors/render/render_opengl.c
    branches/bmesh/blender/source/blender/editors/screen/glutil.c
    branches/bmesh/blender/source/blender/imbuf/IMB_imbuf.h
    branches/bmesh/blender/source/blender/imbuf/intern/divers.c
    branches/bmesh/blender/source/blender/makesdna/DNA_mesh_types.h
    branches/bmesh/blender/source/blender/nodes/composite/node_composite_util.c
    branches/bmesh/blender/source/blender/nodes/composite/nodes/node_composite_image.c
    branches/bmesh/blender/source/blender/python/intern/bpy_app_ffmpeg.c
    branches/bmesh/blender/source/blender/render/intern/source/pipeline.c
    branches/bmesh/blender/source/blender/windowmanager/intern/wm_operators.c

Added Paths:
-----------
    branches/bmesh/blender/source/blender/blenlib/intern/math_color_inline.c

Property Changed:
----------------
    branches/bmesh/blender/


Property changes on: branches/bmesh/blender
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/soc-2011-cucumber:37517
/branches/soc-2011-tomato:42376,42378-42379,42397,42400
/trunk/blender:39992-42927
   + /branches/soc-2011-cucumber:37517
/branches/soc-2011-tomato:42376,42378-42379,42397,42400
/trunk/blender:39992-42931

Modified: branches/bmesh/blender/source/blender/blenkernel/BKE_colortools.h
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/BKE_colortools.h	2011-12-28 13:50:33 UTC (rev 42931)
+++ branches/bmesh/blender/source/blender/blenkernel/BKE_colortools.h	2011-12-28 14:05:02 UTC (rev 42932)
@@ -45,9 +45,6 @@
 #   define DO_INLINE static inline
 #endif
 
-void				floatbuf_to_srgb_byte(float *rectf, unsigned char *rectc, int x1, int x2, int y1, int y2, int w);
-void				floatbuf_to_byte(float *rectf, unsigned char *rectc, int x1, int x2, int y1, int y2, int w);
-
 struct CurveMapping	*curvemapping_add(int tot, float minx, float miny, float maxx, float maxy);
 void				curvemapping_free(struct CurveMapping *cumap);
 struct CurveMapping	*curvemapping_copy(struct CurveMapping *cumap);

Modified: branches/bmesh/blender/source/blender/blenkernel/intern/colortools.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/colortools.c	2011-12-28 13:50:33 UTC (rev 42931)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/colortools.c	2011-12-28 14:05:02 UTC (rev 42932)
@@ -52,45 +52,6 @@
 #include "IMB_imbuf.h"
 #include "IMB_imbuf_types.h"
 
-
-void floatbuf_to_srgb_byte(float *rectf, unsigned char *rectc, int x1, int x2, int y1, int y2, int UNUSED(w))
-{
-	int x, y;
-	float *rf= rectf;
-	float srgb[3];
-	unsigned char *rc= rectc;
-	
-	for(y=y1; y<y2; y++) {
-		for(x=x1; x<x2; x++, rf+=4, rc+=4) {
-			srgb[0]= linearrgb_to_srgb(rf[0]);
-			srgb[1]= linearrgb_to_srgb(rf[1]);
-			srgb[2]= linearrgb_to_srgb(rf[2]);
-
-			rc[0]= FTOCHAR(srgb[0]);
-			rc[1]= FTOCHAR(srgb[1]);
-			rc[2]= FTOCHAR(srgb[2]);
-			rc[3]= FTOCHAR(rf[3]);
-		}
-	}
-}
-
-void floatbuf_to_byte(float *rectf, unsigned char *rectc, int x1, int x2, int y1, int y2, int UNUSED(w))
-{
-	int x, y;
-	float *rf= rectf;
-	unsigned char *rc= rectc;
-	
-	for(y=y1; y<y2; y++) {
-		for(x=x1; x<x2; x++, rf+=4, rc+=4) {
-			rc[0]= FTOCHAR(rf[0]);
-			rc[1]= FTOCHAR(rf[1]);
-			rc[2]= FTOCHAR(rf[2]);
-			rc[3]= FTOCHAR(rf[3]);
-		}
-	}
-}
-
-
 /* ********************************* color curve ********************* */
 
 /* ***************** operations on full struct ************* */

Modified: branches/bmesh/blender/source/blender/blenlib/BLI_math_color.h
===================================================================
--- branches/bmesh/blender/source/blender/blenlib/BLI_math_color.h	2011-12-28 13:50:33 UTC (rev 42931)
+++ branches/bmesh/blender/source/blender/blenlib/BLI_math_color.h	2011-12-28 14:05:02 UTC (rev 42932)
@@ -34,6 +34,8 @@
 extern "C" {
 #endif
 
+#include "BLI_math_inline.h"
+
 /* primaries */
 #define BLI_XYZ_SMPTE	0
 #define BLI_XYZ_REC709_SRGB	1
@@ -48,7 +50,7 @@
 #define BLI_YCC_ITU_BT601	0
 #define BLI_YCC_ITU_BT709	1
 #define BLI_YCC_JFIF_0_255	2
-	
+
 /******************* Conversion to RGB ********************/
 
 void hsv_to_rgb(float h, float s, float v, float *r, float *g, float *b);
@@ -70,22 +72,23 @@
 float rgb_to_grayscale(float rgb[3]);
 unsigned char rgb_to_grayscale_byte(unsigned char rgb[3]);
 
-/***************** Profile Transformations ********************/
+/**************** Profile Transformations *****************/
 
 void gamma_correct(float *c, float gamma);
 float rec709_to_linearrgb(float c);
 float linearrgb_to_rec709(float c);
 float srgb_to_linearrgb(float c);
 float linearrgb_to_srgb(float c);
-void srgb_to_linearrgb_v3_v3(float *col_to, float *col_from);
-void linearrgb_to_srgb_v3_v3(float *col_to, float *col_from);
 
-/* rgba buffer convenience functions */
-void srgb_to_linearrgb_rgba_buf(float *col, int tot);
-void linearrgb_to_srgb_rgba_buf(float *col, int tot);
-void srgb_to_linearrgb_rgba_rgba_buf(float *col_to, float *col_from, int tot);
-void linearrgb_to_srgb_rgba_rgba_buf(float *col_to, float *col_from, int tot);
-	
+MINLINE void srgb_to_linearrgb_v3_v3(float linear[3], const float srgb[3]);
+MINLINE void linearrgb_to_srgb_v3_v3(float srgb[3], const float linear[3]);
+
+MINLINE void srgb_to_linearrgb_v4(float linear[4], const float srgb[4]);
+MINLINE void linearrgb_to_srgb_v4(float srgb[4], const float linear[4]);
+
+MINLINE void srgb_to_linearrgb_predivide_v4(float linear[4], const float srgb[4]);
+MINLINE void linearrgb_to_srgb_predivide_v4(float srgb[4], const float linear[4]);
+
 /************************** Other *************************/
 
 int constrain_rgb(float *r, float *g, float *b);
@@ -101,6 +104,10 @@
 void rgb_byte_to_float(const unsigned char *in, float *out);
 void rgb_float_to_byte(const float *in, unsigned char *out);
 
+#ifdef BLI_MATH_INLINE_H
+#include "intern/math_color_inline.c"
+#endif
+
 #ifdef __cplusplus
 }
 #endif

Modified: branches/bmesh/blender/source/blender/blenlib/intern/math_color.c
===================================================================
--- branches/bmesh/blender/source/blender/blenlib/intern/math_color.c	2011-12-28 13:50:33 UTC (rev 42931)
+++ branches/bmesh/blender/source/blender/blenlib/intern/math_color.c	2011-12-28 14:05:02 UTC (rev 42932)
@@ -393,57 +393,6 @@
 		return  1.055f * powf(c, 1.0f/2.4f) - 0.055f;
 }
 
-void srgb_to_linearrgb_v3_v3(float *col_to, float *col_from)
-{
-	col_to[0] = srgb_to_linearrgb(col_from[0]);
-	col_to[1] = srgb_to_linearrgb(col_from[1]);
-	col_to[2] = srgb_to_linearrgb(col_from[2]);
-}
-
-void linearrgb_to_srgb_v3_v3(float *col_to, float *col_from)
-{
-	col_to[0] = linearrgb_to_srgb(col_from[0]);
-	col_to[1] = linearrgb_to_srgb(col_from[1]);
-	col_to[2] = linearrgb_to_srgb(col_from[2]);
-}
-
-/* todo, should these be moved elsewhere?, they dont belong in imbuf */
-void srgb_to_linearrgb_rgba_buf(float *col, int tot)
-{
-	while(tot--) {
-		srgb_to_linearrgb_v3_v3(col, col);
-		col += 4;
-	}
-}
-
-void linearrgb_to_srgb_rgba_buf(float *col, int tot)
-{
-	while(tot--) {
-		linearrgb_to_srgb_v3_v3(col, col);
-		col += 4;
-	}
-}
-
-void srgb_to_linearrgb_rgba_rgba_buf(float *col_to, float *col_from, int tot)
-{
-	while(tot--) {
-		srgb_to_linearrgb_v3_v3(col_to, col_from);
-		col_to[3]= col_from[3];
-		col_to += 4;
-		col_from += 4;
-	}
-}
-
-void linearrgb_to_srgb_rgba_rgba_buf(float *col_to, float *col_from, int tot)
-{
-	while(tot--) {
-		linearrgb_to_srgb_v3_v3(col_to, col_from);
-		col_to[3]= col_from[3];
-		col_to += 4;
-		col_from += 4;
-	}
-}
-
 void minmax_rgb(short c[])
 {
 	if(c[0]>255) c[0]=255;

Copied: branches/bmesh/blender/source/blender/blenlib/intern/math_color_inline.c (from rev 42931, trunk/blender/source/blender/blenlib/intern/math_color_inline.c)
===================================================================
--- branches/bmesh/blender/source/blender/blenlib/intern/math_color_inline.c	                        (rev 0)
+++ branches/bmesh/blender/source/blender/blenlib/intern/math_color_inline.c	2011-12-28 14:05:02 UTC (rev 42932)
@@ -0,0 +1,109 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * The Original Code is: some of this file.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ * */
+
+/** \file blender/blenlib/intern/math_color_inline.c
+ *  \ingroup bli
+ */
+
+
+#include "BLI_math_color.h"
+#include "BLI_utildefines.h"
+
+#ifndef BLI_MATH_COLOR_INLINE_H
+#define BLI_MATH_COLOR_INLINE_H
+
+/******************************** Color Space ********************************/
+
+MINLINE void srgb_to_linearrgb_v3_v3(float linear[3], const float srgb[3])
+{
+	linear[0] = srgb_to_linearrgb(srgb[0]);
+	linear[1] = srgb_to_linearrgb(srgb[1]);
+	linear[2] = srgb_to_linearrgb(srgb[2]);
+}
+
+MINLINE void linearrgb_to_srgb_v3_v3(float srgb[3], const float linear[3])
+{
+	srgb[0] = linearrgb_to_srgb(linear[0]);
+	srgb[1] = linearrgb_to_srgb(linear[1]);
+	srgb[2] = linearrgb_to_srgb(linear[2]);
+}
+
+MINLINE void srgb_to_linearrgb_v4(float linear[4], const float srgb[4])
+{
+	srgb_to_linearrgb_v3_v3(linear, srgb);
+	linear[3] = srgb[3];
+}
+
+MINLINE void linearrgb_to_srgb_v4(float srgb[4], const float linear[4])
+{
+	linearrgb_to_srgb_v3_v3(srgb, linear);
+	srgb[3] = linear[3];
+}
+
+/* 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
+   because it is ill defined */
+
+MINLINE void srgb_to_linearrgb_predivide_v4(float linear[4], const float srgb[4])
+{
+	float alpha, inv_alpha;
+
+	if(srgb[3] == 1.0f || srgb[3] == 0.0f) {
+		alpha = 1.0f;
+		inv_alpha = 1.0f;
+	}
+	else {
+		alpha = srgb[3];
+		inv_alpha = 1.0f/alpha;
+	}
+
+	linear[0] = srgb_to_linearrgb(srgb[0] * inv_alpha) * alpha;
+	linear[1] = srgb_to_linearrgb(srgb[1] * inv_alpha) * alpha;
+	linear[2] = srgb_to_linearrgb(srgb[2] * inv_alpha) * alpha;
+	linear[3] = srgb[3];
+}
+
+MINLINE void linearrgb_to_srgb_predivide_v4(float srgb[4], const float linear[4])
+{
+	float alpha, inv_alpha;
+
+	if(linear[3] == 1.0f || linear[3] == 0.0f) {
+		alpha = 1.0f;
+		inv_alpha = 1.0f;
+	}
+	else {
+		alpha = linear[3];
+		inv_alpha = 1.0f/alpha;
+	}
+
+	srgb[0] = linearrgb_to_srgb(linear[0] * inv_alpha) * alpha;
+	srgb[1] = linearrgb_to_srgb(linear[1] * inv_alpha) * alpha;
+	srgb[2] = linearrgb_to_srgb(linear[2] * inv_alpha) * alpha;
+	srgb[3] = linear[3];
+}
+
+#endif /* BLI_MATH_COLOR_INLINE_H */
+


@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list