[PATCH] [WineX11.Drv]: correctly pad 1 bpp DDB's lines with 0 values
Eric Pouech
eric.pouech at orange.fr
Sat Jul 5 14:32:54 CDT 2008
A+
---
dlls/gdi32/tests/bitmap.c | 1 -
dlls/winex11.drv/dib.c | 5 ++++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/dlls/gdi32/tests/bitmap.c b/dlls/gdi32/tests/bitmap.c
index 4c4abe0..724a8d2 100644
--- a/dlls/gdi32/tests/bitmap.c
+++ b/dlls/gdi32/tests/bitmap.c
@@ -1511,7 +1511,6 @@ static void test_GetDIBits(void)
}
/* returned bits are DWORD aligned and upside down */
-todo_wine
ok(!memcmp(buf, dib_bits_1, sizeof(dib_bits_1)), "DIB bits don't match\n");
/* Test the palette indices */
diff --git a/dlls/winex11.drv/dib.c b/dlls/winex11.drv/dib.c
index 8988428..556072a 100644
--- a/dlls/winex11.drv/dib.c
+++ b/dlls/winex11.drv/dib.c
@@ -601,8 +601,11 @@ static void X11DRV_DIB_GetImageBits_1( int lines, BYTE *dstbits,
}
}
if ((width&7)!=0) {
- *dstbyte=dstval;
+ *dstbyte++=dstval;
}
+ /* pad with 0 to DWORD alignment */
+ for (x = (x+7)&~7; x < ((width + 31) & ~31); x+=8)
+ *dstbyte++ = 0;
dstbits += linebytes;
}
} else {
More information about the wine-patches
mailing list