swf_GetSimpleShape(tag, &(font->glyph[t].shape));
}
- swf_SetTagPos(tag, offset[glyphcount]+offset_start);
+ if(glyphcount)
+ swf_SetTagPos(tag, offset[glyphcount]+offset_start);
free(offset);
}
-SWFFONT *swf_ReadFont(char *filename)
+SWFFONT *swf_ReadFont(const char *filename)
{
int f;
SWF swf;
memset(&swf, 0x00, sizeof(SWF));
- swf.fileVersion = 4;
+ swf.fileVersion = 9;
swf.frameRate = 0x4000;
/* if we use DefineFont1 to store the characters,
t = swf_InsertTag(t, ST_DEFINEFONT2);
swf_FontSetDefine2(t, font);
}
+ if(font->name) {
+ t = swf_InsertTag(t, ST_NAMECHARACTER);
+ swf_SetU16(t, WRITEFONTID);
+ swf_SetString(t, font->name);
+ t = swf_InsertTag(t, ST_EXPORTASSETS);
+ swf_SetU16(t, 1);
+ swf_SetU16(t, WRITEFONTID);
+ swf_SetString(t, font->name);
+
+ t = swf_AddAS3FontDefine(t, WRITEFONTID, font->name);
+ }
if (storeGlyphNames && font->glyphnames) {
int c;
}
-void swf_SetEditText(TAG * tag, U16 flags, SRECT r, char *text, RGBA * color, int maxlength, U16 font, U16 height, EditTextLayout * layout, char *variable)
+void swf_SetEditText(TAG * tag, U16 flags, SRECT r, const char *text, RGBA * color, int maxlength, U16 font, U16 height, EditTextLayout * layout, const char *variable)
{
swf_SetRect(tag, &r);
swf_ResetWriteBits(tag);
swf_SetString(tag, (U8*)text);
}
-SRECT swf_SetDefineText(TAG * tag, SWFFONT * font, RGBA * rgb, char *text, int scale)
+SRECT swf_SetDefineText(TAG * tag, SWFFONT * font, RGBA * rgb, const char *text, int scale)
{
SRECT r;
U8 gbits, abits;
}
}
-void swf_DrawText(drawer_t * draw, SWFFONT * font, int size, char *text)
+void swf_DrawText(drawer_t * draw, SWFFONT * font, int size, const char *text)
{
U8 *s = (U8 *) text;
int advance = 0;