git.asbjorn.biz
/
swftools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
applied mp3 patch from Joel Yliluoma.
[swftools.git]
/
lib
/
modules
/
swftools.c
diff --git
a/lib/modules/swftools.c
b/lib/modules/swftools.c
index
163d855
..
37c8e8b
100644
(file)
--- a/
lib/modules/swftools.c
+++ b/
lib/modules/swftools.c
@@
-26,8
+26,11
@@
#define S64 long long
SFIXED RFXSWF_SP(SFIXED a1,SFIXED a2,SFIXED b1,SFIXED b2)
{ S64 a;
#define S64 long long
SFIXED RFXSWF_SP(SFIXED a1,SFIXED a2,SFIXED b1,SFIXED b2)
{ S64 a;
- a = (S64)a1*(S64)b1+(S64)a2*(S64)b2;
- return (SFIXED)(a>>16);
+ a = ((S64)a1*(S64)b1+(S64)a2*(S64)b2)>>16;
+ SFIXED result = (SFIXED)(a);
+ if(a!=result)
+ fprintf(stderr, "Warning: overflow in matrix multiplication");
+ return result;
}
SFIXED RFXSWF_QFIX(int zaehler,int nenner) // bildet Quotient von zwei INTs in SFIXED
{ S64 z = zaehler<<16;
}
SFIXED RFXSWF_QFIX(int zaehler,int nenner) // bildet Quotient von zwei INTs in SFIXED
{ S64 z = zaehler<<16;
@@
-42,8
+45,8
@@
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));
if (!s1) return (s2)?(MATRIX *)memcpy(d,s2,sizeof(MATRIX)):NULL;
if (!s2) return (MATRIX *)memcpy(d,s1,sizeof(MATRIX));
- 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->tx = s1->tx + RFXSWF_SP(s1->sx,s1->r1,s2->tx,s2->ty);
+ d->ty = s1->ty + RFXSWF_SP(s1->r0,s1->sy,s2->tx,s2->ty);
d->sx = RFXSWF_SP(s1->sx,s1->r1,s2->sx,s2->r0);
d->r0 = RFXSWF_SP(s1->r0,s1->sy,s2->sx,s2->r0);
d->sx = RFXSWF_SP(s1->sx,s1->r1,s2->sx,s2->r0);
d->r0 = RFXSWF_SP(s1->r0,s1->sy,s2->sx,s2->r0);
@@
-920,6
+923,15
@@
U8 swf_isTextTag(TAG*tag)
return 0;
}
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 ||
U8 swf_isImageTag(TAG*tag)
{
if(tag->id == ST_DEFINEBITSJPEG ||