X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Frfxswf.h;h=fba3f91b099cb1d9e51c823dc98bdd4b54f93f32;hb=67bfacb50cd8fbbc0b52e9ae890e106845b5a879;hp=ac8c936fa44a1fefc920e7b04522d7f4734a5273;hpb=5e653506fb3e47283563c044faccb2a00e537ed6;p=swftools.git diff --git a/lib/rfxswf.h b/lib/rfxswf.h index ac8c936..fba3f91 100644 --- a/lib/rfxswf.h +++ b/lib/rfxswf.h @@ -6,9 +6,20 @@ Copyright (c) 2000, 2001 Rainer Böhme - This file is distributed under the GPL, see file COPYING for details - -*/ + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + #ifndef __RFX_SWF_INCLUDED__ #define __RFX_SWF_INCLUDED__ @@ -123,8 +134,6 @@ typedef struct _TAG // NEVER access a Tag-Struct directly ! U32 len; // for Set-Access U32 pos; // for Get-Access - int frame; // not really up-to-date - struct _TAG * next; struct _TAG * prev; @@ -205,7 +214,6 @@ U32 swf_GetTagPos(TAG * t); TAG * swf_NextTag(TAG * t); TAG * swf_PrevTag(TAG * t); -int swf_GetFrameNo(TAG * t); // should be renamed to TagGetFrame U16 swf_GetTagID(TAG * t); // ... TagGetID U32 swf_GetTagLen(TAG * t); // ... TagGetTagLen U8* swf_GetTagLenPtr(TAG * t); @@ -228,17 +236,20 @@ int swf_SetU8(TAG * t,U8 v); // resets Bitcount 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: @@ -408,8 +419,8 @@ int swf_SetShapeBits(TAG * t,SHAPE * s); 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); @@ -425,6 +436,28 @@ SRECT swf_GetShapeBoundingBox(SHAPE2*shape); void swf_SetShape2(TAG*tag, SHAPE2*shape); void swf_Shape2Free(SHAPE2 * s); +// swfdraw.c + +typedef struct _FPOINT +{ + float x,y; +} FPOINT; + +typedef struct _SWFSHAPEDRAWER +{ + FPOINT pos; + SHAPE*shape; + TAG*tag; + int tagfree; +} SWFSHAPEDRAWER; + +void swf_DrawerInit(SWFSHAPEDRAWER*draw); +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); + // swffont.c // does not support wide characters ! @@ -539,7 +572,8 @@ void swf_FontFree(SWFFONT * f); 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); @@ -556,6 +590,7 @@ SRECT swf_SetDefineText(TAG*tag, SWFFONT*font, RGBA*rgb, char*text, int scale); void swf_DumpHeader(FILE * f,SWF * swf); void swf_DumpMatrix(FILE * f,MATRIX * m); void swf_DumpTag(FILE * f,TAG * t); +void swf_DumpSWF(FILE * f,SWF*swf); char* swf_TagGetName(TAG*tag); void swf_DumpFont(SWFFONT * font); @@ -638,6 +673,8 @@ int swf_SetJPEGBitsLines(JPEGBITS * jpegbits,U8 ** data,int n); int swf_SetJPEGBitsLine(JPEGBITS * jpegbits,U8 * data); int swf_SetJPEGBitsFinish(JPEGBITS * jpegbits); +void swf_GetJPEGSize(char * fname, int*width, int*height); + int swf_SetJPEGBits(TAG * t,char * fname,int quality); void swf_SetJPEGBits2(TAG * t,U16 width,U16 height,RGBA * bitmap,int quality); int swf_SetJPEGBits3(TAG * tag,U16 width,U16 height,RGBA* bitmap, int quality);