-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
Related: #53
Importance: probably low since harfbuzz/ttf-parser#68
Run-splitting must discover the font face to be used for each character. For this we use FontLibrary::face_for_char
which iterates through all applicable faces, using Face::glyph_index
on each, returning the FaceId
of the first matching face (but discarding the GlyphId
which is rediscovered during shaping).
There are a few possible optimisations here (but 2 and 3 conflict):
- Batch look-ups.
prepare_runs
callsface_for_char_or_first
for each char; it may be faster to iterate through chars for each subtable (see0.12
to0.13
performance regressions harfbuzz/ttf-parser#76). The same could be done inshape_simple
. - Add a
Face::contains_glyph
method tottf-parser
(using theglyph_index
method as a starting point, this should not be hard, but requires additional testing). - Cache both
FaceId
andGlyphId
for use when shaping. This should be usable forshape_simple
though probably not for Rustybuzz or Harfbuzz backends, so not particularly useful.
Metadata
Metadata
Assignees
Labels
No labels