mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-14 19:26:56 -04:00
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.