diff options
Diffstat (limited to 'source/blender/blenkernel/BKE_lib_id.h')
-rw-r--r-- | source/blender/blenkernel/BKE_lib_id.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/source/blender/blenkernel/BKE_lib_id.h b/source/blender/blenkernel/BKE_lib_id.h index 7f5a6e3e36a..bc72afdd08d 100644 --- a/source/blender/blenkernel/BKE_lib_id.h +++ b/source/blender/blenkernel/BKE_lib_id.h @@ -144,6 +144,16 @@ struct ID *BKE_libblock_find_name(struct Main *bmain, const short type, const char *name) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(); +/** + * Duplicate (a.k.a. deep copy) common processing options. + * See also eDupli_ID_Flags for options controlling what kind of IDs to duplicate. + */ +typedef enum eLibIDDuplicateFlags { + /** This call to a duplicate function is part of another call for some parent ID. + * Therefore, this sub-process should not clear `newid` pointers, nor handle remapping itself. */ + LIB_ID_DUPLICATE_IS_SUBPROCESS = 1 << 0, +} eLibIDDuplicateFlags; + /* lib_remap.c (keep here since they're general functions) */ /** * New freeing logic options. @@ -217,6 +227,10 @@ bool id_single_user(struct bContext *C, bool BKE_id_copy_is_allowed(const struct ID *id); bool BKE_id_copy(struct Main *bmain, const struct ID *id, struct ID **newid); bool BKE_id_copy_ex(struct Main *bmain, const struct ID *id, struct ID **r_newid, const int flag); +struct ID *BKE_id_copy_for_duplicate(struct Main *bmain, + struct ID *id, + const bool is_owner_id_liboverride, + const uint duplicate_flags); void BKE_lib_id_swap(struct Main *bmain, struct ID *id_a, struct ID *id_b); void BKE_lib_id_swap_full(struct Main *bmain, struct ID *id_a, struct ID *id_b); @@ -253,6 +267,7 @@ void BKE_main_id_repair_duplicate_names_listbase(struct ListBase *lb); void BKE_id_full_name_get(char name[MAX_ID_FULL_NAME], const struct ID *id, char separator_str); void BKE_id_full_name_ui_prefix_get(char name[MAX_ID_FULL_NAME_UI], const struct ID *id, + const bool add_lib_hint, char separator_char); char *BKE_id_to_unique_string_key(const struct ID *id); |