1 /***************************************************************************/
5 /* The FreeType services for metrics variations (specification). */
7 /* Copyright 2016-2018 by */
8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */
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. */
16 /***************************************************************************/
22 #include FT_INTERNAL_SERVICE_H
29 * A service to manage the `HVAR, `MVAR', and `VVAR' OpenType tables.
33 #define FT_SERVICE_ID_METRICS_VARIATIONS "metrics-variations"
39 (*FT_HAdvance_Adjust_Func
)( FT_Face face
,
44 (*FT_LSB_Adjust_Func
)( FT_Face face
,
49 (*FT_RSB_Adjust_Func
)( FT_Face face
,
56 (*FT_VAdvance_Adjust_Func
)( FT_Face face
,
61 (*FT_TSB_Adjust_Func
)( FT_Face face
,
66 (*FT_BSB_Adjust_Func
)( FT_Face face
,
71 (*FT_VOrg_Adjust_Func
)( FT_Face face
,
78 (*FT_Metrics_Adjust_Func
)( FT_Face face
);
81 FT_DEFINE_SERVICE( MetricsVariations
)
83 FT_HAdvance_Adjust_Func hadvance_adjust
;
84 FT_LSB_Adjust_Func lsb_adjust
;
85 FT_RSB_Adjust_Func rsb_adjust
;
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
;
92 FT_Metrics_Adjust_Func metrics_adjust
;
96 #ifndef FT_CONFIG_OPTION_PIC
98 #define FT_DEFINE_SERVICE_METRICSVARIATIONSREC( class_, \
107 static const FT_Service_MetricsVariationsRec class_ = \
119 #else /* FT_CONFIG_OPTION_PIC */
121 #define FT_DEFINE_SERVICE_METRICSVARIATIONSREC( class_, \
131 FT_Init_Class_ ## class_( FT_Service_MetricsVariationsRec* clazz ) \
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_; \
143 #endif /* FT_CONFIG_OPTION_PIC */
150 #endif /* SVMETRIC_H_ */