} SPOINT, * LPSPOINT;
typedef struct _RGBA
-{ U8 r;
+{ U8 a;
+ U8 r;
U8 g;
U8 b;
- U8 a;
} RGBA, * LPRGBA;
typedef struct _SRECT
U8 bitcount; // [write]
} TAG, * LPTAG;
+typedef struct _ActionTAG
+{ U8 op;
+ U16 len;
+ U8 * data;
+
+ struct _ActionTAG * next;
+ struct _ActionTAG * prev;
+
+ TAG* parent; // may be null
+} ActionTAG;
+
+
typedef struct _SWF
{ U8 FileVersion;
U32 FileSize; // valid after load and save
int SetJPEGBits(TAG * t,char * fname,int quality); // paste jpg file into swf stream
+#define BYTES_PER_SCANLINE(width) ((width+3)&0xfffffffc)
+
+#define BMF_8BIT 3 // Bitmap formats
+#define BMF_16BIT 4
+#define BMF_32BIT 5
+
+#define BM16_BLUE 0xf800 // Bitmasks for 16 Bit Color
+#define BM16_RED 0x00f0
+#define BM16_GREEN 0x000f
+
+#define BM32_BLUE 0xff000000 // Bitmasks for 32 Bit Color
+#define BM32_GREEN 0x00ff0000
+#define BM32_RED 0x0000ff00
+
+int SetLosslessBits(TAG * t,U16 width,U16 height,void * bitmap,U8 bitmap_flags);
+int SetLosslessBitsIndexed(TAG * t,U16 width,U16 height,U8 * bitmap,RGBA * palette,U16 ncolors);
+int SetLosslessBitsGrayscale(TAG * t,U16 width,U16 height,U8 * bitmap);
+
// swftools.c
char isDefiningTag(TAG * t);
void uncgi(); // same behaviour as Steven Grimm's uncgi-library
+// swfaction.c
+
+ActionTAG* GetActions(TAG*tag);
+void DumpActions(ActionTAG*atag, char*prefix);
+
#endif