diff options
author | Antonio Vazquez <blendergit@gmail.com> | 2020-03-09 18:27:24 +0300 |
---|---|---|
committer | Antonio Vazquez <blendergit@gmail.com> | 2020-03-09 18:27:24 +0300 |
commit | 29f3af95272590d26f610ae828b2eeee89c82a00 (patch) | |
tree | a696a58a2561c48f7ec6166e369e22081e0a64d8 /source/blender/makesdna/DNA_gpencil_modifier_types.h | |
parent | dcb93126876879d969a30a7865700abd072066f8 (diff) |
GPencil: Refactor of Draw Engine, Vertex Paint and all internal functions
This commit is a full refactor of the grease pencil modules including Draw Engine, Modifiers, VFX, depsgraph update, improvements in operators and conversion of Sculpt and Weight paint tools to real brushes.
Also, a huge code cleanup has been done at all levels.
Thanks to @fclem for his work and yo @pepeland and @mendio for the testing and help in the development.
Differential Revision: https://developer.blender.org/D6293
Diffstat (limited to 'source/blender/makesdna/DNA_gpencil_modifier_types.h')
-rw-r--r-- | source/blender/makesdna/DNA_gpencil_modifier_types.h | 106 |
1 files changed, 83 insertions, 23 deletions
diff --git a/source/blender/makesdna/DNA_gpencil_modifier_types.h b/source/blender/makesdna/DNA_gpencil_modifier_types.h index 5fe12998998..1121bdf4df0 100644 --- a/source/blender/makesdna/DNA_gpencil_modifier_types.h +++ b/source/blender/makesdna/DNA_gpencil_modifier_types.h @@ -47,6 +47,7 @@ typedef enum GpencilModifierType { eGpencilModifierType_Armature = 15, eGpencilModifierType_Time = 16, eGpencilModifierType_Multiply = 17, + eGpencilModifierType_Vertexcolor = 18, NUM_GREASEPENCIL_MODIFIER_TYPES, } GpencilModifierType; @@ -89,12 +90,18 @@ typedef struct NoiseGpencilModifierData { int flag; /** Factor of noise. */ float factor; + float factor_strength; + float factor_thickness; + float factor_uvs; + /** Noise Frequency scaling */ + float noise_scale; /** How many frames before recalculate randoms. */ int step; /** Custom index for passes. */ int layer_pass; /** Random seed */ int seed; + struct CurveMapping *curve_intensity; } NoiseGpencilModifierData; typedef enum eNoiseGpencil_Flag { @@ -103,7 +110,7 @@ typedef enum eNoiseGpencil_Flag { GP_NOISE_MOD_STRENGTH = (1 << 2), GP_NOISE_MOD_THICKNESS = (1 << 3), GP_NOISE_FULL_STROKE = (1 << 4), - GP_NOISE_MOVE_EXTREME = (1 << 5), + GP_NOISE_CUSTOM_CURVE = (1 << 5), GP_NOISE_INVERT_LAYER = (1 << 6), GP_NOISE_INVERT_PASS = (1 << 7), GP_NOISE_INVERT_VGROUP = (1 << 8), @@ -126,16 +133,23 @@ typedef struct SubdivGpencilModifierData { int level; /** Custom index for passes. */ int layer_pass; + /** Type of subdivision */ + short type; + char _pad[6]; } SubdivGpencilModifierData; typedef enum eSubdivGpencil_Flag { - GP_SUBDIV_SIMPLE = (1 << 0), GP_SUBDIV_INVERT_LAYER = (1 << 1), GP_SUBDIV_INVERT_PASS = (1 << 2), GP_SUBDIV_INVERT_LAYERPASS = (1 << 3), GP_SUBDIV_INVERT_MATERIAL = (1 << 4), } eSubdivGpencil_Flag; +typedef enum eSubdivGpencil_Type { + GP_SUBDIV_CATMULL = 0, + GP_SUBDIV_SIMPLE = 1, +} eSubdivGpencil_Type; + typedef struct ThickGpencilModifierData { GpencilModifierData modifier; /** Layer name. */ @@ -148,10 +162,13 @@ typedef struct ThickGpencilModifierData { int pass_index; /** Flags. */ int flag; - /** Thickness change. */ + /** Relative thickness factor. */ + float thickness_fac; + /** Absolute thickness overide. */ int thickness; /** Custom index for passes. */ int layer_pass; + char _pad[4]; struct CurveMapping *curve_thickness; } ThickGpencilModifierData; @@ -225,15 +242,17 @@ typedef struct TintGpencilModifierData { char _pad[7]; /** Custom index for passes. */ int layer_pass; + char _pad1[4]; + struct CurveMapping *curve_intensity; } TintGpencilModifierData; typedef enum eTintGpencil_Flag { - GP_TINT_CREATE_COLORS = (1 << 0), GP_TINT_INVERT_LAYER = (1 << 1), GP_TINT_INVERT_PASS = (1 << 2), GP_TINT_INVERT_LAYERPASS = (1 << 3), GP_TINT_INVERT_MATERIAL = (1 << 4), + GP_TINT_CUSTOM_CURVE = (1 << 5), } eTintGpencil_Flag; typedef struct ColorGpencilModifierData { @@ -253,15 +272,17 @@ typedef struct ColorGpencilModifierData { char _pad[3]; /** Custom index for passes. */ int layer_pass; + char _pad1[4]; + struct CurveMapping *curve_intensity; } ColorGpencilModifierData; typedef enum eColorGpencil_Flag { - GP_COLOR_CREATE_COLORS = (1 << 0), GP_COLOR_INVERT_LAYER = (1 << 1), GP_COLOR_INVERT_PASS = (1 << 2), GP_COLOR_INVERT_LAYERPASS = (1 << 3), GP_COLOR_INVERT_MATERIAL = (1 << 4), + GP_COLOR_CUSTOM_CURVE = (1 << 5), } eColorGpencil_Flag; typedef struct OpacityGpencilModifierData { @@ -280,21 +301,22 @@ typedef struct OpacityGpencilModifierData { float factor; /** Modify stroke, fill or both. */ char modify_color; - /** Mode of opacity, colors or strength */ - char opacity_mode; - char _pad[2]; + char _pad[3]; /** Custom index for passes. */ int layer_pass; + char _pad1[4]; + struct CurveMapping *curve_intensity; } OpacityGpencilModifierData; typedef enum eOpacityGpencil_Flag { GP_OPACITY_INVERT_LAYER = (1 << 0), GP_OPACITY_INVERT_PASS = (1 << 1), GP_OPACITY_INVERT_VGROUP = (1 << 2), - GP_OPACITY_CREATE_COLORS = (1 << 3), GP_OPACITY_INVERT_LAYERPASS = (1 << 4), GP_OPACITY_INVERT_MATERIAL = (1 << 5), + GP_OPACITY_CUSTOM_CURVE = (1 << 6), + GP_OPACITY_NORMALIZE = (1 << 7), } eOpacityGpencil_Flag; typedef struct ArrayGpencilModifierData { @@ -308,17 +330,15 @@ typedef struct ArrayGpencilModifierData { float offset[3]; /** Shift increment. */ float shift[3]; - /** Random size factor. */ - float rnd_size; - /** Random size factor. */ - float rnd_rot; - /** Rotation changes. */ - float rot[3]; - /** Scale changes. */ - float scale[3]; - /** (first element is the index) random values. */ - float rnd[20]; + /** Random Offset. */ + float rnd_offset[3]; + /** Random Rotation. */ + float rnd_rot[3]; + /** Random Scales. */ + float rnd_scale[3]; char _pad[4]; + /** (first element is the index) random values. */ + int seed; /** Custom index for passes. */ int pass_index; @@ -333,13 +353,13 @@ typedef struct ArrayGpencilModifierData { } ArrayGpencilModifierData; typedef enum eArrayGpencil_Flag { - GP_ARRAY_RANDOM_SIZE = (1 << 0), - GP_ARRAY_RANDOM_ROT = (1 << 1), GP_ARRAY_INVERT_LAYER = (1 << 2), GP_ARRAY_INVERT_PASS = (1 << 3), - GP_ARRAY_KEEP_ONTOP = (1 << 4), GP_ARRAY_INVERT_LAYERPASS = (1 << 5), GP_ARRAY_INVERT_MATERIAL = (1 << 6), + GP_ARRAY_USE_OFFSET = (1 << 7), + GP_ARRAY_USE_RELATIVE = (1 << 8), + GP_ARRAY_USE_OB_OFFSET = (1 << 9), } eArrayGpencil_Flag; typedef struct BuildGpencilModifierData { @@ -613,7 +633,9 @@ typedef struct SmoothGpencilModifierData { int step; /** Custom index for passes. */ int layer_pass; - char _pad[4]; + + char _pad1[4]; + struct CurveMapping *curve_intensity; } SmoothGpencilModifierData; typedef enum eSmoothGpencil_Flag { @@ -626,6 +648,7 @@ typedef enum eSmoothGpencil_Flag { GP_SMOOTH_MOD_UV = (1 << 6), GP_SMOOTH_INVERT_LAYERPASS = (1 << 7), GP_SMOOTH_INVERT_MATERIAL = (1 << 4), + GP_SMOOTH_CUSTOM_CURVE = (1 << 8), } eSmoothGpencil_Flag; typedef struct ArmatureGpencilModifierData { @@ -677,4 +700,41 @@ typedef enum eMultiplyGpencil_Flag { GP_MULTIPLY_ENABLE_FADING = (1 << 2), } eMultiplyGpencil_Flag; +typedef struct VertexcolorGpencilModifierData { + GpencilModifierData modifier; + + struct Object *object; + /** Layer name. */ + char layername[64]; + /** Material name. */ + char materialname[64]; + /** Optional vertexgroup name, MAX_VGROUP_NAME. */ + char vgname[64]; + /** Custom index for passes. */ + int pass_index; + /** Custom index for passes. */ + int layer_pass; + /** Flags. */ + int flag; + /** Mode. */ + int mode; + + float factor; + float radius; + + struct CurveMapping *curve_intensity; + + struct ColorBand *colorband; +} VertexcolorGpencilModifierData; + +typedef enum eVertexcolorGpencil_Flag { + GP_VERTEXCOL_INVERT_LAYER = (1 << 0), + GP_VERTEXCOL_INVERT_PASS = (1 << 1), + GP_VERTEXCOL_INVERT_VGROUP = (1 << 2), + GP_VERTEXCOL_UNIFORM_SPACE = (1 << 3), + GP_VERTEXCOL_INVERT_LAYERPASS = (1 << 4), + GP_VERTEXCOL_INVERT_MATERIAL = (1 << 5), + GP_VERTEXCOL_CUSTOM_CURVE = (1 << 6), +} eVertexcolorGpencil_Flag; + #endif /* __DNA_GPENCIL_MODIFIER_TYPES_H__ */ |