Commit: 9a9ca5e40bd88a5444ca322d12c4544f659e5a29
Author: Sergey Sharybin
Date:   Thu Nov 15 12:47:58 2018 +0100
Branches: blender2.8
https://developer.blender.org/rB9a9ca5e40bd88a5444ca322d12c4544f659e5a29

Depsgraph: Build all type of IDs for modifiers and constraints

It was missing handling of collections there, which caused collection
used for smoke colliders to not be in the dependency graph.

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

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 c705f229669..adf67c5a8b1 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
@@ -412,6 +412,9 @@ void DepsgraphNodeBuilder::build_id(ID *id)
                return;
        }
        switch (GS(id->name)) {
+               case ID_AC:
+                       build_action((bAction *)id);
+                       break;
                case ID_AR:
                        build_armature((bArmature *)id);
                        break;
@@ -1663,17 +1666,15 @@ void DepsgraphNodeBuilder::modifier_walk(void 
*user_data,
        }
        switch (GS(id->name)) {
                case ID_OB:
-                       /* TODO(sergey): Use visibility of owner of modifier 
stack. */
+                       /* Special case for object, so we take owner visibility 
into
+                        * account. */
                        data->builder->build_object(-1,
                                                    (Object *)id,
                                                    DEG_ID_LINKED_INDIRECTLY,
                                                    data->is_parent_visible);
                        break;
-               case ID_TE:
-                       data->builder->build_texture((Tex *)id);
-                       break;
                default:
-                       /* pass */
+                       data->builder->build_id(id);
                        break;
        }
 }
@@ -1690,14 +1691,15 @@ void DepsgraphNodeBuilder::constraint_walk(bConstraint 
* /*con*/,
        }
        switch (GS(id->name)) {
                case ID_OB:
-                       /* TODO(sergey): Use visibility of owner of modifier 
stack. */
+                       /* Special case for object, so we take owner visibility 
into
+                        * account. */
                        data->builder->build_object(-1,
                                                    (Object *)id,
                                                    DEG_ID_LINKED_INDIRECTLY,
                                                    data->is_parent_visible);
                        break;
                default:
-                       /* pass */
+                       data->builder->build_id(id);
                        break;
        }
 }
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc 
b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
index b6eb0af589c..7a26121801a 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
@@ -427,6 +427,9 @@ void DepsgraphRelationBuilder::build_id(ID *id)
                return;
        }
        switch (GS(id->name)) {
+               case ID_AC:
+                       build_action((bAction *)id);
+                       break;
                case ID_AR:
                        build_armature((bArmature *)id);
                        break;
@@ -2510,17 +2513,7 @@ void DepsgraphRelationBuilder::modifier_walk(void 
*user_data,
        if (id == NULL) {
                return;
        }
-       switch (GS(id->name)) {
-               case ID_OB:
-                       data->builder->build_object(NULL, (Object *)id);
-                       break;
-               case ID_TE:
-                       data->builder->build_texture((Tex *)id);
-                       break;
-               default:
-                       /* pass */
-                       break;
-       }
+       data->builder->build_id(id);
 }
 
 void DepsgraphRelationBuilder::constraint_walk(bConstraint * /*con*/,
@@ -2529,12 +2522,11 @@ void 
DepsgraphRelationBuilder::constraint_walk(bConstraint * /*con*/,
                                                void *user_data)
 {
        BuilderWalkUserData *data = (BuilderWalkUserData *)user_data;
-       if (*idpoin) {
-               ID *id = *idpoin;
-               if (GS(id->name) == ID_OB) {
-                       data->builder->build_object(NULL, (Object *)id);
-               }
+       ID *id = *idpoin;
+       if (id == NULL) {
+               return;
        }
+       data->builder->build_id(id);
 }
 
 }  // namespace DEG

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

Reply via email to