• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
FT_DEFINE_SERVICE(TTCMaps)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