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 FT_DEFINE_SERVICE(PsInfo)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 */ 93