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))
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)
612 lpSize->cx = -lpSize->cx;
627 if ((!nXExtent) || (!nYExtent))
882 if ( nXOffset || nYOffset != nXOffset )
933 if ( nXOffset || nYOffset != nXOffset )
DWORD WINAPI SetLayout(_In_ HDC hdc, _In_ DWORD dwLayout)
#define ERROR_INVALID_PARAMETER
FORCEINLINE int _lrintf(float f)
BOOL WINAPI ScaleWindowExtEx(_In_ HDC hdc, _In_ INT xNum, _In_ INT xDenom, _In_ INT yNum, _In_ INT yDenom, _Out_ LPSIZE lpSize)
BOOL APIENTRY NtGdiModifyWorldTransform(HDC hdc, LPXFORM pxformUnsafe, DWORD dwMode)
BOOL WINAPI ScaleViewportExtEx(_In_ HDC hdc, _In_ INT xNum, _In_ INT xDenom, _In_ INT yNum, _In_ INT yDenom, _Out_ LPSIZE lpSize)
BOOL WINAPI ModifyWorldTransform(_In_ HDC hdc, _In_opt_ CONST XFORM *pxform, _In_ DWORD dwMode)
BOOL WINAPI LPtoDP(_In_ HDC hdc, _Inout_updates_(nCount) LPPOINT lpPoints, _In_ INT nCount)
FORCEINLINE PDC_ATTR GdiGetDcAttr(HDC hdc)
#define ERROR_INVALID_HANDLE
GLint GLint GLint GLint GLint x
BOOL WINAPI SetWindowOrgEx(_In_ HDC hdc, _In_ int X, _In_ int Y, _Out_opt_ LPPOINT lpPoint)
BOOL APIENTRY NtGdiScaleWindowExtEx(HDC hDC, int Xnum, int Xdenom, int Ynum, int Ydenom, LPSIZE pSize)
#define HANDLE_METADC(_RetType, _Func, dwError, hdc,...)
BOOL WINAPI GetCurrentPositionEx(_In_ HDC hdc, _Out_ LPPOINT lpPoint)
#define PAGE_XLATE_CHANGED
void GdiTransformPoints2(_In_ XFORM *pxform, _Out_writes_(nCount) PPOINT pptOut, _In_reads_(nCount) PPOINT pptIn, _In_ ULONG nCount)
BOOL WINAPI GetViewportExtEx(_In_ HDC hdc, _Out_ LPSIZE lpSize)
BOOL WINAPI GetWindowExtEx(_In_ HDC hdc, _Out_ LPSIZE lpSize)
int WINAPI GetMapMode(_In_ HDC hdc)
BOOL APIENTRY NtGdiMirrorWindowOrg(IN HDC hdc)
BOOL APIENTRY NtGdiGetTransform(HDC hdc, DWORD iXform, LPXFORM pXForm)
BOOL WINAPI GetWorldTransform(_In_ HDC hdc, _Out_ LPXFORM pxform)
#define GDI_HANDLE_GET_TYPE(h)
__kernel_entry W32KAPI NTSTATUS APIENTRY NtGdiFlush(VOID)
BOOL WINAPI OffsetViewportOrgEx(_In_ HDC hdc, _In_ int nXOffset, _In_ int nYOffset, _Out_opt_ LPPOINT lpPoint)
DWORD APIENTRY NtGdiSetLayout(IN HDC hdc, IN LONG wox, IN DWORD dwLayout)
#define GdiWorldSpaceToPageSpace
#define PAGE_EXTENTS_CHANGED
BOOL APIENTRY NtGdiScaleViewportExtEx(HDC hDC, int Xnum, int Xdenom, int Ynum, int Ydenom, LPSIZE pSize)
DWORD WINAPI SetLayoutWidth(_In_ HDC hdc, _In_ LONG wox, _In_ DWORD dwLayout)
_In_ UINT _Out_ PPOINTL pptOut
BOOL APIENTRY NtGdiGetDCPoint(HDC hDC, UINT iPoint, PPOINTL Point)
BOOL APIENTRY NtGdiTransformPoints(HDC hDC, PPOINT UnsafePtsIn, PPOINT UnsafePtOut, INT Count, INT iMode)
BOOL WINAPI GetDCOrgEx(_In_ HDC hdc, _Out_ LPPOINT lpPoint)
BOOL WINAPI CombineTransform(_Out_ LPXFORM pxfResult, _In_ const XFORM *pxf1, _In_ const XFORM *pxf2)
#define WORLD_XFORM_CHANGED
DWORD WINAPI GetLayout(_In_ HDC hdc)
FORCEINLINE struct _TEB * NtCurrentTeb(VOID)
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
INT WINAPI SetMapMode(_In_ HDC hdc, _In_ INT iMode)
BOOL WINAPI DPtoLP(_In_ HDC hdc, _Inout_updates_(nCount) LPPOINT lpPoints, _In_ INT nCount)
DWORD WINAPI GetAndSetDCDWord(_In_ HDC hdc, _In_ UINT u, _In_ DWORD dwIn, _In_ ULONG ulMFId, _In_ USHORT usMF16Id, _In_ DWORD dwError)
BOOL WINAPI GetWindowOrgEx(_In_ HDC hdc, _Out_ LPPOINT lpPoint)
GLint GLint GLint GLint GLint GLint y
_In_ ULONG _In_ ULONG _Inout_updates_(8 *8) ULONG *pul)
#define DEVICE_TO_WORLD_INVALID
BOOL WINAPI SetWindowExtEx(_In_ HDC hdc, _In_ INT nXExtent, _In_ INT nYExtent, _Out_opt_ LPSIZE lpSize)
BOOL WINAPI SetViewportExtEx(_In_ HDC hdc, _In_ int nXExtent, _In_ int nYExtent, _Out_opt_ LPSIZE lpSize)
#define INVALIDATE_ATTRIBUTES
LONG WINAPI GetDCOrg(_In_ HDC hdc)
void MatrixToXForm(XFORM *pxform, const MATRIX *pmx)
BOOL WINAPI GetViewportOrgEx(_In_ HDC hdc, _Out_ LPPOINT lpPoint)
BOOL WINAPI SetViewportOrgEx(_In_ HDC hdc, _In_ int X, _In_ int Y, _Out_opt_ LPPOINT lpPoint)
FORCEINLINE void GdiTransformPoints(_In_ MATRIX *pmx, _Out_writes_(nCount) PPOINT pptOut, _In_reads_(nCount) PPOINT pptIn, _In_ ULONG nCount)
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)