Some more minor GDI fixes.
diff --git a/objects/dib.c b/objects/dib.c
index 8166fa2..56f3bdf 100644
--- a/objects/dib.c
+++ b/objects/dib.c
@@ -592,8 +592,8 @@
for( y = 0; y < lines; y++) {
for( x = 0; x < srcwidth; x++ ) {
val = *srcbits++;
- *dstbits++ = (WORD)(((val >> 19) & bmask) | ((val >> 6) & gmask) |
- ((val << 7) & rmask));
+ *dstbits++ = (WORD)(((val >> 3) & bmask) | ((val >> 6) & gmask) |
+ ((val >> 9) & rmask));
}
dstbits = (LPWORD)(dbits+=dstwidthb);
srcbits = (LPDWORD)(sbits+=srcwidthb);
@@ -624,9 +624,9 @@
for( y = 0; y < lines; y++) {
for( x = 0; x < srcwidth; x++ ) {
val = *srcbits++;
- *dstbits++ = (BYTE)(((val >> 7) & 0xf8) | ((val >> 12) & 0x07));
- *dstbits++ = (BYTE)(((val >> 2) & 0xf8) | ((val >> 7) & 0x07));
*dstbits++ = (BYTE)(((val << 3) & 0xf8) | ((val >> 2) & 0x07));
+ *dstbits++ = (BYTE)(((val >> 2) & 0xf8) | ((val >> 7) & 0x07));
+ *dstbits++ = (BYTE)(((val >> 7) & 0xf8) | ((val >> 12) & 0x07));
}
dstbits = (LPBYTE)(dbits+=dstwidthb);
srcbits = (LPWORD)(sbits+=srcwidthb);
@@ -668,7 +668,6 @@
case 32: /* 32 bpp dstDIB */
{
LPDWORD dstbits = (LPDWORD)dbits;
- DWORD rmask = 0xff, gmask = 0xff00, bmask = 0xff0000;
/* FIXME: BI_BITFIELDS not supported yet */
@@ -682,9 +681,9 @@
for( y = 0; y < lines; y++) {
for( x = 0; x < srcwidth; x++ ) {
val = (DWORD)*srcbits++;
- *dstbits++ = ((val >> 7) & 0xf8) | ((val >> 12) & 0x07) |
+ *dstbits++ = ((val << 3) & 0xf8) | ((val >> 2) & 0x07) |
((val << 6) & 0xf800) | ((val << 1) & 0x0700) |
- ((val << 19) & 0xf800) | ((val << 14) & 0x070000);
+ ((val << 9) & 0xf80000) | ((val << 4) & 0x070000);
}
dstbits=(LPDWORD)(dbits+=dstwidthb);
srcbits=(LPWORD)(sbits+=srcwidthb);
@@ -697,10 +696,8 @@
LPBYTE srcbits = sbits;
for( y = 0; y < lines; y++) {
- for( x = 0; x < srcwidth; x++ )
- *dstbits++ = ((DWORD)*srcbits++ & rmask) |
- (((DWORD)*srcbits++ << 8) & gmask) |
- (((DWORD)*srcbits++ << 7) & bmask);
+ for( x = 0; x < srcwidth; x++, srcbits+=3 )
+ *dstbits++ = ((DWORD)*srcbits) & 0x00ffffff;
dstbits=(LPDWORD)(dbits+=dstwidthb);
srcbits=(sbits+=srcwidthb);
}