Fix in X11DRV_GetDIBits for explicit color masks

Rob - mypublicaccount at hotmail.com
Fri Jul 12 09:27:35 CDT 2002


Hello, Hope you like my first wine patch. :-)

This patch fixes MSN Messenger emoticon images.  They had wrong colors & 
were simply distorted.


Wine's GDI32.GetDIBits accepts the BI_BITFIELDS flag, thus converting the 
color format.  But it clears the flag from the bitmap header on return.  So 
using the bitmap gives invalid results.


ChangeLog:
     graphics/x11drv/dib.c:  X11DRV_GetDIBits
     Don't clear the biCompression==BI_BITFIELDS flag after creating the 
bits

Rob McClinton


Index: graphics/x11drv/dib.c
===================================================================
RCS file: /home/wine/wine/graphics/x11drv/dib.c,v
retrieving revision 1.99
diff -u -r1.99 dib.c
--- graphics/x11drv/dib.c	3 Jul 2002 21:10:44 -0000	1.99
+++ graphics/x11drv/dib.c	12 Jul 2002 13:42:20 -0000
@@ -5043,12 +5043,17 @@
					 info->bmiHeader.biHeight,
					 info->bmiHeader.biBitCount );

-  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;
+  }
+  else
+  {
+    /* if RLE or JPEG compression were supported,
+     * this line would be invalid. */
+    info->bmiHeader.biCompression = 0;
   }



_________________________________________________________________
MSN Photos is the easiest way to share and print your photos: 
http://photos.msn.com/support/worldwide.aspx




More information about the wine-patches mailing list