AtlasEngine: Incorrectly broken up MapCharacters runs should be joined before text shaping #18167
Labels
Area-AtlasEngine
Area-Rendering
Text rendering, emoji, complex glyph & font-fallback issues
Issue-Bug
It either shouldn't be doing this or needs an investigation.
Needs-Triage
It's a new issue that the core contributor team needs to triage at the next triage meeting
Priority-3
A description (P3)
Product-Terminal
The new Windows Terminal.
Milestone
Windows Terminal version
1.21.2911.0
Windows build number
10.0.19045.0
Other Software
No response
Steps to reproduce
Print https://unicode.org/Public/emoji/latest/emoji-test.txt under Windows 10.
Expected Behavior
All of the emojis work.
Actual Behavior
All emojis with a U+200D joiner are broken. This is because DirectWrite's
MapCharacters()
is kinda bad and breaks them up. We then pass the broken runs to text shaping which are unable to see that the emoji consists of multiple parts joined together. This causes them to look incorrectly. We need to join the broken runs first and then pass the result to text shaping.The text was updated successfully, but these errors were encountered: