mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-31 10:41:12 +00:00
Fix some weird logic in ImageList_Write.
This commit is contained in:
parent
ac24a0a692
commit
50c9ff030f
1 changed files with 6 additions and 5 deletions
|
@ -450,7 +450,7 @@ BOOL WINAPI
|
|||
ImageList_Copy (HIMAGELIST himlDst, INT iDst, HIMAGELIST himlSrc,
|
||||
INT iSrc, UINT uFlags)
|
||||
{
|
||||
TRACE("iDst=%d iSrc=%d\n", iDst, iSrc);
|
||||
TRACE("himlDst=%p iDst=%d himlSrc=%p iSrc=%d\n", himlDst, iDst, himlSrc, iSrc);
|
||||
|
||||
if (!is_valid(himlSrc) || !is_valid(himlDst))
|
||||
return FALSE;
|
||||
|
@ -2650,8 +2650,8 @@ _write_bitmap(HBITMAP hBitmap, LPSTREAM pstm, int cx, int cy)
|
|||
|
||||
/* XXX is this always correct? */
|
||||
icount = bm.bmWidth / cx;
|
||||
nwidth = cx << 2;
|
||||
nheight = cy * ((icount+3)>>2);
|
||||
nwidth = cx;
|
||||
nheight = cy * icount;
|
||||
|
||||
bitCount = bm.bmBitsPixel == 1 ? 1 : 24;
|
||||
sizeImage = ((((bm.bmWidth * bitCount)+31) & ~31) >> 3) * bm.bmHeight;
|
||||
|
@ -2682,13 +2682,13 @@ _write_bitmap(HBITMAP hBitmap, LPSTREAM pstm, int cx, int cy)
|
|||
bmih->biPlanes = 1;
|
||||
bmih->biBitCount = bitCount;
|
||||
bmih->biCompression = BI_RGB;
|
||||
bmih->biSizeImage = nsizeImage;
|
||||
bmih->biSizeImage = sizeImage;
|
||||
bmih->biXPelsPerMeter = 0;
|
||||
bmih->biYPelsPerMeter = 0;
|
||||
bmih->biClrUsed = 0;
|
||||
bmih->biClrImportant = 0;
|
||||
|
||||
lpBitsOrg = (LPBYTE)LocalAlloc(LMEM_ZEROINIT, nsizeImage);
|
||||
lpBitsOrg = (LPBYTE)LocalAlloc(LMEM_ZEROINIT, sizeImage);
|
||||
if(!GetDIBits(xdc, hBitmap, 0, bm.bmHeight, lpBitsOrg,
|
||||
(BITMAPINFO *)bmih, DIB_RGB_COLORS))
|
||||
goto failed;
|
||||
|
@ -2706,6 +2706,7 @@ _write_bitmap(HBITMAP hBitmap, LPSTREAM pstm, int cx, int cy)
|
|||
|
||||
bmih->biWidth = nwidth;
|
||||
bmih->biHeight = nheight;
|
||||
bmih->biSizeImage = nsizeImage;
|
||||
|
||||
if(bitCount == 1) {
|
||||
/* Hack. */
|
||||
|
|
Loading…
Reference in a new issue