figcraft/crates
BFlat 5f54fecca2
M8: 50k-layer zoomed-out renders and faster save/load (#63)
Canvas previews zoomed out to 50% or less draw levels of detail
(crates/render/src/lod.rs): subtrees under 2 device px are splatted as
their averaged paint colours (box filter, no paths or effects), text
under 4 px is greeked into bars, small solid rectangles are splatted and
rectangular clip layers are composited without the blend pipeline.
Image paints and masks keep the exact path. Exports, thumbnails and
every other render stay exact (Options::lod is off by default); render
bands are assembled with a row copy instead of a pixmap draw.

.figcraft documents are serialized straight into the compressor and
parsed straight from the text (a header pass reads version and image
index without building a value tree); layer and text fields at their
default values are left out (63 -> 22 MB of JSON at 50k layers, older
files still load); JSON members use deflate level 3.

At 50k layers: zoomed-to-fit render ~58 -> ~8 ms, save ~1.0 s -> ~0.09 s,
load ~0.86 s -> ~0.16 s.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 10:27:51 +07:00
..
color M3: paint: colour profiles (Display P3), image adjustment presets, style picker (#54) 2026-10-10 07:38:17 +07:00
doc M8: 50k-layer zoomed-out renders and faster save/load (#63) 2026-10-10 10:27:51 +07:00
engine M4: variable width strokes (#58) 2026-10-10 10:12:21 +07:00
format M8: 50k-layer zoomed-out renders and faster save/load (#63) 2026-10-10 10:27:51 +07:00
geom M0.1-M0.3: workspace, licences, geom/color/doc crates 2026-10-09 12:01:57 -04:00
layout M2: auto layout nesting: one-pass nested hug/fill, coherent sizing, drag across nested frames (#45) 2026-10-10 06:41:11 +07:00
mcp M6: REST import of prototypes and variables; export panel polish (#42) 2026-10-10 06:17:54 +07:00
pathops M4: variable width strokes (#58) 2026-10-10 10:12:21 +07:00
pdf M3: paint: colour profiles (Display P3), image adjustment presets, style picker (#54) 2026-10-10 07:38:17 +07:00
render M8: 50k-layer zoomed-out renders and faster save/load (#63) 2026-10-10 10:27:51 +07:00
svg M0.9: MCP server + figcraft-cli, PDF export, web app, release/CI packaging, vector edit mode, workspace lint cleanup 2026-10-09 13:31:53 -04:00
text M4: arrow keys move visually through right-to-left text (#44) 2026-10-10 06:26:26 +07:00
ui-egui M8: 50k-layer zoomed-out renders and faster save/load (#63) 2026-10-10 10:27:51 +07:00