Frames and special characters from bitmap TTF font are not visible #11029

Closed
opened 2026-01-31 02:36:44 +00:00 by claunia · 17 comments
Owner

Originally created by @atlka on GitHub (Oct 15, 2020).

Windows 10 Pro

Platform ServicePack Version      VersionString
-------- ----------- -------      -------------
 Win32NT             10.0.19041.0 Microsoft Windows NT 10.0.19041.0

Windows Terminal
Version: 1.3.2651.0

Steps to reproduce

Use TTF font containing only embeded bitmaps, for example https://www.pg.gda.pl/~atlka/fonts/terminusa.ttf with 12pt size and 96DPI (no scaling) screen settings.
In the profile settings.json insert:

"fontFace": "Terminusa",
"fontSize": 12,

Expected behavior

All bitmap glyphs form bitmap font are displayed on the terminal like in the cmd.exe window.

Actual behavior

You can see letters and digits but no special chars and frames - they are just blanks.

Originally created by @atlka on GitHub (Oct 15, 2020). <!-- 🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨 I ACKNOWLEDGE THE FOLLOWING BEFORE PROCEEDING: 1. If I delete this entire template and go my own path, the core team may close my issue without further explanation or engagement. 2. If I list multiple bugs/concerns in this one issue, the core team may close my issue without further explanation or engagement. 3. If I write an issue that has many duplicates, the core team may close my issue without further explanation or engagement (and without necessarily spending time to find the exact duplicate ID number). 4. If I leave the title incomplete when filing the issue, the core team may close my issue without further explanation or engagement. 5. If I file something completely blank in the body, the core team may close my issue without further explanation or engagement. All good? Then proceed! --> <!-- This bug tracker is monitored by Windows Terminal development team and other technical folks. **Important: When reporting BSODs or security issues, DO NOT attach memory dumps, logs, or traces to Github issues**. Instead, send dumps/traces to secure@microsoft.com, referencing this GitHub issue. If this is an application crash, please also provide a Feedback Hub submission link so we can find your diagnostic data on the backend. Use the category "Apps > Windows Terminal (Preview)" and choose "Share My Feedback" after submission to get the link. Please use this form and describe your issue, concisely but precisely, with as much detail as possible. --> <pre> Windows 10 Pro Platform ServicePack Version VersionString -------- ----------- ------- ------------- Win32NT 10.0.19041.0 Microsoft Windows NT 10.0.19041.0 Windows Terminal Version: 1.3.2651.0 </pre> # Steps to reproduce <!-- A description of how to trigger this bug. --> Use TTF font containing only embeded bitmaps, for example https://www.pg.gda.pl/~atlka/fonts/terminusa.ttf with 12pt size and 96DPI (no scaling) screen settings. In the profile settings.json insert: <pre> "fontFace": "Terminusa", "fontSize": 12, </pre> # Expected behavior <!-- A description of what you're expecting, possibly containing screenshots or reference material. --> All bitmap glyphs form bitmap font are displayed on the terminal like in the cmd.exe window. # Actual behavior <!-- What's actually happening? --> You can see letters and digits but no special chars and frames - they are just blanks.
Author
Owner

@zadjii-msft commented on GitHub (Oct 15, 2020):

no special chars and frames

What characters are you trying to output exactly? The exact UTF-8 encoding of the characters would help here immensely, or even just copy-pasting the character into github

@zadjii-msft commented on GitHub (Oct 15, 2020): > no special chars and frames What characters are you trying to output exactly? The exact UTF-8 encoding of the characters would help here immensely, or even just copy-pasting the character into github
Author
Owner

@atlka commented on GitHub (Oct 15, 2020):

far with Windows Terminal example:
far-windows-terminal

far with Cmd.exe example:
far-cmd

Cmd.exe with ssh.exe and test UTF8 file:
box-drawing

With Windows Terminal we can see only blanks here.
If I try to display a char which glyph is not included in bitmap font Windows Terminal displays it, probably substituting it from other font - the default Cascadia font I think.

