mirror of
https://github.com/reactos/reactos.git
synced 2024-07-29 23:58:44 +00:00
gdi32: Fix and enable usermode implementation of SetWindowExtEx and SetViewportExtEx.
Win32k: remove NtGdiSetWindowExtEx and NtGdiSetViewportExtEx, rewrite IntFixIsotropicMapping, implement IntGetViewportExtEx svn path=/trunk/; revision=39281
This commit is contained in:
parent
849e2133ac
commit
e02dd69903
|
@ -327,7 +327,6 @@ SetViewportExtEx(HDC hdc,
|
||||||
int nYExtent,
|
int nYExtent,
|
||||||
LPSIZE lpSize)
|
LPSIZE lpSize)
|
||||||
{
|
{
|
||||||
#if 0
|
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
#if 0
|
#if 0
|
||||||
if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
|
if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
|
||||||
|
@ -349,20 +348,23 @@ SetViewportExtEx(HDC hdc,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return FALSE;
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr))
|
||||||
|
{
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
if (lpSize)
|
if (lpSize)
|
||||||
{
|
{
|
||||||
lpSize->cx = Dc_Attr->szlWindowExt.cx;
|
lpSize->cx = Dc_Attr->szlViewportExt.cx;
|
||||||
lpSize->cy = Dc_Attr->szlWindowExt.cy;
|
lpSize->cy = Dc_Attr->szlViewportExt.cy;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((Dc_Attr->ptlWindowExt.cx == nXExtent) && (Dc_Attr->ptlWindowExt.cy == nYExtent))
|
if ((Dc_Attr->szlViewportExt.cx == nXExtent) && (Dc_Attr->szlViewportExt.cy == nYExtent))
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
if ((Dc_Attr->iMapMode == MM_ISOTROPIC) && (Dc_Attr->iMapMode == MM_ANISOTROPIC))
|
if ((Dc_Attr->iMapMode == MM_ISOTROPIC) || (Dc_Attr->iMapMode == MM_ANISOTROPIC))
|
||||||
{
|
{
|
||||||
if (NtCurrentTeb()->GdiTebBatch.HDC == (ULONG)hdc)
|
if (NtCurrentTeb()->GdiTebBatch.HDC == hdc)
|
||||||
{
|
{
|
||||||
if (Dc_Attr->ulDirty_ & DC_FONTTEXT_DIRTY)
|
if (Dc_Attr->ulDirty_ & DC_FONTTEXT_DIRTY)
|
||||||
{
|
{
|
||||||
|
@ -370,14 +372,12 @@ SetViewportExtEx(HDC hdc,
|
||||||
Dc_Attr->ulDirty_ &= ~(DC_MODE_DIRTY|DC_FONTTEXT_DIRTY);
|
Dc_Attr->ulDirty_ &= ~(DC_MODE_DIRTY|DC_FONTTEXT_DIRTY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Dc_Attr->szlWindowExt.cx = nXExtent;
|
Dc_Attr->szlViewportExt.cx = nXExtent;
|
||||||
Dc_Attr->szlWindowExt.cy = nYExtent;
|
Dc_Attr->szlViewportExt.cy = nYExtent;
|
||||||
if (Dc_Attr->dwLayout & LAYOUT_RTL) NtGdiMirrorWindowOrg(hdc);
|
if (Dc_Attr->dwLayout & LAYOUT_RTL) NtGdiMirrorWindowOrg(hdc);
|
||||||
Dc_Attr->flXform |= (PAGE_EXTENTS_CHANGED|INVALIDATE_ATTRIBUTES|DEVICE_TO_WORLD_INVALID);
|
Dc_Attr->flXform |= (PAGE_EXTENTS_CHANGED|INVALIDATE_ATTRIBUTES|DEVICE_TO_WORLD_INVALID);
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
#endif
|
|
||||||
return NtGdiSetViewportExtEx(hdc, nXExtent, nYExtent, lpSize);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -452,7 +452,6 @@ SetWindowExtEx(HDC hdc,
|
||||||
int nYExtent,
|
int nYExtent,
|
||||||
LPSIZE lpSize)
|
LPSIZE lpSize)
|
||||||
{
|
{
|
||||||
#if 0
|
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
#if 0
|
#if 0
|
||||||
if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
|
if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
|
||||||
|
@ -488,14 +487,14 @@ SetWindowExtEx(HDC hdc,
|
||||||
NtGdiMirrorWindowOrg(hdc);
|
NtGdiMirrorWindowOrg(hdc);
|
||||||
Dc_Attr->flXform |= (PAGE_EXTENTS_CHANGED|INVALIDATE_ATTRIBUTES|DEVICE_TO_WORLD_INVALID);
|
Dc_Attr->flXform |= (PAGE_EXTENTS_CHANGED|INVALIDATE_ATTRIBUTES|DEVICE_TO_WORLD_INVALID);
|
||||||
}
|
}
|
||||||
else if ((Dc_Attr->iMapMode == MM_ISOTROPIC) && (Dc_Attr->iMapMode == MM_ANISOTROPIC))
|
else if ((Dc_Attr->iMapMode == MM_ISOTROPIC) || (Dc_Attr->iMapMode == MM_ANISOTROPIC))
|
||||||
{
|
{
|
||||||
if ((Dc_Attr->szlWindowExt.cx == nXExtent) && (Dc_Attr->szlWindowExt.cy == nYExtent))
|
if ((Dc_Attr->szlWindowExt.cx == nXExtent) && (Dc_Attr->szlWindowExt.cy == nYExtent))
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
if ((!nXExtent) && (!nYExtent)) return FALSE;
|
if ((!nXExtent) || (!nYExtent)) return FALSE;
|
||||||
|
|
||||||
if (NtCurrentTeb()->GdiTebBatch.HDC == (ULONG)hdc)
|
if (NtCurrentTeb()->GdiTebBatch.HDC == hdc)
|
||||||
{
|
{
|
||||||
if (Dc_Attr->ulDirty_ & DC_FONTTEXT_DIRTY)
|
if (Dc_Attr->ulDirty_ & DC_FONTTEXT_DIRTY)
|
||||||
{
|
{
|
||||||
|
@ -509,8 +508,6 @@ SetWindowExtEx(HDC hdc,
|
||||||
Dc_Attr->flXform |= (PAGE_EXTENTS_CHANGED|INVALIDATE_ATTRIBUTES|DEVICE_TO_WORLD_INVALID);
|
Dc_Attr->flXform |= (PAGE_EXTENTS_CHANGED|INVALIDATE_ATTRIBUTES|DEVICE_TO_WORLD_INVALID);
|
||||||
}
|
}
|
||||||
return TRUE; // Return TRUE.
|
return TRUE; // Return TRUE.
|
||||||
#endif
|
|
||||||
return NtGdiSetWindowExtEx(hdc, nXExtent, nYExtent, lpSize);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -91,16 +91,6 @@ NtGdiOffsetWindowOrgEx (
|
||||||
LPPOINT Point
|
LPPOINT Point
|
||||||
);
|
);
|
||||||
|
|
||||||
/* Needs to be done in user-mode. */
|
|
||||||
BOOL
|
|
||||||
APIENTRY
|
|
||||||
NtGdiSetWindowExtEx (
|
|
||||||
HDC hDC,
|
|
||||||
int XExtent,
|
|
||||||
int YExtent,
|
|
||||||
LPSIZE Size
|
|
||||||
);
|
|
||||||
|
|
||||||
/* Needs to be done in user-mode. */
|
/* Needs to be done in user-mode. */
|
||||||
BOOL
|
BOOL
|
||||||
APIENTRY
|
APIENTRY
|
||||||
|
@ -111,16 +101,6 @@ NtGdiSetViewportOrgEx (
|
||||||
LPPOINT Point
|
LPPOINT Point
|
||||||
);
|
);
|
||||||
|
|
||||||
/* Needs to be done in user-mode. */
|
|
||||||
BOOL
|
|
||||||
APIENTRY
|
|
||||||
NtGdiSetViewportExtEx (
|
|
||||||
HDC hDC,
|
|
||||||
int XExtent,
|
|
||||||
int YExtent,
|
|
||||||
LPSIZE Size
|
|
||||||
);
|
|
||||||
|
|
||||||
/* Needs to be done in user-mode. */
|
/* Needs to be done in user-mode. */
|
||||||
BOOL
|
BOOL
|
||||||
APIENTRY
|
APIENTRY
|
||||||
|
|
|
@ -23,5 +23,6 @@ IntGdiModifyWorldTransform(PDC pDc,
|
||||||
DWORD Mode);
|
DWORD Mode);
|
||||||
|
|
||||||
VOID FASTCALL IntMirrorWindowOrg(PDC);
|
VOID FASTCALL IntMirrorWindowOrg(PDC);
|
||||||
|
void FASTCALL IntFixIsotropicMapping(PDC dc);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -37,29 +37,33 @@
|
||||||
void FASTCALL
|
void FASTCALL
|
||||||
IntFixIsotropicMapping(PDC dc)
|
IntFixIsotropicMapping(PDC dc)
|
||||||
{
|
{
|
||||||
ULONG xdim;
|
PDC_ATTR pDcAttr;
|
||||||
ULONG ydim;
|
LONG fx, fy, s;
|
||||||
PDC_ATTR Dc_Attr = dc->pDc_Attr;
|
|
||||||
if (!Dc_Attr) Dc_Attr = &dc->Dc_Attr;
|
|
||||||
|
|
||||||
xdim = EngMulDiv(Dc_Attr->szlViewportExt.cx,
|
/* Get a pointer to the DC_ATTR */
|
||||||
((PGDIDEVICE)dc->pPDev)->GDIInfo.ulHorzSize,
|
pDcAttr = dc->pDc_Attr;
|
||||||
((PGDIDEVICE)dc->pPDev)->GDIInfo.ulHorzRes) /
|
if (!pDcAttr) pDcAttr = &dc->Dc_Attr;
|
||||||
Dc_Attr->szlWindowExt.cx;
|
|
||||||
ydim = EngMulDiv(Dc_Attr->szlViewportExt.cy,
|
|
||||||
((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVertSize,
|
|
||||||
((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVertRes) /
|
|
||||||
Dc_Attr->szlWindowExt.cy;
|
|
||||||
|
|
||||||
if (xdim > ydim)
|
/* Check if all values are valid */
|
||||||
|
if (pDcAttr->szlWindowExt.cx == 0 || pDcAttr->szlWindowExt.cy == 0 ||
|
||||||
|
pDcAttr->szlViewportExt.cx == 0 || pDcAttr->szlViewportExt.cy == 0)
|
||||||
{
|
{
|
||||||
Dc_Attr->szlViewportExt.cx = Dc_Attr->szlViewportExt.cx * abs(ydim / xdim);
|
/* Don't recalculate */
|
||||||
if (!Dc_Attr->szlViewportExt.cx) Dc_Attr->szlViewportExt.cx = 1;
|
return;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
fx = abs(pDcAttr->szlWindowExt.cx * pDcAttr->szlViewportExt.cy);
|
||||||
|
fy = abs(pDcAttr->szlWindowExt.cy * pDcAttr->szlViewportExt.cx);
|
||||||
|
|
||||||
|
if (fy > fx)
|
||||||
{
|
{
|
||||||
Dc_Attr->szlViewportExt.cy = Dc_Attr->szlViewportExt.cy * abs(xdim / ydim);
|
s = pDcAttr->szlWindowExt.cy * pDcAttr->szlViewportExt.cx > 0 ? 1 : -1;
|
||||||
if (!Dc_Attr->szlViewportExt.cy) Dc_Attr->szlViewportExt.cy = 1;
|
pDcAttr->szlViewportExt.cx = s * fx / pDcAttr->szlWindowExt.cy;
|
||||||
|
}
|
||||||
|
else if (fx > fy)
|
||||||
|
{
|
||||||
|
s = pDcAttr->szlWindowExt.cx * pDcAttr->szlViewportExt.cy > 0 ? 1 : -1;
|
||||||
|
pDcAttr->szlViewportExt.cy = s * fy / pDcAttr->szlWindowExt.cx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -716,78 +720,6 @@ IntGdiSetMapMode(PDC dc,
|
||||||
return PrevMapMode;
|
return PrevMapMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL
|
|
||||||
APIENTRY
|
|
||||||
NtGdiSetViewportExtEx(HDC hDC,
|
|
||||||
int XExtent,
|
|
||||||
int YExtent,
|
|
||||||
LPSIZE Size)
|
|
||||||
{
|
|
||||||
PDC dc;
|
|
||||||
PDC_ATTR Dc_Attr;
|
|
||||||
|
|
||||||
dc = DC_LockDc(hDC);
|
|
||||||
if (!dc)
|
|
||||||
{
|
|
||||||
SetLastWin32Error(ERROR_INVALID_HANDLE);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
Dc_Attr = dc->pDc_Attr;
|
|
||||||
if (!Dc_Attr) Dc_Attr = &dc->Dc_Attr;
|
|
||||||
|
|
||||||
switch (Dc_Attr->iMapMode)
|
|
||||||
{
|
|
||||||
case MM_HIENGLISH:
|
|
||||||
case MM_HIMETRIC:
|
|
||||||
case MM_LOENGLISH:
|
|
||||||
case MM_LOMETRIC:
|
|
||||||
case MM_TEXT:
|
|
||||||
case MM_TWIPS:
|
|
||||||
DC_UnlockDc(dc);
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
case MM_ISOTROPIC:
|
|
||||||
// Here we should (probably) check that SetWindowExtEx *really* has
|
|
||||||
// been called
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Size)
|
|
||||||
{
|
|
||||||
NTSTATUS Status = STATUS_SUCCESS;
|
|
||||||
|
|
||||||
_SEH2_TRY
|
|
||||||
{
|
|
||||||
ProbeForWrite(Size, sizeof(SIZE), 1);
|
|
||||||
Size->cx = Dc_Attr->szlViewportExt.cx;
|
|
||||||
Size->cy = Dc_Attr->szlViewportExt.cy;
|
|
||||||
|
|
||||||
Dc_Attr->szlViewportExt.cx = XExtent;
|
|
||||||
Dc_Attr->szlViewportExt.cy = YExtent;
|
|
||||||
|
|
||||||
if (Dc_Attr->iMapMode == MM_ISOTROPIC)
|
|
||||||
IntFixIsotropicMapping(dc);
|
|
||||||
}
|
|
||||||
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
|
||||||
{
|
|
||||||
Status = _SEH2_GetExceptionCode();
|
|
||||||
}
|
|
||||||
_SEH2_END;
|
|
||||||
|
|
||||||
if (!NT_SUCCESS(Status))
|
|
||||||
{
|
|
||||||
SetLastNtError(Status);
|
|
||||||
DC_UnlockDc(dc);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
DC_UpdateXforms(dc);
|
|
||||||
DC_UnlockDc(dc);
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOL
|
BOOL
|
||||||
APIENTRY
|
APIENTRY
|
||||||
|
@ -841,70 +773,6 @@ NtGdiSetViewportOrgEx(HDC hDC,
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL
|
|
||||||
APIENTRY
|
|
||||||
NtGdiSetWindowExtEx(HDC hDC,
|
|
||||||
int XExtent,
|
|
||||||
int YExtent,
|
|
||||||
LPSIZE Size)
|
|
||||||
{
|
|
||||||
PDC dc;
|
|
||||||
PDC_ATTR Dc_Attr;
|
|
||||||
|
|
||||||
dc = DC_LockDc(hDC);
|
|
||||||
if (!dc)
|
|
||||||
{
|
|
||||||
SetLastWin32Error(ERROR_INVALID_HANDLE);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
Dc_Attr = dc->pDc_Attr;
|
|
||||||
if (!Dc_Attr) Dc_Attr = &dc->Dc_Attr;
|
|
||||||
|
|
||||||
switch (Dc_Attr->iMapMode)
|
|
||||||
{
|
|
||||||
case MM_HIENGLISH:
|
|
||||||
case MM_HIMETRIC:
|
|
||||||
case MM_LOENGLISH:
|
|
||||||
case MM_LOMETRIC:
|
|
||||||
case MM_TEXT:
|
|
||||||
case MM_TWIPS:
|
|
||||||
DC_UnlockDc(dc);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Size)
|
|
||||||
{
|
|
||||||
NTSTATUS Status = STATUS_SUCCESS;
|
|
||||||
|
|
||||||
_SEH2_TRY
|
|
||||||
{
|
|
||||||
ProbeForWrite(Size, sizeof(SIZE), 1);
|
|
||||||
Size->cx = Dc_Attr->szlWindowExt.cx;
|
|
||||||
Size->cy = Dc_Attr->szlWindowExt.cy;
|
|
||||||
}
|
|
||||||
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
|
||||||
{
|
|
||||||
Status = _SEH2_GetExceptionCode();
|
|
||||||
}
|
|
||||||
_SEH2_END;
|
|
||||||
|
|
||||||
if (!NT_SUCCESS(Status))
|
|
||||||
{
|
|
||||||
SetLastNtError(Status);
|
|
||||||
DC_UnlockDc(dc);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Dc_Attr->szlWindowExt.cx = XExtent;
|
|
||||||
Dc_Attr->szlWindowExt.cy = YExtent;
|
|
||||||
|
|
||||||
DC_UpdateXforms(dc);
|
|
||||||
DC_UnlockDc(dc);
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOL
|
BOOL
|
||||||
APIENTRY
|
APIENTRY
|
||||||
NtGdiSetWindowOrgEx(HDC hDC,
|
NtGdiSetWindowOrgEx(HDC hDC,
|
||||||
|
|
|
@ -65,7 +65,6 @@ NtGdiCreateCompatibleDC(HDC hDC)
|
||||||
UNICODE_STRING DriverName;
|
UNICODE_STRING DriverName;
|
||||||
DWORD Layout = 0;
|
DWORD Layout = 0;
|
||||||
|
|
||||||
DisplayDC = NULL;
|
|
||||||
if (hDC == NULL)
|
if (hDC == NULL)
|
||||||
{
|
{
|
||||||
RtlInitUnicodeString(&DriverName, L"DISPLAY");
|
RtlInitUnicodeString(&DriverName, L"DISPLAY");
|
||||||
|
@ -1266,6 +1265,33 @@ IntGetAspectRatioFilter(PDC pDC,
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VOID
|
||||||
|
FASTCALL
|
||||||
|
IntGetViewportExtEx(PDC pdc, LPSIZE pSize)
|
||||||
|
{
|
||||||
|
PDC_ATTR pDc_Attr;
|
||||||
|
|
||||||
|
/* Get a pointer to the dc attribute */
|
||||||
|
pDc_Attr = pdc->pDc_Attr;
|
||||||
|
if (!pDc_Attr) pDc_Attr = &pdc->Dc_Attr;
|
||||||
|
|
||||||
|
/* Check if we need to recalculate */
|
||||||
|
if (pDc_Attr->flXform & PAGE_EXTENTS_CHANGED)
|
||||||
|
{
|
||||||
|
/* Check if we need to do isotropic fixup */
|
||||||
|
if (pDc_Attr->iMapMode == MM_ISOTROPIC)
|
||||||
|
{
|
||||||
|
IntFixIsotropicMapping(pdc);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Update xforms, CHECKME: really done here? */
|
||||||
|
DC_UpdateXforms(pdc);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Copy the viewport extension */
|
||||||
|
*pSize = pDc_Attr->szlViewportExt;
|
||||||
|
}
|
||||||
|
|
||||||
BOOL APIENTRY
|
BOOL APIENTRY
|
||||||
NtGdiGetDCPoint( HDC hDC, UINT iPoint, PPOINTL Point)
|
NtGdiGetDCPoint( HDC hDC, UINT iPoint, PPOINTL Point)
|
||||||
{
|
{
|
||||||
|
|
|
@ -170,7 +170,6 @@ DC_GET_VAL( INT, IntGdiGetStretchBltMode, jStretchBltMode )
|
||||||
DC_GET_VAL( UINT, IntGdiGetTextAlign, lTextAlign )
|
DC_GET_VAL( UINT, IntGdiGetTextAlign, lTextAlign )
|
||||||
DC_GET_VAL( COLORREF, IntGdiGetTextColor, crForegroundClr )
|
DC_GET_VAL( COLORREF, IntGdiGetTextColor, crForegroundClr )
|
||||||
|
|
||||||
DC_GET_VAL_EX( GetViewportExtEx, szlViewportExt.cx, szlViewportExt.cy, SIZE, cx, cy )
|
|
||||||
DC_GET_VAL_EX( GetViewportOrgEx, ptlViewportOrg.x, ptlViewportOrg.y, POINT, x, y )
|
DC_GET_VAL_EX( GetViewportOrgEx, ptlViewportOrg.x, ptlViewportOrg.y, POINT, x, y )
|
||||||
DC_GET_VAL_EX( GetWindowExtEx, szlWindowExt.cx, szlWindowExt.cy, SIZE, cx, cy )
|
DC_GET_VAL_EX( GetWindowExtEx, szlWindowExt.cx, szlWindowExt.cy, SIZE, cx, cy )
|
||||||
DC_GET_VAL_EX( GetWindowOrgEx, ptlWindowOrg.x, ptlWindowOrg.y, POINT, x, y )
|
DC_GET_VAL_EX( GetWindowOrgEx, ptlWindowOrg.x, ptlWindowOrg.y, POINT, x, y )
|
||||||
|
|
|
@ -675,9 +675,7 @@ NtGdiDrawStream 3
|
||||||
#
|
#
|
||||||
#ReactOS specific syscalls
|
#ReactOS specific syscalls
|
||||||
NtGdiSetDIBits 7
|
NtGdiSetDIBits 7
|
||||||
NtGdiSetViewportExtEx 4
|
|
||||||
NtGdiSetViewportOrgEx 4
|
NtGdiSetViewportOrgEx 4
|
||||||
NtGdiSetWindowExtEx 4
|
|
||||||
NtGdiSetWindowOrgEx 4
|
NtGdiSetWindowOrgEx 4
|
||||||
NtGdiGetFontFamilyInfo 4
|
NtGdiGetFontFamilyInfo 4
|
||||||
NtGdiOffsetViewportOrgEx 4
|
NtGdiOffsetViewportOrgEx 4
|
||||||
|
|
Loading…
Reference in a new issue