From bcf91e5c91a252917941e502f1b77c8589bbb198 Mon Sep 17 00:00:00 2001 From: Lukas Toenne Date: Tue, 14 May 2013 10:42:30 +0000 Subject: 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) --- source/blender/compositor/nodes/COM_ViewerNode.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'source') 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); -- cgit v1.2.3