On an external (non-retina) monitor JavaFX LCD text on macOS is painful on the 
eyes.
Retina diminishes it rather than cures it.

The problem is a mix of a couple of things
1) CoreText no longer generates LCD glyphs (except perhaps if you change some 
system settings at your own risk)
2) Prism's LCD shader assumes it got LCD glyphs and makes sub-pixel positioning 
adjustments that turn greyscale
glyphs into multi-coloured glyphs that weren't meant to be ...

The fix here is to just disable LCD by default on macOS as is already done (eg) 
on iOS
This ripples through to make everything use grey scale even if you asked for 
the LCD (which you can't have)
It also means if you REALLY want it (and perhaps are tweaking those magical 
settings) you can have it back
by just specifying -Dprism.lcdtext=on

Also it means the pieces of support for this on macos are still there if Apple 
ever bring it back (unlikely).
Not that much code would be removed anyway .. a fair amount of it is needed for 
Windows and Linux.

-------------

Commit messages:
 - 8236689: macOS 10.15 Catalina: LCD text renders badly

Changes: https://git.openjdk.java.net/jfx/pull/642/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jfx&pr=642&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8236689
  Stats: 3 lines in 2 files changed: 1 ins; 0 del; 2 mod
  Patch: https://git.openjdk.java.net/jfx/pull/642.diff
  Fetch: git fetch https://git.openjdk.java.net/jfx pull/642/head:pull/642

PR: https://git.openjdk.java.net/jfx/pull/642

Reply via email to