You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Block Elements not rendering correctly with AtlasEngine enabled #14098
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
Leonard Hecker (@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.
Dan Albrecht (@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).
Activity
Dan-Albrecht commentedon Sep 28, 2022
Might be same underlying issue as #14022
lhecker commentedon Sep 28, 2022
Note to self/team: The block character scaling technique in
_getCachedGlyphLayoutis inherently flawed as I realized yesterday. What it does is: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:
AtlasEngine: Block chars done right-er (#14099)
Dan-Albrecht commentedon Oct 19, 2022
Leonard Hecker (@lhecker), while I agree your change is correctly called
righer-er, I think we need aeven-more-righterfollowup as my issue is not resolved. I'm built from source at bfd480b.U+2594seems to be causing problems and doesn't seem to be in the torture test.Atlas Off:

Atlas On:

lhecker commentedon Oct 19, 2022
Dan Albrecht (@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).
AtlasEngine: Block chars done right-er (#14099)