98 SIZEL szlWindowExt, szlViewportExt;
102 pdcattr = pdc->pdcattr;
109 if ((szlWindowExt.
cx == 0) || (szlWindowExt.
cy == 0) ||
110 (szlViewportExt.
cx == 0) || (szlViewportExt.
cy == 0))
121 s = (szlWindowExt.
cy ^ szlViewportExt.
cx) > 0 ? 1 : -1;
126 s = (szlWindowExt.
cx ^ szlViewportExt.
cy) > 0 ? 1 : -1;
131 pdc->pdcattr->flXform &= ~PAGE_EXTENTS_CHANGED;
153 if (szlWindowExt.
cx != 0)
161 if (szlWindowExt.
cy != 0)
184 XFORMOBJ xoPageToDevice, xoWorldToPage, xoWorldToDevice;
199 pdc->pdcattr->flXform &= ~WORLD_XFORM_CHANGED;
206 XFORMOBJ xoWorldToDevice, xoDeviceToWorld;
217 MX_Set0(&pdc->pdcattr->mxDeviceToWorld);
222 pdc->pdcattr->flXform &= ~DEVICE_TO_WORLD_INVALID;
236 if (!pxformDest || !pxform1 || !pxform2)
return FALSE;
326 pmx = &mxPageToDevice;
381 if (!UnsafePtsIn || !UnsafePtOut)
534 if (pxformUnsafe !=
NULL)
572 pdcattr =
dc->pdcattr;
583 UnsafePoint->
x = -UnsafePoint->
x;
630 pdcattr =
dc->pdcattr;
686 pdcattr = pDC->pdcattr;
690 if (Xdenom && Ydenom)
765 pdcattr = pDC->pdcattr;
796 if (Xdenom && Ydenom)
930 pdcattr =
dc->pdcattr;
963 pdcattr =
dc->pdcattr;
1015 pdcattr =
dc->pdcattr;
1060 pdcattr =
dc->pdcattr;
1070 if (
cx == 0)
return;
1074 X = (
dc->erclWindow.right -
dc->erclWindow.left) - 1;
1113 pdc->dclevel.flPath &= ~DCPATH_CLOCKWISE;
1148 dwOldLayout = pdc->pdcattr->dwLayout;
1171 Ret =
dc->erclWindow.right -
dc->erclWindow.left;
1203 IN INT cxVirtualDevice,
1204 IN INT cyVirtualDevice)
1209 if (!cxVirtualDevice || !cyVirtualDevice)
1217 pdcattr =
dc->pdcattr;
1234 IN INT cxVirtualDevicePixel,
1235 IN INT cyVirtualDevicePixel,
1236 IN INT cxVirtualDeviceMm,
1237 IN INT cyVirtualDeviceMm)
1243 if (cxVirtualDevicePixel == 0 && cyVirtualDevicePixel == 0 &&
1244 cxVirtualDeviceMm == 0 && cyVirtualDeviceMm == 0)
1251 else if (cxVirtualDevicePixel == 0 || cyVirtualDevicePixel == 0 ||
1252 cxVirtualDeviceMm == 0 || cyVirtualDeviceMm == 0)
1260 pdcattr =
dc->pdcattr;
1276 if (pDC->pdcattr->flFontMapper & 1)
1280 AspectRatio->
cx = pDC->ppdev->gdiinfo.ulLogPixelsX;
1281 AspectRatio->
cy = pDC->ppdev->gdiinfo.ulLogPixelsY;
1285 AspectRatio->
cx = 0;
1286 AspectRatio->
cy = 0;
1323 Point->
x = pdc->pdcattr->szlWindowExt.cx;
1324 Point->
y = pdc->pdcattr->szlWindowExt.cy;
1328 *
Point = pdc->pdcattr->ptlViewportOrg;
1332 *
Point = pdc->pdcattr->ptlWindowOrg;
1336 *
Point = pdc->ptlDCOrig;
1369 dc->ptlDCOrig.x =
x;
1370 dc->ptlDCOrig.y =
y;
1373 dc->ptlFillOrigin.x =
dc->dclevel.ptlBrushOrigin.x +
x;
1374 dc->ptlFillOrigin.y =
dc->dclevel.ptlBrushOrigin.y +
y;
FORCEINLINE PMATRIX DC_pmxDeviceToWorld(PDC pdc)
FORCEINLINE PMATRIX DC_pmxWorldToPage(PDC pdc)
FORCEINLINE PMATRIX DC_pmxWorldToDevice(PDC pdc)
static BOOLEAN INTERNAL_APPLY_MATRIX(PMATRIX matrix, LPPOINT points, UINT count)
FORCEINLINE PSIZEL DC_pszlViewportExt(PDC pdc)
FORCEINLINE VOID DC_UnlockDc(PDC pdc)
FORCEINLINE PDC DC_LockDc(HDC hdc)
#define ERROR_NOT_ENOUGH_MEMORY
#define NT_SUCCESS(StatCode)
#define ERROR_INVALID_PARAMETER
#define ERROR_INVALID_HANDLE
#define ExAllocatePoolWithTag(hernya, size, tag)
VOID NTAPI ProbeForRead(IN CONST VOID *Address, IN SIZE_T Length, IN ULONG Alignment)
VOID NTAPI ProbeForWrite(IN PVOID Address, IN SIZE_T Length, IN ULONG Alignment)
BOOL APIENTRY NtGdiGetTransform(_In_ HDC hdc, _In_ DWORD iXform, _Out_ LPXFORM pxf)
#define GdiWorldSpaceToDeviceSpace
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
#define EXCEPTION_EXECUTE_HANDLER
#define ExFreePoolWithTag(_P, _T)
BOOL APIENTRY GreGetDCPoint(HDC hDC, UINT iPoint, PPOINTL Point)
BOOL APIENTRY NtGdiSetSizeDevice(IN HDC hdc, IN INT cxVirtualDevice, IN INT cyVirtualDevice)
BOOL APIENTRY NtGdiOffsetWindowOrgEx(HDC hDC, int XOffset, int YOffset, LPPOINT Point)
BOOL FASTCALL GreSetViewportOrgEx(HDC hDC, int X, int Y, LPPOINT Point)
static VOID FASTCALL DC_vGetAspectRatioFilter(PDC pDC, LPSIZE AspectRatio)
int APIENTRY IntGdiSetMapMode(PDC dc, int MapMode)
VOID FASTCALL DC_vGetPageToDevice(PDC pdc, MATRIX *pmx)
VOID NTAPI DC_vSetLayout(IN PDC pdc, IN LONG wox, IN DWORD dwLayout)
BOOL APIENTRY NtGdiSetViewportOrgEx(HDC hDC, int X, int Y, LPPOINT Point)
BOOL WINAPI GreSetDCOrg(_In_ HDC hdc, _In_ LONG x, _In_ LONG y, _In_opt_ PRECTL Rect)
LONG APIENTRY NtGdiGetDeviceWidth(IN HDC hdc)
VOID FASTCALL DC_vFixIsotropicMapping(PDC pdc)
BOOL NTAPI GreModifyWorldTransform(PDC pdc, const XFORML *pxform, DWORD dwMode)
BOOL APIENTRY NtGdiCombineTransform(LPXFORM UnsafeXFormResult, LPXFORM Unsafexform1, LPXFORM Unsafexform2)
BOOL APIENTRY NtGdiSetVirtualResolution(IN HDC hdc, IN INT cxVirtualDevicePixel, IN INT cyVirtualDevicePixel, IN INT cxVirtualDeviceMm, IN INT cyVirtualDeviceMm)
BOOL APIENTRY NtGdiGetDCPoint(HDC hDC, UINT iPoint, PPOINTL Point)
VOID FASTCALL DC_vUpdateWorldToDevice(PDC pdc)
BOOL WINAPI GreGetViewportExtEx(_In_ HDC hdc, _Out_ LPSIZE lpSize)
BOOL APIENTRY NtGdiOffsetViewportOrgEx(HDC hDC, int XOffset, int YOffset, LPPOINT UnsafePoint)
BOOL APIENTRY NtGdiSetWindowOrgEx(HDC hDC, int X, int Y, LPPOINT Point)
VOID FASTCALL DC_vUpdateDeviceToWorld(PDC pdc)
BOOL WINAPI GreGetDCOrgEx(_In_ HDC hdc, _Out_ PPOINTL Point, _Out_ PRECTL Rect)
BOOL NTAPI GreCombineTransform(XFORML *pxformDest, XFORML *pxform1, XFORML *pxform2)
BOOL WINAPI GreGetWindowExtEx(_In_ HDC hdc, _Out_ LPSIZE lpSize)
VOID FASTCALL IntMirrorWindowOrg(PDC dc)
__kernel_entry W32KAPI DWORD APIENTRY NtGdiSetLayout(_In_ HDC hdc, _In_ LONG wox, _In_ DWORD dwLayout)
__kernel_entry W32KAPI BOOL APIENTRY NtGdiTransformPoints(_In_ HDC hdc, _In_reads_(c) PPOINT pptIn, _Out_writes_(c) PPOINT pptOut, _In_ INT c, _In_ INT iMode)
__kernel_entry W32KAPI INT APIENTRY NtGdiGetDeviceCaps(_In_ HDC hdc, _In_ INT i)
__kernel_entry W32KAPI BOOL APIENTRY NtGdiScaleWindowExtEx(_In_ HDC hdc, _In_ INT xNum, _In_ INT xDenom, _In_ INT yNum, _In_ INT yDenom, _Out_opt_ LPSIZE pszOut)
__kernel_entry W32KAPI BOOL APIENTRY NtGdiModifyWorldTransform(_In_ HDC hdc, _In_opt_ LPXFORM pxf, _In_ DWORD iXform)
__kernel_entry W32KAPI BOOL APIENTRY NtGdiScaleViewportExtEx(_In_ HDC hdc, _In_ INT xNum, _In_ INT xDenom, _In_ INT yNum, _In_ INT yDenom, _Out_opt_ LPSIZE pszOut)
__kernel_entry W32KAPI BOOL APIENTRY NtGdiMirrorWindowOrg(_In_ HDC hdc)
#define PAGE_EXTENTS_CHANGED
#define PAGE_TO_DEVICE_SCALE_IDENTITY
#define PTOD_EFM22_NEGATIVE
#define DEVICE_TO_PAGE_INVALID
#define WORLD_XFORM_CHANGED
#define PTOD_EFM11_NEGATIVE
#define DEVICE_TO_WORLD_INVALID
#define PAGE_XLATE_CHANGED
#define INVALIDATE_ATTRIBUTES
#define ISO_OR_ANISO_MAP_MODE
#define PAGE_TO_DEVICE_IDENTITY
#define GdiPageSpaceToDeviceSpace
#define GdiWorldSpaceToPageSpace
#define GdiDeviceSpaceToWorldSpace
@ GdiGetAspectRatioFilter
#define _SEH2_GetExceptionCode()
#define _SEH2_EXCEPT(...)
#define _SEH2_YIELD(__stmt)
SIZEL szlVirtualDevicePixel
SIZEL szlVirtualDeviceSize
#define RtlCopyMemory(Destination, Source, Length)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
VOID FASTCALL SetLastNtError(_In_ NTSTATUS Status)
#define FLOATOBJ_DivLong(pf, l)
#define FLOATOBJ_Mul(pf, pf1)
ENGAPI INT APIENTRY EngMulDiv(_In_ INT a, _In_ INT b, _In_ INT c)
ENGAPI VOID APIENTRY EngSetLastError(_In_ ULONG iError)
#define FLOATOBJ_SetLong(pf, l)
#define FLOATOBJ_AddLong(pf, l)
#define MWT_RIGHTMULTIPLY
#define LAYOUT_ORIENTATIONMASK