X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=blobdiff_plain;f=lib%2Fmodules%2Fswfalignzones.c;h=027585ff46c260384bac865de0c475a14f164cb9;hp=21780d35fca64ecfe2765e0297458b71d7664a7b;hb=5c25a1fc058ae69818976cbb0e6c6b2f6a1aada5;hpb=18cb339268fdf827801ef1ddf3cd714014fd22d1 diff --git a/lib/modules/swfalignzones.c b/lib/modules/swfalignzones.c index 21780d3..027585f 100644 --- a/lib/modules/swfalignzones.c +++ b/lib/modules/swfalignzones.c @@ -235,15 +235,15 @@ void swf_FontCreateAlignZones(SWFFONT * f) memset(column, 0, sizeof(float)*(height+1)); int s; int drawn = 0; - printf("[font %d] pairing %c with ", f->id, f->glyph2ascii[t]); for(s=0;suse->num_neighbors;s++) { - if(f->use->neighbors[s].char2 == t) { - printf("%c (%d) ", f->glyph2ascii[f->use->neighbors[s].char1], f->use->neighbors[s].num); - draw_char(f, f->use->neighbors[s].char1, row, column, bounds); + int char1 = f->use->neighbors[s].char1; + int char2 = f->use->neighbors[s].char2; + if(char1 == t || char2 == t) { + int other = t==char1?char2:char1; + draw_char(f, other, row, column, bounds); drawn++; } } - printf("\n"); for(s=0;s<=height;s++) { column[t] /= drawn*2; @@ -262,6 +262,26 @@ void swf_FontCreateAlignZones(SWFFONT * f) } } +void swf_FontPostprocess(SWF*swf) +{ + TAG*tag = swf->firstTag; + while(tag) { + TAG*next = tag->next; + if(tag->id == ST_DEFINEFONT3) { + U16 id = swf_GetDefineID(tag); + SWFFONT*font = 0; + swf_FontExtract(swf, id, &font); + if(!font->alignzones) { + swf_FontCreateAlignZones(font); + tag = swf_InsertTag(tag, ST_DEFINEFONTALIGNZONES); + swf_FontSetAlignZones(tag, font); + } + swf_FontFree(font); + } + tag = next; + } +} + void swf_FontSetAlignZones(TAG*t, SWFFONT *f) { swf_SetU16(t, f->id); @@ -288,4 +308,3 @@ void swf_FontSetAlignZones(TAG*t, SWFFONT *f) } } -