Subversion Repositories Kolibri OS

Rev

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

  1. /***************************************************************************/
  2. /*                                                                         */
  3. /*  svpsinfo.h                                                             */
  4. /*                                                                         */
  5. /*    The FreeType PostScript info service (specification).                */
  6. /*                                                                         */
  7. /*  Copyright 2003, 2004, 2009, 2011, 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 __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.  
  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.