[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47799] trunk/blender/source/blender: yse BLI_math for the compositor in more places.

Campbell Barton ideasman42 at gmail.com
Tue Jun 12 22:04:56 CEST 2012


Revision: 47799
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47799
Author:   campbellbarton
Date:     2012-06-12 20:04:55 +0000 (Tue, 12 Jun 2012)
Log Message:
-----------
yse BLI_math for the compositor in more places.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/curve.c
    trunk/blender/source/blender/blenkernel/intern/tracking.c
    trunk/blender/source/blender/blenlib/BLI_math_vector.h
    trunk/blender/source/blender/blenlib/intern/math_vector_inline.c
    trunk/blender/source/blender/compositor/intern/COM_MemoryBuffer.cpp
    trunk/blender/source/blender/compositor/intern/COM_NodeOperation.h
    trunk/blender/source/blender/compositor/operations/COM_AlphaOverKeyOperation.cpp
    trunk/blender/source/blender/compositor/operations/COM_AlphaOverMixedOperation.cpp
    trunk/blender/source/blender/compositor/operations/COM_AlphaOverPremultiplyOperation.cpp
    trunk/blender/source/blender/compositor/operations/COM_BilateralBlurOperation.cpp
    trunk/blender/source/blender/compositor/operations/COM_BokehBlurOperation.cpp
    trunk/blender/source/blender/compositor/operations/COM_ColorCurveOperation.cpp
    trunk/blender/source/blender/compositor/operations/COM_ConvertKeyToPremulOperation.cpp
    trunk/blender/source/blender/compositor/operations/COM_ConvertPremulToKeyOperation.cpp
    trunk/blender/source/blender/compositor/operations/COM_ConvertRGBToYCCOperation.cpp
    trunk/blender/source/blender/compositor/operations/COM_ConvertYCCToRGBOperation.cpp
    trunk/blender/source/blender/compositor/operations/COM_ConvolutionEdgeFilterOperation.cpp
    trunk/blender/source/blender/compositor/operations/COM_ConvolutionFilterOperation.cpp
    trunk/blender/source/blender/compositor/operations/COM_DirectionalBlurOperation.cpp
    trunk/blender/source/blender/compositor/operations/COM_GaussianBokehBlurOperation.cpp
    trunk/blender/source/blender/compositor/operations/COM_GaussianXBlurOperation.cpp
    trunk/blender/source/blender/compositor/operations/COM_GaussianYBlurOperation.cpp
    trunk/blender/source/blender/compositor/operations/COM_GlareSimpleStarOperation.cpp
    trunk/blender/source/blender/compositor/operations/COM_InvertOperation.cpp
    trunk/blender/source/blender/compositor/operations/COM_TonemapOperation.cpp
    trunk/blender/source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.cpp

Modified: trunk/blender/source/blender/blenkernel/intern/curve.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/curve.c	2012-06-12 20:01:54 UTC (rev 47798)
+++ trunk/blender/source/blender/blenkernel/intern/curve.c	2012-06-12 20:04:55 UTC (rev 47799)
@@ -1002,9 +1002,7 @@
 						bp++;
 
 					if (*fp != 0.0f) {
-						in[0] += (*fp) * bp->vec[0];
-						in[1] += (*fp) * bp->vec[1];
-						in[2] += (*fp) * bp->vec[2];
+						madd_v3_v3fl(in, bp->vec, *fp);
 					}
 				}
 			}
