added missing newline to error message.
[swftools.git] / lib / drawer.c
index d371657..3ff0299 100644 (file)
@@ -22,6 +22,7 @@
 
 #include <stdlib.h>
 #include <stdio.h>
+#include <string.h>
 #include <memory.h>
 #include <math.h>
 #include "drawer.h"
@@ -83,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));
@@ -93,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);
     }
@@ -242,6 +251,10 @@ void draw_cubicTo(drawer_t*draw, FPOINT*  control1, FPOINT* control2, FPOINT*  t
 {
     struct qspline q[128];
     struct cspline c;
+    double quality = 80;
+    double maxerror = (500-(quality*5)>1?500-(quality*5):1)/20.0;
+    int t,num;
+
     c.start.x = draw->pos.x;
     c.start.y = draw->pos.y;
     c.control1.x = control1->x;
@@ -250,11 +263,9 @@ 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;
-    double quality = 80;
-    double maxerror = (500-(quality*5)>1?500-(quality*5):1)/20.0;
+    
+    num = approximate3(&c, q, 128, maxerror*maxerror);
 
-    int num = approximate3(&c, q, 128, maxerror*maxerror);
-    int t;
     for(t=0;t<num;t++) {
        FPOINT mid;
        FPOINT to;