[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