Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2012-12-01 12:47:39 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-12-01 12:47:39 +0400
commitee08c27f95908f33a3ed4f97d1d147ca80922b65 (patch)
treee7f433d8dc9892c3ff72b076bf2bf2d9170fe7f8 /source/blender/compositor/intern/COM_Node.cpp
parent0da227cac105ef29ac431788a0bd33cb755013cc (diff)
fix [#33368] Crash with multilayer exr node
Diffstat (limited to 'source/blender/compositor/intern/COM_Node.cpp')
-rw-r--r--source/blender/compositor/intern/COM_Node.cpp20
1 files changed, 14 insertions, 6 deletions
diff --git a/source/blender/compositor/intern/COM_Node.cpp b/source/blender/compositor/intern/COM_Node.cpp
index 300d7ef1952..d49bb5f96fb 100644
--- a/source/blender/compositor/intern/COM_Node.cpp
+++ b/source/blender/compositor/intern/COM_Node.cpp
@@ -137,18 +137,26 @@ void Node::addSetVectorOperation(ExecutionSystem *graph, InputSocket *inputsocke
graph->addOperation(operation);
}
-/* when a node has no valid data (missing image or group pointer) */
+NodeOperation *Node::convertToOperations_invalid_index(ExecutionSystem *graph, int index)
+{
+ const float warning_color[4] = {1.0f, 0.0f, 1.0f, 1.0f};
+ SetColorOperation *operation = new SetColorOperation();
+ operation->setChannels(warning_color);
+
+ /* link the operation */
+ this->getOutputSocket(index)->relinkConnections(operation->getOutputSocket());
+ graph->addOperation(operation);
+ return operation;
+}
+
+/* when a node has no valid data (missing image / group pointer, or missing renderlayer from EXR) */
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);
+ convertToOperations_invalid_index(graph, index);
}
}