n = 0;
while (t)
- { if (swf_GetTagID(t)==ST_DEFINEFONTINFO)
+ { if (swf_GetTagID(t)==ST_DEFINEFONTINFO ||
+ swf_GetTagID(t)==ST_DEFINEFONT2)
{ n++;
if (FontCallback)
{ U16 id;
U8 s[257];
swf_SaveTagPos(t);
swf_SetTagPos(t,0);
-
+
id = swf_GetU16(t);
+ if(swf_GetTagID(t) == ST_DEFINEFONT2)
+ swf_GetU16(t);
l = swf_GetU8(t);
swf_GetBlock(t,s,l);
s[l] = 0;
{
int t, glyphcount;
int maxcode;
+ int fid;
U8 flags1,flags2,namelen;
+ swf_SaveTagPos(tag);
+ swf_SetTagPos(tag,0);
font->version=2;
- font->id = swf_GetU16(tag);
+ fid = swf_GetU16(tag);
+ if(id && id!=fid)
+ return;
+ font->id = fid;
flags1 = swf_GetU8(tag);
flags2 = swf_GetU8(tag); //reserved flags
namelen = swf_GetU8(tag);
font->layout->kerning[t].char1 = swf_GetU16(tag);
font->layout->kerning[t].char2 = swf_GetU16(tag);
} else {
- font->layout->kerning[t].char1 = swf_GetU16(tag);
- font->layout->kerning[t].char2 = swf_GetU16(tag);
+ font->layout->kerning[t].char1 = swf_GetU8(tag);
+ font->layout->kerning[t].char2 = swf_GetU8(tag);
}
font->layout->kerning[t].adjustment = swf_GetS16(tag);
}
}
}
+ swf_RestoreTagPos(t);
return font->id;
}
{ int code = f->glyph2ascii[glyph];
if (jobs&FEDTJ_PRINT) printf("%c",code);
if (jobs&FEDTJ_MODIFY)
- /*if (!f->glyph[code].advance)*/ f->glyph[code].advance = adv;
+ /*if (!f->glyph[code].advance)*/ f->glyph[glyph].advance = adv;
}
}
if ((id==fid)&&(jobs&FEDTJ_PRINT)) printf("\n");
}
else
{ swf_ShapeFree(f->glyph[i].shape);
- f->ascii2glyph[f->glyph2ascii[i]] = -1;
+ f->ascii2glyph[f->glyph2ascii[i]] = -1;
f->glyph2ascii[i] = 0;
- f->glyph[i].shape = 0;
+ f->glyph[i].shape = NULL;
f->glyph[i].advance = 0;
}
} else f->ascii2glyph[f->glyph2ascii[i]] = -1;
{
t = swf_InsertTag(NULL,ST_SETBACKGROUNDCOLOR);
swf.firstTag = t;
- rgb.r = 0xff;
- rgb.g = 0xff;
- rgb.b = 0xff;
- swf_SetRGB(t,&rgb);
+ rgb.r = 0xff;
+ rgb.g = 0xff;
+ rgb.b = 0xff;
+ swf_SetRGB(t,&rgb);
t = swf_InsertTag(t,ST_DEFINEFONT);
}
else
swf_FontSetInfo(t,font);
if(!useDefineFont2)
- {
- int textscale = 400;
+ { int textscale = 400;
int s;
int xmax = 0;
int ymax = textscale * 20;
}
}
swf_SetU8(t,0);
+
- t = swf_InsertTag(t,ST_PLACEOBJECT2);
+ t = swf_InsertTag(t,ST_PLACEOBJECT2);
- swf_ObjectPlace(t,font->id+1,1,NULL,NULL,NULL);
+ swf_ObjectPlace(t,font->id+1,1,NULL,NULL,NULL);
- t = swf_InsertTag(t,ST_SHOWFRAME);
+ t = swf_InsertTag(t,ST_SHOWFRAME);
}
t = swf_InsertTag(t,ST_END);