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:
authorLukas Tönne <lukas.toenne@gmail.com>2014-07-08 14:48:41 +0400
committerLukas Tönne <lukas.toenne@gmail.com>2014-07-08 14:51:35 +0400
commita5902fb276933278bd8db86a9b1938fe649662d8 (patch)
tree95d9d8999427ec2b52d59975c5ac8e171c628d8b /source/blender/compositor/intern/COM_NodeConverter.h
parentbd7fbd43273b63655886b60b7bba7c36e6a9755a (diff)
Fix T40986: crash on using the viewer node inside of group nodes.
Viewers were activated both inside the active group as well as the top level tree (the latter being a quick fix for getting a fallback viewer). This caused a race condition on the shared viewer image. Now the active viewer is defined at node conversion time in the converter so that only one can be active at a time without each node having to follow complicated rules for exclusion.
Diffstat (limited to 'source/blender/compositor/intern/COM_NodeConverter.h')
-rw-r--r--source/blender/compositor/intern/COM_NodeConverter.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/source/blender/compositor/intern/COM_NodeConverter.h b/source/blender/compositor/intern/COM_NodeConverter.h
index cad8408a2bf..e5e7629f39a 100644
--- a/source/blender/compositor/intern/COM_NodeConverter.h
+++ b/source/blender/compositor/intern/COM_NodeConverter.h
@@ -34,6 +34,8 @@ class NodeOperationInput;
class NodeOperationOutput;
class NodeOperationBuilder;
+class ViewerOperation;
+
/** Interface type for converting a \a Node into \a NodeOperation.
* This is passed to \a Node::convertToOperation methods and allows them
* to register any number of operations, create links between them,
@@ -102,6 +104,11 @@ public:
*/
NodeOperation *setInvalidOutput(NodeOutput *output);
+ /** Define a viewer operation as the active output, if possible */
+ void registerViewer(ViewerOperation *viewer);
+ /** The currently active viewer output operation */
+ ViewerOperation *active_viewer() const;
+
private:
/** The internal builder for storing the results of the graph construction. */
NodeOperationBuilder *m_builder;