diff options
author | Campbell Barton <ideasman42@gmail.com> | 2015-08-31 09:20:21 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2015-08-31 09:22:16 +0300 |
commit | 489a5d34b7bf84141696e99274a4cbd7425a9b7b (patch) | |
tree | 11455886b51bef26bda2ac79367e51edb5cae6c0 /source/blender/compositor | |
parent | d9e71d5e16ae3ff8e96dbaa72d9ee03b03b3c8e4 (diff) |
Fix T45959: DistanceKey output incorrect
Diffstat (limited to 'source/blender/compositor')
-rw-r--r-- | source/blender/compositor/nodes/COM_DistanceMatteNode.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/source/blender/compositor/nodes/COM_DistanceMatteNode.cpp b/source/blender/compositor/nodes/COM_DistanceMatteNode.cpp index 4f3ab60efee..c617ecb12b4 100644 --- a/source/blender/compositor/nodes/COM_DistanceMatteNode.cpp +++ b/source/blender/compositor/nodes/COM_DistanceMatteNode.cpp @@ -81,10 +81,20 @@ void DistanceMatteNode::convertToOperations(NodeConverter &converter, const Comp operation = matte; } + converter.mapOutputSocket(outputSocketMatte, operation->getOutputSocket(0)); converter.addLink(operation->getOutputSocket(), operationAlpha->getInputSocket(1)); - converter.mapOutputSocket(outputSocketMatte, operation->getOutputSocket()); - converter.mapOutputSocket(outputSocketImage, operationAlpha->getOutputSocket()); + if (storage->channel != 1) { + ConvertYCCToRGBOperation *inv_convert = new ConvertYCCToRGBOperation(); + inv_convert->setMode(0); /* BLI_YCC_ITU_BT601 */ + + converter.addOperation(inv_convert); + converter.addLink(operationAlpha->getOutputSocket(0), inv_convert->getInputSocket(0)); + converter.mapOutputSocket(outputSocketImage, inv_convert->getOutputSocket()); + } + else { + converter.mapOutputSocket(outputSocketImage, operationAlpha->getOutputSocket()); + } converter.addPreview(operationAlpha->getOutputSocket()); } |