X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fdevices%2Farts.c;h=762e9cd016fad233ae042bd5825ba36b3cc815ca;hb=7cd054491ed32224ed0939db4387e7a8f4d600d6;hp=a616220fb7338f91d1ab14e44c79fd2647faee2f;hpb=117f182f5c9bfbcef24e2031ac2ce34f391dab85;p=swftools.git diff --git a/lib/devices/arts.c b/lib/devices/arts.c index a616220..762e9cd 100644 --- a/lib/devices/arts.c +++ b/lib/devices/arts.c @@ -20,6 +20,7 @@ #include #include +#include #include #include #include "../mem.h" @@ -38,20 +39,43 @@ typedef struct _internal { clip_t*clip; } internal_t; +static int verbose = 1; +static void dbg(char*format, ...) +{ + if(!verbose) + return; + char buf[1024]; + int l; + va_list arglist; + va_start(arglist, format); + vsprintf(buf, format, arglist); + va_end(arglist); + l = strlen(buf); + while(l && buf[l-1]=='\n') { + buf[l-1] = 0; + l--; + } + printf("(device-arts) %s\n", buf); + fflush(stdout); +} + int arts_setparameter(struct _gfxdevice*dev, const char*key, const char*value) { + dbg("arts_setparameter"); internal_t*i = (internal_t*)dev->internal; return i->out->setparameter(i->out,key,value); } void arts_startpage(struct _gfxdevice*dev, int width, int height) { + dbg("arts_startpage"); internal_t*i = (internal_t*)dev->internal; i->out->startpage(i->out,width,height); } void arts_startclip(struct _gfxdevice*dev, gfxline_t*line) { + dbg("arts_startclip"); internal_t*i = (internal_t*)dev->internal; ArtSVP* svp = gfxfillToSVP(line, 1); @@ -65,13 +89,14 @@ void arts_startclip(struct _gfxdevice*dev, gfxline_t*line) i->clip->svp = art_svp_intersect(svp, old); art_svp_free(svp); } else { - i->clip = rfx_calloc(sizeof(clip_t)); + i->clip = (clip_t*)rfx_calloc(sizeof(clip_t)); i->clip->svp = svp; } } void arts_endclip(struct _gfxdevice*dev) { + dbg("arts_endclip"); internal_t*i = (internal_t*)dev->internal; if(i->clip) { @@ -86,6 +111,7 @@ void arts_endclip(struct _gfxdevice*dev) void arts_stroke(struct _gfxdevice*dev, gfxline_t*line, gfxcoord_t width, gfxcolor_t*color, gfx_capType cap_style, gfx_joinType joint_style, gfxcoord_t miterLimit) { + dbg("arts_stroke"); internal_t*i = (internal_t*)dev->internal; //i->out->stroke(i->out, line, width, color, cap_style, joint_style, miterLimit); ArtSVP* svp = gfxstrokeToSVP(line, width, cap_style, joint_style, miterLimit); @@ -102,6 +128,7 @@ void arts_stroke(struct _gfxdevice*dev, gfxline_t*line, gfxcoord_t width, gfxcol void arts_fill(struct _gfxdevice*dev, gfxline_t*line, gfxcolor_t*color) { + dbg("arts_fill"); internal_t*i = (internal_t*)dev->internal; ArtSVP* svp = gfxfillToSVP(line, 1); @@ -120,6 +147,7 @@ void arts_fill(struct _gfxdevice*dev, gfxline_t*line, gfxcolor_t*color) void arts_fillbitmap(struct _gfxdevice*dev, gfxline_t*line, gfximage_t*img, gfxmatrix_t*matrix, gfxcxform_t*cxform) { + dbg("arts_fillbitmap"); internal_t*i = (internal_t*)dev->internal; ArtSVP* svp = gfxfillToSVP(line, 1); if(i->clip) { @@ -135,6 +163,7 @@ void arts_fillbitmap(struct _gfxdevice*dev, gfxline_t*line, gfximage_t*img, gfxm void arts_fillgradient(struct _gfxdevice*dev, gfxline_t*line, gfxgradient_t*gradient, gfxgradienttype_t type, gfxmatrix_t*matrix) { + dbg("arts_fillgradient"); internal_t*i = (internal_t*)dev->internal; ArtSVP* svp = gfxfillToSVP(line, 1); if(i->clip) { @@ -150,12 +179,14 @@ void arts_fillgradient(struct _gfxdevice*dev, gfxline_t*line, gfxgradient_t*grad void arts_addfont(struct _gfxdevice*dev, gfxfont_t*font) { + dbg("arts_addfont"); internal_t*i = (internal_t*)dev->internal; i->out->addfont(i->out, font); } void arts_drawchar(struct _gfxdevice*dev, gfxfont_t*font, int glyphnr, gfxcolor_t*color, gfxmatrix_t*matrix) { + dbg("arts_drawchar"); internal_t*i = (internal_t*)dev->internal; gfxline_t*glyph = gfxline_clone(font->glyphs[glyphnr].line); gfxline_transform(glyph, matrix); @@ -187,25 +218,29 @@ void arts_drawchar(struct _gfxdevice*dev, gfxfont_t*font, int glyphnr, gfxcolor_ void arts_drawlink(struct _gfxdevice*dev, gfxline_t*line, char*action) { + dbg("arts_drawlink"); internal_t*i = (internal_t*)dev->internal; i->out->drawlink(i->out, line, action); } void arts_endpage(struct _gfxdevice*dev) { + dbg("arts_endpage"); internal_t*i = (internal_t*)dev->internal; i->out->endpage(i->out); } gfxresult_t* arts_finish(struct _gfxdevice*dev) { + dbg("arts_finish"); internal_t*i = (internal_t*)dev->internal; return i->out->finish(i->out); } void gfxdevice_arts_init(gfxdevice_t*dev, gfxdevice_t*out) { - internal_t*i = rfx_calloc(sizeof(internal_t)); + dbg("gfxdevice_arts_init"); + internal_t*i = (internal_t*)rfx_calloc(sizeof(internal_t)); memset(dev, 0, sizeof(gfxdevice_t)); dev->internal = i;