From c5b1bb0430a8f12e96f17ee55db06c277cc63629 Mon Sep 17 00:00:00 2001 From: Marisa the Magician Date: Thu, 22 Sep 2022 18:02:15 +0200 Subject: [PATCH] Use advance.x for estimating cell width if linearHoriAdvance is zero. --- mkfont.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mkfont.c b/mkfont.c index 9611d01..c5c2f33 100644 --- a/mkfont.c +++ b/mkfont.c @@ -456,8 +456,8 @@ int main( int argc, char **argv ) if ( !glyph || FT_Load_Glyph(fnt,glyph,LOADFLAGS) ) continue; FT_Render_Glyph(fnt->glyph,RENDERMODE); int adv = fnt->glyph->linearHoriAdvance>>16; - int gw = fnt->glyph->bitmap.width+fnt->glyph->bitmap_left; - if ( gw > adv ) adv = gw; + int adv2 = fnt->glyph->advance.x>>6; + if ( !adv ) adv = adv2; if ( (adv+rightshift) > w ) w = adv+rightshift; } fprintf(stderr,"info: max cell size is %dx%d.\n",w,h); @@ -487,6 +487,8 @@ int main( int argc, char **argv ) { // readjust cell width (but not height) for this character int adv = fnt->glyph->linearHoriAdvance>>16; + int adv2 = fnt->glyph->advance.x>>6; + if ( !adv ) adv = adv2; w = adv+rightshift; iw = w+((gradient&4)?2:1); }