Blender V4.3
BKE_lib_override.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2016 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
26#include <optional>
27
29struct Collection;
30struct ID;
34struct Library;
35struct Main;
36struct Object;
37struct PointerRNA;
38struct PropertyRNA;
39struct ReportList;
40struct Scene;
41struct ViewLayer;
42
46IDOverrideLibrary *BKE_lib_override_library_init(ID *local_id, ID *reference_id);
50void BKE_lib_override_library_copy(ID *dst_id, const ID *src_id, bool do_full_copy);
54void BKE_lib_override_library_clear(IDOverrideLibrary *liboverride, bool do_id_user);
58void BKE_lib_override_library_free(IDOverrideLibrary **liboverride, bool do_id_user);
59
71 ID *id,
72 ID *owner_id_hint,
73 ID **r_owner_id);
74
79
83bool BKE_lib_override_library_is_system_defined(const Main *bmain, const ID *id);
84
94 const ID *id,
95 const IDOverrideLibraryProperty *liboverride_prop,
96 const PropertyRNA *override_rna_prop,
97 const int rnaprop_index);
98
106
114
121ID *BKE_lib_override_library_create_from_id(Main *bmain, ID *reference_id, bool do_tagged_remap);
157 Library *owner_library,
158 const ID *id_root_reference,
159 ID *id_hierarchy_root,
160 const ID *id_hierarchy_root_reference,
161 bool do_no_main,
162 const bool do_fully_editable);
198 Scene *scene,
199 ViewLayer *view_layer,
200 Library *owner_library,
201 ID *id_root_reference,
202 ID *id_hierarchy_root_reference,
203 ID *id_instance_hint,
204 ID **r_id_root_override,
205 const bool do_fully_editable);
206
218 Scene *scene,
219 ViewLayer *view_layer,
220 Object *ob_proxy);
227
235
251 Scene *scene,
252 ViewLayer *view_layer,
253 ID *id_root,
254 Collection *override_resync_residual_storage,
255 bool do_hierarchy_enforce,
256 BlendFileReadReport *reports);
275 Scene *scene,
276 ViewLayer *view_layer,
277 BlendFileReadReport *reports);
278
287void BKE_lib_override_library_delete(Main *bmain, ID *id_root);
288
300
305 const char *rna_path);
310 const char *rna_path,
311 bool *r_created);
316 IDOverrideLibraryProperty *liboverride_property);
323 const char *rna_path);
324
337 const char *old_rna_path,
338 const char *new_rna_path);
339
350 const IDOverrideLibraryProperty *library_prop,
351 PointerRNA *r_override_poin,
352 PropertyRNA **r_override_prop,
353 int *r_index);
354
363 IDOverrideLibraryProperty *liboverride_property,
364 const char *subitem_refname,
365 const char *subitem_locname,
366 const std::optional<const ID *> &subitem_refid,
367 const std::optional<const ID *> &subitem_locid,
368 int subitem_refindex,
369 int subitem_locindex,
370 bool strict,
371 bool *r_strict);
376 IDOverrideLibraryProperty *liboverride_property,
377 short operation,
378 const char *subitem_refname,
379 const char *subitem_locname,
380 const std::optional<ID *> &subitem_refid,
381 const std::optional<ID *> &subitem_locid,
382 int subitem_refindex,
383 int subitem_locindex,
384 bool strict,
385 bool *r_strict,
386 bool *r_created);
391 IDOverrideLibraryProperty *liboverride_property,
392 IDOverrideLibraryPropertyOperation *liboverride_property_operation);
393
398 IDOverrideLibraryPropertyOperation *liboverride_property_operation,
399 PointerRNA *ptr_dst,
400 PointerRNA *ptr_src,
401 PointerRNA *ptr_storage,
402 PropertyRNA *prop_dst,
403 PropertyRNA *prop_src,
404 PropertyRNA *prop_storage);
405
409void BKE_lib_override_library_validate(Main *bmain, ID *id, ReportList *reports);
414
439
454void BKE_lib_override_library_operations_create(Main *bmain, ID *local, int *r_report_flags);
461 bool force_auto,
462 int *r_report_flags);
463
473void BKE_lib_override_library_operations_restore(Main *bmain, ID *local, int *r_report_flags);
483void BKE_lib_override_library_main_operations_restore(Main *bmain, int *r_report_flags);
484
491void BKE_lib_override_library_id_reset(Main *bmain, ID *id_root, bool do_reset_system_override);
499 ID *id_root,
500 bool do_reset_system_override);
501
506 short tag,
507 bool do_set);
512 short tag,
513 bool do_set);
517void BKE_lib_override_library_main_tag(Main *bmain, short tag, bool do_set);
518
527
531void BKE_lib_override_library_update(Main *bmain, ID *local);
536
541
545void BKE_lib_override_debug_print(IDOverrideLibrary *liboverride, const char *intro_txt);
546
547/* Storage (.blend file writing) part. */
548
549/* For now, we just use a temp main list. */
551
563 OverrideLibraryStorage *liboverride_storage,
564 ID *local);
570 ID *local);
572 OverrideLibraryStorage *liboverride_storage);
void BKE_lib_override_library_main_hierarchy_root_ensure(Main *bmain)
ID * BKE_lib_override_library_create_from_id(Main *bmain, ID *reference_id, bool do_tagged_remap)
bool BKE_lib_override_library_proxy_convert(Main *bmain, Scene *scene, ViewLayer *view_layer, Object *ob_proxy)
void BKE_lib_override_library_operations_tag(IDOverrideLibraryProperty *liboverride_property, short tag, bool do_set)
bool BKE_lib_override_library_property_rna_path_change(IDOverrideLibrary *liboverride, const char *old_rna_path, const char *new_rna_path)
void BKE_lib_override_library_property_operation_delete(IDOverrideLibraryProperty *liboverride_property, IDOverrideLibraryPropertyOperation *liboverride_property_operation)
void BKE_lib_override_library_main_validate(Main *bmain, ReportList *reports)
IDOverrideLibraryProperty * BKE_lib_override_library_property_find(IDOverrideLibrary *liboverride, const char *rna_path)
void BKE_lib_override_library_free(IDOverrideLibrary **liboverride, bool do_id_user)
void BKE_lib_override_library_main_operations_restore(Main *bmain, int *r_report_flags)
void BKE_lib_override_debug_print(IDOverrideLibrary *liboverride, const char *intro_txt)
bool BKE_lib_override_library_id_is_user_deletable(Main *bmain, ID *id)
IDOverrideLibraryProperty * BKE_lib_override_library_property_get(IDOverrideLibrary *liboverride, const char *rna_path, bool *r_created)
bool BKE_lib_override_library_is_system_defined(const Main *bmain, const ID *id)
OverrideLibraryStorage * BKE_lib_override_library_operations_store_init()
bool BKE_lib_override_library_property_is_animated(const ID *id, const IDOverrideLibraryProperty *liboverride_prop, const PropertyRNA *override_rna_prop, const int rnaprop_index)
IDOverrideLibraryPropertyOperation * BKE_lib_override_library_property_operation_get(IDOverrideLibraryProperty *liboverride_property, short operation, const char *subitem_refname, const char *subitem_locname, const std::optional< ID * > &subitem_refid, const std::optional< ID * > &subitem_locid, int subitem_refindex, int subitem_locindex, bool strict, bool *r_strict, bool *r_created)
IDOverrideLibraryPropertyOperation * BKE_lib_override_library_property_operation_find(IDOverrideLibraryProperty *liboverride_property, const char *subitem_refname, const char *subitem_locname, const std::optional< const ID * > &subitem_refid, const std::optional< const ID * > &subitem_locid, int subitem_refindex, int subitem_locindex, bool strict, bool *r_strict)
void BKE_lib_override_id_tag_on_deg_tag_from_user(ID *id)
bool BKE_lib_override_library_property_search_and_delete(IDOverrideLibrary *liboverride, const char *rna_path)
bool BKE_lib_override_library_property_operation_operands_validate(IDOverrideLibraryPropertyOperation *liboverride_property_operation, PointerRNA *ptr_dst, PointerRNA *ptr_src, PointerRNA *ptr_storage, PropertyRNA *prop_dst, PropertyRNA *prop_src, PropertyRNA *prop_storage)
bool BKE_lib_override_library_create_from_tag(Main *bmain, Library *owner_library, const ID *id_root_reference, ID *id_hierarchy_root, const ID *id_hierarchy_root_reference, bool do_no_main, const bool do_fully_editable)
bool BKE_lib_override_library_status_check_reference(Main *bmain, ID *local)
void BKE_lib_override_library_update(Main *bmain, ID *local)
void BKE_lib_override_library_operations_restore(Main *bmain, ID *local, int *r_report_flags)
void BKE_lib_override_library_main_tag(Main *bmain, short tag, bool do_set)
void BKE_lib_override_library_id_reset(Main *bmain, ID *id_root, bool do_reset_system_override)
bool BKE_lib_override_library_resync(Main *bmain, Scene *scene, ViewLayer *view_layer, ID *id_root, Collection *override_resync_residual_storage, bool do_hierarchy_enforce, BlendFileReadReport *reports)
void BKE_lib_override_library_id_unused_cleanup(ID *local)
void BKE_lib_override_library_main_resync(Main *bmain, Scene *scene, ViewLayer *view_layer, BlendFileReadReport *reports)
bool BKE_lib_override_library_create(Main *bmain, Scene *scene, ViewLayer *view_layer, Library *owner_library, ID *id_root_reference, ID *id_hierarchy_root_reference, ID *id_instance_hint, ID **r_id_root_override, const bool do_fully_editable)
bool BKE_lib_override_library_is_user_edited(const ID *id)
ID * BKE_lib_override_library_operations_store_start(Main *bmain, OverrideLibraryStorage *liboverride_storage, ID *local)
void BKE_lib_override_library_id_hierarchy_reset(Main *bmain, ID *id_root, bool do_reset_system_override)
void BKE_lib_override_library_main_proxy_convert(Main *bmain, BlendFileReadReport *reports)
void BKE_lib_override_library_operations_store_finalize(OverrideLibraryStorage *liboverride_storage)
bool BKE_lib_override_rna_property_find(PointerRNA *idpoin, const IDOverrideLibraryProperty *library_prop, PointerRNA *r_override_poin, PropertyRNA **r_override_prop, int *r_index)
bool BKE_lib_override_library_status_check_local(Main *bmain, ID *local)
void BKE_lib_override_library_operations_create(Main *bmain, ID *local, int *r_report_flags)
void BKE_lib_override_library_operations_store_end(OverrideLibraryStorage *liboverride_storage, ID *local)
void BKE_lib_override_library_copy(ID *dst_id, const ID *src_id, bool do_full_copy)
void BKE_lib_override_library_make_local(Main *bmain, ID *id)
void BKE_lib_override_library_properties_tag(IDOverrideLibrary *liboverride, short tag, bool do_set)
IDOverrideLibrary * BKE_lib_override_library_init(ID *local_id, ID *reference_id)
void BKE_lib_override_library_validate(Main *bmain, ID *id, ReportList *reports)
void BKE_lib_override_library_delete(Main *bmain, ID *id_root)
bool BKE_lib_override_library_is_hierarchy_leaf(Main *bmain, ID *id)
void BKE_lib_override_library_clear(IDOverrideLibrary *liboverride, bool do_id_user)
void BKE_lib_override_library_property_delete(IDOverrideLibrary *liboverride, IDOverrideLibraryProperty *liboverride_property)
void BKE_lib_override_library_main_update(Main *bmain)
void BKE_lib_override_library_main_unused_cleanup(Main *bmain)
IDOverrideLibrary * BKE_lib_override_library_get(Main *bmain, ID *id, ID *owner_id_hint, ID **r_owner_id)
void BKE_lib_override_library_main_operations_create(Main *bmain, bool force_auto, int *r_report_flags)
Definition DNA_ID.h:413