vectorcraft/crates/render/src
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
..
encode Palette index: rustfmt 2026-10-13 10:52:38 +07:00
brush_fx.rs Render: raster effects are made again when patterns, symbols, images, settings or fonts change 2026-10-13 00:34:41 +07:00
freeform.rs #1244: render caches bounded by bytes, evicting the least recently used instead of clearing 2026-10-12 11:02:17 +07:00
fx.rs Render: effect rasters drawn after a pattern fill keep their place and size 2026-10-13 08:51:37 +07:00
group.rs Fix #787: raster exports keep translucent edges over opaque art opaque 2026-10-10 11:12:13 +07:00
images.rs #1244: one shared, byte-budgeted store for decoded images; render caches that sweep and stay bounded 2026-10-12 11:02:17 +07:00
ink.rs Part of #394: Appearance of Black › On Screen shows pure CMYK black as RGB black 2026-10-12 14:50:00 +07:00
lib.rs Fix #1534: paths made into guides take the guide colour and style of Preferences 2026-10-13 08:51:43 +07:00
live.rs #1244: render caches bounded by bytes, evicting the least recently used instead of clearing 2026-10-12 11:02:17 +07:00
lru.rs Render: the placed art of symbol instances and inline graphics is kept between frames 2026-10-12 18:56:39 +07:00
paint.rs Render: decode print-size rasters, and say when an image is missing from an export 2026-10-13 05:20:57 +07:00
pattern.rs Render: pattern tiles at different scales are kept between frames 2026-10-13 12:58:05 +07:00
placed_document.rs Placed documents: on screen, cached bitmaps made in the background 2026-10-08 12:20:51 -07:00
proof.rs M4.75: File → Print writes the job as a print-ready PDF: paper, scale, tiles, marks and bleed, separations 2026-10-05 15:13:10 +07:00
tests.rs Strokes: a zero-length subpath draws its round or projecting cap as a dot (fixes #1613) 2026-10-13 12:58:05 +07:00
tests_adjust.rs #1244: smaller objects: Node 352 -> 152 bytes, NodeKind 200 -> 80, and a cheaper undo estimate 2026-10-12 11:02:32 +07:00
tests_blend.rs M3.73: blend modes follow the reference formulas on screen, in SVG and in PDF 2026-10-05 00:27:31 +07:00
tests_charstroke.rs M3.40: stroke on type — the Stroke panel edits the characters' stroke 2026-10-05 01:09:55 +07:00
tests_clip.rs M3.26: clipping sets with any clip shape 2026-10-04 17:23:57 +07:00
tests_cmykblend.rs Part of #394: Appearance of Black › On Screen shows pure CMYK black as RGB black 2026-10-12 14:50:00 +07:00
tests_container.rs M3.68: groups, layers and type have their own fills, strokes and effects, with Contents and Characters rows 2026-10-05 00:59:34 +07:00
tests_fontchange.rs Render: raster effects are made again when patterns, symbols, images, settings or fonts change 2026-10-13 00:34:41 +07:00
tests_freeform.rs M3.81: freeform gradients: colour points with spread, smooth lines, first points placed inside the shape 2026-10-05 01:21:38 +07:00
tests_fxzoom.rs Fix #755: blurred type no longer shifts as the view moves 2026-10-10 10:27:49 +07:00
tests_isolation.rs #1244: smaller objects: Node 352 -> 152 bytes, NodeKind 200 -> 80, and a cheaper undo estimate 2026-10-12 11:02:32 +07:00
tests_knockout.rs #1244: smaller objects: Node 352 -> 152 bytes, NodeKind 200 -> 80, and a cheaper undo estimate 2026-10-12 11:02:32 +07:00
tests_layeropts.rs Fix #1486: a template layer stays in Preview in Outline view 2026-10-13 04:00:17 +07:00
tests_memory.rs Render: raster effects are made again when patterns, symbols, images, settings or fonts change 2026-10-13 00:34:41 +07:00
tests_objectfx.rs 3D and Materials: Inflate takes Twist, Taper and Cap 2026-10-13 05:22:00 +07:00
tests_placed_document.rs Placed documents: on screen, cached bitmaps made in the background 2026-10-08 12:20:51 -07:00
tests_setup.rs #1244: smaller objects: Node 352 -> 152 bytes, NodeKind 200 -> 80, and a cheaper undo estimate 2026-10-12 11:02:32 +07:00
tests_strokegradient.rs M3.83: gradients within, along or across a stroke 2026-10-05 05:47:54 +07:00
tests_tileedge.rs Fix #1534: paths made into guides take the guide colour and style of Preferences 2026-10-13 08:51:43 +07:00