- gfxdrawer_target_gfxline(&draw);
-
- //error = FT_Outline_Decompose(&face->glyph->outline, &outline_functions, &draw);
- error = FT_Outline_Decompose(&face->glyph->outline, &outline_functions, &draw);
-
- if(error) {
- fprintf(stderr, "Couldn't decompose glyph %d\n", t);
- gfxline_free((gfxline_t*)draw.result(&draw));
- continue;
+ if(!omit) {
+ gfxdrawer_target_gfxline(&draw);
+ info.draw = &draw;
+ info.quality = quality;
+
+ //error = FT_Outline_Decompose(&face->glyph->outline, &outline_functions, &info);
+ error = FT_Outline_Decompose(&face->glyph->outline, &outline_functions, &info);
+
+ if(error) {
+ fprintf(stderr, "Couldn't decompose glyph %d\n", t);
+ gfxline_free((gfxline_t*)draw.result(&draw));
+ FT_Done_Glyph(glyph);
+ omit = 1;
+ } else {
+ font->glyphs[font->num_glyphs].advance = glyph->advance.x*20/65536;
+ font->glyphs[font->num_glyphs].line = (gfxline_t*)draw.result(&draw);
+ }