Eric Pouech : winex11: Correctly pad 1 bpp DDB's lines with 0 values.

Alexandre Julliard julliard at winehq.org
Mon Mar 2 09:01:58 CST 2009


Module: wine
Branch: master
Commit: 21c3e79e52c54857c7b3a41c96ac58328d70bc16
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=21c3e79e52c54857c7b3a41c96ac58328d70bc16

Author: Eric Pouech <eric.pouech at orange.fr>
Date:   Sat Feb 28 14:07:52 2009 +0100

winex11: Correctly pad 1 bpp DDB's lines with 0 values.

---

 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 db3ae6d..b1ba7a0 100644
--- a/dlls/gdi32/tests/bitmap.c
+++ b/dlls/gdi32/tests/bitmap.c
@@ -1580,7 +1580,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 4af4336..6df4137 100644
--- a/dlls/winex11.drv/dib.c
+++ b/dlls/winex11.drv/dib.c
@@ -618,8 +618,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-cvs mailing list