X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fdevices%2Fswf.c;h=3bbf8ee258d871ff535a0279c908f37a442e1c14;hb=afc32918102182e5018da54f5e1289fc9028f41b;hp=e1ca707f05e974af007c4271baa5351993825e4d;hpb=8ee2916e0f52c0afa60c7dded47e78df22a6b323;p=swftools.git diff --git a/lib/devices/swf.c b/lib/devices/swf.c index e1ca707..3bbf8ee 100644 --- a/lib/devices/swf.c +++ b/lib/devices/swf.c @@ -78,6 +78,7 @@ typedef struct _swfoutput_internal int config_enablezlib; int config_insertstoptag; int config_flashversion; + int config_reordertags; int config_splinemaxerror; int config_fontsplinemaxerror; int config_filloverlap; @@ -234,6 +235,7 @@ static swfoutput_internal* init_internal_struct() i->config_linktarget=0; i->config_internallinkfunction=0; i->config_externallinkfunction=0; + i->config_reordertags=1; i->config_linkcolor.r = i->config_linkcolor.g = i->config_linkcolor.b = 255; i->config_linkcolor.a = 0x40; @@ -1121,7 +1123,7 @@ static void endshape(gfxdevice_t*dev) changeRect(dev, i->tag, i->bboxrectpos, &i->bboxrect); - msg(" Placing shape id %d", i->shapeid); + msg(" Placing shape ID %d", i->shapeid); i->tag = swf_InsertTag(i->tag,ST_PLACEOBJECT2); MATRIX m = i->page_matrix; @@ -1231,7 +1233,8 @@ void swfoutput_finalize(gfxdevice_t*dev) i->swf->compressed = 1; } - swf_Optimize(i->swf); + if(i->config_reordertags) + swf_Optimize(i->swf); } int swfresult_save(gfxresult_t*gfx, char*filename) @@ -1658,6 +1661,7 @@ static void drawlink(gfxdevice_t*dev, ActionTAG*actions1, ActionTAG*actions2, gf } } + msg(" Placing link ID %d", buttonid); i->tag = swf_InsertTag(i->tag,ST_PLACEOBJECT2); if(posx!=0 || posy!=0) { @@ -1754,6 +1758,8 @@ int swf_setparameter(gfxdevice_t*dev, const char*name, const char*value) i->config_enablezlib = atoi(value); } else if(!strcmp(name, "bboxvars")) { i->config_bboxvars = atoi(value); + } else if(!strcmp(name, "reordertags")) { + i->config_reordertags = atoi(value); } else if(!strcmp(name, "internallinkfunction")) { i->config_internallinkfunction = strdup(value); } else if(!strcmp(name, "externallinkfunction")) { @@ -1839,10 +1845,10 @@ static CXFORM gfxcxform_to_cxform(gfxcxform_t* c) cx.r0 = (S16)(c->rr*256); cx.g0 = (S16)(c->gg*256); cx.b0 = (S16)(c->bb*256); - cx.a1 = c->t.a; - cx.r1 = c->t.r; - cx.g1 = c->t.g; - cx.b1 = c->t.b; + cx.a1 = c->ta; + cx.r1 = c->tr; + cx.g1 = c->tg; + cx.b1 = c->tb; return cx; } @@ -2000,6 +2006,7 @@ static void swf_fillbitmap(gfxdevice_t*dev, gfxline_t*line, gfximage_t*img, gfxm swf_ShapeSetEnd(i->tag); swf_ShapeFree(shape); + msg(" Placing bitmap ID %d", myshapeid); i->tag = swf_InsertTag(i->tag,ST_PLACEOBJECT2); CXFORM cxform2 = gfxcxform_to_cxform(cxform); swf_ObjectPlace(i->tag,myshapeid,getNewDepth(dev),&i->page_matrix,&cxform2,NULL); @@ -2044,6 +2051,7 @@ static void swf_startclip(gfxdevice_t*dev, gfxline_t*line) /* TODO: remember the bbox, and check all shapes against it */ + msg(" Placing clip ID %d", myshapeid); i->tag = swf_InsertTag(i->tag,ST_PLACEOBJECT2); i->cliptags[i->clippos] = i->tag; i->clipshapes[i->clippos] = myshapeid;