diff options
author | Lukas Tönne <lukas.toenne@gmail.com> | 2014-07-15 12:55:49 +0400 |
---|---|---|
committer | Lukas Tönne <lukas.toenne@gmail.com> | 2014-07-15 13:03:07 +0400 |
commit | 2bdb872cfb90feae214088954d243820e4992c3b (patch) | |
tree | 769a63c61ca7485531793ed6a101824d3c5fb26f /source/blender/compositor/intern/COM_NodeOperationBuilder.cpp | |
parent | fa8ff63b48d2064701e1cc9929549c79c5dd73c3 (diff) |
Fix T41067: Muted nodes still do data type conversions.
Proxy operations from muted nodes would still create conversion
operations where the datatypes don't match, which creates unexpected
behavior. Arguably datatype conversion could still happen even when the
main operation is muted, but this would be a design change and so is
disabled now.
Diffstat (limited to 'source/blender/compositor/intern/COM_NodeOperationBuilder.cpp')
-rw-r--r-- | source/blender/compositor/intern/COM_NodeOperationBuilder.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/source/blender/compositor/intern/COM_NodeOperationBuilder.cpp b/source/blender/compositor/intern/COM_NodeOperationBuilder.cpp index 6554926991c..0c8c3ed53a7 100644 --- a/source/blender/compositor/intern/COM_NodeOperationBuilder.cpp +++ b/source/blender/compositor/intern/COM_NodeOperationBuilder.cpp @@ -269,6 +269,13 @@ void NodeOperationBuilder::add_datatype_conversions() Links convert_links; for (Links::const_iterator it = m_links.begin(); it != m_links.end(); ++it) { const Link &link = *it; + + /* proxy operations can skip data type conversion */ + NodeOperation *from_op = &link.from()->getOperation(); + NodeOperation *to_op = &link.to()->getOperation(); + if (!from_op->useDatatypeConversion() || !to_op->useDatatypeConversion()) + continue; + if (link.from()->getDataType() != link.to()->getDataType()) convert_links.push_back(link); } |