@atlka commented on GitHub (Oct 15, 2020): far with Windows Terminal example: ![far-windows-terminal](https://user-images.githubusercontent.com/52749958/96091516-fe253a00-0ec9-11eb-8788-317a498d15af.png) far with Cmd.exe example: ![far-cmd](https://user-images.githubusercontent.com/52749958/96091535-04b3b180-0eca-11eb-9088-7077040b0247.png) Cmd.exe with ssh.exe and test UTF8 file: ![box-drawing](https://user-images.githubusercontent.com/52749958/96093841-eac79e00-0ecc-11eb-97c7-de0e0fdb581d.png) With Windows Terminal we can see only blanks here. If I try to display a char which glyph is not included in bitmap font Windows Terminal displays it, probably substituting it from other font - the default Cascadia font I think.
Author
Owner

@DHowett commented on GitHub (Oct 16, 2020):

oh my gosh, you're totally right!

/cc @miniksa for fun

When we get the geometries from the font for the box-drawing characters, there aren't any. This is obvious in retrospect. I totally forgot that TTF files with bitmap strikes were a thing.

@DHowett commented on GitHub (Oct 16, 2020): _oh my gosh, you're totally right_! /cc @miniksa for fun When we get the _geometries_ from the font for the box-drawing characters, there aren't any. This is obvious in retrospect. I totally forgot that TTF files with bitmap strikes were a thing.
Author
Owner

@miniksa commented on GitHub (Oct 16, 2020):

Man, fonts are hard. We just need to realize these are bitmap strikes and not use the scaling thing I guess.

@miniksa commented on GitHub (Oct 16, 2020): Man, fonts are hard. We just need to realize these are bitmap strikes and not use the scaling thing I guess.
Author
Owner

@tidux commented on GitHub (Feb 16, 2021):

TTF/OTF fonts provide embedded bitmaps for regular number/letter characters as well, which is still missing. Perhaps expose a "use embedded bitmaps in font" toggle to settings.json? That's how FreeType Fontconfig does it on Linux.

@tidux commented on GitHub (Feb 16, 2021): TTF/OTF fonts provide embedded bitmaps for regular number/letter characters as well, which is still missing. Perhaps expose a "use embedded bitmaps in font" toggle to settings.json? That's how FreeType Fontconfig does it on Linux.
Author
Owner

@wolf99 commented on GitHub (May 27, 2021):

Just came from #10038.
I'm not familiar with the labels and milestones, do the current ones mean that this is intended to be fixed for WT v2.0 (i.e. Winter 2021) ?

@wolf99 commented on GitHub (May 27, 2021): Just came from #10038. I'm not familiar with the labels and milestones, do the current ones mean that this is intended to be fixed for WT v2.0 (i.e. Winter 2021) ?
Author
Owner

@zadjii-msft commented on GitHub (May 27, 2021):

Yep

@zadjii-msft commented on GitHub (May 27, 2021): Yep
Author
Owner

@atlka commented on GitHub (Jun 4, 2021):

Dnia 16 lutego 2021 03:22:14 CET, Tidux @.***> napisał(a):

TTF/OTF fonts provide embedded bitmaps for regular number/letter
characters as well, which is still missing. Perhaps expose a "use
embedded bitmaps in font" toggle to settings.json? That's how FreeType
Fontconfig does it on Linux.

--
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/microsoft/terminal/issues/7927#issuecomment-779539655

What You should know this feature was working correctlty with old terminal releases. Besides normal letters and characters from a bitmap truetype font are rendered ok with current releases. Only specjal graphical characters - frames and blocks are rendered as blanks.

So I find it to be rather a bug which need to be fixed in the current version and not a some kind of a feature for the next version.
Regards

--
Adam Tlałka

@atlka commented on GitHub (Jun 4, 2021): Dnia 16 lutego 2021 03:22:14 CET, Tidux ***@***.***> napisał(a): >TTF/OTF fonts provide embedded bitmaps for regular number/letter >characters as well, which is still missing. Perhaps expose a "use >embedded bitmaps in font" toggle to settings.json? That's how FreeType >Fontconfig does it on Linux. > >-- >You are receiving this because you authored the thread. >Reply to this email directly or view it on GitHub: >https://github.com/microsoft/terminal/issues/7927#issuecomment-779539655 What You should know this feature was working correctlty with old terminal releases. Besides normal letters and characters from a bitmap truetype font are rendered ok with current releases. Only specjal graphical characters - frames and blocks are rendered as blanks. So I find it to be rather a bug which need to be fixed in the current version and not a some kind of a feature for the next version. Regards -- Adam Tlałka
Author
Owner

@wolf99 commented on GitHub (Jun 4, 2021):

I would tend to agree with @atlka.
I have noticed this when using tig (https://jonas.github.io/tig/). The git graph therein no longer shows any lines.
This worked just fine in previous versions so this is a regression rather than a feature IMHO.

@wolf99 commented on GitHub (Jun 4, 2021): I would tend to agree with @atlka. I have noticed this when using tig (https://jonas.github.io/tig/). The git graph therein no longer shows any lines. This worked just fine in previous versions so this is a regression rather than a feature IMHO.
Author
Owner

@tsu-kunn commented on GitHub (Sep 8, 2021):

I would tend to agree with @atlka.
I don't have this problem with VSCode or Git Bash, and I hope it will be fixed.

@tsu-kunn commented on GitHub (Sep 8, 2021): I would tend to agree with @atlka. I don't have this problem with VSCode or Git Bash, and I hope it will be fixed.
Author
Owner

@atlka commented on GitHub (Sep 30, 2021):

Hello,
what is more important this feature worked quite well with previous terminal releases.

Generally bitamp TTF font works properly with terminal in case of normal chars and powerline symbols too, but not for box drawing nad block elements and this should be fixed.

I vote for an option which switches between getting this range of glyphs from font (so it works as in the past) or generating bit perfect bitmaps by program itself as in the new VSCode.

@atlka commented on GitHub (Sep 30, 2021): Hello, what is more important this feature worked quite well with previous terminal releases. Generally bitamp TTF font works properly with terminal in case of normal chars and powerline symbols too, but not for box drawing nad block elements and this should be fixed. I vote for an option which switches between getting this range of glyphs from font (so it works as in the past) or generating bit perfect bitmaps by program itself as in the new VSCode.
Author
Owner

@miniksa commented on GitHub (Oct 6, 2021):

I hear what you're saying. We just only have so many folks to go around on fixing issues. We'd happily welcome a community submission here if someone knows how to detect a font with bitmaps embedded here in our DirectX engine route and make it do the old behavior.

From our perspective, this likely remains a priority 3 just because it's a graphical glitch that can be self-serviced by the user through changing to a different font. That's not to say it isn't important, but it is ranking lower than all the accessibility and crash and default application bugs and such that we've been juggling as of late. I'm sorry it's taking so long.

@miniksa commented on GitHub (Oct 6, 2021): I hear what you're saying. We just only have so many folks to go around on fixing issues. We'd happily welcome a community submission here if someone knows how to detect a font with bitmaps embedded here in our DirectX engine route and make it do the old behavior. From our perspective, this likely remains a priority 3 just because it's a graphical glitch that can be self-serviced by the user through changing to a different font. That's not to say it isn't important, but it is ranking lower than all the accessibility and crash and default application bugs and such that we've been juggling as of late. I'm sorry it's taking so long.
Author
Owner

@sophec commented on GitHub (Oct 20, 2021):

Just out of curiosity, why does this affect only some fonts (or so it seems)? I don't know much about fonts, and using cozette works fine for me (box drawing characters and such all show up just fine) using the "vector" TTF. I presume it's because cozette supplies more information than some fonts do?

@sophec commented on GitHub (Oct 20, 2021): Just out of curiosity, why does this affect only some fonts (or so it seems)? I don't know much about fonts, and using [cozette](https://github.com/slavfox/cozette) works fine for me (box drawing characters and such all show up just fine) using the "vector" TTF. I presume it's because cozette supplies more information than some fonts do?
Author
Owner

@tidux commented on GitHub (Oct 25, 2021):

@willeccles some fonts are defined as fixed size sets of bitmaps, rather than sets of vectors for dynamic font sizes. For a Windows centric example, Courier New is a vector font and Courier is a bitmap font. Vector fonts are generally considered more modern, and are the default in most places for a good reason, but bitmap fonts have absolutely zero blurring and distortion, so many people prefer them for long sessions of work in terminals to reduce eye strain. This issue applies specifically to bitmap fonts.

@tidux commented on GitHub (Oct 25, 2021): @willeccles some fonts are defined as fixed size sets of bitmaps, rather than sets of vectors for dynamic font sizes. For a Windows centric example, Courier New is a vector font and Courier is a bitmap font. Vector fonts are generally considered more modern, and are the default in most places for a good reason, but bitmap fonts have absolutely zero blurring and distortion, so many people prefer them for long sessions of work in terminals to reduce eye strain. This issue applies specifically to bitmap fonts.
Author
Owner

@miniksa commented on GitHub (Nov 3, 2021):

I have a feeling like this might be enabled by #11623 in the future.

@miniksa commented on GitHub (Nov 3, 2021): I have a feeling like this might be enabled by #11623 in the future.
Author
Owner

@lhecker commented on GitHub (May 3, 2023):

Sorry for taking such a long time, but I believe this issue has been fixed in #14959. Here's how it looks like now:

image

Other bitmap fonts, like Terminus TTF also work much better now (although that one in particular requires you to manually adjust the "cellHeight" - see #14255). This change will ship in 1.18 later this month.

@lhecker commented on GitHub (May 3, 2023): Sorry for taking such a long time, but I believe this issue has been fixed in #14959. Here's how it looks like now: ![image](https://user-images.githubusercontent.com/2256941/235943706-dcbabd37-3ac1-47e3-9e59-02dfcd7b250d.png) Other bitmap fonts, like Terminus TTF also work much better now (although that one in particular requires you to manually adjust the "cellHeight" - see #14255). This change will ship in 1.18 later this month.
Author
Owner

@atlka commented on GitHub (May 4, 2023):

I am using Ms Terminal Version 1.16.10261.0 now and I can confirm that
special chars are displayed correctly with AtlasEngine text renderer in
Win 10 and Win 11. So problem appears only with default text renderer.

Regards

--
Adam Tlałka
System & Network Administration Group
IT Service Center, Gdańsk University of Technology, Poland

@atlka commented on GitHub (May 4, 2023): I am using Ms Terminal Version 1.16.10261.0 now and I can confirm that special chars are displayed correctly with AtlasEngine text renderer in Win 10 and Win 11. So problem appears only with default text renderer. Regards -- Adam Tlałka System & Network Administration Group IT Service Center, Gdańsk University of Technology, Poland
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#11029