[Bf-blender-cvs] [359469a39a4] blender2.8: Fix T55204: proxy object disappearing randomly.

Brecht Van Lommel noreply at git.blender.org
Mon May 28 23:30:22 CEST 2018


Commit: 359469a39a49dd2efe3e9b94a3d03600e32cd887
Author: Brecht Van Lommel
Date:   Mon May 28 23:18:47 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB359469a39a49dd2efe3e9b94a3d03600e32cd887

Fix T55204: proxy object disappearing randomly.

The problem was a missing depsgraph relation between the transforms of
the object and its proxy, it was only there for the pose.

===================================================================

M	source/blender/blenkernel/intern/object_update.c
M	source/blender/depsgraph/intern/builder/deg_builder_relations.cc

===================================================================

diff --git a/source/blender/blenkernel/intern/object_update.c b/source/blender/blenkernel/intern/object_update.c
index 2d499e4684e..d21a1326392 100644
--- a/source/blender/blenkernel/intern/object_update.c
+++ b/source/blender/blenkernel/intern/object_update.c
@@ -276,11 +276,12 @@ void BKE_object_handle_data_update(
 	/* quick cache removed */
 }
 
-bool BKE_object_eval_proxy_copy(Depsgraph *UNUSED(depsgraph),
+bool BKE_object_eval_proxy_copy(Depsgraph *depsgraph,
                                 Object *object)
 {
 	/* Handle proxy copy for target, */
 	if (ID_IS_LINKED(object) && object->proxy_from) {
+		DEG_debug_print_eval(depsgraph, __func__, object->id.name, object);
 		if (object->proxy_from->proxy_group) {
 			/* Transform proxy into group space. */
 			Object *obg = object->proxy_from->proxy_group;
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
index 9a1bd87f93d..64bdbe49dac 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
@@ -549,7 +549,11 @@ void DepsgraphRelationBuilder::build_object(Base *base, Object *object)
 		 */
 		ComponentKey ob_pose_key(&object->id, DEG_NODE_TYPE_EVAL_POSE);
 		ComponentKey proxy_pose_key(&object->proxy->id, DEG_NODE_TYPE_EVAL_POSE);
-		add_relation(ob_pose_key, proxy_pose_key, "Proxy");
+		add_relation(ob_pose_key, proxy_pose_key, "Proxy Pose");
+
+		ComponentKey ob_transform_key(&object->id, DEG_NODE_TYPE_TRANSFORM);
+		ComponentKey proxy_transform_key(&object->proxy->id, DEG_NODE_TYPE_TRANSFORM);
+		add_relation(ob_transform_key, proxy_transform_key, "Proxy Transform");
 	}
 	/* Object dupligroup. */
 	if (object->dup_group != NULL) {



More information about the Bf-blender-cvs mailing list