[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