bp2008/BetterClearTypeTuner

FontSmoothingOrientation registry setting discrepancy

Closed this issue · 3 comments

I have a 43" Dell U4320Q monitor which uses BGR. I ran the BetterClearTypeTuner and changed from "RGB" to "BGR" to match it.

However, I noticed some online documentations state that the registry key HKEY_CURRENT_USER\Control Panel\Desktop\FontSmoothingOrientation should be set to 2 for BGR. But BetterClearTypeTuner seems to explicitly set this to 0 when BGR is selected.

Clarification on this setting/behavior would be appreciated.

Hmm. I based that action on what Windows' built-in cleartype tuner does. https://github.com/bp2008/BetterClearTypeTuner/wiki/ClearType-Investigations

But you're right, everyone online says a value of 0 is for CRT displays where there is no predictable arrangement of colors. I think I'll change this and see if I can spot a difference in behavior.

So, actually the code isn't setting this registry key directly, but using a Windows API call exactly as documented, where "BGR" is 0 and RGB is 1. I tried sending an argument of 2, but the API automatically changed it into 1 and gave me RGB antialiasing.

/* constants for SPI_GETFONTSMOOTHINGORIENTATION and SPI_SETFONTSMOOTHINGORIENTATION: */
#define FE_FONTSMOOTHINGORIENTATIONBGR   0x0000
#define FE_FONTSMOOTHINGORIENTATIONRGB   0x0001

Additionally I've tried manually setting that registry value to 2 and rebooting, but there was no difference in anything I tested.
Windows 10's settings panel uses grayscale antialiasing. Everything else I tested is using BGR antialiasing, including Chrome, Editpad (a text editor), Thunderbird, Regedit, Explorer, Visual Studio.

So since the Windows API doesn't accept a value of 2, and manually setting it in the registry and rebooting made no apparent difference, I won't change anything in the code.