ReactOS  0.4.13-dev-986-g029b8f2
svttcmap.h
Go to the documentation of this file.
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 
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  {
62 
63  } TT_CMapInfo;
64 
65 
66  typedef FT_Error
69 
70 
71  FT_DEFINE_SERVICE( TTCMaps )
72  {
73  TT_CMap_Info_GetFunc get_cmap_info;
74  };
75 
76 #ifndef FT_CONFIG_OPTION_PIC
77 
78 #define FT_DEFINE_SERVICE_TTCMAPSREC( class_, get_cmap_info_ ) \
79  static const FT_Service_TTCMapsRec class_ = \
80  { \
81  get_cmap_info_ \
82  };
83 
84 #else /* FT_CONFIG_OPTION_PIC */
85 
86 #define FT_DEFINE_SERVICE_TTCMAPSREC( class_, get_cmap_info_ ) \
87  void \
88  FT_Init_Class_ ## class_( FT_Library library, \
89  FT_Service_TTCMapsRec* clazz ) \
90  { \
91  FT_UNUSED( library ); \
92  \
93  clazz->get_cmap_info = get_cmap_info_; \
94  }
95 
96 #endif /* FT_CONFIG_OPTION_PIC */
97 
98  /* */
99 
100 
102 
103 #endif /* SVTTCMAP_H_ */
104 
105 
106 /* END */
int FT_Error
Definition: fttypes.h:300
signed long FT_Long
Definition: fttypes.h:242
unsigned long FT_ULong
Definition: fttypes.h:253
#define FT_END_HEADER
Definition: ftheader.h:54
FT_DEFINE_SERVICE(TTCMaps)
Definition: svttcmap.h:71
struct TT_CMapInfo_ TT_CMapInfo
TT_CMapInfo * cmap_info
Definition: cffdrivr.c:649
#define FT_BEGIN_HEADER
Definition: ftheader.h:36
FT_ULong language
Definition: svttcmap.h:60
FT_Error(* TT_CMap_Info_GetFunc)(FT_CharMap charmap, TT_CMapInfo *cmap_info)
Definition: svttcmap.h:67
FT_Long format
Definition: svttcmap.h:61