[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