Depsgraph: Fix some errors printed to the console
They were not real issues, it's just some areas of code tried to create relations between non-existing nodes without checking whether such relations are really needed. Now it should be easier to see real bugs printed. Hopefully should be no regressions here.
This commit is contained in:
parent
4fdf68271c
commit
630c0559f9
|
@ -500,7 +500,7 @@ void DepsgraphRelationBuilder::build_object(Main *bmain, Scene *scene, Object *o
|
|||
build_animdata(&ob->id);
|
||||
|
||||
// XXX: This should be hooked up by the build_animdata code
|
||||
if (ob->adt && (ob->adt->action || ob->adt->nla_tracks.first)) {
|
||||
if (needs_animdata_node(&ob->id)) {
|
||||
ComponentKey adt_key(&ob->id, DEPSNODE_TYPE_ANIMATION);
|
||||
add_relation(adt_key, local_transform_key, DEPSREL_TYPE_OPERATION, "Object Animation");
|
||||
}
|
||||
|
@ -1527,7 +1527,7 @@ void DepsgraphRelationBuilder::build_rig(Scene *scene, Object *ob)
|
|||
"Armature Eval");
|
||||
add_relation(armature_key, init_key, DEPSREL_TYPE_COMPONENT_ORDER, "Data dependency");
|
||||
|
||||
if (ob->adt && (ob->adt->action || ob->adt->nla_tracks.first)) {
|
||||
if (needs_animdata_node(&ob->id)) {
|
||||
ComponentKey animation_key(&ob->id, DEPSNODE_TYPE_ANIMATION);
|
||||
add_relation(animation_key, init_key, DEPSREL_TYPE_OPERATION, "Rig Animation");
|
||||
}
|
||||
|
@ -1765,7 +1765,7 @@ void DepsgraphRelationBuilder::build_obdata_geom(Main *bmain, Scene *scene, Obje
|
|||
* for either the modifier needing time, or that it is animated.
|
||||
*/
|
||||
/* XXX: Remove this hack when these links are added as part of build_animdata() instead */
|
||||
if (modifier_dependsOnTime(md) == false) {
|
||||
if (modifier_dependsOnTime(md) == false && needs_animdata_node(&ob->id)) {
|
||||
ComponentKey animation_key(&ob->id, DEPSNODE_TYPE_ANIMATION);
|
||||
add_relation(animation_key, mod_key, DEPSREL_TYPE_OPERATION, "Modifier Animation");
|
||||
}
|
||||
|
@ -2063,7 +2063,7 @@ bool DepsgraphRelationBuilder::needs_animdata_node(ID *id)
|
|||
{
|
||||
AnimData *adt = BKE_animdata_from_id(id);
|
||||
if (adt != NULL) {
|
||||
return adt->action != NULL;
|
||||
return (adt->action != NULL) || (adt->nla_tracks.first != NULL);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -318,6 +318,7 @@ void DepsgraphRelationBuilder::add_relation(const KeyFrom &key_from,
|
|||
else {
|
||||
if (!op_from) {
|
||||
/* XXX TODO handle as error or report if needed */
|
||||
node_from = find_node(key_from);
|
||||
fprintf(stderr, "add_relation(%d, %s) - Could not find op_from (%s)\n",
|
||||
type, description, key_from.identifier().c_str());
|
||||
}
|
||||
|
|
|
@ -145,12 +145,9 @@ static void updateDepsgraph(ModifierData *md,
|
|||
HookModifierData *hmd = (HookModifierData *)md;
|
||||
if (hmd->object != NULL) {
|
||||
if (hmd->subtarget[0]) {
|
||||
DEG_add_bone_relation(node, hmd->object, hmd->subtarget, DEG_OB_COMP_TRANSFORM, "Hook Modifier");
|
||||
DEG_add_bone_relation(node, hmd->object, hmd->subtarget, DEG_OB_COMP_BONE, "Hook Modifier");
|
||||
}
|
||||
else {
|
||||
DEG_add_object_relation(node, hmd->object, DEG_OB_COMP_TRANSFORM, "Hook Modifier");
|
||||
}
|
||||
DEG_add_object_relation(node, hmd->object, DEG_OB_COMP_TRANSFORM, "Hook Modifier");
|
||||
}
|
||||
/* We need own transformation as well. */
|
||||
DEG_add_object_relation(node, ob, DEG_OB_COMP_TRANSFORM, "Hook Modifier");
|
||||
|
|
Loading…
Reference in New Issue