Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/blenkernel/BKE_library_remap.h')
-rw-r--r--source/blender/blenkernel/BKE_library_remap.h74
1 files changed, 39 insertions, 35 deletions
diff --git a/source/blender/blenkernel/BKE_library_remap.h b/source/blender/blenkernel/BKE_library_remap.h
index efd34b97e8b..da104c4c205 100644
--- a/source/blender/blenkernel/BKE_library_remap.h
+++ b/source/blender/blenkernel/BKE_library_remap.h
@@ -29,45 +29,48 @@ extern "C" {
/* Also IDRemap->flag. */
enum {
- /* Do not remap indirect usages of IDs (that is, when user is some linked data). */
- ID_REMAP_SKIP_INDIRECT_USAGE = 1 << 0,
- /* This flag should always be set, *except for 'unlink' scenarios* (only relevant when new_id == NULL).
- * Basically, when unset, NEVER_NULL ID usages will keep pointing to old_id, but (if needed) old_id user count
- * will still be decremented. This is mandatory for 'delete ID' case, but in all other situation this would lead
- * to invalid user counts! */
- ID_REMAP_SKIP_NEVER_NULL_USAGE = 1 << 1,
- /* This tells the callback func to flag with LIB_DOIT all IDs using target one with a 'never NULL' pointer
- * (like e.g. Object->data). */
- ID_REMAP_FLAG_NEVER_NULL_USAGE = 1 << 2,
- /* This tells the callback func to force setting IDs using target one with a 'never NULL' pointer to NULL.
- * WARNING! Use with extreme care, this will leave database in broken state and can cause crashes very easily! */
- ID_REMAP_FORCE_NEVER_NULL_USAGE = 1 << 3,
- /* Do not consider proxy/_group pointers of local objects as indirect usages...
- * Our oh-so-beloved proxies again... Do not consider data used by local proxy object as indirect usage.
- * This is needed e.g. in reload scenario, since we have to ensure remapping of Armature data of local proxy
- * is also performed. Usual nightmare... */
- ID_REMAP_NO_INDIRECT_PROXY_DATA_USAGE = 1 << 4,
- /* Do not remap static override pointers. */
- ID_REMAP_SKIP_STATIC_OVERRIDE = 1 << 5,
+ /* Do not remap indirect usages of IDs (that is, when user is some linked data). */
+ ID_REMAP_SKIP_INDIRECT_USAGE = 1 << 0,
+ /* This flag should always be set, *except for 'unlink' scenarios* (only relevant when new_id == NULL).
+ * Basically, when unset, NEVER_NULL ID usages will keep pointing to old_id, but (if needed) old_id user count
+ * will still be decremented. This is mandatory for 'delete ID' case, but in all other situation this would lead
+ * to invalid user counts! */
+ ID_REMAP_SKIP_NEVER_NULL_USAGE = 1 << 1,
+ /* This tells the callback func to flag with LIB_DOIT all IDs using target one with a 'never NULL' pointer
+ * (like e.g. Object->data). */
+ ID_REMAP_FLAG_NEVER_NULL_USAGE = 1 << 2,
+ /* This tells the callback func to force setting IDs using target one with a 'never NULL' pointer to NULL.
+ * WARNING! Use with extreme care, this will leave database in broken state and can cause crashes very easily! */
+ ID_REMAP_FORCE_NEVER_NULL_USAGE = 1 << 3,
+ /* Do not consider proxy/_group pointers of local objects as indirect usages...
+ * Our oh-so-beloved proxies again... Do not consider data used by local proxy object as indirect usage.
+ * This is needed e.g. in reload scenario, since we have to ensure remapping of Armature data of local proxy
+ * is also performed. Usual nightmare... */
+ ID_REMAP_NO_INDIRECT_PROXY_DATA_USAGE = 1 << 4,
+ /* Do not remap static override pointers. */
+ ID_REMAP_SKIP_STATIC_OVERRIDE = 1 << 5,
};
/* Note: Requiring new_id to be non-null, this *may* not be the case ultimately, but makes things simpler for now. */
-void BKE_libblock_remap_locked(
- struct Main *bmain, void *old_idv, void *new_idv,
- const short remap_flags) ATTR_NONNULL(1, 2);
-void BKE_libblock_remap(
- struct Main *bmain, void *old_idv, void *new_idv,
- const short remap_flags) ATTR_NONNULL(1, 2);
+void BKE_libblock_remap_locked(struct Main *bmain,
+ void *old_idv,
+ void *new_idv,
+ const short remap_flags) ATTR_NONNULL(1, 2);
+void BKE_libblock_remap(struct Main *bmain, void *old_idv, void *new_idv, const short remap_flags)
+ ATTR_NONNULL(1, 2);
-void BKE_libblock_unlink(
- struct Main *bmain, void *idv,
- const bool do_flag_never_null, const bool do_skip_indirect) ATTR_NONNULL();
+void BKE_libblock_unlink(struct Main *bmain,
+ void *idv,
+ const bool do_flag_never_null,
+ const bool do_skip_indirect) ATTR_NONNULL();
-void BKE_libblock_relink_ex(
- struct Main *bmain, void *idv, void *old_idv, void *new_idv,
- const bool us_min_never_null) ATTR_NONNULL(1, 2);
+void BKE_libblock_relink_ex(struct Main *bmain,
+ void *idv,
+ void *old_idv,
+ void *new_idv,
+ const bool us_min_never_null) ATTR_NONNULL(1, 2);
-void BKE_libblock_relink_to_newid(struct ID *id) ATTR_NONNULL();
+void BKE_libblock_relink_to_newid(struct ID *id) ATTR_NONNULL();
typedef void (*BKE_library_free_window_manager_cb)(struct bContext *, struct wmWindowManager *);
typedef void (*BKE_library_free_notifier_reference_cb)(const void *);
@@ -75,10 +78,11 @@ typedef void (*BKE_library_remap_editor_id_reference_cb)(struct ID *, struct ID
void BKE_library_callback_free_window_manager_set(BKE_library_free_window_manager_cb func);
void BKE_library_callback_free_notifier_reference_set(BKE_library_free_notifier_reference_cb func);
-void BKE_library_callback_remap_editor_id_reference_set(BKE_library_remap_editor_id_reference_cb func);
+void BKE_library_callback_remap_editor_id_reference_set(
+ BKE_library_remap_editor_id_reference_cb func);
#ifdef __cplusplus
}
#endif
-#endif /* __BKE_LIBRARY_REMAP_H__ */
+#endif /* __BKE_LIBRARY_REMAP_H__ */