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.
This commit is contained in:
parent
c3e2b40a91
commit
9a9ca5e40b
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user