ReactOS 0.4.15-dev-7887-g64a59a1
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
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
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
250
251
253
254#endif /* T1TYPES_H_ */
255
256
257/* END */
#define FT_END_HEADER
Definition: ftheader.h:54
#define FT_BEGIN_HEADER
Definition: ftheader.h:36
FT_BEGIN_HEADER typedef unsigned char FT_Bool
Definition: fttypes.h:108
unsigned char FT_Byte
Definition: fttypes.h:154
signed long FT_Fixed
Definition: fttypes.h:288
signed long FT_Long
Definition: fttypes.h:242
unsigned short FT_UShort
Definition: fttypes.h:209
char FT_String
Definition: fttypes.h:187
unsigned int FT_UInt
Definition: fttypes.h:231
signed int FT_Int
Definition: fttypes.h:220
FT_Fixed Ascender
Definition: t1types.h:173
AFM_KernPair KernPairs
Definition: t1types.h:177
FT_Fixed Descender
Definition: t1types.h:174
FT_Bool IsCIDFont
Definition: t1types.h:171
FT_UInt NumKernPair
Definition: t1types.h:178
AFM_TrackKern TrackKerns
Definition: t1types.h:175
FT_UInt NumTrackKern
Definition: t1types.h:176
FT_BBox FontBBox
Definition: t1types.h:172
FT_UInt index2
Definition: t1types.h:163
FT_UInt index1
Definition: t1types.h:162
FT_Fixed max_ptsize
Definition: t1types.h:155
FT_Fixed min_ptsize
Definition: t1types.h:153
FT_Fixed max_kern
Definition: t1types.h:156
FT_Fixed min_kern
Definition: t1types.h:154
CID_FaceInfoRec cid
Definition: t1types.h:235
FT_Stream cid_stream
Definition: t1types.h:247
FT_Byte * binary_data
Definition: t1types.h:246
void * pshinter
Definition: t1types.h:243
void * psaux
Definition: t1types.h:234
CID_Subrs subrs
Definition: t1types.h:240
void * psnames
Definition: t1types.h:233
PS_FontExtraRec font_extra
Definition: t1types.h:236
FT_FaceRec root
Definition: t1types.h:232
FT_Byte ** code
Definition: t1types.h:133
FT_Int num_subrs
Definition: t1types.h:132
FT_UShort fs_type
Definition: t1types.h:89
FT_UShort * char_index
Definition: t1types.h:76
FT_Int code_last
Definition: t1types.h:74
FT_String ** char_name
Definition: t1types.h:77
FT_Int code_first
Definition: t1types.h:73
FT_Int num_chars
Definition: t1types.h:72
FT_CharMapRec charmaprecs[2]
Definition: t1types.h:207
FT_Int ndv_idx
Definition: t1types.h:216
FT_CharMap charmaps[2]
Definition: t1types.h:208
const void * psaux
Definition: t1types.h:205
const void * pshinter
Definition: t1types.h:225
FT_FaceRec root
Definition: t1types.h:202
PS_Blend blend
Definition: t1types.h:211
FT_UInt len_buildchar
Definition: t1types.h:221
FT_Int cdv_idx
Definition: t1types.h:217
T1_FontRec type1
Definition: t1types.h:203
const void * psnames
Definition: t1types.h:204
FT_Long * buildchar
Definition: t1types.h:222
const void * afm_data
Definition: t1types.h:206
FT_Long font_id
Definition: t1types.h:123
PS_PrivateRec private_dict
Definition: t1types.h:98
T1_EncodingType encoding_type
Definition: t1types.h:101
PS_FontInfoRec font_info
Definition: t1types.h:96
FT_Byte * subrs_block
Definition: t1types.h:104
FT_Byte ** subrs
Definition: t1types.h:109
FT_Int num_glyphs
Definition: t1types.h:113
FT_UInt * charstrings_len
Definition: t1types.h:116
FT_String ** glyph_names
Definition: t1types.h:114
T1_EncodingRec encoding
Definition: t1types.h:102
FT_Byte paint_type
Definition: t1types.h:118
FT_BBox font_bbox
Definition: t1types.h:122
FT_String * font_name
Definition: t1types.h:99
FT_Matrix font_matrix
Definition: t1types.h:120
FT_Int num_subrs
Definition: t1types.h:108
FT_Byte * charstrings_block
Definition: t1types.h:105
PS_FontExtraRec font_extra
Definition: t1types.h:97
FT_Hash subrs_hash
Definition: t1types.h:111
FT_Byte font_type
Definition: t1types.h:119
FT_Byte ** charstrings
Definition: t1types.h:115
FT_UInt * subrs_len
Definition: t1types.h:110
FT_Vector font_offset
Definition: t1types.h:121
FT_Fixed stroke_width
Definition: t1types.h:125
FT_Byte * glyph_names_block
Definition: t1types.h:106
FT_BEGIN_HEADER struct PS_FontInfoRec_ PS_FontInfoRec
enum T1_EncodingType_ T1_EncodingType
struct T1_FontRec_ T1_FontRec
struct CID_FaceRec_ * CID_Face
Definition: t1types.h:197
struct CID_FaceRec_ CID_FaceRec
FT_BEGIN_HEADER struct T1_EncodingRecRec_ T1_EncodingRec
FT_BEGIN_HEADER struct T1_EncodingRecRec_ * T1_Encoding
struct AFM_TrackKernRec_ AFM_TrackKernRec
struct AFM_TrackKernRec_ * AFM_TrackKern
struct PS_FontExtraRec_ PS_FontExtraRec
struct T1_FaceRec_ T1_FaceRec
struct T1_FontRec_ * T1_Font
struct AFM_FontInfoRec_ * AFM_FontInfo
struct AFM_KernPairRec_ AFM_KernPairRec
struct T1_FaceRec_ * T1_Face
Definition: t1types.h:196
struct AFM_FontInfoRec_ AFM_FontInfoRec
struct CID_SubrsRec_ CID_SubrsRec
struct CID_SubrsRec_ * CID_Subrs
struct AFM_KernPairRec_ * AFM_KernPair