[FREETYPE]
[reactos.git] / reactos / lib / 3rdparty / freetype / include / internal / services / svgldict.h
1 /***************************************************************************/
2 /* */
3 /* svgldict.h */
4 /* */
5 /* The FreeType glyph dictionary services (specification). */
6 /* */
7 /* Copyright 2003, 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 __SVGLDICT_H__
20 #define __SVGLDICT_H__
21
22 #include FT_INTERNAL_SERVICE_H
23
24
25 FT_BEGIN_HEADER
26
27
28 /*
29 * A service used to retrieve glyph names, as well as to find the
30 * index of a given glyph name in a font.
31 *
32 */
33
34 #define FT_SERVICE_ID_GLYPH_DICT "glyph-dict"
35
36
37 typedef FT_Error
38 (*FT_GlyphDict_GetNameFunc)( FT_Face face,
39 FT_UInt glyph_index,
40 FT_Pointer buffer,
41 FT_UInt buffer_max );
42
43 typedef FT_UInt
44 (*FT_GlyphDict_NameIndexFunc)( FT_Face face,
45 FT_String* glyph_name );
46
47
48 FT_DEFINE_SERVICE( GlyphDict )
49 {
50 FT_GlyphDict_GetNameFunc get_name;
51 FT_GlyphDict_NameIndexFunc name_index; /* optional */
52 };
53
54
55 #ifndef FT_CONFIG_OPTION_PIC
56
57 #define FT_DEFINE_SERVICE_GLYPHDICTREC( class_, \
58 get_name_, \
59 name_index_) \
60 static const FT_Service_GlyphDictRec class_ = \
61 { \
62 get_name_, name_index_ \
63 };
64
65 #else /* FT_CONFIG_OPTION_PIC */
66
67 #define FT_DEFINE_SERVICE_GLYPHDICTREC( class_, \
68 get_name_, \
69 name_index_) \
70 void \
71 FT_Init_Class_ ## class_( FT_Library library, \
72 FT_Service_GlyphDictRec* clazz ) \
73 { \
74 FT_UNUSED( library ); \
75 \
76 clazz->get_name = get_name_; \
77 clazz->name_index = name_index_; \
78 }
79
80 #endif /* FT_CONFIG_OPTION_PIC */
81
82 /* */
83
84
85 FT_END_HEADER
86
87
88 #endif /* __SVGLDICT_H__ */