Home | History | Annotate | Download | only in autofit

Lines Matching refs:loader

26   af_loader_init( AF_Loader  loader,
29 FT_ZERO( loader );
31 af_glyph_hints_init( &loader->hints, memory );
33 _af_debug_hints = &loader->hints;
35 return FT_GlyphLoader_New( memory, &loader->gloader );
40 af_loader_reset( AF_Loader loader,
46 loader->face = face;
47 loader->globals = (AF_FaceGlobals)face->autohint.data;
49 FT_GlyphLoader_Rewind( loader->gloader );
51 if ( loader->globals == NULL )
53 error = af_face_globals_new( face, &loader->globals );
57 (FT_Pointer)loader->globals;
68 af_loader_done( AF_Loader loader )
70 af_glyph_hints_done( &loader->hints );
72 loader->face = NULL;
73 loader->globals = NULL;
78 FT_GlyphLoader_Done( loader->gloader );
79 loader->gloader = NULL;
84 af_loader_load_g( AF_Loader loader,
91 FT_Face face = loader->face;
92 FT_GlyphLoader gloader = loader->gloader;
93 AF_ScriptMetrics metrics = loader->metrics;
94 AF_GlyphHints hints = &loader->hints;
103 loader->transformed = internal->glyph_transformed;
104 if ( loader->transformed )
109 loader->trans_matrix = internal->glyph_matrix;
110 loader->trans_delta = internal->glyph_delta;
112 inverse = loader->trans_matrix;
114 FT_Vector_Transform( &loader->trans_delta, &inverse );
125 if ( loader->transformed )
127 loader->trans_delta.x,
128 loader->trans_delta.y );
130 /* copy the outline points in the loader's current */
155 loader->pp1.x = hints->x_delta;
156 loader->pp1.y = hints->y_delta;
157 loader->pp2.x = FT_MulFix( slot->metrics.horiAdvance,
159 loader->pp2.y = hints->y_delta;
186 old_rsb = loader->pp2.x - edge2->opos;
205 loader->pp1.x = FT_PIX_ROUND( pp1x_uh );
206 loader->pp2.x = FT_PIX_ROUND( pp2x_uh );
208 if ( loader->pp1.x >= new_lsb && old_lsb > 0 )
209 loader->pp1.x -= 64;
211 if ( loader->pp2.x <= edge2->pos && old_rsb > 0 )
212 loader->pp2.x += 64;
214 slot->lsb_delta = loader->pp1.x - pp1x_uh;
215 slot->rsb_delta = loader->pp2.x - pp2x_uh;
219 FT_Pos pp1x = loader->pp1.x;
220 FT_Pos pp2x = loader->pp2.x;
223 loader->pp1.x = FT_PIX_ROUND( pp1x );
224 loader->pp2.x = FT_PIX_ROUND( pp2x );
226 slot->lsb_delta = loader->pp1.x - pp1x;
227 slot->rsb_delta = loader->pp2.x - pp2x;
232 FT_Pos pp1x = loader->pp1.x;
233 FT_Pos pp2x = loader->pp2.x;
236 loader->pp1.x = FT_PIX_ROUND( pp1x + hints->xmin_delta );
237 loader->pp2.x = FT_PIX_ROUND( pp2x + hints->xmax_delta );
239 slot->lsb_delta = loader->pp1.x - pp1x;
240 slot->rsb_delta = loader->pp2.x - pp2x;
243 /* good, we simply add the glyph to our loader's base */
256 /* first of all, copy the subglyph descriptors in the glyph loader */
281 pp1 = loader->pp1;
282 pp2 = loader->pp2;
286 error = af_loader_load_g( loader, scaler, subglyph->index,
296 pp1 = loader->pp1;
297 pp2 = loader->pp2;
301 loader->pp1 = pp1;
302 loader->pp2 = pp2;
390 if ( loader->transformed )
392 FT_Outline_Transform( &gloader->base.outline, &loader->trans_matrix );
393 FT_Vector_Transform( &vvector, &loader->trans_matrix );
398 if ( loader->pp1.x )
399 FT_Outline_Translate( &gloader->base.outline, -loader->pp1.x, 0 );
421 slot->metrics.horiAdvance = loader->pp2.x - loader->pp1.x;
427 ( af_face_globals_is_digit( loader->globals, glyph_index ) &&
442 slot->metrics.horiAdvance = loader->pp2.x - loader->pp1.x;
453 FT_GlyphLoader_Rewind( internal->loader );
454 error = FT_GlyphLoader_CopyPoints( internal->loader, gloader );
458 slot->outline = internal->loader->base.outline;
472 af_loader_load_glyph( AF_Loader loader,
496 error = af_loader_reset( loader, face );
509 error = af_face_globals_get_metrics( loader->globals, gindex,
513 loader->metrics = metrics;
525 error = metrics->clazz->script_hints_init( &loader->hints,
531 error = af_loader_load_g( loader, &scaler, gindex, load_flags, 0 );