X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Frfxswf.h;h=d64664a10fc3cc026e1ff58256be4aaf7f4537c9;hb=c9d4eeb03932fcb193df379346314d6e8e3d7418;hp=4b6e3b362886f15db6914cb710801859590cbcb0;hpb=0ad2a63ba1438e043e1fb8d4fdfbc7e6f5ce001e;p=swftools.git diff --git a/lib/rfxswf.h b/lib/rfxswf.h index 4b6e3b3..d64664a 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); @@ -338,10 +346,11 @@ typedef struct _LINESTYLE } LINESTYLE, * LPLINESTYLE; typedef struct _FILLSTYLE -{ U8 type; - RGBA color; - MATRIX m; - U16 id_bitmap; +{ U8 type; + RGBA color; + MATRIX m; + U16 id_bitmap; + GRADIENT* gradient; } FILLSTYLE, * LPFILLSTYLE; typedef struct _SHAPE // NEVER access a Shape-Struct directly ! @@ -407,8 +416,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); @@ -419,11 +428,33 @@ void swf_ShapeSetBitmapRect(TAG * t, U16 gfxid, int width, int height); SHAPELINE* swf_ParseShapeData(U8*data, int bits, int fillbits, int linebits); SHAPE2* swf_ShapeToShape2(SHAPE*shape); -SHAPE* swf_Shape2ToShape(SHAPE2*shape); -SRECT swf_GetShapeBoundingBox(SHAPELINE*shape); -int swf_SetShape2(TAG*tag, SHAPE2*shape); +void swf_Shape2ToShape(SHAPE2*shape2, SHAPE*shape); +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 ! @@ -538,7 +569,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); @@ -555,6 +587,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); @@ -637,6 +670,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); @@ -849,14 +884,20 @@ typedef struct _VIDEOSTREAM { int width; int height; - int frame; int linex; + + int owidth; + int oheight; int olinex; + + int frame; YUV*oldpic; YUV*current; - int bbx,bby; + int bbx; + int bby; int*mvdx; int*mvdy; + int quant; /* modifyable: */ int do_motion; //enable motion compensation (slow!)