dibsection: ignore biClr*

Huw D M Davies h.davies1 at physics.ox.ac.uk
Mon Nov 10 10:50:46 CST 2003


        Huw Davies <huw at codeweavers.com>
	CreateDIBSection ignores the supplied values of biClrUsed and
	biClrImportant and calculates them from biBitCount.
-- 
Huw Davies
huw at codeweavers.com
Index: objects/dib.c
===================================================================
RCS file: /home/wine/wine/objects/dib.c,v
retrieving revision 1.76
diff -u -r1.76 dib.c
--- objects/dib.c	15 Oct 2003 02:32:00 -0000	1.76
+++ objects/dib.c	10 Nov 2003 16:47:47 -0000
@@ -897,6 +897,12 @@
         bDesktopDC = TRUE;
     }
 
+    /* Windows ignores the supplied values of biClrUsed and biClrImportant thus: */
+    if (bmi->bmiHeader.biBitCount >= 1 && bmi->bmiHeader.biBitCount <= 8)
+        bmi->bmiHeader.biClrUsed = bmi->bmiHeader.biClrImportant = 1L << bmi->bmiHeader.biBitCount;
+    else
+        bmi->bmiHeader.biClrUsed = bmi->bmiHeader.biClrImportant = 0;
+
     if ((dc = DC_GetDCPtr( hdc )))
     {
         hbitmap = dc->funcs->pCreateDIBSection(dc->physDev, bmi, usage, bits, section, offset, ovr_pitch);



More information about the wine-patches mailing list