[Bf-blender-cvs] [7cc2461ebb5] temp-gpencil-bezier-stroke-type: GPencil: Refactor of geometry update II
Antonio Vazquez
noreply at git.blender.org
Tue Apr 13 16:11:20 CEST 2021
Commit: 7cc2461ebb5a7f80252708318380627a4bae2c90
Author: Antonio Vazquez
Date: Tue Apr 13 16:11:16 2021 +0200
Branches: temp-gpencil-bezier-stroke-type
https://developer.blender.org/rB7cc2461ebb5a7f80252708318380627a4bae2c90
GPencil: Refactor of geometry update II
===================================================================
M source/blender/blenkernel/intern/gpencil_curve.c
M source/blender/blenkernel/intern/gpencil_geom.c
M source/blender/editors/gpencil/gpencil_curve_draw.c
M source/blender/editors/gpencil/gpencil_edit.c
M source/blender/editors/gpencil/gpencil_paint.c
M source/blender/editors/gpencil/gpencil_primitive.c
M source/blender/editors/gpencil/gpencil_sculpt_paint.c
M source/blender/editors/gpencil/gpencil_utils.c
M source/blender/editors/transform/transform_convert_gpencil.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilarmature.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilarray.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilbuild.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilhook.c
M source/blender/gpencil_modifiers/intern/MOD_gpencillattice.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilmirror.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c
M source/blender/gpencil_modifiers/intern/MOD_gpenciloffset.c
M source/blender/gpencil_modifiers/intern/MOD_gpenciltexture.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilthick.c
M source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
===================================================================
diff --git a/source/blender/blenkernel/intern/gpencil_curve.c b/source/blender/blenkernel/intern/gpencil_curve.c
index 984eaae3b1a..11502a21449 100644
--- a/source/blender/blenkernel/intern/gpencil_curve.c
+++ b/source/blender/blenkernel/intern/gpencil_curve.c
@@ -461,7 +461,7 @@ static void gpencil_convert_spline(Main *bmain,
}
/* Recalc fill geometry. */
- BKE_gpencil_stroke_geometry_update(gpd, gps);
+ BKE_gpencil_stroke_geometry_update(gpd, gps, GP_GEO_UPDATE_DEFAULT);
}
static void gpencil_editstroke_deselect_all(bGPDcurve *gpc)
diff --git a/source/blender/blenkernel/intern/gpencil_geom.c b/source/blender/blenkernel/intern/gpencil_geom.c
index 121a0703c7a..d43a73fed4f 100644
--- a/source/blender/blenkernel/intern/gpencil_geom.c
+++ b/source/blender/blenkernel/intern/gpencil_geom.c
@@ -523,7 +523,7 @@ bool BKE_gpencil_stroke_sample(bGPdata *gpd, bGPDstroke *gps, const float dist,
gps->totpoints = i;
/* Calc geometry data. */
- BKE_gpencil_stroke_geometry_update(gpd, gps);
+ BKE_gpencil_stroke_geometry_update(gpd, gps, GP_GEO_UPDATE_DEFAULT);
return true;
}
@@ -694,7 +694,7 @@ bool BKE_gpencil_stroke_split(bGPdata *gpd,
* Keep the end point. */
BKE_gpencil_stroke_trim_points(gps, 0, old_count);
- BKE_gpencil_stroke_geometry_update(gpd, gps);
+ BKE_gpencil_stroke_geometry_update(gpd, gps, GP_GEO_UPDATE_DEFAULT);
return true;
}
@@ -1470,7 +1470,7 @@ bool BKE_gpencil_stroke_trim(bGPdata *gpd, bGPDstroke *gps)
MEM_SAFE_FREE(old_dvert);
}
- BKE_gpencil_stroke_geometry_update(gpd, gps);
+ BKE_gpencil_stroke_geometry_update(gpd, gps, GP_GEO_UPDATE_DEFAULT);
return intersect;
}
@@ -1647,7 +1647,7 @@ void BKE_gpencil_dissolve_points(bGPdata *gpd, bGPDframe *gpf, bGPDstroke *gps,
gps->totpoints = tot;
/* triangles cache needs to be recalculated */
- BKE_gpencil_stroke_geometry_update(gpd, gps);
+ BKE_gpencil_stroke_geometry_update(gpd, gps, GP_GEO_UPDATE_DEFAULT);
}
}
@@ -1795,7 +1795,7 @@ void BKE_gpencil_stroke_simplify_adaptive(bGPdata *gpd, bGPDstroke *gps, float e
gps->totpoints = j;
/* Calc geometry data. */
- BKE_gpencil_stroke_geometry_update(gpd, gps);
+ BKE_gpencil_stroke_geometry_update(gpd, gps, GP_GEO_UPDATE_DEFAULT);
MEM_SAFE_FREE(old_points);
MEM_SAFE_FREE(old_dvert);
@@ -1861,7 +1861,7 @@ void BKE_gpencil_stroke_simplify_fixed(bGPdata *gpd, bGPDstroke *gps)
gps->totpoints = j;
/* Calc geometry data. */
- BKE_gpencil_stroke_geometry_update(gpd, gps);
+ BKE_gpencil_stroke_geometry_update(gpd, gps, GP_GEO_UPDATE_DEFAULT);
MEM_SAFE_FREE(old_points);
MEM_SAFE_FREE(old_dvert);
@@ -1983,7 +1983,7 @@ void BKE_gpencil_stroke_subdivide(bGPdata *gpd, bGPDstroke *gps, int level, int
}
/* Calc geometry data. */
- BKE_gpencil_stroke_geometry_update(gpd, gps);
+ BKE_gpencil_stroke_geometry_update(gpd, gps, GP_GEO_UPDATE_DEFAULT);
}
/* Merge by distance ------------------------------------- */
@@ -2068,7 +2068,7 @@ void BKE_gpencil_stroke_merge_distance(bGPdata *gpd,
}
/* Calc geometry data. */
- BKE_gpencil_stroke_geometry_update(gpd, gps);
+ BKE_gpencil_stroke_geometry_update(gpd, gps, GP_GEO_UPDATE_DEFAULT);
}
typedef struct GpEdge {
@@ -2283,7 +2283,7 @@ static void gpencil_generate_edgeloops(Object *ob,
pt->strength = 1.0f;
}
- BKE_gpencil_stroke_geometry_update(gpd, gps_stroke);
+ BKE_gpencil_stroke_geometry_update(gpd, gps_stroke, GP_GEO_UPDATE_DEFAULT);
}
/* Free memory. */
@@ -2465,7 +2465,7 @@ bool BKE_gpencil_convert_mesh(Main *bmain,
BKE_gpencil_stroke_subdivide(gpd, gps_fill, 1, GP_SUBDIV_SIMPLE);
}
- BKE_gpencil_stroke_geometry_update(gpd, gps_fill);
+ BKE_gpencil_stroke_geometry_update(gpd, gps_fill, GP_GEO_UPDATE_DEFAULT);
}
}
}
@@ -2522,7 +2522,7 @@ void BKE_gpencil_transform(bGPdata *gpd, const float mat[4][4])
}
/* Distortion may mean we need to re-triangulate. */
- BKE_gpencil_stroke_geometry_update(gpd, gps);
+ BKE_gpencil_stroke_geometry_update(gpd, gps, GP_GEO_UPDATE_DEFAULT);
}
}
}
@@ -2614,7 +2614,7 @@ void BKE_gpencil_point_coords_apply(bGPdata *gpd, const GPencilPointCoordinates
}
/* Distortion may mean we need to re-triangulate. */
- BKE_gpencil_stroke_geometry_update(gpd, gps);
+ BKE_gpencil_stroke_geometry_update(gpd, gps, GP_GEO_UPDATE_DEFAULT);
}
}
}
@@ -2651,7 +2651,7 @@ void BKE_gpencil_point_coords_apply_with_mat4(bGPdata *gpd,
}
/* Distortion may mean we need to re-triangulate. */
- BKE_gpencil_stroke_geometry_update(gpd, gps);
+ BKE_gpencil_stroke_geometry_update(gpd, gps, GP_GEO_UPDATE_DEFAULT);
}
}
}
@@ -2868,7 +2868,7 @@ static void gpencil_stroke_join_islands(bGPdata *gpd,
/* add new stroke at head */
BLI_addhead(&gpf->strokes, join_stroke);
/* Calc geometry data. */
- BKE_gpencil_stroke_geometry_update(gpd, join_stroke);
+ BKE_gpencil_stroke_geometry_update(gpd, join_stroke, GP_GEO_UPDATE_DEFAULT);
/* remove first stroke */
BLI_remlink(&gpf->strokes, gps_first);
@@ -3017,7 +3017,7 @@ bGPDstroke *BKE_gpencil_stroke_delete_tagged_points(bGPdata *gpd,
}
else {
/* Calc geometry data. */
- BKE_gpencil_stroke_geometry_update(gpd, new_stroke);
+ BKE_gpencil_stroke_geometry_update(gpd, new_stroke, GP_GEO_UPDATE_DEFAULT);
if (next_stroke) {
BLI_insertlinkbefore(&gpf->strokes, next_stroke, new_stroke);
@@ -3102,10 +3102,9 @@ void BKE_gpencil_curve_delete_tagged_points(bGPdata *gpd,
BKE_gpencil_editcurve_recalculate_handles(new_stroke);
BKE_gpencil_curve_sync_selection(gpd, new_stroke);
- new_stroke->flag |= GP_STROKE_NEEDS_CURVE_UPDATE;
/* Calc geometry data. */
- BKE_gpencil_stroke_geometry_update(gpd, new_stroke);
+ BKE_gpencil_stroke_geometry_update(gpd, new_stroke, GP_GEO_UPDATE_DEFAULT);
if (next_stroke) {
BLI_insertlinkbefore(&gpf->strokes, next_stroke, new_stroke);
@@ -3136,10 +3135,9 @@ void BKE_gpencil_curve_delete_tagged_points(bGPdata *gpd,
BKE_gpencil_editcurve_recalculate_handles(gps_last);
BKE_gpencil_curve_sync_selection(gpd, gps_last);
- gps_last->flag |= GP_STROKE_NEEDS_CURVE_UPDATE;
/* Calc geometry data. */
- BKE_gpencil_stroke_geometry_update(gpd, gps_last);
+ BKE_gpencil_stroke_geometry_update(gpd, gps_last, GP_GEO_UPDATE_DEFAULT);
/* remove first one */
BLI_remlink(&gpf->strokes, gps_first);
@@ -3552,7 +3550,7 @@ void BKE_gpencil_stroke_uniform_subdivide(bGPdata *gpd,
}
/* Update the geometry of the stroke. */
- BKE_gpencil_stroke_geometry_update(gpd, gps);
+ BKE_gpencil_stroke_geometry_update(gpd, gps, GP_GEO_UPDATE_DEFAULT);
}
/**
@@ -4063,7 +4061,7 @@ bGPDstroke *BKE_gpencil_stroke_perimeter_from_view(struct RegionView3D *rv3d,
MEM_freeN(perimeter_points);
/* Triangles cache needs to be recalculated. */
- BKE_gpencil_stroke_geometry_update(gpd, perimeter_stroke);
+ BKE_gpencil_stroke_geometry_update(gpd, perimeter_stroke, GP_GEO_UPDATE_DEFAULT);
perimeter_stroke->flag |= GP_STROKE_SELECT | GP_STROKE_CYCLIC;
diff --git a/source/blender/editors/gpencil/gpencil_curve_draw.c b/source/blender/editors/gpencil/gpencil_curve_draw.c
index b6ea835bd29..f9b2c06ae60 100644
--- a/source/blender/editors/gpencil/gpencil_curve_draw.c
+++ b/source/blender/editors/gpencil/gpencil_curve_draw.c
@@ -490,7 +490,7 @@ static void gpencil_curve_draw_init(bContext *C, wmOperator *op, const wmEvent *
tcd->gpc = gpc;
/* Calc geometry data. */
- BKE_gpencil_stroke_geometry_update(tcd->gpd, gps);
+ BKE_gpencil_stroke_geometry_update(tcd->gpd, gps, GP_GEO_UPDATE_DEFAULT);
/* Initialize space conversion. */
gpencil_point_conversion_init(C, &tcd->gsc);
@@ -559,7 +559,7 @@ static void gpencil_curve_draw_update(bContext *C, tGPDcurve_draw *tcd)
break;
}
- BKE_gpencil_stroke_geometry_update(gpd, gps);
+ BKE_gpencil_stroke_geometry_update(gpd, gps, GP_GEO_UPDATE_DEFAULT);
DEG_id_tag_update(&gpd->id, ID_RECALC_COPY_ON_WRITE);
DEG_id_tag_update(&gpd->id, ID_RECALC_TRANSFORM | ID_RECALC_GEOMETRY);
diff --git a/source/blender/editors/gpencil/gpencil_edit.c b/source/blender/editors/gpencil/gpencil_edit.c
index b8f3c8d0bc0..54e6c3970c3 100644
--- a/source/blender/editors/gpencil/gpencil_edit.c
+++ b/source/blender/editors/gpencil/gpencil_edit.c
@@ -984,7 +984,7 @@ static void gpencil_duplicate_points(bGPdata *gpd,
}
}
- BKE_gpencil_stroke_geometry_update(gpd, gpsd);
+ BKE_gpencil_stroke_geometry_update(gpd, gpsd, GP_GEO_UPDATE_DEFAULT);
/* add to temp buffer */
gpsd->next = gpsd->prev = NULL;
@@ -1047,7 +1047,7 @@ static int gpencil_duplicate_exec(bContext *C, wmOperator *op)
BLI_strncpy(gpsd->runtime.tmp_layerinfo, gpl->info, sizeof(gpsd->runtime.tmp_layerinfo));
/* Initialize triangle information. */
- BKE_gpencil_stroke_geometry_update(gpd, gpsd);
+ BKE_gpencil_stroke_geometry_update(gpd, gpsd, GP_GEO_UPDATE_DEFAULT);
/* add to temp buffer */
gpsd->next = gpsd->prev = NULL;
@@ -1084,7 +1084,7 @@ static int gpencil_duplicate_exec(bContext *C, wmOperator *op)
BLI_strncpy(gpsd->runtime.tmp_layerinfo, gpl->info, sizeof(gpsd->runtime.tmp_layerinfo));
/* Initialize triangle information. */
- BKE_gpencil_stroke_geometry_update(gpd, gpsd);
+ BKE_gpencil_stroke_geometry_update(gpd, gpsd, GP_GEO_UPDATE_DEFAULT);
/* add to temp buffer */
gpsd->next = gpsd->prev = NULL;
@@ -1219,8 +1219,8 @@ static void gpencil_add_move_points(bGPdata *gpd, bGPDframe *gpf, bGPDstroke *gp
gpencil_copy_move_point(gps_new, gps->points, gps->dvert, i, 0, true);
/* Calc geometry data. */
- BKE_gpencil_stroke_geometry_update(gpd, gps);
- BKE_gpencil_stroke_geometry_update(gpd, gps_new);
+ BKE_gpencil_stroke_geometry_update(gpd, gps, GP_GEO_UPDATE_DEFAULT);
+ BKE_gpencil_stroke_geometry_update(gpd, gps_new, GP_GEO_UPDATE_DEFAULT);
/* Desel
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list