1 /***************************************************************************/
5 /* The FreeType TrueType/sfnt cmap extra information service. */
7 /* Copyright 2003 by */
8 /* Masatake YAMATO, Redhat K.K. */
10 /* Copyright 2003, 2008, 2009, 2012 by */
11 /* David Turner, Robert Wilhelm, and Werner Lemberg. */
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. */
19 /***************************************************************************/
21 /* Development of this service is support of
22 Information-technology Promotion Agency, Japan. */
24 #ifndef __SVTTCMAP_H__
25 #define __SVTTCMAP_H__
27 #include FT_INTERNAL_SERVICE_H
28 #include FT_TRUETYPE_TABLES_H
34 #define FT_SERVICE_ID_TT_CMAP "tt-cmaps"
37 /*************************************************************************/
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. */
49 /* The language ID used in Mac fonts. Definitions of values are in */
50 /* freetype/ttnameid.h. */
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). */
59 typedef struct TT_CMapInfo_
68 (*TT_CMap_Info_GetFunc)( FT_CharMap charmap,
69 TT_CMapInfo *cmap_info );
72 FT_DEFINE_SERVICE( TTCMaps )
74 TT_CMap_Info_GetFunc get_cmap_info;
77 #ifndef FT_CONFIG_OPTION_PIC
79 #define FT_DEFINE_SERVICE_TTCMAPSREC( class_, get_cmap_info_ ) \
80 static const FT_Service_TTCMapsRec class_ = \
85 #else /* FT_CONFIG_OPTION_PIC */
87 #define FT_DEFINE_SERVICE_TTCMAPSREC( class_, get_cmap_info_ ) \
89 FT_Init_Class_ ## class_( FT_Library library, \
90 FT_Service_TTCMapsRec* clazz ) \
92 FT_UNUSED( library ); \
94 clazz->get_cmap_info = get_cmap_info_; \
97 #endif /* FT_CONFIG_OPTION_PIC */
104 #endif /* __SVTTCMAP_H__ */