[Bf-blender-cvs] [46a261e108e] master: Compositor: Fix execution system unset during constant folding

Manuel Castilla noreply at git.blender.org
Tue Jul 6 20:24:07 CEST 2021


Commit: 46a261e108ee98a4f557dc731ff8be9887cd061c
Author: Manuel Castilla
Date:   Tue Jul 6 19:54:13 2021 +0200
Branches: master
https://developer.blender.org/rB46a261e108ee98a4f557dc731ff8be9887cd061c

Compositor: Fix execution system unset during constant folding

===================================================================

M	source/blender/compositor/intern/COM_ExecutionSystem.cc
M	source/blender/compositor/intern/COM_NodeOperationBuilder.cc
M	source/blender/compositor/intern/COM_NodeOperationBuilder.h

===================================================================

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
   {



More information about the Bf-blender-cvs mailing list