92 #define MAX_IDPROP_NAME 64
93 #define DEFAULT_ALLOC_FOR_NULL_STRINGS 64
269 #define MAX_ID_NAME 66
407 #define PRV_DEFERRED_DATA(prv) \
408 (CHECK_TYPE_INLINE(prv, PreviewImage *), \
409 BLI_assert((prv)->tag & PRV_TAG_DEFFERED), \
412 #define ID_FAKE_USERS(id) ((((const ID *)id)->flag & LIB_FAKEUSER) ? 1 : 0)
413 #define ID_REAL_USERS(id) (((const ID *)id)->us - ID_FAKE_USERS(id))
414 #define ID_EXTRA_USERS(id) (((const ID *)id)->tag & LIB_TAG_EXTRAUSER ? 1 : 0)
416 #define ID_CHECK_UNDO(id) \
417 ((GS((id)->name) != ID_SCR) && (GS((id)->name) != ID_WM) && (GS((id)->name) != ID_WS))
419 #define ID_BLEND_PATH(_bmain, _id) \
420 ((_id)->lib ? (_id)->lib->filepath_abs : BKE_main_blendfile_path((_bmain)))
421 #define ID_BLEND_PATH_FROM_GLOBAL(_id) \
422 ((_id)->lib ? (_id)->lib->filepath_abs : BKE_main_blendfile_path_from_global())
424 #define ID_MISSING(_id) ((((const ID *)(_id))->tag & LIB_TAG_MISSING) != 0)
426 #define ID_IS_LINKED(_id) (((const ID *)(_id))->lib != NULL)
430 #define ID_IS_OVERRIDABLE_LIBRARY(_id) \
431 (ID_IS_LINKED(_id) && !ID_MISSING(_id) && (((const ID *)(_id))->tag & LIB_TAG_EXTERN) != 0 && \
432 (BKE_idtype_get_info_from_id((const ID *)(_id))->flags & IDTYPE_FLAGS_NO_LIBLINKING) == 0)
438 #define ID_IS_OVERRIDE_LIBRARY_REAL(_id) \
439 (((const ID *)(_id))->override_library != NULL && \
440 ((const ID *)(_id))->override_library->reference != NULL)
442 #define ID_IS_OVERRIDE_LIBRARY_VIRTUAL(_id) \
443 ((((const ID *)(_id))->flag & LIB_EMBEDDED_DATA_LIB_OVERRIDE) != 0)
445 #define ID_IS_OVERRIDE_LIBRARY(_id) \
446 (ID_IS_OVERRIDE_LIBRARY_REAL(_id) || ID_IS_OVERRIDE_LIBRARY_VIRTUAL(_id))
448 #define ID_IS_OVERRIDE_LIBRARY_TEMPLATE(_id) \
449 (((ID *)(_id))->override_library != NULL && ((ID *)(_id))->override_library->reference == NULL)
451 #define ID_IS_ASSET(_id) (((const ID *)(_id))->asset_data != NULL)
454 #define ID_TYPE_IS_COW(_id_type) \
455 (!ELEM(_id_type, ID_LI, ID_IP, ID_SCR, ID_VF, ID_BR, ID_WM, ID_PAL, ID_PC, ID_WS, ID_IM))
461 (CHECK_TYPE_ANY(a, char *, const char *, char[66], const char[66]), \
462 (ID_Type)(*((const short *)(a))))
464 #define ID_NEW_SET(_id, _idn) \
465 (((ID *)(_id))->newid = (ID *)(_idn), \
466 ((ID *)(_id))->newid->tag |= LIB_TAG_NEW, \
467 (void *)((ID *)(_id))->newid)
468 #define ID_NEW_REMAP(a) \
469 if ((a) && (a)->id.newid) { \
470 (a) = (void *)(a)->id.newid; \
705 #define FILTER_ID_AC (1ULL << 0)
706 #define FILTER_ID_AR (1ULL << 1)
707 #define FILTER_ID_BR (1ULL << 2)
708 #define FILTER_ID_CA (1ULL << 3)
709 #define FILTER_ID_CU (1ULL << 4)
710 #define FILTER_ID_GD (1ULL << 5)
711 #define FILTER_ID_GR (1ULL << 6)
712 #define FILTER_ID_IM (1ULL << 7)
713 #define FILTER_ID_LA (1ULL << 8)
714 #define FILTER_ID_LS (1ULL << 9)
715 #define FILTER_ID_LT (1ULL << 10)
716 #define FILTER_ID_MA (1ULL << 11)
717 #define FILTER_ID_MB (1ULL << 12)
718 #define FILTER_ID_MC (1ULL << 13)
719 #define FILTER_ID_ME (1ULL << 14)
720 #define FILTER_ID_MSK (1ULL << 15)
721 #define FILTER_ID_NT (1ULL << 16)
722 #define FILTER_ID_OB (1ULL << 17)
723 #define FILTER_ID_PAL (1ULL << 18)
724 #define FILTER_ID_PC (1ULL << 19)
725 #define FILTER_ID_SCE (1ULL << 20)
726 #define FILTER_ID_SPK (1ULL << 21)
727 #define FILTER_ID_SO (1ULL << 22)
728 #define FILTER_ID_TE (1ULL << 23)
729 #define FILTER_ID_TXT (1ULL << 24)
730 #define FILTER_ID_VF (1ULL << 25)
731 #define FILTER_ID_WO (1ULL << 26)
732 #define FILTER_ID_PA (1ULL << 27)
733 #define FILTER_ID_CF (1ULL << 28)
734 #define FILTER_ID_WS (1ULL << 29)
735 #define FILTER_ID_LP (1ULL << 31)
736 #define FILTER_ID_HA (1ULL << 32)
737 #define FILTER_ID_PT (1ULL << 33)
738 #define FILTER_ID_VO (1ULL << 34)
739 #define FILTER_ID_SIM (1ULL << 35)
741 #define FILTER_ID_ALL \
742 (FILTER_ID_AC | FILTER_ID_AR | FILTER_ID_BR | FILTER_ID_CA | FILTER_ID_CU | FILTER_ID_GD | \
743 FILTER_ID_GR | FILTER_ID_IM | FILTER_ID_LA | FILTER_ID_LS | FILTER_ID_LT | FILTER_ID_MA | \
744 FILTER_ID_MB | FILTER_ID_MC | FILTER_ID_ME | FILTER_ID_MSK | FILTER_ID_NT | FILTER_ID_OB | \
745 FILTER_ID_PA | FILTER_ID_PAL | FILTER_ID_PC | FILTER_ID_SCE | FILTER_ID_SPK | FILTER_ID_SO | \
746 FILTER_ID_TE | FILTER_ID_TXT | FILTER_ID_VF | FILTER_ID_WO | FILTER_ID_CF | FILTER_ID_WS | \
747 FILTER_ID_LP | FILTER_ID_HA | FILTER_ID_PT | FILTER_ID_VO | FILTER_ID_SIM)
struct IDOverrideLibraryProperty IDOverrideLibraryProperty
struct IDOverrideLibraryPropertyOperation IDOverrideLibraryPropertyOperation
@ ID_RECALC_AUDIO_LISTENER
@ ID_RECALC_COPY_ON_WRITE
@ ID_RECALC_SEQUENCER_STRIPS
@ ID_RECALC_ANIMATION_NO_FLUSH
struct IDOverrideLibrary IDOverrideLibrary
@ LIB_TAG_COPIED_ON_WRITE_EVAL_RESULT
@ LIB_TAG_NO_USER_REFCOUNT
@ LIB_TAG_COPIED_ON_WRITE
@ LIB_TAG_UNDO_OLD_ID_REUSED
@ LIB_TAG_OVERRIDE_LIBRARY_REFOK
@ LIB_TAG_LIB_OVERRIDE_NEED_RESYNC
@ LIB_TAG_OVERRIDE_LIBRARY_AUTOREFRESH
@ LIB_TAG_ID_LINK_PLACEHOLDER
struct DrawDataList DrawDataList
@ LIB_LIB_OVERRIDE_RESYNC_LEFTOVER
@ LIB_EMBEDDED_DATA_LIB_OVERRIDE
void(* DrawDataFreeCb)(struct DrawData *engine_data)
@ IDOVERRIDE_LIBRARY_RUNTIME_TAG_NEEDS_RELOAD
struct IDOverrideLibraryRuntime IDOverrideLibraryRuntime
@ IDP_TYPE_FILTER_IDPARRAY
@ IDOVERRIDE_LIBRARY_FLAG_LOCKED
@ IDOVERRIDE_LIBRARY_FLAG_MANDATORY
@ IDOVERRIDE_LIBRARY_FLAG_IDPOINTER_MATCH_REFERENCE
@ IDOVERRIDE_LIBRARY_TAG_UNUSED
struct PreviewImage PreviewImage
void(* DrawDataInitCb)(struct DrawData *engine_data)
struct IDPropertyData IDPropertyData
@ IDP_FLAG_OVERRIDELIBRARY_LOCAL
@ IDP_FLAG_OVERRIDABLE_LIBRARY
struct IDProperty IDProperty
@ PRV_TAG_DEFFERED_DELETE
@ PRV_TAG_DEFFERED_RENDERING
@ IDOVERRIDE_LIBRARY_OP_MULTIPLY
@ IDOVERRIDE_LIBRARY_OP_INSERT_AFTER
@ IDOVERRIDE_LIBRARY_OP_NOOP
@ IDOVERRIDE_LIBRARY_OP_SUBTRACT
@ IDOVERRIDE_LIBRARY_OP_ADD
@ IDOVERRIDE_LIBRARY_OP_INSERT_BEFORE
@ IDOVERRIDE_LIBRARY_OP_REPLACE
Enumerations for DNA_ID.h.
These structs are the foundation for all linked lists in the library system.
struct GPUTexture GPUTexture
struct DrawEngineType * engine_type
struct IDOverrideLibraryPropertyOperation * next
struct IDOverrideLibraryPropertyOperation * prev
int subitem_reference_index
char * subitem_local_name
char * subitem_reference_name
struct IDOverrideLibraryProperty * prev
unsigned int rna_prop_type
struct IDOverrideLibraryProperty * next
struct GHash * rna_path_to_override_properties
IDOverrideLibraryRuntime * runtime
struct AssetMetaData * asset_data
int recalc_after_undo_push
IDOverrideLibrary * override_library
unsigned int session_uuid
int recalc_up_to_undo_push
struct PackedFile * packedfile
struct FileData * filedata
short changed_timestamp[2]
struct GPUTexture * gputexture[2]