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:
authorAntonio Vazquez <blendergit@gmail.com>2020-03-09 18:27:24 +0300
committerAntonio Vazquez <blendergit@gmail.com>2020-03-09 18:27:24 +0300
commit29f3af95272590d26f610ae828b2eeee89c82a00 (patch)
treea696a58a2561c48f7ec6166e369e22081e0a64d8 /source/blender/makesdna/DNA_gpencil_modifier_types.h
parentdcb93126876879d969a30a7865700abd072066f8 (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.h106
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__ */