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 25FT_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 85FT_END_HEADER 86 87 88#endif /* __SVGLDICT_H__ */ 89