mirror of
https://github.com/wez/wezterm.git
synced 2024-12-18 19:01:36 +03:00
a063d20cf0
This is one of those massive time sinks that I almost regret... As part of recent changes to dust-off the allsorts shaper, I noticed that the harfbuzz shaper wasn't shaping as well as the allsorts one. This commit: * Adds emoji-test.txt, a text file you can `cat` to see how well the emoji are shaped and rendered. * Fixes (or at least, improves) the column width calculation for combining sequences such as "deaf man" which was previously calculated at 3 cells in width when it should have just been 2 cells wide, which resulted in a weird "prismatic" effect during rendering where the glyph would be rendered with an extra RHS portion of the glyph across 3 cells. * Improved/simplified the clustering logic used to compute fallbacks. Previously we could end up with some wonky/disjoint sequence of undefined glyphs which wouldn't be successfully resolved from a fallback font. We now make a better effort to consolidate runs of undefined glyphs for fallback. * For sequences such as "woman with veil: dark skin tone" that occupy a single cell, the shaper may return 3 clusters with 3 glyphs in the case that the font doesn't fully support this grapheme. At render time we'd just take the last glyph from that sequence and render it, resulting in eg: a female symbol in this particular case. It is generally a bit more useful to show the first glyph in the sequence (eg: person with veil) rather than the gender or skin tone, so the renderer now checks for this kind of overlapping sequence and renders only the first glyph from the sequence. |
||
---|---|---|
.. | ||
emoji-test.txt |