zenilib  0.5.3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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, 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 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  typedef FT_Error
53  FT_UInt num_coords,
54  FT_Fixed* coords );
55 
56  typedef FT_Error
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 
109 
110 #endif /* __SVMM_H__ */
111 
112 
113 /* END */
int FT_Error
Definition: fttypes.h:296
#define FT_DEFINE_SERVICE(name)
Definition: ftserv.h:650
signed long FT_Long
Definition: fttypes.h:238
#define FT_END_HEADER
Definition: ftheader.h:54
GLenum GLuint coords
Definition: glew.h:7189
FT_Error(* FT_Get_MM_Func)(FT_Face face, FT_Multi_Master *master)
Definition: svmm.h:39
#define FT_BEGIN_HEADER
Definition: ftheader.h:36
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
GLenum face
Definition: gl2ext.h:1490
FT_Error(* FT_Set_Var_Design_Func)(FT_Face face, FT_UInt num_coords, FT_Fixed *coords)
Definition: svmm.h:52
signed long FT_Fixed
Definition: fttypes.h:284
unsigned int FT_UInt
Definition: fttypes.h:227
FT_Error(* FT_Set_MM_Blend_Func)(FT_Face face, FT_UInt num_coords, FT_Long *coords)
Definition: svmm.h:57