ReactOS  0.4.15-dev-1207-g698a8e6
svmm.h
Go to the documentation of this file.
1 /***************************************************************************/
2 /* */
3 /* svmm.h */
4 /* */
5 /* The FreeType Multiple Masters and GX var services (specification). */
6 /* */
7 /* Copyright 2003-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 SVMM_H_
20 #define SVMM_H_
21 
22 #include FT_INTERNAL_SERVICE_H
23 
24 
26 
27 
28  /*
29  * A service used to manage multiple-masters data in a given face.
30  *
31  * See the related APIs in `ftmm.h' (FT_MULTIPLE_MASTERS_H).
32  *
33  */
34 
35 #define FT_SERVICE_ID_MULTI_MASTERS "multi-masters"
36 
37 
38  typedef FT_Error
40  FT_Multi_Master* master );
41 
42  typedef FT_Error
44  FT_MM_Var* *master );
45 
46  typedef FT_Error
48  FT_UInt num_coords,
49  FT_Long* coords );
50 
51  /* use return value -1 to indicate that the new coordinates */
52  /* are equal to the current ones; no changes are thus needed */
53  typedef FT_Error
55  FT_UInt num_coords,
56  FT_Fixed* coords );
57 
58  /* use return value -1 to indicate that the new coordinates */
59  /* are equal to the current ones; no changes are thus needed */
60  typedef FT_Error
62  FT_UInt num_coords,
63  FT_Long* coords );
64 
65  typedef FT_Error
67  FT_UInt num_coords,
68  FT_Fixed* coords );
69 
70  typedef FT_Error
72  FT_UInt instance_index );
73 
74  typedef FT_Error
76  FT_UInt num_coords,
77  FT_Long* coords );
78 
79  typedef FT_Error
81  FT_UInt *num_coords,
82  FT_Fixed* *coords,
83  FT_Fixed* *normalizedcoords,
84  FT_MM_Var* *mm_var );
85 
86  typedef void
88 
89 
90  FT_DEFINE_SERVICE( MultiMasters )
91  {
92  FT_Get_MM_Func get_mm;
93  FT_Set_MM_Design_Func set_mm_design;
94  FT_Set_MM_Blend_Func set_mm_blend;
95  FT_Get_MM_Blend_Func get_mm_blend;
96  FT_Get_MM_Var_Func get_mm_var;
97  FT_Set_Var_Design_Func set_var_design;
98  FT_Get_Var_Design_Func get_var_design;
99  FT_Set_Instance_Func set_instance;
100 
101  /* for internal use; only needed for code sharing between modules */
102  FT_Get_Var_Blend_Func get_var_blend;
103  FT_Done_Blend_Func done_blend;
104  };
105 
106 
107 #ifndef FT_CONFIG_OPTION_PIC
108 
109 #define FT_DEFINE_SERVICE_MULTIMASTERSREC( class_, \
110  get_mm_, \
111  set_mm_design_, \
112  set_mm_blend_, \
113  get_mm_blend_, \
114  get_mm_var_, \
115  set_var_design_, \
116  get_var_design_, \
117  set_instance_, \
118  get_var_blend_, \
119  done_blend_ ) \
120  static const FT_Service_MultiMastersRec class_ = \
121  { \
122  get_mm_, \
123  set_mm_design_, \
124  set_mm_blend_, \
125  get_mm_blend_, \
126  get_mm_var_, \
127  set_var_design_, \
128  get_var_design_, \
129  set_instance_, \
130  get_var_blend_, \
131  done_blend_ \
132  };
133 
134 #else /* FT_CONFIG_OPTION_PIC */
135 
136 #define FT_DEFINE_SERVICE_MULTIMASTERSREC( class_, \
137  get_mm_, \
138  set_mm_design_, \
139  set_mm_blend_, \
140  get_mm_blend_, \
141  get_mm_var_, \
142  set_var_design_, \
143  get_var_design_, \
144  set_instance_, \
145  get_var_blend_, \
146  done_blend_ ) \
147  void \
148  FT_Init_Class_ ## class_( FT_Service_MultiMastersRec* clazz ) \
149  { \
150  clazz->get_mm = get_mm_; \
151  clazz->set_mm_design = set_mm_design_; \
152  clazz->set_mm_blend = set_mm_blend_; \
153  clazz->get_mm_blend = get_mm_blend_; \
154  clazz->get_mm_var = get_mm_var_; \
155  clazz->set_var_design = set_var_design_; \
156  clazz->get_var_design = get_var_design_; \
157  clazz->set_instance = set_instance_; \
158  clazz->get_var_blend = get_var_blend_; \
159  clazz->done_blend = done_blend_; \
160  }
161 
162 #endif /* FT_CONFIG_OPTION_PIC */
163 
164  /* */
165 
166 
168 
169 #endif /* SVMM_H_ */
170 
171 
172 /* END */
int FT_Error
Definition: fttypes.h:300
signed long FT_Long
Definition: fttypes.h:242
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:49
FT_DEFINE_SERVICE(MultiMasters)
Definition: svmm.h:90
#define FT_END_HEADER
Definition: ftheader.h:54
FT_Error(* FT_Set_MM_Design_Func)(FT_Face face, FT_UInt num_coords, FT_Long *coords)
Definition: svmm.h:47
GLuint coords
Definition: glext.h:7368
void(* FT_Done_Blend_Func)(FT_Face)
Definition: svmm.h:87
#define FT_BEGIN_HEADER
Definition: ftheader.h:36
FT_Error(* FT_Get_Var_Blend_Func)(FT_Face face, FT_UInt *num_coords, FT_Fixed **coords, FT_Fixed **normalizedcoords, FT_MM_Var **mm_var)
Definition: svmm.h:80
FT_Error(* FT_Set_Instance_Func)(FT_Face face, FT_UInt instance_index)
Definition: svmm.h:71
struct FT_FaceRec_ * FT_Face
Definition: freetype.h:503
FT_Error(* FT_Set_Var_Design_Func)(FT_Face face, FT_UInt num_coords, FT_Fixed *coords)
Definition: svmm.h:54
WORD face[3]
Definition: mesh.c:4747
FT_Error(* FT_Set_MM_Blend_Func)(FT_Face face, FT_UInt num_coords, FT_Long *coords)
Definition: svmm.h:61
signed long FT_Fixed
Definition: fttypes.h:288
unsigned int FT_UInt
Definition: fttypes.h:231
FT_Error(* FT_Get_MM_Func)(FT_Face face, FT_Multi_Master *master)
Definition: svmm.h:39
FT_Error(* FT_Get_MM_Var_Func)(FT_Face face, FT_MM_Var **master)
Definition: svmm.h:43
FT_Error(* FT_Get_MM_Blend_Func)(FT_Face face, FT_UInt num_coords, FT_Long *coords)
Definition: svmm.h:75
FT_Error(* FT_Get_Var_Design_Func)(FT_Face face, FT_UInt num_coords, FT_Fixed *coords)
Definition: svmm.h:66