Commit cb0ce338 authored by Gerard Patel's avatar Gerard Patel Committed by Alexandre Julliard

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

application-provided value.
parent f8b96e27
...@@ -3029,15 +3029,15 @@ INT X11DRV_DIB_GetDIBits( ...@@ -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( ...@@ -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 );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment