A couple of small fixes to my bitmap patch.
diff --git a/graphics/x11drv/bitmap.c b/graphics/x11drv/bitmap.c
index 128a32e..6c46061 100644
--- a/graphics/x11drv/bitmap.c
+++ b/graphics/x11drv/bitmap.c
@@ -28,11 +28,6 @@
GC BITMAP_monoGC = 0, BITMAP_colorGC = 0;
-#define BITMAP_WIDTH_BYTES(width,bpp) \
- (((bpp) == 24) ? (width) * 4 : ( ((bpp) == 15) ? (width) * 2 : \
- ((width) * (bpp) + 15) / 16 * 2 ))
-
-
/***********************************************************************
* X11DRV_BITMAP_Init
*/
@@ -371,6 +366,8 @@
XImage *image;
LPBYTE sbuf, tmpbuffer;
int w, h, pad, widthbytes;
+
+ TRACE(x11drv, "(bmp=%p, bits=%p, count=%lx)\n", bmp, bits, count);
pad = BITMAP_GetBitsPadding(bmp->bitmap.bmWidth, bmp->bitmap.bmBitsPixel);
@@ -381,9 +378,12 @@
widthbytes = (((bmp->bitmap.bmWidth * bmp->bitmap.bmBitsPixel) + 31) /
32) * 4;
- height = bmp->bitmap.bmHeight;
+ height = count / bmp->bitmap.bmWidthBytes;
tmpbuffer = (LPBYTE)xmalloc(widthbytes*height);
+ TRACE(x11drv, "h=%ld, w=%d, wb=%d\n", height, bmp->bitmap.bmWidth,
+ widthbytes);
+
EnterCriticalSection( &X11DRV_CritSection );
image = XCreateImage( display, DefaultVisualOfScreen(screen),
bmp->bitmap.bmBitsPixel, ZPixmap, 0, tmpbuffer,