Compositor: Fix execution system unset during constant folding

This commit is contained in:
Manuel Castilla 2021-07-06 19:54:13 +02:00
parent 40de5742af
commit 46a261e108
3 changed files with 10 additions and 7 deletions

View File

@ -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()

View File

@ -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,

View File

@ -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
{