vectorcraft/crates/render/src
dotCooCoo 7975b07b22 Render: type with transparency, a blend mode or raster effects keeps its layout between frames
Only type at full opacity, in Normal blending and without object
effects took its glyph outlines from the geometry the renderer keeps
for each type object. Type at less than 100% opacity or in a blend
mode, and the art drawn for type with a drop shadow, glow, blur or
other raster effect, were laid out again in every frame.

draw_text now takes the geometry from text_geom_of when the type it
draws is fx_owner, the node draw_arc is drawing, and the frame does
not snap type to pixels. While the effect-art cache keeps type art,
that art is drawn as fx_owner. The geometry is laid out again when the
type is edited or the fonts change, and frames with Type Optimized
anti-aliasing lay type out as before. On 8 threads at 2880 x 1800, a
page of 1,000 type objects at 80% opacity takes 13 ms a frame instead
of 23 ms, with the same pixels.

Opaque type kept the layout of earlier frames when a symbol it shows
as an inline graphic changed size and the document's inline graphics
had not been resolved again. text_geom_of now lays type out without
the cache when the text it is given is not the node's own, such as the
copy that Document::inline_resolved makes with the new size.

Docs: docs/target-app-parity.md.
2026-10-14 06:01:10 +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 Symbols: instances of imported symbols are measured by their art 2026-10-14 04:56:30 +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: type with transparency, a blend mode or raster effects keeps its layout between frames 2026-10-14 06:01:10 +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 Render: type with transparency, a blend mode or raster effects keeps its layout between frames 2026-10-14 06:01:10 +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 Symbols: instances of imported symbols are measured by their art 2026-10-14 04:56:30 +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 #1486: a template layer stays in Preview in Outline view 2026-10-13 04:00:17 +07:00
tests_memory.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_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