On Tue, 16 Oct 2007, Dan Kegel wrote:
"make test" fails for me with:
bitmap.c:1113: Test failed: GetDIBits with 4 bpp DIB selected in DC: Invalid DIB bits bitmap.c:1113: Test failed: GetDIBits with 8 bpp DIB selected in DC: Invalid DIB bits
I'm working on the above two. From my testing they only happen when X is in 16bpp mode (and probably 15bpp too). If I switch to 24bpp then all is fine. The reason is that dlls/winex11.drv/dib.c uses two types of color maps: * the first one contains RGBQUADs so in it white is (0xff, 0xff, 0xff, 0) * the second one maps an index to the corresponding X color (an int). So in 15bpp white would be 0x7fff.
The bug happens because the code casts the int* color map to the RGBQUAD* color map in many places so that it interprets 0x7fff as an RGBQUAD and thus returns the wrong color index.
err:x11drv:X11DRV_CreateBitmap Trying to make bitmap with planes=1, bpp=24 err:bitmap:DIB_GetBitmapInfo (39): unknown/wrong size for header err:bitmap:DIB_GetBitmapInfo (11): unknown/wrong size for header err:bitmap:DIB_GetBitmapInfo (13): unknown/wrong size for header err:bitmap:DIB_GetBitmapInfo (16): unknown/wrong size for header
I don't know anything about these however.