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