|
|
|
@ -346,6 +346,23 @@ hb_ft_get_glyph_v_origin (hb_font_t *font, |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static hb_position_t |
|
|
|
|
hb_ft_get_glyph_h_kerning (hb_font_t *font, |
|
|
|
|
void *font_data, |
|
|
|
|
hb_codepoint_t left_glyph, |
|
|
|
|
hb_codepoint_t right_glyph, |
|
|
|
|
void *user_data HB_UNUSED) |
|
|
|
|
{ |
|
|
|
|
const hb_ft_font_t *ft_font = (const hb_ft_font_t *) font_data; |
|
|
|
|
FT_Vector kerningv; |
|
|
|
|
|
|
|
|
|
FT_Kerning_Mode mode = font->x_ppem ? FT_KERNING_DEFAULT : FT_KERNING_UNFITTED; |
|
|
|
|
if (FT_Get_Kerning (ft_font->ft_face, left_glyph, right_glyph, mode, &kerningv)) |
|
|
|
|
return 0; |
|
|
|
|
|
|
|
|
|
return kerningv.x; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static hb_bool_t |
|
|
|
|
hb_ft_get_glyph_extents (hb_font_t *font, |
|
|
|
|
void *font_data, |
|
|
|
@ -497,6 +514,8 @@ static struct hb_ft_font_funcs_lazy_loader_t : hb_font_funcs_lazy_loader_t<hb_ft |
|
|
|
|
hb_font_funcs_set_glyph_v_advance_func (funcs, hb_ft_get_glyph_v_advance, nullptr, nullptr); |
|
|
|
|
//hb_font_funcs_set_glyph_h_origin_func (funcs, hb_ft_get_glyph_h_origin, nullptr, nullptr);
|
|
|
|
|
hb_font_funcs_set_glyph_v_origin_func (funcs, hb_ft_get_glyph_v_origin, nullptr, nullptr); |
|
|
|
|
hb_font_funcs_set_glyph_h_kerning_func (funcs, hb_ft_get_glyph_h_kerning, nullptr, nullptr); |
|
|
|
|
//hb_font_funcs_set_glyph_v_kerning_func (funcs, hb_ft_get_glyph_v_kerning, nullptr, nullptr);
|
|
|
|
|
hb_font_funcs_set_glyph_extents_func (funcs, hb_ft_get_glyph_extents, nullptr, nullptr); |
|
|
|
|
hb_font_funcs_set_glyph_contour_point_func (funcs, hb_ft_get_glyph_contour_point, nullptr, nullptr); |
|
|
|
|
hb_font_funcs_set_glyph_name_func (funcs, hb_ft_get_glyph_name, nullptr, nullptr); |
|
|
|
|