X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=blobdiff_plain;f=lib%2Fgfxpoly%2Frenderpoly.c;h=240859ddb1afa35ecee6cec0e8bb3f3ce2aac579;hp=2da9c636f2c6b928d3a7f68908ef845854bff3da;hb=2391d7ae5d8a145a250a8b80ab8c93ba74eba030;hpb=8d76501168e44398feb36ae4d378178a676d8f2c diff --git a/lib/gfxpoly/renderpoly.c b/lib/gfxpoly/renderpoly.c index 2da9c63..240859d 100644 --- a/lib/gfxpoly/renderpoly.c +++ b/lib/gfxpoly/renderpoly.c @@ -140,8 +140,8 @@ unsigned char* render_polygon(gfxpoly_t*polygon, intbbox_t*bbox, double zoom, wi int polygon_nr = 0; int s,t; - for(s=0;snum_strokes;s++) { - gfxpolystroke_t*stroke = &polygon->strokes[s]; + gfxpolystroke_t*stroke = polygon->strokes; + for(;stroke;stroke=stroke->next) { for(t=0;tnum_points-1;t++) { point_t a = stroke->points[t]; point_t b = stroke->points[t+1]; @@ -175,7 +175,7 @@ unsigned char* render_polygon(gfxpoly_t*polygon, intbbox_t*bbox, double zoom, wi } if(fill.is_filled && lastx!=buf->width) { /* we're bleeding, fill over padding, too. */ - fprintf(stderr, "Polygon %08x is bleeding in line %d\n", polygon, y); + fprintf(stderr, "Polygon %08x is bleeding in line %d\n", (int)polygon, y); fill_bitwise(line, lastx, width8*8); assert(line[width8-1]&0x01); bleeding = 1; @@ -198,8 +198,8 @@ unsigned char* render_polygon(gfxpoly_t*polygon, intbbox_t*bbox, double zoom, wi #define MAX_WIDTH 8192 #define MAX_HEIGHT 4096 -static inline max(double a, double b) {return a>b?a:b;} -static inline min(double a, double b) {return ab?a:b;} +static inline double min(double a, double b) {return agridsize; - if(polygon->num_strokes && polygon->strokes[0].num_points) { - b.xmin = polygon->strokes[0].points[0].x*g; - b.ymin = polygon->strokes[0].points[0].y*g; - b.xmax = polygon->strokes[0].points[0].x*g; - b.ymax = polygon->strokes[0].points[0].y*g; + if(polygon->strokes && polygon->strokes->num_points) { + b.xmin = polygon->strokes->points[0].x*g; + b.ymin = polygon->strokes->points[0].y*g; + b.xmax = polygon->strokes->points[0].x*g; + b.ymax = polygon->strokes->points[0].y*g; } int s,t; - for(s=0;snum_strokes;s++) { - gfxpolystroke_t*stroke = &polygon->strokes[s]; + gfxpolystroke_t*stroke = polygon->strokes; + for(;stroke;stroke=stroke->next) { for(t=0;tnum_points;t++) { point_t p = stroke->points[t]; int x1 = floor(p.x);