Fix T72660: Alembic caches are not properly updated by drivers
Drivers were not considered when building the dependency graph for `CacheFile` datablocks.
This commit is contained in:
parent
864cb7f376
commit
fd0bc7e002
Notes:
blender-bot
2023-02-14 10:37:49 +01:00
Referenced by issue #72660, Alembic caches are not properly updated by drivers
|
@ -200,6 +200,15 @@ bool check_id_has_anim_component(ID *id)
|
|||
return (adt->action != NULL) || (!BLI_listbase_is_empty(&adt->nla_tracks));
|
||||
}
|
||||
|
||||
bool check_id_has_driver_component(ID *id)
|
||||
{
|
||||
AnimData *adt = BKE_animdata_from_id(id);
|
||||
if (adt == nullptr) {
|
||||
return false;
|
||||
}
|
||||
return !BLI_listbase_is_empty(&adt->drivers);
|
||||
}
|
||||
|
||||
OperationCode bone_target_opcode(ID *target,
|
||||
const char *subtarget,
|
||||
ID *id,
|
||||
|
@ -2358,8 +2367,9 @@ void DepsgraphRelationBuilder::build_cachefile(CacheFile *cache_file)
|
|||
/* Animation. */
|
||||
build_animdata(&cache_file->id);
|
||||
build_parameters(&cache_file->id);
|
||||
if (check_id_has_anim_component(&cache_file->id)) {
|
||||
ComponentKey animation_key(&cache_file->id, NodeType::ANIMATION);
|
||||
if (check_id_has_anim_component(&cache_file->id) ||
|
||||
check_id_has_driver_component(&cache_file->id)) {
|
||||
ComponentKey animation_key(&cache_file->id, NodeType::PARAMETERS);
|
||||
ComponentKey datablock_key(&cache_file->id, NodeType::CACHE);
|
||||
add_relation(animation_key, datablock_key, "Datablock Animation");
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue