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-08-24 16:48:56 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-08-24 16:48:56 +0400
commita7831c74e6bb4fdee43ba65513ed06e631e05bfd (patch)
treeb23cb661eeb6474aa9f58ecab521fd856e1b78b8
parentcb21d3f670a2ef9c689e465960f2de44dfccacdd (diff)
fix for bug in variable size blur compositor node - using incorrect Y blur operations and uninitialized memory was causing random blur results.
-rw-r--r--source/blender/compositor/nodes/COM_BlurNode.cpp6
-rw-r--r--source/blender/compositor/operations/COM_BlurBaseOperation.cpp5
-rw-r--r--source/blender/compositor/operations/COM_GaussianAlphaXBlurOperation.cpp1
-rw-r--r--source/blender/compositor/operations/COM_GaussianAlphaYBlurOperation.cpp1
4 files changed, 12 insertions, 1 deletions
diff --git a/source/blender/compositor/nodes/COM_BlurNode.cpp b/source/blender/compositor/nodes/COM_BlurNode.cpp
index 93ef002c8d7..e39ef2b3f23 100644
--- a/source/blender/compositor/nodes/COM_BlurNode.cpp
+++ b/source/blender/compositor/nodes/COM_BlurNode.cpp
@@ -74,14 +74,18 @@ void BlurNode::convertToOperations(ExecutionSystem *graph, CompositorContext *co
operationx->setbNode(editorNode);
operationx->setQuality(quality);
operationx->setSize(1.0f);
+ operationx->setFalloff(PROP_SMOOTH);
+ operationx->setSubtract(false);
addLink(graph, clamp->getOutputSocket(), operationx->getInputSocket(0));
graph->addOperation(operationx);
- GaussianYBlurOperation *operationy = new GaussianYBlurOperation();
+ GaussianAlphaYBlurOperation *operationy = new GaussianAlphaYBlurOperation();
operationy->setData(data);
operationy->setbNode(editorNode);
operationy->setQuality(quality);
operationy->setSize(1.0f);
+ operationy->setFalloff(PROP_SMOOTH);
+ operationy->setSubtract(false);
addLink(graph, operationx->getOutputSocket(), operationy->getInputSocket(0));
graph->addOperation(operationy);
diff --git a/source/blender/compositor/operations/COM_BlurBaseOperation.cpp b/source/blender/compositor/operations/COM_BlurBaseOperation.cpp
index c527807f839..39a0014ac41 100644
--- a/source/blender/compositor/operations/COM_BlurBaseOperation.cpp
+++ b/source/blender/compositor/operations/COM_BlurBaseOperation.cpp
@@ -121,6 +121,11 @@ float *BlurBaseOperation::make_dist_fac_inverse(int rad, int falloff)
val = val * val;
break;
case PROP_LIN:
+#ifndef NDEBUG
+ /* uninitialized! */
+ case -1:
+ BLI_assert(0);
+#endif
default:
/* nothing */
break;
diff --git a/source/blender/compositor/operations/COM_GaussianAlphaXBlurOperation.cpp b/source/blender/compositor/operations/COM_GaussianAlphaXBlurOperation.cpp
index 82f38556e82..8c5e5faf12a 100644
--- a/source/blender/compositor/operations/COM_GaussianAlphaXBlurOperation.cpp
+++ b/source/blender/compositor/operations/COM_GaussianAlphaXBlurOperation.cpp
@@ -33,6 +33,7 @@ GaussianAlphaXBlurOperation::GaussianAlphaXBlurOperation() : BlurBaseOperation(C
{
this->m_gausstab = NULL;
this->m_rad = 0;
+ this->m_falloff = -1; /* intentionally invalid, so we can detect uninitialized values */
}
void *GaussianAlphaXBlurOperation::initializeTileData(rcti *rect)
diff --git a/source/blender/compositor/operations/COM_GaussianAlphaYBlurOperation.cpp b/source/blender/compositor/operations/COM_GaussianAlphaYBlurOperation.cpp
index bfd9564817e..197715595ed 100644
--- a/source/blender/compositor/operations/COM_GaussianAlphaYBlurOperation.cpp
+++ b/source/blender/compositor/operations/COM_GaussianAlphaYBlurOperation.cpp
@@ -33,6 +33,7 @@ GaussianAlphaYBlurOperation::GaussianAlphaYBlurOperation() : BlurBaseOperation(C
{
this->m_gausstab = NULL;
this->m_rad = 0;
+ this->m_falloff = -1; /* intentionally invalid, so we can detect uninitialized values */
}
void *GaussianAlphaYBlurOperation::initializeTileData(rcti *rect)