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:
authorMatias Mendiola <matias.mendiola@gmail.com>2019-08-21 09:30:45 +0300
committerAntonio Vazquez <blendergit@gmail.com>2019-08-21 09:41:19 +0300
commit3d8f1586973b1fbadf3cf45c66873d1a012764ee (patch)
treee856b4a1708c441878039f385fad982b37b4e8f1 /source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c
parent8ffbe398341ca81acbb1515864fa55027fa68766 (diff)
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
Diffstat (limited to 'source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c')
-rw-r--r--source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c22
1 files changed, 19 insertions, 3 deletions
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) {