Blender  V3.3
BKE_lib_override.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2016 Blender Foundation. All rights reserved. */
3 
4 #pragma once
5 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
29 struct BlendFileReadReport;
30 struct Collection;
31 struct ID;
32 struct IDOverrideLibrary;
35 struct Library;
36 struct Main;
37 struct Object;
38 struct PointerRNA;
39 struct PropertyRNA;
40 struct ReportList;
41 struct Scene;
42 struct ViewLayer;
43 
47 struct IDOverrideLibrary *BKE_lib_override_library_init(struct ID *local_id,
48  struct ID *reference_id);
52 void BKE_lib_override_library_copy(struct ID *dst_id, const struct ID *src_id, bool do_full_copy);
56 void BKE_lib_override_library_clear(struct IDOverrideLibrary *override, bool do_id_user);
60 void BKE_lib_override_library_free(struct IDOverrideLibrary **override, bool do_id_user);
61 
73  struct ID *id,
74  struct ID *owner_id_hint,
75  struct ID **r_owner_id);
76 
81 
85 bool BKE_lib_override_library_is_system_defined(const struct Main *bmain, const struct ID *id);
86 
96  const IDOverrideLibraryProperty *override_prop,
97  const struct PropertyRNA *override_rna_prop,
98  const int rnaprop_index);
99 
106 bool BKE_lib_override_library_is_hierarchy_leaf(struct Main *bmain, struct ID *id);
107 
114 struct ID *BKE_lib_override_library_create_from_id(struct Main *bmain,
115  struct ID *reference_id,
116  bool do_tagged_remap);
152  struct Library *owner_library,
153  const struct ID *id_root_reference,
154  struct ID *id_hierarchy_root,
155  const struct ID *id_hierarchy_root_reference,
156  bool do_no_main,
157  const bool do_fully_editable);
192 bool BKE_lib_override_library_create(struct Main *bmain,
193  struct Scene *scene,
194  struct ViewLayer *view_layer,
195  struct Library *owner_library,
196  struct ID *id_root_reference,
197  struct ID *id_hierarchy_root_reference,
198  struct ID *id_instance_hint,
199  struct ID **r_id_root_override,
200  const bool do_fully_editable);
216  struct Scene *scene,
217  struct ViewLayer *view_layer,
218  struct Object *ob_proxy);
225  struct BlendFileReadReport *reports);
226 
234 
244 bool BKE_lib_override_library_resync(struct Main *bmain,
245  struct Scene *scene,
246  struct ViewLayer *view_layer,
247  struct ID *id_root,
248  struct Collection *override_resync_residual_storage,
249  bool do_hierarchy_enforce,
250  struct BlendFileReadReport *reports);
268 void BKE_lib_override_library_main_resync(struct Main *bmain,
269  struct Scene *scene,
270  struct ViewLayer *view_layer,
271  struct BlendFileReadReport *reports);
272 
281 void BKE_lib_override_library_delete(struct Main *bmain, struct ID *id_root);
282 
289 void BKE_lib_override_library_make_local(struct ID *id);
290 
295  struct IDOverrideLibrary *override, const char *rna_path);
300  struct IDOverrideLibrary *override, const char *rna_path, bool *r_created);
305  struct IDOverrideLibraryProperty *override_property);
316  const struct IDOverrideLibraryProperty *library_prop,
317  struct PointerRNA *r_override_poin,
318  struct PropertyRNA **r_override_prop,
319  int *r_index);
320 
325  struct IDOverrideLibraryProperty *override_property,
326  const char *subitem_refname,
327  const char *subitem_locname,
328  int subitem_refindex,
329  int subitem_locindex,
330  bool strict,
331  bool *r_strict);
336  struct IDOverrideLibraryProperty *override_property,
337  short operation,
338  const char *subitem_refname,
339  const char *subitem_locname,
340  int subitem_refindex,
341  int subitem_locindex,
342  bool strict,
343  bool *r_strict,
344  bool *r_created);
349  struct IDOverrideLibraryProperty *override_property,
350  struct IDOverrideLibraryPropertyOperation *override_property_operation);
351 
356  struct IDOverrideLibraryPropertyOperation *override_property_operation,
357  struct PointerRNA *ptr_dst,
358  struct PointerRNA *ptr_src,
359  struct PointerRNA *ptr_storage,
360  struct PropertyRNA *prop_dst,
361  struct PropertyRNA *prop_src,
362  struct PropertyRNA *prop_storage);
363 
367 void BKE_lib_override_library_validate(struct Main *bmain,
368  struct ID *id,
369  struct ReportList *reports);
373 void BKE_lib_override_library_main_validate(struct Main *bmain, struct ReportList *reports);
374 
386 bool BKE_lib_override_library_status_check_local(struct Main *bmain, struct ID *local);
398 bool BKE_lib_override_library_status_check_reference(struct Main *bmain, struct ID *local);
399 
414 bool BKE_lib_override_library_operations_create(struct Main *bmain, struct ID *local);
418 bool BKE_lib_override_library_main_operations_create(struct Main *bmain, bool force_auto);
419 
426 void BKE_lib_override_library_id_reset(struct Main *bmain,
427  struct ID *id_root,
428  bool do_reset_system_override);
436  struct ID *id_root,
437  bool do_reset_system_override);
438 
443  short tag,
444  bool do_set);
449  short tag,
450  bool do_set);
454 void BKE_lib_override_library_main_tag(struct Main *bmain, short tag, bool do_set);
455 
464 
468 void BKE_lib_override_library_update(struct Main *bmain, struct ID *local);
472 void BKE_lib_override_library_main_update(struct Main *bmain);
473 
477 bool BKE_lib_override_library_id_is_user_deletable(struct Main *bmain, struct ID *id);
478 
479 /* Storage (.blend file writing) part. */
480 
481 /* For now, we just use a temp main list. */
482 typedef struct Main OverrideLibraryStorage;
483 
495  struct Main *bmain, OverrideLibraryStorage *override_storage, struct ID *local);
501  struct ID *local);
503 
504 #ifdef __cplusplus
505 }
506 #endif
struct IDOverrideLibraryProperty * BKE_lib_override_library_property_get(struct IDOverrideLibrary *override, const char *rna_path, bool *r_created)
struct IDOverrideLibraryPropertyOperation * BKE_lib_override_library_property_operation_find(struct IDOverrideLibraryProperty *override_property, const char *subitem_refname, const char *subitem_locname, int subitem_refindex, int subitem_locindex, bool strict, bool *r_strict)
void BKE_lib_override_library_operations_store_finalize(OverrideLibraryStorage *override_storage)
void BKE_lib_override_library_operations_store_end(OverrideLibraryStorage *override_storage, struct ID *local)
IDOverrideLibrary * BKE_lib_override_library_get(struct Main *bmain, struct ID *id, struct ID *owner_id_hint, struct ID **r_owner_id)
bool BKE_lib_override_library_is_user_edited(const struct ID *id)
void BKE_lib_override_library_main_hierarchy_root_ensure(struct Main *bmain)
struct IDOverrideLibraryProperty * BKE_lib_override_library_property_find(struct IDOverrideLibrary *override, const char *rna_path)
void BKE_lib_override_library_main_resync(struct Main *bmain, struct Scene *scene, struct ViewLayer *view_layer, struct BlendFileReadReport *reports)
void BKE_lib_override_library_clear(struct IDOverrideLibrary *override, bool do_id_user)
void BKE_lib_override_library_properties_tag(struct IDOverrideLibrary *override, short tag, bool do_set)
bool BKE_lib_override_library_id_is_user_deletable(struct Main *bmain, struct ID *id)
bool BKE_lib_override_library_template_create(struct ID *id)
struct IDOverrideLibrary * BKE_lib_override_library_init(struct ID *local_id, struct ID *reference_id)
void BKE_lib_override_library_make_local(struct ID *id)
void BKE_lib_override_library_main_proxy_convert(struct Main *bmain, struct BlendFileReadReport *reports)
struct ID * BKE_lib_override_library_operations_store_start(struct Main *bmain, OverrideLibraryStorage *override_storage, struct ID *local)
void BKE_lib_override_library_free(struct IDOverrideLibrary **override, bool do_id_user)
bool BKE_lib_override_library_create(struct Main *bmain, struct Scene *scene, struct ViewLayer *view_layer, struct Library *owner_library, struct ID *id_root_reference, struct ID *id_hierarchy_root_reference, struct ID *id_instance_hint, struct ID **r_id_root_override, const bool do_fully_editable)
void BKE_lib_override_library_id_hierarchy_reset(struct Main *bmain, struct ID *id_root, bool do_reset_system_override)
void BKE_lib_override_library_operations_tag(struct IDOverrideLibraryProperty *override_property, short tag, bool do_set)
bool BKE_lib_override_rna_property_find(struct PointerRNA *idpoin, const struct IDOverrideLibraryProperty *library_prop, struct PointerRNA *r_override_poin, struct PropertyRNA **r_override_prop, int *r_index)
bool BKE_lib_override_library_status_check_reference(struct Main *bmain, struct ID *local)
void BKE_lib_override_library_id_unused_cleanup(struct ID *local)
OverrideLibraryStorage * BKE_lib_override_library_operations_store_init(void)
bool BKE_lib_override_library_main_operations_create(struct Main *bmain, bool force_auto)
void BKE_lib_override_library_main_tag(struct Main *bmain, short tag, bool do_set)
void BKE_lib_override_library_main_unused_cleanup(struct Main *bmain)
void BKE_lib_override_library_main_update(struct Main *bmain)
struct IDOverrideLibraryPropertyOperation * BKE_lib_override_library_property_operation_get(struct IDOverrideLibraryProperty *override_property, short operation, const char *subitem_refname, const char *subitem_locname, int subitem_refindex, int subitem_locindex, bool strict, bool *r_strict, bool *r_created)
void BKE_lib_override_library_copy(struct ID *dst_id, const struct ID *src_id, bool do_full_copy)
bool BKE_lib_override_library_proxy_convert(struct Main *bmain, struct Scene *scene, struct ViewLayer *view_layer, struct Object *ob_proxy)
bool BKE_lib_override_library_resync(struct Main *bmain, struct Scene *scene, struct ViewLayer *view_layer, struct ID *id_root, struct Collection *override_resync_residual_storage, bool do_hierarchy_enforce, struct BlendFileReadReport *reports)
bool BKE_lib_override_library_property_is_animated(const ID *id, const IDOverrideLibraryProperty *override_prop, const struct PropertyRNA *override_rna_prop, const int rnaprop_index)
bool BKE_lib_override_library_is_hierarchy_leaf(struct Main *bmain, struct ID *id)
bool BKE_lib_override_library_status_check_local(struct Main *bmain, struct ID *local)
bool BKE_lib_override_library_property_operation_operands_validate(struct IDOverrideLibraryPropertyOperation *override_property_operation, struct PointerRNA *ptr_dst, struct PointerRNA *ptr_src, struct PointerRNA *ptr_storage, struct PropertyRNA *prop_dst, struct PropertyRNA *prop_src, struct PropertyRNA *prop_storage)
void BKE_lib_override_library_delete(struct Main *bmain, struct ID *id_root)
void BKE_lib_override_library_property_operation_delete(struct IDOverrideLibraryProperty *override_property, struct IDOverrideLibraryPropertyOperation *override_property_operation)
void BKE_lib_override_library_id_reset(struct Main *bmain, struct ID *id_root, bool do_reset_system_override)
void BKE_lib_override_library_update(struct Main *bmain, struct ID *local)
bool BKE_lib_override_library_create_from_tag(struct Main *bmain, struct Library *owner_library, const struct ID *id_root_reference, struct ID *id_hierarchy_root, const struct ID *id_hierarchy_root_reference, bool do_no_main, const bool do_fully_editable)
struct ID * BKE_lib_override_library_create_from_id(struct Main *bmain, struct ID *reference_id, bool do_tagged_remap)
void BKE_lib_override_library_main_validate(struct Main *bmain, struct ReportList *reports)
void BKE_lib_override_library_validate(struct Main *bmain, struct ID *id, struct ReportList *reports)
void BKE_lib_override_library_property_delete(struct IDOverrideLibrary *override, struct IDOverrideLibraryProperty *override_property)
bool BKE_lib_override_library_is_system_defined(const struct Main *bmain, const struct ID *id)
bool BKE_lib_override_library_operations_create(struct Main *bmain, struct ID *local)
Scene scene
Definition: DNA_ID.h:368
Definition: BKE_main.h:121