|
Blender V4.5
|
#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 = {"bke.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(), curve_foreach_id(), file_foreach_id(), graph_foreach_id(), image_foreach_id(), ipo_foreach_id(), lattice_foreach_id(), light_foreach_id(), material_foreach_id(), mesh_foreach_id(), metaball_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(), shapekey_foreach_id(), sound_foreach_id(), strip_foreach_member_id_cb(), texture_foreach_id(), view3d_foreach_id(), window_manager_foreach_id(), and world_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 ) |
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, |
| const int | tag, | ||
| LibQueryUnusedIDsData & | parameters ) |
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(), BLO_expand_main(), bpy_user_map(), blender::deg::deg_validate_eval_copy_datablock(), blender::nodes::geo_eval_log::GeoTreeLog::ensure_node_warnings(), 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(), 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 ) |
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. */ void BKE_lib_query_unused_ids_amounts(Main *bmain, LibQueryUnusedIDsData ¶meters); /** 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. */ void BKE_lib_query_unused_ids_tag(Main *bmain, int tag, LibQueryUnusedIDsData ¶meters); |
/** 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, 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, and INDEX_ID_NULL.
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.