X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fswfdump.c;h=12c653d04a9584ade0ae9c5843711b8e36b06882;hb=0983af6ba15f2969fa6e0ec068ffe34635ea0c88;hp=0020661b6d19580d8410d5fb598952ae4e6622de;hpb=8f05e89aea4b0bf754a87d32a638dcef9086e83e;p=swftools.git diff --git a/src/swfdump.c b/src/swfdump.c index 0020661..12c653d 100644 --- a/src/swfdump.c +++ b/src/swfdump.c @@ -375,9 +375,9 @@ void dumpFont(TAG*tag, char*prefix) swf_FontFree(font); } -SWF swf; -int fontnum = 0; -SWFFONT**fonts; +static SWF swf; +static int fontnum = 0; +static SWFFONT**fonts; void textcallback(void*self, int*glyphs, int*ypos, int nr, int fontid, int fontsize, int startx, int starty, RGBA*color) { @@ -415,10 +415,24 @@ void textcallback(void*self, int*glyphs, int*ypos, int nr, int fontid, int fonts printf("\n"); } -void handleText(TAG*tag) +void handleText(TAG*tag, char*prefix) { printf("\n"); - swf_ParseDefineText(tag,textcallback, 0); + if(placements) { + swf_SetTagPos(tag, 0); + swf_GetU16(tag); + swf_GetRect(tag, 0); + swf_ResetReadBits(tag); + MATRIX m; + swf_GetMatrix(tag, &m); + printf("%s| Matrix\n",prefix); + printf("%s| %5.3f %5.3f %6.2f\n", prefix, m.sx/65536.0, m.r1/65536.0, m.tx/20.0); + printf("%s| %5.3f %5.3f %6.2f\n", prefix, m.r0/65536.0, m.sy/65536.0, m.ty/20.0); + swf_SetTagPos(tag, 0); + } + if(showtext) { + swf_ParseDefineText(tag,textcallback, 0); + } } void handleDefineSound(TAG*tag) @@ -954,7 +968,7 @@ void dumperror(const char* format, ...) va_list arglist; va_start(arglist, format); - vsprintf(buf, format, arglist); + vsnprintf(buf, sizeof(buf)-1, format, arglist); va_end(arglist); if(!html && !xy) @@ -1220,10 +1234,12 @@ int main (int argc,char ** argv) else if(tag->id == ST_FILEATTRIBUTES) { swf_SetTagPos(tag, 0); U32 flags = swf_GetU32(tag); - if(flags&1) printf(" usenetwork"); - if(flags&8) printf(" as3"); - if(flags&16) printf(" symbolclass"); - if(flags&~(1|8|16)) + if(flags&FILEATTRIBUTE_USENETWORK) printf(" usenetwork"); + if(flags&FILEATTRIBUTE_AS3) printf(" as3"); + if(flags&FILEATTRIBUTE_SYMBOLCLASS) printf(" symbolclass"); + if(flags&FILEATTRIBUTE_USEHARDWAREGPU) printf(" hardware-gpu"); + if(flags&FILEATTRIBUTE_USEACCELERATEDBLIT) printf(" accelerated-blit"); + if(flags&~(1|8|16|32|64)) printf(" flags=%02x", flags); } else if(tag->id == ST_DOABC) { @@ -1361,10 +1377,7 @@ int main (int argc,char ** argv) printf(" URL: %s\n", s); } else if(tag->id == ST_DEFINETEXT || tag->id == ST_DEFINETEXT2) { - if(showtext) - handleText(tag); - else - printf("\n"); + handleText(tag, myprefix); } else if(tag->id == ST_DEFINESCALINGGRID) { U16 id = swf_GetU16(tag);