X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Frfxswf.h;h=792ac14c03abaf4793cf2442865fb4bdd76e0539;hb=6cfa6f2326b39d3dee66a27cb77ad5e8fab021a1;hp=f63b51bed983f14ffc6b076dd4eff8aa10e4e44f;hpb=fc8c4a0518af72a38681ca4608d7c23117a252c2;p=swftools.git diff --git a/lib/rfxswf.h b/lib/rfxswf.h index f63b51b..792ac14 100644 --- a/lib/rfxswf.h +++ b/lib/rfxswf.h @@ -28,7 +28,9 @@ #include #include #include +#ifndef WIN32 #include +#endif #include #include #include "../config.h" @@ -162,7 +164,6 @@ 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_WriteSWC(int handle, SWF * swf); // for convenience, equal to swf->compressed=1;swf_WriteSWF(..) 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); @@ -210,6 +211,8 @@ U8* swf_GetTagLenPtr(TAG * t); U32 swf_GetBits(TAG * t,int nbits); S32 swf_GetSBits(TAG * t,int nbits); int swf_SetBits(TAG * t,U32 v,int nbits); +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); @@ -221,6 +224,7 @@ U32 swf_GetU32(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); +void swf_SetGradient(TAG * tag, GRADIENT * gradient, char alpha); void swf_FreeGradient(GRADIENT* gradient); char* swf_GetString(TAG*t); int swf_SetU8(TAG * t,U8 v); // resets Bitcount @@ -437,6 +441,10 @@ int swf_ShapeSetLine(TAG * t,SHAPE * s,S32 x,S32 y); int swf_ShapeSetCurve(TAG * t,SHAPE * s,S32 x,S32 y,S32 ax,S32 ay); int swf_ShapeSetCircle(TAG * t,SHAPE * s,S32 x,S32 y,S32 rx,S32 ry); int swf_ShapeSetEnd(TAG * t); +int swf_SetShapeStyleCount(TAG * t,U16 n); +int swf_SetFillStyle(TAG * t,FILLSTYLE * f); +int swf_SetLineStyle(TAG * t,LINESTYLE * l); + void swf_ShapeSetBitmapRect(TAG * t, U16 gfxid, int width, int height); @@ -927,6 +935,20 @@ int swf_ObjectPlaceClip(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,U8 * nam int swf_ObjectPlaceBlend(TAG * t,U16 id,U16 depth,MATRIX * m,CXFORM * cx,U8 * name, U8 blendmode); int swf_ObjectMove(TAG * t,U16 depth,MATRIX * m,CXFORM * cx); +#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 +//... + typedef struct _SWFPLACEOBJECT { U16 depth; U16 id; // may be 0 @@ -1063,9 +1085,22 @@ typedef struct _FILTER_BLUR { int passes; } FILTER_BLUR; +typedef struct _FILTER_GLOW { + U8 type; + RGBA rgba; + double blurx; + double blury; + double strength; + int passes; + char innerglow; + char knockout; + char composite; +} FILTER_GLOW; + void swf_SetFilter(TAG*tag, FILTER*f); FILTER*swf_GetFilter(TAG*tag); FILTER*swf_NewFilter(U8 type); +void swf_DeleteFilter(FILTER*f); void AVM2_InsertStops(SWF*swf);