X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fdrawer.c;h=3ff0299820388580f79a8ef2fa3d70a308a24811;hb=ddd080405b74440b136024de8508af2435f77274;hp=e02fed4c59b95c1f5cc400fe7727f2f5b7718e2d;hpb=715b18c27f5e29e8bba7d2fa136c4fdce0cdad9d;p=swftools.git diff --git a/lib/drawer.c b/lib/drawer.c index e02fed4..3ff0299 100644 --- a/lib/drawer.c +++ b/lib/drawer.c @@ -84,6 +84,14 @@ void draw_string(drawer_t*draw, const char*string) to.y = atoi(getToken(&p)); draw->splineTo(draw, &mid, &to); } + else if(!strncmp(token, "conicTo", 5)) { + FPOINT mid,to; + mid.x = atoi(getToken(&p)); + mid.y = atoi(getToken(&p)); + to.x = atoi(getToken(&p)); + to.y = atoi(getToken(&p)); + draw_conicTo(draw, &mid, &to); + } else if(!strncmp(token, "cubicTo", 5)) { FPOINT mid1,mid2,to; mid1.x = atoi(getToken(&p)); @@ -94,7 +102,7 @@ void draw_string(drawer_t*draw, const char*string) to.y = atoi(getToken(&p)); draw_cubicTo(draw, &mid1, &mid2, &to); } - else fprintf(stderr, "drawer: Warning: unknown primitive '%s'", token); + else fprintf(stderr, "drawer: Warning: unknown primitive '%s'\n", token); free(token); } @@ -245,9 +253,7 @@ void draw_cubicTo(drawer_t*draw, FPOINT* control1, FPOINT* control2, FPOINT* t struct cspline c; double quality = 80; double maxerror = (500-(quality*5)>1?500-(quality*5):1)/20.0; - - int num = approximate3(&c, q, 128, maxerror*maxerror); - int t; + int t,num; c.start.x = draw->pos.x; c.start.y = draw->pos.y; @@ -257,6 +263,8 @@ void draw_cubicTo(drawer_t*draw, FPOINT* control1, FPOINT* control2, FPOINT* t c.control2.y = control2->y; c.end.x = to->x; c.end.y = to->y; + + num = approximate3(&c, q, 128, maxerror*maxerror); for(t=0;t