Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AtlasEngine: Incorrectly broken up MapCharacters runs should be joined before text shaping #18167

Open
lhecker opened this issue Nov 7, 2024 · 1 comment
Assignees
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.

Comments

@lhecker
Copy link
Member

lhecker commented Nov 7, 2024

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.

@lhecker lhecker added 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. Priority-3 A description (P3) Product-Terminal The new Windows Terminal. labels Nov 7, 2024
@lhecker lhecker added this to the Terminal v1.23 milestone Nov 7, 2024
@lhecker lhecker self-assigned this Nov 7, 2024
@microsoft-github-policy-service microsoft-github-policy-service bot added the Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting label Nov 7, 2024
@o-sdn-o
Copy link

o-sdn-o commented Nov 7, 2024

FYI. On Windows 10, not all emoji clusters are displayed correctly even in the browsers (I tested it only in FireFox and Edge). E.g. 🧔‍♂.

I suspect that this is due to a lack of fonts supplied with the OS.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
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.
Projects
None yet
Development

No branches or pull requests

2 participants