Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2019-05-23 11:26:17 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2019-05-23 16:30:00 +0300
commit028bce87173e704081517bd7a2a323648e8137ad (patch)
treedf4488a1ef00d989c7dcc93a824b39073c84bf4a
parent352474ced8e1e7c34b08c20dafd594b92eda6f14 (diff)
Depsgraph: Fix fake dependnecy cycle in proxies
Noticed when was looking into T64764, F7043663. This is a weird case when proxy group is not a group, but is the same as linked object. Remove useless relation which was causing cycle, but had no functional meaning. Pair programming session with Brecht. Reviewers: angavrilov, brecht Reviewed By: brecht Differential Revision: https://developer.blender.org/D4928
-rw-r--r--source/blender/depsgraph/intern/builder/deg_builder_relations.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
index ad78e90993d..c8821c3fa0b 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
@@ -639,12 +639,14 @@ void DepsgraphRelationBuilder::build_object(Base *base, Object *object)
}
/* Proxy object to copy from. */
if (object->proxy_from != NULL) {
+ /* Object is linked here (comes from the library). */
build_object(NULL, object->proxy_from);
ComponentKey ob_transform_key(&object->proxy_from->id, NodeType::TRANSFORM);
ComponentKey proxy_transform_key(&object->id, NodeType::TRANSFORM);
add_relation(ob_transform_key, proxy_transform_key, "Proxy Transform");
}
- if (object->proxy_group != NULL) {
+ if (object->proxy_group != NULL && object->proxy_group != object->proxy) {
+ /* Object is local here (local in .blend file, users interacts with it). */
build_object(NULL, object->proxy_group);
OperationKey proxy_group_eval_key(
&object->proxy_group->id, NodeType::TRANSFORM, OperationCode::TRANSFORM_EVAL);