diff options
Diffstat (limited to 'source/blender/blenkernel/intern/lib_id.c')
-rw-r--r-- | source/blender/blenkernel/intern/lib_id.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/lib_id.c b/source/blender/blenkernel/intern/lib_id.c index 5a394a05d86..8faa260ab8b 100644 --- a/source/blender/blenkernel/intern/lib_id.c +++ b/source/blender/blenkernel/intern/lib_id.c @@ -93,7 +93,7 @@ IDTypeInfo IDType_ID_LINK_PLACEHOLDER = { .foreach_id = NULL, .foreach_cache = NULL, .foreach_path = NULL, - .owner_get = NULL, + .owner_pointer_get = NULL, .blend_write = NULL, .blend_read_data = NULL, @@ -1965,6 +1965,18 @@ bool BKE_id_can_be_asset(const ID *id) BKE_idtype_idcode_is_linkable(GS(id->name)); } +ID *BKE_id_owner_get(ID *id) +{ + const IDTypeInfo *idtype = BKE_idtype_get_info_from_id(id); + if (idtype->owner_pointer_get != NULL) { + ID **owner_id_pointer = idtype->owner_pointer_get(id); + if (owner_id_pointer != NULL) { + return *owner_id_pointer; + } + } + return NULL; +} + bool BKE_id_is_editable(const Main *bmain, const ID *id) { return !(ID_IS_LINKED(id) || BKE_lib_override_library_is_system_defined(bmain, id)); |