Set the color mask with BI_BITFIELD dibs, don't use the

application-provided value.
This commit is contained in:
Gerard Patel 2000-12-20 18:39:41 +00:00 committed by Alexandre Julliard
parent f8b96e272a
commit cb0ce33877

View file

@ -3029,15 +3029,15 @@ INT X11DRV_DIB_GetDIBits(
break; break;
case 15: case 15:
case 16: case 16:
descr.rMask = (descr.compression == BI_BITFIELDS) ? *(DWORD *)info->bmiColors : 0x7c00; descr.rMask = 0x7c00;
descr.gMask = (descr.compression == BI_BITFIELDS) ? *((DWORD *)info->bmiColors + 1) : 0x03e0; descr.gMask = 0x03e0;
descr.bMask = (descr.compression == BI_BITFIELDS) ? *((DWORD *)info->bmiColors + 2) : 0x001f; descr.bMask = 0x001f;
break; break;
case 32: case 32:
descr.rMask = (descr.compression == BI_BITFIELDS) ? *(DWORD *)info->bmiColors : 0xff0000; descr.rMask = 0xff0000;
descr.gMask = (descr.compression == BI_BITFIELDS) ? *((DWORD *)info->bmiColors + 1) : 0xff00; descr.gMask = 0xff00;
descr.bMask = (descr.compression == BI_BITFIELDS) ? *((DWORD *)info->bmiColors + 2) : 0xff; descr.bMask = 0xff;
break; break;
} }
@ -3090,6 +3090,12 @@ INT X11DRV_DIB_GetDIBits(
info->bmiHeader.biBitCount ); info->bmiHeader.biBitCount );
info->bmiHeader.biCompression = 0; info->bmiHeader.biCompression = 0;
if (descr.compression == BI_BITFIELDS)
{
*(DWORD *)info->bmiColors = descr.rMask;
*((DWORD *)info->bmiColors+1) = descr.gMask;
*((DWORD *)info->bmiColors+2) = descr.bMask;
}
done: done:
GDI_ReleaseObj( dc->hPalette ); GDI_ReleaseObj( dc->hPalette );