Home | History | Annotate | Download | only in truetype

Lines Matching refs:face

53   /*    face   :: A handle to the target face object.                      */
62 tt_face_load_loca( TT_Face face,
71 error = face->goto_table( face, TTAG_glyf, stream, &face->glyf_len );
76 face->glyf_len = 0;
81 error = face->goto_table( face, TTAG_loca, stream, &table_len );
88 if ( face->header.Index_To_Loc_Format != 0 )
98 face->num_locations = table_len >> shift;
110 face->num_locations = table_len >> shift;
113 if ( face->num_locations != (FT_ULong)face->root.num_glyphs )
116 face->num_locations, face->root.num_glyphs ));
119 if ( face->num_locations < (FT_ULong)face->root.num_glyphs )
121 FT_Long new_loca_len = (FT_Long)face->root.num_glyphs << shift;
123 TT_Table entry = face->dir_tables;
124 TT_Table limit = entry + face->num_tables;
142 face->num_locations = face->root.num_glyphs;
146 face->num_locations ));
155 if ( FT_FRAME_EXTRACT( table_len, face->glyph_locations ) )
166 tt_face_get_location( TT_Face face,
177 if ( gindex < face->num_locations )
179 if ( face->header.Index_To_Loc_Format != 0 )
181 p = face->glyph_locations + gindex * 4;
182 p_limit = face->glyph_locations + face->num_locations * 4;
192 p = face->glyph_locations + gindex * 2;
193 p_limit = face->glyph_locations + face->num_locations * 2;
217 *asize = (FT_UInt)( face->glyf_len - pos1 );
224 tt_face_done_loca( TT_Face face )
226 FT_Stream stream = face->root.stream;
229 FT_FRAME_RELEASE( face->glyph_locations );
230 face->num_locations = 0;
241 /* Load the control value table into a face object. */
244 /* face :: A handle to the target face object. */
253 tt_face_load_cvt( TT_Face face,
265 error = face->goto_table( face, TTAG_cvt, stream, &table_len );
270 face->cvt_size = 0;
271 face->cvt = NULL;
277 face->cvt_size = table_len / 2;
279 if ( FT_NEW_ARRAY( face->cvt, face->cvt_size ) )
282 if ( FT_FRAME_ENTER( face->cvt_size * 2L ) )
286 FT_Short* cur = face->cvt;
287 FT_Short* limit = cur + face->cvt_size;
298 if ( face->doblend )
299 error = tt_face_vary_cvt( face, stream );
307 FT_UNUSED( face );
325 /* face :: A handle to the target face object. */
334 tt_face_load_fpgm( TT_Face face,
346 error = face->goto_table( face, TTAG_fpgm, stream, &table_len );
349 face->font_program = NULL;
350 face->font_program_size = 0;
357 face->font_program_size = table_len;
358 if ( FT_FRAME_EXTRACT( table_len, face->font_program ) )
361 FT_TRACE2(( "loaded, %12d bytes\n", face->font_program_size ));
369 FT_UNUSED( face );
387 /* face :: A handle to the target face object. */
396 tt_face_load_prep( TT_Face face,
407 error = face->goto_table( face, TTAG_prep, stream, &table_len );
410 face->cvt_program = NULL;
411 face->cvt_program_size = 0;
418 face->cvt_program_size = table_len;
419 if ( FT_FRAME_EXTRACT( table_len, face->cvt_program ) )
422 FT_TRACE2(( "loaded, %12d bytes\n", face->cvt_program_size ));
430 FT_UNUSED( face );
445 /* Load the `hdmx' table into the face object. */
448 /* face :: A handle to the target face object. */
457 tt_face_load_hdmx( TT_Face face,
469 error = face->goto_table( face
473 if ( FT_FRAME_EXTRACT( table_size, face->hdmx_table ) )
476 p = face->hdmx_table;
505 if ( FT_NEW_ARRAY( face->hdmx_record_sizes, num_records ) )
513 face->hdmx_record_sizes[nn] = p[0];
517 face->hdmx_record_count = nn;
518 face->hdmx_table_size = table_size;
519 face->hdmx_record_size = record_size;
525 FT_FRAME_RELEASE( face->hdmx_table );
526 face->hdmx_table_size = 0;
532 tt_face_free_hdmx( TT_Face face )
534 FT_Stream stream = face->root.stream;
538 FT_FREE( face->hdmx_record_sizes );
539 FT_FRAME_RELEASE( face->hdmx_table );
549 tt_face_get_device_metrics( TT_Face face,
555 FT_ULong record_size = face->hdmx_record_size;
556 FT_Byte* record = face->hdmx_table + 8;
559 for ( nn = 0; nn < face->hdmx_record_count; nn++ )
560 if ( face->hdmx_record_sizes[nn] == ppem )