glyph = font->val->face->glyph;  _install_font_scale (sc, font->val->face);
glyph = face->glyph;
_cairo_ft_font_glyph_path (void				*abstract_font,			   cairo_font_scale_t 		*sc,                           cairo_glyph_t		*glyphs,                            int				num_glyphs,                           cairo_path_t			*path){    int i;    cairo_ft_font_t *font = abstract_font;    FT_GlyphSlot glyph;    FT_Error error;    FT_Outline_Funcs outline_funcs = {	_move_to,	_line_to,	_conic_to,	_cubic_to,	0, /* shift */	0, /* delta */    };    glyph = font->val->face->glyph;    _install_font_scale (sc, font->val->face);    for (i = 0; i < num_glyphs; i++)    {	FT_Matrix invert_y = {	    DOUBLE_TO_16_16 (1.0), 0,	    0, DOUBLE_TO_16_16 (-1.0),	};	error = FT_Load_Glyph (font->val->face, glyphs[i].index, FT_LOAD_DEFAULT);	/* XXX: What to do in this error case? */	if (error)	    continue;	/* XXX: Do we want to support bitmap fonts here? */	if (glyph->format == ft_glyph_format_bitmap)	    continue;	/* Font glyphs have an inverted Y axis compared to cairo. */	FT_Outline_Transform (&glyph->outline, &invert_y);	FT_Outline_Translate (&glyph->outline,			      DOUBLE_TO_26_6(glyphs[i].x),			      DOUBLE_TO_26_6(glyphs[i].y));	FT_Outline_Decompose (&glyph->outline, &outline_funcs, path);    }    _cairo_path_close_path (path);        return CAIRO_STATUS_SUCCESS;}