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 */ |
|