Blender V4.5
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,
286 Main *bmain,
287 const blender::Map<Library *, Library *> *new_to_old_libraries_map,
288 Scene *scene,
289 ViewLayer *view_layer,
291
300void BKE_lib_override_library_delete(Main *bmain, ID *id_root);
301
313
323
328 const char *rna_path);
333 const char *rna_path,
334 bool *r_created);
339 IDOverrideLibraryProperty *liboverride_property);
346 const char *rna_path);
347
360 const char *old_rna_path,
361 const char *new_rna_path);
362
373 const IDOverrideLibraryProperty *library_prop,
374 PointerRNA *r_override_poin,
375 PropertyRNA **r_override_prop,
376 int *r_index);
377
386 IDOverrideLibraryProperty *liboverride_property,
387 const char *subitem_refname,
388 const char *subitem_locname,
389 const std::optional<const ID *> &subitem_refid,
390 const std::optional<const ID *> &subitem_locid,
391 int subitem_refindex,
392 int subitem_locindex,
393 bool strict,
394 bool *r_strict);
399 IDOverrideLibraryProperty *liboverride_property,
400 short operation,
401 const char *subitem_refname,
402 const char *subitem_locname,
403 const std::optional<ID *> &subitem_refid,
404 const std::optional<ID *> &subitem_locid,
405 int subitem_refindex,
406 int subitem_locindex,
407 bool strict,
408 bool *r_strict,
409 bool *r_created);
414 IDOverrideLibraryProperty *liboverride_property,
415 IDOverrideLibraryPropertyOperation *liboverride_property_operation);
416
421 IDOverrideLibraryPropertyOperation *liboverride_property_operation,
422 PointerRNA *ptr_dst,
423 PointerRNA *ptr_src,
424 PointerRNA *ptr_storage,
425 PropertyRNA *prop_dst,
426 PropertyRNA *prop_src,
427 PropertyRNA *prop_storage);
428
437
462
477void BKE_lib_override_library_operations_create(Main *bmain, ID *local, int *r_report_flags);
484 bool force_auto,
485 int *r_report_flags);
486
496void BKE_lib_override_library_operations_restore(Main *bmain, ID *local, int *r_report_flags);
506void BKE_lib_override_library_main_operations_restore(Main *bmain, int *r_report_flags);
507
514void BKE_lib_override_library_id_reset(Main *bmain, ID *id_root, bool do_reset_system_override);
522 ID *id_root,
523 bool do_reset_system_override);
524
529 short tag,
530 bool do_set);
535 short tag,
536 bool do_set);
540void BKE_lib_override_library_main_tag(Main *bmain, short tag, bool do_set);
541
550
554void BKE_lib_override_library_update(Main *bmain, ID *local);
559
564
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)
void BKE_lib_override_flag_subdata_local(ID *id)
ReportList * reports
Definition WM_types.hh:1025
Definition DNA_ID.h:404