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:
authorCampbell Barton <ideasman42@gmail.com>2012-06-15 19:55:37 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-06-15 19:55:37 +0400
commit927fc897cf8d7e6c18571dee2b79b596b5aaffa7 (patch)
treedbe493cf8e69ec25bc6b83c43c5630cf96fc401e /source/blender/compositor
parent2ca89f7add1949295ac58de6697534d44508bca3 (diff)
minor optimizations for dilate
Diffstat (limited to 'source/blender/compositor')
-rw-r--r--source/blender/compositor/operations/COM_DilateErodeOperation.cpp12
-rw-r--r--source/blender/compositor/operations/COM_OpenCLKernels.cl2
2 files changed, 7 insertions, 7 deletions
diff --git a/source/blender/compositor/operations/COM_DilateErodeOperation.cpp b/source/blender/compositor/operations/COM_DilateErodeOperation.cpp
index 17b043009ac..f6d794fe564 100644
--- a/source/blender/compositor/operations/COM_DilateErodeOperation.cpp
+++ b/source/blender/compositor/operations/COM_DilateErodeOperation.cpp
@@ -82,11 +82,11 @@ void DilateErodeThresholdOperation::executePixel(float *color, int x, int y, Mem
this->inputProgram->read(inputValue, x, y, inputBuffers, NULL);
if (inputValue[0] > sw) {
for (int yi = miny; yi < maxy; yi++) {
+ const float dy = yi - y;
offset = ((yi - rect->ymin) * bufferWidth + (minx - rect->xmin)) * 4;
for (int xi = minx; xi < maxx; xi++) {
if (buffer[offset] < sw) {
const float dx = xi - x;
- const float dy = yi - y;
const float dis = dx * dx + dy * dy;
mindist = min(mindist, dis);
}
@@ -97,11 +97,11 @@ void DilateErodeThresholdOperation::executePixel(float *color, int x, int y, Mem
}
else {
for (int yi = miny; yi < maxy; yi++) {
+ const float dy = yi - y;
offset = ((yi - rect->ymin) * bufferWidth + (minx - rect->xmin)) * 4;
for (int xi = minx; xi < maxx; xi++) {
if (buffer[offset] > sw) {
const float dx = xi - x;
- const float dy = yi - y;
const float dis = dx * dx + dy * dy;
mindist = min(mindist, dis);
}
@@ -187,7 +187,7 @@ void *DilateDistanceOperation::initializeTileData(rcti *rect, MemoryBuffer **mem
void DilateDistanceOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
{
const float distance = this->distance;
- float mindist = distance * distance;
+ const float mindist = distance * distance;
MemoryBuffer *inputBuffer = (MemoryBuffer *)data;
float *buffer = inputBuffer->getBuffer();
@@ -202,10 +202,10 @@ void DilateDistanceOperation::executePixel(float *color, int x, int y, MemoryBuf
float value = 0.0f;
for (int yi = miny; yi < maxy; yi++) {
+ const float dy = yi - y;
offset = ((yi - rect->ymin) * bufferWidth + (minx - rect->xmin)) * 4;
for (int xi = minx; xi < maxx; xi++) {
const float dx = xi - x;
- const float dy = yi - y;
const float dis = dx * dx + dy * dy;
if (dis <= mindist) {
value = max(buffer[offset], value);
@@ -262,7 +262,7 @@ ErodeDistanceOperation::ErodeDistanceOperation() : DilateDistanceOperation()
void ErodeDistanceOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
{
const float distance = this->distance;
- float mindist = distance * distance;
+ const float mindist = distance * distance;
MemoryBuffer *inputBuffer = (MemoryBuffer *)data;
float *buffer = inputBuffer->getBuffer();
@@ -277,10 +277,10 @@ void ErodeDistanceOperation::executePixel(float *color, int x, int y, MemoryBuff
float value = 1.0f;
for (int yi = miny; yi < maxy; yi++) {
+ const float dy = yi - y;
offset = ((yi - rect->ymin) * bufferWidth + (minx - rect->xmin)) * 4;
for (int xi = minx; xi < maxx; xi++) {
const float dx = xi - x;
- const float dy = yi - y;
const float dis = dx * dx + dy * dy;
if (dis <= mindist) {
value = min(buffer[offset], value);
diff --git a/source/blender/compositor/operations/COM_OpenCLKernels.cl b/source/blender/compositor/operations/COM_OpenCLKernels.cl
index e1f175b318a..0f8e543de7f 100644
--- a/source/blender/compositor/operations/COM_OpenCLKernels.cl
+++ b/source/blender/compositor/operations/COM_OpenCLKernels.cl
@@ -68,9 +68,9 @@ __kernel void dilateKernel(__read_only image2d_t inputImage, __write_only image
int2 inputXy;
for (ny = minXY.y, inputXy.y = ny - offsetInput.y ; ny < maxXY.y ; ny ++, inputXy.y++) {
+ const float deltaY = (realCoordinate.y - ny);
for (nx = minXY.x, inputXy.x = nx - offsetInput.x; nx < maxXY.x ; nx ++, inputXy.x++) {
const float deltaX = (realCoordinate.x - nx);
- const float deltaY = (realCoordinate.y - ny);
const float measuredDistance = deltaX*deltaX+deltaY*deltaY;
if (measuredDistance <= distanceSquared) {
value = max(value, read_imagef(inputImage, SAMPLER_NEAREST, inputXy).s0);