[Bf-blender-cvs] [605695de61] master: Depsgraph: Fix duplicated operation node when two objects are sharing same armature
Sergey Sharybin
noreply at git.blender.org
Tue Jan 24 17:16:11 CET 2017
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
* ==============
More information about the Bf-blender-cvs
mailing list