[FREETYPE] Update to v2.9.0 and use this as a chance to slim down our lib a bit....
[reactos.git] / sdk / lib / 3rdparty / freetype / include / freetype / internal / services / svmetric.h
1 /***************************************************************************/
2 /* */
3 /* svmetric.h */
4 /* */
5 /* The FreeType services for metrics variations (specification). */
6 /* */
7 /* Copyright 2016-2018 by */
8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */
9 /* */
10 /* This file is part of the FreeType project, and may only be used, */
11 /* modified, and distributed under the terms of the FreeType project */
12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */
13 /* this file you indicate that you have read the license and */
14 /* understand and accept it fully. */
15 /* */
16 /***************************************************************************/
17
18
19 #ifndef SVMETRIC_H_
20 #define SVMETRIC_H_
21
22 #include FT_INTERNAL_SERVICE_H
23
24
25 FT_BEGIN_HEADER
26
27
28 /*
29 * A service to manage the `HVAR, `MVAR', and `VVAR' OpenType tables.
30 *
31 */
32
33 #define FT_SERVICE_ID_METRICS_VARIATIONS "metrics-variations"
34
35
36 /* HVAR */
37
38 typedef FT_Error
39 (*FT_HAdvance_Adjust_Func)( FT_Face face,
40 FT_UInt gindex,
41 FT_Int *avalue );
42
43 typedef FT_Error
44 (*FT_LSB_Adjust_Func)( FT_Face face,
45 FT_UInt gindex,
46 FT_Int *avalue );
47
48 typedef FT_Error
49 (*FT_RSB_Adjust_Func)( FT_Face face,
50 FT_UInt gindex,
51 FT_Int *avalue );
52
53 /* VVAR */
54
55 typedef FT_Error
56 (*FT_VAdvance_Adjust_Func)( FT_Face face,
57 FT_UInt gindex,
58 FT_Int *avalue );
59
60 typedef FT_Error
61 (*FT_TSB_Adjust_Func)( FT_Face face,
62 FT_UInt gindex,
63 FT_Int *avalue );
64
65 typedef FT_Error
66 (*FT_BSB_Adjust_Func)( FT_Face face,
67 FT_UInt gindex,
68 FT_Int *avalue );
69
70 typedef FT_Error
71 (*FT_VOrg_Adjust_Func)( FT_Face face,
72 FT_UInt gindex,
73 FT_Int *avalue );
74
75 /* MVAR */
76
77 typedef void
78 (*FT_Metrics_Adjust_Func)( FT_Face face );
79
80
81 FT_DEFINE_SERVICE( MetricsVariations )
82 {
83 FT_HAdvance_Adjust_Func hadvance_adjust;
84 FT_LSB_Adjust_Func lsb_adjust;
85 FT_RSB_Adjust_Func rsb_adjust;
86
87 FT_VAdvance_Adjust_Func vadvance_adjust;
88 FT_TSB_Adjust_Func tsb_adjust;
89 FT_BSB_Adjust_Func bsb_adjust;
90 FT_VOrg_Adjust_Func vorg_adjust;
91
92 FT_Metrics_Adjust_Func metrics_adjust;
93 };
94
95
96 #ifndef FT_CONFIG_OPTION_PIC
97
98 #define FT_DEFINE_SERVICE_METRICSVARIATIONSREC( class_, \
99 hadvance_adjust_, \
100 lsb_adjust_, \
101 rsb_adjust_, \
102 vadvance_adjust_, \
103 tsb_adjust_, \
104 bsb_adjust_, \
105 vorg_adjust_, \
106 metrics_adjust_ ) \
107 static const FT_Service_MetricsVariationsRec class_ = \
108 { \
109 hadvance_adjust_, \
110 lsb_adjust_, \
111 rsb_adjust_, \
112 vadvance_adjust_, \
113 tsb_adjust_, \
114 bsb_adjust_, \
115 vorg_adjust_, \
116 metrics_adjust_ \
117 };
118
119 #else /* FT_CONFIG_OPTION_PIC */
120
121 #define FT_DEFINE_SERVICE_METRICSVARIATIONSREC( class_, \
122 hadvance_adjust_, \
123 lsb_adjust_, \
124 rsb_adjust_, \
125 vadvance_adjust_, \
126 tsb_adjust_, \
127 bsb_adjust_, \
128 vorg_adjust_, \
129 metrics_adjust_ ) \
130 void \
131 FT_Init_Class_ ## class_( FT_Service_MetricsVariationsRec* clazz ) \
132 { \
133 clazz->hadvance_adjust = hadvance_adjust_; \
134 clazz->lsb_adjust = lsb_adjust_; \
135 clazz->rsb_adjust = rsb_adjust_; \
136 clazz->vadvance_adjust = vadvance_adjust_; \
137 clazz->tsb_adjust = tsb_adjust_; \
138 clazz->bsb_adjust = bsb_adjust_; \
139 clazz->vorg_adjust = vorg_adjust_; \
140 clazz->metrics_adjust = metrics_adjust_; \
141 }
142
143 #endif /* FT_CONFIG_OPTION_PIC */
144
145 /* */
146
147
148 FT_END_HEADER
149
150 #endif /* SVMETRIC_H_ */
151
152
153 /* END */