gdi: fix 24bpp -> 32bpp copy

Huw D M Davies h.davies1 at physics.ox.ac.uk
Thu Dec 8 06:45:45 CST 2005


This fixes #3387 - Picasa prints in blue.

        Huw Davies <huw at codeweavers.com> 
        Fix 24bpp -> 32bpp copy.        
-- 
Huw Davies
huw at codeweavers.com

diff --git a/dlls/gdi/dib.c b/dlls/gdi/dib.c
index 6b55d8b..26b8a1a 100644
--- a/dlls/gdi/dib.c
+++ b/dlls/gdi/dib.c
@@ -897,7 +897,9 @@ INT WINAPI GetDIBits(
                             width = min(srcwidth, dstwidth);
                             for( y = 0; y < lines; y++) {
                                 for( x = 0; x < width; x++, srcbits+=3 )
-                                    *dstbits++ = ((DWORD)*srcbits) & 0x00ffffff;
+                                    *dstbits++ =  srcbits[0] |
+                                                 (srcbits[1] <<  8) |
+                                                 (srcbits[2] << 16);
                                 dstbits=(LPDWORD)(dbits+=dstwidthb);
                                 srcbits=(sbits+=srcwidthb);
                             }



More information about the wine-patches mailing list