ReactOS 0.4.16-dev-340-g0540c21
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,
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,
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,
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 */
WORD face[3]
Definition: mesh.c:4747
struct FT_FaceRec_ * FT_Face
Definition: freetype.h:503
#define FT_END_HEADER
Definition: ftheader.h:54
#define FT_BEGIN_HEADER
Definition: ftheader.h:36
#define FT_DEFINE_SERVICE(name)
Definition: ftserv.h:975
signed long FT_Fixed
Definition: fttypes.h:288
int FT_Error
Definition: fttypes.h:300
signed long FT_Long
Definition: fttypes.h:242
unsigned int FT_UInt
Definition: fttypes.h:231
GLuint coords
Definition: glext.h:7368
FT_Error(* FT_Set_Instance_Func)(FT_Face face, FT_UInt instance_index)
Definition: svmm.h:71
FT_Error(* FT_Set_MM_Blend_Func)(FT_Face face, FT_UInt num_coords, FT_Long *coords)
Definition: svmm.h:61
FT_Error(* FT_Get_MM_Func)(FT_Face face, FT_Multi_Master *master)
Definition: svmm.h:39
FT_Error(* FT_Set_MM_Design_Func)(FT_Face face, FT_UInt num_coords, FT_Long *coords)
Definition: svmm.h:47
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
void(* FT_Done_Blend_Func)(FT_Face)
Definition: svmm.h:87
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_Get_Var_Design_Func)(FT_Face face, FT_UInt num_coords, FT_Fixed *coords)
Definition: svmm.h:66
FT_Error(* FT_Set_Var_Design_Func)(FT_Face face, FT_UInt num_coords, FT_Fixed *coords)
Definition: svmm.h:54