S16 b0, b1;
} CXFORM, * LPCXFORM;
+typedef struct _GRADIENT
+{
+ int num;
+ U8 ratios[8];
+ RGBA rgba[8];
+} GRADIENT;
+
typedef struct _TAG // NEVER access a Tag-Struct directly !
{ U16 id;
U8 * data;
U8 swf_GetU8(TAG * t); // resets Bitcount
U16 swf_GetU16(TAG * t);
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);
int swf_SetU8(TAG * t,U8 v); // resets Bitcount
int swf_SetU16(TAG * t,U16 v);
SHAPE * shape;
} SWFGLYPH;
+#define FONT_STYLE_BOLD 1
+#define FONT_STYLE_ITALIC 2
+#define FONT_ENCODING_UNICODE 1
+#define FONT_ENCODING_ANSI 2
+#define FONT_ENCODING_SHIFTJIS 4
+
typedef struct _SWFFONT
{ int id; // -1 = not set
U8 version; // 0 = not set, 1 = definefont, 2 = definefont2
SWFLAYOUT * layout;
U16 numchars;
U16 maxascii; // highest mapped ascii value
- U8 flags; // bold/italic/unicode/ansi ...
+
+ U8 style;
+ U8 encoding;
+
U16 * glyph2ascii;
int * ascii2glyph;
SWFGLYPH * glyph;
int swf_FontUse(FONTUSAGE * use,U8 * s);
int swf_FontSetDefine(TAG * t,SWFFONT * f);
+int swf_FontSetDefine2(TAG * t,SWFFONT * f);
int swf_FontSetInfo(TAG * t,SWFFONT * f);
+void swf_FontAddLayout(SWFFONT * f, int ascent, int descent, int leading);
+
int swf_FontExtract_DefineTextCallback(int id,SWFFONT * f,TAG * t,int jobs,
void(*callback)(int*chars, int nr, int id));
int swf_TextPrintDefineText(TAG * t,SWFFONT * f);
// Prints text defined in tag t with font f to stdout
+/* notice: if you set the fontid, make sure the corresponding font has layout information */
void swf_SetEditText(TAG*tag, U16 flags, SRECT r, char*text, RGBA*color,
int maxlength, U16 font, U16 height, EditTextLayout*layout, char*variable);
MATRIX * swf_MatrixJoin(MATRIX * d,MATRIX * s1,MATRIX * s2);
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);
// swfcgi.c