http://bugs.winehq.org/show_bug.cgi?id=14868
--- Comment #10 from David Hall (gringer) winehq@gringer.dis.org.nz 2008-08-15 23:19:19 --- I have noticed a fixme scattered through ./dlls/gdi32/dib.c:
$ grep -n 'FIXME: BI_BITFIELDS not supported yet' ./dlls/gdi32/dib.c 869: /* FIXME: BI_BITFIELDS not supported yet */ 876: /* FIXME: BI_BITFIELDS not supported yet */ 937: /* FIXME: BI_BITFIELDS not supported yet */ 988: /* FIXME: BI_BITFIELDS not supported yet */ 997: /* FIXME: BI_BITFIELDS not supported yet */ 1030: /* FIXME: BI_BITFIELDS not supported yet */
would it make sense just making sure the output is never compressed (which is what your suggested patch does)?
an alternative patch:
diff --git a/dlls/gdi32/dib.c b/dlls/gdi32/dib.c index 440857d..cd48703 100644 --- a/dlls/gdi32/dib.c +++ b/dlls/gdi32/dib.c @@ -641,7 +641,7 @@ INT WINAPI GetDIBits( DIB_GetDIBImageBytes( bmp->bitmap.bmWidth, bmp->bitmap.bmHeight, bmp->bitmap.bmBitsPixel ); - info->bmiHeader.biCompression = (bmp->bitmap.bmBitsPixel > 8) ? BI_BITFIELDS : BI_RGB; + info->bmiHeader.biCompression = BI_RGB; /* FIXME: BI_BITFIELDS not supported yet */ switch(bmp->bitmap.bmBitsPixel) { case 15:
I'm not quite clear on this code, so the non-compression patches could still be problematic. It's hard for me to tell if this is the compression of the bitmap being copied *to*, or the compression of the bitmap being copied *from*.