X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=blobdiff_plain;f=lib%2Fgfxtools.h;h=ea511faf2a0c2a8c1dfa00b5282b7584b7d484c5;hp=ceabf5ed01789e48b0525833da417867b766dea4;hb=bf04757cd94e94c1f67fa3d2a4e3e59fa5bce0c0;hpb=4d69b67e4c0234d1be6e84acb68f00ff0a9f869f diff --git a/lib/gfxtools.h b/lib/gfxtools.h index ceabf5e..ea511fa 100644 --- a/lib/gfxtools.h +++ b/lib/gfxtools.h @@ -27,8 +27,8 @@ extern "C" { #endif -//#include "../lib/mem.h" -#include "../lib/rfxswf.h" +#include +#include "../lib/mem.h" #include "../lib/gfxdevice.h" typedef struct _gfxdrawer @@ -46,20 +46,48 @@ typedef struct _gfxpoint gfxcoord_t x,y; } gfxpoint_t; +typedef struct _gfxfontlist +{ + gfxfont_t*font; + struct _gfxfontlist*next; +} gfxfontlist_t; + void gfxdrawer_target_gfxline(gfxdrawer_t*d); void gfxtool_draw_dashed_line(gfxdrawer_t*d, gfxline_t*line, float*dashes, float phase); gfxline_t* gfxtool_dash_line(gfxline_t*line, float*dashes, float phase); void gfxline_dump(gfxline_t*l, FILE*fi, char*prefix); -void gfxline_append(gfxline_t*line1, gfxline_t*line2); +gfxline_t* gfxline_append(gfxline_t*line1, gfxline_t*line2); void gfxline_free(gfxline_t*l); +gfxline_t* gfxline_clone(gfxline_t*line); +void gfxline_optimize(gfxline_t*line); -void gfxdraw_cubicTo(gfxdrawer_t*draw, double c1x, double c1y, double c2x, double c2y, double x, double y); -void gfxdraw_conicTo(gfxdrawer_t*draw, double cx, double cy, double tox, double toy); +void gfxdraw_cubicTo(gfxdrawer_t*draw, double c1x, double c1y, double c2x, double c2y, double x, double y, double quality); +void gfxdraw_conicTo(gfxdrawer_t*draw, double cx, double cy, double tox, double toy, double quality); gfxbbox_t gfxline_getbbox(gfxline_t*line); gfxbbox_t gfxbbox_expand_to_point(gfxbbox_t box, gfxcoord_t x, gfxcoord_t y); +void gfxbbox_intersect(gfxbbox_t*box1, gfxbbox_t*box2); + +void gfxline_transform(gfxline_t*line, gfxmatrix_t*matrix); + +void gfxmatrix_dump(gfxmatrix_t*l, FILE*fi, char*prefix); +void gfxmatrix_transform(gfxmatrix_t*m, gfxcoord_t* v1, gfxcoord_t*dest); +void gfxmatrix_invert(gfxmatrix_t*src, gfxmatrix_t*dest); +void gfxmatrix_unit(gfxmatrix_t*m); +void gfxmatrix_multiply(gfxmatrix_t*m1, gfxmatrix_t*m2, gfxmatrix_t*dest); + +gfxfontlist_t* gfxfontlist_create(); +gfxfontlist_t*gfxfontlist_addfont(gfxfontlist_t*list, gfxfont_t*font); +gfxfont_t*gfxfontlist_findfont(gfxfontlist_t*list, char*id); +char gfxfontlist_hasfont(gfxfontlist_t*list, gfxfont_t*font); +void gfxfontlist_free(gfxfontlist_t*list, char deletefonts); + +gfxbbox_t* gfxline_isrectangle(gfxline_t*_l); + +gfxline_t*gfxline_makerectangle(int x1, int y1, int x2, int y2); +void gfxline_show(gfxline_t*line, FILE*fi); #ifdef __cplusplus }