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