int config_drawonlyshapes;
int config_jpegquality;
int config_storeallcharacters;
+ int config_generate_fake_tags;
int config_enablezlib;
int config_insertstoptag;
int config_flashversion;
int config_bboxvars;
float config_minlinewidth;
double config_caplinewidth;
+ char* config_linktarget;
SWF* swf;
i->config_jpegquality=85;
i->config_storeallcharacters=0;
i->config_enablezlib=0;
+ i->config_generate_fake_tags=0;
i->config_insertstoptag=0;
i->config_flashversion=6;
i->config_splinemaxerror=1;
i->config_bboxvars=0;
i->config_minlinewidth=0.05;
i->config_caplinewidth=1;
+ i->config_linktarget=0;
return i;
};
return 0;
}
/*if(swffont->glyph[charid].shape->bitlen <= 16) {
- msg("<warning> Character '%s' (c=%d,u=%d), glyph %d in current charset (%s, %d characters) is empty",
- FIXNULL(character),charnr, u, charid, FIXNULL((char*)swffont->name), swffont->numchars);
- return 0;
+ msg("<warning> Glyph %d in current charset (%s, %d characters) is empty",
+ charid, FIXNULL((char*)swffont->name), swffont->numchars);
+ return 1;
}*/
if(i->shapeid>=0)
TAG*mtag = i->swf->firstTag;
if(iterator->swffont) {
mtag = swf_InsertTag(mtag, ST_DEFINEFONT2);
- if(!i->config_storeallcharacters)
+ if(!i->config_storeallcharacters) {
+ msg("<debug> Reducing font %s", iterator->swffont->name);
swf_FontReduce(iterator->swffont);
+ }
swf_FontSetDefine2(mtag, iterator->swffont);
}
return (void*)(swf->movieSize.xmax/20);
} else if(!strcmp(name, "ymax")) {
return (void*)(swf->movieSize.ymax/20);
+ } else if(!strcmp(name, "width")) {
+ return (void*)((swf->movieSize.xmax - swf->movieSize.xmin)/20);
+ } else if(!strcmp(name, "height")) {
+ return (void*)((swf->movieSize.ymax - swf->movieSize.ymin)/20);
}
return 0;
}
swfoutput_internal*i = (swfoutput_internal*)dev->internal;
gfxresult_t*result;
+ if(i->config_linktarget) {
+ free(i->config_linktarget);
+ i->config_linktarget = 0;
+ }
+
swfoutput_finalize(dev);
SWF* swf = i->swf;i->swf = 0;
swfoutput_destroy(dev);
static void swfoutput_setlinewidth(gfxdevice_t*dev, double _linewidth)
{
swfoutput_internal*i = (swfoutput_internal*)dev->internal;
- if(i->linewidth == (U16)(_linewidth*20))
+ if(i->linewidth == (U16)(_linewidth*20+19))
return;
-
if(i->shapeid>=0)
endshape(dev);
- i->linewidth = (U16)(_linewidth*20);
+ i->linewidth = (U16)(_linewidth*20+19);
}
endshape(dev);
if(i->textid>=0)
endtext(dev);
-
- if(!i->config_opennewwindow)
- actions = action_GetUrl(0, url, "_parent");
- else
- actions = action_GetUrl(0, url, "_this");
+
+ if(!i->config_linktarget) {
+ if(!i->config_opennewwindow)
+ actions = action_GetUrl(0, url, "_parent");
+ else
+ actions = action_GetUrl(0, url, "_this");
+ } else {
+ actions = action_GetUrl(0, url, i->config_linktarget);
+ }
actions = action_End(actions);
drawlink(dev, actions, 0, points,0);
i->config_bboxvars = atoi(value);
} else if(!strcmp(name, "insertstop")) {
i->config_insertstoptag = atoi(value);
- } else if(!strcmp(name, "protected")) {
+ } else if(!strcmp(name, "protect")) {
i->config_protect = atoi(value);
+ if(i->config_protect && i->tag) {
+ i->tag = swf_InsertTag(i->tag, ST_PROTECT);
+ }
+ } else if(!strcmp(name, "faketags")) {
+ i->config_generate_fake_tags = atoi(value);
} else if(!strcmp(name, "flashversion")) {
i->config_flashversion = atoi(value);
+ if(i->swf) {
+ i->swf->fileVersion = i->config_flashversion;
+ }
} else if(!strcmp(name, "minlinewidth")) {
i->config_minlinewidth = atof(value);
} else if(!strcmp(name, "caplinewidth")) {
i->config_caplinewidth = atof(value);
+ } else if(!strcmp(name, "linktarget")) {
+ i->config_linktarget = strdup(value);
} else if(!strcmp(name, "dumpfonts")) {
i->config_dumpfonts = atoi(value);
} else if(!strcmp(name, "next_bitmap_is_jpeg")) {
return line;
}
-#define NORMALIZE_POLYGON_POSITIONS
+//#define NORMALIZE_POLYGON_POSITIONS
static void swf_stroke(gfxdevice_t*dev, gfxline_t*line, gfxcoord_t width, gfxcolor_t*color, gfx_capType cap_style, gfx_joinType joint_style, gfxcoord_t miterLimit)
{
m.m22 = i->fontm22;
m.m31 = matrix->tx;
m.m32 = matrix->ty;
+
+/* printf("%f %f\n", m.m31, m.m32);
+ {
+ static int xpos = 40;
+ static int ypos = 200;
+ m.m31 = xpos;
+ m.m32 = ypos;
+ xpos += 10;
+ }*/
+
+
drawchar(dev, i->swffont, glyph, &m, color);
}