X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fdevices%2Fswf.c;h=764f591a163f345425c86ab32199dc4c81e9aff9;hb=c4d1967a7fdeb51f311012e56bc0567e842a97e0;hp=c23783b617ad10f71cce4d4682de7d16b1138030;hpb=9e546e0ca2d4472b77020cfc745f281b7864e6f9;p=swftools.git diff --git a/lib/devices/swf.c b/lib/devices/swf.c index c23783b..764f591 100644 --- a/lib/devices/swf.c +++ b/lib/devices/swf.c @@ -89,6 +89,7 @@ typedef struct _swfoutput_internal int config_enablezlib; int config_insertstoptag; int config_watermark; + int config_noclips; int config_flashversion; int config_reordertags; int config_showclipshapes; @@ -2021,6 +2022,8 @@ int swf_setparameter(gfxdevice_t*dev, const char*name, const char*value) i->config_caplinewidth = atof(value); } else if(!strcmp(name, "linktarget")) { i->config_linktarget = strdup(value); + } else if(!strcmp(name, "noclips")) { + i->config_noclips = atoi(value); } else if(!strcmp(name, "dumpfonts")) { i->config_dumpfonts = atoi(value); } else if(!strcmp(name, "animate")) { @@ -2313,6 +2316,8 @@ static void drawoutline(gfxdevice_t*dev, gfxline_t*line) static void swf_startclip(gfxdevice_t*dev, gfxline_t*line) { swfoutput_internal*i = (swfoutput_internal*)dev->internal; + if(i->config_noclips) + return; endtext(dev); endshape(dev); @@ -2379,6 +2384,8 @@ static void swf_startclip(gfxdevice_t*dev, gfxline_t*line) static void swf_endclip(gfxdevice_t*dev) { swfoutput_internal*i = (swfoutput_internal*)dev->internal; + if(i->config_noclips) + return; if(i->textid>=0) endtext(dev); if(i->shapeid>=0) @@ -2540,11 +2547,11 @@ static void swf_stroke(gfxdevice_t*dev, gfxline_t*line, gfxcoord_t width, gfxcol if(has_dots) gfxline_fix_short_edges(line); /* we need to convert the line into a polygon */ - gfxpoly_t* poly = gfxpoly_strokeToPoly(line, width, cap_style, joint_style, miterLimit); - gfxline_t*gfxline = gfxpoly_to_gfxline(poly); + gfxpoly_t* poly = gfxpoly_from_stroke(line, width, cap_style, joint_style, miterLimit, DEFAULT_GRID); + gfxline_t*gfxline = gfxline_from_gfxpoly(poly); dev->fill(dev, gfxline, color); gfxline_free(gfxline); - gfxpoly_free(poly); + gfxpoly_destroy(poly); return; } @@ -2740,6 +2747,7 @@ static SWFFONT* gfxfont_to_swffont(gfxfont_t*font, const char* id) swf_Shape01DrawerInit(&draw, 0); line = font->glyphs[t].line; + while(line) { FPOINT c,to; c.x = line->sx * GLYPH_SCALE; c.y = line->sy * GLYPH_SCALE;