36 for (
i = 0;
i < nCount;
i++)
38 x = pptIn[
i].x * pxform->eM11 + pptIn[
i].y * pxform->eM12 + pxform->eDx;
40 y = pptIn[
i].x * pxform->eM21 + pptIn[
i].y * pxform->eM22 + pxform->eDy;
59#define MAX_OFFSET 4294967041.0
60#define _fmul(x,y) (((x) == 0) ? 0 : (x) * (y))
72 if (!pxfResult || !pxf1 || !pxf2)
return FALSE;
75 xformTmp.
eM11 = (pxf1->eM11 * pxf2->eM11) + (pxf1->eM12 * pxf2->eM21);
76 xformTmp.
eM22 = (pxf1->eM21 * pxf2->eM12) + (pxf1->eM22 * pxf2->eM22);
79 if ((pxf1->eM12 != 0.) || (pxf1->eM21 != 0.) ||
80 (pxf2->eM12 != 0.) || (pxf2->eM21 != 0.))
82 xformTmp.
eM12 = (pxf1->eM11 * pxf2->eM12) + (pxf1->eM12 * pxf2->eM22);
83 xformTmp.
eM21 = (pxf1->eM21 * pxf2->eM11) + (pxf1->eM22 * pxf2->eM21);
92 xformTmp.
eDx =
_fmul(pxf1->eDx, pxf2->eM11) +
_fmul(pxf1->eDy, pxf2->eM21) + pxf2->eDx;
93 xformTmp.
eDy =
_fmul(pxf1->eDx, pxf2->eM12) +
_fmul(pxf1->eDy, pxf2->eM22) + pxf2->eDy;
103 *pxfResult = xformTmp;
185 if (lpPoints ==
NULL)
198 if (sizlView.cx == 0 || sizlView.cy == 0)
223 if (lpPoints ==
NULL)
249 if ((pdcattr ==
NULL) || (lpPoint ==
NULL))
262 pdcattr->
ulDirty_ &= ~DIRTY_PTLCURRENT;
291 if (pdcattr->
flXform & ANY_XFORM_INVALID)
293 GdiFixupTransforms(pdcattr);
403 lpPoint->x = -lpPoint->x;
431 lpSize->cx = -lpSize->cx;
496 if (nXExtent == 0 || nYExtent == 0)
508 pdcattr->
ulDirty_ &= ~DC_MODE_DIRTY;
564 pdcattr->
ulDirty_ &= ~DC_MODE_DIRTY;
612 lpSize->cx = -lpSize->cx;
627 if ((!nXExtent) || (!nYExtent))
635 pdcattr->
ulDirty_ &= ~DC_MODE_DIRTY;
678 pdcattr->
ulDirty_ &= ~DC_MODE_DIRTY;
882 if ( nXOffset || nYOffset != nXOffset )
889 pdcattr->
ulDirty_ &= ~DC_MODE_DIRTY;
936 if ( nXOffset || nYOffset != nXOffset )
943 pdcattr->
ulDirty_ &= ~DC_MODE_DIRTY;
#define ERROR_INVALID_PARAMETER
#define ERROR_INVALID_HANDLE
BOOL WINAPI CombineTransform(_Out_ LPXFORM pxfResult, _In_ const XFORM *pxf1, _In_ const XFORM *pxf2)
BOOL WINAPI DPtoLP(_In_ HDC hdc, _Inout_updates_(nCount) LPPOINT lpPoints, _In_ INT nCount)
INT WINAPI SetMapMode(_In_ HDC hdc, _In_ INT iMode)
BOOL WINAPI LPtoDP(_In_ HDC hdc, _Inout_updates_(nCount) LPPOINT lpPoints, _In_ INT nCount)
BOOL WINAPI ScaleViewportExtEx(_In_ HDC hdc, _In_ INT xNum, _In_ INT xDenom, _In_ INT yNum, _In_ INT yDenom, _Out_ LPSIZE lpSize)
BOOL WINAPI SetWorldTransform(_In_ HDC hdc, _Out_ CONST XFORM *pxform)
BOOL WINAPI OffsetWindowOrgEx(_In_ HDC hdc, _In_ int nXOffset, _In_ int nYOffset, _Out_opt_ LPPOINT lpPoint)
BOOL WINAPI SetViewportExtEx(_In_ HDC hdc, _In_ int nXExtent, _In_ int nYExtent, _Out_opt_ LPSIZE lpSize)
DWORD WINAPI SetLayoutWidth(_In_ HDC hdc, _In_ LONG wox, _In_ DWORD dwLayout)
BOOL WINAPI GetWorldTransform(_In_ HDC hdc, _Out_ LPXFORM pxform)
FORCEINLINE void GdiTransformPoints(_In_ MATRIX *pmx, _Out_writes_(nCount) PPOINT pptOut, _In_reads_(nCount) PPOINT pptIn, _In_ ULONG nCount)
void GdiTransformPoints2(_In_ XFORM *pxform, _Out_writes_(nCount) PPOINT pptOut, _In_reads_(nCount) PPOINT pptIn, _In_ ULONG nCount)
BOOL WINAPI SetViewportOrgEx(_In_ HDC hdc, _In_ int X, _In_ int Y, _Out_opt_ LPPOINT lpPoint)
BOOL WINAPI SetWindowOrgEx(_In_ HDC hdc, _In_ int X, _In_ int Y, _Out_opt_ LPPOINT lpPoint)
void MatrixToXForm(XFORM *pxform, const MATRIX *pmx)
BOOL WINAPI GetWindowExtEx(_In_ HDC hdc, _Out_ LPSIZE lpSize)
LONG WINAPI GetDCOrg(_In_ HDC hdc)
int WINAPI GetMapMode(_In_ HDC hdc)
BOOL WINAPI GetViewportOrgEx(_In_ HDC hdc, _Out_ LPPOINT lpPoint)
BOOL WINAPI GetDCOrgEx(_In_ HDC hdc, _Out_ LPPOINT lpPoint)
DWORD WINAPI GetLayout(_In_ HDC hdc)
BOOL WINAPI GetViewportExtEx(_In_ HDC hdc, _Out_ LPSIZE lpSize)
BOOL WINAPI ModifyWorldTransform(_In_ HDC hdc, _In_opt_ CONST XFORM *pxform, _In_ DWORD dwMode)
BOOL WINAPI GetCurrentPositionEx(_In_ HDC hdc, _Out_ LPPOINT lpPoint)
BOOL WINAPI OffsetViewportOrgEx(_In_ HDC hdc, _In_ int nXOffset, _In_ int nYOffset, _Out_opt_ LPPOINT lpPoint)
BOOL WINAPI SetWindowExtEx(_In_ HDC hdc, _In_ INT nXExtent, _In_ INT nYExtent, _Out_opt_ LPSIZE lpSize)
BOOL WINAPI ScaleWindowExtEx(_In_ HDC hdc, _In_ INT xNum, _In_ INT xDenom, _In_ INT yNum, _In_ INT yDenom, _Out_ LPSIZE lpSize)
DWORD WINAPI SetLayout(_In_ HDC hdc, _In_ DWORD dwLayout)
BOOL WINAPI GetWindowOrgEx(_In_ HDC hdc, _Out_ LPPOINT lpPoint)
FORCEINLINE int _lrintf(float f)
BOOL METADC_SetMapMode(HDC hdc, INT mode) DECLSPEC_HIDDEN
#define HANDLE_METADC16(_RetType, _Func, dwError, hdc,...)
#define HANDLE_METADC(_RetType, _Func, dwError, hdc,...)
DWORD WINAPI GetAndSetDCDWord(_In_ HDC hdc, _In_ UINT u, _In_ DWORD dwIn, _In_ ULONG ulMFId, _In_ USHORT usMF16Id, _In_ DWORD dwError)
FORCEINLINE PDC_ATTR GdiGetDcAttr(HDC hdc)
#define HANDLE_EMETAFDC(_RetType, _Func, dwError, hdc,...)
#define GDI_HANDLE_GET_TYPE(h)
BOOL APIENTRY NtGdiGetTransform(_In_ HDC hdc, _In_ DWORD iXform, _Out_ LPXFORM pxf)
@ GDILoObjType_LO_METADC16_TYPE
@ GDILoObjType_LO_DC_TYPE
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define _Inout_updates_(size)
#define _Out_writes_(size)
BOOL APIENTRY NtGdiGetDCPoint(HDC hDC, UINT iPoint, PPOINTL Point)
__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)
_In_ UINT _Out_ PPOINTL pptOut
__kernel_entry W32KAPI NTSTATUS APIENTRY NtGdiFlush(VOID)
__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 WORLD_XFORM_CHANGED
#define DEVICE_TO_WORLD_INVALID
#define PAGE_XLATE_CHANGED
#define INVALIDATE_ATTRIBUTES
#define GdiWorldSpaceToPageSpace