git.asbjorn.biz
/
swftools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed bug in reader_memread()
[swftools.git]
/
lib
/
devices
/
swf.c
diff --git
a/lib/devices/swf.c
b/lib/devices/swf.c
index
ced14e9
..
8cbfec0
100644
(file)
--- a/
lib/devices/swf.c
+++ b/
lib/devices/swf.c
@@
-727,6
+727,10
@@
static int drawchar(gfxdevice_t*dev, SWFFONT *swffont, int charid, float x, floa
p.y = (SCOORD)((- x * i->fontmatrix.r0/65536.0 + y * i->fontmatrix.sx/65536.0)*det);
RGBA rgba = *(RGBA*)col;
p.y = (SCOORD)((- x * i->fontmatrix.r0/65536.0 + y * i->fontmatrix.sx/65536.0)*det);
RGBA rgba = *(RGBA*)col;
+
+ msg("<trace> Drawing char %d in font %d at %d,%d in color %02x%02x%02x%02x",
+ charid, swffont->id, p.x,p.y, rgba.r, rgba.g, rgba.b, rgba.a);
+
putcharacter(dev, swffont->id, charid,p.x,p.y,i->current_font_size, rgba);
swf_FontUseGlyph(swffont, charid);
return 1;
putcharacter(dev, swffont->id, charid,p.x,p.y,i->current_font_size, rgba);
swf_FontUseGlyph(swffont, charid);
return 1;
@@
-2466,8
+2470,8
@@
static SWFFONT* gfxfont_to_swffont(gfxfont_t*font, const char* id)
advance = xmax;
}
advance = xmax;
}
- if(advance<32768) {
- swffont->glyph[t].advance = advance;
+ if(advance<32768/20) {
+ swffont->glyph[t].advance = advance*20;
} else {
swffont->glyph[t].advance = 32767;
}
} else {
swffont->glyph[t].advance = 32767;
}
@@
-2485,6
+2489,9
@@
static SWFFONT* gfxfont_to_swffont(gfxfont_t*font, const char* id)
swffont->layout->descent = (bounds.ymax - bounds.ymin)/2;
swffont->layout->leading = bounds.ymax - bounds.ymin;
}
swffont->layout->descent = (bounds.ymax - bounds.ymin)/2;
swffont->layout->leading = bounds.ymax - bounds.ymin;
}
+ swffont->layout->descent= (bounds.ymax - bounds.ymin);
+ swffont->layout->ascent = 0;
+ swffont->layout->leading = bounds.ymax - bounds.ymin;
return swffont;
}
return swffont;
}
@@
-2563,8
+2570,10
@@
static void swf_switchfont(gfxdevice_t*dev, const char*fontid)
static void swf_drawchar(gfxdevice_t*dev, gfxfont_t*font, int glyph, gfxcolor_t*color, gfxmatrix_t*matrix)
{
swfoutput_internal*i = (swfoutput_internal*)dev->internal;
static void swf_drawchar(gfxdevice_t*dev, gfxfont_t*font, int glyph, gfxcolor_t*color, gfxmatrix_t*matrix)
{
swfoutput_internal*i = (swfoutput_internal*)dev->internal;
- if(!font)
+ if(!font) {
+ msg("<error> swf_drawchar called (glyph %d) without font", glyph);
return;
return;
+ }
if(!i->swffont || !i->swffont->name || strcmp((char*)i->swffont->name,font->id)) // not equal to current font
{
if(!i->swffont || !i->swffont->name || strcmp((char*)i->swffont->name,font->id)) // not equal to current font
{