mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-11-15 19:24:42 +00:00
The outline a Blob Brush or Eraser drag shows was copied, flattened and tessellated again every frame, settled parts included, so the per-frame cost of a long stroke grew with its whole length. - The settled outline blocks are kept as shared paths and returned as a new Overlay::SharedPath; a block gets a new path only when it is joined again. - The canvas keeps the mesh each shared path was drawn with, by the path's allocation and for the view, clip and stroke it was built for. A frame with the same path and view draws the kept mesh; a pan, zoom or rotation builds it once more. Lines outside the canvas get no triangles. A frame keeps only the meshes it draws. egui still copies each kept mesh into the frame's mesh on every repaint. The release sends the same path.blob and path.eraseRegion command as before. The round Eraser tip's line is unchanged.