Blender V5.0
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
25
26#include "BLI_map.hh"
27
28#include <optional>
29
31struct Collection;
32struct ID;
36struct Library;
37struct Main;
38struct Object;
39struct PointerRNA;
40struct PropertyRNA;
41struct ReportList;
42struct Scene;
43struct ViewLayer;
44
46
48
49} // namespace blender::bke::liboverride
50
54IDOverrideLibrary *BKE_lib_override_library_init(ID *local_id, ID *reference_id);
58void BKE_lib_override_library_copy(ID *dst_id, const ID *src_id, bool do_full_copy);
67
79 ID *id,
80 ID *owner_id_hint,
81 ID **r_owner_id);
82
87
91bool BKE_lib_override_library_is_system_defined(const Main *bmain, const ID *id);
92
102 const ID *id,
103 const IDOverrideLibraryProperty *liboverride_prop,
104 const PropertyRNA *override_rna_prop,
105 const int rnaprop_index);
106
114
122
129ID *BKE_lib_override_library_create_from_id(Main *bmain, ID *reference_id, bool do_tagged_remap);
165 Library *owner_library,
166 const ID *id_root_reference,
167 ID *id_hierarchy_root,
168 const ID *id_hierarchy_root_reference,
169 bool do_no_main,
170 const bool do_fully_editable);
206 Scene *scene,
207 ViewLayer *view_layer,
208 Library *owner_library,
209 ID *id_root_reference,
210 ID *id_hierarchy_root_reference,
211 ID *id_instance_hint,
212 ID **r_id_root_override,
213 const bool do_fully_editable);
214
226 Scene *scene,
227 ViewLayer *view_layer,
228 Object *ob_proxy);
235
243
259 Scene *scene,
260 ViewLayer *view_layer,
261 ID *id_root,
262 Collection *override_resync_residual_storage,
263 bool do_hierarchy_enforce,
264 BlendFileReadReport *reports);
286 Main *bmain,
287 const blender::Map<Library *, Library *> *new_to_old_libraries_map,
288 Scene *scene,
289 ViewLayer *view_layer,
290 BlendFileReadReport *reports);
291
300void BKE_lib_override_library_delete(Main *bmain, ID *id_root);
301
313
318 const char *rna_path);
323 const char *rna_path,
324 bool *r_created);
329 IDOverrideLibraryProperty *liboverride_property);
336 const char *rna_path);
337
350 const char *old_rna_path,
351 const char *new_rna_path);
352
363 const IDOverrideLibraryProperty *library_prop,
364 PointerRNA *r_override_poin,
365 PropertyRNA **r_override_prop,
366 int *r_index);
367
376 IDOverrideLibraryProperty *liboverride_property,
377 const char *subitem_refname,
378 const char *subitem_locname,
379 const std::optional<const ID *> &subitem_refid,
380 const std::optional<const ID *> &subitem_locid,
381 int subitem_refindex,
382 int subitem_locindex,
383 bool strict,
384 bool *r_strict);
389 IDOverrideLibraryProperty *liboverride_property,
390 short operation,
391 const char *subitem_refname,
392 const char *subitem_locname,
393 const std::optional<ID *> &subitem_refid,
394 const std::optional<ID *> &subitem_locid,
395 int subitem_refindex,
396 int subitem_locindex,
397 bool strict,
398 bool *r_strict,
399 bool *r_created);
404 IDOverrideLibraryProperty *liboverride_property,
405 IDOverrideLibraryPropertyOperation *liboverride_property_operation);
406
411 IDOverrideLibraryPropertyOperation *liboverride_property_operation,
412 PointerRNA *ptr_dst,
413 PointerRNA *ptr_src,
414 PointerRNA *ptr_storage,
415 PropertyRNA *prop_dst,
416 PropertyRNA *prop_src,
417 PropertyRNA *prop_storage);
418
422void BKE_lib_override_library_validate(Main *bmain, ID *id, ReportList *reports);
427
452
467void BKE_lib_override_library_operations_create(Main *bmain, ID *local, int *r_report_flags);
474 bool force_auto,
475 int *r_report_flags);
476
486void BKE_lib_override_library_operations_restore(Main *bmain, ID *local, int *r_report_flags);
496void BKE_lib_override_library_main_operations_restore(Main *bmain, int *r_report_flags);
497
504void BKE_lib_override_library_id_reset(Main *bmain, ID *id_root, bool do_reset_system_override);
512 ID *id_root,
513 bool do_reset_system_override);
514
519 short tag,
520 bool do_set);
525 short tag,
526 bool do_set);
530void BKE_lib_override_library_main_tag(Main *bmain, short tag, bool do_set);
531
540
544void BKE_lib_override_library_update(Main *bmain, ID *local);
549
554
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)
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)
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)
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)
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_main_resync(Main *bmain, const blender::Map< Library *, Library * > *new_to_old_libraries_map, Scene *scene, ViewLayer *view_layer, BlendFileReadReport *reports)
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:414