1 /***************************************************************************/
5 /* The FreeType TrueType/sfnt cmap extra information service. */
7 /* Copyright 2003-2015 by */
8 /* Masatake YAMATO, Redhat K.K., */
9 /* David Turner, Robert Wilhelm, and Werner Lemberg. */
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. */
17 /***************************************************************************/
19 /* Development of this service is support of
20 Information-technology Promotion Agency, Japan. */
22 #ifndef __SVTTCMAP_H__
23 #define __SVTTCMAP_H__
25 #include FT_INTERNAL_SERVICE_H
26 #include FT_TRUETYPE_TABLES_H
32 #define FT_SERVICE_ID_TT_CMAP "tt-cmaps"
35 /*************************************************************************/
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. */
47 /* The language ID used in Mac fonts. Definitions of values are in */
51 /* The cmap format. OpenType 1.5 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), and 14 (Unicode Variation Sequences). */
57 typedef struct TT_CMapInfo_
66 (*TT_CMap_Info_GetFunc
)( FT_CharMap charmap
,
67 TT_CMapInfo
*cmap_info
);
70 FT_DEFINE_SERVICE( TTCMaps
)
72 TT_CMap_Info_GetFunc get_cmap_info
;
75 #ifndef FT_CONFIG_OPTION_PIC
77 #define FT_DEFINE_SERVICE_TTCMAPSREC( class_, get_cmap_info_ ) \
78 static const FT_Service_TTCMapsRec class_ = \
83 #else /* FT_CONFIG_OPTION_PIC */
85 #define FT_DEFINE_SERVICE_TTCMAPSREC( class_, get_cmap_info_ ) \
87 FT_Init_Class_ ## class_( FT_Library library, \
88 FT_Service_TTCMapsRec* clazz ) \
90 FT_UNUSED( library ); \
92 clazz->get_cmap_info = get_cmap_info_; \
95 #endif /* FT_CONFIG_OPTION_PIC */
102 #endif /* __SVTTCMAP_H__ */