[WIN32SS] Cleanup fonts at process destruction + implement font memory reference...
[reactos.git] / reactos / win32ss / gdi / ntgdi / xformobj.h
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 OUT XFORMOBJ *pxo,
40 IN const XFORML *pxform);
41
42 ULONG
43 NTAPI
44 XFORMOBJ_iCombine(
45 IN XFORMOBJ *pxo,
46 IN XFORMOBJ *pxo1,
47 IN XFORMOBJ *pxo2);
48
49 ULONG
50 NTAPI
51 XFORMOBJ_iCombineXform(
52 IN 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);