diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-09-04 23:42:09 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-09-04 23:42:09 +0400 |
commit | 1d4316f35fcf2f4b9ed73b648422f4e36a071881 (patch) | |
tree | bf97cc2aac690567cd5fe79a0c511ed47e81a9f6 /source/blender/compositor/intern/COM_Node.cpp | |
parent | 306e2b48786bc27d818c1ee04382cf654310c3a0 (diff) |
fix [#32490] Compsitor crashes on missing OpenEXR multilayer files
Diffstat (limited to 'source/blender/compositor/intern/COM_Node.cpp')
-rw-r--r-- | source/blender/compositor/intern/COM_Node.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/source/blender/compositor/intern/COM_Node.cpp b/source/blender/compositor/intern/COM_Node.cpp index 320baacb669..50393d14f35 100644 --- a/source/blender/compositor/intern/COM_Node.cpp +++ b/source/blender/compositor/intern/COM_Node.cpp @@ -137,6 +137,21 @@ void Node::addSetVectorOperation(ExecutionSystem *graph, InputSocket *inputsocke graph->addOperation(operation); } +/* when a node has no valid data (missing image or group pointer) */ +void Node::convertToOperations_invalid(ExecutionSystem *graph, CompositorContext *context) +{ + /* this is a really bad situation - bring on the pink! - so artists know this is bad */ + const float warning_color[4] = {1.0f, 0.0f, 1.0f, 1.0f}; + int index; + vector<OutputSocket *> &outputsockets = this->getOutputSockets(); + for (index = 0; index < outputsockets.size(); index++) { + SetColorOperation *operation = new SetColorOperation(); + this->getOutputSocket(index)->relinkConnections(operation->getOutputSocket()); + operation->setChannels(warning_color); + graph->addOperation(operation); + } +} + bNodeSocket *Node::getEditorInputSocket(int editorNodeInputSocketIndex) { bNodeSocket *bSock = (bNodeSocket *)this->getbNode()->inputs.first; |