flags |= 4; //wide codecs
if(fontSize(f)>65535)
flags |= 8; //wide offsets
- flags |= 8; //FIXME: the above check doesn't work
+ flags |= 8|4; //FIXME: the above check doesn't work
if(f->encoding & FONT_ENCODING_ANSI)
flags |= 16; // ansi
if(f->glyphnames) {
int t;
for(t=0;t<f->numchars;t++) {
- free(f->glyphnames[t]);
+ if(f->glyphnames[t])
+ free(f->glyphnames[t]);
}
free(f->glyphnames);
}
swf_SetU16(t, WRITEFONTID);
swf_SetU16(t, font->numchars);
for(c=0;c<font->numchars;c++) {
- swf_SetString(t, font->glyphnames[c]);
+ if(font->glyphnames[c])
+ swf_SetString(t, font->glyphnames[c]);
+ else
+ swf_SetString(t, "");
}
}
swf_SetString(tag,text);
}
-SRECT swf_SetDefineText(TAG*tag, SWFFONT*font, RGBA*rgb, char*text, int scale)
+SRECT swf_SetDefineText(TAG*tag, SWFFONT*font, RGBA*rgb, char*text, int scale, MATRIX* m)
{
SRECT r;
U8 gbits, abits;
}
swf_SetRect(tag,&r);
- swf_SetMatrix(tag,NULL);
+ swf_SetMatrix(tag,m);
swf_TextCountBitsUTF8(font,text,scale*20,&gbits,&abits);
swf_SetU8(tag,gbits);
swf_SetU8(tag,abits);