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:
authorManuel Castilla <manzanillawork@gmail.com>2021-07-06 20:54:13 +0300
committerManuel Castilla <manzanillawork@gmail.com>2021-07-06 21:22:43 +0300
commit46a261e108ee98a4f557dc731ff8be9887cd061c (patch)
tree067cea41032c09958c6a6c4af3e7314d6676c2cc
parent40de5742afdc4de303a637d932c08c4556fe3e04 (diff)
Compositor: Fix execution system unset during constant folding
-rw-r--r--source/blender/compositor/intern/COM_ExecutionSystem.cc5
-rw-r--r--source/blender/compositor/intern/COM_NodeOperationBuilder.cc7
-rw-r--r--source/blender/compositor/intern/COM_NodeOperationBuilder.h5
3 files changed, 10 insertions, 7 deletions
diff --git a/source/blender/compositor/intern/COM_ExecutionSystem.cc b/source/blender/compositor/intern/COM_ExecutionSystem.cc
index abe94ec8f40..07f4082573c 100644
--- a/source/blender/compositor/intern/COM_ExecutionSystem.cc
+++ b/source/blender/compositor/intern/COM_ExecutionSystem.cc
@@ -64,7 +64,7 @@ ExecutionSystem::ExecutionSystem(RenderData *rd,
this->m_context.setDisplaySettings(displaySettings);
{
- NodeOperationBuilder builder(&m_context, editingtree);
+ NodeOperationBuilder builder(&m_context, editingtree, this);
builder.convertToOperations(this);
}
@@ -101,9 +101,6 @@ void ExecutionSystem::set_operations(const Vector<NodeOperation *> &operations,
{
m_operations = operations;
m_groups = groups;
- for (NodeOperation *op : m_operations) {
- op->set_execution_system(this);
- }
}
void ExecutionSystem::execute()
diff --git a/source/blender/compositor/intern/COM_NodeOperationBuilder.cc b/source/blender/compositor/intern/COM_NodeOperationBuilder.cc
index a679f347ab6..10a91bbcd3e 100644
--- a/source/blender/compositor/intern/COM_NodeOperationBuilder.cc
+++ b/source/blender/compositor/intern/COM_NodeOperationBuilder.cc
@@ -41,8 +41,10 @@
namespace blender::compositor {
-NodeOperationBuilder::NodeOperationBuilder(const CompositorContext *context, bNodeTree *b_nodetree)
- : m_context(context), m_current_node(nullptr), m_active_viewer(nullptr)
+NodeOperationBuilder::NodeOperationBuilder(const CompositorContext *context,
+ bNodeTree *b_nodetree,
+ ExecutionSystem *system)
+ : m_context(context), exec_system_(system), m_current_node(nullptr), m_active_viewer(nullptr)
{
m_graph.from_bNodeTree(*context, b_nodetree);
}
@@ -140,6 +142,7 @@ void NodeOperationBuilder::addOperation(NodeOperation *operation)
operation->set_name(m_current_node->getbNode()->name);
}
operation->set_execution_model(m_context->get_execution_model());
+ operation->set_execution_system(exec_system_);
}
void NodeOperationBuilder::replace_operation_with_constant(NodeOperation *operation,
diff --git a/source/blender/compositor/intern/COM_NodeOperationBuilder.h b/source/blender/compositor/intern/COM_NodeOperationBuilder.h
index 6c4bf397d92..1f76765c846 100644
--- a/source/blender/compositor/intern/COM_NodeOperationBuilder.h
+++ b/source/blender/compositor/intern/COM_NodeOperationBuilder.h
@@ -68,6 +68,7 @@ class NodeOperationBuilder {
private:
const CompositorContext *m_context;
NodeGraph m_graph;
+ ExecutionSystem *exec_system_;
Vector<NodeOperation *> m_operations;
Vector<Link> m_links;
@@ -87,7 +88,9 @@ class NodeOperationBuilder {
ViewerOperation *m_active_viewer;
public:
- NodeOperationBuilder(const CompositorContext *context, bNodeTree *b_nodetree);
+ NodeOperationBuilder(const CompositorContext *context,
+ bNodeTree *b_nodetree,
+ ExecutionSystem *system);
const CompositorContext &context() const
{