vectorcraft/crates/render
dotCooCoo 35d6aa0a16 Render: pattern tiles at different scales are kept between frames
The renderer kept one tile per pattern name and ink plane, and used it
only at the raster scale it was made at: the device scale rounded up to
a power of two and capped. Two objects that paint one pattern at scales
for which the raster scale differs, such as a pattern scaled to 25%
with Transform Pattern Tiles next to the same pattern at 100%, replaced
each other's tile, and every frame rasterized both tiles again.

Tiles are now kept per pattern name and raster scale, within the tile
cache's budget of 128 MiB per thread and ink plane. When the budget
fills, the cache drops the least recently used tiles first. A tile is
still used only while the pattern's art, tile, tile type and overlap
are the ones it was made from. At 760%, with a pattern of 576 stars in
a 288 pt tile on a rectangle that fills the view, and the same pattern
at 25% on a square, release builds of vectorcraft-cli bench at
2880x1800 took a median of 26.0 ms a frame on main and 8.8 ms with this
change, with 8 threads.

Docs: docs/target-app-parity.md.
2026-10-13 12:58:05 +07:00
..
examples Robustness: VectorCraft never crashes — no panics in shipped code 2026-10-05 06:28:59 +07:00
src Render: pattern tiles at different scales are kept between frames 2026-10-13 12:58:05 +07:00
tests Render: a shape far beyond any page is left undrawn, never crashing the app 2026-10-11 16:13:30 +07:00
Cargo.toml M4.70: PSD export, flat or with layers, groups for sublayers and text layers named after their text 2026-10-05 16:12:03 +07:00