From 408726000a2720282563602e17d892a87b90e5f1 Mon Sep 17 00:00:00 2001 From: Antonio Vazquez Date: Fri, 18 Jun 2021 16:40:31 +0200 Subject: GPencil: Move copy layer settings to function Better to have a function that can be reused to duplicate the settings that need to be copied. --- source/blender/blenkernel/BKE_gpencil.h | 1 + source/blender/blenkernel/intern/gpencil.c | 22 ++++++++++++++++++++++ source/blender/editors/gpencil/gpencil_edit.c | 6 +----- 3 files changed, 24 insertions(+), 5 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_gpencil.h b/source/blender/blenkernel/BKE_gpencil.h index bb145580928..d0a1f102a43 100644 --- a/source/blender/blenkernel/BKE_gpencil.h +++ b/source/blender/blenkernel/BKE_gpencil.h @@ -119,6 +119,7 @@ struct bGPDframe *BKE_gpencil_frame_duplicate(const struct bGPDframe *gpf_src, struct bGPDlayer *BKE_gpencil_layer_duplicate(const struct bGPDlayer *gpl_src, const bool dup_frames, const bool dup_strokes); +void BKE_gpencil_layer_copy_settings(const struct bGPDlayer *gpl_src, struct bGPDlayer *gpl_dst); void BKE_gpencil_frame_copy_strokes(struct bGPDframe *gpf_src, struct bGPDframe *gpf_dst); void BKE_gpencil_frame_selected_hash(struct bGPdata *gpd, struct GHash *r_list); diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c index 6d1476485ca..4324287caf2 100644 --- a/source/blender/blenkernel/intern/gpencil.c +++ b/source/blender/blenkernel/intern/gpencil.c @@ -1102,6 +1102,28 @@ bGPDlayer *BKE_gpencil_layer_duplicate(const bGPDlayer *gpl_src, return gpl_dst; } +/** + * Make a copy of a given gpencil layer settings. + */ +void BKE_gpencil_layer_copy_settings(const bGPDlayer *gpl_src, bGPDlayer *gpl_dst) +{ + gpl_dst->line_change = gpl_src->line_change; + copy_v4_v4(gpl_dst->tintcolor, gpl_src->tintcolor); + gpl_dst->opacity = gpl_src->opacity; + gpl_dst->vertex_paint_opacity = gpl_src->vertex_paint_opacity; + gpl_dst->pass_index = gpl_src->pass_index; + gpl_dst->parent = gpl_src->parent; + copy_m4_m4(gpl_dst->inverse, gpl_src->inverse); + BLI_strncpy(gpl_dst->parsubstr, gpl_src->parsubstr, 64); + gpl_dst->partype = gpl_src->partype; + BLI_strncpy(gpl_dst->viewlayername, gpl_src->viewlayername, 64); + copy_v3_v3(gpl_dst->location, gpl_src->location); + copy_v3_v3(gpl_dst->rotation, gpl_src->rotation); + copy_v3_v3(gpl_dst->scale, gpl_src->scale); + copy_m4_m4(gpl_dst->layer_mat, gpl_src->layer_mat); + copy_m4_m4(gpl_dst->layer_invmat, gpl_src->layer_invmat); +} + /** * Make a copy of a given gpencil data-block. * diff --git a/source/blender/editors/gpencil/gpencil_edit.c b/source/blender/editors/gpencil/gpencil_edit.c index 3da75a665a2..02b9fb6549b 100644 --- a/source/blender/editors/gpencil/gpencil_edit.c +++ b/source/blender/editors/gpencil/gpencil_edit.c @@ -4618,11 +4618,7 @@ static int gpencil_stroke_separate_exec(bContext *C, wmOperator *op) /* add layer if not created before */ if (gpl_dst == NULL) { gpl_dst = BKE_gpencil_layer_addnew(gpd_dst, gpl->info, false, false); - gpl_dst->line_change = gpl->line_change; - copy_v4_v4(gpl_dst->tintcolor, gpl->tintcolor); - gpl_dst->opacity = gpl->opacity; - gpl_dst->blend_mode = gpl->blend_mode; - gpl_dst->vertex_paint_opacity = gpl->vertex_paint_opacity; + BKE_gpencil_layer_copy_settings(gpl, gpl_dst); } /* add frame if not created before */ -- cgit v1.2.3