X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fmodules%2Fswftext.c;h=d2b8989a81b35edbf48f92e93970e09901b9b302;hb=e0a27e1bd83ff2d60745dd6030e0f5ef7ef97b82;hp=dcea6beb2226d5244d3969faf3b086ef33c27425;hpb=32bce7795076522c72a9c7f5720a6774f5f8223c;p=swftools.git diff --git a/lib/modules/swftext.c b/lib/modules/swftext.c index dcea6be..d2b8989 100644 --- a/lib/modules/swftext.c +++ b/lib/modules/swftext.c @@ -310,7 +310,8 @@ int swf_FontExtract_DefineFont2(int id, SWFFONT * font, TAG * tag) 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); @@ -1324,7 +1325,7 @@ SRECT swf_TextCalculateBBoxUTF8(SWFFONT * font, U8 * s, int scale) } -SWFFONT *swf_ReadFont(char *filename) +SWFFONT *swf_ReadFont(const char *filename) { int f; SWF swf; @@ -1364,7 +1365,7 @@ void swf_WriteFont(SWFFONT * font, char *filename) memset(&swf, 0x00, sizeof(SWF)); - swf.fileVersion = 4; + swf.fileVersion = 9; swf.frameRate = 0x4000; /* if we use DefineFont1 to store the characters, @@ -1389,6 +1390,17 @@ void swf_WriteFont(SWFFONT * font, char *filename) 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; @@ -1512,7 +1524,7 @@ void swf_WriteFont(SWFFONT * font, char *filename) } -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); @@ -1553,7 +1565,7 @@ void swf_SetEditText(TAG * tag, U16 flags, SRECT r, char *text, RGBA * color, in 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; @@ -1676,7 +1688,7 @@ void swf_FontCreateLayout(SWFFONT * f) } } -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;