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:
authorAntonio Vazquez <blendergit@gmail.com>2021-06-18 17:40:31 +0300
committerAntonio Vazquez <blendergit@gmail.com>2021-06-18 17:40:44 +0300
commit408726000a2720282563602e17d892a87b90e5f1 (patch)
treef391596a4ef4126f17ab4853e6dc5faacc9e3ed9 /source/blender
parente0f2f07d1e8bff3410edddc235b9c4d61f62c18f (diff)
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.
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/blenkernel/BKE_gpencil.h1
-rw-r--r--source/blender/blenkernel/intern/gpencil.c22
-rw-r--r--source/blender/editors/gpencil/gpencil_edit.c6
3 files changed, 24 insertions, 5 deletions
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
@@ -1103,6 +1103,28 @@ bGPDlayer *BKE_gpencil_layer_duplicate(const bGPDlayer *gpl_src,
}
/**
+ * 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.
*
* XXX: Should this be deprecated?
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 */