mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-14 19:26:56 -04:00
The renderer kept the evaluation of each blend, envelope and repeat while the object and a hash stayed the same: the addresses of the art of the symbols the object showed and of the patterns it painted with, and the patterns' tile bounds. When anything else the evaluation reads changed, such as a pattern's tile type, symbols in symbol art, the fonts or the color settings, a renderer that had drawn the object went on drawing the old evaluation. The quads of a gradient mesh were kept the same way after a change to the color settings, and the art drawn for a live object with an effect of its own was kept by the object's address alone. resources_key now also walks the opacity-mask, symbol and pattern art it finds. It hashes what it finds, the font generation when it finds type or a placed document, and the color settings. Mesh quads are made again when the color settings change. The art drawn for an object's effects is made again when the hash changes, if it was made from evaluated live objects. With other builds running, a temporary release test timed the hash for 400 live objects at 17 to 506 microseconds a frame, against 10 to 16 before. Docs: docs/target-app-parity.md, docs/gaps.md.