[ros-diffs] [cwittich] 26385: take care of DIB_PAL_COLORS in NtGdiStretchDIBits

cwittich at svn.reactos.org cwittich at svn.reactos.org
Wed Apr 18 02:38:36 CEST 2007


Author: cwittich
Date: Wed Apr 18 04:38:36 2007
New Revision: 26385

URL: http://svn.reactos.org/svn/reactos?rev=26385&view=rev
Log:
take care of DIB_PAL_COLORS in NtGdiStretchDIBits

Modified:
    trunk/reactos/subsystems/win32/win32k/objects/dibobj.c

Modified: trunk/reactos/subsystems/win32/win32k/objects/dibobj.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/objects/dibobj.c?rev=26385&r1=26384&r2=26385&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/dibobj.c (original)
+++ trunk/reactos/subsystems/win32/win32k/objects/dibobj.c Wed Apr 18 04:38:36 2007
@@ -575,6 +575,7 @@
 {
    HBITMAP hBitmap, hOldBitmap;
    HDC hdcMem;
+   HPALETTE hPal = NULL;
 
    if (!Bits || !BitsInfo)
    {
@@ -586,6 +587,12 @@
    hBitmap = NtGdiCreateCompatibleBitmap(hDC, BitsInfo->bmiHeader.biWidth,
                                          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)
@@ -613,6 +620,9 @@
       NtGdiStretchBlt(hDC, XDest, YDest, DestWidth, DestHeight,
                       hdcMem, XSrc, abs(BitsInfo->bmiHeader.biHeight) - SrcHeight - YSrc,
                       SrcWidth, SrcHeight, ROP, 0);
+
+   if(hPal)
+      NtGdiSelectPalette(hdcMem, hPal, FALSE);
 
    NtGdiSelectObject(hdcMem, hOldBitmap);
    NtGdiDeleteObjectApp(hdcMem);




More information about the Ros-diffs mailing list