@@ -1106,9 +1104,7 @@
 				bp++;
 
 			if (*fp != 0.0f) {
-				coord_fp[0] += (*fp) * bp->vec[0];
-				coord_fp[1] += (*fp) * bp->vec[1];
-				coord_fp[2] += (*fp) * bp->vec[2];
+				madd_v3_v3fl(coord_fp, bp->vec, *fp);
 
 				if (tilt_fp)
 					(*tilt_fp) += (*fp) * bp->alfa;

Modified: trunk/blender/source/blender/blenkernel/intern/tracking.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/tracking.c	2012-06-12 20:01:54 UTC (rev 47798)
+++ trunk/blender/source/blender/blenkernel/intern/tracking.c	2012-06-12 20:04:55 UTC (rev 47799)
@@ -1301,6 +1301,8 @@
 	(void) frame_height;
 	(void) search_ibuf;
 	(void) marker;
+	(void) track;
+	(void) use_mask;
 
 	pattern_ibuf = IMB_allocImBuf(num_samples_x, num_samples_y, 32, IB_rectfloat);
 

Modified: trunk/blender/source/blender/blenlib/BLI_math_vector.h
===================================================================
--- trunk/blender/source/blender/blenlib/BLI_math_vector.h	2012-06-12 20:01:54 UTC (rev 47798)
+++ trunk/blender/source/blender/blenlib/BLI_math_vector.h	2012-06-12 20:04:55 UTC (rev 47799)
@@ -87,6 +87,8 @@
 MINLINE void add_v2_v2v2(float r[2], const float a[2], const float b[2]);
 MINLINE void add_v3_v3(float r[3], const float a[3]);
 MINLINE void add_v3_v3v3(float r[3], const float a[3], const float b[3]);
+MINLINE void add_v4_v4(float r[4], const float a[4]);
+MINLINE void add_v4_v4v4(float r[4], const float a[4], const float b[4]);
 
 MINLINE void sub_v2_v2(float r[2], const float a[2]);
 MINLINE void sub_v2_v2v2(float r[2], const float a[2], const float b[2]);
@@ -103,6 +105,7 @@
 MINLINE void mul_v3_v3(float r[3], const float a[3]);
 MINLINE void mul_v3_v3v3(float r[3], const float a[3], const float b[3]);
 MINLINE void mul_v4_fl(float r[4], float f);
+MINLINE void mul_v4_v4fl(float r[3], const float a[3], float f);
 
 MINLINE void madd_v3_v3fl(float r[3], const float a[3], float f);
 MINLINE void madd_v3_v3v3(float r[3], const float a[3], const float b[3]);
@@ -110,6 +113,7 @@
 MINLINE void madd_v3_v3v3fl(float r[3], const float a[3], const float b[3], float f);
 MINLINE void madd_v3_v3v3v3(float r[3], const float a[3], const float b[3], const float c[3]);
 MINLINE void madd_v4_v4fl(float r[4], const float a[4], float f);
+MINLINE void madd_v4_v4v4(float r[4], const float a[4], const float b[4]);
 
 MINLINE void negate_v2(float r[2]);
 MINLINE void negate_v2_v2(float r[2], const float a[2]);

Modified: trunk/blender/source/blender/blenlib/intern/math_vector_inline.c
===================================================================
--- trunk/blender/source/blender/blenlib/intern/math_vector_inline.c	2012-06-12 20:01:54 UTC (rev 47798)
+++ trunk/blender/source/blender/blenlib/intern/math_vector_inline.c	2012-06-12 20:04:55 UTC (rev 47799)
@@ -272,6 +272,22 @@
 	r[2] = a[2] + b[2];
 }
 
+MINLINE void add_v4_v4(float r[4], const float a[4])
+{
+	r[0] += a[0];
+	r[1] += a[1];
+	r[2] += a[2];
+	r[3] += a[3];
+}
+
+MINLINE void add_v4_v4v4(float r[4], const float a[4], const float b[4])
+{
+	r[0] = a[0] + b[0];
+	r[1] = a[1] + b[1];
+	r[2] = a[2] + b[2];
+	r[3] = a[3] + b[3];
+}
+
 MINLINE void sub_v2_v2(float r[2], const float a[2])
 {
 	r[0] -= a[0];
@@ -361,6 +377,14 @@
 	r[3] *= f;
 }
 
+MINLINE void mul_v4_v4fl(float r[4], const float a[4], float f)
+{
+	r[0] = a[0] * f;
+	r[1] = a[1] * f;
+	r[2] = a[2] * f;
+	r[3] = a[3] * f;
+}
+
 MINLINE void madd_v2_v2fl(float r[2], const float a[2], float f)
 {
 	r[0] += a[0] * f;
@@ -409,6 +433,14 @@
 	r[3] += a[3] * f;
 }
 
