131 #define MAX_IDPROP_NAME 64
132 #define DEFAULT_ALLOC_FOR_NULL_STRINGS 64
146 #define IDP_NUMTYPES 10
337 #define MAX_ID_NAME 66
547 #define PRV_DEFERRED_DATA(prv) \
548 (CHECK_TYPE_INLINE(prv, PreviewImage *), \
549 BLI_assert((prv)->tag & PRV_TAG_DEFFERED), \
552 #define ID_FAKE_USERS(id) ((((const ID *)id)->flag & LIB_FAKEUSER) ? 1 : 0)
553 #define ID_REAL_USERS(id) (((const ID *)id)->us - ID_FAKE_USERS(id))
554 #define ID_EXTRA_USERS(id) (((const ID *)id)->tag & LIB_TAG_EXTRAUSER ? 1 : 0)
556 #define ID_CHECK_UNDO(id) \
557 ((GS((id)->name) != ID_SCR) && (GS((id)->name) != ID_WM) && (GS((id)->name) != ID_WS))
559 #define ID_BLEND_PATH(_bmain, _id) \
560 ((_id)->lib ? (_id)->lib->filepath_abs : BKE_main_blendfile_path((_bmain)))
561 #define ID_BLEND_PATH_FROM_GLOBAL(_id) \
562 ((_id)->lib ? (_id)->lib->filepath_abs : BKE_main_blendfile_path_from_global())
564 #define ID_MISSING(_id) ((((const ID *)(_id))->tag & LIB_TAG_MISSING) != 0)
566 #define ID_IS_LINKED(_id) (((const ID *)(_id))->lib != NULL)
570 #define ID_IS_OVERRIDABLE_LIBRARY_HIERARCHY(_id) \
571 (ID_IS_LINKED(_id) && !ID_MISSING(_id) && \
572 (BKE_idtype_get_info_from_id((const ID *)(_id))->flags & IDTYPE_FLAGS_NO_LIBLINKING) == 0 && \
573 !ELEM(GS(((ID *)(_id))->name), ID_SCE))
574 #define ID_IS_OVERRIDABLE_LIBRARY(_id) \
575 (ID_IS_OVERRIDABLE_LIBRARY_HIERARCHY((_id)) && (((const ID *)(_id))->tag & LIB_TAG_EXTERN) != 0)
581 #define ID_IS_OVERRIDE_LIBRARY_REAL(_id) \
582 (((const ID *)(_id))->override_library != NULL && \
583 ((const ID *)(_id))->override_library->reference != NULL)
585 #define ID_IS_OVERRIDE_LIBRARY_VIRTUAL(_id) \
586 ((((const ID *)(_id))->flag & LIB_EMBEDDED_DATA_LIB_OVERRIDE) != 0)
588 #define ID_IS_OVERRIDE_LIBRARY(_id) \
589 (ID_IS_OVERRIDE_LIBRARY_REAL(_id) || ID_IS_OVERRIDE_LIBRARY_VIRTUAL(_id))
591 #define ID_IS_OVERRIDE_LIBRARY_HIERARCHY_ROOT(_id) \
592 (!ID_IS_OVERRIDE_LIBRARY_REAL(_id) || \
593 ((ID *)(_id))->override_library->hierarchy_root == ((ID *)(_id)))
595 #define ID_IS_OVERRIDE_LIBRARY_TEMPLATE(_id) \
596 (((ID *)(_id))->override_library != NULL && ((ID *)(_id))->override_library->reference == NULL)
598 #define ID_IS_ASSET(_id) (((const ID *)(_id))->asset_data != NULL)
601 #define ID_TYPE_IS_COW(_id_type) \
602 (!ELEM(_id_type, ID_LI, ID_IP, ID_SCR, ID_VF, ID_BR, ID_WM, ID_PAL, ID_PC, ID_WS, ID_IM))
606 #define ID_TYPE_SUPPORTS_PARAMS_WITHOUT_COW(id_type) ELEM(id_type, ID_ME)
608 #define ID_TYPE_IS_DEPRECATED(id_type) ELEM(id_type, ID_IP)
614 (CHECK_TYPE_ANY(a, char *, const char *, char[66], const char[66]), \
615 (ID_Type)(*((const short *)(a))))
617 #define ID_NEW_SET(_id, _idn) \
618 (((ID *)(_id))->newid = (ID *)(_idn), \
619 ((ID *)(_id))->newid->tag |= LIB_TAG_NEW, \
620 (void *)((ID *)(_id))->newid)
621 #define ID_NEW_REMAP(a) \
622 if ((a) && (a)->id.newid) { \
623 (a) = (void *)(a)->id.newid; \
899 #define FILTER_ID_AC (1ULL << 0)
900 #define FILTER_ID_AR (1ULL << 1)
901 #define FILTER_ID_BR (1ULL << 2)
902 #define FILTER_ID_CA (1ULL << 3)
903 #define FILTER_ID_CU_LEGACY (1ULL << 4)
904 #define FILTER_ID_GD (1ULL << 5)
905 #define FILTER_ID_GR (1ULL << 6)
906 #define FILTER_ID_IM (1ULL << 7)
907 #define FILTER_ID_LA (1ULL << 8)
908 #define FILTER_ID_LS (1ULL << 9)
909 #define FILTER_ID_LT (1ULL << 10)
910 #define FILTER_ID_MA (1ULL << 11)
911 #define FILTER_ID_MB (1ULL << 12)
912 #define FILTER_ID_MC (1ULL << 13)
913 #define FILTER_ID_ME (1ULL << 14)
914 #define FILTER_ID_MSK (1ULL << 15)
915 #define FILTER_ID_NT (1ULL << 16)
916 #define FILTER_ID_OB (1ULL << 17)
917 #define FILTER_ID_PAL (1ULL << 18)
918 #define FILTER_ID_PC (1ULL << 19)
919 #define FILTER_ID_SCE (1ULL << 20)
920 #define FILTER_ID_SPK (1ULL << 21)
921 #define FILTER_ID_SO (1ULL << 22)
922 #define FILTER_ID_TE (1ULL << 23)
923 #define FILTER_ID_TXT (1ULL << 24)
924 #define FILTER_ID_VF (1ULL << 25)
925 #define FILTER_ID_WO (1ULL << 26)
926 #define FILTER_ID_PA (1ULL << 27)
927 #define FILTER_ID_CF (1ULL << 28)
928 #define FILTER_ID_WS (1ULL << 29)
929 #define FILTER_ID_LP (1ULL << 31)
930 #define FILTER_ID_CV (1ULL << 32)
931 #define FILTER_ID_PT (1ULL << 33)
932 #define FILTER_ID_VO (1ULL << 34)
933 #define FILTER_ID_SIM (1ULL << 35)
934 #define FILTER_ID_KE (1ULL << 36)
935 #define FILTER_ID_SCR (1ULL << 37)
936 #define FILTER_ID_WM (1ULL << 38)
937 #define FILTER_ID_LI (1ULL << 39)
939 #define FILTER_ID_ALL \
940 (FILTER_ID_AC | FILTER_ID_AR | FILTER_ID_BR | FILTER_ID_CA | FILTER_ID_CU_LEGACY | \
941 FILTER_ID_GD | FILTER_ID_GR | FILTER_ID_IM | FILTER_ID_LA | FILTER_ID_LS | FILTER_ID_LT | \
942 FILTER_ID_MA | FILTER_ID_MB | FILTER_ID_MC | FILTER_ID_ME | FILTER_ID_MSK | FILTER_ID_NT | \
943 FILTER_ID_OB | FILTER_ID_PA | FILTER_ID_PAL | FILTER_ID_PC | FILTER_ID_SCE | FILTER_ID_SPK | \
944 FILTER_ID_SO | FILTER_ID_TE | FILTER_ID_TXT | FILTER_ID_VF | FILTER_ID_WO | FILTER_ID_CF | \
945 FILTER_ID_WS | FILTER_ID_LP | FILTER_ID_CV | FILTER_ID_PT | FILTER_ID_VO | FILTER_ID_SIM | \
946 FILTER_ID_KE | FILTER_ID_SCR | FILTER_ID_WM | FILTER_ID_LI)
struct IDOverrideLibraryProperty IDOverrideLibraryProperty
@ IDP_TYPE_FILTER_IDPARRAY
@ IDOVERRIDE_LIBRARY_FLAG_LOCKED
@ IDOVERRIDE_LIBRARY_FLAG_MANDATORY
@ IDOVERRIDE_LIBRARY_FLAG_IDPOINTER_MATCH_REFERENCE
struct IDOverrideLibraryPropertyOperation IDOverrideLibraryPropertyOperation
struct IDPropertyUIData IDPropertyUIData
struct Library_Runtime Library_Runtime
@ PRV_TAG_DEFFERED_DELETE
@ PRV_TAG_DEFFERED_RENDERING
@ ID_RECALC_AUDIO_LISTENER
@ ID_RECALC_COPY_ON_WRITE
@ ID_RECALC_GEOMETRY_ALL_MODES
@ ID_RECALC_SEQUENCER_STRIPS
@ ID_RECALC_ANIMATION_NO_FLUSH
struct IDPropertyUIDataID IDPropertyUIDataID
struct IDOverrideLibrary IDOverrideLibrary
@ IDP_FLAG_OVERRIDELIBRARY_LOCAL
@ IDP_FLAG_OVERRIDABLE_LIBRARY
struct LibraryWeakReference LibraryWeakReference
struct DrawDataList DrawDataList
struct ID_Runtime ID_Runtime
void(* DrawDataFreeCb)(struct DrawData *engine_data)
struct IDPropertyUIDataFloat IDPropertyUIDataFloat
struct IDOverrideLibraryRuntime IDOverrideLibraryRuntime
@ 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
@ 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 PreviewImage PreviewImage
@ LIB_LIB_OVERRIDE_RESYNC_LEFTOVER
@ LIB_EMBEDDED_DATA_LIB_OVERRIDE
void(* DrawDataInitCb)(struct DrawData *engine_data)
@ IDOVERRIDE_LIBRARY_RUNTIME_TAG_NEEDS_RELOAD
struct IDPropertyData IDPropertyData
struct IDProperty IDProperty
@ ID_REMAP_IS_LINKED_DIRECT
@ ID_REMAP_IS_USER_ONE_SKIPPED
@ LIBRARY_TAG_RESYNC_REQUIRED
@ IDOVERRIDE_LIBRARY_TAG_UNUSED
struct IDPropertyUIDataString IDPropertyUIDataString
struct IDPropertyUIDataInt IDPropertyUIDataInt
@ IDOVERRIDE_LIBRARY_FLAG_NO_HIERARCHY
@ IDOVERRIDE_LIBRARY_FLAG_SYSTEM_DEFINED
struct ID_Runtime_Remap ID_Runtime_Remap
Enumerations for DNA_ID.h.
These structs are the foundation for all linked lists in the library system.
struct GPUTexture GPUTexture
SyclQueue void void size_t num_bytes void
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
struct ID * hierarchy_root
IDOverrideLibraryRuntime * runtime
IDPropertyUIData * ui_data
struct AssetMetaData * asset_data
int recalc_after_undo_push
IDOverrideLibrary * override_library
unsigned int session_uuid
int recalc_up_to_undo_push
struct LibraryWeakReference * library_weak_reference
struct ID_Runtime runtime
char library_filepath[1024]
struct UniqueName_Map * name_map
struct PackedFile * packedfile
struct Library_Runtime runtime
struct FileData * filedata
short changed_timestamp[2]
struct GPUTexture * gputexture[2]