mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-11-14 05:24:44 +00:00
The outline of the area a Blob Brush or Eraser drag covers was outlined again for the whole stroke on every frame, so a long stroke slowed the canvas as it grew. - The drag is outlined in pieces of up to 32 segments (one segment each with Size set to Pressure), and a frame outlines again only the pieces it added segments to. A grid of squares lists the segments near each square, and each piece's outline drops the parts inside the rest of the area, so the pieces show as one edge. - One frame takes at most 256 new points and a fixed amount of work; Tool::overlays_pending makes the canvas draw again until the rest is done with the pointer still. Points not outlined yet show as a thin line, and the tip shows at the pointer. - The settled outline is kept in joined paths of 64 pieces, and a frame joins again only the paths that changed. The grid's size is capped. - The Blob Brush's length label and the Size-by-pressure check keep running values instead of rescanning the stroke each frame. With Size set to Pressure the outline shows only the edge of the whole area. The release sends the same path.blob and path.eraseRegion parameters.