+MINLINE void madd_v4_v4v4(float r[4], const float a[4], const float b[4])
+{
+	r[0] += a[0] * b[0];
+	r[1] += a[1] * b[1];
+	r[2] += a[2] * b[2];
+	r[3] += a[3] * b[3];
+}
+
 MINLINE void mul_v3_v3v3(float r[3], const float v1[3], const float v2[3])
 {
 	r[0] = v1[0] * v2[0];

Modified: trunk/blender/source/blender/compositor/intern/COM_MemoryBuffer.cpp
===================================================================
--- trunk/blender/source/blender/compositor/intern/COM_MemoryBuffer.cpp	2012-06-12 20:01:54 UTC (rev 47798)
+++ trunk/blender/source/blender/compositor/intern/COM_MemoryBuffer.cpp	2012-06-12 20:04:55 UTC (rev 47799)
@@ -329,9 +329,7 @@
 				float tc[4];
 				const float wt = EWA_WTS[(Q < 0.f) ? 0 : (unsigned int)Q];
 				read(tc, clipuv(u, width), clipuv(v, height));
-				result[0] += tc[0]*wt;
-				result[1] += tc[1]*wt;
-				result[2] += tc[2]*wt;
+				madd_v3_v3fl(result, tc, wt);
 				result[3] += result[3] ? tc[3]*wt : 0.f;
 				d += wt;
 			}

Modified: trunk/blender/source/blender/compositor/intern/COM_NodeOperation.h
===================================================================
--- trunk/blender/source/blender/compositor/intern/COM_NodeOperation.h	2012-06-12 20:01:54 UTC (rev 47798)
+++ trunk/blender/source/blender/compositor/intern/COM_NodeOperation.h	2012-06-12 20:04:55 UTC (rev 47799)
@@ -35,6 +35,9 @@
 #include "list"
 #include "BLI_threads.h"
 
