[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [48187] trunk/blender/source/blender: use an inline function for rgb -> bw conversion.

Campbell Barton ideasman42 at gmail.com
Fri Jun 22 09:49:56 CEST 2012


Revision: 48187
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48187
Author:   campbellbarton
Date:     2012-06-22 07:49:44 +0000 (Fri, 22 Jun 2012)
Log Message:
-----------
use an inline function for rgb -> bw conversion.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/tracking.c
    trunk/blender/source/blender/blenlib/intern/math_color_inline.c
    trunk/blender/source/blender/compositor/operations/COM_CalculateMeanOperation.cpp
    trunk/blender/source/blender/compositor/operations/COM_CalculateStandardDeviationOperation.cpp
    trunk/blender/source/blender/compositor/operations/COM_ConvertColorToBWOperation.cpp
    trunk/blender/source/blender/editors/interface/interface_draw.c
    trunk/blender/source/blender/nodes/composite/node_composite_util.c
    trunk/blender/source/blender/nodes/composite/nodes/node_composite_levels.c
    trunk/blender/source/blender/nodes/composite/nodes/node_composite_valToRgb.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_valToRgb.c
    trunk/blender/source/blender/nodes/texture/nodes/node_texture_valToRgb.c
    trunk/blender/source/blender/render/intern/source/render_texture.c

Modified: trunk/blender/source/blender/blenkernel/intern/tracking.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/tracking.c	2012-06-22 04:40:38 UTC (rev 48186)
+++ trunk/blender/source/blender/blenkernel/intern/tracking.c	2012-06-22 07:49:44 UTC (rev 48187)
@@ -2396,7 +2396,7 @@
 	ImBuf *destination_ibuf;
 	int frame_delta = context->backwards ? -1 : 1;
 	int curfra =  BKE_movieclip_remap_scene_to_clip_frame(context->clip, context->user.framenr);
-	int nextfra;
+	/* int nextfra; */ /* UNUSED */
 	int a, ok = FALSE, map_size;
 
 	int frame_width, frame_height;
@@ -2414,7 +2414,7 @@
 	if (!destination_ibuf)
 		return FALSE;
 
-	nextfra = curfra + frame_delta;
+	/* nextfra = curfra + frame_delta; */ /* UNUSED */
 
 	frame_width = destination_ibuf->x;
 	frame_height = destination_ibuf->y;

Modified: trunk/blender/source/blender/blenlib/intern/math_color_inline.c
===================================================================
--- trunk/blender/source/blender/blenlib/intern/math_color_inline.c	2012-06-22 04:40:38 UTC (rev 48186)
+++ trunk/blender/source/blender/blenlib/intern/math_color_inline.c	2012-06-22 07:49:44 UTC (rev 48187)
@@ -222,6 +222,12 @@
 	r_col[2] = ((pack) >> 16) & 0xFF;
 }
 
