[Bf-blender-cvs] [a7ae33202fa] greasepencil-object: Merge branch 'master' into greasepencil-object
Antonio Vazquez
noreply at git.blender.org
Thu Feb 10 17:00:23 CET 2022
Commit: a7ae33202fa94a52235fbe595873d81e482d5f58
Author: Antonio Vazquez
Date: Thu Feb 10 16:59:57 2022 +0100
Branches: greasepencil-object
https://developer.blender.org/rBa7ae33202fa94a52235fbe595873d81e482d5f58
Merge branch 'master' into greasepencil-object
Conflicts:
release/scripts/startup/bl_ui/space_userpref.py
source/blender/blenkernel/BKE_gpencil.h
source/blender/blenkernel/BKE_gpencil_update_cache.h
source/blender/blenkernel/CMakeLists.txt
source/blender/blenkernel/intern/gpencil.c
source/blender/blenkernel/intern/gpencil_update_cache.c
source/blender/blenlib/BLI_listbase.h
source/blender/blenlib/intern/DLRB_tree.c
source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc
source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_gpencil.cc
source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_gpencil.h
source/blender/makesdna/DNA_gpencil_types.h
source/blender/makesrna/intern/rna_gpencil.c
===================================================================
===================================================================
diff --cc source/blender/blenkernel/BKE_gpencil.h
index ab7961c479e,fd8996993c0..6397298c904
--- a/source/blender/blenkernel/BKE_gpencil.h
+++ b/source/blender/blenkernel/BKE_gpencil.h
@@@ -192,6 -192,6 +192,17 @@@ void BKE_gpencil_layer_copy_settings(co
*/
void BKE_gpencil_frame_copy_settings(const struct bGPDframe *gpf_src, struct bGPDframe *gpf_dst);
++/**
++ * Make a copy of a given gpencil stroke settings.
++ */
++void BKE_gpencil_stroke_copy_settings(const struct bGPDstroke *gpf_src,
++ struct bGPDstroke *gpf_dst);
++
++/**
++ * Make a copy of a given gpencil frame settings.
++ */
++void BKE_gpencil_frame_copy_settings(const struct bGPDframe *gpf_src, struct bGPDframe *gpf_dst);
++
/**
* Make a copy of a given gpencil stroke settings.
*/
diff --cc source/blender/blenkernel/intern/gpencil.c
index ceb1195e817,6e39125b252..c4e0b924ffa
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@@ -1076,29 -1075,33 +1076,55 @@@ void BKE_gpencil_stroke_copy_settings(c
copy_v4_v4(gps_dst->vert_color_fill, gps_src->vert_color_fill);
}
+ bGPdata *BKE_gpencil_data_duplicate(Main *bmain, const bGPdata *gpd_src, bool internal_copy)
+ {
- bGPdata *gpd_dst;
++ gpf_dst->flag = gpf_src->flag;
++ gpf_dst->key_type = gpf_src->key_type;
++ gpf_dst->framenum = gpf_src->framenum;
++}
+
- /* Yuck and super-uber-hyper yuck!!!
- * Should be replaceable with a no-main copy (LIB_ID_COPY_NO_MAIN etc.), but not sure about it,
- * so for now keep old code for that one. */
++void BKE_gpencil_stroke_copy_settings(const bGPDstroke *gps_src, bGPDstroke *gps_dst)
++{
++ gps_dst->thickness = gps_src->thickness;
++ gps_dst->flag = gps_src->flag;
++ gps_dst->inittime = gps_src->inittime;
++ gps_dst->mat_nr = gps_src->mat_nr;
++ copy_v2_v2_short(gps_dst->caps, gps_src->caps);
++ gps_dst->hardeness = gps_src->hardeness;
++ copy_v2_v2(gps_dst->aspect_ratio, gps_src->aspect_ratio);
++ gps_dst->fill_opacity_fac = gps_dst->fill_opacity_fac;
++ copy_v3_v3(gps_dst->boundbox_min, gps_src->boundbox_min);
++ copy_v3_v3(gps_dst->boundbox_max, gps_src->boundbox_max);
++ gps_dst->uv_rotation = gps_src->uv_rotation;
++ copy_v2_v2(gps_dst->uv_translation, gps_src->uv_translation);
++ gps_dst->uv_scale = gps_src->uv_scale;
++ gps_dst->select_index = gps_src->select_index;
++ copy_v4_v4(gps_dst->vert_color_fill, gps_src->vert_color_fill);
++}
+
+void BKE_gpencil_data_duplicate(Main *bmain, const bGPdata *gpd_src, bGPdata **gpd_dst)
+{
/* error checking */
if (gpd_src == NULL) {
- return NULL;
+ return;
}
- if (internal_copy) {
- /* make a straight copy for undo buffers used during stroke drawing */
- gpd_dst = MEM_dupallocN(gpd_src);
+ bGPdata *gpd_new = *gpd_dst;
+
+ if (bmain == NULL) {
+ if (gpd_new == NULL) {
+ *gpd_dst = MEM_dupallocN(gpd_src);
+ gpd_new = *gpd_dst;
+ }
+ else {
+ *gpd_new = *gpd_src;
+ }
+ greasepencil_copy_data(NULL, (ID *)gpd_new, (ID *)gpd_src, 0);
+ gpd_new->runtime.update_cache = NULL;
}
else {
- BLI_assert(bmain != NULL);
- gpd_dst = (bGPdata *)BKE_id_copy(bmain, &gpd_src->id);
+ *gpd_dst = (bGPdata *)BKE_id_copy(bmain, &gpd_src->id);
}
-
- /* Copy internal data (layers, etc.) */
- greasepencil_copy_data(bmain, &gpd_dst->id, &gpd_src->id, 0);
-
- /* return new */
- return gpd_dst;
}
/* ************************************************** */
More information about the Bf-blender-cvs
mailing list