diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2012-06-24 21:38:14 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2012-06-24 21:38:14 +0400 |
commit | 93fd3f11f7b5ece40e31b0c0870e91f6a7c011ab (patch) | |
tree | 587d475f97c526d8b34e6c3908708223bf286190 /source/blender/compositor/nodes/COM_KeyingNode.cpp | |
parent | df9ca0455c281ffba785a27f9cfd95135195f906 (diff) |
Skip edge matte operation creation if output socket is not connected.
Diffstat (limited to 'source/blender/compositor/nodes/COM_KeyingNode.cpp')
-rw-r--r-- | source/blender/compositor/nodes/COM_KeyingNode.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/source/blender/compositor/nodes/COM_KeyingNode.cpp b/source/blender/compositor/nodes/COM_KeyingNode.cpp index 8baa4b784e9..13488cc520b 100644 --- a/source/blender/compositor/nodes/COM_KeyingNode.cpp +++ b/source/blender/compositor/nodes/COM_KeyingNode.cpp @@ -161,7 +161,7 @@ void KeyingNode::convertToOperations(ExecutionSystem *graph, CompositorContext * OutputSocket *outputImage = this->getOutputSocket(0); OutputSocket *outputMatte = this->getOutputSocket(1); OutputSocket *outputEdges = this->getOutputSocket(2); - OutputSocket *postprocessedMatte, *postprocessedImage, *originalImage, *edgesMatte; + OutputSocket *postprocessedMatte = NULL, *postprocessedImage = NULL, *originalImage = NULL, *edgesMatte = NULL; bNode *editorNode = this->getbNode(); NodeKeyingData *keying_data = (NodeKeyingData *) editorNode->storage; @@ -195,9 +195,11 @@ void KeyingNode::convertToOperations(ExecutionSystem *graph, CompositorContext * keying_data->clip_black, keying_data->clip_white, false); } - edgesMatte = setupClip(graph, postprocessedMatte, - keying_data->edge_kernel_radius, keying_data->edge_kernel_tolerance, - keying_data->clip_black, keying_data->clip_white, true); + if (outputEdges->isConnected()) { + edgesMatte = setupClip(graph, postprocessedMatte, + keying_data->edge_kernel_radius, keying_data->edge_kernel_tolerance, + keying_data->clip_black, keying_data->clip_white, true); + } /* apply blur on matte if needed */ if (keying_data->blur_post) @@ -225,7 +227,9 @@ void KeyingNode::convertToOperations(ExecutionSystem *graph, CompositorContext * /* connect result to output sockets */ outputImage->relinkConnections(postprocessedImage); outputMatte->relinkConnections(postprocessedMatte); - outputEdges->relinkConnections(edgesMatte); + + if (edgesMatte) + outputEdges->relinkConnections(edgesMatte); graph->addOperation(alphaOperation); } |