diff options
author | Bastien Montagne <bastien@blender.org> | 2020-07-23 12:45:44 +0300 |
---|---|---|
committer | Bastien Montagne <bastien@blender.org> | 2020-07-23 12:45:44 +0300 |
commit | 65968911217380a7a594f8684150b5fa01866d6a (patch) | |
tree | 8f81e83c57ce5c3310f8f93a1677ac555b324d71 /source/blender/makesdna | |
parent | 8a5da947dc66beb8d11acc6222fd6ec38d0d5bd7 (diff) | |
parent | bfeff732523f2ee8053b00d56f8df9fdb6662000 (diff) |
Merge branch 'blender-v2.90-release'
Diffstat (limited to 'source/blender/makesdna')
-rw-r--r-- | source/blender/makesdna/DNA_ID.h | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/source/blender/makesdna/DNA_ID.h b/source/blender/makesdna/DNA_ID.h index 60cedfe3c8a..4ec622574cc 100644 --- a/source/blender/makesdna/DNA_ID.h +++ b/source/blender/makesdna/DNA_ID.h @@ -206,7 +206,10 @@ typedef struct IDOverrideLibraryProperty { /** Runtime, tags are common to both IDOverrideProperty and IDOverridePropertyOperation. */ short tag; - char _pad0[6]; + char _pad[2]; + + /** The property type matching the rna_path. */ + unsigned int rna_prop_type; } IDOverrideLibraryProperty; /* IDOverrideProperty->tag and IDOverridePropertyOperation->tag. */ @@ -215,8 +218,18 @@ enum { IDOVERRIDE_LIBRARY_TAG_UNUSED = 1 << 0, }; -/* We do not need a full struct for that currently, just a GHash. */ -typedef struct GHash IDOverrideLibraryRuntime; +# +# +typedef struct IDOverrideLibraryRuntime { + struct GHash *rna_path_to_override_properties; + uint tag; +} IDOverrideLibraryRuntime; + +/* IDOverrideLibraryRuntime->tag. */ +enum { + /** This override needs to be reloaded. */ + IDOVERRIDE_LIBRARY_RUNTIME_TAG_NEEDS_RELOAD = 1 << 0, +}; /* Main container for all overriding data info of a data-block. */ typedef struct IDOverrideLibrary { @@ -468,7 +481,8 @@ typedef enum ID_Type { /* Note that this is a fairly high-level check, should be used at user interaction level, not in * BKE_library_override typically (especially due to the check on LIB_TAG_EXTERN). */ #define ID_IS_OVERRIDABLE_LIBRARY(_id) \ - (ID_IS_LINKED(_id) && !ID_MISSING(_id) && (((const ID *)(_id))->tag & LIB_TAG_EXTERN) != 0) + (ID_IS_LINKED(_id) && !ID_MISSING(_id) && (((const ID *)(_id))->tag & LIB_TAG_EXTERN) != 0 && \ + (BKE_idtype_get_info_from_id((const ID *)(_id))->flags & IDTYPE_FLAGS_NO_LIBLINKING) == 0) #define ID_IS_OVERRIDE_LIBRARY_REAL(_id) \ (((const ID *)(_id))->override_library != NULL && \ |