From 1f00c50b854565f4f8eb10d47fc78a5a0858836e Mon Sep 17 00:00:00 2001 From: Christoph von Wittich Date: Wed, 18 Apr 2007 00:38:36 +0000 Subject: [PATCH] take care of DIB_PAL_COLORS in NtGdiStretchDIBits svn path=/trunk/; revision=26385 --- reactos/subsystems/win32/win32k/objects/dibobj.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/reactos/subsystems/win32/win32k/objects/dibobj.c b/reactos/subsystems/win32/win32k/objects/dibobj.c index c638e27f911..c652a8250fa 100644 --- a/reactos/subsystems/win32/win32k/objects/dibobj.c +++ b/reactos/subsystems/win32/win32k/objects/dibobj.c @@ -575,6 +575,7 @@ INT STDCALL NtGdiStretchDIBits(HDC hDC, { HBITMAP hBitmap, hOldBitmap; HDC hdcMem; + HPALETTE hPal = NULL; if (!Bits || !BitsInfo) { @@ -587,6 +588,12 @@ INT STDCALL NtGdiStretchDIBits(HDC hDC, BitsInfo->bmiHeader.biHeight); hOldBitmap = NtGdiSelectObject(hdcMem, hBitmap); + if(Usage == DIB_PAL_COLORS) + { + hPal = NtGdiGetCurrentObject(hDC, OBJ_PAL); + hPal = NtGdiSelectPalette(hdcMem, hPal, FALSE); + } + if (BitsInfo->bmiHeader.biCompression == BI_RLE4 || BitsInfo->bmiHeader.biCompression == BI_RLE8) { @@ -614,6 +621,9 @@ INT STDCALL NtGdiStretchDIBits(HDC hDC, hdcMem, XSrc, abs(BitsInfo->bmiHeader.biHeight) - SrcHeight - YSrc, SrcWidth, SrcHeight, ROP, 0); + if(hPal) + NtGdiSelectPalette(hdcMem, hPal, FALSE); + NtGdiSelectObject(hdcMem, hOldBitmap); NtGdiDeleteObjectApp(hdcMem); NtGdiDeleteObject(hBitmap);