X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fexample%2Fdumpfont.c;h=09985faa14c13acc060ed1262fd430e3559d5390;hb=0138bdb91fabf3bcda3c8f04a3ee5554f916a22b;hp=986f8531c036b1dc600e1244f8560f0c9d7d92ad;hpb=e028a6ae98c3b02bb56fab55d6bbe93905329ed5;p=swftools.git diff --git a/lib/example/dumpfont.c b/lib/example/dumpfont.c index 986f853..09985fa 100644 --- a/lib/example/dumpfont.c +++ b/lib/example/dumpfont.c @@ -25,7 +25,7 @@ #include #include "../rfxswf.h" -#define PRINTABLE(a) ((a>='A')&&(a<='Z'))||((a>='a')&&(a<='z'))||((a>='0')&&(a<='9')) +#define PRINTABLE(a) (((a>0x20)&&(a<0xff)&&(a!='\\'))?a:0x20) SWF swf; @@ -62,19 +62,30 @@ void DumpFont(SWFFONT * f,char * name) printf(" f->id = id;\n"); printf(" f->version = %d;\n", f->version); printf(" f->name = strdup(\"%s\");\n",f->name); - printf(" f->flags = 0x%02x;\n",f->flags); + printf(" f->style = 0x%02x;\n",f->style); + printf(" f->encoding = 0x%02x;\n",f->encoding); printf(" f->numchars = %d;\n",f->numchars); printf(" f->maxascii = %d;\n",f->maxascii); printf(" f->glyph = (SWFGLYPH*)malloc(sizeof(SWFGLYPH)*%d);\n",f->numchars); printf(" f->glyph2ascii = (U16*)malloc(sizeof(U16)*%d);\n",f->numchars); printf(" f->ascii2glyph = (int*)malloc(sizeof(int)*%d);\n",f->maxascii); - printf(" memset(f->ascii2glyph, -1, sizeof(int)*%d)\n\n", f->maxascii); + printf(" memset(f->ascii2glyph, -1, sizeof(int)*%d);\n\n", f->maxascii); + if(f->layout) { + printf(" f->layout = (SWFLAYOUT*)malloc(sizeof(SWFLAYOUT));\n"); + printf(" f->layout->ascent = %d;\n", f->layout->ascent); + printf(" f->layout->descent = %d;\n", f->layout->descent); + printf(" f->layout->leading = %d;\n", f->layout->leading); + printf(" f->layout->kerningcount = 0;\n"); + printf(" f->layout->kerning = 0;\n"); + printf(" f->layout->bounds = (SRECT*)malloc(sizeof(SRECT)*%d);\n", f->numchars); + printf(" memset(f->layout->bounds, 0, sizeof(SRECT)*%d);\n\n", f->numchars); + } for (i=0;inumchars;i++) if (f->glyph[i].shape) - { printf(" addGlyph(f,%3i, 0x%02x,%4i, &Glyphs_%s[0x%04x],%4i); // %c\n", + { printf(" addGlyph(f,%3i, 0x%03x,%4i, &Glyphs_%s[0x%04x],%4i); // %c\n", i, f->glyph2ascii[i], f->glyph[i].advance, name, gpos[i], - f->glyph[i].shape->bitlen,(i!='\\')?i:0x20); + f->glyph[i].shape->bitlen,PRINTABLE(f->glyph2ascii[i])); } printf(" return f;\n}\n\n");