3 #define IntLPtoDP(pdc, ppt, count) DC_vXformWorldToDevice(pdc, count, (PPOINTL)(ppt), (PPOINTL)(ppt));
4 #define CoordLPtoDP(pdc, ppt) DC_vXformWorldToDevice(pdc, 1, (PPOINTL)(ppt), (PPOINTL)(ppt));
5 #define IntDPtoLP(pdc, ppt, count) DC_vXformDeviceToWorld(pdc, count, (PPOINTL)(ppt), (PPOINTL)(ppt));
6 #define CoordDPtoLP(pdc, ppt) DC_vXformDeviceToWorld(pdc, 1, (PPOINTL)(ppt), (PPOINTL)(ppt));
8 #define XForm2MatrixS(m, x) XFormToMatrix(m, (XFORML*)x)
9 #define MatrixS2XForm(x, m) MatrixToXForm((XFORML*)x, m)
18 XFORMOBJ_vInit(&xo
, pmx
);
19 XFORMOBJ_iSetXform(&xo
, pxform
);
29 XFORMOBJ_vInit(&xo
, (MATRIX
*)pmx
);
30 XFORMOBJ_iGetXform(&xo
, pxform
);
37 const XFORML
*pxformSource
)
42 XFORMOBJ_vInit(&xo
, &mx
);
43 XFORMOBJ_iSetXform(&xo
, pxformSource
);
44 XFORMOBJ_iInverse(&xo
, &xo
);
45 XFORMOBJ_iGetXform(&xo
, pxformDest
);
50 DC_vFixIsotropicMapping(PDC pdc
);
54 DC_vUpdateWorldToDevice(PDC pdc
);
58 DC_vUpdateDeviceToWorld(PDC pdc
);
62 DC_pszlViewportExt(PDC pdc
)
64 PDC_ATTR pdcattr
= pdc
->pdcattr
;
66 /* Check if we need isotropic fixup */
67 if ((pdcattr
->flXform
& PAGE_EXTENTS_CHANGED
) &&
68 (pdcattr
->iMapMode
== MM_ISOTROPIC
))
70 /* Fixup viewport extension */
71 DC_vFixIsotropicMapping(pdc
);
74 return &pdcattr
->szlViewportExt
;
79 DC_pmxWorldToPage(PDC pdc
)
81 return &pdc
->pdcattr
->mxWorldToPage
;
86 DC_pmxWorldToDevice(PDC pdc
)
88 /* Check if world or page xform was changed */
89 if (pdc
->pdcattr
->flXform
& (PAGE_XLATE_CHANGED
|PAGE_EXTENTS_CHANGED
|WORLD_XFORM_CHANGED
))
91 /* Update the world-to-device xform */
92 DC_vUpdateWorldToDevice(pdc
);
95 return &pdc
->pdcattr
->mxWorldToDevice
;
100 DC_pmxDeviceToWorld(PDC pdc
)
102 /* Check if the device-to-world xform is invalid */
103 if (pdc
->pdcattr
->flXform
& DEVICE_TO_WORLD_INVALID
)
105 /* Update the world-to-device xform */
106 DC_vUpdateDeviceToWorld(pdc
);
109 return &pdc
->pdcattr
->mxDeviceToWorld
;
114 DC_vXformDeviceToWorld(
118 IN PPOINTL pptlSource
)
123 pmx
= DC_pmxDeviceToWorld(pdc
);
124 XFORMOBJ_vInit(&xo
, pmx
);
125 XFORMOBJ_bApplyXform(&xo
, XF_LTOL
, cNumPoints
, pptlDest
, pptlSource
);
130 DC_vXformWorldToDevice(
134 IN PPOINTL pptlSource
)
139 pmx
= DC_pmxWorldToDevice(pdc
);
140 XFORMOBJ_vInit(&xo
, pmx
);
141 XFORMOBJ_bApplyXform(&xo
, XF_LTOL
, cNumPoints
, pptlDest
, pptlSource
);
146 GreModifyWorldTransform(
148 const XFORML
*pXForm
,
151 VOID FASTCALL
IntMirrorWindowOrg(PDC
);
152 int APIENTRY
IntGdiSetMapMode(PDC
, int);