Subversion Repositories Kolibri OS

Rev

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

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