Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/makesdna/DNA_layer_types.h')
-rw-r--r--source/blender/makesdna/DNA_layer_types.h44
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;