mirror of
https://github.com/reactos/wine.git
synced 2025-02-18 03:48:01 +00:00
comctl32: Remove Nx1 assumptions in ImageList_Merge.
This commit is contained in:
parent
9cd86dddf1
commit
ca6be70819
@ -1773,7 +1773,7 @@ ImageList_Merge (HIMAGELIST himl1, INT i1, HIMAGELIST himl2, INT i2,
|
||||
HIMAGELIST himlDst = NULL;
|
||||
INT cxDst, cyDst;
|
||||
INT xOff1, yOff1, xOff2, yOff2;
|
||||
INT nX1, nX2;
|
||||
POINT pt1, pt2;
|
||||
|
||||
TRACE("(himl1=%p i1=%d himl2=%p i2=%d dx=%d dy=%d)\n", himl1, i1, himl2,
|
||||
i2, dx, dy);
|
||||
@ -1817,25 +1817,25 @@ ImageList_Merge (HIMAGELIST himl1, INT i1, HIMAGELIST himl2, INT i2,
|
||||
|
||||
if (himlDst)
|
||||
{
|
||||
nX1 = i1 * himl1->cx;
|
||||
nX2 = i2 * himl2->cx;
|
||||
imagelist_point_from_index( himl1, i1, &pt1 );
|
||||
imagelist_point_from_index( himl1, i2, &pt2 );
|
||||
|
||||
/* copy image */
|
||||
BitBlt (himlDst->hdcImage, 0, 0, cxDst, cyDst, himl1->hdcImage, 0, 0, BLACKNESS);
|
||||
if (i1 >= 0 && i1 < himl1->cCurImage)
|
||||
BitBlt (himlDst->hdcImage, xOff1, yOff1, himl1->cx, himl1->cy, himl1->hdcImage, nX1, 0, SRCCOPY);
|
||||
BitBlt (himlDst->hdcImage, xOff1, yOff1, himl1->cx, himl1->cy, himl1->hdcImage, pt1.x, pt1.y, SRCCOPY);
|
||||
if (i2 >= 0 && i2 < himl2->cCurImage)
|
||||
{
|
||||
BitBlt (himlDst->hdcImage, xOff2, yOff2, himl2->cx, himl2->cy, himl2->hdcMask , nX2, 0, SRCAND);
|
||||
BitBlt (himlDst->hdcImage, xOff2, yOff2, himl2->cx, himl2->cy, himl2->hdcImage, nX2, 0, SRCPAINT);
|
||||
BitBlt (himlDst->hdcImage, xOff2, yOff2, himl2->cx, himl2->cy, himl2->hdcMask , pt2.x, pt2.y, SRCAND);
|
||||
BitBlt (himlDst->hdcImage, xOff2, yOff2, himl2->cx, himl2->cy, himl2->hdcImage, pt2.x, pt2.y, SRCPAINT);
|
||||
}
|
||||
|
||||
/* copy mask */
|
||||
BitBlt (himlDst->hdcMask, 0, 0, cxDst, cyDst, himl1->hdcMask, 0, 0, WHITENESS);
|
||||
if (i1 >= 0 && i1 < himl1->cCurImage)
|
||||
BitBlt (himlDst->hdcMask, xOff1, yOff1, himl1->cx, himl1->cy, himl1->hdcMask, nX1, 0, SRCCOPY);
|
||||
BitBlt (himlDst->hdcMask, xOff1, yOff1, himl1->cx, himl1->cy, himl1->hdcMask, pt1.x, pt1.y, SRCCOPY);
|
||||
if (i2 >= 0 && i2 < himl2->cCurImage)
|
||||
BitBlt (himlDst->hdcMask, xOff2, yOff2, himl2->cx, himl2->cy, himl2->hdcMask, nX2, 0, SRCAND);
|
||||
BitBlt (himlDst->hdcMask, xOff2, yOff2, himl2->cx, himl2->cy, himl2->hdcMask, pt2.x, pt2.y, SRCAND);
|
||||
|
||||
himlDst->cCurImage = 1;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user