315 {
323
324
325 FT_TRACE1((
"pfr_slot_load: glyph index %d\n", gindex ));
326
327 if ( gindex > 0 )
328 gindex--;
329
330 if ( !
face || gindex >=
face->phy_font.num_chars )
331 {
334 }
335
336
338 {
342 gindex,
346 }
347
349 {
352 }
353
354 gchar =
face->phy_font.chars + gindex;
358 gps_offset =
face->header.gps_section_offset;
359
360
362 gps_offset, gchar->gps_offset, gchar->gps_size );
363
365 {
369 FT_UInt em_metrics, em_outline;
371
372
374
375
377
378 outline->flags &= ~FT_OUTLINE_OWNER;
380
383
384
387
389 em_metrics =
face->phy_font.metrics_resolution;
390 em_outline =
face->phy_font.outline_resolution;
391
392 if ( em_metrics != em_outline )
396
399 else
401
404
405
408
409#if 0
410
411
412
413
414 {
416
417
418 font_matrix.
xx =
face->log_font.matrix[0] << 8;
419 font_matrix.
yx =
face->log_font.matrix[1] << 8;
420 font_matrix.
xy =
face->log_font.matrix[2] << 8;
421 font_matrix.
yy =
face->log_font.matrix[3] << 8;
422
424 }
425#endif
426
427
428 if ( scaling )
429 {
434
435
436
438 {
441 }
442
443
446 }
447
448
450
455 }
456
459 }
FT_BEGIN_HEADER struct FT_Glyph_Metrics_ FT_Glyph_Metrics
#define FT_LOAD_SBITS_ONLY
#define FT_LOAD_NO_BITMAP
#define FT_LOAD_BITMAP_METRICS_ONLY
FT_MulDiv(FT_Long a, FT_Long b, FT_Long c)
FT_MulFix(FT_Long a, FT_Long b)
#define FT_TRACE1(varformat)
#define FT_OUTLINE_HIGH_PRECISION
#define FT_OUTLINE_REVERSE_FILL
FT_Outline_Transform(const FT_Outline *outline, const FT_Matrix *matrix)
FT_Outline_Get_CBox(const FT_Outline *outline, FT_BBox *acbox)
smooth FT_Module_Constructor FT_Module_Destructor FT_Module_Requester FT_GLYPH_FORMAT_OUTLINE
GLsizei GLenum const GLvoid GLuint GLsizei GLfloat * metrics
pfr_glyph_load(PFR_Glyph glyph, FT_Stream stream, FT_ULong gps_offset, FT_ULong offset, FT_ULong size)
struct PFR_SizeRec_ * PFR_Size
pfr_slot_load_bitmap(PFR_Slot glyph, PFR_Size size, FT_UInt glyph_index, FT_Bool metrics_only)
FT_Fixed linearHoriAdvance
FT_Fixed linearVertAdvance