mirror of
https://github.com/reactos/reactos.git
synced 2025-05-07 10:46:58 +00:00
- rename NtGdiSelectPalette to NtUserSelectPalette, move it to ntuser/windc.c and implement stub function SelectPalette in gdi32.dll calling it (Don't ask me why it is named this way, but it is on windows)
- rename NtGdiSetDIBitsToDevice to NtGdiSetDIBitsToDeviceInternal and implement stub function in gdi32.dll - update ntgdibad.h svn path=/trunk/; revision=28428
This commit is contained in:
parent
263feb7b7d
commit
0e85f8a438
9 changed files with 133 additions and 112 deletions
|
@ -527,7 +527,7 @@ SelectClipPath@8
|
||||||
SelectClipRgn@8
|
SelectClipRgn@8
|
||||||
SelectFontLocal@8
|
SelectFontLocal@8
|
||||||
SelectObject@8=NtGdiSelectObject@8
|
SelectObject@8=NtGdiSelectObject@8
|
||||||
SelectPalette@12=NtGdiSelectPalette@12
|
SelectPalette@12
|
||||||
SetAbortProc@8
|
SetAbortProc@8
|
||||||
SetArcDirection@8
|
SetArcDirection@8
|
||||||
SetBitmapAttributes@8
|
SetBitmapAttributes@8
|
||||||
|
@ -544,7 +544,7 @@ SetDCBrushColor@8
|
||||||
SetDCPenColor@8
|
SetDCPenColor@8
|
||||||
SetDIBColorTable@16=NtGdiSetDIBColorTable@16
|
SetDIBColorTable@16=NtGdiSetDIBColorTable@16
|
||||||
SetDIBits@28=NtGdiSetDIBits@28
|
SetDIBits@28=NtGdiSetDIBits@28
|
||||||
SetDIBitsToDevice@48=NtGdiSetDIBitsToDevice@48
|
SetDIBitsToDevice@48
|
||||||
SetDeviceGammaRamp@8
|
SetDeviceGammaRamp@8
|
||||||
SetEnhMetaFileBits@8
|
SetEnhMetaFileBits@8
|
||||||
SetFontEnumeration@4
|
SetFontEnumeration@4
|
||||||
|
|
|
@ -110,3 +110,37 @@ CreateDiscardableBitmap(
|
||||||
{
|
{
|
||||||
return NtGdiCreateCompatibleBitmap(hDC, Width, Height);
|
return NtGdiCreateCompatibleBitmap(hDC, Width, Height);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
INT WINAPI
|
||||||
|
SetDIBitsToDevice(
|
||||||
|
HDC hDC,
|
||||||
|
int XDest,
|
||||||
|
int YDest,
|
||||||
|
DWORD Width,
|
||||||
|
DWORD Height,
|
||||||
|
int XSrc,
|
||||||
|
int YSrc,
|
||||||
|
UINT StartScan,
|
||||||
|
UINT ScanLines,
|
||||||
|
CONST VOID *Bits,
|
||||||
|
CONST BITMAPINFO *lpbmi,
|
||||||
|
UINT ColorUse)
|
||||||
|
{
|
||||||
|
return NtGdiSetDIBitsToDeviceInternal(hDC,
|
||||||
|
XDest,
|
||||||
|
YDest,
|
||||||
|
Width,
|
||||||
|
Height,
|
||||||
|
XSrc,
|
||||||
|
YSrc,
|
||||||
|
StartScan,
|
||||||
|
ScanLines,
|
||||||
|
(LPBYTE)Bits,
|
||||||
|
(LPBITMAPINFO)lpbmi,
|
||||||
|
ColorUse,
|
||||||
|
lpbmi->bmiHeader.biSizeImage,
|
||||||
|
lpbmi->bmiHeader.biSize,
|
||||||
|
FALSE,
|
||||||
|
NULL);
|
||||||
|
}
|
||||||
|
|
|
@ -918,3 +918,17 @@ GetWindowOrgEx(
|
||||||
return NtGdiGetDCPoint( hdc, GdiGetWindowOrg, lpPoint );
|
return NtGdiGetDCPoint( hdc, GdiGetWindowOrg, lpPoint );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* FIXME: include correct header */
|
||||||
|
HPALETTE STDCALL NtUserSelectPalette(HDC hDC,
|
||||||
|
HPALETTE hpal,
|
||||||
|
BOOL ForceBackground);
|
||||||
|
|
||||||
|
HPALETTE
|
||||||
|
STDCALL
|
||||||
|
SelectPalette(
|
||||||
|
HDC hDC,
|
||||||
|
HPALETTE hPal,
|
||||||
|
BOOL bForceBackground)
|
||||||
|
{
|
||||||
|
return NtUserSelectPalette(hDC, hPal, bForceBackground);
|
||||||
|
}
|
||||||
|
|
|
@ -78,11 +78,6 @@ NtGdiCreateScalableFontResource(
|
||||||
LPCWSTR CurrentPath
|
LPCWSTR CurrentPath
|
||||||
);
|
);
|
||||||
|
|
||||||
/* The gdi32 call Should Use NtGdiGetRandomRgn and nothing else */
|
|
||||||
HRGN
|
|
||||||
NTAPI
|
|
||||||
NtGdiGetClipRgn(HDC hDC);
|
|
||||||
|
|
||||||
/* The gdi32 call Should Use NtGdiGetTextExtent */
|
/* The gdi32 call Should Use NtGdiGetTextExtent */
|
||||||
BOOL
|
BOOL
|
||||||
NTAPI
|
NTAPI
|
||||||
|
@ -604,15 +599,6 @@ NtGdiRemoveFontResource(LPCWSTR FileName);
|
||||||
/* Should be done in user-mode. */
|
/* Should be done in user-mode. */
|
||||||
HGDIOBJ STDCALL NtGdiSelectObject(HDC hDC, HGDIOBJ hGDIObj);
|
HGDIOBJ STDCALL NtGdiSelectObject(HDC hDC, HGDIOBJ hGDIObj);
|
||||||
|
|
||||||
/* Use NtUserSelectPalette. */
|
|
||||||
HPALETTE
|
|
||||||
STDCALL
|
|
||||||
NtGdiSelectPalette (
|
|
||||||
HDC hDC,
|
|
||||||
HPALETTE hpal,
|
|
||||||
BOOL ForceBackground
|
|
||||||
);
|
|
||||||
|
|
||||||
/* Needs to be done in user-mode, using shared GDI Object Attributes. */
|
/* Needs to be done in user-mode, using shared GDI Object Attributes. */
|
||||||
COLORREF STDCALL NtGdiSetBkColor (HDC hDC, COLORREF Color);
|
COLORREF STDCALL NtGdiSetBkColor (HDC hDC, COLORREF Color);
|
||||||
|
|
||||||
|
@ -642,24 +628,6 @@ NtGdiSetDIBits (
|
||||||
UINT ColorUse
|
UINT ColorUse
|
||||||
);
|
);
|
||||||
|
|
||||||
/* Use NtGdiSetDIBitsToDeviceInternal. */
|
|
||||||
INT
|
|
||||||
STDCALL
|
|
||||||
NtGdiSetDIBitsToDevice (
|
|
||||||
HDC hDC,
|
|
||||||
INT XDest,
|
|
||||||
INT YDest,
|
|
||||||
DWORD Width,
|
|
||||||
DWORD Height,
|
|
||||||
INT XSrc,
|
|
||||||
INT YSrc,
|
|
||||||
UINT StartScan,
|
|
||||||
UINT ScanLines,
|
|
||||||
CONST VOID * Bits,
|
|
||||||
CONST BITMAPINFO * bmi,
|
|
||||||
UINT ColorUse
|
|
||||||
);
|
|
||||||
|
|
||||||
/* Metafiles are user-mode. */
|
/* Metafiles are user-mode. */
|
||||||
HENHMETAFILE
|
HENHMETAFILE
|
||||||
STDCALL
|
STDCALL
|
||||||
|
|
|
@ -1006,5 +1006,62 @@ NtUserChangeDisplaySettings(
|
||||||
return Ret;
|
return Ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Select logical palette into device context.
|
||||||
|
* \param hDC handle to the device context
|
||||||
|
* \param hpal handle to the palette
|
||||||
|
* \param ForceBackground If this value is FALSE the logical palette will be copied to the device palette only when the applicatioon
|
||||||
|
* is in the foreground. If this value is TRUE then map the colors in the logical palette to the device
|
||||||
|
* palette colors in the best way.
|
||||||
|
* \return old palette
|
||||||
|
*
|
||||||
|
* \todo implement ForceBackground == TRUE
|
||||||
|
*/
|
||||||
|
HPALETTE STDCALL NtUserSelectPalette(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 (NULL != dc)
|
||||||
|
{
|
||||||
|
/* Check if this is a valid palette handle */
|
||||||
|
PalGDI = PALETTE_LockPalette(hpal);
|
||||||
|
if (NULL != PalGDI)
|
||||||
|
{
|
||||||
|
/* Is this a valid palette for this depth? */
|
||||||
|
if ((dc->w.bitsPerPixel <= 8 && PAL_INDEXED == PalGDI->Mode)
|
||||||
|
|| (8 < dc->w.bitsPerPixel && PAL_INDEXED != PalGDI->Mode))
|
||||||
|
{
|
||||||
|
PALETTE_UnlockPalette(PalGDI);
|
||||||
|
oldPal = dc->w.hPalette;
|
||||||
|
dc->w.hPalette = hpal;
|
||||||
|
}
|
||||||
|
else if (8 < dc->w.bitsPerPixel && PAL_INDEXED == PalGDI->Mode)
|
||||||
|
{
|
||||||
|
PALETTE_UnlockPalette(PalGDI);
|
||||||
|
oldPal = dc->PalIndexed;
|
||||||
|
dc->PalIndexed = hpal;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PALETTE_UnlockPalette(PalGDI);
|
||||||
|
oldPal = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
oldPal = NULL;
|
||||||
|
}
|
||||||
|
DC_UnlockDc(dc);
|
||||||
|
}
|
||||||
|
|
||||||
|
return oldPal;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* EOF */
|
/* EOF */
|
||||||
|
|
|
@ -617,63 +617,6 @@ BOOL STDCALL NtGdiResizePalette(HPALETTE hpal,
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
|
||||||
* Select logical palette into device context.
|
|
||||||
* \param hDC handle to the device context
|
|
||||||
* \param hpal handle to the palette
|
|
||||||
* \param ForceBackground If this value is FALSE the logical palette will be copied to the device palette only when the applicatioon
|
|
||||||
* is in the foreground. If this value is TRUE then map the colors in the logical palette to the device
|
|
||||||
* palette colors in the best way.
|
|
||||||
* \return old palette
|
|
||||||
*
|
|
||||||
* \todo implement ForceBackground == TRUE
|
|
||||||
*/
|
|
||||||
HPALETTE STDCALL NtGdiSelectPalette(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 (NULL != dc)
|
|
||||||
{
|
|
||||||
/* Check if this is a valid palette handle */
|
|
||||||
PalGDI = PALETTE_LockPalette(hpal);
|
|
||||||
if (NULL != PalGDI)
|
|
||||||
{
|
|
||||||
/* Is this a valid palette for this depth? */
|
|
||||||
if ((dc->w.bitsPerPixel <= 8 && PAL_INDEXED == PalGDI->Mode)
|
|
||||||
|| (8 < dc->w.bitsPerPixel && PAL_INDEXED != PalGDI->Mode))
|
|
||||||
{
|
|
||||||
PALETTE_UnlockPalette(PalGDI);
|
|
||||||
oldPal = dc->w.hPalette;
|
|
||||||
dc->w.hPalette = hpal;
|
|
||||||
}
|
|
||||||
else if (8 < dc->w.bitsPerPixel && PAL_INDEXED == PalGDI->Mode)
|
|
||||||
{
|
|
||||||
PALETTE_UnlockPalette(PalGDI);
|
|
||||||
oldPal = dc->PalIndexed;
|
|
||||||
dc->PalIndexed = hpal;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
PALETTE_UnlockPalette(PalGDI);
|
|
||||||
oldPal = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
oldPal = NULL;
|
|
||||||
}
|
|
||||||
DC_UnlockDc(dc);
|
|
||||||
}
|
|
||||||
|
|
||||||
return oldPal;
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOL STDCALL NtGdiSetColorAdjustment(HDC hDC,
|
BOOL STDCALL NtGdiSetColorAdjustment(HDC hDC,
|
||||||
CONST LPCOLORADJUSTMENT ca)
|
CONST LPCOLORADJUSTMENT ca)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1461,7 +1461,7 @@ IntGdiSetDCState ( HDC hDC, HDC hDCSave )
|
||||||
NtGdiSetBkColor( hDC, dcs->Dc_Attr.crBackgroundClr);
|
NtGdiSetBkColor( hDC, dcs->Dc_Attr.crBackgroundClr);
|
||||||
NtGdiSetTextColor( hDC, dcs->Dc_Attr.crForegroundClr);
|
NtGdiSetTextColor( hDC, dcs->Dc_Attr.crForegroundClr);
|
||||||
|
|
||||||
NtGdiSelectPalette( hDC, dcs->w.hPalette, FALSE );
|
NtUserSelectPalette( hDC, dcs->w.hPalette, FALSE );
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
GDISelectPalette16( hDC, dcs->w.hPalette, FALSE );
|
GDISelectPalette16( hDC, dcs->w.hPalette, FALSE );
|
||||||
|
|
|
@ -324,20 +324,27 @@ NtGdiSetDIBits(
|
||||||
return Ret;
|
return Ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
INT STDCALL
|
W32KAPI
|
||||||
NtGdiSetDIBitsToDevice(
|
INT
|
||||||
HDC hDC,
|
APIENTRY
|
||||||
INT XDest,
|
NtGdiSetDIBitsToDeviceInternal(
|
||||||
INT YDest,
|
IN HDC hDC,
|
||||||
DWORD Width,
|
IN INT XDest,
|
||||||
DWORD Height,
|
IN INT YDest,
|
||||||
INT XSrc,
|
IN DWORD Width,
|
||||||
INT YSrc,
|
IN DWORD Height,
|
||||||
UINT StartScan,
|
IN INT XSrc,
|
||||||
UINT ScanLines,
|
IN INT YSrc,
|
||||||
CONST VOID *Bits,
|
IN DWORD StartScan,
|
||||||
CONST BITMAPINFO *bmi,
|
IN DWORD ScanLines,
|
||||||
UINT ColorUse)
|
IN LPBYTE Bits,
|
||||||
|
IN LPBITMAPINFO bmi,
|
||||||
|
IN DWORD ColorUse,
|
||||||
|
IN UINT cjMaxBits,
|
||||||
|
IN UINT cjMaxInfo,
|
||||||
|
IN BOOL bTransformCoordinates,
|
||||||
|
IN OPTIONAL HANDLE hcmXform
|
||||||
|
)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
UNIMPLEMENTED;
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -591,7 +598,7 @@ INT STDCALL NtGdiStretchDIBits(HDC hDC,
|
||||||
if(Usage == DIB_PAL_COLORS)
|
if(Usage == DIB_PAL_COLORS)
|
||||||
{
|
{
|
||||||
hPal = NtGdiGetCurrentObject(hDC, OBJ_PAL);
|
hPal = NtGdiGetCurrentObject(hDC, OBJ_PAL);
|
||||||
hPal = NtGdiSelectPalette(hdcMem, hPal, FALSE);
|
hPal = NtUserSelectPalette(hdcMem, hPal, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (BitsInfo->bmiHeader.biCompression == BI_RLE4 ||
|
if (BitsInfo->bmiHeader.biCompression == BI_RLE4 ||
|
||||||
|
@ -622,7 +629,7 @@ INT STDCALL NtGdiStretchDIBits(HDC hDC,
|
||||||
SrcWidth, SrcHeight, ROP, 0);
|
SrcWidth, SrcHeight, ROP, 0);
|
||||||
|
|
||||||
if(hPal)
|
if(hPal)
|
||||||
NtGdiSelectPalette(hdcMem, hPal, FALSE);
|
NtUserSelectPalette(hdcMem, hPal, FALSE);
|
||||||
|
|
||||||
NtGdiSelectObject(hdcMem, hOldBitmap);
|
NtGdiSelectObject(hdcMem, hOldBitmap);
|
||||||
NtGdiDeleteObjectApp(hdcMem);
|
NtGdiDeleteObjectApp(hdcMem);
|
||||||
|
|
|
@ -277,7 +277,7 @@ NtGdiSetBrushOrg 4
|
||||||
NtGdiSetColorAdjustment 2
|
NtGdiSetColorAdjustment 2
|
||||||
NtGdiSetColorSpace 2
|
NtGdiSetColorSpace 2
|
||||||
NtGdiSetDeviceGammaRamp 2
|
NtGdiSetDeviceGammaRamp 2
|
||||||
# NtGdiSetDIBitsToDeviceInternal 16
|
NtGdiSetDIBitsToDeviceInternal 16
|
||||||
# NtGdiSetFontEnumeration 1
|
# NtGdiSetFontEnumeration 1
|
||||||
# NtGdiSetFontXform 3
|
# NtGdiSetFontXform 3
|
||||||
NtGdiSetIcmMode 3
|
NtGdiSetIcmMode 3
|
||||||
|
@ -507,7 +507,7 @@ NtUserResolveDesktopForWOW 1
|
||||||
NtUserSBGetParms 4
|
NtUserSBGetParms 4
|
||||||
NtUserScrollDC 7
|
NtUserScrollDC 7
|
||||||
NtUserScrollWindowEx 8
|
NtUserScrollWindowEx 8
|
||||||
# NtUserSelectPalette 3
|
NtUserSelectPalette 3
|
||||||
NtUserSendInput 3
|
NtUserSendInput 3
|
||||||
NtUserSetActiveWindow 1
|
NtUserSetActiveWindow 1
|
||||||
# NtUserSetAppImeLevel 2
|
# NtUserSetAppImeLevel 2
|
||||||
|
@ -692,12 +692,10 @@ NtUserValidateHandleSecure 1
|
||||||
#
|
#
|
||||||
#ReactOS specify syscall
|
#ReactOS specify syscall
|
||||||
NtGdiSelectObject 2
|
NtGdiSelectObject 2
|
||||||
NtGdiSelectPalette 3
|
|
||||||
NtGdiSetBkColor 2
|
NtGdiSetBkColor 2
|
||||||
NtGdiSetBkMode 2
|
NtGdiSetBkMode 2
|
||||||
NtGdiSetDIBColorTable 4
|
NtGdiSetDIBColorTable 4
|
||||||
NtGdiSetDIBits 7
|
NtGdiSetDIBits 7
|
||||||
NtGdiSetDIBitsToDevice 12
|
|
||||||
NtGdiSetEnhMetaFileBits 2
|
NtGdiSetEnhMetaFileBits 2
|
||||||
NtGdiSetGraphicsMode 2
|
NtGdiSetGraphicsMode 2
|
||||||
NtGdiSetICMProfile 2
|
NtGdiSetICMProfile 2
|
||||||
|
|
Loading…
Reference in a new issue