From 631ddc5acc1369b66450ebf7ef1f1e894f5e4223 Mon Sep 17 00:00:00 2001 From: Antonioya Date: Sat, 29 Sep 2018 16:42:33 +0200 Subject: GP: New parameters for instance modifier: Material and On Top Now it's possible to define what material is used in the generated strokes and if the strokes are put in front of the original (default) or keep the original in front. Before, the generated strokes have been always on top of the original because they were drawn later. --- .../blender/gpencil_modifiers/intern/MOD_gpencilinstance.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'source/blender/gpencil_modifiers/intern/MOD_gpencilinstance.c') diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilinstance.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilinstance.c index 3f4183e5b7a..8c125ebb1cd 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencilinstance.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilinstance.c @@ -180,6 +180,11 @@ static void generate_geometry( mul_m4_v3(mat, &pt->x); } + /* if replace material, use new one */ + if ((mmd->mat_rpl > 0) && (mmd->mat_rpl <= ob->totcol)) { + gps_dst->mat_nr = mmd->mat_rpl - 1; + } + /* Add new stroke to cache, to be added to the frame once * all duplicates have been made */ @@ -191,7 +196,12 @@ static void generate_geometry( } /* merge newly created stroke instances back into the main stroke list */ - BLI_movelisttolist(&gpf->strokes, &stroke_cache); + if (mmd->flag & GP_INSTANCE_KEEP_ONTOP) { + BLI_movelisttolist_reverse(&gpf->strokes, &stroke_cache); + } + else { + BLI_movelisttolist(&gpf->strokes, &stroke_cache); + } /* free temp data */ MEM_SAFE_FREE(valid_strokes); -- cgit v1.2.3