51 #define INIT_TYPE(_id_code) \
53 BLI_assert(IDType_##_id_code.main_listbase_index == INDEX_##_id_code); \
54 id_types[INDEX_##_id_code] = &IDType_##_id_code; \
117 id_types[id_index]->name[0] !=
'\0') {
208 #define CASE_IDFILTER(_id) \
210 return FILTER_ID_##_id
212 #define CASE_IDFILTER_NONE(_id) \
263 #undef CASE_IDFILTER_NONE
268 #define CASE_IDFILTER(_id) \
269 case FILTER_ID_##_id: \
272 #define CASE_IDFILTER_NONE(_id) (void)0
321 #undef CASE_IDFILTER_NONE
326 #define CASE_IDINDEX(_id) \
328 return INDEX_ID_##_id
385 #define CASE_IDCODE(_id) \
386 case INDEX_ID_##_id: \
458 if (nodetree !=
NULL) {
460 if (type_info ==
NULL) {
@ IDTYPE_FLAGS_APPEND_IS_REUSABLE
@ IDTYPE_FLAGS_ONLY_APPEND
@ IDTYPE_FLAGS_NO_LIBLINKING
IDTypeInfo IDType_ID_LINK_PLACEHOLDER
void(* IDTypeForeachCacheFunctionCallback)(struct ID *id, const struct IDCacheKey *cache_key, void **cache_p, uint flags, void *user_data)
struct bNodeTree * ntreeFromID(struct ID *id)
#define BLI_assert_unreachable()
size_t BLI_ghashutil_combine_hash(size_t hash_a, size_t hash_b)
unsigned int BLI_ghashutil_uinthash(unsigned int key)
#define BLT_I18NCONTEXT_DEFAULT
ID and Library types, which are fundamental for sdna.
#define ID_LINK_PLACEHOLDER
Object groups, one object can be in many groups at once.
Read Guarded memory(de)allocation.
const char * BKE_idtype_idcode_to_name_plural(const short idcode)
#define INIT_TYPE(_id_code)
#define CASE_IDINDEX(_id)
short BKE_idtype_idcode_from_idfilter(const uint64_t idfilter)
const IDTypeInfo * BKE_idtype_get_info_from_id(const ID *id)
const char * BKE_idtype_idcode_to_translation_context(const short idcode)
bool BKE_idtype_cache_key_cmp(const void *key_a_v, const void *key_b_v)
short BKE_idtype_idcode_from_index(const int index)
#define CASE_IDFILTER_NONE(_id)
bool BKE_idtype_idcode_is_only_appendable(const short idcode)
bool BKE_idtype_idcode_is_linkable(const short idcode)
bool BKE_idtype_idcode_is_valid(const short idcode)
static const IDTypeInfo * idtype_get_info_from_name(const char *idtype_name)
#define CASE_IDFILTER(_id)
void BKE_idtype_id_foreach_cache(struct ID *id, IDTypeForeachCacheFunctionCallback function_callback, void *user_data)
short BKE_idtype_idcode_iter_step(int *index)
const char * BKE_idtype_idcode_to_name(const short idcode)
const IDTypeInfo * BKE_idtype_get_info_from_idcode(const short id_code)
short BKE_idtype_idcode_from_name(const char *idtype_name)
static void id_type_init(void)
bool BKE_idtype_idcode_append_is_reusable(const short idcode)
static IDTypeInfo * id_types[INDEX_ID_MAX]
int BKE_idtype_idcode_to_index(const short idcode)
uint BKE_idtype_cache_key_hash(const void *key_v)
uint64_t BKE_idtype_idcode_to_idfilter(const short idcode)
void BKE_idtype_init(void)
unsigned __int64 uint64_t
unsigned int id_session_uuid
IDTypeForeachCacheFunction foreach_cache
const char * translation_context
struct Collection * master_collection