X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Frfxswf.h;h=a3420c932c4cb14d30c13f1bdf6661cb7d3a44d7;hb=d84140e50c86deb557dc2af0e111440d0644c496;hp=97b677dc2e4be92f5144c0dc433015665d3cf191;hpb=e742d2207abedb5f1b321b6c17d0d9c8fa31518b;p=swftools.git diff --git a/lib/rfxswf.h b/lib/rfxswf.h index 97b677d..a3420c9 100644 --- a/lib/rfxswf.h +++ b/lib/rfxswf.h @@ -148,6 +148,12 @@ typedef struct _SOUNDINFO U32* right; } SOUNDINFO; +#define FILEATTRIBUTE_USENETWORK 1 +#define FILEATTRIBUTE_AS3 8 +#define FILEATTRIBUTE_SYMBOLCLASS 16 +#define FILEATTRIBUTE_USEACCELERATEDBLIT 32 +#define FILEATTRIBUTE_USEHARDWAREGPU 64 + typedef struct _SWF { U8 fileVersion; U8 compressed; // SWF or SWC? @@ -161,13 +167,16 @@ typedef struct _SWF // Basic Functions +SWF* swf_OpenSWF(char*filename); int swf_ReadSWF2(reader_t*reader, SWF * swf); // Reads SWF via callback int swf_ReadSWF(int handle,SWF * swf); // Reads SWF to memory (malloc'ed), returns length or <0 if fails int swf_WriteSWF2(writer_t*writer, SWF * swf); // Writes SWF via callback, returns length or <0 if fails int swf_WriteSWF(int handle,SWF * swf); // Writes SWF to file, returns length or <0 if fails +int swf_SaveSWF(SWF * swf, char*filename); int swf_WriteCGI(SWF * swf); // Outputs SWF with valid CGI header to stdout void swf_FreeTags(SWF * swf); // Frees all malloc'ed memory for swf SWF* swf_CopySWF(SWF*swf); +void swf_ReadABCfile(char*filename, SWF*swf); // for streaming: int swf_WriteHeader(int handle,SWF * swf); // Writes Header of swf to file @@ -222,6 +231,7 @@ U8 swf_GetU8(TAG * t); // resets Bitcount U16 swf_GetU16(TAG * t); #define swf_GetS16(tag) ((S16)swf_GetU16(tag)) U32 swf_GetU32(TAG * t); +float swf_GetF16(TAG * t); void swf_GetRGB(TAG * t, RGBA * col); void swf_GetRGBA(TAG * t, RGBA * col); void swf_GetGradient(TAG * t, GRADIENT * gradient, char alpha); @@ -232,20 +242,23 @@ int swf_SetU8(TAG * t,U8 v); // resets Bitcount int swf_SetU16(TAG * t,U16 v); void swf_SetS16(TAG * t,int v); int swf_SetU32(TAG * t,U32 v); +void swf_SetF16(TAG * t,float f); void swf_SetString(TAG*t,const char*s); +/* abc datatypes */ +U32 swf_GetU30(TAG*tag); +int swf_SetU30(TAG*tag, U32 u); +void swf_SetABCU32(TAG*tag, U32 u); +U32 swf_GetABCU32(TAG*tag); +void swf_SetABCS32(TAG*tag, S32 v); +S32 swf_GetABCS32(TAG*tag); +int swf_SetU30String(TAG*tag, const char*str, int len); double swf_GetD64(TAG*tag); - -int swf_SetU30String(TAG*tag, const char*str); -int swf_SetD64(TAG*tag, double v); -int swf_SetU30(TAG*tag, U32 u); -int swf_SetS30(TAG*tag, S32 s); -int swf_GetU24(TAG*tag); -int swf_GetS24(TAG*tag); -int swf_SetU24(TAG*tag, U32 v); -int swf_SetS24(TAG*tag, U32 v); -int swf_GetS30(TAG*tag); -int swf_GetU30(TAG*tag); +int swf_SetD64(TAG*tag, double v); +int swf_GetU24(TAG*tag); +int swf_GetS24(TAG*tag); +int swf_SetU24(TAG*tag, U32 v); +int swf_SetS24(TAG*tag, U32 v); //int swf_GetPoint(TAG * t,SPOINT * p); // resets Bitcount int swf_GetRect(TAG * t,SRECT * r); @@ -727,7 +740,7 @@ MATRIX * swf_MatrixMapTriangle(MATRIX * m,int dx,int dy, int x0,int y0,int x1,int y1,int x2,int y2); int swf_GetNumUsedIDs(TAG * t); void swf_GetUsedIDs(TAG * t, int * positions); -void swf_Relocate(SWF*swf, char*bitmap); // bitmap is 65536 bytes, bitmap[a]==0 means id a is free +char swf_Relocate(SWF*swf, char*bitmap); // bitmap is 65536 bytes, bitmap[a]==0 means id a is free void swf_RelocateDepth(SWF*swf, char*bitmap); // bitmap is 65536 bytes, bitmap[d]==0 means depth d is free TAG* swf_Concatenate (TAG*list1,TAG*list2); // warning: both list1 and list2 are invalid after this call. @@ -744,6 +757,9 @@ void*swf_DumpABC(FILE*fo, void*code, char*prefix); void swf_WriteABC(TAG*tag, void*code); void swf_FreeABC(void*code); void swf_AddButtonLinks(SWF*swf, char stop_each_frame, char events); +TAG*swf_AddAS3FontDefine(TAG*tag, U16 id, char*fontname); +#include "as3/compiler.h" +#include "as3/import.h" // swfaction.c @@ -901,6 +917,22 @@ int swf_ObjectMove(TAG * t,U16 depth,MATRIX * m,CXFORM * cx); #define PF2_ASBITMAP 0x04 //... +#define BLENDMODE_NORMAL 0 +#define BLENDMODE_NORMAL2 1 +#define BLENDMODE_LAYER 2 +#define BLENDMODE_MULTIPLY 3 +#define BLENDMODE_SCREEN 4 +#define BLENDMODE_LIGHTEN 5 +#define BLENDMODE_DARKEN 6 +#define BLENDMODE_ADD 7 +#define BLENDMODE_SUBSTRACT 8 +#define BLENDMODE_DIFFERENCE 9 +#define BLENDMODE_INVERT 10 +#define BLENDMODE_ALPHA 11 +#define BLENDMODE_ERASE 12 +#define BLENDMODE_OVERLAY 13 +#define BLENDMODE_HARDLIGHT 14 + typedef struct _SWFPLACEOBJECT { U16 depth; U16 id; // may be 0