Commit: 605695de611823e9ce086d224613858ec584b605
Author: Sergey Sharybin
Date: Tue Jan 24 17:15:39 2017 +0100
Branches: master
https://developer.blender.org/rB605695de611823e9ce086d224613858ec584b605
Depsgraph: Fix duplicated operation node when two objects are sharing same
armature
===================================================================
M source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc
===================================================================
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc
b/source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc
index 4a5f3dc866..f2437ce1fa 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc
@@ -119,7 +119,17 @@ void DepsgraphNodeBuilder::build_rig(Scene *scene, Object
*ob)
* Eventually, we need some type of proxy/isolation mechanism
in-between here
* to ensure that we can use same rig multiple times in same
scene...
*/
- build_animdata(&arm->id);
+ if ((arm->id.tag & LIB_TAG_DOIT) == 0) {
+ build_animdata(&arm->id);
+
+ /* Make sure pose is up-to-date with armature updates. */
+ add_operation_node(&arm->id,
+ DEPSNODE_TYPE_PARAMETERS,
+ DEPSOP_TYPE_EXEC,
+ NULL,
+ DEG_OPCODE_PLACEHOLDER,
+ "Armature Eval");
+ }
/* Rebuild pose if not up to date. */
if (ob->pose == NULL || (ob->pose->flag & POSE_RECALC)) {
@@ -141,14 +151,6 @@ void DepsgraphNodeBuilder::build_rig(Scene *scene, Object
*ob)
}
}
- /* Make sure pose is up-to-date with armature updates. */
- add_operation_node(&arm->id,
- DEPSNODE_TYPE_PARAMETERS,
- DEPSOP_TYPE_EXEC,
- NULL,
- DEG_OPCODE_PLACEHOLDER,
- "Armature Eval");
-
/**
* Pose Rig Graph
* ==============
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs