X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Frfxswf.h;h=f5868490fc7b7d063277b7434b96063b6ff85a90;hb=275179c87d277416cfcc0d7a346ed60c4545ba31;hp=326c45a72e0f6249a566a66550bf8f6f208a8e32;hpb=5cbd3ad7e5136789a7a84549a47b319434278115;p=swftools.git diff --git a/lib/rfxswf.h b/lib/rfxswf.h index 326c45a..f586849 100644 --- a/lib/rfxswf.h +++ b/lib/rfxswf.h @@ -231,6 +231,7 @@ U8 swf_GetU8(TAG * t); // resets Bitcount U16 swf_GetU16(TAG * t); #define swf_GetS16(tag) ((S16)swf_GetU16(tag)) U32 swf_GetU32(TAG * t); +float swf_GetF16(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); @@ -241,6 +242,7 @@ int swf_SetU8(TAG * t,U8 v); // resets Bitcount int swf_SetU16(TAG * t,U16 v); void swf_SetS16(TAG * t,int v); int swf_SetU32(TAG * t,U32 v); +void swf_SetF16(TAG * t,float f); void swf_SetString(TAG*t,const char*s); /* abc datatypes */ @@ -473,6 +475,8 @@ int swf_SetFillStyle(TAG * t,FILLSTYLE * f); int swf_SetLineStyle(TAG * t,LINESTYLE * l); +void swf_ShapeSetRectangle(TAG*tag, U16 shapeid, int width, int height, RGBA*rgba); +void swf_ShapeSetRectangleWithBorder(TAG*tag, U16 shapeid, int width, int height, RGBA*rgba, int linewidth, RGBA*linecolor); void swf_ShapeSetBitmapRect(TAG * t, U16 gfxid, int width, int height); //SHAPELINE* swf_ParseShapeData(U8*data, int bits, int fillbits, int linebits); @@ -510,8 +514,8 @@ typedef struct _KERNING } SWFKERNING; typedef struct _SWFLAYOUT -{ S16 ascent; - S16 descent; +{ U16 ascent; + U16 descent; S16 leading; SRECT * bounds; U16 kerningcount; @@ -536,6 +540,12 @@ typedef struct _FONTUSAGE #define FONT_ENCODING_ANSI 2 #define FONT_ENCODING_SHIFTJIS 4 +typedef struct _ALIGNZONE +{ + U16 x,y; + U16 dx,dy; +} ALIGNZONE; + typedef struct _SWFFONT { int id; // -1 = not set U8 version; // 0 = not set, 1 = definefont, 2 = definefont2 @@ -550,6 +560,8 @@ typedef struct _SWFFONT U16 * glyph2ascii; int * ascii2glyph; SWFGLYPH * glyph; + ALIGNZONE * alignzones; + U8 alignzone_flags; U8 language; char ** glyphnames; @@ -599,6 +611,8 @@ int swf_FontExtract_DefineFont2(int id, SWFFONT * font, TAG * tag); int swf_FontExtract_DefineFontInfo(int id, SWFFONT * f, TAG * t); int swf_FontExtract_DefineFont(int id, SWFFONT * f, TAG * t); int swf_FontExtract_GlyphNames(int id, SWFFONT * f, TAG * tag); +int swf_FontExtract_DefineFontAlignZones(int id, SWFFONT * font, TAG * tag); + int swf_FontIsItalic(SWFFONT * f); int swf_FontIsBold(SWFFONT * f); @@ -616,8 +630,10 @@ int swf_FontUse(SWFFONT* f,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_FontSetAlignZones(TAG*t, SWFFONT *f); void swf_FontCreateLayout(SWFFONT*f); +void swf_FontCreateAlignZones(SWFFONT * f); void swf_FontAddLayout(SWFFONT * f, int ascent, int descent, int leading); int swf_ParseDefineText(TAG * t, void(*callback)(void*self, int*chars, int*xpos, int nr, int fontid, int fontsize, int xstart, int ystart, RGBA* color), void*self); @@ -915,6 +931,22 @@ int swf_ObjectMove(TAG * t,U16 depth,MATRIX * m,CXFORM * cx); #define PF2_ASBITMAP 0x04 //... +#define BLENDMODE_NORMAL 0 +#define BLENDMODE_NORMAL2 1 +#define BLENDMODE_LAYER 2 +#define BLENDMODE_MULTIPLY 3 +#define BLENDMODE_SCREEN 4 +#define BLENDMODE_LIGHTEN 5 +#define BLENDMODE_DARKEN 6 +#define BLENDMODE_ADD 7 +#define BLENDMODE_SUBSTRACT 8 +#define BLENDMODE_DIFFERENCE 9 +#define BLENDMODE_INVERT 10 +#define BLENDMODE_ALPHA 11 +#define BLENDMODE_ERASE 12 +#define BLENDMODE_OVERLAY 13 +#define BLENDMODE_HARDLIGHT 14 + typedef struct _SWFPLACEOBJECT { U16 depth; U16 id; // may be 0