mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-11-08 22:28:09 +00:00
Layout kept no record of a run's face, so each paragraph looked up the face of its first character three times for its line metrics and once more to shape it. The layout now keeps each run's face the first time it is looked up and uses it for shaping, for paragraph metrics, for on-path type's empty line and for the column offset of vertical point type. Glyphs, positions, bounds and baselines do not change. A test-only helper lays text out looking every face up at each use, and a new test requires point, vertical point, area and path type laid out both ways to match exactly. The layouts of 5,000 short point type objects take a median of 215 million CPU cycles of the laying-out thread instead of 236 million in a release build (11 alternating runs of each build on Windows 11, measured while other builds were running).