X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Frfxswf.h;h=d1473bdbafecf640bb1de8bb62f8e239eeb49093;hb=90877f310a0df21107db114d03d3f5c02cdf2110;hp=792ac14c03abaf4793cf2442865fb4bdd76e0539;hpb=6cfa6f2326b39d3dee66a27cb77ad5e8fab021a1;p=swftools.git diff --git a/lib/rfxswf.h b/lib/rfxswf.h index 792ac14..d1473bd 100644 --- a/lib/rfxswf.h +++ b/lib/rfxswf.h @@ -48,11 +48,11 @@ extern "C" { #define NO_MP3 #endif -typedef signed long SFIXED; -typedef signed long SCOORD; +typedef signed SFIXED; +typedef signed SCOORD; -#define SCOORD_MAX 0x7fffffff -#define SCOORD_MIN -0x80000000 +#define SCOORD_MAX 0x7fffffffl +#define SCOORD_MIN -0x80000000l // Basic Structures @@ -156,6 +156,7 @@ typedef struct _SWF U16 frameRate; U16 frameCount; // valid after load and save TAG * firstTag; + U32 fileAttributes; // for SWFs >= Flash9 } SWF; // Basic Functions @@ -192,7 +193,7 @@ void swf_OptimizeTagOrder(SWF*swf); TAG * swf_InsertTag(TAG * after,U16 id); // updates frames, if necessary TAG * swf_InsertTagBefore(SWF*swf, TAG * before,U16 id); // like InsertTag, but insert tag before argument -int swf_DeleteTag(TAG * t); +TAG * swf_DeleteTag(SWF*swf, TAG * t); void swf_ClearTag(TAG * t); //frees tag data void swf_ResetTag(TAG*tag, U16 id); //set's tag position and length to 0, without freeing it @@ -215,7 +216,7 @@ int swf_CountUBits(U32 v,int nbits); int swf_CountBits(U32 v,int nbits); int swf_GetBlock(TAG * t,U8 * b,int l); // resets Bitcount -int swf_SetBlock(TAG * t,U8 * b,int l); +int swf_SetBlock(TAG * t,const U8 * b,int l); U8 swf_GetU8(TAG * t); // resets Bitcount U16 swf_GetU16(TAG * t); @@ -255,6 +256,7 @@ int swf_VerifyPassword(TAG * t, const char * password); // helper functions: +SRECT swf_ClipRect(SRECT border, SRECT r); void swf_ExpandRect(SRECT*src, SPOINT add); void swf_ExpandRect2(SRECT*src, SRECT*add); void swf_ExpandRect3(SRECT*src, SPOINT center, int radius); @@ -500,6 +502,7 @@ typedef struct _FONTUSAGE { int* chars; char is_reduced; int used_glyphs; + int glyphs_specified; } FONTUSAGE; #define FONT_STYLE_BOLD 1 @@ -513,8 +516,8 @@ typedef struct _SWFFONT U8 version; // 0 = not set, 1 = definefont, 2 = definefont2 U8 * name; SWFLAYOUT * layout; - U16 numchars; - U16 maxascii; // highest mapped ascii value + int numchars; + int maxascii; // highest mapped ascii/unicode value U8 style; U8 encoding; @@ -795,6 +798,12 @@ RGBA swf_GetSWFBackgroundColor(SWF*swf); void swf_uncgi(); // same behaviour as Steven Grimm's uncgi-library +// swfabc.c + +void* swf_ReadABC(TAG*tag); +void swf_WriteABC(TAG*tag, void*code); +void swf_AddButtonLinks(SWF*swf, char stop_each_frame); + // swfaction.c typedef struct _ActionTAG @@ -930,9 +939,9 @@ void action_fixjump(ActionMarker m1, ActionMarker m2); extern char*blendModeNames[]; -int swf_ObjectPlace(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,U8 * name); -int swf_ObjectPlaceClip(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,U8 * name, U16 clipaction); -int swf_ObjectPlaceBlend(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,U8 * name, U8 blendmode); +int swf_ObjectPlace(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,const U8 * name); +int swf_ObjectPlaceClip(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,const U8 * name, U16 clipaction); +int swf_ObjectPlaceBlend(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,const U8 * name, U8 blendmode); int swf_ObjectMove(TAG * t,U16 depth,MATRIX * m,CXFORM * cx); #define PF_MOVE 0x01 @@ -1102,8 +1111,6 @@ FILTER*swf_GetFilter(TAG*tag); FILTER*swf_NewFilter(U8 type); void swf_DeleteFilter(FILTER*f); -void AVM2_InsertStops(SWF*swf); - #ifdef __cplusplus } #endif