... |
... |
@@ -144,36 +144,39 @@ FT_BEGIN_HEADER |
144
|
144
|
*
|
145
|
145
|
* The main structure for the interpreter which collects all necessary
|
146
|
146
|
* variables and states.
|
|
147
|
+ *
|
|
148
|
+ * Members that are initialized by `TT_Load_Context` are marked with '!'.
|
|
149
|
+ * Members that are initialized by `TT_Run_Context` are marked with '@'.
|
147
|
150
|
*/
|
148
|
151
|
typedef struct TT_ExecContextRec_
|
149
|
152
|
{
|
150
|
|
- TT_Face face;
|
151
|
|
- TT_Size size;
|
|
153
|
+ TT_Face face; /* ! */
|
|
154
|
+ TT_Size size; /* ! */
|
152
|
155
|
FT_Memory memory;
|
153
|
156
|
|
154
|
157
|
/* instructions state */
|
155
|
158
|
|
156
|
159
|
FT_Error error; /* last execution error */
|
157
|
160
|
|
158
|
|
- FT_Long top; /* top of exec. stack */
|
|
161
|
+ FT_Long top; /* @ top of exec. stack */
|
159
|
162
|
|
160
|
|
- FT_Long stackSize; /* size of exec. stack */
|
161
|
|
- FT_Long* stack; /* current exec. stack */
|
|
163
|
+ FT_Long stackSize; /* ! size of exec. stack */
|
|
164
|
+ FT_Long* stack; /* ! current exec. stack */
|
162
|
165
|
|
163
|
166
|
FT_Long args;
|
164
|
|
- FT_Long new_top; /* new top after exec. */
|
|
167
|
+ FT_Long new_top; /* new top after exec. */
|
165
|
168
|
|
166
|
|
- TT_GlyphZoneRec zp0, /* zone records */
|
167
|
|
- zp1,
|
168
|
|
- zp2,
|
169
|
|
- pts,
|
170
|
|
- twilight;
|
|
169
|
+ TT_GlyphZoneRec zp0, /* @! zone records */
|
|
170
|
+ zp1, /* @! */
|
|
171
|
+ zp2, /* @! */
|
|
172
|
+ pts, /* ! */
|
|
173
|
+ twilight; /* ! */
|
171
|
174
|
|
172
|
|
- FT_Long pointSize; /* in 26.6 format */
|
173
|
|
- FT_Size_Metrics metrics;
|
174
|
|
- TT_Size_Metrics tt_metrics; /* size metrics */
|
|
175
|
+ FT_Long pointSize; /* ! in 26.6 format */
|
|
176
|
+ FT_Size_Metrics metrics; /* ! */
|
|
177
|
+ TT_Size_Metrics tt_metrics; /* ! size metrics */
|
175
|
178
|
|
176
|
|
- TT_GraphicsState GS; /* current graphics state */
|
|
179
|
+ TT_GraphicsState GS; /* !@ current graphics state */
|
177
|
180
|
|
178
|
181
|
FT_Int iniRange; /* initial code range number */
|
179
|
182
|
FT_Int curRange; /* current code range number */
|
... |
... |
@@ -186,39 +189,39 @@ FT_BEGIN_HEADER |
186
|
189
|
|
187
|
190
|
FT_Bool step_ins; /* true if the interpreter must */
|
188
|
191
|
/* increment IP after ins. exec */
|
189
|
|
- FT_ULong cvtSize;
|
190
|
|
- FT_Long* cvt;
|
|
192
|
+ FT_ULong cvtSize; /* ! */
|
|
193
|
+ FT_Long* cvt; /* ! */
|
191
|
194
|
FT_ULong glyfCvtSize;
|
192
|
195
|
FT_Long* glyfCvt; /* cvt working copy for glyph */
|
193
|
196
|
FT_Long* origCvt;
|
194
|
197
|
|
195
|
|
- FT_UInt glyphSize; /* glyph instructions buffer size */
|
196
|
|
- FT_Byte* glyphIns; /* glyph instructions buffer */
|
|
198
|
+ FT_UInt glyphSize; /* ! glyph instructions buffer size */
|
|
199
|
+ FT_Byte* glyphIns; /* ! glyph instructions buffer */
|
197
|
200
|
|
198
|
|
- FT_UInt numFDefs; /* number of function defs */
|
199
|
|
- FT_UInt maxFDefs; /* maximum number of function defs */
|
200
|
|
- TT_DefArray FDefs; /* table of FDefs entries */
|
|
201
|
+ FT_UInt numFDefs; /* ! number of function defs */
|
|
202
|
+ FT_UInt maxFDefs; /* ! maximum number of function defs */
|
|
203
|
+ TT_DefArray FDefs; /* table of FDefs entries */
|
201
|
204
|
|
202
|
|
- FT_UInt numIDefs; /* number of instruction defs */
|
203
|
|
- FT_UInt maxIDefs; /* maximum number of ins defs */
|
204
|
|
- TT_DefArray IDefs; /* table of IDefs entries */
|
|
205
|
+ FT_UInt numIDefs; /* ! number of instruction defs */
|
|
206
|
+ FT_UInt maxIDefs; /* ! maximum number of ins defs */
|
|
207
|
+ TT_DefArray IDefs; /* table of IDefs entries */
|
205
|
208
|
|
206
|
|
- FT_UInt maxFunc; /* maximum function index */
|
207
|
|
- FT_UInt maxIns; /* maximum instruction index */
|
|
209
|
+ FT_UInt maxFunc; /* ! maximum function index */
|
|
210
|
+ FT_UInt maxIns; /* ! maximum instruction index */
|
208
|
211
|
|
209
|
|
- FT_Int callTop, /* top of call stack during execution */
|
210
|
|
- callSize; /* size of call stack */
|
211
|
|
- TT_CallStack callStack; /* call stack */
|
|
212
|
+ FT_Int callTop, /* @ top of call stack during execution */
|
|
213
|
+ callSize; /* size of call stack */
|
|
214
|
+ TT_CallStack callStack; /* call stack */
|
212
|
215
|
|
213
|
216
|
FT_UShort maxPoints; /* capacity of this context's `pts' */
|
214
|
217
|
FT_Short maxContours; /* record, expressed in points and */
|
215
|
218
|
/* contours. */
|
216
|
219
|
|
217
|
|
- TT_CodeRangeTable codeRangeTable; /* table of valid code ranges */
|
218
|
|
- /* useful for the debugger */
|
|
220
|
+ TT_CodeRangeTable codeRangeTable; /* ! table of valid code ranges */
|
|
221
|
+ /* useful for the debugger */
|
219
|
222
|
|
220
|
|
- FT_UShort storeSize; /* size of current storage */
|
221
|
|
- FT_Long* storage; /* storage area */
|
|
223
|
+ FT_UShort storeSize; /* ! size of current storage */
|
|
224
|
+ FT_Long* storage; /* ! storage area */
|
222
|
225
|
FT_UShort glyfStoreSize;
|
223
|
226
|
FT_Long* glyfStorage; /* storage working copy for glyph */
|
224
|
227
|
FT_Long* origStorage;
|
... |
... |
@@ -227,8 +230,8 @@ FT_BEGIN_HEADER |
227
|
230
|
FT_F26Dot6 phase; /* `SuperRounding' */
|
228
|
231
|
FT_F26Dot6 threshold;
|
229
|
232
|
|
230
|
|
- FT_Bool instruction_trap; /* If `True', the interpreter will */
|
231
|
|
- /* exit after each instruction */
|
|
233
|
+ FT_Bool instruction_trap; /* ! If `True', the interpreter */
|
|
234
|
+ /* exits after each instruction */
|
232
|
235
|
|
233
|
236
|
TT_GraphicsState default_GS; /* graphics state resulting from */
|
234
|
237
|
/* the prep program */
|
... |
... |
@@ -245,7 +248,7 @@ FT_BEGIN_HEADER |
245
|
248
|
func_dualproj, /* current dual proj. function */
|
246
|
249
|
func_freeProj; /* current freedom proj. func */
|
247
|
250
|
|
248
|
|
- TT_Move_Func func_move; /* current point move function */
|
|
251
|
+ TT_Move_Func func_move; /* current point move function */
|
249
|
252
|
TT_Move_Func func_move_orig; /* move original position function */
|
250
|
253
|
|
251
|
254
|
TT_Cur_Ppem_Func func_cur_ppem; /* get current proj. ppem value */
|