diff options
Diffstat (limited to 'source/blender/makesdna/DNA_layer_types.h')
-rw-r--r-- | source/blender/makesdna/DNA_layer_types.h | 44 |
1 files changed, 43 insertions, 1 deletions
diff --git a/source/blender/makesdna/DNA_layer_types.h b/source/blender/makesdna/DNA_layer_types.h index 85065ba35d4..6a91f4857b4 100644 --- a/source/blender/makesdna/DNA_layer_types.h +++ b/source/blender/makesdna/DNA_layer_types.h @@ -47,8 +47,31 @@ typedef enum eViewLayerEEVEEPassType { EEVEE_RENDER_PASS_SHADOW = (1 << 12), EEVEE_RENDER_PASS_AO = (1 << 13), EEVEE_RENDER_PASS_BLOOM = (1 << 14), + EEVEE_RENDER_PASS_AOV = (1 << 15), + EEVEE_RENDER_PASS_CRYPTOMATTE = (1 << 16), } eViewLayerEEVEEPassType; -#define EEVEE_RENDER_PASS_MAX_BIT 15 +#define EEVEE_RENDER_PASS_MAX_BIT 17 + +/* #ViewLayerAOV.type */ +typedef enum eViewLayerAOVType { + AOV_TYPE_VALUE = 0, + AOV_TYPE_COLOR = 1, +} eViewLayerAOVType; + +/* #ViewLayerAOV.flag */ +typedef enum eViewLayerAOVFlag { + AOV_CONFLICT = (1 << 0), +} eViewLayerAOVFlag; + +/* #ViewLayer.cryptomatte_flag */ +typedef enum eViewLayerCryptomatteFlags { + VIEW_LAYER_CRYPTOMATTE_OBJECT = (1 << 0), + VIEW_LAYER_CRYPTOMATTE_MATERIAL = (1 << 1), + VIEW_LAYER_CRYPTOMATTE_ASSET = (1 << 2), + VIEW_LAYER_CRYPTOMATTE_ACCURATE = (1 << 3), +} eViewLayerCryptomatteFlags; +#define VIEW_LAYER_CRYPTOMATTE_ALL \ + (VIEW_LAYER_CRYPTOMATTE_OBJECT | VIEW_LAYER_CRYPTOMATTE_MATERIAL | VIEW_LAYER_CRYPTOMATTE_ASSET) typedef struct Base { struct Base *next, *prev; @@ -104,6 +127,17 @@ typedef struct ViewLayerEEVEE { int _pad[1]; } ViewLayerEEVEE; +/* AOV Renderpass definition. */ +typedef struct ViewLayerAOV { + struct ViewLayerAOV *next, *prev; + + /* Name of the AOV */ + char name[64]; + int flag; + /* Type of AOV (color/value) + * matches `eViewLayerAOVType` */ + int type; +} ViewLayerAOV; typedef struct ViewLayer { struct ViewLayer *next, *prev; /** MAX_NAME. */ @@ -127,6 +161,10 @@ typedef struct ViewLayer { /** Pass_xor has to be after passflag. */ int passflag; float pass_alpha_threshold; + short cryptomatte_flag; + short cryptomatte_levels; + char _pad1[4]; + int samples; struct Material *mat_override; @@ -136,6 +174,10 @@ typedef struct ViewLayer { struct FreestyleConfig freestyle_config; struct ViewLayerEEVEE eevee; + /* List containing the `ViewLayerAOV`s */ + ListBase aovs; + ViewLayerAOV *active_aov; + /* Runtime data */ /** ViewLayerEngineData. */ ListBase drawdata; |