X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fdevices%2Fswf.c;h=cf9b6553f32a8b5ea0bcb0b6c1d17d0ec7dbd02a;hb=793ca69db1040ab60dd2c3aa1870452cef6ef150;hp=203a35e91cc1597e8b624d025785c68dc489f35b;hpb=f17227f7fe32f02d84e6ed304f69223be69643cf;p=swftools.git diff --git a/lib/devices/swf.c b/lib/devices/swf.c index 203a35e..cf9b655 100644 --- a/lib/devices/swf.c +++ b/lib/devices/swf.c @@ -694,7 +694,7 @@ static int drawchar(gfxdevice_t*dev, SWFFONT *swffont, int charid, float x, floa } if(charid<0 || charid>=swffont->numchars) { - msg(" No character %d in font %s ", charid, FIXNULL((char*)swffont->name)); + msg(" No character %d in font %s (%d chars)", charid, FIXNULL((char*)swffont->name), swffont->numchars); return 0; } /*if(swffont->glyph[charid].shape->bitlen <= 16) { @@ -733,7 +733,7 @@ static void endtext(gfxdevice_t*dev) if(i->textid<0) return; - i->tag = swf_InsertTag(i->tag,ST_DEFINETEXT); + i->tag = swf_InsertTag(i->tag,ST_DEFINETEXT2); swf_SetU16(i->tag, i->textid); SRECT r; @@ -2438,9 +2438,10 @@ static SWFFONT* gfxfont_to_swffont(gfxfont_t*font, const char* id) swffont->glyph[t].shape = swf_ShapeDrawerToShape(&draw); swffont->layout->bounds[t] = swf_ShapeDrawerGetBBox(&draw); - if(swffont->layout->bounds[t].xmax && swffont->layout->bounds[t].xmax*2 < advance) { - printf("fix bad advance value: bbox=%d, advance=%d (%f)\n", swffont->layout->bounds[t].xmax, advance, font->glyphs[t].advance); - advance = swffont->layout->bounds[t].xmax; + int xmax = swffont->layout->bounds[t].xmax / 20; + if(xmax>0 && xmax*2 < advance) { + printf("fix bad advance value: bbox=%d, advance=%d (%f)\n", xmax, advance, font->glyphs[t].advance); + advance = xmax; } if(advance<32768) {