[Bf-blender-cvs] [97c8619] master: Fix T46587: Drivers do not work in node groups
Sergey Sharybin
noreply at git.blender.org
Fri Nov 6 14:37:48 CET 2015
Commit: 97c8619b421b979dc4b05ed0959e90de532813ba
Author: Sergey Sharybin
Date: Fri Nov 6 18:36:22 2015 +0500
Branches: master
https://developer.blender.org/rB97c8619b421b979dc4b05ed0959e90de532813ba
Fix T46587: Drivers do not work in node groups
This commit makes drivers on node groups to with when using new dependency graph.
Still TODO: Need a relation between drivers and tree evaluation perhaps, so we
guarantee proper order of all operations.
===================================================================
M source/blender/depsgraph/intern/depsgraph_build_nodes.cc
M source/blender/depsgraph/intern/depsgraph_build_relations.cc
===================================================================
diff --git a/source/blender/depsgraph/intern/depsgraph_build_nodes.cc b/source/blender/depsgraph/intern/depsgraph_build_nodes.cc
index 4463df6..47aa14c 100644
--- a/source/blender/depsgraph/intern/depsgraph_build_nodes.cc
+++ b/source/blender/depsgraph/intern/depsgraph_build_nodes.cc
@@ -1101,7 +1101,7 @@ void DepsgraphNodeBuilder::build_nodetree(DepsNode *owner_node, bNodeTree *ntree
build_animdata(ntree_id);
/* Parameters for drivers. */
- add_operation_node(ntree_id, DEPSNODE_TYPE_PARAMETERS, DEPSOP_TYPE_EXEC, NULL,
+ add_operation_node(ntree_id, DEPSNODE_TYPE_PARAMETERS, DEPSOP_TYPE_POST, NULL,
DEG_OPCODE_PLACEHOLDER, "Parameters Eval");
/* nodetree's nodes... */
@@ -1114,9 +1114,9 @@ void DepsgraphNodeBuilder::build_nodetree(DepsNode *owner_node, bNodeTree *ntree
build_texture(owner_node, (Tex *)bnode->id);
}
else if (bnode->type == NODE_GROUP) {
- bNodeTree *ntree = (bNodeTree *)bnode->id;
- if ((ntree_id->flag & LIB_DOIT) == 0) {
- build_nodetree(owner_node, ntree);
+ bNodeTree *group_ntree = (bNodeTree *)bnode->id;
+ if ((group_ntree->id.flag & LIB_DOIT) == 0) {
+ build_nodetree(owner_node, group_ntree);
}
}
}
diff --git a/source/blender/depsgraph/intern/depsgraph_build_relations.cc b/source/blender/depsgraph/intern/depsgraph_build_relations.cc
index c348ada..dfa7413 100644
--- a/source/blender/depsgraph/intern/depsgraph_build_relations.cc
+++ b/source/blender/depsgraph/intern/depsgraph_build_relations.cc
@@ -1778,6 +1778,11 @@ void DepsgraphRelationBuilder::build_nodetree(ID *owner, bNodeTree *ntree)
build_animdata(ntree_id);
+ OperationKey parameters_key(ntree_id,
+ DEPSNODE_TYPE_PARAMETERS,
+ DEG_OPCODE_PLACEHOLDER,
+ "Parameters Eval");
+
/* nodetree's nodes... */
for (bNode *bnode = (bNode *)ntree->nodes.first; bnode; bnode = bnode->next) {
if (bnode->id) {
@@ -1788,17 +1793,22 @@ void DepsgraphRelationBuilder::build_nodetree(ID *owner, bNodeTree *ntree)
build_texture(owner, (Tex *)bnode->id);
}
else if (bnode->type == NODE_GROUP) {
- bNodeTree *ntree = (bNodeTree *)bnode->id;
- if ((ntree_id->flag & LIB_DOIT) == 0) {
- build_nodetree(owner, ntree);
- ntree_id->flag |= LIB_DOIT;
+ bNodeTree *group_ntree = (bNodeTree *)bnode->id;
+ if ((group_ntree->id.flag & LIB_DOIT) == 0) {
+ build_nodetree(owner, group_ntree);
+ group_ntree->flag |= LIB_DOIT;
}
+ OperationKey group_parameters_key(&group_ntree->id,
+ DEPSNODE_TYPE_PARAMETERS,
+ DEG_OPCODE_PLACEHOLDER,
+ "Parameters Eval");
+ add_relation(group_parameters_key, parameters_key,
+ DEPSREL_TYPE_COMPONENT_ORDER, "Group Node");
}
}
}
if (needs_animdata_node(ntree_id)) {
- ComponentKey parameters_key(ntree_id, DEPSNODE_TYPE_PARAMETERS);
ComponentKey animation_key(ntree_id, DEPSNODE_TYPE_ANIMATION);
add_relation(animation_key, parameters_key,
DEPSREL_TYPE_COMPONENT_ORDER, "NTree Parameters");
More information about the Bf-blender-cvs
mailing list