vectorcraft/crates/text/src
dotCooCoo a1a27636e1 Fonts: a missing font's name is looked up once until fonts are added or rescanned
For a name that is neither a loaded nor an installed family,
FontDb::canonical built the list of names of every loaded face on
every call. Layout asks for a style's face for each span it shapes
and three more times per paragraph, so the time to lay out type set
in a font that is not installed grew with the number of fonts loaded:
a story of 1,000 paragraphs took a median of 409 to 507 ms in a
release build with 400 fonts added.

The database now keeps canonical's answer for each such name and style
until fonts are added or rescanned, and it keeps at most 4,096
answers. The same story takes a median of 56 to 71 ms, and canonical
gives the same answers as before.

Docs: docs/target-app-parity.md.
2026-10-14 06:01:10 +07:00
..
composer.rs M7: Every-line Composer for ragged text 2026-10-08 14:03:33 -07:00
craft_fonts.rs Type: Noto Sans Thai from craft-fonts is the Thai fallback, on the web too 2026-10-11 19:52:08 +07:00
edit.rs Type: the caret and double-click take Thai word by word 2026-10-11 20:06:39 +07:00
embed.rs Fix #296: variable fonts list and draw every named style 2026-10-07 21:01:26 +07:00
features.rs Type: stylistic sets, alternates, titling, figure styles, superscript and subscript 2026-10-13 13:36:40 +07:00
fontconfig.rs Fix #1529: Linux reads the font folders fontconfig is set up with 2026-10-13 06:56:37 +07:00
fontdb.rs Fonts: a missing font's name is looked up once until fonts are added or rescanned 2026-10-14 06:01:10 +07:00
hyphen.rs Hyphenation exceptions: unit tests read only their thread's list 2026-10-10 06:02:48 +07:00
layout.rs Area type: a word too wide for the top lines of a shape moves down instead of breaking (fixes #1615) 2026-10-13 12:58:05 +07:00
lib.rs Type: stylistic sets, alternates, titling, figure styles, superscript and subscript 2026-10-13 13:36:40 +07:00
shape.rs Type: Proportional Metrics bring their kerning — `apkn` with `palt`, `vkrn` and `vapk` with `vpal` (#966) 2026-10-12 07:25:55 +07:00
suitcase.rs Fonts: a folder search skips suitcase fonts whose resource fork is over 8 MB 2026-10-10 08:42:32 +07:00
test_fonts.rs Fix #813: type can name an installed version of its font 2026-10-09 19:26:51 +00:00
tests.rs Release: embed the current craft-fonts (Thai, Arabic, Chinese) 2026-10-11 20:47:46 +07:00
tests_bidi.rs TEST.1: correct font shaping and embedding oracles 2026-10-12 06:59:49 +07:00
tests_combos.rs M7: tests for the text engine features combined 2026-10-08 20:30:14 -07:00
tests_embed.rs Package: fonts found by any of their names are copied, and skipped fonts are named 2026-10-09 08:35:16 -07:00
tests_fit.rs #1034: scaled type shows and takes its scaled sizes 2026-10-11 07:00:34 +07:00
tests_inline.rs M7: inline art follows vertically aligned lines 2026-10-08 20:30:14 -07:00
tests_scripts.rs M4.20: Document Setup with bleed, transparency grid, paper and type options 2026-10-05 08:28:16 +07:00
tests_snap.rs M4.34: raster export options and PNG Options — resolution, background, anti-aliasing, interlacing 2026-10-05 09:14:11 +07:00
tests_sysfonts.rs Fonts: a missing font's name is looked up once until fonts are added or rescanned 2026-10-14 06:01:10 +07:00
tests_typo.rs Area type: a word too wide for the top lines of a shape moves down instead of breaking (fixes #1615) 2026-10-13 12:58:05 +07:00
tests_variable.rs fix: フォントのフルネームを正しい書体へ解決する #1258 2026-10-12 07:25:51 +07:00
tests_versions.rs Fix #813: type can name an installed version of its font 2026-10-09 19:26:51 +00:00
tests_vertical.rs Type: Proportional Metrics bring their kerning — `apkn` with `palt`, `vkrn` and `vapk` with `vpal` (#966) 2026-10-12 07:25:55 +07:00
thread.rs M7: inline symbols in text 2026-10-08 15:45:34 -07:00