On Thursday, 22 October 2020, 21:54:02 GMT+8, Alexei Podtelezhnikov <apodtele@gmail.com> wrote:
> 1) What is the Gray (case 0) compensation if not zero?> 2) What is the Windows API to adjust it, if any?> 3) Is that really enum? How sure you are? Why do we have to bend overbackwards to deal with case 3?> Or, maybe just maybe, case 3 is simply equal to case 0 and be done with it.> 4) Why can't I use undocumented/illegal/implementation-defined valueanyway I please?
See
https://docs.microsoft.com/en-us/typography/opentype/spec/tt_instructions#compensating-for-the-engine-characteristics
It says "three values are possible: gray=0..."
You cannot arbitrarily decide 3 is a valid value - it just isn't. Freetype treats 3 the same as 0 (in an unofficial / undocumented way) because that's what MS rasterizer does.