Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4680 | right-hear | 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 | /* |
||
40 | /* TT_CMapInfo */ |
||
41 | /* */ |
||
42 | /* |
||
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 | /* |
||
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 */ |