diff options
Diffstat (limited to 'source/blender/makesdna/DNA_gpencil_modifier_types.h')
-rw-r--r-- | source/blender/makesdna/DNA_gpencil_modifier_types.h | 63 |
1 files changed, 62 insertions, 1 deletions
diff --git a/source/blender/makesdna/DNA_gpencil_modifier_types.h b/source/blender/makesdna/DNA_gpencil_modifier_types.h index 2bb95caddfb..0932b7107bb 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_WeightAngle = 23, eGpencilModifierType_Shrinkwrap = 24, eGpencilModifierType_Envelope = 25, + eGpencilModifierType_Outline = 26, /* Keep last. */ NUM_GREASEPENCIL_MODIFIER_TYPES, } GpencilModifierType; @@ -201,8 +202,18 @@ typedef enum eThickGpencil_Flag { GP_THICK_WEIGHT_FACTOR = (1 << 7), } eThickGpencil_Flag; +typedef struct TimeGpencilModifierSegment { + char name[64]; + /* For path reference. */ + struct TimeGpencilModifierData *gpmd; + int seg_start; + int seg_end; + int seg_mode; + int seg_repeat; +} TimeGpencilModifierSegment; typedef struct TimeGpencilModifierData { GpencilModifierData modifier; + struct Material *material; /** Layer name. */ char layername[64]; /** Custom index for passes. */ @@ -215,7 +226,13 @@ typedef struct TimeGpencilModifierData { int mode; /** Start and end frame for custom range. */ int sfra, efra; + char _pad[4]; + + TimeGpencilModifierSegment *segments; + int segments_len; + int segment_active_index; + } TimeGpencilModifierData; typedef enum eTimeGpencil_Flag { @@ -230,8 +247,15 @@ typedef enum eTimeGpencil_Mode { GP_TIME_MODE_REVERSE = 1, GP_TIME_MODE_FIX = 2, GP_TIME_MODE_PINGPONG = 3, + GP_TIME_MODE_CHAIN = 4, } eTimeGpencil_Mode; +typedef enum eTimeGpencil_Seg_Mode { + GP_TIME_SEG_MODE_NORMAL = 0, + GP_TIME_SEG_MODE_REVERSE = 1, + GP_TIME_SEG_MODE_PINGPONG = 2, +} eTimeGpencil_Seg_Mode; + typedef enum eModifyColorGpencil_Flag { GP_MODIFY_COLOR_BOTH = 0, GP_MODIFY_COLOR_STROKE = 1, @@ -313,6 +337,38 @@ typedef enum eOpacityGpencil_Flag { GP_OPACITY_WEIGHT_FACTOR = (1 << 8), } eOpacityGpencil_Flag; +typedef struct OutlineGpencilModifierData { + GpencilModifierData modifier; + /** Target stroke origin. */ + struct Object *object; + /** Material for filtering. */ + struct Material *material; + /** Layer name. */ + char layername[64]; + /** Custom index for passes. */ + int pass_index; + /** Flags. */ + int flag; + /** Thickness. */ + int thickness; + /** Sample Length. */ + float sample_length; + /** Subdivisions. */ + int subdiv; + /** Custom index for passes. */ + int layer_pass; + /** Material for outline. */ + struct Material *outline_material; +} OutlineGpencilModifierData; + +typedef enum eOutlineGpencil_Flag { + GP_OUTLINE_INVERT_LAYER = (1 << 0), + GP_OUTLINE_INVERT_PASS = (1 << 1), + GP_OUTLINE_INVERT_LAYERPASS = (1 << 2), + GP_OUTLINE_INVERT_MATERIAL = (1 << 3), + GP_OUTLINE_KEEP_SHAPE = (1 << 4), +} eOutlineGpencil_Flag; + typedef struct ArrayGpencilModifierData { GpencilModifierData modifier; struct Object *object; @@ -999,9 +1055,14 @@ typedef enum eLineartGpencilModifierSource { } eLineartGpencilModifierSource; typedef enum eLineartGpencilModifierShadowFilter { + /* These options need to be ordered in this way because those latter options requires line art to + * run a few extra stages. Having those values set up this way will allow + * #BKE_gpencil_get_lineart_modifier_limits() to find out maximum stages needed in multiple + * cached line art modifiers. */ LRT_SHADOW_FILTER_NONE = 0, - LRT_SHADOW_FILTER_LIT = 1, + LRT_SHADOW_FILTER_ILLUMINATED = 1, LRT_SHADOW_FILTER_SHADED = 2, + LRT_SHADOW_FILTER_ILLUMINATED_ENCLOSED_SHAPES = 3, } eLineartGpencilModifierShadowFilter; typedef enum eLineartGpencilModifierSilhouetteFilter { |