397 {
400#ifdef __REACTOS__
402 if (!decoder_allocated)
404
405#define decoder (*decoder_allocated)
406 {
407#else
409#endif
417
422#ifdef FT_CONFIG_OPTION_INCREMENTAL
424#endif
425
426
427#ifdef FT_CONFIG_OPTION_INCREMENTAL
428 if ( glyph_index >= (
FT_UInt)
face->root.num_glyphs &&
429 !
face->root.internal->incremental_interface )
430#else
431 if ( glyph_index >= (
FT_UInt)
face->root.num_glyphs )
432#endif
433 {
436 }
437
438 FT_TRACE1((
"T1_Load_Glyph: glyph index %d\n", glyph_index ));
439
441
444
445 if ( t1size )
446 {
449 }
450 else
451 {
454 }
455
458
462
463 glyph->
hint = hinting;
466
469 t1size,
470 t1glyph,
473 hinting,
478
479 must_finish_decoder =
TRUE;
480
482
483 decoder.num_subrs = type1->num_subrs;
485 decoder.subrs_len = type1->subrs_len;
486 decoder.subrs_hash = type1->subrs_hash;
487
490
491
493 &glyph_data,
494 &force_scaling );
497#ifdef FT_CONFIG_OPTION_INCREMENTAL
498 glyph_data_loaded = 1;
499#endif
500
501 hinting = glyph->
hint;
502 font_matrix =
decoder.font_matrix;
503 font_offset =
decoder.font_offset;
504
505
507
508 must_finish_decoder =
FALSE;
509
510
511
512
514 {
517
518
519
521 {
523
524
525 t1glyph->
metrics.horiBearingX =
529
530 internal->glyph_matrix = font_matrix;
531 internal->glyph_delta = font_offset;
533 }
534 else
535 {
538
539
540
546
548 {
549
550 metrics->vertAdvance = (
face->type1.font_bbox.yMax -
551 face->type1.font_bbox.yMin ) >> 16;
553 }
554 else
555 {
560 }
561
563
566
567#if 1
568
569 if ( font_matrix.
xx != 0x10000L || font_matrix.
yy != 0x10000L ||
570 font_matrix.
xy != 0 || font_matrix.
yx != 0 )
571 {
573
578 }
579
580 if ( font_offset.
x || font_offset.
y )
581 {
585
586 metrics->horiAdvance += font_offset.
x;
587 metrics->vertAdvance += font_offset.
y;
588 }
589#endif
590
592 {
593
599
600
601
602 if ( !hinting || !
decoder.builder.hints_funcs )
603 for (
n =
cur->n_points;
n > 0;
n--,
vec++ )
604 {
607 }
608
609
612 }
613
614
616
619
622
624 {
625
628 }
629 }
630
631
632
635 }
636
637
639
640#ifdef FT_CONFIG_OPTION_INCREMENTAL
641 if ( glyph_data_loaded &&
face->root.internal->incremental_interface )
642 {
643 face->root.internal->incremental_interface->funcs->free_glyph_data(
644 face->root.internal->incremental_interface->object,
645 &glyph_data );
646
647
648
651 }
652#endif
653
654 if ( must_finish_decoder )
656
657#ifdef __REACTOS__
658 free(decoder_allocated);
659#undef decoder
660 }
661#endif
663 }
ios_base &_STLP_CALL internal(ios_base &__s)
#define FT_LOAD_TARGET_MODE(x)
FT_BEGIN_HEADER struct FT_Glyph_Metrics_ FT_Glyph_Metrics
#define FT_LOAD_NO_RECURSE
#define FT_LOAD_NO_HINTING
FT_MulFix(FT_Long a, FT_Long b)
#define FT_TRACE1(varformat)
#define FT_OUTLINE_HIGH_PRECISION
#define FT_OUTLINE_REVERSE_FILL
ft_synthesize_vertical_metrics(FT_Glyph_Metrics *metrics, FT_Pos advance)
FT_Outline_Translate(const FT_Outline *outline, FT_Pos xOffset, FT_Pos yOffset)
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
FT_BEGIN_HEADER typedef unsigned char FT_Bool
GLsizei GLenum const GLvoid GLuint GLsizei GLfloat * metrics
FT_Slot_Internal internal
FT_Fixed linearHoriAdvance
FT_Fixed linearVertAdvance
FT_Bool glyph_transformed
static FT_Error T1_Parse_Glyph_And_Get_Char_String(T1_Decoder decoder, FT_UInt glyph_index, FT_Data *char_string, FT_Bool *force_scaling)
struct T1_GlyphSlotRec_ * T1_GlyphSlot