X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Frfxswf.h;h=42f4f23cba598eaffcdfe239e2426aa938b6e597;hb=f58dce81384e4324f00f4ca51830f3245d15136b;hp=903efc9f5c3838fb873b1f25b787e0cbe3f8fb2e;hpb=edcb4eeac02833226bc1fb28541a6c158b0c03cd;p=swftools.git diff --git a/lib/rfxswf.h b/lib/rfxswf.h index 903efc9..42f4f23 100644 --- a/lib/rfxswf.h +++ b/lib/rfxswf.h @@ -211,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); @@ -222,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 @@ -252,6 +255,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); @@ -438,6 +442,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); @@ -928,6 +936,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 @@ -1064,9 +1086,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);