free(tmp);
}
-static void drawgfxline(gfxdevice_t*dev, gfxline_t*line)
+static void drawgfxline(gfxdevice_t*dev, gfxline_t*line, int fill)
{
swfoutput_internal*i = (swfoutput_internal*)dev->internal;
gfxcoord_t lastx=0,lasty=0,px=0,py=0;
char lastwasmoveto;
int lines= 0, splines=0;
+
+ i->fill = fill;
+
while(1) {
if(!line)
break;
swf_SetShapeBits(i->tag,i->shape);
swf_ShapeSetAll(i->tag,i->shape,/*x*/0,/*y*/0,0,fsid,0);
i->swflastx = i->swflasty = 0;
- drawgfxline(dev, points);
+ drawgfxline(dev, points, 1);
swf_ShapeSetEnd(i->tag);
/* shape2 */
swf_SetShapeBits(i->tag,i->shape);
swf_ShapeSetAll(i->tag,i->shape,/*x*/0,/*y*/0,0,fsid,0);
i->swflastx = i->swflasty = 0;
- drawgfxline(dev, points);
+ drawgfxline(dev, points, 1);
swf_ShapeSetEnd(i->tag);
if(!mouseover)
i->config_linkcolor.a = NIBBLE(value[6])<<4 | NIBBLE(value[7]);
} else if(!strcmp(name, "help")) {
printf("\nSWF layer options:\n");
- printf("jpegdpi=<dpi> resolution adjustment for jpeg images\n");
printf("jpegsubpixels=<pixels> resolution adjustment for jpeg images (same as jpegdpi, but in pixels)\n");
- printf("ppmdpi=<dpi> resolution adjustment for lossless images\n");
printf("ppmsubpixels=<pixels resolution adjustment for lossless images (same as ppmdpi, but in pixels)\n");
printf("subpixels=<pixels> shortcut for setting both jpegsubpixels and ppmsubpixels\n");
printf("drawonlyshapes convert everything to shapes (currently broken)\n");
printf("protect add a \"protect\" tag to the file, to prevent loading in the Flash editor\n");
printf("flashversion=<version> the SWF fileversion (6)\n");
printf("minlinewidth=<width> convert horizontal/vertical boxes smaller than this width to lines (0.05) \n");
+ printf("simpleviewer Add next/previous buttons to the SWF\n");
printf("animate insert a showframe tag after each placeobject (animate draw order of PDF files)\n");
printf("jpegquality=<quality> set compression quality of jpeg images\n");
} else {
swf_SetShapeBits(i->tag,shape);
swf_ShapeSetAll(i->tag,shape,UNDEFINED_COORD,UNDEFINED_COORD,0,fsid,0);
i->swflastx = i->swflasty = UNDEFINED_COORD;
- drawgfxline(dev, line);
+ drawgfxline(dev, line, 1);
swf_ShapeSetEnd(i->tag);
swf_ShapeFree(shape);
swf_ShapeCountBits(shape,NULL,NULL);
swf_SetShapeBits(i->tag,shape);
swf_ShapeSetAll(i->tag,shape,UNDEFINED_COORD,UNDEFINED_COORD,lsid,0,0);
- drawgfxline(dev, line);
+ drawgfxline(dev, line, 1);
swf_ShapeSetEnd(i->tag);
swf_ShapeFree(shape);
swf_ShapeSetAll(i->tag,shape,UNDEFINED_COORD,UNDEFINED_COORD,0,fsid,0);
i->swflastx = i->swflasty = UNDEFINED_COORD;
i->shapeisempty = 1;
- drawgfxline(dev, line);
+ drawgfxline(dev, line, 1);
if(i->shapeisempty) {
/* an empty clip shape is equivalent to a shape with no area */
int x = line?line->x:0;
swfoutput_setlinewidth(dev, width);
startshape(dev);
stopFill(dev);
- drawgfxline(dev, line);
+ drawgfxline(dev, line, 0);
if(i->config_normalize_polygon_positions) {
free(line); //account for _move
swfoutput_setfillcolor(dev, color->r, color->g, color->b, color->a);
startshape(dev);
startFill(dev);
- i->fill=1;
- drawgfxline(dev, line);
+ drawgfxline(dev, line, 1);
if(i->currentswfid==2 && r.xmin==0 && r.ymin==0 && r.xmax==i->max_x && r.ymax==i->max_y) {
if(i->config_watermark) {
swf_SetShapeBits(i->tag,shape);
swf_ShapeSetAll(i->tag,shape,UNDEFINED_COORD,UNDEFINED_COORD,0,fsid,0);
i->swflastx = i->swflasty = UNDEFINED_COORD;
- drawgfxline(dev, line);
+ drawgfxline(dev, line, 1);
swf_ShapeSetEnd(i->tag);
swf_ShapeFree(shape);
msg("<verbose> Moving character origin to %f %f\n", matrix->tx, matrix->ty);
endtext(dev);
setfontscale(dev, matrix->m00, matrix->m01, matrix->m10, matrix->m11, matrix->tx, matrix->ty, 1);
+ /* since we just moved the char origin to the current char's position,
+ it now has the relative position (0,0) */
+ x = y = 0;
}
if(i->shapeid>=0)