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

Handle glyph widths up to the maximum device texture size #5278

Merged
merged 5 commits into from
Jan 7, 2025

Conversation

Tyriar
Copy link
Member

@Tyriar Tyriar commented Jan 6, 2025

Fixes #5246

This adds a new special overflow atlas page of the maximum device texture size when large glyphs are needed. This is inherently slower to upload to the GPU, but it's a one time cost per glyph. This is how it looks after writing a series of - and =:

image

image

Notes:

  • There isn't any handling for when this overflows that texture as it will likely never happen in practice.
  • This should also avoid the merge logic as the texture size is already the largest supported by the GPU.
  • There are many ways we could improve this, like handling ligatures on a per cell level and then de-duplicating identical glyphs. This would need a fairly large refactor and we'd probably want to simplify the texture atlas merging if we went this route.

@Tyriar Tyriar added this to the 6.0.0 milestone Jan 6, 2025
@Tyriar Tyriar self-assigned this Jan 6, 2025
@Tyriar Tyriar changed the title Prototype of adding a large atlas page for overflow glyphs Handle glyph widths up to the maximum device texture size Jan 7, 2025
@Tyriar Tyriar marked this pull request as ready for review January 7, 2025 14:34
@Tyriar Tyriar enabled auto-merge January 7, 2025 14:37
@Tyriar Tyriar merged commit ffc6125 into xtermjs:master Jan 7, 2025
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Ligatures have a maximum width
1 participant