X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=blobdiff_plain;f=lib%2Fgfxfont.c;h=549e50d58931d3272f6d1c50bfaa9c703a5947a5;hp=fa75059b4d9cacbe27401445f48a489129ae538e;hb=879d0eec420fe0fd5ddcd56c8fe62b82a6744edd;hpb=c1c865b58f4fbc9c97f92110306e277665ad9c81 diff --git a/lib/gfxfont.c b/lib/gfxfont.c index fa75059..549e50d 100644 --- a/lib/gfxfont.c +++ b/lib/gfxfont.c @@ -22,6 +22,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include +#include +#include #include "../config.h" #include "gfxdevice.h" #include "gfxtools.h" @@ -143,7 +145,7 @@ static int errorno = 0; //#define DEBUG 1 -gfxfont_t* gfxfont_load(char*id, char*filename, unsigned int flags, double quality) +gfxfont_t* gfxfont_load(const char*id, const char*filename, unsigned int flags, double quality) { FT_Face face; FT_Error error; @@ -492,7 +494,7 @@ gfxfont_t* gfxfont_load(char*id, char*filename, unsigned int flags, double quali } #else -gfxfont_t* gfxfont_load(char*id, char*filename, unsigned int flags, double quality) +gfxfont_t* gfxfont_load(const char*id, const char*filename, unsigned int flags, double quality) { fprintf(stderr, "No freetype support compiled in! Not able to load %s\n", filename); return 0; @@ -557,7 +559,22 @@ void gfxfont_fix_unicode(gfxfont_t*font) max = u; } free(used); - + if(font->unicode2glyph) { + free(font->unicode2glyph); + } + font->unicode2glyph = 0; + font->max_unicode = 0; +} + +void gfxfont_add_unicode2glyph(gfxfont_t*font) +{ + int t; + int max = 0; + for(t=0;tnum_glyphs;t++) { + int u = font->glyphs[t].unicode; + if(u > max) + max = u; + } if(!font->unicode2glyph) { /* (re)generate unicode2glyph-to-glyph mapping table by reverse mapping the glyph unicode2glyph's indexes into the mapping table. For collisions,