X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fmodules%2Fswftools.c;h=58962e1e6ff8746e3d79d6f13b2bf2c3fa9ac15c;hb=c134f47d8a8d3437b14d2aed283821635d013e05;hp=c33ba56f27b5267b43e91b32a90c3d9d10311f96;hpb=bd3501c4b3d1368e05a958af37f8fe5e55b35638;p=swftools.git diff --git a/lib/modules/swftools.c b/lib/modules/swftools.c index c33ba56..58962e1 100644 --- a/lib/modules/swftools.c +++ b/lib/modules/swftools.c @@ -42,13 +42,14 @@ MATRIX * swf_MatrixJoin(MATRIX * d,MATRIX * s1,MATRIX * s2) if (!s1) return (s2)?(MATRIX *)memcpy(d,s2,sizeof(MATRIX)):NULL; if (!s2) return (MATRIX *)memcpy(d,s1,sizeof(MATRIX)); - d->tx = s1->tx + s2->tx; - d->ty = s1->ty + s2->ty; + d->tx = RFXSWF_SP(s1->sx,s1->r1,s2->tx,s2->ty); + d->ty = RFXSWF_SP(s1->r0,s1->sy,s2->tx,s2->ty); d->sx = RFXSWF_SP(s1->sx,s1->r1,s2->sx,s2->r0); - d->sy = RFXSWF_SP(s1->r0,s1->sy,s2->r1,s2->sy); d->r0 = RFXSWF_SP(s1->r0,s1->sy,s2->sx,s2->r0); + d->r1 = RFXSWF_SP(s1->sx,s1->r1,s2->r1,s2->sy); + d->sy = RFXSWF_SP(s1->r0,s1->sy,s2->r1,s2->sy); //DumpMatrix(NULL,d); @@ -904,6 +905,30 @@ U8 swf_isShapeTag(TAG*tag) return 0; } +U8 swf_isPlaceTag(TAG*tag) +{ + if(tag->id == ST_PLACEOBJECT || + tag->id == ST_PLACEOBJECT2) + return 1; + return 0; +} +U8 swf_isTextTag(TAG*tag) +{ + if(tag->id == ST_DEFINETEXT || + tag->id == ST_DEFINETEXT2) + return 1; + return 0; +} + +U8 swf_isFontTag(TAG*tag) +{ + if(tag->id == ST_DEFINEFONT || + tag->id == ST_DEFINEFONT2 || + tag->id == ST_DEFINEFONTINFO) + return 1; + return 0; +} + U8 swf_isImageTag(TAG*tag) { if(tag->id == ST_DEFINEBITSJPEG || @@ -1113,3 +1138,22 @@ void swf_SetDefineBBox(TAG * tag, SRECT newbbox) } } +RGBA swf_GetSWFBackgroundColor(SWF*swf) +{ + TAG*t=swf->firstTag; + RGBA color; + color.r = color.b = color.g = 0; + color.a = 255; + while(t) { + if(t->id == ST_SETBACKGROUNDCOLOR) { + swf_SetTagPos(t, 0); + color.r = swf_GetU8(t); + color.g = swf_GetU8(t); + color.b = swf_GetU8(t); + break; + } + t=t->next; + } + return color; +} +