misc/libfreetype/include/freetype/internal/services/svttcmap.h
changeset 9372 915436ff64ab
parent 9371 f3840de881bd
child 9373 b769a8e38cbd
equal deleted inserted replaced
9371:f3840de881bd 9372:915436ff64ab
     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 */