+/* XXX - investigate when/why rgb_to_bw & rgb_to_grayscale are different,
+ * and why we use both! whats the purpose of this? */
+MINLINE float rgb_to_bw(const float rgb[3])
+{
+	return 0.35f * rgb[0] + 0.45f * rgb[1] + 0.2f * rgb[2];
+}
 
 MINLINE float rgb_to_grayscale(const float rgb[3])
 {

Modified: trunk/blender/source/blender/compositor/operations/COM_CalculateMeanOperation.cpp
===================================================================
--- trunk/blender/source/blender/compositor/operations/COM_CalculateMeanOperation.cpp	2012-06-22 04:40:38 UTC (rev 48186)
+++ trunk/blender/source/blender/compositor/operations/COM_CalculateMeanOperation.cpp	2012-06-22 07:49:44 UTC (rev 48187)
@@ -97,7 +97,7 @@
 			{
 				case 1:
 				{
-					sum += buffer[offset] * 0.35f + buffer[offset + 1] * 0.45f + buffer[offset + 2] * 0.2f;
+					sum += rgb_to_bw(&buffer[offset]);
 					break;
 				}
 				case 2:

Modified: trunk/blender/source/blender/compositor/operations/COM_CalculateStandardDeviationOperation.cpp
===================================================================
--- trunk/blender/source/blender/compositor/operations/COM_CalculateStandardDeviationOperation.cpp	2012-06-22 04:40:38 UTC (rev 48186)
+++ trunk/blender/source/blender/compositor/operations/COM_CalculateStandardDeviationOperation.cpp	2012-06-22 07:49:44 UTC (rev 48187)
@@ -56,7 +56,7 @@
 				{
 					case 1:
 					{
-						float value = buffer[offset] * 0.35f + buffer[offset + 1] * 0.45f + buffer[offset + 2] * 0.2f;
+						float value = rgb_to_bw(&buffer[offset]);
 						sum += (value - mean) * (value - mean);
 						break;
 					}

Modified: trunk/blender/source/blender/compositor/operations/COM_ConvertColorToBWOperation.cpp
===================================================================
--- trunk/blender/source/blender/compositor/operations/COM_ConvertColorToBWOperation.cpp	2012-06-22 04:40:38 UTC (rev 48186)
+++ trunk/blender/source/blender/compositor/operations/COM_ConvertColorToBWOperation.cpp	2012-06-22 07:49:44 UTC (rev 48187)
@@ -38,7 +38,7 @@
 {
 	float inputColor[4];
 	inputOperation->read(&inputColor[0], x, y, sampler, inputBuffers);
-	outputValue[0] = inputColor[0] * 0.35f + inputColor[1] * 0.45f + inputColor[2] * 0.2f;
+	outputValue[0] = rgb_to_bw(inputColor);
 }
 
 void ConvertColorToBWOperation::deinitExecution()

Modified: trunk/blender/source/blender/editors/interface/interface_draw.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_draw.c	2012-06-22 04:40:38 UTC (rev 48186)
+++ trunk/blender/source/blender/editors/interface/interface_draw.c	2012-06-22 07:49:44 UTC (rev 48187)
@@ -1438,7 +1438,7 @@
 			glEnd();
 		}
 		else if (cumap->cur == 3) {
-			float lum = cumap->sample[0] * 0.35f + cumap->sample[1] * 0.45f + cumap->sample[2] * 0.2f;
+			float lum = rgb_to_bw(cumap->sample);
 			glColor3ub(240, 240, 240);
 			
 			glBegin(GL_LINES);

Modified: trunk/blender/source/blender/nodes/composite/node_composite_util.c
===================================================================
--- trunk/blender/source/blender/nodes/composite/node_composite_util.c	2012-06-22 04:40:38 UTC (rev 48186)
+++ trunk/blender/source/blender/nodes/composite/node_composite_util.c	2012-06-22 07:49:44 UTC (rev 48187)
@@ -207,7 +207,7 @@
 			*out= 0.333333f*(in[0]+in[1]+in[2]);
 		}
 		else if (intype==CB_RGBA) {
-			*out= in[0]*0.35f + in[1]*0.45f + in[2]*0.2f;
+			*out = rgb_to_bw(in);
 		}
 	}
 	else if (outtype==CB_VEC2) {
@@ -300,7 +300,7 @@
 			}
 			else if (inbuf->type==CB_RGBA) {
 				for (; x>0; x--, outrf+= 1, inrf+= 4)
-					*outrf= inrf[0]*0.35f + inrf[1]*0.45f + inrf[2]*0.2f;
+					*outrf = rgb_to_bw(inrf);
 			}
 		}
 		else if (type==CB_VEC2) {

Modified: trunk/blender/source/blender/nodes/composite/nodes/node_composite_levels.c
===================================================================
--- trunk/blender/source/blender/nodes/composite/nodes/node_composite_levels.c	2012-06-22 04:40:38 UTC (rev 48186)
+++ trunk/blender/source/blender/nodes/composite/nodes/node_composite_levels.c	2012-06-22 07:49:44 UTC (rev 48187)
@@ -45,11 +45,6 @@
 	{-1, 0, ""}
 };
 
