X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=blobdiff_plain;f=lib%2Fgfxtools.c;h=e79e6fefd672f78c7a7c71a3213fd8d6f1a2df2e;hp=0c9e2aba0c74cc17b74fe8a81ae99158f9b440cd;hb=bf04757cd94e94c1f67fa3d2a4e3e59fa5bce0c0;hpb=c847b8a8f5adb2e9962d83f028044cfc6dbef3e3 diff --git a/lib/gfxtools.c b/lib/gfxtools.c index 0c9e2ab..e79e6fe 100644 --- a/lib/gfxtools.c +++ b/lib/gfxtools.c @@ -203,7 +203,13 @@ void gfxtool_draw_dashed_line(gfxdrawer_t*d, gfxline_t*line, float*r, float phas fprintf(stderr, "gfxtool: outline doesn't start with a moveTo"); return; } - if(!r || (r[0]<=0 && r[0]>-0.01)) { + + int i; + double dashlen=0; + for(i=0;r[i]>=0;i++) { + dashlen+=r[i]; + } + if(!r || (r[0]<=0 && r[0]>-0.01) || dashlen<0.001) { // no dashing. just draw the thing while(line) { if(line->type == gfx_moveTo) { @@ -222,7 +228,6 @@ void gfxtool_draw_dashed_line(gfxdrawer_t*d, gfxline_t*line, float*r, float phas return; } - for(;line;line=line->next) { if(line->type == gfx_moveTo) { d->moveTo(d, line->x, line->y);