1 #pragma once 2 3 typedef struct _EXFORMOBJ 4 { 5 MATRIX *pmx; 6 } EXFORMOBJ; 7 8 #define XFORMOBJ EXFORMOBJ 9 #define XFORMOBJ_iGetXform EXFORMOBJ_iGetXform 10 #define XFORMOBJ_iGetFloatObjXform EXFORMOBJ_iGetFloatObjXform 11 #define XFORMOBJ_bApplyXform EXFORMOBJ_bApplyXform 12 #define XFORMOBJ_vInit EXFORMOBJ_vInit 13 #define XFORMOBJ_pmx EXFORMOBJ_pmx 14 #define XFORMOBJ_iSetXform EXFORMOBJ_iSetXform 15 #define XFORMOBJ_iCombine EXFORMOBJ_iCombine 16 #define XFORMOBJ_iCombineXform EXFORMOBJ_iCombineXform 17 #define XFORMOBJ_iInverse EXFORMOBJ_iInverse 18 19 FORCEINLINE 20 VOID 21 XFORMOBJ_vInit( 22 OUT XFORMOBJ *pxo, 23 IN MATRIX *pmx) 24 { 25 pxo->pmx = pmx; 26 } 27 28 FORCEINLINE 29 MATRIX* 30 XFORMOBJ_pmx( 31 IN XFORMOBJ *pxo) 32 { 33 return pxo->pmx; 34 } 35 36 ULONG 37 NTAPI 38 XFORMOBJ_iSetXform( 39 IN OUT XFORMOBJ *pxo, 40 IN const XFORML *pxform); 41 42 ULONG 43 NTAPI 44 XFORMOBJ_iCombine( 45 IN OUT XFORMOBJ *pxo, 46 IN XFORMOBJ *pxo1, 47 IN XFORMOBJ *pxo2); 48 49 ULONG 50 NTAPI 51 XFORMOBJ_iCombineXform( 52 IN OUT XFORMOBJ *pxo, 53 IN XFORMOBJ *pxo1, 54 IN XFORML *pxform, 55 IN BOOL bLeftMultiply); 56 57 ULONG 58 NTAPI 59 XFORMOBJ_iInverse( 60 OUT XFORMOBJ *pxoDst, 61 IN XFORMOBJ *pxoSrc); 62 63 ULONG 64 APIENTRY 65 XFORMOBJ_iGetXform( 66 IN XFORMOBJ *pxo, 67 OUT XFORML *pxform); 68 69 BOOL 70 APIENTRY 71 XFORMOBJ_bApplyXform( 72 IN XFORMOBJ *pxo, 73 IN ULONG iMode, 74 IN ULONG cPoints, 75 IN PVOID pvIn, 76 OUT PVOID pvOut); 77 78 BOOL FASTCALL MX_IsInvertible(IN PMATRIX pmx); 79 VOID FASTCALL MX_Set0(OUT PMATRIX pmx); 80