[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