terminal
terminal copied to clipboard
Block Elements not rendering correctly with AtlasEngine enabled
Windows Terminal version
1.16.2642.0
Windows build number
10.0.22000.0
Other Software
No response
Steps to reproduce
In PowerShell with the default Cascadia Mono font, run: Write-Host "`u{2595}`u{2594}`n`u{2595}`u{2581}"
Expected Behavior
In version 1.15.2525.0 or 1.16.2642.0 with AtlasEngine disabled:

Actual Behavior
The top is cut off:

Might be same underlying issue as #14022
Note to self/team: The block character scaling technique in _getCachedGlyphLayout is inherently flawed as I realized yesterday. What it does is:
- Get the glyph's advance width/height
- Resize to match the cell size
This doesn't work with fonts that use side bearings for block characters. A better way would be to assume that all fonts that define any block character also probably define the U+2588 Full Block character. That way we can do:
- Get the font's full block glyph
- Get the actual size including side bearings of the full block
- Resize to match the cell size but apply the scale to the given glyph instead
@lhecker, while I agree your change is correctly called righer-er, I think we need a even-more-righter followup as my issue is not resolved. I'm built from source at bfd480b. U+2594 seems to be causing problems and doesn't seem to be in the torture test.
Write-Host "`u{2595}`u{2594}`n`u{2595}`u{2581}"
Write-Host "`nXXX`n`u{2594}`nXXX`n"
Atlas Off:

Atlas On:

@Dan-Albrecht Somewhat "late" in the development cycle I changed the algorithm so that it doesn't touch characters found in the given user font. My intention was that glyphs in the user's font remain untouched. If we don't do that this leads to other display issues (incorrect alginment, etc.). U+2594 is part of Cascadia Mono and so it won't get "adjusted" to fit the cell and I forgot to re-test it as part of the PR, focusing only on Consolas, etc.
Not sure what to do about this issue now: I should try to see if it helps to round up ascend/descend after all. But I'm not certain we can merge that - people have complained in the past when I did that. Otherwise we'll either have to wait for the next big AtlasEngine update which brings support for overlapping glyphs, or support for line height adjustments (which I'm submitting tomorrow).
:tada:This issue was addressed in #14099, which has now been successfully released as Windows Terminal Preview v1.16.3463.0 and v1.16.3464.0.:tada:
Handy links: