Subject: bug#73730: 31.0.50; Support for color fonts on MS-Windows

From: Cecilio Pardo <[email-masked]>
Date: Wed, 23 Oct 2024 16:17:03 +0200

On 23/10/2024 12:03, Eli Zaretskii wrote:

>> - DirectWrite is available since Windows 7, but color glyphs are
>>     available only since Windows 8.1.  We only enable DirectWrite since
>>     Windows 8.1. This is stated on the NEWS entry.
> 
> Sounds okay, but I don't see the Windows version tested anywhere in
> the code which initializes DWrite.  What did I miss?

The IDWriteFactory2 interface is only available from 8.1, so it will
fail on previous versions when we request it in
w32_initialize_direct_write.

>> - The default value for the Gamma render parameter in DirectWrite
>>     gives very 'light' characters.  I changed it to 1.4, which matches
>>     GDI and looks better. But that's just my opinion.
> 
> Does the best value depend on whether the theme is light or dark?  

No, it looks too dim for me on both.

> In any case, this sounds like a good candidate for a variable that people
> could modify if they want.  Maybe we should also expose to Lisp the
> values of enhanced contrast and clear-type level?  Assuming that
> setting these from .emacs (or maybe in early-init?) at all could take
> effect, that is.

[...]

> Does it work to set w32-inhibit-dwrite in the .emacs init file?

If you change it in .emacs or early-int it will work, but will not
prevent dwrite initialization and some text output. I am
initializing on syms_of_w32uniscribe_for_pdumper. Could I initialize
on some other place, so that the user can skip dwrite completely?
Also, it will allow to add configuracion variables for Gamma, etc,
without having to reinit if the user sets them.