1 /***************************************************************************/ 2 /* */ 3 /* svpsinfo.h */ 4 /* */ 5 /* The FreeType PostScript info service (specification). */ 6 /* */ 7 /* Copyright 2003-2018 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 typedef FT_Long 48 (*PS_GetFontValueFunc)( FT_Face face, 49 PS_Dict_Keys key, 50 FT_UInt idx, 51 void *value, 52 FT_Long value_len ); 53 54 FT_DEFINE_SERVICE(PsInfo)55 FT_DEFINE_SERVICE( PsInfo ) 56 { 57 PS_GetFontInfoFunc ps_get_font_info; 58 PS_GetFontExtraFunc ps_get_font_extra; 59 PS_HasGlyphNamesFunc ps_has_glyph_names; 60 PS_GetFontPrivateFunc ps_get_font_private; 61 PS_GetFontValueFunc ps_get_font_value; 62 }; 63 64 65 #ifndef FT_CONFIG_OPTION_PIC 66 67 #define FT_DEFINE_SERVICE_PSINFOREC( class_, \ 68 get_font_info_, \ 69 ps_get_font_extra_, \ 70 has_glyph_names_, \ 71 get_font_private_, \ 72 get_font_value_ ) \ 73 static const FT_Service_PsInfoRec class_ = \ 74 { \ 75 get_font_info_, ps_get_font_extra_, has_glyph_names_, \ 76 get_font_private_, get_font_value_ \ 77 }; 78 79 #else /* FT_CONFIG_OPTION_PIC */ 80 81 #define FT_DEFINE_SERVICE_PSINFOREC( class_, \ 82 get_font_info_, \ 83 ps_get_font_extra_, \ 84 has_glyph_names_, \ 85 get_font_private_, \ 86 get_font_value_ ) \ 87 void \ 88 FT_Init_Class_ ## class_( FT_Library library, \ 89 FT_Service_PsInfoRec* clazz ) \ 90 { \ 91 FT_UNUSED( library ); \ 92 \ 93 clazz->ps_get_font_info = get_font_info_; \ 94 clazz->ps_get_font_extra = ps_get_font_extra_; \ 95 clazz->ps_has_glyph_names = has_glyph_names_; \ 96 clazz->ps_get_font_private = get_font_private_; \ 97 clazz->ps_get_font_value = get_font_value_; \ 98 } 99 100 #endif /* FT_CONFIG_OPTION_PIC */ 101 102 /* */ 103 104 105 FT_END_HEADER 106 107 108 #endif /* SVPSINFO_H_ */ 109 110 111 /* END */ 112