Font antialiasing question


Hello Community

I was just checking out the JuceDemo and I wonder why some letters of the Dina font are antialiased and some not.


It looks like one of those "tiny" fonts that's designed for a specific size, and which won't work if it's sub-pixel positioned or rescaled. Unless you live in the 1990s and have a VGA monitor, you probably want to avoid that kind of font.


Yes it is a monospace font with a fixed size. So the problem is that the antialiased letters are lying on a sub-pixel? How can I fix this so the font looks like in my editor?


The only advice I'll give here is "don't use that font".

Modern software needs to target modern devices, and need to work at different scales and resolutions. You can't think in terms of physical pixels any more.


People are so down on 1990s computing ... I'm still shaken by my rejection of a 'colour invert' filter... :(


With the advice “don't use that font [in your app]” I agree. It is becoming common for 15" laptops to have a 1920×1080 resolution, and those laptops will by default be set to a 125% dpi scaling. In this case if you use that font, you're toast. It will be either too small or blurry.

On the other hand, “You can't think in terms of physical pixels any more.” is a bit too naive.

There's still a lot of 15" out there with the dreaded 1366×768 resolution. And a lot of desktop monitors with relatively low resolution as well. For your software to look good on those screens , you very much still need to think about physical pixels. If you don't align horizontal and vertical lines with the pixel grid your UI will just look bad. This is also the reason why using SVG icons are still very tricky — if their details don't line up with the pixel grid they will just look horribly blurred—much worse than a comparable bitmap icon.

More trivia: there are people still resisting the advance of font anti-aliasing, so they're using fonts similar to this one for editing text (especially programmers editing code). And they're not using a 1990’s VGA monitor.



Ok, I guess what I meant was that you shouldn't design for physical pixels, but yes, you're right, it's still important to make sure your interface looks good on low-res devices.