1 /***************************************************************************/ 2 /* */ 3 /* svgldict.h */ 4 /* */ 5 /* The FreeType glyph dictionary services (specification). */ 6 /* */ 7 /* Copyright 2003 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 FT_DEFINE_SERVICE(GlyphDict)48 FT_DEFINE_SERVICE( GlyphDict ) 49 { 50 FT_GlyphDict_GetNameFunc get_name; 51 FT_GlyphDict_NameIndexFunc name_index; /* optional */ 52 }; 53 54 #ifndef FT_CONFIG_OPTION_PIC 55 56 #define FT_DEFINE_SERVICE_GLYPHDICTREC(class_, get_name_, name_index_) \ 57 static const FT_Service_GlyphDictRec class_ = \ 58 { \ 59 get_name_, name_index_ \ 60 }; 61 62 #else /* FT_CONFIG_OPTION_PIC */ 63 64 #define FT_DEFINE_SERVICE_GLYPHDICTREC(class_, get_name_, name_index_) \ 65 void \ 66 FT_Init_Class_##class_( FT_Library library, \ 67 FT_Service_GlyphDictRec* clazz) \ 68 { \ 69 FT_UNUSED(library); \ 70 clazz->get_name = get_name_; \ 71 clazz->name_index = name_index_; \ 72 } 73 74 #endif /* FT_CONFIG_OPTION_PIC */ 75 76 /* */ 77 78 79 FT_END_HEADER 80 81 82 #endif /* __SVGLDICT_H__ */ 83