polygon intersector: added horizontal line reconstruction
[swftools.git] / lib / rfxswf.h
index e064885..3c5e244 100644 (file)
@@ -148,6 +148,9 @@ typedef struct _SOUNDINFO
     U32* right;
 } SOUNDINFO;
 
+#define FILEATTRIBUTE_USENETWORK 1
+#define FILEATTRIBUTE_AS3 8
+#define FILEATTRIBUTE_SYMBOLCLASS 16
 typedef struct _SWF
 { U8            fileVersion;
   U8           compressed;     // SWF or SWC?
@@ -161,13 +164,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
@@ -241,7 +247,7 @@ 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    swf_SetU30String(TAG*tag, const char*str, int len);
 double swf_GetD64(TAG*tag);
 int    swf_SetD64(TAG*tag, double v);
 int    swf_GetU24(TAG*tag);
@@ -729,7 +735,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.
@@ -746,6 +752,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