GetDIBits(): Handle Bitfields properly

Dmitry Timoshkov dmitry at codeweavers.com
Sat Apr 14 23:40:14 CDT 2007


"Michael Kaufmann" <hallo at michael-kaufmann.ch> wrote:

> +    if (bpp > 0 && compr == BI_BITFIELDS)
> +    {
> +        /* Windows ignores the input bitfields and overwrites them */
> +
> +        if (bpp == 16)
> +        {
> +            /* With these bitfields, the color data is the same as for BI_RGB */
> +            ((PDWORD)info->bmiColors)[0] = 0x7c00;
> +            ((PDWORD)info->bmiColors)[1] = 0x03e0;
> +            ((PDWORD)info->bmiColors)[2] = 0x001f;
> +        }
> +        else if (bpp == 32)
> +        {
> +            /* With these bitfields, the color data is the same as for BI_RGB */
> +            ((PDWORD)info->bmiColors)[0] = 0xff0000;
> +            ((PDWORD)info->bmiColors)[1] = 0x00ff00;
> +            ((PDWORD)info->bmiColors)[2] = 0x0000ff;
> +        }

What happens in 15 and 24 bpp cases?

-- 
Dmitry.



More information about the wine-devel mailing list