2717 {
2720
2721#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
2722#define IS_DEFAULT_INSTANCE ( !( FT_IS_NAMED_INSTANCE( glyph->face ) || \
2723 FT_IS_VARIATION( glyph->face ) ) )
2724#else
2725#define IS_DEFAULT_INSTANCE 1
2726#endif
2727
2728
2729 FT_TRACE1((
"TT_Load_Glyph: glyph index %d\n", glyph_index ));
2730
2731#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
2732
2733
2734 if (
size->strike_index != 0xFFFFFFFFUL &&
2737 {
2740
2741
2742 error = load_sbit_image(
size, glyph, glyph_index, load_flags );
2744 {
2745
2746
2748 {
2750
2753
2756
2757
2758
2759
2760
2761
2762
2763 if ( !
face->horz_metrics_size )
2765
2766
2768 &left_bearing,
2769 &advance_width );
2771 0,
2772 &top_bearing,
2773 &advance_height );
2774
2777
2780
2782 glyph->
metrics.horiBearingY = 0;
2784
2785 glyph->
metrics.vertBearingX = 0;
2788
2789 glyph->
format = FT_GLYPH_FORMAT_BITMAP;
2791
2794
2796 }
2797 }
2799 {
2800
2803 }
2804 else
2805 {
2807 {
2808
2814
2815
2816
2819 x_scale );
2822 y_scale );
2823 }
2824
2826 }
2827 }
2828
2829#endif
2830
2831
2833 {
2836 }
2837
2839 {
2842 }
2843
2847
2851
2852
2855 {
2856 if ( glyph->
format == FT_GLYPH_FORMAT_COMPOSITE )
2857 {
2860 }
2861 else
2862 {
2865
2866
2867
2868
2869
2872 }
2873
2874#ifdef TT_USE_BYTECODE_INTERPRETER
2875
2877 {
2879 {
2880
2882 {
2883 case 0:
2885 break;
2886 case 1:
2887
2888 break;
2889 case 4:
2892 break;
2893 case 5:
2895 break;
2896
2897 default:
2899 break;
2900 }
2901 }
2902 else
2904 }
2905
2906#endif
2907
2909 }
2910
2912
2913
2914
2915
2916
2918 size->metrics->y_ppem < 24 )
2920
2922#ifdef FT_DEBUG_LEVEL_TRACE
2924 FT_TRACE1((
" failed (error code 0x%x)\n",
2926#endif
2927
2929 }
#define FT_LOAD_SBITS_ONLY
#define FT_LOAD_NO_BITMAP
#define FT_IS_SCALABLE(face)
FT_MulFix(FT_Long a, FT_Long b)
#define FT_TRACE1(varformat)
#define FT_OUTLINE_SMART_DROPOUTS
#define FT_OUTLINE_IGNORE_DROPOUTS
#define FT_OUTLINE_INCLUDE_STUBS
#define FT_OUTLINE_HIGH_PRECISION
FT_Outline_Translate(const FT_Outline *outline, FT_Pos xOffset, FT_Pos yOffset)
smooth FT_Module_Constructor FT_Module_Destructor FT_Module_Requester FT_GLYPH_FORMAT_OUTLINE
FT_Fixed linearHoriAdvance
FT_Fixed linearVertAdvance
static void tt_loader_done(TT_Loader loader)
static FT_Error load_truetype_glyph(TT_Loader loader, FT_UInt glyph_index, FT_UInt recurse_count, FT_Bool header_only)
static FT_Error tt_loader_init(TT_Loader loader, TT_Size size, TT_GlyphSlot glyph, FT_Int32 load_flags, FT_Bool glyf_table_only)
#define IS_DEFAULT_INSTANCE
TT_Get_HMetrics(TT_Face face, FT_UInt idx, FT_Short *lsb, FT_UShort *aw)
static FT_Error compute_glyph_metrics(TT_Loader loader, FT_UInt glyph_index)
TT_Get_VMetrics(TT_Face face, FT_UInt idx, FT_Pos yMax, FT_Short *tsb, FT_UShort *ah)
struct TT_FaceRec_ * TT_Face