[Bf-blender-cvs] [9a9ca5e40bd] blender2.8: Depsgraph: Build all type of IDs for modifiers and constraints
Sergey Sharybin
noreply at git.blender.org
Thu Nov 15 12:48:57 CET 2018
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
More information about the Bf-blender-cvs
mailing list