S16 b0, b1;
} CXFORM, * LPCXFORM;
+#define GRADIENT_LINEAR 0x10
+#define GRADIENT_RADIAL 0x12
typedef struct _GRADIENT
{
int num;
int swf_SetU16(TAG * t,U16 v);
int swf_SetU32(TAG * t,U32 v);
-int swf_GetPoint(TAG * t,SPOINT * p); // resets Bitcount
+//int swf_GetPoint(TAG * t,SPOINT * p); // resets Bitcount
int swf_GetRect(TAG * t,SRECT * r);
int swf_GetMatrix(TAG * t,MATRIX * m);
int swf_GetCXForm(TAG * t,CXFORM * cx,U8 alpha);
-int swf_SetPoint(TAG * t,SPOINT * p); // resets Bitcount
+//int swf_SetPoint(TAG * t,SPOINT * p); // resets Bitcount
int swf_SetRect(TAG * t,SRECT * r);
int swf_SetMatrix(TAG * t,MATRIX * m);
int swf_SetCXForm(TAG * t,CXFORM * cx,U8 alpha);
int swf_SetRGB(TAG * t,RGBA * col);
int swf_SetRGBA(TAG * t,RGBA * col);
+void swf_SetPassword(TAG * t, const char * password);
+
+int swf_VerifyPassword(TAG * t, const char * password);
// helper functions:
RGBA color;
MATRIX m;
U16 id_bitmap;
- GRADIENT* gradient;
+ GRADIENT gradient;
} FILLSTYLE, * LPFILLSTYLE;
typedef struct _SHAPE // NEVER access a Shape-Struct directly !
int swf_ShapeAddLineStyle(SHAPE * s,U16 width,RGBA * color);
int swf_ShapeAddSolidFillStyle(SHAPE * s,RGBA * color);
int swf_ShapeAddBitmapFillStyle(SHAPE * s,MATRIX * m,U16 id_bitmap,int clip);
+int swf_ShapeAddGradientFillStyle(SHAPE * s,MATRIX * m,GRADIENT* gradient,int radial);
int swf_SetShapeStyles(TAG * t,SHAPE * s);
int swf_ShapeCountBits(SHAPE * s,U8 * fbits,U8 * lbits);
int swf_SetShapeHeader(TAG * t,SHAPE * s); // one call for upper three functions
int swf_ShapeSetMove(TAG * t,SHAPE * s,S32 x,S32 y);
-int swf_ShapeSetStyle(TAG * t,SHAPE * s,U16 line,U16 fill0,U16 fill1);
-int swf_ShapeSetAll(TAG * t,SHAPE * s,S32 x,S32 y,U16 line,U16 fill0,U16 fill1);
+int swf_ShapeSetStyle(TAG * t,SHAPE * s,int line,int fill0,int fill1);
+int swf_ShapeSetAll(TAG * t,SHAPE * s,S32 x,S32 y,int line,int fill0,int fill1);
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);
SRECT swf_GetShapeBoundingBox(SHAPE2*shape);
void swf_SetShape2(TAG*tag, SHAPE2*shape);
void swf_Shape2Free(SHAPE2 * s);
+void swf_DumpShape(SHAPE2*shape2);
// swfdraw.c
SHAPE*shape;
TAG*tag;
int tagfree;
+ int lastx;
+ int lasty;
+ SRECT bbox;
+ char isfinished;
} SWFSHAPEDRAWER;
-void swf_DrawerInit(SWFSHAPEDRAWER*draw);
+void swf_DrawerInit(SWFSHAPEDRAWER*draw, TAG*tag);
void swf_DrawerMoveTo(SWFSHAPEDRAWER*draw, FPOINT * to);
void swf_DrawerLineTo(SWFSHAPEDRAWER*draw, FPOINT * to);
void swf_DrawerSplineTo(SWFSHAPEDRAWER*draw, FPOINT * control1, FPOINT* to);
void swf_DrawerCubicTo(SWFSHAPEDRAWER*draw, FPOINT* control1, FPOINT* control2, FPOINT* to);
void swf_DrawerConicTo(SWFSHAPEDRAWER*draw, FPOINT* control, FPOINT* to);
+void swf_DrawerFinish(SWFSHAPEDRAWER*draw);
+SHAPE* swf_DrawerToShape(SWFSHAPEDRAWER*draw);
+
+void swf_DrawString(SWFSHAPEDRAWER*draw, const char*source);
// swffont.c
U32 swf_TextGetWidth(SWFFONT * font,U8 * s,int scale);
int swf_TextCountBits(SWFFONT * font,U8 * s,int scale,U8 * gbits,U8 * abits);
-int swf_TextSetInfoRecord(TAG * t,SWFFONT * font,U16 size,RGBA * color,S16 dx,S16 dy);
+#define SET_TO_ZERO 0x80000000
+int swf_TextSetInfoRecord(TAG * t,SWFFONT * font,U16 size,RGBA * color,int dx,int dy);
int swf_TextSetCharRecord(TAG * t,SWFFONT * font,U8 * s,int scale,U8 gbits,U8 abits);
int swf_TextPrintDefineText(TAG * t,SWFFONT * f);
SRECT swf_SetDefineText(TAG*tag, SWFFONT*font, RGBA*rgb, char*text, int scale);
+void swf_DrawText(SWFSHAPEDRAWER*draw, SWFFONT*font, char*text);
+
// swfdump.c
void swf_DumpHeader(FILE * f,SWF * swf);