OLD | NEW |
| (Empty) |
1 /***************************************************************************/ | |
2 /* */ | |
3 /* svmm.h */ | |
4 /* */ | |
5 /* The FreeType Multiple Masters and GX var services (specification). */ | |
6 /* */ | |
7 /* Copyright 2003, 2004, 2009, 2012 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 "../ftserv.h" | |
23 | |
24 | |
25 FT_BEGIN_HEADER | |
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 | |
39 (*FT_Get_MM_Func)( FT_Face face, | |
40 FT_Multi_Master* master ); | |
41 | |
42 typedef FT_Error | |
43 (*FT_Get_MM_Var_Func)( FT_Face face, | |
44 FT_MM_Var* *master ); | |
45 | |
46 typedef FT_Error | |
47 (*FT_Set_MM_Design_Func)( FT_Face face, | |
48 FT_UInt num_coords, | |
49 FT_Long* coords ); | |
50 | |
51 typedef FT_Error | |
52 (*FT_Set_Var_Design_Func)( FT_Face face, | |
53 FT_UInt num_coords, | |
54 FT_Fixed* coords ); | |
55 | |
56 typedef FT_Error | |
57 (*FT_Set_MM_Blend_Func)( FT_Face face, | |
58 FT_UInt num_coords, | |
59 FT_Long* coords ); | |
60 | |
61 | |
62 FT_DEFINE_SERVICE( MultiMasters ) | |
63 { | |
64 FT_Get_MM_Func get_mm; | |
65 FT_Set_MM_Design_Func set_mm_design; | |
66 FT_Set_MM_Blend_Func set_mm_blend; | |
67 FT_Get_MM_Var_Func get_mm_var; | |
68 FT_Set_Var_Design_Func set_var_design; | |
69 }; | |
70 | |
71 | |
72 #ifndef FT_CONFIG_OPTION_PIC | |
73 | |
74 #define FT_DEFINE_SERVICE_MULTIMASTERSREC( class_, \ | |
75 get_mm_, \ | |
76 set_mm_design_, \ | |
77 set_mm_blend_, \ | |
78 get_mm_var_, \ | |
79 set_var_design_ ) \ | |
80 static const FT_Service_MultiMastersRec class_ = \ | |
81 { \ | |
82 get_mm_, set_mm_design_, set_mm_blend_, get_mm_var_, set_var_design_ \ | |
83 }; | |
84 | |
85 #else /* FT_CONFIG_OPTION_PIC */ | |
86 | |
87 #define FT_DEFINE_SERVICE_MULTIMASTERSREC( class_, \ | |
88 get_mm_, \ | |
89 set_mm_design_, \ | |
90 set_mm_blend_, \ | |
91 get_mm_var_, \ | |
92 set_var_design_ ) \ | |
93 void \ | |
94 FT_Init_Class_ ## class_( FT_Service_MultiMastersRec* clazz ) \ | |
95 { \ | |
96 clazz->get_mm = get_mm_; \ | |
97 clazz->set_mm_design = set_mm_design_; \ | |
98 clazz->set_mm_blend = set_mm_blend_; \ | |
99 clazz->get_mm_var = get_mm_var_; \ | |
100 clazz->set_var_design = set_var_design_; \ | |
101 } | |
102 | |
103 #endif /* FT_CONFIG_OPTION_PIC */ | |
104 | |
105 /* */ | |
106 | |
107 | |
108 FT_END_HEADER | |
109 | |
110 #endif /* __SVMM_H__ */ | |
111 | |
112 | |
113 /* END */ | |
OLD | NEW |