[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