2811 {
2814
2815
2816 FT_TRACE1((
"TT_Load_Glyph: glyph index %d\n", glyph_index ));
2817
2818#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
2819
2820
2821 if (
size->strike_index != 0xFFFFFFFFUL &&
2824 {
2827
2828
2829 error = load_sbit_image(
size, glyph, glyph_index, load_flags );
2831 {
2832
2833
2835 {
2837
2840
2843
2844
2845
2846
2847
2848
2849
2850 if ( !
face->horz_metrics_size )
2852
2853
2855 &left_bearing,
2856 &advance_width );
2858 0,
2859 &top_bearing,
2860 &advance_height );
2861
2864
2867
2869 glyph->
metrics.horiBearingY = 0;
2871
2872 glyph->
metrics.vertBearingX = 0;
2875
2876 glyph->
format = FT_GLYPH_FORMAT_BITMAP;
2878
2881
2883 }
2884 }
2886 {
2887
2890 }
2891 else
2892 {
2894 {
2895
2901
2902
2903
2906 x_scale );
2909 y_scale );
2910 }
2911
2913 }
2914 }
2915
2916#endif
2917
2918
2920 {
2923 }
2924
2926 {
2929 }
2930
2934
2935 glyph->
format = FT_GLYPH_FORMAT_OUTLINE;
2938
2939
2942 {
2943 if ( glyph->
format == FT_GLYPH_FORMAT_COMPOSITE )
2944 {
2947 }
2948 else
2949 {
2952
2953
2954
2955
2956
2959 }
2960
2961#ifdef TT_USE_BYTECODE_INTERPRETER
2962
2964 {
2966 {
2967
2969 {
2970 case 0:
2972 break;
2973 case 1:
2974
2975 break;
2976 case 4:
2979 break;
2980 case 5:
2982 break;
2983
2984 default:
2986 break;
2987 }
2988 }
2989 else
2991 }
2992
2993#endif
2994
2996 }
2997
2998
2999
3000
3001
3003 size->metrics->y_ppem < 24 )
3005
3006 FT_TRACE1((
" subglyphs = %u, contours = %hd, points = %hd,"
3007 " flags = 0x%.3x\n",
3012
3014
3016#ifdef FT_DEBUG_LEVEL_TRACE
3018 FT_TRACE1((
" failed (error code 0x%x)\n",
3020#endif
3021
3023 }
#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)
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)
#define IS_DEFAULT_INSTANCE(_face)
static FT_Error tt_loader_init(TT_Loader loader, TT_Size size, TT_GlyphSlot glyph, FT_Int32 load_flags, FT_Bool glyf_table_only)
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