Fixed top-down DIB handling in StretchDIBits32().
This commit is contained in:
parent
e8ffab62e8
commit
ed744e787c
|
@ -150,9 +150,10 @@ INT WINAPI StretchDIBits(HDC hdc, INT xDst, INT yDst, INT widthDst,
|
||||||
bits, info, wUsage );
|
bits, info, wUsage );
|
||||||
hdcMem = CreateCompatibleDC( hdc );
|
hdcMem = CreateCompatibleDC( hdc );
|
||||||
hOldBitmap = SelectObject( hdcMem, hBitmap );
|
hOldBitmap = SelectObject( hdcMem, hBitmap );
|
||||||
/* Origin for DIBitmap is bottom left ! */
|
/* Origin for DIBitmap may be bottom left (positive biHeight) or top
|
||||||
|
left (negative biHeight) */
|
||||||
StretchBlt( hdc, xDst, yDst, widthDst, heightDst,
|
StretchBlt( hdc, xDst, yDst, widthDst, heightDst,
|
||||||
hdcMem, xSrc, info->bmiHeader.biHeight - heightSrc - ySrc,
|
hdcMem, xSrc, abs(info->bmiHeader.biHeight) - heightSrc - ySrc,
|
||||||
widthSrc, heightSrc, dwRop );
|
widthSrc, heightSrc, dwRop );
|
||||||
SelectObject( hdcMem, hOldBitmap );
|
SelectObject( hdcMem, hOldBitmap );
|
||||||
DeleteDC( hdcMem );
|
DeleteDC( hdcMem );
|
||||||
|
|
Loading…
Reference in New Issue