mirror of
https://github.com/reactos/reactos.git
synced 2024-10-06 01:13:38 +00:00
Separate SelectPalette function from User and move it to GDI.
svn path=/trunk/; revision=33846
This commit is contained in:
parent
528fc30198
commit
833d68c273
|
@ -909,45 +909,17 @@ NtUserGetDC(HWND hWnd)
|
||||||
*
|
*
|
||||||
* \todo implement ForceBackground == TRUE
|
* \todo implement ForceBackground == TRUE
|
||||||
*/
|
*/
|
||||||
HPALETTE STDCALL NtUserSelectPalette(HDC hDC,
|
HPALETTE
|
||||||
|
STDCALL
|
||||||
|
NtUserSelectPalette(HDC hDC,
|
||||||
HPALETTE hpal,
|
HPALETTE hpal,
|
||||||
BOOL ForceBackground)
|
BOOL ForceBackground)
|
||||||
{
|
{
|
||||||
PDC dc;
|
HPALETTE oldPal;
|
||||||
HPALETTE oldPal = NULL;
|
UserEnterExclusive();
|
||||||
PPALGDI PalGDI;
|
// Implement window checks
|
||||||
|
oldPal = GdiSelectPalette( hDC, hpal, ForceBackground);
|
||||||
// FIXME: mark the palette as a [fore\back]ground pal
|
UserLeave();
|
||||||
dc = DC_LockDc(hDC);
|
|
||||||
if (!dc)
|
|
||||||
{
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Check if this is a valid palette handle */
|
|
||||||
PalGDI = PALETTE_LockPalette(hpal);
|
|
||||||
if (!PalGDI)
|
|
||||||
{
|
|
||||||
DC_UnlockDc(dc);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Is this a valid palette for this depth? */
|
|
||||||
if ((dc->w.bitsPerPixel <= 8 && PalGDI->Mode == PAL_INDEXED) ||
|
|
||||||
(dc->w.bitsPerPixel > 8 && PalGDI->Mode != PAL_INDEXED))
|
|
||||||
{
|
|
||||||
oldPal = dc->DcLevel.hpal;
|
|
||||||
dc->DcLevel.hpal = hpal;
|
|
||||||
}
|
|
||||||
else if (8 < dc->w.bitsPerPixel && PAL_INDEXED == PalGDI->Mode)
|
|
||||||
{
|
|
||||||
oldPal = dc->DcLevel.hpal;
|
|
||||||
dc->DcLevel.hpal = hpal;
|
|
||||||
}
|
|
||||||
|
|
||||||
PALETTE_UnlockPalette(PalGDI);
|
|
||||||
DC_UnlockDc(dc);
|
|
||||||
|
|
||||||
return oldPal;
|
return oldPal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1454,7 +1454,7 @@ IntGdiCopyFromSaveState(PDC dc, PDC dcs, HDC hDC)
|
||||||
IntGdiSetBkColor( hDC, sDc_Attr->crBackgroundClr);
|
IntGdiSetBkColor( hDC, sDc_Attr->crBackgroundClr);
|
||||||
IntGdiSetTextColor( hDC, sDc_Attr->crForegroundClr);
|
IntGdiSetTextColor( hDC, sDc_Attr->crForegroundClr);
|
||||||
|
|
||||||
NtUserSelectPalette( hDC, dcs->DcLevel.hpal, FALSE );
|
GdiSelectPalette( hDC, dcs->DcLevel.hpal, FALSE );
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
GDISelectPalette16( hDC, dcs->DcLevel.hpal, FALSE );
|
GDISelectPalette16( hDC, dcs->DcLevel.hpal, FALSE );
|
||||||
|
@ -2107,6 +2107,50 @@ NtGdiSelectPen(
|
||||||
return hOrgPen;
|
return hOrgPen;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HPALETTE
|
||||||
|
FASTCALL
|
||||||
|
GdiSelectPalette(HDC hDC,
|
||||||
|
HPALETTE hpal,
|
||||||
|
BOOL ForceBackground)
|
||||||
|
{
|
||||||
|
PDC dc;
|
||||||
|
HPALETTE oldPal = NULL;
|
||||||
|
PPALGDI PalGDI;
|
||||||
|
|
||||||
|
// FIXME: mark the palette as a [fore\back]ground pal
|
||||||
|
dc = DC_LockDc(hDC);
|
||||||
|
if (!dc)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Check if this is a valid palette handle */
|
||||||
|
PalGDI = PALETTE_LockPalette(hpal);
|
||||||
|
if (!PalGDI)
|
||||||
|
{
|
||||||
|
DC_UnlockDc(dc);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Is this a valid palette for this depth? */
|
||||||
|
if ((dc->w.bitsPerPixel <= 8 && PalGDI->Mode == PAL_INDEXED) ||
|
||||||
|
(dc->w.bitsPerPixel > 8 && PalGDI->Mode != PAL_INDEXED))
|
||||||
|
{
|
||||||
|
oldPal = dc->DcLevel.hpal;
|
||||||
|
dc->DcLevel.hpal = hpal;
|
||||||
|
}
|
||||||
|
else if (8 < dc->w.bitsPerPixel && PAL_INDEXED == PalGDI->Mode)
|
||||||
|
{
|
||||||
|
oldPal = dc->DcLevel.hpal;
|
||||||
|
dc->DcLevel.hpal = hpal;
|
||||||
|
}
|
||||||
|
|
||||||
|
PALETTE_UnlockPalette(PalGDI);
|
||||||
|
DC_UnlockDc(dc);
|
||||||
|
|
||||||
|
return oldPal;
|
||||||
|
}
|
||||||
|
|
||||||
WORD STDCALL
|
WORD STDCALL
|
||||||
IntGdiSetHookFlags(HDC hDC, WORD Flags)
|
IntGdiSetHookFlags(HDC hDC, WORD Flags)
|
||||||
{
|
{
|
||||||
|
|
|
@ -794,7 +794,7 @@ NtGdiStretchDIBitsInternal(
|
||||||
if(Usage == DIB_PAL_COLORS)
|
if(Usage == DIB_PAL_COLORS)
|
||||||
{
|
{
|
||||||
hPal = NtGdiGetDCObject(hDC, GDI_OBJECT_TYPE_PALETTE);
|
hPal = NtGdiGetDCObject(hDC, GDI_OBJECT_TYPE_PALETTE);
|
||||||
hPal = NtUserSelectPalette(hdcMem, hPal, FALSE);
|
hPal = GdiSelectPalette(hdcMem, hPal, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (BitsInfo->bmiHeader.biCompression == BI_RLE4 ||
|
if (BitsInfo->bmiHeader.biCompression == BI_RLE4 ||
|
||||||
|
@ -835,7 +835,7 @@ NtGdiStretchDIBitsInternal(
|
||||||
SrcWidth, SrcHeight, ROP, 0);
|
SrcWidth, SrcHeight, ROP, 0);
|
||||||
|
|
||||||
if(hPal)
|
if(hPal)
|
||||||
NtUserSelectPalette(hdcMem, hPal, FALSE);
|
GdiSelectPalette(hdcMem, hPal, FALSE);
|
||||||
|
|
||||||
NtGdiSelectBitmap(hdcMem, hOldBitmap);
|
NtGdiSelectBitmap(hdcMem, hOldBitmap);
|
||||||
NtGdiDeleteObjectApp(hdcMem);
|
NtGdiDeleteObjectApp(hdcMem);
|
||||||
|
|
Loading…
Reference in a new issue