vectorcraft/crates/render/src
bflatastic 0efcaeb558 Importers: a brush that draws itself by name no longer crashes
A scatter brush whose art is an instance of a symbol stroked with that brush, or any brush whose
art is painted with a pattern whose tile is stroked with it, drew itself without end: a stack
overflow in a hand-written native file. Brush pieces already strip the brushes of their own
strokes; now what they draw by name that would draw a brushed stroke (a symbol instance, or a
pattern paint, also through the symbols and patterns those use) is left out too, in one place
(`stroke_pieces`, which every renderer and exporter calls with the document).

Probed the rest of item 2 of the depth follow-up with hand-written hostile inputs, kept as tests:
graph designs of deep art and of a symbol holding itself, Affinity groups nested to and past
both of its reader's caps, DXF blocks inserting themselves, EMF/WMF saving states without end,
and plug-in manifests and output nested 30,000 to 100,000 deep. None of them overflowed.
2026-10-14 10:13:45 +07:00
..
encode Part of #394: Appearance of Black › Printing / Exporting draws pure CMYK black as RGB black 2026-10-14 05:11:55 +07:00
brush_fx.rs Importers: a brush that draws itself by name no longer crashes 2026-10-14 10:13:45 +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 Fix #1723: a pattern's tile is drawn again when what its art shows changes 2026-10-14 09:02:28 +07:00
group.rs Render: the canvas no longer draws its picture back for each non-isolated group that blends 2026-10-14 04:56:29 +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 Render: the ink planes of CMYK documents with transparency are composed on several threads 2026-10-14 04:56:30 +07:00
lib.rs Fix #1683: a template layer dims its images by Dim Images, not the whole layer 2026-10-14 09:02:28 +07:00
live.rs Symbols: instances of imported symbols are measured by their art 2026-10-14 04:56:30 +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 Fix #1723: a pattern's tile is drawn again when what its art shows changes 2026-10-14 09:02:28 +07:00
placed_document.rs Symbols: instances of imported symbols are measured by their art 2026-10-14 04:56:30 +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 Symbols: instances of imported symbols are measured by their art 2026-10-14 04:56:30 +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 Render: the ink planes of CMYK documents with transparency are composed on several threads 2026-10-14 04:56:30 +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: type with transparency, a blend mode or raster effects keeps its layout between frames 2026-10-14 06:01:10 +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 Render: the canvas no longer draws its picture back for each non-isolated group that blends 2026-10-14 04:56:29 +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 #1683: a template layer dims its images by Dim Images, not the whole layer 2026-10-14 09:02:28 +07:00
tests_memory.rs Fix #1723: a pattern's tile is drawn again when what its art shows changes 2026-10-14 09:02:28 +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 Render: live objects are evaluated again when patterns, symbols, fonts or color settings change 2026-10-14 04:56:29 +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