ReactOS  0.4.15-dev-439-g292f67a
svmetric.h
Go to the documentation of this file.
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 
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
40  FT_UInt gindex,
41  FT_Int *avalue );
42 
43  typedef FT_Error
45  FT_UInt gindex,
46  FT_Int *avalue );
47 
48  typedef FT_Error
50  FT_UInt gindex,
51  FT_Int *avalue );
52 
53  /* VVAR */
54 
55  typedef FT_Error
57  FT_UInt gindex,
58  FT_Int *avalue );
59 
60  typedef FT_Error
62  FT_UInt gindex,
63  FT_Int *avalue );
64 
65  typedef FT_Error
67  FT_UInt gindex,
68  FT_Int *avalue );
69 
70  typedef FT_Error
72  FT_UInt gindex,
73  FT_Int *avalue );
74 
75  /* MVAR */
76 
77  typedef void
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 
149 
150 #endif /* SVMETRIC_H_ */
151 
152 
153 /* END */
int FT_Error
Definition: fttypes.h:300
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:49
FT_Error(* FT_TSB_Adjust_Func)(FT_Face face, FT_UInt gindex, FT_Int *avalue)
Definition: svmetric.h:61
#define FT_END_HEADER
Definition: ftheader.h:54
FT_Error(* FT_RSB_Adjust_Func)(FT_Face face, FT_UInt gindex, FT_Int *avalue)
Definition: svmetric.h:49
signed int FT_Int
Definition: fttypes.h:220
FT_DEFINE_SERVICE(MetricsVariations)
Definition: svmetric.h:81
FT_Error(* FT_BSB_Adjust_Func)(FT_Face face, FT_UInt gindex, FT_Int *avalue)
Definition: svmetric.h:66
FT_Error(* FT_VAdvance_Adjust_Func)(FT_Face face, FT_UInt gindex, FT_Int *avalue)
Definition: svmetric.h:56
#define FT_BEGIN_HEADER
Definition: ftheader.h:36
void(* FT_Metrics_Adjust_Func)(FT_Face face)
Definition: svmetric.h:78
WORD face[3]
Definition: mesh.c:4747
unsigned int FT_UInt
Definition: fttypes.h:231
FT_Error(* FT_HAdvance_Adjust_Func)(FT_Face face, FT_UInt gindex, FT_Int *avalue)
Definition: svmetric.h:39
FT_Error(* FT_VOrg_Adjust_Func)(FT_Face face, FT_UInt gindex, FT_Int *avalue)
Definition: svmetric.h:71
FT_Error(* FT_LSB_Adjust_Func)(FT_Face face, FT_UInt gindex, FT_Int *avalue)
Definition: svmetric.h:44