Mitchell Hashimoto 1aa932f810 font/coretext: use CTFontCreateForString for final codepoint fallback
Fixes #2499

We rely on CoreText's font discovery to find the best font for a
fallback by using the character set attribute. It appears that for some
codepoints, the character set attribute is not enough to find a font
that supports the codepoint.

In this case, we use CTFontCreateForString to find the font that
CoreText would use. The one subtlety here is we need to ignore the
last resort font, which just has replacement glyphs for all codepoints.

We already had a function to do this for CJK characters (#1637)
thankfully so we can just reuse that!

This also fixes a bug where CTFontCreateForString range param expects
the range length to be utf16 code units, not utf32.
2024-10-25 21:29:45 -07:00
..
2024-09-19 09:22:07 -07:00
2024-08-16 16:38:04 -07:00
2024-08-16 16:50:41 -07:00
2024-08-16 16:39:33 -07:00
2024-08-16 16:39:33 -07:00
2024-05-08 09:49:16 -07:00
2024-09-19 09:22:07 -07:00
2024-08-16 16:38:04 -07:00
2024-08-16 16:38:04 -07:00
2024-09-19 09:22:07 -07:00
2024-08-16 16:39:33 -07:00
2024-08-16 16:50:41 -07:00
2024-08-16 16:39:33 -07:00