code=0;
for (i=0; i < (ssize_t) length; i++)
{
+ FT_Outline
+ outline;
+
/*
Render UTF-8 sequence.
*/
ft_status=FT_Get_Glyph(face->glyph,&glyph.image);
if (ft_status != 0)
continue;
- ft_status=FT_Outline_Get_BBox(&((FT_OutlineGlyph) glyph.image)->outline,
- &bounds);
+ outline=((FT_OutlineGlyph) glyph.image)->outline;
+ ft_status=FT_Outline_Get_BBox(&outline,&bounds);
if (ft_status != 0)
continue;
if ((p == draw_info->text) || (bounds.xMin < metrics->bounds.x1))
*/
annotate_info->affine.tx=glyph.origin.x/64.0;
annotate_info->affine.ty=(-glyph.origin.y/64.0);
- (void) FT_Outline_Decompose(&((FT_OutlineGlyph) glyph.image)->outline,
- &OutlineMethods,annotate_info);
+ if ((outline.n_contours > 0) && (outline.n_points > 0))
+ ft_status=FT_Outline_Decompose(&outline,&OutlineMethods,
+ annotate_info);
}
FT_Vector_Transform(&glyph.origin,&affine);
(void) FT_Glyph_Transform(glyph.image,&affine,&glyph.origin);