On Tue, 15 Mar 2022 18:13:15 GMT, Mike Hearn <d...@openjdk.java.net> wrote:

>> 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.
>
> I can't comment on the JBS bug, but I'm not sure this is actually fixed. I 
> upgraded to JavaFX 18 and the bug is still there. Setting 
> `-Dprism.lcdtext=off` fixes it. I'm not sure why, because the change to do 
> this by default seems simple enough.

@mikehearn I downloaded the JavaFX 18 GA bundle and can confirm that LCD text 
is disabled by default on macOS as per this fix. You might want to double-check 
the JavaFX version by printing out the "javafx.version" system property.

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

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

Reply via email to