diff options
author | Manuel Castilla <manzanillawork@gmail.com> | 2021-07-06 20:54:13 +0300 |
---|---|---|
committer | Manuel Castilla <manzanillawork@gmail.com> | 2021-07-06 21:22:43 +0300 |
commit | 46a261e108ee98a4f557dc731ff8be9887cd061c (patch) | |
tree | 067cea41032c09958c6a6c4af3e7314d6676c2cc /source/blender/compositor/intern | |
parent | 40de5742afdc4de303a637d932c08c4556fe3e04 (diff) |
Compositor: Fix execution system unset during constant folding
Diffstat (limited to 'source/blender/compositor/intern')
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 { |