Commit: e3ad8a951b3915bc9cc9c25bc0155284b4d89102
Author: YimingWu
Date: Wed Oct 30 19:49:18 2019 +0800
Branches: temp-npr-gpencil-modifiers
https://developer.blender.org/rBe3ad8a951b3915bc9cc9c25bc0155284b4d89102
Gpencil: Add BKE_gpencil_add_stroke_existing_style() function.
This additionally copies the temp drawing color fields in gps->runtime.
So that when adding new strokes in the modifier the style is preserved.
===================================================================
M source/blender/blenkernel/BKE_gpencil.h
M source/blender/blenkernel/intern/gpencil.c
===================================================================
diff --git a/source/blender/blenkernel/BKE_gpencil.h
b/source/blender/blenkernel/BKE_gpencil.h
index 564844f04e3..21356db8abf 100644
--- a/source/blender/blenkernel/BKE_gpencil.h
+++ b/source/blender/blenkernel/BKE_gpencil.h
@@ -125,6 +125,12 @@ struct bGPDstroke *BKE_gpencil_add_stroke(struct bGPDframe
*gpf,
int totpoints,
short thickness);
+struct bGPDstroke *BKE_gpencil_add_stroke_existing_style(struct bGPDframe *gpf,
+ struct bGPDstroke
*existing,
+ int mat_idx,
+ int totpoints,
+ short thickness);
+
/* Stroke and Fill - Alpha Visibility Threshold */
#define GPENCIL_ALPHA_OPACITY_THRESH 0.001f
#define GPENCIL_STRENGTH_MIN 0.003f
diff --git a/source/blender/blenkernel/intern/gpencil.c
b/source/blender/blenkernel/intern/gpencil.c
index 9fb287c2155..1ccc8553d76 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -505,6 +505,18 @@ bGPDstroke *BKE_gpencil_add_stroke(bGPDframe *gpf, int
mat_idx, int totpoints, s
return gps;
}
+/* Add a stroke and copy the temporary drawing color value from one of the
existing stroke */
+bGPDstroke *BKE_gpencil_add_stroke_existing_style(
+ bGPDframe *gpf, bGPDstroke *existing, int mat_idx, int totpoints, short
thickness)
+{
+ bGPDstroke *gps = BKE_gpencil_add_stroke(gpf, mat_idx, totpoints, thickness);
+ /* Copy runtime color data so that strokes added in the modifier has the
style.
+ * There are depsgrapgh reference pointers inside,
+ * change the copy function if interfere with future drawing implementation.
*/
+ memcpy(&gps->runtime, &existing->runtime, sizeof(bGPDstroke_Runtime));
+ return gps;
+}
+
/* ************************************************** */
/* Data Duplication */
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs