Apperance of text

I’m new to JUCE and really impressed of the whole thing.

One detail, which I consider as harmful, is the blurred appearance of text. The strokewidth of an L in 10pt can be one black pixel as well as two uniform grey pixels. It seems, that the renderer doesn’t take care of hinting. Instead it somehow maps globalized glyph-coordinates to the global raster.

I think it’s possible to make a better job in this point (e.g. and I think, the overall apperance of the GUI would gain a less irritating look.

What I cannot survey at the moment is, whether and how an improved, hinted glyph-rendering-mechanism can be plugged in or substituted.

So my Question: did anyone make already some attempts in that direction? Is it possible? Has it been done? Are there drawbacks in performance, flexibility or something else?


Right. This one keeps coming up, so here’s my final word on the hinting question.

I did investigate this recently, and had a demo working on Windows using the Windows font renderer.

It looked terrible. I put a toggle switch in the juce fonts demo that flipped between hinted and unhinted rendering, and in 99% of cases, the unhinted, blurry text looked better. Even at small sizes it might have been blurred, but was equally readable, less “computery”, and more natural. Some badly designed fonts came out looking ridiculous when hinted, but they all looked good unhinted.

So that’s it! I’ve no intention of bloating the code and spending another week writing the mac and linux versions of something that looks worse! As screen resolutions get higher, I’m sure hinting will eventually become a thing of the past.

If you want a clear font at very small sizes, then hinting isn’t the thing you’re really asking for. A special small font like Silkscreen will render perfectly at the sizes it’s designed for, even unhinted. And if you think anything above 9pt looks blurry, then you’re sitting too near the screen!

Perhaps someone should write a bitmap font renderer? I just saw a tutorial on how it works here:

Typically you only need one typeface. They all look the same at 8pt. :smiley:

i thought about this a long time ago when first looked at juce fonts. i’ve already implemented it in my vstgui lib version (don’t remeber but was something like 5 years ago when font support was all but working) and in another library called xiscle. the only problem is that you can get nice support easily with monospaced fonts, but for non-mono fonts there is a bit more work to do. maybe it’s time to convert all those blit in juce styla :wink:

keep connected

Seriously, just get hold of a proper small font like Silkscreen and it’ll look like a bitmap font, but with no extra effort to use it. You can easily embed serialised fonts in your Juce app using the Typeface serialisation methods and building this into the binary.