Sync with trunk r47367
[reactos.git] / lib / 3rdparty / freetype / include / freetype / internal / services / svpsinfo.h
1 /***************************************************************************/
2 /* */
3 /* svpsinfo.h */
4 /* */
5 /* The FreeType PostScript info service (specification). */
6 /* */
7 /* Copyright 2003, 2004, 2009 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 __SVPSINFO_H__
20 #define __SVPSINFO_H__
21
22 #include FT_INTERNAL_SERVICE_H
23 #include FT_INTERNAL_TYPE1_TYPES_H
24
25
26 FT_BEGIN_HEADER
27
28
29 #define FT_SERVICE_ID_POSTSCRIPT_INFO "postscript-info"
30
31
32 typedef FT_Error
33 (*PS_GetFontInfoFunc)( FT_Face face,
34 PS_FontInfoRec* afont_info );
35
36 typedef FT_Error
37 (*PS_GetFontExtraFunc)( FT_Face face,
38 PS_FontExtraRec* afont_extra );
39
40 typedef FT_Int
41 (*PS_HasGlyphNamesFunc)( FT_Face face );
42
43 typedef FT_Error
44 (*PS_GetFontPrivateFunc)( FT_Face face,
45 PS_PrivateRec* afont_private );
46
47
48 FT_DEFINE_SERVICE( PsInfo )
49 {
50 PS_GetFontInfoFunc ps_get_font_info;
51 PS_GetFontExtraFunc ps_get_font_extra;
52 PS_HasGlyphNamesFunc ps_has_glyph_names;
53 PS_GetFontPrivateFunc ps_get_font_private;
54 };
55
56 #ifndef FT_CONFIG_OPTION_PIC
57
58 #define FT_DEFINE_SERVICE_PSINFOREC(class_, get_font_info_, \
59 ps_get_font_extra_, has_glyph_names_, get_font_private_) \
60 static const FT_Service_PsInfoRec class_ = \
61 { \
62 get_font_info_, ps_get_font_extra_, has_glyph_names_, \
63 get_font_private_ \
64 };
65
66 #else /* FT_CONFIG_OPTION_PIC */
67
68 #define FT_DEFINE_SERVICE_PSINFOREC(class_, get_font_info_, \
69 ps_get_font_extra_, has_glyph_names_, get_font_private_) \
70 void \
71 FT_Init_Class_##class_( FT_Library library, \
72 FT_Service_PsInfoRec* clazz) \
73 { \
74 FT_UNUSED(library); \
75 clazz->ps_get_font_info = get_font_info_; \
76 clazz->ps_get_font_extra = ps_get_font_extra_; \
77 clazz->ps_has_glyph_names = has_glyph_names_; \
78 clazz->ps_get_font_private = get_font_private_; \
79 }
80
81 #endif /* FT_CONFIG_OPTION_PIC */
82
83 /* */
84
85
86 FT_END_HEADER
87
88
89 #endif /* __SVPSINFO_H__ */
90
91
92 /* END */