-static void rgb_tobw(float r, float g, float b, float* out)
-{
-	*out= r*0.35f + g*0.45f + b*0.2f;
-}
-
 static void fill_bins(bNode* node, CompBuf* in, int* bins)
 {
 	float value[4];
@@ -66,7 +61,7 @@
 			if (value[3] > 0.0f) { /* don't count transparent pixels */
 				switch (node->custom1) {
 					case 1: { /* all colors */
-						rgb_tobw(value[0], value[1], value[2], &value[0]);
+						value[0] = rgb_to_bw(value);
 						value[0]=value[0]*255; /* scale to 0-255 range */
 						ivalue=(int)value[0];
 						break;
@@ -125,7 +120,7 @@
 				switch (node->custom1) {
 				case 1:
 					{
-						rgb_tobw(value[0], value[1], value[2], &value[0]);
+						value[0] = rgb_to_bw(value);
 						sum+=value[0];
 						break;
 					}
@@ -176,7 +171,7 @@
 				switch (node->custom1) {
 				case 1:
 					{
-						rgb_tobw(value[0], value[1], value[2], &value[0]);
+						value[0] = rgb_to_bw(value);
 						sum+=(value[0]-mean)*(value[0]-mean);
 						break;
 					}

Modified: trunk/blender/source/blender/nodes/composite/nodes/node_composite_valToRgb.c
===================================================================
--- trunk/blender/source/blender/nodes/composite/nodes/node_composite_valToRgb.c	2012-06-22 04:40:38 UTC (rev 48186)
+++ trunk/blender/source/blender/nodes/composite/nodes/node_composite_valToRgb.c	2012-06-22 07:49:44 UTC (rev 48187)
@@ -111,7 +111,7 @@
 
 static void do_rgbtobw(bNode *UNUSED(node), float *out, float *in)
 {
-	out[0]= in[0]*0.35f + in[1]*0.45f + in[2]*0.2f;
+	out[0] = rgb_to_bw(in);
 }
 
 static void node_composit_exec_rgbtobw(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out)

Modified: trunk/blender/source/blender/nodes/shader/nodes/node_shader_valToRgb.c
===================================================================
--- trunk/blender/source/blender/nodes/shader/nodes/node_shader_valToRgb.c	2012-06-22 04:40:38 UTC (rev 48186)
+++ trunk/blender/source/blender/nodes/shader/nodes/node_shader_valToRgb.c	2012-06-22 07:49:44 UTC (rev 48187)
@@ -104,7 +104,7 @@
 	/* stack order out: bw */
 	/* stack order in: col */
 
-	out[0]->vec[0]= in[0]->vec[0]*0.35f + in[0]->vec[1]*0.45f + in[0]->vec[2]*0.2f;
+	out[0]->vec[0] = rgb_to_bw(in[0]->vec);
 }
 
 static int gpu_shader_rgbtobw(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out)

Modified: trunk/blender/source/blender/nodes/texture/nodes/node_texture_valToRgb.c
===================================================================
--- trunk/blender/source/blender/nodes/texture/nodes/node_texture_valToRgb.c	2012-06-22 04:40:38 UTC (rev 48186)
+++ trunk/blender/source/blender/nodes/texture/nodes/node_texture_valToRgb.c	2012-06-22 07:49:44 UTC (rev 48187)
@@ -91,8 +91,7 @@
 {
 	float cin[4];
 	tex_input_rgba(cin, in[0], p, thread);
-	
-	*out = cin[0] * 0.35f + cin[1] * 0.45f + cin[2] * 0.2f;
+	*out = rgb_to_bw(cin);
 }
 
 static void rgbtobw_exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out)

Modified: trunk/blender/source/blender/render/intern/source/render_texture.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/render_texture.c	2012-06-22 04:40:38 UTC (rev 48186)
+++ trunk/blender/source/blender/render/intern/source/render_texture.c	2012-06-22 07:49:44 UTC (rev 48187)
@@ -2852,7 +2852,7 @@
 
 	/* texture output */
 	if (rgb && (mtex->texflag & MTEX_RGBTOINT)) {
-		texres.tin= (0.35f*texres.tr+0.45f*texres.tg+0.2f*texres.tb);
+		texres.tin = rgb_to_bw(&texres.tr);
 		rgb= 0;
 	}
 	if (mtex->texflag & MTEX_NEGATIVE) {
@@ -2919,7 +2919,7 @@
 	if (mtex->mapto & MAP_ALPHA) {
 		if (rgb) {
 			if (texres.talpha) texres.tin= texres.ta;
-			else texres.tin= (0.35f*texres.tr+0.45f*texres.tg+0.2f*texres.tb);
+			else texres.tin = rgb_to_bw(&texres.tr);
 		}
 				
 		col_r[3]*= texres.tin;
@@ -3051,7 +3051,7 @@
 			
 			/* texture output */
 			if (rgb && (mtex->texflag & MTEX_RGBTOINT)) {
-				texres.tin= (0.35f*texres.tr+0.45f*texres.tg+0.2f*texres.tb);
+				texres.tin = rgb_to_bw(&texres.tr);
 				rgb= 0;
 			}
 			if (mtex->texflag & MTEX_NEGATIVE) {
@@ -3124,7 +3124,7 @@
 				}
 			}
 			if (mtex->mapto & WOMAP_BLEND) {
-				if (rgb) texres.tin= (0.35f*texres.tr+0.45f*texres.tg+0.2f*texres.tb);
+				if (rgb) texres.tin = rgb_to_bw(&texres.tr);
 				
 				*blend= texture_value_blend(mtex->def_var, *blend, texres.tin, mtex->blendfac, mtex->blendtype);
 			}
@@ -3264,7 +3264,7 @@
 
 			/* texture output */
 			if (rgb && (mtex->texflag & MTEX_RGBTOINT)) {
-				texres.tin= (0.35f*texres.tr+0.45f*texres.tg+0.2f*texres.tb);
+				texres.tin = rgb_to_bw(&texres.tr);
 				rgb= 0;
 			}
 			if (mtex->texflag & MTEX_NEGATIVE) {
@@ -3358,7 +3358,7 @@
 	rgb= multitex(tex, texvec, dxt, dyt, 0, &texr, thread, mtex->which_output);
 	
 	if (rgb) {
-		texr.tin= (0.35f*texr.tr+0.45f*texr.tg+0.2f*texr.tb);
+		texr.tin = rgb_to_bw(&texr.tr);
 	}
 	else {
 		texr.tr= mtex->r;




More information about the Bf-blender-cvs mailing list