From 3d8f1586973b1fbadf3cf45c66873d1a012764ee Mon Sep 17 00:00:00 2001 From: Matias Mendiola Date: Wed, 21 Aug 2019 08:30:45 +0200 Subject: GPencil: add new filter by material to modifiers This commit adds a new filter by material using the name and not only the index. Reviewers: antoniov, pepeland Differential Revision: https://developer.blender.org/D5544 --- .../gpencil_modifiers/intern/MOD_gpencil_util.c | 22 +++- .../gpencil_modifiers/intern/MOD_gpencil_util.h | 4 +- .../gpencil_modifiers/intern/MOD_gpencilarray.c | 4 +- .../gpencil_modifiers/intern/MOD_gpencilcolor.c | 5 +- .../gpencil_modifiers/intern/MOD_gpencilhook.c | 5 +- .../gpencil_modifiers/intern/MOD_gpencillattice.c | 5 +- .../gpencil_modifiers/intern/MOD_gpencilmirror.c | 5 +- .../gpencil_modifiers/intern/MOD_gpencilnoise.c | 5 +- .../gpencil_modifiers/intern/MOD_gpenciloffset.c | 5 +- .../gpencil_modifiers/intern/MOD_gpencilopacity.c | 5 +- .../gpencil_modifiers/intern/MOD_gpencilsimplify.c | 5 +- .../gpencil_modifiers/intern/MOD_gpencilsmooth.c | 5 +- .../gpencil_modifiers/intern/MOD_gpencilsubdiv.c | 5 +- .../gpencil_modifiers/intern/MOD_gpencilthick.c | 5 +- .../gpencil_modifiers/intern/MOD_gpenciltint.c | 5 +- .../blender/makesdna/DNA_gpencil_modifier_types.h | 42 +++++++ .../blender/makesrna/intern/rna_gpencil_modifier.c | 130 +++++++++++++++++++++ 17 files changed, 245 insertions(+), 17 deletions(-) (limited to 'source') diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c b/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c index 5b5290dc0ff..5209313f717 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c @@ -74,9 +74,10 @@ void gpencil_modifier_type_init(GpencilModifierTypeInfo *types[]) #undef INIT_GP_TYPE } -/* verify if valid layer and pass index */ +/* verify if valid layer, material and pass index */ bool is_stroke_affected_by_modifier(Object *ob, char *mlayername, + char *mmaterialname, int mpassindex, int gpl_passindex, int minpoints, @@ -84,9 +85,11 @@ bool is_stroke_affected_by_modifier(Object *ob, bGPDstroke *gps, bool inv1, bool inv2, - bool inv3) + bool inv3, + bool inv4) { - MaterialGPencilStyle *gp_style = BKE_material_gpencil_settings_get(ob, gps->mat_nr + 1); + Material *ma = give_current_material(ob, gps->mat_nr + 1); + MaterialGPencilStyle *gp_style = ma->gp_style; /* omit if filter by layer */ if (mlayername[0] != '\0') { @@ -101,6 +104,19 @@ bool is_stroke_affected_by_modifier(Object *ob, } } } + /* omit if filter by material */ + if (mmaterialname[0] != '\0') { + if (inv4 == false) { + if (!STREQ(mmaterialname, ma->id.name + 2)) { + return false; + } + } + else { + if (STREQ(mmaterialname, ma->id.name + 2)) { + return false; + } + } + } /* verify layer pass */ if (gpl_passindex > 0) { if (inv3 == false) { diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.h b/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.h index c3dbd341e10..7f00e072cda 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.h +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.h @@ -34,6 +34,7 @@ struct bGPDstroke; bool is_stroke_affected_by_modifier(struct Object *ob, char *mlayername, + char *mmaterialname, int mpassindex, int gpl_passindex, int minpoints, @@ -41,7 +42,8 @@ bool is_stroke_affected_by_modifier(struct Object *ob, bGPDstroke *gps, bool inv1, bool inv2, - bool inv3); + bool inv3, + bool inv4); float get_modifier_point_weight(struct MDeformVert *dvert, bool inverse, int def_nr); diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilarray.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilarray.c index 0a391a6e63e..c311497ffbb 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencilarray.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilarray.c @@ -171,6 +171,7 @@ static void generate_geometry(GpencilModifierData *md, */ if (is_stroke_affected_by_modifier(ob, mmd->layername, + mmd->materialname, mmd->pass_index, mmd->layer_pass, 1, @@ -178,7 +179,8 @@ static void generate_geometry(GpencilModifierData *md, gps, mmd->flag & GP_ARRAY_INVERT_LAYER, mmd->flag & GP_ARRAY_INVERT_PASS, - mmd->flag & GP_ARRAY_INVERT_LAYERPASS)) { + mmd->flag & GP_ARRAY_INVERT_LAYERPASS, + mmd->flag & GP_ARRAY_INVERT_MATERIAL)) { valid_strokes[idx] = true; num_valid++; } diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilcolor.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilcolor.c index 13329e4176d..741acfbe405 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencilcolor.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilcolor.c @@ -51,6 +51,7 @@ static void initData(GpencilModifierData *md) gpmd->pass_index = 0; ARRAY_SET_ITEMS(gpmd->hsv, 0.5f, 1.0f, 1.0f); gpmd->layername[0] = '\0'; + gpmd->materialname[0] = '\0'; gpmd->flag |= GP_COLOR_CREATE_COLORS; gpmd->modify_color = GP_MODIFY_COLOR_BOTH; } @@ -74,6 +75,7 @@ static void deformStroke(GpencilModifierData *md, if (!is_stroke_affected_by_modifier(ob, mmd->layername, + mmd->materialname, mmd->pass_index, mmd->layer_pass, 1, @@ -81,7 +83,8 @@ static void deformStroke(GpencilModifierData *md, gps, mmd->flag & GP_COLOR_INVERT_LAYER, mmd->flag & GP_COLOR_INVERT_PASS, - mmd->flag & GP_COLOR_INVERT_LAYERPASS)) { + mmd->flag & GP_COLOR_INVERT_LAYERPASS, + mmd->flag & GP_COLOR_INVERT_MATERIAL)) { return; } diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilhook.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilhook.c index a3dbcdf23de..810a2ba7e25 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencilhook.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilhook.c @@ -77,6 +77,7 @@ static void initData(GpencilModifierData *md) HookGpencilModifierData *gpmd = (HookGpencilModifierData *)md; gpmd->pass_index = 0; gpmd->layername[0] = '\0'; + gpmd->materialname[0] = '\0'; gpmd->vgname[0] = '\0'; gpmd->object = NULL; gpmd->force = 0.5f; @@ -206,6 +207,7 @@ static void deformStroke(GpencilModifierData *md, if (!is_stroke_affected_by_modifier(ob, mmd->layername, + mmd->materialname, mmd->pass_index, mmd->layer_pass, 1, @@ -213,7 +215,8 @@ static void deformStroke(GpencilModifierData *md, gps, mmd->flag & GP_HOOK_INVERT_LAYER, mmd->flag & GP_HOOK_INVERT_PASS, - mmd->flag & GP_HOOK_INVERT_LAYERPASS)) { + mmd->flag & GP_HOOK_INVERT_LAYERPASS, + mmd->flag & GP_HOOK_INVERT_MATERIAL)) { return; } diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencillattice.c b/source/blender/gpencil_modifiers/intern/MOD_gpencillattice.c index aa5015bac35..d5295fc7306 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencillattice.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencillattice.c @@ -55,6 +55,7 @@ static void initData(GpencilModifierData *md) LatticeGpencilModifierData *gpmd = (LatticeGpencilModifierData *)md; gpmd->pass_index = 0; gpmd->layername[0] = '\0'; + gpmd->materialname[0] = '\0'; gpmd->vgname[0] = '\0'; gpmd->object = NULL; gpmd->cache_data = NULL; @@ -78,6 +79,7 @@ static void deformStroke(GpencilModifierData *md, if (!is_stroke_affected_by_modifier(ob, mmd->layername, + mmd->materialname, mmd->pass_index, mmd->layer_pass, 1, @@ -85,7 +87,8 @@ static void deformStroke(GpencilModifierData *md, gps, mmd->flag & GP_LATTICE_INVERT_LAYER, mmd->flag & GP_LATTICE_INVERT_PASS, - mmd->flag & GP_LATTICE_INVERT_LAYERPASS)) { + mmd->flag & GP_LATTICE_INVERT_LAYERPASS, + mmd->flag & GP_LATTICE_INVERT_MATERIAL)) { return; } diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilmirror.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilmirror.c index 058f60a69ac..112dfc2e9dc 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencilmirror.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilmirror.c @@ -57,6 +57,7 @@ static void initData(GpencilModifierData *md) MirrorGpencilModifierData *gpmd = (MirrorGpencilModifierData *)md; gpmd->pass_index = 0; gpmd->layername[0] = '\0'; + gpmd->materialname[0] = '\0'; gpmd->object = NULL; gpmd->flag |= GP_MIRROR_AXIS_X; } @@ -134,6 +135,7 @@ static void generateStrokes(GpencilModifierData *md, for (i = 0, gps = gpf->strokes.first; i < tot_strokes; i++, gps = gps->next) { if (is_stroke_affected_by_modifier(ob, mmd->layername, + mmd->materialname, mmd->pass_index, mmd->layer_pass, 1, @@ -141,7 +143,8 @@ static void generateStrokes(GpencilModifierData *md, gps, mmd->flag & GP_MIRROR_INVERT_LAYER, mmd->flag & GP_MIRROR_INVERT_PASS, - mmd->flag & GP_MIRROR_INVERT_LAYERPASS)) { + mmd->flag & GP_MIRROR_INVERT_LAYERPASS, + mmd->flag & GP_MIRROR_INVERT_MATERIAL)) { gps_new = BKE_gpencil_stroke_duplicate(gps); update_position(ob, mmd, gps_new, xi); BLI_addtail(&gpf->strokes, gps_new); diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilnoise.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilnoise.c index 2c4d99adeee..b286b55829e 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencilnoise.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilnoise.c @@ -55,6 +55,7 @@ static void initData(GpencilModifierData *md) gpmd->flag |= GP_NOISE_USE_RANDOM; gpmd->factor = 0.5f; gpmd->layername[0] = '\0'; + gpmd->materialname[0] = '\0'; gpmd->vgname[0] = '\0'; gpmd->step = 1; gpmd->seed = 0; @@ -92,6 +93,7 @@ static void deformStroke(GpencilModifierData *md, if (!is_stroke_affected_by_modifier(ob, mmd->layername, + mmd->materialname, mmd->pass_index, mmd->layer_pass, 1, @@ -99,7 +101,8 @@ static void deformStroke(GpencilModifierData *md, gps, mmd->flag & GP_NOISE_INVERT_LAYER, mmd->flag & GP_NOISE_INVERT_PASS, - mmd->flag & GP_NOISE_INVERT_LAYERPASS)) { + mmd->flag & GP_NOISE_INVERT_LAYERPASS, + mmd->flag & GP_NOISE_INVERT_MATERIAL)) { return; } diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpenciloffset.c b/source/blender/gpencil_modifiers/intern/MOD_gpenciloffset.c index 399fc407455..08f67eedc86 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpenciloffset.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpenciloffset.c @@ -48,6 +48,7 @@ static void initData(GpencilModifierData *md) OffsetGpencilModifierData *gpmd = (OffsetGpencilModifierData *)md; gpmd->pass_index = 0; gpmd->layername[0] = '\0'; + gpmd->materialname[0] = '\0'; gpmd->vgname[0] = '\0'; ARRAY_SET_ITEMS(gpmd->loc, 0.0f, 0.0f, 0.0f); ARRAY_SET_ITEMS(gpmd->rot, 0.0f, 0.0f, 0.0f); @@ -75,6 +76,7 @@ static void deformStroke(GpencilModifierData *md, if (!is_stroke_affected_by_modifier(ob, mmd->layername, + mmd->materialname, mmd->pass_index, mmd->layer_pass, 1, @@ -82,7 +84,8 @@ static void deformStroke(GpencilModifierData *md, gps, mmd->flag & GP_OFFSET_INVERT_LAYER, mmd->flag & GP_OFFSET_INVERT_PASS, - mmd->flag & GP_OFFSET_INVERT_LAYERPASS)) { + mmd->flag & GP_OFFSET_INVERT_LAYERPASS, + mmd->flag & GP_OFFSET_INVERT_MATERIAL)) { return; } diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilopacity.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilopacity.c index 36a1c3db700..346d1e834a6 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencilopacity.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilopacity.c @@ -52,6 +52,7 @@ static void initData(GpencilModifierData *md) gpmd->pass_index = 0; gpmd->factor = 1.0f; gpmd->layername[0] = '\0'; + gpmd->materialname[0] = '\0'; gpmd->vgname[0] = '\0'; gpmd->flag |= GP_OPACITY_CREATE_COLORS; gpmd->modify_color = GP_MODIFY_COLOR_BOTH; @@ -75,6 +76,7 @@ static void deformStroke(GpencilModifierData *md, if (!is_stroke_affected_by_modifier(ob, mmd->layername, + mmd->materialname, mmd->pass_index, mmd->layer_pass, 1, @@ -82,7 +84,8 @@ static void deformStroke(GpencilModifierData *md, gps, mmd->flag & GP_OPACITY_INVERT_LAYER, mmd->flag & GP_OPACITY_INVERT_PASS, - mmd->flag & GP_OPACITY_INVERT_LAYERPASS)) { + mmd->flag & GP_OPACITY_INVERT_LAYERPASS, + mmd->flag & GP_OPACITY_INVERT_MATERIAL)) { return; } diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilsimplify.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilsimplify.c index 2168e7f07ec..25a56c4385c 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencilsimplify.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilsimplify.c @@ -48,6 +48,7 @@ static void initData(GpencilModifierData *md) gpmd->length = 0.1f; gpmd->distance = 0.1f; gpmd->layername[0] = '\0'; + gpmd->materialname[0] = '\0'; } static void copyData(const GpencilModifierData *md, GpencilModifierData *target) @@ -66,6 +67,7 @@ static void deformStroke(GpencilModifierData *md, if (!is_stroke_affected_by_modifier(ob, mmd->layername, + mmd->materialname, mmd->pass_index, mmd->layer_pass, mmd->mode == GP_SIMPLIFY_SAMPLE ? 3 : 4, @@ -73,7 +75,8 @@ static void deformStroke(GpencilModifierData *md, gps, mmd->flag & GP_SIMPLIFY_INVERT_LAYER, mmd->flag & GP_SIMPLIFY_INVERT_PASS, - mmd->flag & GP_SIMPLIFY_INVERT_LAYERPASS)) { + mmd->flag & GP_SIMPLIFY_INVERT_LAYERPASS, + mmd->flag & GP_SIMPLIFY_INVERT_MATERIAL)) { return; } diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilsmooth.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilsmooth.c index 7c639bd8af0..5ec7fe4ff18 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencilsmooth.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilsmooth.c @@ -46,6 +46,7 @@ static void initData(GpencilModifierData *md) gpmd->flag |= GP_SMOOTH_MOD_LOCATION; gpmd->factor = 0.5f; gpmd->layername[0] = '\0'; + gpmd->materialname[0] = '\0'; gpmd->vgname[0] = '\0'; gpmd->step = 1; } @@ -68,6 +69,7 @@ static void deformStroke(GpencilModifierData *md, if (!is_stroke_affected_by_modifier(ob, mmd->layername, + mmd->materialname, mmd->pass_index, mmd->layer_pass, 3, @@ -75,7 +77,8 @@ static void deformStroke(GpencilModifierData *md, gps, mmd->flag & GP_SMOOTH_INVERT_LAYER, mmd->flag & GP_SMOOTH_INVERT_PASS, - mmd->flag & GP_SMOOTH_INVERT_LAYERPASS)) { + mmd->flag & GP_SMOOTH_INVERT_LAYERPASS, + mmd->flag & GP_SMOOTH_INVERT_MATERIAL)) { return; } diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilsubdiv.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilsubdiv.c index c8962cd58c9..741555722b5 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencilsubdiv.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilsubdiv.c @@ -47,6 +47,7 @@ static void initData(GpencilModifierData *md) gpmd->pass_index = 0; gpmd->level = 1; gpmd->layername[0] = '\0'; + gpmd->materialname[0] = '\0'; } static void copyData(const GpencilModifierData *md, GpencilModifierData *target) @@ -66,6 +67,7 @@ static void deformStroke(GpencilModifierData *md, if (!is_stroke_affected_by_modifier(ob, mmd->layername, + mmd->materialname, mmd->pass_index, mmd->layer_pass, 3, @@ -73,7 +75,8 @@ static void deformStroke(GpencilModifierData *md, gps, mmd->flag & GP_SUBDIV_INVERT_LAYER, mmd->flag & GP_SUBDIV_INVERT_PASS, - mmd->flag & GP_SUBDIV_INVERT_LAYERPASS)) { + mmd->flag & GP_SUBDIV_INVERT_LAYERPASS, + mmd->flag & GP_SUBDIV_INVERT_MATERIAL)) { return; } diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilthick.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilthick.c index 8ab72716f4d..29e933e26df 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencilthick.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilthick.c @@ -47,6 +47,7 @@ static void initData(GpencilModifierData *md) gpmd->pass_index = 0; gpmd->thickness = 2; gpmd->layername[0] = '\0'; + gpmd->materialname[0] = '\0'; gpmd->vgname[0] = '\0'; gpmd->curve_thickness = BKE_curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f); if (gpmd->curve_thickness) { @@ -91,6 +92,7 @@ static void deformStroke(GpencilModifierData *md, if (!is_stroke_affected_by_modifier(ob, mmd->layername, + mmd->materialname, mmd->pass_index, mmd->layer_pass, 1, @@ -98,7 +100,8 @@ static void deformStroke(GpencilModifierData *md, gps, mmd->flag & GP_THICK_INVERT_LAYER, mmd->flag & GP_THICK_INVERT_PASS, - mmd->flag & GP_THICK_INVERT_LAYERPASS)) { + mmd->flag & GP_THICK_INVERT_LAYERPASS, + mmd->flag & GP_THICK_INVERT_MATERIAL)) { return; } diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpenciltint.c b/source/blender/gpencil_modifiers/intern/MOD_gpenciltint.c index d70d975c3a7..bfb2c62cef6 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpenciltint.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpenciltint.c @@ -50,6 +50,7 @@ static void initData(GpencilModifierData *md) gpmd->pass_index = 0; gpmd->factor = 0.5f; gpmd->layername[0] = '\0'; + gpmd->materialname[0] = '\0'; ARRAY_SET_ITEMS(gpmd->rgb, 1.0f, 1.0f, 1.0f); gpmd->flag |= GP_TINT_CREATE_COLORS; gpmd->modify_color = GP_MODIFY_COLOR_BOTH; @@ -72,6 +73,7 @@ static void deformStroke(GpencilModifierData *md, if (!is_stroke_affected_by_modifier(ob, mmd->layername, + mmd->materialname, mmd->pass_index, mmd->layer_pass, 1, @@ -79,7 +81,8 @@ static void deformStroke(GpencilModifierData *md, gps, mmd->flag & GP_TINT_INVERT_LAYER, mmd->flag & GP_TINT_INVERT_PASS, - mmd->flag & GP_TINT_INVERT_LAYERPASS)) { + mmd->flag & GP_TINT_INVERT_LAYERPASS, + mmd->flag & GP_TINT_INVERT_MATERIAL)) { return; } diff --git a/source/blender/makesdna/DNA_gpencil_modifier_types.h b/source/blender/makesdna/DNA_gpencil_modifier_types.h index 83ee8be7f68..bb6457ee5b8 100644 --- a/source/blender/makesdna/DNA_gpencil_modifier_types.h +++ b/source/blender/makesdna/DNA_gpencil_modifier_types.h @@ -80,6 +80,8 @@ typedef struct NoiseGpencilModifierData { GpencilModifierData modifier; /** Layer name. */ char layername[64]; + /** Material name. */ + char materialname[64]; /** Optional vertexgroup name, MAX_VGROUP_NAME. */ char vgname[64]; /** Custom index for passes. */ @@ -108,12 +110,15 @@ typedef enum eNoiseGpencil_Flag { GP_NOISE_INVERT_VGROUP = (1 << 8), GP_NOISE_MOD_UV = (1 << 9), GP_NOISE_INVERT_LAYERPASS = (1 << 10), + GP_NOISE_INVERT_MATERIAL = (1 << 11), } eNoiseGpencil_Flag; typedef struct SubdivGpencilModifierData { GpencilModifierData modifier; /** Layer name. */ char layername[64]; + /** Material name. */ + char materialname[64]; /** Custom index for passes. */ int pass_index; /** Flags. */ @@ -129,12 +134,15 @@ typedef enum eSubdivGpencil_Flag { 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 struct ThickGpencilModifierData { GpencilModifierData modifier; /** Layer name. */ char layername[64]; + /** Material name. */ + char materialname[64]; /** Optional vertexgroup name, MAX_VGROUP_NAME. */ char vgname[64]; /** Custom index for passes. */ @@ -155,6 +163,7 @@ typedef enum eThickGpencil_Flag { GP_THICK_CUSTOM_CURVE = (1 << 3), GP_THICK_NORMALIZE = (1 << 4), GP_THICK_INVERT_LAYERPASS = (1 << 5), + GP_THICK_INVERT_MATERIAL = (1 << 6), } eThickGpencil_Flag; typedef struct TimeGpencilModifierData { @@ -197,6 +206,8 @@ typedef struct TintGpencilModifierData { GpencilModifierData modifier; /** Layer name. */ char layername[64]; + /** Material name. */ + char materialname[64]; /** Custom index for passes. */ int pass_index; /** Flags. */ @@ -218,12 +229,15 @@ typedef enum eTintGpencil_Flag { GP_TINT_INVERT_LAYER = (1 << 1), GP_TINT_INVERT_PASS = (1 << 2), GP_TINT_INVERT_LAYERPASS = (1 << 3), + GP_TINT_INVERT_MATERIAL = (1 << 4), } eTintGpencil_Flag; typedef struct ColorGpencilModifierData { GpencilModifierData modifier; /** Layer name. */ char layername[64]; + /** Material name. */ + char materialname[64]; /** Custom index for passes. */ int pass_index; /** Flags. */ @@ -243,12 +257,15 @@ typedef enum eColorGpencil_Flag { GP_COLOR_INVERT_LAYER = (1 << 1), GP_COLOR_INVERT_PASS = (1 << 2), GP_COLOR_INVERT_LAYERPASS = (1 << 3), + GP_COLOR_INVERT_MATERIAL = (1 << 4), } eColorGpencil_Flag; typedef struct OpacityGpencilModifierData { GpencilModifierData modifier; /** Layer name. */ char layername[64]; + /** Material name. */ + char materialname[64]; /** Optional vertexgroup name, MAX_VGROUP_NAME. */ char vgname[64]; /** Custom index for passes. */ @@ -271,6 +288,7 @@ typedef enum eOpacityGpencil_Flag { GP_OPACITY_INVERT_VGROUP = (1 << 2), GP_OPACITY_CREATE_COLORS = (1 << 3), GP_OPACITY_INVERT_LAYERPASS = (1 << 4), + GP_OPACITY_INVERT_MATERIAL = (1 << 5), } eOpacityGpencil_Flag; typedef struct ArrayGpencilModifierData { @@ -300,6 +318,8 @@ typedef struct ArrayGpencilModifierData { int pass_index; /** Layer name. */ char layername[64]; + /** Material name. */ + char materialname[64]; /** Material replace (0 keep default). */ int mat_rpl; /** Custom index for passes. */ @@ -313,6 +333,7 @@ typedef enum eArrayGpencil_Flag { GP_ARRAY_INVERT_PASS = (1 << 3), GP_ARRAY_KEEP_ONTOP = (1 << 4), GP_ARRAY_INVERT_LAYERPASS = (1 << 5), + GP_ARRAY_INVERT_MATERIAL = (1 << 6), } eArrayGpencil_Flag; typedef struct BuildGpencilModifierData { @@ -322,6 +343,9 @@ typedef struct BuildGpencilModifierData { char layername[64]; int pass_index; + /** Material name. */ + char materialname[64]; + /** Custom index for passes. */ int layer_pass; @@ -392,6 +416,8 @@ typedef struct LatticeGpencilModifierData { 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. */ @@ -410,6 +436,7 @@ typedef enum eLatticeGpencil_Flag { GP_LATTICE_INVERT_PASS = (1 << 1), GP_LATTICE_INVERT_VGROUP = (1 << 2), GP_LATTICE_INVERT_LAYERPASS = (1 << 3), + GP_LATTICE_INVERT_MATERIAL = (1 << 4), } eLatticeGpencil_Flag; typedef struct MirrorGpencilModifierData { @@ -417,6 +444,8 @@ typedef struct MirrorGpencilModifierData { struct Object *object; /** Layer name. */ char layername[64]; + /** Material name. */ + char materialname[64]; /** Custom index for passes. */ int pass_index; /** Flags. */ @@ -434,6 +463,7 @@ typedef enum eMirrorGpencil_Flag { GP_MIRROR_AXIS_Y = (1 << 4), GP_MIRROR_AXIS_Z = (1 << 5), GP_MIRROR_INVERT_LAYERPASS = (1 << 6), + GP_MIRROR_INVERT_MATERIAL = (1 << 7), } eMirrorGpencil_Flag; typedef struct HookGpencilModifierData { @@ -444,6 +474,8 @@ typedef struct HookGpencilModifierData { char subtarget[64]; /** Layer name. */ char layername[64]; + /** Material name. */ + char materialname[64]; /** Optional vertexgroup name, MAX_VGROUP_NAME. */ char vgname[64]; /** Custom index for passes. */ @@ -472,6 +504,7 @@ typedef enum eHookGpencil_Flag { GP_HOOK_INVERT_VGROUP = (1 << 2), GP_HOOK_UNIFORM_SPACE = (1 << 3), GP_HOOK_INVERT_LAYERPASS = (1 << 4), + GP_HOOK_INVERT_MATERIAL = (1 << 5), } eHookGpencil_Flag; typedef enum eHookGpencil_Falloff { @@ -490,6 +523,8 @@ typedef struct SimplifyGpencilModifierData { GpencilModifierData modifier; /** Layer name. */ char layername[64]; + /** Material name. */ + char materialname[64]; /** Custom index for passes. */ int pass_index; /** Flags. */ @@ -513,6 +548,7 @@ typedef enum eSimplifyGpencil_Flag { GP_SIMPLIFY_INVERT_LAYER = (1 << 0), GP_SIMPLIFY_INVERT_PASS = (1 << 1), GP_SIMPLIFY_INVERT_LAYERPASS = (1 << 2), + GP_SIMPLIFY_INVERT_MATERIAL = (1 << 3), } eSimplifyGpencil_Flag; typedef enum eSimplifyGpencil_Mode { @@ -530,6 +566,8 @@ typedef struct OffsetGpencilModifierData { GpencilModifierData modifier; /** Layer name. */ char layername[64]; + /** Material name. */ + char materialname[64]; /** Optional vertexgroup name, MAX_VGROUP_NAME. */ char vgname[64]; /** Custom index for passes. */ @@ -548,12 +586,15 @@ typedef enum eOffsetGpencil_Flag { GP_OFFSET_INVERT_PASS = (1 << 1), GP_OFFSET_INVERT_VGROUP = (1 << 2), GP_OFFSET_INVERT_LAYERPASS = (1 << 3), + GP_OFFSET_INVERT_MATERIAL = (1 << 4), } eOffsetGpencil_Flag; typedef struct SmoothGpencilModifierData { GpencilModifierData modifier; /** Layer name. */ char layername[64]; + /** Material name. */ + char materialname[64]; /** Optional vertexgroup name, MAX_VGROUP_NAME. */ char vgname[64]; /** Custom index for passes. */ @@ -578,6 +619,7 @@ typedef enum eSmoothGpencil_Flag { GP_SMOOTH_INVERT_VGROUP = (1 << 5), GP_SMOOTH_MOD_UV = (1 << 6), GP_SMOOTH_INVERT_LAYERPASS = (1 << 7), + GP_SMOOTH_INVERT_MATERIAL = (1 << 4), } eSmoothGpencil_Flag; typedef struct ArmatureGpencilModifierData { diff --git a/source/blender/makesrna/intern/rna_gpencil_modifier.c b/source/blender/makesrna/intern/rna_gpencil_modifier.c index f0582a5c330..617b4eb7e4a 100644 --- a/source/blender/makesrna/intern/rna_gpencil_modifier.c +++ b/source/blender/makesrna/intern/rna_gpencil_modifier.c @@ -360,6 +360,11 @@ static void rna_def_modifier_gpencilnoise(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Layer", "Layer name"); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "material", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "materialname"); + RNA_def_property_ui_text(prop, "Material", "Material name"); + RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE); RNA_def_property_string_sdna(prop, NULL, "vgname"); RNA_def_property_ui_text(prop, "Vertex Group", "Vertex group name for modulating the deform"); @@ -434,6 +439,11 @@ static void rna_def_modifier_gpencilnoise(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Inverse Layers", "Inverse filter"); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "invert_materials", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_NOISE_INVERT_MATERIAL); + RNA_def_property_ui_text(prop, "Inverse Materials", "Inverse filter"); + RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "invert_material_pass", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_NOISE_INVERT_PASS); RNA_def_property_ui_text(prop, "Inverse Pass", "Inverse filter"); @@ -471,6 +481,11 @@ static void rna_def_modifier_gpencilsmooth(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Layer", "Layer name"); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "material", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "materialname"); + RNA_def_property_ui_text(prop, "Material", "Material name"); + RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE); RNA_def_property_string_sdna(prop, NULL, "vgname"); RNA_def_property_ui_text(prop, "Vertex Group", "Vertex group name for modulating the deform"); @@ -525,6 +540,11 @@ static void rna_def_modifier_gpencilsmooth(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Inverse Layers", "Inverse filter"); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "invert_materials", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_SMOOTH_INVERT_MATERIAL); + RNA_def_property_ui_text(prop, "Inverse Materials", "Inverse filter"); + RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "invert_material_pass", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_SMOOTH_INVERT_PASS); RNA_def_property_ui_text(prop, "Inverse Pass", "Inverse filter"); @@ -562,6 +582,11 @@ static void rna_def_modifier_gpencilsubdiv(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Layer", "Layer name"); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "material", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "materialname"); + RNA_def_property_ui_text(prop, "Material", "Material name"); + RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "level", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "level"); RNA_def_property_range(prop, 0, 5); @@ -584,6 +609,11 @@ static void rna_def_modifier_gpencilsubdiv(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Inverse Layers", "Inverse filter"); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "invert_materials", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_SUBDIV_INVERT_MATERIAL); + RNA_def_property_ui_text(prop, "Inverse Materials", "Inverse filter"); + RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "invert_material_pass", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_SUBDIV_INVERT_PASS); RNA_def_property_ui_text(prop, "Inverse Pass", "Inverse filter"); @@ -640,6 +670,11 @@ static void rna_def_modifier_gpencilsimplify(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Layer", "Layer name"); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "material", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "materialname"); + RNA_def_property_ui_text(prop, "Material", "Material name"); + RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "factor", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "factor"); RNA_def_property_range(prop, 0, 100.0); @@ -658,6 +693,11 @@ static void rna_def_modifier_gpencilsimplify(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Inverse Layers", "Inverse filter"); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "invert_materials", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_SIMPLIFY_INVERT_MATERIAL); + RNA_def_property_ui_text(prop, "Inverse Materials", "Inverse filter"); + RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "invert_material_pass", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_SIMPLIFY_INVERT_PASS); RNA_def_property_ui_text(prop, "Inverse Pass", "Inverse filter"); @@ -716,6 +756,11 @@ static void rna_def_modifier_gpencilthick(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Layer", "Layer name"); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "material", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "materialname"); + RNA_def_property_ui_text(prop, "Material", "Material name"); + RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE); RNA_def_property_string_sdna(prop, NULL, "vgname"); RNA_def_property_ui_text(prop, "Vertex Group", "Vertex group name for modulating the deform"); @@ -739,6 +784,11 @@ static void rna_def_modifier_gpencilthick(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Inverse Layers", "Inverse filter"); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "invert_materials", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_THICK_INVERT_MATERIAL); + RNA_def_property_ui_text(prop, "Inverse Materials", "Inverse filter"); + RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "invert_material_pass", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_THICK_INVERT_PASS); RNA_def_property_ui_text(prop, "Inverse Pass", "Inverse filter"); @@ -791,6 +841,11 @@ static void rna_def_modifier_gpenciloffset(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Layer", "Layer name"); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "material", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "materialname"); + RNA_def_property_ui_text(prop, "Material", "Material name"); + RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE); RNA_def_property_string_sdna(prop, NULL, "vgname"); RNA_def_property_ui_text(prop, "Vertex Group", "Vertex group name for modulating the deform"); @@ -808,6 +863,11 @@ static void rna_def_modifier_gpenciloffset(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Inverse Layers", "Inverse filter"); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "invert_materials", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_OFFSET_INVERT_MATERIAL); + RNA_def_property_ui_text(prop, "Inverse Materials", "Inverse filter"); + RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "invert_material_pass", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_OFFSET_INVERT_PASS); RNA_def_property_ui_text(prop, "Inverse Pass", "Inverse filter"); @@ -868,6 +928,11 @@ static void rna_def_modifier_gpenciltint(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Layer", "Layer name"); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "material", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "materialname"); + RNA_def_property_ui_text(prop, "Material", "Material name"); + RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "color", PROP_FLOAT, PROP_COLOR_GAMMA); RNA_def_property_range(prop, 0.0, 1.0); RNA_def_property_float_sdna(prop, NULL, "rgb"); @@ -897,6 +962,11 @@ static void rna_def_modifier_gpenciltint(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Inverse Layers", "Inverse filter"); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "invert_materials", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_TINT_INVERT_MATERIAL); + RNA_def_property_ui_text(prop, "Inverse Materials", "Inverse filter"); + RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "invert_material_pass", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_TINT_INVERT_PASS); RNA_def_property_ui_text(prop, "Inverse Pass", "Inverse filter"); @@ -1015,6 +1085,11 @@ static void rna_def_modifier_gpencilcolor(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Layer", "Layer name"); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "material", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "materialname"); + RNA_def_property_ui_text(prop, "Material", "Material name"); + RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "hue", PROP_FLOAT, PROP_NONE); RNA_def_property_range(prop, 0.0, 1.0); RNA_def_property_ui_range(prop, 0.0, 1.0, 0.1, 3); @@ -1052,6 +1127,11 @@ static void rna_def_modifier_gpencilcolor(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Inverse Layers", "Inverse filter"); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "invert_materials", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_COLOR_INVERT_MATERIAL); + RNA_def_property_ui_text(prop, "Inverse Materials", "Inverse filter"); + RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "invert_material_pass", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_COLOR_INVERT_PASS); RNA_def_property_ui_text(prop, "Inverse Pass", "Inverse filter"); @@ -1089,6 +1169,11 @@ static void rna_def_modifier_gpencilopacity(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Layer", "Layer name"); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "material", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "materialname"); + RNA_def_property_ui_text(prop, "Material", "Material name"); + RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE); RNA_def_property_string_sdna(prop, NULL, "vgname"); RNA_def_property_ui_text(prop, "Vertex Group", "Vertex group name for modulating the deform"); @@ -1117,6 +1202,11 @@ static void rna_def_modifier_gpencilopacity(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Inverse Layers", "Inverse filter"); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "invert_materials", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_OPACITY_INVERT_MATERIAL); + RNA_def_property_ui_text(prop, "Inverse Materials", "Inverse filter"); + RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "invert_material_pass", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_OPACITY_INVERT_PASS); RNA_def_property_ui_text(prop, "Inverse Pass", "Inverse filter"); @@ -1154,6 +1244,11 @@ static void rna_def_modifier_gpencilinstance(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Layer", "Layer name"); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "material", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "materialname"); + RNA_def_property_ui_text(prop, "Material", "Material name"); + RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "pass_index", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "pass_index"); RNA_def_property_range(prop, 0, 100); @@ -1238,6 +1333,11 @@ static void rna_def_modifier_gpencilinstance(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Inverse Layers", "Inverse filter"); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "invert_materials", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_ARRAY_INVERT_MATERIAL); + RNA_def_property_ui_text(prop, "Inverse Materials", "Inverse filter"); + RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "invert_material_pass", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_ARRAY_INVERT_PASS); RNA_def_property_ui_text(prop, "Inverse Pass", "Inverse filter"); @@ -1424,6 +1524,11 @@ static void rna_def_modifier_gpencillattice(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Layer", "Layer name"); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "material", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "materialname"); + RNA_def_property_ui_text(prop, "Material", "Material name"); + RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE); RNA_def_property_string_sdna(prop, NULL, "vgname"); RNA_def_property_ui_text(prop, "Vertex Group", "Vertex group name for modulating the deform"); @@ -1441,6 +1546,11 @@ static void rna_def_modifier_gpencillattice(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Inverse Layers", "Inverse filter"); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "invert_materials", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_LATTICE_INVERT_MATERIAL); + RNA_def_property_ui_text(prop, "Inverse Materials", "Inverse filter"); + RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "invert_material_pass", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_LATTICE_INVERT_PASS); RNA_def_property_ui_text(prop, "Inverse Pass", "Inverse filter"); @@ -1493,6 +1603,11 @@ static void rna_def_modifier_gpencilmirror(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Layer", "Layer name"); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "material", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "materialname"); + RNA_def_property_ui_text(prop, "Material", "Material name"); + RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "pass_index", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "pass_index"); RNA_def_property_range(prop, 0, 100); @@ -1504,6 +1619,11 @@ static void rna_def_modifier_gpencilmirror(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Inverse Layers", "Inverse filter"); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "invert_materials", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_MIRROR_INVERT_MATERIAL); + RNA_def_property_ui_text(prop, "Inverse Materials", "Inverse filter"); + RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "invert_material_pass", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_MIRROR_INVERT_PASS); RNA_def_property_ui_text(prop, "Inverse Pass", "Inverse filter"); @@ -1580,6 +1700,11 @@ static void rna_def_modifier_gpencilhook(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Layer", "Layer name"); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "material", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "materialname"); + RNA_def_property_ui_text(prop, "Material", "Material name"); + RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE); RNA_def_property_string_sdna(prop, NULL, "vgname"); RNA_def_property_ui_text(prop, "Vertex Group", "Vertex group name for modulating the deform"); @@ -1597,6 +1722,11 @@ static void rna_def_modifier_gpencilhook(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Inverse Layers", "Inverse filter"); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "invert_materials", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_HOOK_INVERT_MATERIAL); + RNA_def_property_ui_text(prop, "Inverse Materials", "Inverse filter"); + RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "invert_material_pass", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_HOOK_INVERT_PASS); RNA_def_property_ui_text(prop, "Inverse Pass", "Inverse filter"); -- cgit v1.2.3