diff options
author | Lukas Toenne <lukas.toenne@googlemail.com> | 2013-05-14 14:42:30 +0400 |
---|---|---|
committer | Lukas Toenne <lukas.toenne@googlemail.com> | 2013-05-14 14:42:30 +0400 |
commit | bcf91e5c91a252917941e502f1b77c8589bbb198 (patch) | |
tree | a35dd98bd110461761a95ce6142a03c4fadde2c8 /source/blender | |
parent | 71d53203fa2aa466fa60b0faa6709db200096ea9 (diff) |
Fix for #35349, multiple viewers nodes crashing during render. The condition for activating viewer nodes was completely overridden during renders. Changed this so viewer nodes are active only if both of these are true:
1) the node is tagged for recalc OR compo is in render mode
2) it is the currently active viewer (so only one viewer ever writes to the buffer)
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/compositor/nodes/COM_ViewerNode.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/source/blender/compositor/nodes/COM_ViewerNode.cpp b/source/blender/compositor/nodes/COM_ViewerNode.cpp index 70cc3a288ee..531fa4158bc 100644 --- a/source/blender/compositor/nodes/COM_ViewerNode.cpp +++ b/source/blender/compositor/nodes/COM_ViewerNode.cpp @@ -34,9 +34,8 @@ ViewerNode::ViewerNode(bNode *editorNode) : Node(editorNode) void ViewerNode::convertToOperations(ExecutionSystem *graph, CompositorContext *context) { bNode *editorNode = this->getbNode(); - bool is_active = ((editorNode->flag & NODE_DO_OUTPUT_RECALC) && - (editorNode->flag & NODE_DO_OUTPUT) && this->isInActiveGroup()) || - context->isRendering(); + bool is_active = (editorNode->flag & NODE_DO_OUTPUT_RECALC || context->isRendering()) && + ((editorNode->flag & NODE_DO_OUTPUT) && this->isInActiveGroup()); InputSocket *imageSocket = this->getInputSocket(0); InputSocket *alphaSocket = this->getInputSocket(1); |