diff options
Diffstat (limited to 'source/blender/makesdna/DNA_node_types.h')
-rw-r--r-- | source/blender/makesdna/DNA_node_types.h | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h index ad1def0f3ec..967258f1b81 100644 --- a/source/blender/makesdna/DNA_node_types.h +++ b/source/blender/makesdna/DNA_node_types.h @@ -1066,15 +1066,39 @@ typedef struct CryptomatteEntry { char _pad[4]; } CryptomatteEntry; -typedef struct NodeCryptomatte { +typedef struct CryptomatteLayer { + struct CryptomatteEntry *next, *prev; + char name[64]; +} CryptomatteLayer; + +typedef struct NodeCryptomatte_Runtime { + /* Contains `CryptomatteLayer`. */ + ListBase layers; + /* Temp storage for the cryptomatte picker. */ float add[3]; float remove[3]; - /* Stores `entries` as a string for opening in 2.80-2.91. */ - char *matte_id; +} NodeCryptomatte_Runtime; + +typedef struct NodeCryptomatte { + /* iuser needs to be first element due to RNA limitations. + * When we define the ImageData properties, we can't define them from + * storage->iuser, so storage needs to be casted to ImageUser directly. */ + ImageUser iuser; + /* Contains `CryptomatteEntry`. */ ListBase entries; + + /* MAX_NAME */ + char layer_name[64]; + /* Stores `entries` as a string for opening in 2.80-2.91. */ + char *matte_id; + + /** Legacy attributes */ + /* Number of input sockets. */ int num_inputs; + char _pad[4]; + NodeCryptomatte_Runtime runtime; } NodeCryptomatte; typedef struct NodeDenoise { |