+#include "BLI_math_color.h"
+#include "BLI_math_vector.h"
+
 class ReadBufferOperation;
 
 /**

Modified: trunk/blender/source/blender/compositor/operations/COM_AlphaOverKeyOperation.cpp
===================================================================
--- trunk/blender/source/blender/compositor/operations/COM_AlphaOverKeyOperation.cpp	2012-06-12 20:01:54 UTC (rev 47798)
+++ trunk/blender/source/blender/compositor/operations/COM_AlphaOverKeyOperation.cpp	2012-06-12 20:04:55 UTC (rev 47799)
@@ -37,16 +37,10 @@
 	inputColor2Operation->read(inputOverColor, x, y, sampler, inputBuffers);
 	
 	if (inputOverColor[3] <= 0.0f) {
-		outputValue[0] = inputColor1[0];
-		outputValue[1] = inputColor1[1];
-		outputValue[2] = inputColor1[2];
-		outputValue[3] = inputColor1[3];
+		copy_v4_v4(outputValue, inputColor1);
 	}
 	else if (value[0] == 1.0f && inputOverColor[3] >= 1.0f) {
-		outputValue[0] = inputOverColor[0];
-		outputValue[1] = inputOverColor[1];
-		outputValue[2] = inputOverColor[2];
-		outputValue[3] = inputOverColor[3];
+		copy_v4_v4(outputValue, inputOverColor);
 	}
 	else {
 		float premul = value[0]*inputOverColor[3];

Modified: trunk/blender/source/blender/compositor/operations/COM_AlphaOverMixedOperation.cpp
===================================================================
--- trunk/blender/source/blender/compositor/operations/COM_AlphaOverMixedOperation.cpp	2012-06-12 20:01:54 UTC (rev 47798)
+++ trunk/blender/source/blender/compositor/operations/COM_AlphaOverMixedOperation.cpp	2012-06-12 20:04:55 UTC (rev 47799)
@@ -38,16 +38,10 @@
 	inputColor2Operation->read(inputOverColor, x, y, sampler, inputBuffers);
 	
 	if (inputOverColor[3] <= 0.0f) {
-		outputValue[0] = inputColor1[0];
-		outputValue[1] = inputColor1[1];
-		outputValue[2] = inputColor1[2];
-		outputValue[3] = inputColor1[3];
+		copy_v4_v4(outputValue, inputColor1);
 	}
 	else if (value[0] == 1.0f && inputOverColor[3] >= 1.0f) {
-		outputValue[0] = inputOverColor[0];
-		outputValue[1] = inputOverColor[1];
-		outputValue[2] = inputOverColor[2];
-		outputValue[3] = inputOverColor[3];
+		copy_v4_v4(outputValue, inputOverColor);
 	}
 	else {
 		float addfac = 1.0f - this->x + inputOverColor[3]*this->x;

Modified: trunk/blender/source/blender/compositor/operations/COM_AlphaOverPremultiplyOperation.cpp
===================================================================
--- trunk/blender/source/blender/compositor/operations/COM_AlphaOverPremultiplyOperation.cpp	2012-06-12 20:01:54 UTC (rev 47798)
+++ trunk/blender/source/blender/compositor/operations/COM_AlphaOverPremultiplyOperation.cpp	2012-06-12 20:04:55 UTC (rev 47799)
@@ -38,16 +38,10 @@
 	
 	/* Zero alpha values should still permit an add of RGB data */
 	if (inputOverColor[3]<0.0f) {
-		outputValue[0] = inputColor1[0];
-		outputValue[1] = inputColor1[1];
-		outputValue[2] = inputColor1[2];
-		outputValue[3] = inputColor1[3];
+		copy_v4_v4(outputValue, inputColor1);
 	}
 	else if (value[0] == 1.0f && inputOverColor[3] >= 1.0f) {
-		outputValue[0] = inputOverColor[0];
-		outputValue[1] = inputOverColor[1];
-		outputValue[2] = inputOverColor[2];
-		outputValue[3] = inputOverColor[3];
+		copy_v4_v4(outputValue, inputOverColor);
 	}
 	else {
 		float mul = 1.0f - value[0]*inputOverColor[3];

Modified: trunk/blender/source/blender/compositor/operations/COM_BilateralBlurOperation.cpp
===================================================================
--- trunk/blender/source/blender/compositor/operations/COM_BilateralBlurOperation.cpp	2012-06-12 20:01:54 UTC (rev 47798)
+++ trunk/blender/source/blender/compositor/operations/COM_BilateralBlurOperation.cpp	2012-06-12 20:04:55 UTC (rev 47799)
@@ -62,36 +62,27 @@
 	int maxy = ceil(y + space);
 	float deltaColor;
 	this->inputDeterminatorProgram->read(determinatorReferenceColor, x, y, inputBuffers, data);
-	
-	blurColor[0] = 0.0f;
-	blurColor[1] = 0.0f;
-	blurColor[2] = 0.0f;
-	blurColor[3] = 0.0f;
+
+	zero_v4(blurColor);
 	blurDivider = 0.0f;
 	for (int yi = miny ; yi < maxy ; yi+=QualityStepHelper::getStep()) {
 		for (int xi = minx ; xi < maxx ; xi+=QualityStepHelper::getStep()) {
 			// read determinator
 			this->inputDeterminatorProgram->read(determinator, xi, yi, inputBuffers, data);
-			deltaColor = fabsf(determinatorReferenceColor[0] - determinator[0])+
-				fabsf(determinatorReferenceColor[1] - determinator[1])+
-				fabsf(determinatorReferenceColor[2] - determinator[2]); // do not take the alpha channel into account
+			deltaColor = (fabsf(determinatorReferenceColor[0] - determinator[0]) +
+			              fabsf(determinatorReferenceColor[1] - determinator[1]) +
+			              fabsf(determinatorReferenceColor[2] - determinator[2])); // do not take the alpha channel into account
 			if (deltaColor< sigmacolor) {
 				// add this to the blur
 				this->inputColorProgram->read(tempColor, xi, yi, inputBuffers, data);
-				blurColor[0]+=tempColor[0];
-				blurColor[1]+=tempColor[1];
-				blurColor[2]+=tempColor[2];

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list