ReactOS  0.4.14-dev-55-g2da92ac
t1types.h
Go to the documentation of this file.
1 /***************************************************************************/
2 /* */
3 /* t1types.h */
4 /* */
5 /* Basic Type1/Type2 type definitions and interface (specification */
6 /* only). */
7 /* */
8 /* Copyright 1996-2018 by */
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 
20 #ifndef T1TYPES_H_
21 #define T1TYPES_H_
22 
23 
24 #include <ft2build.h>
25 #include FT_TYPE1_TABLES_H
26 #include FT_INTERNAL_POSTSCRIPT_HINTS_H
27 #include FT_INTERNAL_SERVICE_H
28 #include FT_INTERNAL_HASH_H
29 #include FT_SERVICE_POSTSCRIPT_CMAPS_H
30 
31 
33 
34 
35  /*************************************************************************/
36  /*************************************************************************/
37  /*************************************************************************/
38  /*** ***/
39  /*** ***/
40  /*** REQUIRED TYPE1/TYPE2 TABLES DEFINITIONS ***/
41  /*** ***/
42  /*** ***/
43  /*************************************************************************/
44  /*************************************************************************/
45  /*************************************************************************/
46 
47 
48  /*************************************************************************/
49  /* */
50  /* <Struct> */
51  /* T1_EncodingRec */
52  /* */
53  /* <Description> */
54  /* A structure modeling a custom encoding. */
55  /* */
56  /* <Fields> */
57  /* num_chars :: The number of character codes in the encoding. */
58  /* Usually 256. */
59  /* */
60  /* code_first :: The lowest valid character code in the encoding. */
61  /* */
62  /* code_last :: The highest valid character code in the encoding */
63  /* + 1. When equal to code_first there are no valid */
64  /* character codes. */
65  /* */
66  /* char_index :: An array of corresponding glyph indices. */
67  /* */
68  /* char_name :: An array of corresponding glyph names. */
69  /* */
70  typedef struct T1_EncodingRecRec_
71  {
75 
78 
80 
81 
82  /* used to hold extra data of PS_FontInfoRec that
83  * cannot be stored in the publicly defined structure.
84  *
85  * Note these can't be blended with multiple-masters.
86  */
87  typedef struct PS_FontExtraRec_
88  {
90 
92 
93 
94  typedef struct T1_FontRec_
95  {
96  PS_FontInfoRec font_info; /* font info dictionary */
97  PS_FontExtraRec font_extra; /* font info extra fields */
98  PS_PrivateRec private_dict; /* private dictionary */
99  FT_String* font_name; /* top-level dictionary */
100 
103 
107 
112 
114  FT_String** glyph_names; /* array of glyph names */
115  FT_Byte** charstrings; /* array of glyph charstrings */
117 
124 
126 
127  } T1_FontRec, *T1_Font;
128 
129 
130  typedef struct CID_SubrsRec_
131  {
134 
136 
137 
138  /*************************************************************************/
139  /*************************************************************************/
140  /*************************************************************************/
141  /*** ***/
142  /*** ***/
143  /*** AFM FONT INFORMATION STRUCTURES ***/
144  /*** ***/
145  /*** ***/
146  /*************************************************************************/
147  /*************************************************************************/
148  /*************************************************************************/
149 
150  typedef struct AFM_TrackKernRec_
151  {
157 
159 
160  typedef struct AFM_KernPairRec_
161  {
166 
168 
169  typedef struct AFM_FontInfoRec_
170  {
175  AFM_TrackKern TrackKerns; /* free if non-NULL */
177  AFM_KernPair KernPairs; /* free if non-NULL */
179 
181 
182 
183  /*************************************************************************/
184  /*************************************************************************/
185  /*************************************************************************/
186  /*** ***/
187  /*** ***/
188  /*** ORIGINAL T1_FACE CLASS DEFINITION ***/
189  /*** ***/
190  /*** ***/
191  /*************************************************************************/
192  /*************************************************************************/
193  /*************************************************************************/
194 
195 
196  typedef struct T1_FaceRec_* T1_Face;
197  typedef struct CID_FaceRec_* CID_Face;
198 
199 
200  typedef struct T1_FaceRec_
201  {
204  const void* psnames;
205  const void* psaux;
206  const void* afm_data;
209 
210  /* support for Multiple Masters fonts */
212 
213  /* undocumented, optional: indices of subroutines that express */
214  /* the NormalizeDesignVector and the ConvertDesignVector procedure, */
215  /* respectively, as Type 2 charstrings; -1 if keywords not present */
218 
219  /* undocumented, optional: has the same meaning as len_buildchar */
220  /* for Type 2 fonts; manipulated by othersubrs 19, 24, and 25 */
223 
224  /* since version 2.1 - interface to PostScript hinter */
225  const void* pshinter;
226 
227  } T1_FaceRec;
228 
229 
230  typedef struct CID_FaceRec_
231  {
233  void* psnames;
234  void* psaux;
237 #if 0
238  void* afm_data;
239 #endif
241 
242  /* since version 2.1 - interface to PostScript hinter */
243  void* pshinter;
244 
245  /* since version 2.1.8, but was originally positioned after `afm_data' */
246  FT_Byte* binary_data; /* used if hex data has been converted */
248 
249  } CID_FaceRec;
250 
251 
253 
254 #endif /* T1TYPES_H_ */
255 
256 
257 /* END */
FT_Fixed max_kern
Definition: t1types.h:156
PS_PrivateRec private_dict
Definition: t1types.h:98
T1_EncodingType encoding_type
Definition: t1types.h:101
FT_Fixed Descender
Definition: t1types.h:174
signed long FT_Long
Definition: fttypes.h:242
FT_Vector font_offset
Definition: t1types.h:121
struct CID_FaceRec_ * CID_Face
Definition: t1types.h:197
struct AFM_KernPairRec_ * AFM_KernPair
struct T1_FaceRec_ * T1_Face
Definition: t1types.h:196
AFM_KernPair KernPairs
Definition: t1types.h:177
FT_UInt * subrs_len
Definition: t1types.h:110
FT_Bool IsCIDFont
Definition: t1types.h:171
FT_UShort * char_index
Definition: t1types.h:76
#define FT_END_HEADER
Definition: ftheader.h:54
FT_Fixed min_ptsize
Definition: t1types.h:153
signed int FT_Int
Definition: fttypes.h:220
struct T1_FontRec_ T1_FontRec
FT_Matrix font_matrix
Definition: t1types.h:120
void * psaux
Definition: t1types.h:234
FT_String ** glyph_names
Definition: t1types.h:114
FT_Stream cid_stream
Definition: t1types.h:247
FT_Byte paint_type
Definition: t1types.h:118
void * pshinter
Definition: t1types.h:243
FT_BEGIN_HEADER struct T1_EncodingRecRec_ * T1_Encoding
FT_Long * buildchar
Definition: t1types.h:222
FT_Byte ** code
Definition: t1types.h:133
FT_FaceRec root
Definition: t1types.h:232
FT_UInt index2
Definition: t1types.h:163
FT_BBox font_bbox
Definition: t1types.h:122
FT_Byte ** subrs
Definition: t1types.h:109
const void * psnames
Definition: t1types.h:204
struct CID_SubrsRec_ CID_SubrsRec
FT_Byte * glyph_names_block
Definition: t1types.h:106
FT_UShort fs_type
Definition: t1types.h:89
FT_UInt * charstrings_len
Definition: t1types.h:116
struct T1_FaceRec_ T1_FaceRec
AFM_TrackKern TrackKerns
Definition: t1types.h:175
FT_BEGIN_HEADER typedef unsigned char FT_Bool
Definition: fttypes.h:108
void * psnames
Definition: t1types.h:233
FT_Fixed stroke_width
Definition: t1types.h:125
FT_Int num_glyphs
Definition: t1types.h:113
unsigned char FT_Byte
Definition: fttypes.h:154
FT_Byte * binary_data
Definition: t1types.h:246
#define FT_BEGIN_HEADER
Definition: ftheader.h:36
PS_FontExtraRec font_extra
Definition: t1types.h:236
FT_Byte * charstrings_block
Definition: t1types.h:105
struct T1_FontRec_ * T1_Font
CID_FaceInfoRec cid
Definition: t1types.h:235
FT_Int code_last
Definition: t1types.h:74
struct PS_FontExtraRec_ PS_FontExtraRec
FT_String ** char_name
Definition: t1types.h:77
FT_BBox FontBBox
Definition: t1types.h:172
FT_UInt NumKernPair
Definition: t1types.h:178
FT_Byte font_type
Definition: t1types.h:119
FT_Int num_subrs
Definition: t1types.h:132
CID_Subrs subrs
Definition: t1types.h:240
char FT_String
Definition: fttypes.h:187
FT_Fixed min_kern
Definition: t1types.h:154
struct CID_FaceRec_ CID_FaceRec
FT_CharMapRec charmaprecs[2]
Definition: t1types.h:207
FT_Long font_id
Definition: t1types.h:123
PS_FontInfoRec font_info
Definition: t1types.h:96
FT_Int ndv_idx
Definition: t1types.h:216
FT_Byte * subrs_block
Definition: t1types.h:104
PS_Blend blend
Definition: t1types.h:211
enum T1_EncodingType_ T1_EncodingType
FT_Int num_chars
Definition: t1types.h:72
struct AFM_FontInfoRec_ * AFM_FontInfo
FT_CharMap charmaps[2]
Definition: t1types.h:208
FT_Int code_first
Definition: t1types.h:73
PS_FontExtraRec font_extra
Definition: t1types.h:97
const void * psaux
Definition: t1types.h:205
FT_Hash subrs_hash
Definition: t1types.h:111
FT_Byte ** charstrings
Definition: t1types.h:115
FT_Int cdv_idx
Definition: t1types.h:217
const void * pshinter
Definition: t1types.h:225
signed long FT_Fixed
Definition: fttypes.h:288
const void * afm_data
Definition: t1types.h:206
T1_EncodingRec encoding
Definition: t1types.h:102
unsigned int FT_UInt
Definition: fttypes.h:231
FT_Int num_subrs
Definition: t1types.h:108
struct AFM_TrackKernRec_ AFM_TrackKernRec
FT_UInt NumTrackKern
Definition: t1types.h:176
FT_Fixed max_ptsize
Definition: t1types.h:155
FT_UInt index1
Definition: t1types.h:162
struct CID_SubrsRec_ * CID_Subrs
struct AFM_KernPairRec_ AFM_KernPairRec
FT_BEGIN_HEADER struct PS_FontInfoRec_ PS_FontInfoRec
FT_UInt len_buildchar
Definition: t1types.h:221
FT_Fixed Ascender
Definition: t1types.h:173
T1_FontRec type1
Definition: t1types.h:203
FT_BEGIN_HEADER struct T1_EncodingRecRec_ T1_EncodingRec
unsigned short FT_UShort
Definition: fttypes.h:209
struct AFM_TrackKernRec_ * AFM_TrackKern
struct AFM_FontInfoRec_ AFM_FontInfoRec
FT_String * font_name
Definition: t1types.h:99
FT_FaceRec root
Definition: t1types.h:202