Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygencoord.h
Go to the documentation of this file.
00001 #pragma once 00002 00003 #define IntLPtoDP(pdc, ppt, count) DC_vXformWorldToDevice(pdc, count, (PPOINTL)(ppt), (PPOINTL)(ppt)); 00004 #define CoordLPtoDP(pdc, ppt) DC_vXformWorldToDevice(pdc, 1, (PPOINTL)(ppt), (PPOINTL)(ppt)); 00005 #define IntDPtoLP(pdc, ppt, count) DC_vXformDeviceToWorld(pdc, count, (PPOINTL)(ppt), (PPOINTL)(ppt)); 00006 #define CoordDPtoLP(pdc, ppt) DC_vXformDeviceToWorld(pdc, 1, (PPOINTL)(ppt), (PPOINTL)(ppt)); 00007 00008 #define XForm2MatrixS(m, x) XFormToMatrix(m, (XFORML*)x) 00009 #define MatrixS2XForm(x, m) MatrixToXForm((XFORML*)x, m) 00010 00011 FORCEINLINE 00012 void 00013 XFormToMatrix( 00014 MATRIX *pmx, 00015 const XFORML *pxform) 00016 { 00017 XFORMOBJ xo; 00018 XFORMOBJ_vInit(&xo, pmx); 00019 XFORMOBJ_iSetXform(&xo, pxform); 00020 } 00021 00022 FORCEINLINE 00023 void 00024 MatrixToXForm( 00025 XFORML *pxform, 00026 const MATRIX *pmx) 00027 { 00028 XFORMOBJ xo; 00029 XFORMOBJ_vInit(&xo, (MATRIX*)pmx); 00030 XFORMOBJ_iGetXform(&xo, pxform); 00031 } 00032 00033 FORCEINLINE 00034 void 00035 InvertXform( 00036 XFORML *pxformDest, 00037 const XFORML *pxformSource) 00038 { 00039 XFORMOBJ xo; 00040 MATRIX mx; 00041 00042 XFORMOBJ_vInit(&xo, &mx); 00043 XFORMOBJ_iSetXform(&xo, pxformSource); 00044 XFORMOBJ_iInverse(&xo, &xo); 00045 XFORMOBJ_iGetXform(&xo, pxformDest); 00046 } 00047 00048 VOID 00049 FASTCALL 00050 DC_vFixIsotropicMapping(PDC pdc); 00051 00052 VOID 00053 FASTCALL 00054 DC_vUpdateWorldToDevice(PDC pdc); 00055 00056 VOID 00057 FASTCALL 00058 DC_vUpdateDeviceToWorld(PDC pdc); 00059 00060 PSIZEL 00061 FORCEINLINE 00062 DC_pszlViewportExt(PDC pdc) 00063 { 00064 PDC_ATTR pdcattr = pdc->pdcattr; 00065 00066 /* Check if we need isotropic fixup */ 00067 if ((pdcattr->flXform & PAGE_EXTENTS_CHANGED) && 00068 (pdcattr->iMapMode == MM_ISOTROPIC)) 00069 { 00070 /* Fixup viewport extension */ 00071 DC_vFixIsotropicMapping(pdc); 00072 } 00073 00074 return &pdcattr->szlViewportExt; 00075 } 00076 00077 PMATRIX 00078 FORCEINLINE 00079 DC_pmxWorldToPage(PDC pdc) 00080 { 00081 return &pdc->pdcattr->mxWorldToPage; 00082 } 00083 00084 PMATRIX 00085 FORCEINLINE 00086 DC_pmxWorldToDevice(PDC pdc) 00087 { 00088 /* Check if world or page xform was changed */ 00089 if (pdc->pdcattr->flXform & (PAGE_XLATE_CHANGED|PAGE_EXTENTS_CHANGED|WORLD_XFORM_CHANGED)) 00090 { 00091 /* Update the world-to-device xform */ 00092 DC_vUpdateWorldToDevice(pdc); 00093 } 00094 00095 return &pdc->pdcattr->mxWorldToDevice; 00096 } 00097 00098 PMATRIX 00099 FORCEINLINE 00100 DC_pmxDeviceToWorld(PDC pdc) 00101 { 00102 /* Check if the device-to-world xform is invalid */ 00103 if (pdc->pdcattr->flXform & DEVICE_TO_WORLD_INVALID) 00104 { 00105 /* Update the world-to-device xform */ 00106 DC_vUpdateDeviceToWorld(pdc); 00107 } 00108 00109 return &pdc->pdcattr->mxDeviceToWorld; 00110 } 00111 00112 VOID 00113 FORCEINLINE 00114 DC_vXformDeviceToWorld( 00115 IN PDC pdc, 00116 IN ULONG cNumPoints, 00117 IN PPOINTL pptlDest, 00118 IN PPOINTL pptlSource) 00119 { 00120 XFORMOBJ xo; 00121 PMATRIX pmx; 00122 00123 pmx = DC_pmxDeviceToWorld(pdc); 00124 XFORMOBJ_vInit(&xo, pmx); 00125 XFORMOBJ_bApplyXform(&xo, XF_LTOL, cNumPoints, pptlDest, pptlSource); 00126 } 00127 00128 VOID 00129 FORCEINLINE 00130 DC_vXformWorldToDevice( 00131 IN PDC pdc, 00132 IN ULONG cNumPoints, 00133 IN PPOINTL pptlDest, 00134 IN PPOINTL pptlSource) 00135 { 00136 XFORMOBJ xo; 00137 PMATRIX pmx; 00138 00139 pmx = DC_pmxWorldToDevice(pdc); 00140 XFORMOBJ_vInit(&xo, pmx); 00141 XFORMOBJ_bApplyXform(&xo, XF_LTOL, cNumPoints, pptlDest, pptlSource); 00142 } 00143 00144 int APIENTRY IntGdiSetMapMode(PDC, int); 00145 00146 BOOL NTAPI 00147 IntGdiCombineTransform( 00148 XFORML *pxformDest, 00149 XFORML *pxform1, 00150 XFORML *pxform2); 00151 00152 BOOL 00153 NTAPI 00154 GreModifyWorldTransform( 00155 PDC pdc, 00156 const XFORML *pXForm, 00157 DWORD dwMode); 00158 00159 VOID FASTCALL IntMirrorWindowOrg(PDC); 00160 void FASTCALL IntFixIsotropicMapping(PDC); 00161 LONG FASTCALL IntCalcFillOrigin(PDC); 00162 Generated on Sat May 26 2012 04:37:12 for ReactOS by
1.7.6.1
|