On 12/13/23 3:29 AM, Mark Raynsford wrote:
I would love to live in a world where everyone has such a high
resolution display that we can turn off AA entirely, but we don't live
in that one yet.

Anti-aliasing is still widely in use, but the various operating systems and application frameworks have diverged in their policies on hinting and sub-pixel rendering.

I find it helps to get the bigger picture. Below are the various camps as I've come to understand them over the years.

Full hinting and sub-pixel rendering:
  - Microsoft Windows
  - Java Swing

Slight hinting and sub-pixel rendering:
  - Ubuntu for sure
  - probably Debian, Fedora, Red Hat, and others, too

No hinting, but with sub-pixel rendering:
  - JavaFX

No hinting, and also no sub-pixel rendering:
  - Apple macOS (uses traditional grayscale anti-aliasing)

I think that's why historically Windows users thought macOS (and JavaFX) fonts were too "blurry," and macOS users thought Windows fonts were too "jagged." It all depended on what you were used to.

In my opinion, Linux distributions like Ubuntu got it right by going with "slight" hinting by default (FT_LOAD_TARGET_LIGHT). Even the Freetype developers think that's the right choice. Their reasons are given in this rather technical article, with an excerpt below:

On Slight Hinting, Proper Text Rendering, Stem Darkening and LCD Filters
https://freetype.org/freetype2/docs/hinting/text-rendering-general.html

"I also hope this change will make it easier for the non-Windows-and-Apple ecosystem to switch over to slight hinting as the default. Current full/medium native hinting, as is the default, tends to bring out the worst in many, many fonts that haven’t seen the same insane dedication to on-screen display and hinting as many popular Microsoft fonts, for example. And since ClearType is still not fully supported, you usually get a very poor default experience. Slight hinting gives a much better one, as Ubuntu has proven over the years."

Can you give an example of UIs scaling unevenly, or animations looking
jerky? All other non-JavaFX UI applications on my system evidently use
hinting, and I don't see anything recognizable there.

There are some text animations in JavaFX that you won't see in most user interfaces: think text rotations, not stock tickers. It's difficult to keep text aligned to the pixel grid when the grid is rotating.

I would love to hear the full history of this choice in JavaFX. I agree that no hinting is a good choice now, but it was brave all those years ago when most people were on fully-hinted Windows. Did it really come down to its detrimental effect on animated text?

John

Reply via email to