Joel Holdsworth <[email protected]> writes:

> The most obvious solution would be something like this as a color test:
>
> const int screen_bpp = GetDeviceCaps(hdc, BITSPIXEL);
>
> ok (result == modern_expected ||          /* Windows 2000 and up */
>     broken(result == legacy_expected) ||  /* Windows NT 4.0, 9X and below */
>     broken((result & 0x00F8F8F8) == (legacy_expected & 0x00F8F8F8) &&
>         screen_bpp == 16) ||
>     broken(result != legacy_expected && screen_bpp <= 8),
>
> How acceptable would that be?

I don't think you need such a complex test, we don't really care about
the exact reason why it's broken. Also I think you should be using the
relaxed color matching everywhere, even for the working cases. We may
want to round things differently in Wine too, and there's no reason to
require exact pixel values, testing a few high bits should be enough to
determine that blending has taken place.

-- 
Alexandre Julliard
[email protected]


Reply via email to