mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-11-13 22:21:59 +00:00
When a painted live effect on a fill or stroke returned several fills or strokes, the next effect in that stack ran only on the first of them and the others took its geometry. A later live-effect plug-in, and a later geometry effect on strokes, now runs once on each of them in paint order, given the piece's fills and strokes and its own `_context.item`. Each run's pieces replace only that fill or stroke; a run that fails, is refused, is deferred or would pass the effects' budget leaves only its own fill or stroke as it was. Fills and strokes that keep the same path stay on one path, and a deferred run is listed at the source fill's or stroke's place. The results that are kept share the effects' budget, and each run's result is kept or left out whole. They are first placed with all the room the art leaves, and placed again with room kept for the piece's path when a fill or stroke left on that path finds no room. A result on the path before it costs nothing and is taken whatever room is left; a built-in effect that finds no room is built again with all the room the art leaves, and that result is taken only when it is on the path before it. A plug-in result is held only while it is placed: one that does not fit, or that moves onto the path before it, is let go at once, so the results held at one time stay within the budget however many fills and strokes the piece has. A result kept in the first placing is reused in the second without running the plug-in again. A painted piece's share of the budget is counted once at each later effect.