[1/2] gdi32/tests: Add test for SetPixel erase with R2_XORPEN

Huw Davies huw at codeweavers.com
Mon Jul 24 05:04:30 CDT 2017


On Mon, Jul 24, 2017 at 12:57:30AM +1000, Tim Worthington wrote:
> diff --git a/dlls/gdi32/tests/dib.c b/dlls/gdi32/tests/dib.c
> --- a/dlls/gdi32/tests/dib.c
> +++ b/dlls/gdi32/tests/dib.c
> @@ -2703,6 +2703,26 @@
>      ret = ExtFloodFill( hdc, -1, -1, RGB( 0, 0xff, 0 ), FLOODFILLSURFACE );
>      ok (!ret, "got ret %d\n", ret);
>  
> +    /* SetPixel erase with R2_XORPEN */
> +    if ( ( bmi->bmiHeader.biBitCount >= 16 ) 
> +         || ( ( bmi->bmiHeader.biClrUsed == 256 ) && ( bmi->bmiHeader.biBitCount == 8 ) ) )
> +    {
> +        int rop2;
> +        COLORREF set, get;
> +        
> +        rop2 = GetROP2( hdc );
> +        for (i = 0; i < 256; i++)
> +        {
> +            SetROP2( hdc, R2_COPYPEN );
> +            set = SetPixel( hdc, i * 2, 30, RGB( (i & 0x07) << 5, (i & 0x38) << 2, i & 0xc0 )  );
> +            SetROP2( hdc, R2_XORPEN );
> +            SetPixel( hdc, i * 2, 30, set );
> +            get = GetPixel( hdc, i * 2, 30 );
> +            ok( get == 0, "got %08x and %08x\n", set, get );
> +        }
> +        SetROP2( hdc, rop2 );
> +    }
> +
>      SelectObject(hdc, orig_brush);
>      SelectObject(hdc, orig_pen);
>      DeleteObject(solid_brush);


Hi Tim,

Thank you for your contribution to Wine.

There were a number of issues with this series, which by the time I'd
reviewed them meant I'd essentially re-written the patches; so I just
sent them in:

https://source.winehq.org/patches/data/136093
https://source.winehq.org/patches/data/136094

This seemed more efficient than explaining the problems and suggesting
alternative approaches.  If you're interested, please free feel to
look at my patches and ask if there's anything you're curious about.

Huw.



More information about the wine-devel mailing list