From: kramm Date: Fri, 16 Jun 2006 07:02:08 +0000 (+0000) Subject: added used_glyphs field in font usage X-Git-Tag: release-0-8-0~172 X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=commitdiff_plain;h=68c030bfb760590c72d65dd94da6b704287dcda2 added used_glyphs field in font usage --- diff --git a/lib/modules/swftext.c b/lib/modules/swftext.c index 0f203ca..47ba5b9 100644 --- a/lib/modules/swftext.c +++ b/lib/modules/swftext.c @@ -663,6 +663,7 @@ int swf_FontReduce(SWFFONT * f) font_freelayout(f); font_freeglyphnames(f); + f->use->used_glyphs= 0; for (i = 0; i < f->numchars; i++) { if(!f->use->chars[i]) { if(f->glyph2ascii) { @@ -673,6 +674,7 @@ int swf_FontReduce(SWFFONT * f) f->glyph[i].shape = 0; f->glyph[i].advance = 0; } + f->use->used_glyphs++; } else { max_glyph = i+1; } @@ -782,13 +784,11 @@ void swf_FontClearUsage(SWFFONT * f) int swf_FontUse(SWFFONT * f, U8 * s) { - if (!f->use) - swf_FontInitUsage(f); if( (!s)) return -1; while (*s) { if(*s < f->maxascii && f->ascii2glyph[*s]>=0) - f->use->chars[f->ascii2glyph[*s]] = 1; + swf_FontUseGlyph(f, f->ascii2glyph[*s]); s++; } return 0; @@ -800,6 +800,8 @@ int swf_FontUseGlyph(SWFFONT * f, int glyph) swf_FontInitUsage(f); if(glyph < 0 || glyph >= f->numchars) return -1; + if(!f->use->chars[glyph]) + f->use->used_glyphs++; f->use->chars[glyph] = 1; return 0; } diff --git a/lib/rfxswf.h b/lib/rfxswf.h index afe17a8..23fa6f6 100644 --- a/lib/rfxswf.h +++ b/lib/rfxswf.h @@ -492,6 +492,7 @@ typedef struct typedef struct _FONTUSAGE { int* chars; char is_reduced; + int used_glyphs; } FONTUSAGE; #define FONT_STYLE_BOLD 1