Commit: 66b3f0b4d0743878e98f2ffcdfdfd81adfb99673
Author: Sergey Sharybin
Date:   Fri May 11 15:49:04 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB66b3f0b4d0743878e98f2ffcdfdfd81adfb99673

Depsgraph: Fix redundant nodes built when animation shares same action

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

M       source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
M       source/blender/depsgraph/intern/builder/deg_builder_relations.cc

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

diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc 
b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
index 0545dd33a29..31a0e74b569 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
@@ -682,7 +682,9 @@ void DepsgraphNodeBuilder::build_animdata(ID *id)
                (void) add_id_node(id);
                ID *id_cow = get_cow_id(id);
 
-               if (adt->action != NULL) {
+               if (adt->action != NULL &&
+                   !built_map_.checkIsBuiltAndTag(&adt->action->id))
+               {
                        add_operation_node(&adt->action->id, 
DEG_NODE_TYPE_ANIMATION,
                                           NULL,
                                           DEG_OPCODE_ANIMATION);
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc 
b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
index 1663cce4904..4fdd2d48529 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
@@ -948,7 +948,9 @@ void DepsgraphRelationBuilder::build_animdata_curves(ID *id)
        TimeSourceKey time_src_key;
        add_relation(time_src_key, adt_key, "TimeSrc -> Animation");
        /* Relation from action itself. */
-       if (adt->action != NULL) {
+       if (adt->action != NULL &&
+           !built_map_.checkIsBuiltAndTag(&adt->action->id))
+       {
                ComponentKey action_key(&adt->action->id, 
DEG_NODE_TYPE_ANIMATION);
                add_relation(action_key, adt_key, "Action -> Animation");
        }

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to