Thanks for the input, Rein. Allowing either a width or height of zero to fall through should result in a 1x1 monochrome bitmap (I haven't tested it, but did read through the code and it looks like that would be returned).
However, the other points that I made call into question the need for the check at all. XP has no size limit to a bitmap, at least that's mentioned on MSDN.
Is the intention of this condition one of a "sanity check"? If so, should it be modified or even removed? Has this code been around long enough so that the check isn't needed? (I.e., was it included for stability/wine bug checking purposes?) Or, maybe changing it to check that BOTH are >= 0x10000, or maybe their product is >= 0x100000000 [can we get that precision on all wine platforms?] would be reasonable? Or, do we go with the 16Mb Win95 limit?
Thoughts?
Carl
On Friday, April 29, 2005 02:13 pm, Rein Klazes wrote:
On Fri, 29 Apr 2005 10:46:31 -0400, you wrote:
This seems wrong to me on three counts: (1) MSDN states that if either width or height is zero, a 1x1 monochrome bitmap is returned
Indeed, what happens if you try this obvious patch:
========================================>8================================= ====== --- wine/dlls/gdi/bitmap.c 2005-04-14 10:50:50.000000000 +0200 +++ mywine/dlls/gdi/bitmap.c 2005-04-29 20:04:37.000000000 +0200 @@ -134,7 +134,7 @@ HBITMAP WINAPI CreateCompatibleBitmap( H
TRACE("(%p,%d,%d) = \n", hdc, width, height);
- if ((width >= 0x10000) || (height >= 0x10000))
- if ((height && width >= 0x10000) || (width && height >= 0x10000)) { FIXME("got bad width %d or height %d, please look for reason\n", width, height);
========================================>8=================================
Rein.