mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-24 09:46:59 -06:00
The renderer placed symbol art that holds a blend, an envelope or a repeat again for every instance in every frame. The live object in the placed copy was a new node each time, and the renderer evaluated it again. Symbol art that is itself a live object, an opacity mask whose art is one, and a live object in a clip group in Outline view were drawn from an uncached copy in every frame. At 1000 x 1000 pixels, 2,000 instances of a symbol holding an envelope took 126 ms a frame on main, and the same 2,000 envelopes on the page took 30 ms. The renderer now keeps the placed art of instances and inline graphics when it holds blends, envelopes or repeats, and when the art is itself a live object. It draws kept live art, opacity-mask art and Outline view clip members that are live objects from the live cache, which evaluates them again when the symbols, patterns, fonts or color settings they show change. The 2,000 instances take 28 ms a frame, with the same pixels. Docs: docs/target-app-parity.md