|
Blender V5.0
|
#include <cstdlib>#include "CLG_log.h"#include "DNA_anim_types.h"#include "BLI_function_ref.hh"#include "BLI_ghash.h"#include "BLI_linklist_stack.h"#include "BLI_listbase.h"#include "BLI_set.hh"#include "BKE_anim_data.hh"#include "BKE_idprop.hh"#include "BKE_idtype.hh"#include "BKE_lib_id.hh"#include "BKE_lib_query.hh"#include "BKE_main.hh"#include "BKE_node.hh"Go to the source code of this file.
Classes | |
| struct | LibraryForeachIDData |
| struct | IDUsersIter |
| struct | UnusedIDsData |
Macros | |
| #define | CALLBACK_INVOKE_ID(check_id, cb_flag) |
| #define | CALLBACK_INVOKE(check_id_super, cb_flag) |
Enumerations | |
| enum | { IDWALK_STOP = 1 << 0 } |
Variables | |
| static CLG_LogRef | LOG = {"lib.query"} |
| #define CALLBACK_INVOKE | ( | check_id_super, | |
| cb_flag ) |
Referenced by library_foreach_ID_link().
| #define CALLBACK_INVOKE_ID | ( | check_id, | |
| cb_flag ) |
Referenced by library_foreach_ID_link().
| anonymous enum |
| Enumerator | |
|---|---|
| IDWALK_STOP | |
Definition at line 32 of file lib_query.cc.
| bool BKE_lib_query_foreachid_iter_stop | ( | const LibraryForeachIDData * | data | ) |
Check whether current iteration over ID usages should be stopped or not.
Definition at line 73 of file lib_query.cc.
References data, and IDWALK_STOP.
Referenced by BKE_lib_query_foreachid_process(), BKE_library_foreach_ID_embedded(), library_foreach_ID_link(), and window_manager_foreach_id().
| void BKE_lib_query_foreachid_process | ( | LibraryForeachIDData * | data, |
| ID ** | id_pp, | ||
| LibraryForeachIDCallbackFlag | cb_flag ) |
Definition at line 78 of file lib_query.cc.
References BKE_lib_query_foreachid_iter_stop(), BLI_assert, BLI_assert_msg, BLI_gset_add(), BLI_LINKSTACK_PUSH, LibraryIDLinkCallbackData::bmain, LibraryIDLinkCallbackData::cb_flag, data, flag, LibraryIDLinkCallbackData::id_pointer, IDWALK_CB_INTERNAL, IDWALK_CB_LOOPBACK, IDWALK_CB_OVERRIDE_LIBRARY_NOT_OVERRIDABLE, IDWALK_CB_OVERRIDE_LIBRARY_REFERENCE, IDWALK_READONLY, IDWALK_RECURSE, IDWALK_RET_STOP_ITER, IDWALK_RET_STOP_RECURSION, IDWALK_STOP, LibraryIDLinkCallbackData::owner_id, LibraryIDLinkCallbackData::self_id, and LibraryIDLinkCallbackData::user_data.
Referenced by BKE_library_foreach_ID_embedded(), library_foreach_constraintObjectLooper(), library_foreach_gpencil_modifiersForeachIDLink(), library_foreach_ID_link(), library_foreach_modifiersForeachIDLink(), library_foreach_particlesystemsObjectLooper(), library_foreach_shaderfxForeachIDLink(), scene_foreach_rigidbodyworldSceneLooper(), and window_manager_foreach_id().
| int BKE_lib_query_foreachid_process_callback_flag_override | ( | LibraryForeachIDData * | data, |
| const LibraryForeachIDCallbackFlag | cb_flag, | ||
| const bool | do_replace ) |
Definition at line 139 of file lib_query.cc.
References data.
| LibraryForeachIDFlag BKE_lib_query_foreachid_process_flags_get | ( | const LibraryForeachIDData * | data | ) |
Definition at line 129 of file lib_query.cc.
References data.
Referenced by action_foreach_id(), blender::bke::action_foreach_id(), BKE_particlesystem_id_loop(), buttons_foreach_id(), camera_foreach_id(), clip_foreach_id(), collection_foreach_id(), file_foreach_id(), graph_foreach_id(), image_foreach_id(), library_foreach_id(), blender::ed::space_node::node_foreach_id(), object_foreach_id(), blender::ed::outliner::outliner_foreach_id(), particle_settings_foreach_id(), scene_foreach_id(), scene_foreach_layer_collection(), screen_foreach_id(), view3d_foreach_id(), and window_manager_foreach_id().
| Main * BKE_lib_query_foreachid_process_main_get | ( | const LibraryForeachIDData * | data | ) |
Definition at line 134 of file lib_query.cc.
References data.
Referenced by blender::bke::action_foreach_id().
| void BKE_lib_query_idpropertiesForeachIDLink_callback | ( | IDProperty * | id_prop, |
| void * | user_data ) |
Definition at line 160 of file lib_query.cc.
References BKE_LIB_FOREACHID_PROCESS_ID, BLI_assert, data, IDProperty::data, IDProperty::flag, IDP_FLAG_OVERRIDABLE_LIBRARY, IDP_ID, IDWALK_CB_NOP, IDWALK_CB_OVERRIDE_LIBRARY_NOT_OVERRIDABLE, IDWALK_CB_USER, IDPropertyData::pointer, and IDProperty::type.
| void BKE_lib_query_unused_ids_amounts | ( | Main * | bmain, |
| LibQueryUnusedIDsData & | parameters ) |
Compute amount of unused IDs (a.k.a 'orphaned').
By default only consider IDs with 0 user count. If do_recursive is set, it will check dependencies to detect all IDs that are not actually used in current file, including archipelagos (i.e. set of IDs referencing each other in loops, but without any 'external' valid usages.
Valid usages here are defined as ref-counting usages, which are not towards embedded or loop-back data.
| r_num_total | A zero-initialized array of INDEX_ID_MAX integers. Number of IDs detected as unused from given parameters, per ID type in the matching index, and as total in INDEX_ID_NULL item. |
| r_num_local | A zero-initialized array of INDEX_ID_MAX integers. Number of local IDs detected as unused from given parameters (but assuming do_local_ids is true), per ID type in the matching index, and as total in INDEX_ID_NULL item. |
| r_num_linked | A zero-initialized array of INDEX_ID_MAX integers. Number of linked IDs detected as unused from given parameters (but assuming do_linked_ids is true), per ID type in the matching index, and as total in INDEX_ID_NULL item. |
Definition at line 1019 of file lib_query.cc.
References BKE_main_relations_create(), BKE_main_relations_free(), data, LibQueryUnusedIDsData::do_linked_ids, LibQueryUnusedIDsData::do_local_ids, LibQueryUnusedIDsData::do_recursive, lib_query_unused_ids_tag(), LibQueryUnusedIDsData::num_linked, LibQueryUnusedIDsData::num_local, and LibQueryUnusedIDsData::num_total.
Referenced by blender::ed::outliner::outliner_orphans_purge_check(), and blender::ed::outliner::unused_message_popup_width_compute().
| void BKE_lib_query_unused_ids_tag | ( | Main * | bmain, |
| int | tag, | ||
| LibQueryUnusedIDsData & | parameters ) |
Tag all unused IDs (a.k.a 'orphaned').
By default only tag IDs with 0 user count. If do_recursive is set, it will check dependencies to detect all IDs that are not actually used in current file, including archipelagos (i.e. set of IDs referencing each other in loops, but without any 'external' valid usages.
Valid usages here are defined as ref-counting usages, which are not towards embedded or loop-back data.
| tag | the ID tag to use to mark the ID as unused. Should never be 0. |
| r_num_tagged_total | A zero-initialized array of INDEX_ID_MAX integers. Number of IDs tagged as unused from given parameters, per ID type in the matching index, and as total in INDEX_ID_NULL item. |
Definition at line 1073 of file lib_query.cc.
References BKE_main_relations_create(), BKE_main_relations_free(), BLI_assert, data, lib_query_unused_ids_tag(), LibQueryUnusedIDsData::num_linked, LibQueryUnusedIDsData::num_local, and LibQueryUnusedIDsData::num_total.
Referenced by bpy_orphans_purge(), lib_override_cleanup_after_resync(), blender::ed::outliner::outliner_orphans_purge_exec(), and blender::bke::blendfile::PartialWriteContext::remove_unused().
| void BKE_library_foreach_ID_embedded | ( | LibraryForeachIDData * | data, |
| ID ** | id_pp ) |
Process embedded ID pointers (root node-trees, master collections, ...).
Those require specific care, since they are technically sub-data of their owner, yet in some cases they still behave as regular IDs.
Definition at line 172 of file lib_query.cc.
References BKE_lib_query_foreachid_iter_stop(), BKE_lib_query_foreachid_process(), BLI_assert, BLI_gset_add(), BLI_LINKSTACK_PUSH, data, flag, IDWALK_CB_EMBEDDED, IDWALK_IGNORE_EMBEDDED_ID, IDWALK_RECURSE, IDWALK_STOP, and library_foreach_ID_link().
Referenced by light_foreach_id(), linestyle_foreach_id(), material_foreach_id(), scene_foreach_id(), texture_foreach_id(), and world_foreach_id().
| void BKE_library_foreach_ID_link | ( | Main * | bmain, |
| ID * | id, | ||
| blender::FunctionRef< LibraryIDLinkCallback > | callback, | ||
| void * | user_data, | ||
| LibraryForeachIDFlag | flag ) |
Loop over all of the ID's this data-block links to.
| bmain | The Main data-base containing owner_id, may be null. |
| id | The ID to process. Note that currently, embedded IDs may also be passed here. |
| callback | The callback processing a given ID usage (i.e. a given ID pointer within the given id data). |
| user_data | Opaque user data for the callback processing a given ID usage. |
| flag | Flags controlling how/which ID pointers are processed. |
Definition at line 431 of file lib_query.cc.
References flag, and library_foreach_ID_link().
Referenced by BKE_blendfile_link_append_instantiate_loose(), BKE_brush_duplicate(), BKE_id_copy_for_use_in_bmain(), BKE_id_copy_in_lib(), BKE_lib_id_clear_library_data(), BKE_lib_id_expand_local(), BKE_lib_override_library_is_hierarchy_leaf(), BKE_libblock_management_main_add(), BKE_libblock_management_usercounts_clear(), BKE_libblock_management_usercounts_set(), BKE_library_ID_test_usages(), BKE_library_ID_use_ID(), BKE_library_indirectly_used_data_tag_clear(), BKE_library_unused_linked_data_set_tag(), BKE_main_id_refcount_recompute(), BKE_main_relations_create(), BKE_mesh_new_from_object_to_bmain(), blendfile_append_define_actions(), bpy_user_map(), blender::bke::id_hash::compute_deep_hash_recursive(), blender::deg::deg_validate_eval_copy_datablock(), blender::nodes::geo_eval_log::GeoTreeLog::ensure_node_warnings(), expand_main(), foreach_libblock_link_append_common_processing(), gather_frames_to_render(), blender::bke::blendfile::PartialWriteContext::id_add(), blender::bke::blendfile::PartialWriteContext::is_valid(), lib_link_all(), lib_override_libraries_index_define(), libblock_relink_to_newid_prepare_data(), libblock_remap_data(), library_ID_is_used(), memfile_undosys_step_decode(), blender::bke::library::pack_linked_id_hierarchy(), paste_material_exec(), previews_ensure_exec(), read_undo_remap_noundo_data(), reuse_bmain_data_invalid_local_usages_fix(), reuse_editable_asset_bmain_data_for_blendfile(), blender::ed::vse::sequencer_write_copy_paste_file(), swap_old_bmain_data_dependencies_process(), blender::ed::object::tag_localizable_objects(), blender::bke::tests::TEST_F(), blender::bke::tests::TEST_F(), blender::deg::DepsgraphNodeBuilder::update_invalid_cow_pointers(), and write_file_handle().
| void BKE_library_foreach_subdata_id | ( | Main * | bmain, |
| ID * | owner_id, | ||
| ID * | self_id, | ||
| blender::FunctionRef< void(LibraryForeachIDData *data)> | subdata_foreach_id, | ||
| blender::FunctionRef< LibraryIDLinkCallback > | callback, | ||
| void * | user_data, | ||
| const LibraryForeachIDFlag | flag ) |
Apply callback to all ID usages of the data as defined by subdata_foreach_id. Useful to e.g. process all ID usages of a node, or a modifier, and so on.
| bmain | The Main data-base containing owner_id, may be null. |
| owner_id | The owner ID, i.e. the data-block owning the given sub-data (may differ from self_id in case the later is an embedded ID). |
| self_id | Typically the same as owner_id, unless it is an embedded ID. |
| subdata_foreach_id | The callback handling which data to process, and iterating over all ID usages of this subdata. Typically a lambda capturing that subdata, see comments above for details. |
| callback | The callback processing a given ID usage, see BKE_library_foreach_ID_link. |
| user_data | Opaque user data for the callback processing a given ID usage, see BKE_library_foreach_ID_link. |
| flag | Flags controlling the process, see BKE_library_foreach_ID_link. Note that some flags are not accepted here (IDWALK_RECURSE, IDWALK_DO_INTERNAL_RUNTIME_POINTERS, IDWALK_DO_LIBRARY_POINTER, IDWALK_INCLUDE_UI). |
Definition at line 451 of file lib_query.cc.
References BLI_assert, data, flag, IDWALK_DO_INTERNAL_RUNTIME_POINTERS, IDWALK_DO_LIBRARY_POINTER, IDWALK_INCLUDE_UI, and IDWALK_RECURSE.
Referenced by blender::ed::space_node::NodeClipboard::copy_add_node(), blender::ed::space_node::NodeClipboard::paste_update_node_id_references(), blender::ed::space_node::NodeClipboard::paste_validate_id_references(), and blender::bke::tests::TEST_F().
| uint64_t BKE_library_id_can_use_filter_id | ( | const ID * | owner_id, |
| const bool | include_ui, | ||
| const IDTypeInfo * | owner_id_type = nullptr ) |
Given the owner_id return the type of id_types it can use as a filter_id.
Definition at line 476 of file lib_query.cc.
References BKE_animdata_from_id(), BKE_idtype_get_info_from_id(), BLI_assert_unreachable, IDTypeInfo::dependencies_id_types, FILTER_ID_ALL, GS, ID_IS_OVERRIDE_LIBRARY_REAL, ID_SCR, ID::name, blender::bke::node_tree_from_id(), and ID::properties.
Referenced by BKE_library_id_can_use_idtype(), and libblock_remap_data().
| bool BKE_library_id_can_use_idtype | ( | ID * | owner_id, |
| short | id_type_used ) |
Say whether given owner_id may use (in any way) a data-block of id_type_used.
This is a 'simplified' abstract version of BKE_library_foreach_ID_link() above, quite useful to reduce useless iterations in some cases.
Definition at line 517 of file lib_query.cc.
References BKE_idtype_get_info_from_id(), BKE_idtype_idcode_to_idfilter(), and BKE_library_id_can_use_filter_id().
Referenced by BKE_library_ID_test_usages(), and library_ID_is_used().
| bool BKE_library_ID_is_indirectly_used | ( | Main * | bmain, |
| void * | idv ) |
Check whether given ID is used indirectly (i.e. by another linked ID).
Definition at line 628 of file lib_query.cc.
References library_ID_is_used().
Referenced by blender::ed::object::base_free_and_unlink(), blender::ed::object::base_free_and_unlink_no_indirect_check(), BKE_brush_delete(), blender::ed::outliner::id_delete_tag(), blender::ed::object::object_delete_exec(), blender::ed::outliner::outliner_batch_delete_object_tag(), blender::ed::outliner::outliner_id_relocate_invoke(), and blender::ed::outliner::outliner_object_delete_fn().
| bool BKE_library_ID_is_locally_used | ( | Main * | bmain, |
| void * | idv ) |
Check whether given ID is used locally (i.e. by another non-linked ID).
Definition at line 623 of file lib_query.cc.
References library_ID_is_used().
| void BKE_library_ID_test_usages | ( | Main * | bmain, |
| void * | idv, | ||
| bool * | r_is_used_local, | ||
| bool * | r_is_used_linked ) |
Combine BKE_library_ID_is_locally_used() and BKE_library_ID_is_indirectly_used() in a single call.
Definition at line 633 of file lib_query.cc.
References BKE_library_foreach_ID_link(), BKE_library_id_can_use_idtype(), BKE_main_lists_get(), IDUsersIter::count_direct, IDUsersIter::count_indirect, IDUsersIter::curr_id, foreach_libblock_id_users_callback(), GS, i, IDUsersIter::id, IDWALK_READONLY, ID::name, and ID::next.
Referenced by BKE_lib_id_make_local_generic_action_define().
Return the number of times given id_user uses/references id_used.
| id_user | the ID which is supposed to use (reference) id_used. |
| id_used | the ID which is supposed to be used (referenced) by id_user. |
Definition at line 575 of file lib_query.cc.
References BKE_library_foreach_ID_link(), IDUsersIter::count_direct, IDUsersIter::count_indirect, IDUsersIter::curr_id, foreach_libblock_id_users_callback(), IDUsersIter::id, and IDWALK_READONLY.
| void BKE_library_indirectly_used_data_tag_clear | ( | Main * | bmain | ) |
Untag linked data blocks used by other untagged linked data-blocks. Used to detect data-blocks that we can forcefully make local (instead of copying them to later get rid of original): All data-blocks we want to make local are tagged by caller, after this function has ran caller knows data-blocks still tagged can directly be made local, since they are only used by other data-blocks that will also be made fully local.
Definition at line 1142 of file lib_query.cc.
References BKE_library_foreach_ID_link(), BKE_main_lists_get(), foreach_libblock_used_linked_data_tag_clear_cb(), i, ID_IS_LINKED, ID_TAG_DOIT, IDWALK_READONLY, and LISTBASE_FOREACH.
| void BKE_library_unused_linked_data_set_tag | ( | Main * | bmain, |
| bool | do_init_tag ) |
Detect orphaned linked data blocks (i.e. linked data not used (directly or indirectly) in any way by any local data), including complex cases like "linked archipelagos", i.e. linked data-blocks that use each other in loops, which prevents their deletion by 'basic' usage checks.
| do_init_tag | if true, all linked data are checked, if false, only linked data-blocks already tagged with ID_TAG_DOIT are checked. |
Definition at line 1113 of file lib_query.cc.
References BKE_library_foreach_ID_link(), foreach_libblock_used_linked_data_tag_clear_cb(), FOREACH_MAIN_ID_BEGIN, FOREACH_MAIN_ID_END, ID_TAG_DOIT, ID_TAG_INDIRECT, IDWALK_READONLY, ID::lib, and ID::tag.
Re-usable function, use when replacing ID's.
Definition at line 440 of file lib_query.cc.
References id_us_ensure_real(), id_us_min(), id_us_plus(), IDWALK_CB_USER, and IDWALK_CB_USER_ONE.
|
static |
Definition at line 536 of file lib_query.cc.
References LibraryIDLinkCallbackData::cb_flag, IDUsersIter::count_direct, IDUsersIter::count_indirect, IDUsersIter::curr_id, IDUsersIter::id, LibraryIDLinkCallbackData::id_pointer, ID_TAG_EXTRAUSER, ID_TAG_EXTRAUSER_SET, IDWALK_CB_INDIRECT_USAGE, IDWALK_CB_LOOPBACK, IDWALK_RET_NOP, ID::name, printf, ID::tag, and LibraryIDLinkCallbackData::user_data.
Referenced by BKE_library_ID_test_usages(), BKE_library_ID_use_ID(), and library_ID_is_used().
|
static |
Definition at line 1088 of file lib_query.cc.
References LibraryIDLinkCallbackData::cb_flag, LibraryIDLinkCallbackData::id_pointer, ID_TAG_DOIT, IDWALK_CB_LOOPBACK, IDWALK_RET_NOP, LibraryIDLinkCallbackData::self_id, ID::tag, and LibraryIDLinkCallbackData::user_data.
Referenced by BKE_library_indirectly_used_data_tag_clear(), and BKE_library_unused_linked_data_set_tag().
|
static |
Certain corner-cases require to consider an ID as used, even if there are no 'real' reference-counting usages of these.
Definition at line 773 of file lib_query.cc.
References BLI_ghash_lookup(), data, MainIDRelationsEntry::from_ids, GS, ID_IM, ID_IS_LINKED, ID_OB, IMA_SRC_VIEWER, name, MainIDRelationsEntryItem::next, and Image::source.
Referenced by lib_query_unused_ids_tag(), and lib_query_unused_ids_tag_recurse().
|
static |
Definition at line 936 of file lib_query.cc.
References BKE_main_relations_tag_set(), BLI_assert, BLI_ghash_lookup(), CLOG_WARN, data, FOREACH_MAIN_ID_BEGIN, FOREACH_MAIN_ID_END, FOREACH_MAIN_LISTBASE_ID_BEGIN, FOREACH_MAIN_LISTBASE_ID_END, ID_IS_LINKED, lib_query_unused_ids_has_exception_user(), lib_query_unused_ids_tag_id(), lib_query_unused_ids_tag_recurse(), lib_query_unused_ids_untag_id(), LOG, MAINIDRELATIONS_ENTRY_TAGS_INPROGRESS, MAINIDRELATIONS_ENTRY_TAGS_PROCESSED, MainIDRelationsEntry::tags, and ID::us.
Referenced by BKE_lib_query_unused_ids_amounts(), and BKE_lib_query_unused_ids_tag().
|
static |
Definition at line 728 of file lib_query.cc.
References BKE_idtype_idcode_to_index(), data, GS, ID_IS_LINKED, INDEX_ID_NULL, and ID::name.
Referenced by lib_query_unused_ids_tag(), and lib_query_unused_ids_tag_recurse().
|
static |
Returns true if given ID is detected as part of at least one dependency loop, false otherwise.
Definition at line 823 of file lib_query.cc.
References BKE_id_owner_get(), BKE_idtype_get_info_from_id(), BLI_assert, BLI_ghash_lookup(), data, ID::flag, IDTypeInfo::flags, MainIDRelationsEntry::from_ids, ID_FLAG_EMBEDDED_DATA, ID_FLAG_FAKEUSER, ID_IS_LINKED, IDTYPE_FLAGS_NEVER_UNUSED, IDWALK_CB_EMBEDDED, IDWALK_CB_EMBEDDED_NOT_OWNING, IDWALK_CB_LOOPBACK, IDWALK_CB_USER, IDWALK_CB_USER_ONE, lib_query_unused_ids_has_exception_user(), lib_query_unused_ids_tag_id(), lib_query_unused_ids_tag_recurse(), MAINIDRELATIONS_ENTRY_TAGS_INPROGRESS, MAINIDRELATIONS_ENTRY_TAGS_PROCESSED, MainIDRelationsEntryItem::next, and MainIDRelationsEntry::tags.
Referenced by lib_query_unused_ids_tag(), and lib_query_unused_ids_tag_recurse().
|
static |
Definition at line 749 of file lib_query.cc.
References BKE_idtype_idcode_to_index(), BLI_assert, data, GS, ID_IS_LINKED, INDEX_ID_NULL, and name.
Referenced by lib_query_unused_ids_tag().
|
static |
Definition at line 208 of file lib_query.cc.
References BLI_gset_free(), BLI_LINKSTACK_FREE, and data.
Referenced by library_foreach_ID_link().
|
static |
Definition at line 217 of file lib_query.cc.
References BKE_animdata_foreach_id(), BKE_animdata_from_id(), BKE_id_owner_get(), BKE_idtype_get_info_from_id(), BKE_lib_query_foreachid_iter_stop(), BKE_lib_query_foreachid_process(), BLI_assert, BLI_ghash_lookup(), BLI_ghashutil_ptrcmp(), BLI_ghashutil_ptrhash(), BLI_gset_add(), BLI_gset_new(), BLI_LINKSTACK_INIT, BLI_LINKSTACK_POP, LibraryForeachIDData::bmain, CALLBACK_INVOKE, CALLBACK_INVOKE_ID, LibraryForeachIDData::cb_flag, LibraryForeachIDData::cb_flag_clear, data, ELEM, flag, ID::flag, MainIDRelations::flag, IDTypeInfo::foreach_id, IDOverrideLibrary::hierarchy_root, ID_FLAG_EMBEDDED_DATA, ID_IS_LINKED, ID_TAG_NO_USER_REFCOUNT, IDP_foreach_property(), IDP_TYPE_FILTER_ID, IDWALK_CB_DIRECT_WEAK_LINK, IDWALK_CB_INDIRECT_USAGE, IDWALK_CB_INTERNAL, IDWALK_CB_LOOPBACK, IDWALK_CB_NEVER_SELF, IDWALK_CB_NOP, IDWALK_CB_OVERRIDE_LIBRARY_REFERENCE, IDWALK_CB_USER, IDWALK_CB_USER_ONE, IDWALK_DO_DEPRECATED_POINTERS, IDWALK_DO_INTERNAL_RUNTIME_POINTERS, IDWALK_DO_LIBRARY_POINTER, IDWALK_IGNORE_MISSING_OWNER_ID, IDWALK_INCLUDE_UI, IDWALK_NO_ORIG_POINTERS_ACCESS, IDWALK_READONLY, IDWALK_RECURSE, ID::lib, library_foreach_ID_data_cleanup(), LISTBASE_FOREACH, MAINIDRELATIONS_INCLUDE_UI, ID::newid, MainIDRelationsEntryItem::next, ID::orig_id, ID::override_library, ID::properties, IDOverrideLibrary::properties, IDOverrideLibrary::reference, Main::relations, MainIDRelations::relations_from_pointers, ID::system_properties, and MainIDRelationsEntry::to_ids.
Referenced by BKE_library_foreach_ID_embedded(), and BKE_library_foreach_ID_link().
|
static |
Definition at line 590 of file lib_query.cc.
References BKE_library_foreach_ID_link(), BKE_library_id_can_use_idtype(), BKE_main_lists_get(), IDUsersIter::count_direct, IDUsersIter::count_indirect, IDUsersIter::curr_id, foreach_libblock_id_users_callback(), GS, i, IDUsersIter::id, IDWALK_READONLY, ID::name, and ID::next.
Referenced by BKE_library_ID_is_indirectly_used(), and BKE_library_ID_is_locally_used().
|
static |
Definition at line 29 of file lib_query.cc.