The crisp fonts saga

John Neffenger john at status6.com
Fri Dec 15 05:29:36 UTC 2023


On 12/13/23 10:15 PM, John Neffenger wrote:
> I find it helps to get the bigger picture. Below are the various camps 
> as I've come to understand them over the years.

An update to my previous categorization ...

In 2018, Java Swing moved from the full-hinting group to the 
slight-hinting group, on Linux at least, when FreeType 2.8 was included 
in Linux distributions.

So a better grouping of rendering policies is:

Subpixel rendering with normal hinting
     - Microsoft Windows
     - Java Swing on Linux (before FreeType 2.8)

Subpixel rendering with "slight" hinting
     - Ubuntu
     - Java Swing on Linux (after FreeType 2.8)

Subpixel rendering with hinting disabled
     - JavaFX on Linux

Gray-level rendering with hinting disabled
     - Apple macOS

I always wondered why text rendering in Swing apps on Linux got so much 
better around 2018. Turns out FreeType made the switch under the covers 
with the following change [1]:

- FT_LOAD_TARGET_LCD is now a variant of FT_LOAD_TARGET_LIGHT;
   this should provide better rendering results.

Better indeed! A five-year mystery (to me, at least) solved. :-)

John

[1]: https://sourceforge.net/projects/freetype/files/freetype2/2.8/



More information about the openjfx-dev mailing list