Depsgraph: Add missing parameters for node trees
authorSergey Sharybin <sergey.vfx@gmail.com>
Mon, 11 Mar 2019 14:31:56 +0000 (15:31 +0100)
committerSergey Sharybin <sergey.vfx@gmail.com>
Mon, 11 Mar 2019 14:33:57 +0000 (15:33 +0100)
This allows to have drivers on node trees.

Probably now it will be better to simply add parameters for any
ID node, to avoid such amount of manual work.

Initial idea was to not have nodes if it's not needed to avoid
any possible overhead. Having more robust system is probably more
valuable. We can always optimize overhead in one way or another.

source/blender/depsgraph/intern/builder/deg_builder_nodes.cc

index dbf6b1d..0aeaec5 100644 (file)
@@ -1446,6 +1446,11 @@ void DepsgraphNodeBuilder::build_nodetree(bNodeTree *ntree)
        /* nodetree itself */
        add_id_node(&ntree->id);
        bNodeTree *ntree_cow = get_cow_datablock(ntree);
+       /* General parameters. */
+       OperationNode *op_node;
+       op_node = add_operation_node(
+               &ntree->id, NodeType::PARAMETERS, OperationCode::PARAMETERS_EVAL);
+       op_node->set_as_exit();
        /* Animation, */
        build_animdata(&ntree->id);
        /* Shading update. */