git.asbjorn.biz
/
swftools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added gfximage_free to gfximage.{c,h}
[swftools.git]
/
lib
/
modules
/
swfobject.c
diff --git
a/lib/modules/swfobject.c
b/lib/modules/swfobject.c
index
55b9b1c
..
349824d
100644
(file)
--- a/
lib/modules/swfobject.c
+++ b/
lib/modules/swfobject.c
@@
-21,19
+21,8
@@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-#define PF_MOVE 0x01
-#define PF_CHAR 0x02
-#define PF_MATRIX 0x04
-#define PF_CXFORM 0x08
-#define PF_RATIO 0x10
-#define PF_NAME 0x20
-#define PF_CLIPDEPTH 0x40
-#define PF_ACTIONEVENT 0x80
-
-#define PF2_FILTERS 0x01
-#define PF2_BLENDMODE 0x02
-#define PF2_ASBITMAP 0x04
-//...
+#include "../rfxswf.h"
+
char*blendModeNames[] = {"normal","normal2","layer","multiply",
"screen","lighten", "darken","add",
char*blendModeNames[] = {"normal","normal2","layer","multiply",
"screen","lighten", "darken","add",
@@
-68,7
+57,7
@@
int isUnitCXForm(CXFORM* cx)
return 0;
}
return 0;
}
-static int objectplace(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,U8 * name, U16 clipaction, U8 blendmode, FILTERLIST*filters)
+static int objectplace(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,const char * name, U16 clipaction, U8 blendmode, FILTERLIST*filters)
{ U8 flags,flags2;
if (!t) return -1;
{ U8 flags,flags2;
if (!t) return -1;
@@
-98,15
+87,15
@@
static int objectplace(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,U8 * name
swf_SetU8(t,blendmode);
return 0;
}
swf_SetU8(t,blendmode);
return 0;
}
-int swf_ObjectPlace(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,U8 * name)
+int swf_ObjectPlace(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,const char * name)
{
return objectplace(t,id,depth,m,cx,name,0,0,0);
}
{
return objectplace(t,id,depth,m,cx,name,0,0,0);
}
-int swf_ObjectPlaceClip(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,U8 * name, U16 clipaction)
+int swf_ObjectPlaceClip(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,const char * name, U16 clipaction)
{
return objectplace(t,id,depth,m,cx,name,clipaction,0,0);
}
{
return objectplace(t,id,depth,m,cx,name,clipaction,0,0);
}
-int swf_ObjectPlaceBlend(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,U8 * name, U8 blend)
+int swf_ObjectPlaceBlend(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,const char * name, U8 blend)
{
if(t->id != ST_PLACEOBJECT3)
fprintf(stderr, "wrong tag- ignoring blend mode\n");
{
if(t->id != ST_PLACEOBJECT3)
fprintf(stderr, "wrong tag- ignoring blend mode\n");
@@
-136,7
+125,7
@@
void swf_SetPlaceObject(TAG * t,SWFPLACEOBJECT* obj)
flags2 = (0?PF2_ASBITMAP:0)|(obj->blendmode?PF2_BLENDMODE:0)|(obj->filters?PF2_FILTERS:0);
swf_SetU8(t,flags);
flags2 = (0?PF2_ASBITMAP:0)|(obj->blendmode?PF2_BLENDMODE:0)|(obj->filters?PF2_FILTERS:0);
swf_SetU8(t,flags);
- if(t->id == ST_PLACEOBJECT2)
+ if(t->id == ST_PLACEOBJECT3)
swf_SetU8(t,flags2);
swf_SetU16(t,obj->depth);
if (flags&PF_CHAR) swf_SetU16(t,obj->id);
swf_SetU8(t,flags2);
swf_SetU16(t,obj->depth);
if (flags&PF_CHAR) swf_SetU16(t,obj->id);
@@
-149,7
+138,10
@@
void swf_SetPlaceObject(TAG * t,SWFPLACEOBJECT* obj)
if (flags&PF_NAME) swf_SetString(t,obj->name);
if (flags2&PF2_FILTERS) {
if (flags&PF_NAME) swf_SetString(t,obj->name);
if (flags2&PF2_FILTERS) {
- // ...
+ swf_SetU8(t,obj->filters->num);
+ int s;
+ for(s=0;s<obj->filters->num;s++)
+ swf_SetFilter(t,obj->filters->filter[s]);
}
if (flags2&PF2_BLENDMODE)
swf_SetU8(t,obj->blendmode);
}
if (flags2&PF2_BLENDMODE)
swf_SetU8(t,obj->blendmode);
@@
-161,8
+153,10
@@
void swf_SetPlaceObject(TAG * t,SWFPLACEOBJECT* obj)
void swf_GetPlaceObject(TAG * tag,SWFPLACEOBJECT* obj)
{
void swf_GetPlaceObject(TAG * tag,SWFPLACEOBJECT* obj)
{
- if(!tag) {
+ if(obj)
memset(obj, 0, sizeof(SWFPLACEOBJECT));
memset(obj, 0, sizeof(SWFPLACEOBJECT));
+
+ if(!tag) {
swf_GetMatrix(0, &obj->matrix);
swf_GetCXForm(0, &obj->cxform, 1);
//obj->internal = PF_CHAR|PF_MATRIX|PF_CXFORM;
swf_GetMatrix(0, &obj->matrix);
swf_GetCXForm(0, &obj->cxform, 1);
//obj->internal = PF_CHAR|PF_MATRIX|PF_CXFORM;
@@
-201,10
+195,10
@@
void swf_GetPlaceObject(TAG * tag,SWFPLACEOBJECT* obj)
int l,t;
U8*data;
swf_ResetReadBits(tag);
int l,t;
U8*data;
swf_ResetReadBits(tag);
- l = strlen(&tag->data[tag->pos]);
+ l = strlen((const char *)&tag->data[tag->pos]);
t = 0;
t = 0;
- data = rfx_alloc(l+1);
- obj->name = data;
+ data = (U8*)rfx_alloc(l+1);
+ obj->name = (char*)data;
while((data[t++] = swf_GetU8(tag)));
}
if(flags2&PF2_BLENDMODE) {
while((data[t++] = swf_GetU8(tag)));
}
if(flags2&PF2_BLENDMODE) {