Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/compositor/operations/COM_ConvolutionEdgeFilterOperation.cpp')
-rw-r--r--source/blender/compositor/operations/COM_ConvolutionEdgeFilterOperation.cpp71
1 files changed, 33 insertions, 38 deletions
diff --git a/source/blender/compositor/operations/COM_ConvolutionEdgeFilterOperation.cpp b/source/blender/compositor/operations/COM_ConvolutionEdgeFilterOperation.cpp
index db67412f3e7..5ac8c2254dc 100644
--- a/source/blender/compositor/operations/COM_ConvolutionEdgeFilterOperation.cpp
+++ b/source/blender/compositor/operations/COM_ConvolutionEdgeFilterOperation.cpp
@@ -25,17 +25,12 @@
ConvolutionEdgeFilterOperation::ConvolutionEdgeFilterOperation() : ConvolutionFilterOperation()
{
-}
-inline void addFilter(float *result, float*input, float value)
-{
- result[0] += input[0] * value;
- result[1] += input[1] * value;
- result[2] += input[2] * value;
+ /* pass */
}
-void ConvolutionEdgeFilterOperation::executePixel(float *color,int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void ConvolutionEdgeFilterOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
{
- float in1[4],in2[4], res1[4], res2[4];
+ float in1[4], in2[4], res1[4], res2[4];
int x1 = x - 1;
int x2 = x;
@@ -43,12 +38,12 @@ void ConvolutionEdgeFilterOperation::executePixel(float *color,int x, int y, Mem
int y1 = y - 1;
int y2 = y;
int y3 = y + 1;
- CLAMP(x1, 0, getWidth()-1);
- CLAMP(x2, 0, getWidth()-1);
- CLAMP(x3, 0, getWidth()-1);
- CLAMP(y1, 0, getHeight()-1);
- CLAMP(y2, 0, getHeight()-1);
- CLAMP(y3, 0, getHeight()-1);
+ CLAMP(x1, 0, getWidth() - 1);
+ CLAMP(x2, 0, getWidth() - 1);
+ CLAMP(x3, 0, getWidth() - 1);
+ CLAMP(y1, 0, getHeight() - 1);
+ CLAMP(y2, 0, getHeight() - 1);
+ CLAMP(y3, 0, getHeight() - 1);
float value[4];
this->inputValueOperation->read(value, x2, y2, inputBuffers, NULL);
@@ -64,48 +59,48 @@ void ConvolutionEdgeFilterOperation::executePixel(float *color,int x, int y, Mem
res2[3] = 0.0f;
this->inputOperation->read(in1, x1, y1, inputBuffers, NULL);
- addFilter(res1, in1, this->filter[0]);
- addFilter(res2, in1, this->filter[0]);
+ madd_v3_v3fl(res1, in1, this->filter[0]);
+ madd_v3_v3fl(res2, in1, this->filter[0]);
this->inputOperation->read(in1, x2, y1, inputBuffers, NULL);
- addFilter(res1, in1, this->filter[1]);
- addFilter(res2, in1, this->filter[3]);
+ madd_v3_v3fl(res1, in1, this->filter[1]);
+ madd_v3_v3fl(res2, in1, this->filter[3]);
this->inputOperation->read(in1, x3, y1, inputBuffers, NULL);
- addFilter(res1, in1, this->filter[2]);
- addFilter(res2, in1, this->filter[6]);
+ madd_v3_v3fl(res1, in1, this->filter[2]);
+ madd_v3_v3fl(res2, in1, this->filter[6]);
this->inputOperation->read(in1, x1, y2, inputBuffers, NULL);
- addFilter(res1, in1, this->filter[3]);
- addFilter(res2, in1, this->filter[1]);
+ madd_v3_v3fl(res1, in1, this->filter[3]);
+ madd_v3_v3fl(res2, in1, this->filter[1]);
this->inputOperation->read(in2, x2, y2, inputBuffers, NULL);
- addFilter(res1, in2, this->filter[4]);
- addFilter(res2, in2, this->filter[4]);
+ madd_v3_v3fl(res1, in2, this->filter[4]);
+ madd_v3_v3fl(res2, in2, this->filter[4]);
this->inputOperation->read(in1, x3, y2, inputBuffers, NULL);
- addFilter(res1, in1, this->filter[5]);
- addFilter(res2, in1, this->filter[7]);
+ madd_v3_v3fl(res1, in1, this->filter[5]);
+ madd_v3_v3fl(res2, in1, this->filter[7]);
this->inputOperation->read(in1, x1, y3, inputBuffers, NULL);
- addFilter(res1, in1, this->filter[6]);
- addFilter(res2, in1, this->filter[2]);
+ madd_v3_v3fl(res1, in1, this->filter[6]);
+ madd_v3_v3fl(res2, in1, this->filter[2]);
this->inputOperation->read(in1, x2, y3, inputBuffers, NULL);
- addFilter(res1, in1, this->filter[7]);
- addFilter(res2, in1, this->filter[5]);
+ madd_v3_v3fl(res1, in1, this->filter[7]);
+ madd_v3_v3fl(res2, in1, this->filter[5]);
this->inputOperation->read(in1, x3, y3, inputBuffers, NULL);
- addFilter(res1, in1, this->filter[8]);
- addFilter(res2, in1, this->filter[8]);
+ madd_v3_v3fl(res1, in1, this->filter[8]);
+ madd_v3_v3fl(res2, in1, this->filter[8]);
- color[0] = sqrt(res1[0]*res1[0]+res2[0]*res2[0]);
- color[1] = sqrt(res1[1]*res1[1]+res2[1]*res2[1]);
- color[2] = sqrt(res1[2]*res1[2]+res2[2]*res2[2]);
+ color[0] = sqrt(res1[0] * res1[0] + res2[0] * res2[0]);
+ color[1] = sqrt(res1[1] * res1[1] + res2[1] * res2[1]);
+ color[2] = sqrt(res1[2] * res1[2] + res2[2] * res2[2]);
- color[0] = color[0]*value[0] + in2[0] * mval;
- color[1] = color[1]*value[0] + in2[1] * mval;
- color[2] = color[2]*value[0] + in2[2] * mval;
+ color[0] = color[0] * value[0] + in2[0] * mval;
+ color[1] = color[1] * value[0] + in2[1] * mval;
+ color[2] = color[2] * value[0] + in2[2] * mval;
color[3] = in2[3];
}