mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-11-13 11:55:23 +00:00
The symbol instances the picker reads now share one limit of 16,000,000 placed objects, charged through charge_symbol_art and counted as the renderer counts them, so deeply nested or heavily repeated instances stop there. An instance whose art would pass the limit is left out with its own paints, as the canvas draws none of it. Pattern tiles carry the count in and out, and their art is read one level deeper than the object the pattern fills, so a chain of patterns shares the depth limit with the art around it; a pattern cut short there is read again where it is used less deep. The pixels read inside clip groups are now tested against at most 4,000,000 clipping-path elements in all. The clipped reads of one image share the work, a read outside clip groups keeps its own pixel budget, and when the work left can't test a pixel of every clipped read, the reads that fit are kept in order and the rest are left out. ImageBlob::sample_pixels takes a pixel budget for each pick.