Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

  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.  
  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.