246#define BKE_LIB_FOREACHID_PROCESS_ID_NOCHECK(data_, id_, cb_flag_) \
248 BKE_lib_query_foreachid_process((data_), (ID **)&(id_), (cb_flag_)); \
249 if (BKE_lib_query_foreachid_iter_stop((data_))) { \
255#define BKE_LIB_FOREACHID_PROCESS_ID(data_, id_, cb_flag_) \
257 CHECK_TYPE_ANY((id_), ID *, void *); \
258 BKE_LIB_FOREACHID_PROCESS_ID_NOCHECK(data_, id_, cb_flag_); \
262#define BKE_LIB_FOREACHID_PROCESS_IDSUPER_P(data_, id_super_p_, cb_flag_) \
264 CHECK_TYPE(&((*(id_super_p_))->id), ID *); \
265 BKE_lib_query_foreachid_process((data_), (ID **)(id_super_p_), (cb_flag_)); \
266 if (BKE_lib_query_foreachid_iter_stop((data_))) { \
272#define BKE_LIB_FOREACHID_PROCESS_IDSUPER(data_, id_super_, cb_flag_) \
274 BKE_LIB_FOREACHID_PROCESS_IDSUPER_P(data_, &(id_super_), cb_flag_); \
278#define BKE_LIB_FOREACHID_PROCESS_FUNCTION_CALL(data_, func_call_) \
281 if (BKE_lib_query_foreachid_iter_stop((data_))) { \
379 const bool include_ui,
396 bool *r_is_used_local,
397 bool *r_is_used_linked);
void BKE_lib_query_foreachid_process(LibraryForeachIDData *data, ID **id_pp, int cb_flag)
void BKE_library_ID_test_usages(Main *bmain, void *idv, bool *r_is_used_local, bool *r_is_used_linked)
@ IDWALK_RET_STOP_RECURSION
void BKE_lib_query_unused_ids_tag(Main *bmain, int tag, LibQueryUnusedIDsData ¶meters)
void BKE_library_update_ID_link_user(ID *id_dst, ID *id_src, int cb_flag)
bool BKE_library_ID_is_indirectly_used(Main *bmain, void *idv)
void BKE_library_foreach_ID_embedded(LibraryForeachIDData *data, ID **id_pp)
@ IDWALK_CB_OVERRIDE_LIBRARY_NOT_OVERRIDABLE
@ IDWALK_CB_EMBEDDED_NOT_OWNING
@ IDWALK_CB_DIRECT_WEAK_LINK
@ IDWALK_CB_OVERRIDE_LIBRARY_HIERARCHY_DEFAULT
@ IDWALK_CB_READFILE_IGNORE
@ IDWALK_CB_OVERRIDE_LIBRARY_REFERENCE
@ IDWALK_CB_INDIRECT_USAGE
int(LibraryIDLinkCallbackData *cb_data) LibraryIDLinkCallback
int BKE_lib_query_foreachid_process_callback_flag_override(LibraryForeachIDData *data, int cb_flag, bool do_replace)
int BKE_lib_query_foreachid_process_flags_get(const LibraryForeachIDData *data)
Main * BKE_lib_query_foreachid_process_main_get(const LibraryForeachIDData *data)
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 int flag)
void BKE_lib_query_unused_ids_amounts(Main *bmain, LibQueryUnusedIDsData ¶meters)
bool BKE_library_id_can_use_idtype(ID *owner_id, short id_type_used)
void BKE_library_foreach_ID_link(Main *bmain, ID *id, blender::FunctionRef< LibraryIDLinkCallback > callback, void *user_data, int flag)
@ IDWALK_DO_DEPRECATED_POINTERS
@ IDWALK_IGNORE_MISSING_OWNER_ID
@ IDWALK_DO_LIBRARY_POINTER
@ IDWALK_DO_INTERNAL_RUNTIME_POINTERS
@ IDWALK_NO_ORIG_POINTERS_ACCESS
@ IDWALK_IGNORE_EMBEDDED_ID
int BKE_library_ID_use_ID(ID *id_user, ID *id_used)
void BKE_lib_query_idpropertiesForeachIDLink_callback(IDProperty *id_prop, void *user_data)
bool BKE_lib_query_foreachid_iter_stop(const LibraryForeachIDData *data)
void BKE_library_unused_linked_data_set_tag(Main *bmain, bool do_init_tag)
void BKE_library_indirectly_used_data_tag_clear(Main *bmain)
uint64_t BKE_library_id_can_use_filter_id(const ID *owner_id, const bool include_ui, const IDTypeInfo *owner_id_type=nullptr)
bool BKE_library_ID_is_locally_used(Main *bmain, void *idv)
ID and Library types, which are fundamental for SDNA.
DEGForeachIDComponentCallback callback
draw_view push_constant(Type::INT, "radiance_src") .push_constant(Type capture_info_buf storage_buf(1, Qualifier::READ, "ObjectBounds", "bounds_buf[]") .push_constant(Type draw_view int
double parameters[NUM_PARAMETERS]
unsigned __int64 uint64_t
std::array< int, INDEX_ID_MAX > num_total
std::array< int, INDEX_ID_MAX > num_linked
std::array< int, INDEX_ID_MAX > num_local
blender::FunctionRef< bool(ID *id)> filter_fn