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