X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fswfcombine.c;h=9dedbf83fb408e8bfa7e6faddd007c142e92aca0;hb=ce77200a441ffa9ba65aee4308ba32daf014f74d;hp=ce578af9d89f30fbec84ab86d3c55614140055c8;hpb=93e78ef02b9918ccfa86f0e4d446e503cbec1fe1;p=swftools.git diff --git a/src/swfcombine.c b/src/swfcombine.c index ce578af..9dedbf8 100644 --- a/src/swfcombine.c +++ b/src/swfcombine.c @@ -234,7 +234,7 @@ void args_callback_usage(char*name) printf("OR: %s [-rXYov] --cat [-xysf] [(name1|#id1)=]slavefile1 .. [-xysf] [(nameN|#idN)=]slavefileN\n", name); printf("OR: %s [-rXYomlcv] --dummy [-xys] [file]\n", name); printf("\n"); - printf("-o outputfile --output explicitly specify output file. (otherwise, output.swf will be used\n"); + printf("-o outputfile --output explicitly specify output file. (otherwise, output.swf will be used)\n"); printf("-t --stack place each slave in a seperate frame (no master movie)\n"); printf("-T --stack1 place each slave in the first frame (no master movie)\n"); printf("-m --merge Don't store the slaves in Sprites/MovieClips\n"); @@ -259,14 +259,18 @@ static void makestackmaster(SWF*swf) int t; SRECT box; int fileversion = 1; + int frameRate = 256; + RGBA rgb; + rgb.r=rgb.b=rgb.g=0; memset(&box, 0, sizeof(box)); /* scan all slaves for bounding box */ - for(t=0;t=0;t--) { SWF head; int ret; int fi=open(slave_filename[t],O_RDONLY); + TAG*tag; if(fi<0 || swf_ReadSWF(fi, &head)<0) { logf(" Couldn't open/read %s.", slave_filename[t]); exit(1); @@ -276,6 +280,17 @@ static void makestackmaster(SWF*swf) slave_filename[t], head.movieSize.xmin, head.movieSize.ymin, head.movieSize.xmax, head.movieSize.ymax); + + tag = head.firstTag; + while(tag) { + if(tag->id == ST_SETBACKGROUNDCOLOR && tag->len>=3) { + rgb.r = tag->data[0]; + rgb.g = tag->data[1]; + rgb.b = tag->data[2]; + } + tag=tag->next; + } + frameRate = head.frameRate; if(head.fileVersion > fileversion) fileversion = head.fileVersion; if(!t) @@ -297,12 +312,13 @@ static void makestackmaster(SWF*swf) } memset(swf, 0, sizeof(SWF)); + swf->fileVersion = fileversion; + swf->movieSize = box; + swf->frameRate = frameRate; swf->firstTag = swf_InsertTag(0, ST_SETBACKGROUNDCOLOR); tag = swf->firstTag; - swf_SetU8(tag, 0); - swf_SetU8(tag, 0); - swf_SetU8(tag, 0); + swf_SetRGB(tag, &rgb); for(t=0;tid, rtag->len); tag = swf_InsertTag(tag, rtag->id); write_changepos(tag, rtag); - - changedepth(tag, +1); + + changedepth(tag, +2); if(tag->id == ST_SHOWFRAME) {