Copyright (c) 2001 Rainer Böhme <rfxswf@reflex-studio.de>
- This file is distributed under the GPL, see file COPYING for details
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
-*/
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
void swf_DumpHeader(FILE * f,SWF * swf)
{ if (!f) f = stderr;
void swf_DumpMatrix(FILE * f,MATRIX * m)
{ if (!f) f = stderr;
- fprintf(f,"[%08x][%08x]\n",m->sx,m->r1);
+ /*fprintf(f,"[%08x][%08x]\n",m->sx,m->r1);
fprintf(f,"[%08x][%08x]\n",m->r0,m->sy);
- fprintf(f," %08x, %08x\n",m->tx,m->ty);
+ fprintf(f," %08x, %08x\n",m->tx,m->ty);*/
+ fprintf(f,"[%08x][%08x] %5.2f %5.2f %5.2f\n",m->sx,m->r1, m->sx/65536.0,m->r1/65536.0, m->tx/20.0);
+ fprintf(f,"[%08x][%08x] %5.2f %5.2f %5.2f\n",m->r0,m->sy, m->r0/65536.0,m->sy/65536.0, m->ty/20.0 );
+ fprintf(f," %08x, %08x \n",m->tx,m->ty);
+}
+
+void swf_DumpGradient(FILE * f,GRADIENT * g)
+{ if (!f) f = stderr;
+ fprintf(f, "%d gradient steps\n", g->num);
+ int t;
+ for(t=0;t<g->num;t++) {
+ RGBA c = g->rgba[t];
+ fprintf(f, "%d) %02x%02x%02x%02x at %d\n", t, c.r,c.g,c.b,c.a, g->ratios[t]);
+ }
}
void swf_DumpTag(FILE * f,TAG * t)
fprintf(f,"\n");
}
+void swf_DumpSWF(FILE * f, SWF*swf)
+{
+ TAG* tag = swf->firstTag;
+ fprintf(f, "vvvvvvvvvvvvvvvvvvvvv\n");
+ while(tag) {
+ printf("%8d %s\n", tag->len, swf_TagGetName(tag));
+ tag = tag->next;
+ }
+ fprintf(f, "^^^^^^^^^^^^^^^^^^^^^\n");
+}
+
void swf_DumpFont(SWFFONT * font)
{
printf("ID: %d\n", font->id);
printf("Version: %d\n", font->version);
printf("name: %s\n", font->name);
printf("characters: %d\n", font->numchars);
+ printf("biggest mapped ascii value: %d\n", font->maxascii);
printf("layout: %s\n", font->layout?"yes":"no");
if(font->layout)
{
printf(" kerning records:%d\n", font->layout->kerningcount);
printf(" kerning records: (not shown)\n");
}
+ printf("style: %d\n", font->style);
+ printf("encoding: %d\n", font->encoding);
+ printf("language: %d\n", font->language);
+}
+
+void swf_DumpShape(SHAPE2*shape2)
+{
+ SHAPELINE*l = shape2->lines;
+ while(l) {
+ if(l->type == moveTo) {
+ //printf("fill %d/%d line %d\n", l->fillstyle0, l->fillstyle1, l->linestyle);
+ printf("moveTo %.2f,%.2f (fill0:%d fill1:%d line:%d)\n", l->x/20.0, l->y/20.0, l->fillstyle0, l->fillstyle1, l->linestyle);
+ }
+ if(l->type == lineTo) {
+ //printf("fill %d/%d line %d\n", l->fillstyle0, l->fillstyle1, l->linestyle);
+ printf("lineTo %.2f,%.2f (fill0:%d fill1:%d line:%d)\n", l->x/20.0, l->y/20.0, l->fillstyle0, l->fillstyle1, l->linestyle);
+ }
+ if(l->type == splineTo) {
+ //printf("fill %d/%d line %d\n", l->fillstyle0, l->fillstyle1, l->linestyle);
+ printf("splineTo %.2f,%.2f %.2f,%.2f (fill0:%d fill1:%d line:%d)\n", l->sx/20.0, l->sy/20.0, l->x/20.0, l->y/20.0, l->fillstyle0, l->fillstyle1, l->linestyle);
+ }
+ l = l->next;
+ }
}
char* swf_TagGetName(TAG*tag)
return "IMPORTASSETS";
case ST_ENABLEDEBUGGER:
return "ENABLEDEBUGGER";
- case ST_REFLEX:
- return "REFLEX";
case ST_DOINITACTION:
return "DOINITACTION";
+ case ST_DEFINEMOVIE:
+ return "DEFINEMOVIE";
case ST_DEFINEVIDEOSTREAM:
return "DEFINEVIDEOSTREAM";
case ST_VIDEOFRAME:
return "VIDEOFRAME";
case ST_DEFINEFONTINFO2:
return "DEFINEFONTINFO2";
+ case ST_FILEATTRIBUTES:
+ return "FILEATTRIBUTES";
+ case ST_IMPORTASSETS2:
+ return "IMPORTASSETS2";
+ case ST_DEFINESCALINGGRID:
+ return "DEFINESCALINGGRID";
+ case ST_DEFINESHAPE4:
+ return "DEFINESHAPE4";
+ case ST_DEFINEFONT3:
+ return "DEFINEFONT3";
+ case ST_DEFINEFONTALIGNZONES:
+ return "DEFINEFONTALIGNZONES";
+ case ST_CSMTEXTSETTINGS:
+ return "CSMTEXTSETTINGS";
case ST_FREEALL:
return "FREEALL";
case ST_MX4:
return "MX4";
+ case ST_SCRIPTLIMITS:
+ return "SCRIPTLIMITS";
+ case ST_SETTABINDEX:
+ return "SETTABINDEX";
+ case ST_ENABLEDEBUGGER2:
+ return "ENABLEDEBUGGER2";
+ case ST_PLACEOBJECT3:
+ return "PLACEOBJECT3";
+ case ST_METADATA:
+ return "METADATA";
+
+ case ST_REFLEX:
+ return "REFLEX";
+ case ST_GLYPHNAMES:
+ return "GLYPHNAMES";
}
return 0;
}