Subversion Repositories Kolibri OS

Rev

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

  1.  /***************************************************************************/
  2. /*                                                                         */
  3. /*  svttcmap.h                                                             */
  4. /*                                                                         */
  5. /*    The FreeType TrueType/sfnt cmap extra information service.           */
  6. /*                                                                         */
  7. /*  Copyright 2003 by                                                      */
  8. /*  Masatake YAMATO, Redhat K.K.                                           */
  9. /*                                                                         */
  10. /*  Copyright 2003, 2008 by                                                */
  11. /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
  12. /*                                                                         */
  13. /*  This file is part of the FreeType project, and may only be used,       */
  14. /*  modified, and distributed under the terms of the FreeType project      */
  15. /*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
  16. /*  this file you indicate that you have read the license and              */
  17. /*  understand and accept it fully.                                        */
  18. /*                                                                         */
  19. /***************************************************************************/
  20.  
  21. /* Development of this service is support of
  22.    Information-technology Promotion Agency, Japan. */
  23.  
  24. #ifndef __SVTTCMAP_H__
  25. #define __SVTTCMAP_H__
  26.  
  27. #include FT_INTERNAL_SERVICE_H
  28. #include FT_TRUETYPE_TABLES_H
  29.  
  30.  
  31. FT_BEGIN_HEADER
  32.  
  33.  
  34. #define FT_SERVICE_ID_TT_CMAP "tt-cmaps"
  35.  
  36.  
  37.   /*************************************************************************/
  38.   /*                                                                       */
  39.   /* <Struct>                                                              */
  40.   /*    TT_CMapInfo                                                        */
  41.   /*                                                                       */
  42.   /* <Description>                                                         */
  43.   /*    A structure used to store TrueType/sfnt specific cmap information  */
  44.   /*    which is not covered by the generic @FT_CharMap structure.  This   */
  45.   /*    structure can be accessed with the @FT_Get_TT_CMap_Info function.  */
  46.   /*                                                                       */
  47.   /* <Fields>                                                              */
  48.   /*    language ::                                                        */
  49.   /*      The language ID used in Mac fonts.  Definitions of values are in */
  50.   /*      freetype/ttnameid.h.                                             */
  51.   /*                                                                       */
  52.   /*    format ::                                                          */
  53.   /*      The cmap format.  OpenType 1.5 defines the formats 0 (byte       */
  54.   /*      encoding table), 2~(high-byte mapping through table), 4~(segment */
  55.   /*      mapping to delta values), 6~(trimmed table mapping), 8~(mixed    */
  56.   /*      16-bit and 32-bit coverage), 10~(trimmed array), 12~(segmented   */
  57.   /*      coverage), and 14 (Unicode Variation Sequences).                 */
  58.   /*                                                                       */
  59.   typedef struct  TT_CMapInfo_
  60.   {
  61.     FT_ULong language;
  62.     FT_Long  format;
  63.  
  64.   } TT_CMapInfo;
  65.  
  66.  
  67.   typedef FT_Error
  68.   (*TT_CMap_Info_GetFunc)( FT_CharMap    charmap,
  69.                            TT_CMapInfo  *cmap_info );
  70.  
  71.  
  72.   FT_DEFINE_SERVICE( TTCMaps )
  73.   {
  74.     TT_CMap_Info_GetFunc  get_cmap_info;
  75.   };
  76.  
  77. #ifndef FT_CONFIG_OPTION_PIC
  78.  
  79. #define FT_DEFINE_SERVICE_TTCMAPSREC(class_, get_cmap_info_)  \
  80.   static const FT_Service_TTCMapsRec class_ =                 \
  81.   {                                                           \
  82.     get_cmap_info_                                            \
  83.   };
  84.  
  85. #else /* FT_CONFIG_OPTION_PIC */
  86.  
  87. #define FT_DEFINE_SERVICE_TTCMAPSREC(class_, get_cmap_info_) \
  88.   void                                                       \
  89.   FT_Init_Class_##class_( FT_Library library,                \
  90.                           FT_Service_TTCMapsRec*  clazz)     \
  91.   {                                                          \
  92.     FT_UNUSED(library);                                      \
  93.     clazz->get_cmap_info = get_cmap_info_;                   \
  94.   }
  95.  
  96. #endif /* FT_CONFIG_OPTION_PIC */
  97.  
  98.   /* */
  99.  
  100.  
  101. FT_END_HEADER
  102.  
  103. #endif /* __SVTTCMAP_H__ */
  104.  
  105.  
  106. /* END */
  107.