Add a hack for a-macron-acute characters (see #1039)

This was SVN commit r10796.
This commit is contained in:
Ykkrosh 2011-12-22 22:44:57 +00:00
parent 4e52b2cceb
commit 9f0e357f09
3 changed files with 153 additions and 1 deletions

View File

@ -518,6 +518,20 @@
023F: ȿ LATIN SMALL LETTER S WITH SWASH TAIL
0240: ɀ LATIN SMALL LETTER Z WITH SWASH TAIL
0241: Ɂ LATIN CAPITAL LETTER GLOTTAL STOP
0242: ɂ LATIN SMALL LETTER GLOTTAL STOP
0243: Ƀ LATIN CAPITAL LETTER B WITH STROKE
0244: Ʉ LATIN CAPITAL LETTER U BAR
0245: Ʌ LATIN CAPITAL LETTER TURNED V
0246: Ɇ LATIN CAPITAL LETTER E WITH STROKE
0247: ɇ LATIN SMALL LETTER E WITH STROKE
0248: Ɉ LATIN CAPITAL LETTER J WITH STROKE
0249: ɉ LATIN SMALL LETTER J WITH STROKE
024A: Ɋ LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL
024B: ɋ LATIN SMALL LETTER Q WITH HOOK TAIL
024C: Ɍ LATIN CAPITAL LETTER R WITH STROKE
024D: ɍ LATIN SMALL LETTER R WITH STROKE
024E: Ɏ LATIN CAPITAL LETTER Y WITH STROKE
024F: ɏ LATIN SMALL LETTER Y WITH STROKE
# Latin Extended Additional
1E00: Ḁ LATIN CAPITAL LETTER A WITH RING BELOW
@ -676,6 +690,10 @@
1E99: ẙ LATIN SMALL LETTER Y WITH RING ABOVE
1E9A: ẚ LATIN SMALL LETTER A WITH RIGHT HALF RING
1E9B: ẛ LATIN SMALL LETTER LONG S WITH DOT ABOVE
1E9C: ẜ LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE
1E9D: ẝ LATIN SMALL LETTER LONG S WITH HIGH STROKE
1E9E: ẞ LATIN CAPITAL LETTER SHARP S
1E9F: ẟ LATIN SMALL LETTER DELTA
1EA0: Ạ LATIN CAPITAL LETTER A WITH DOT BELOW
1EA1: ạ LATIN SMALL LETTER A WITH DOT BELOW
1EA2: Ả LATIN CAPITAL LETTER A WITH HOOK ABOVE
@ -766,6 +784,12 @@
1EF7: ỷ LATIN SMALL LETTER Y WITH HOOK ABOVE
1EF8: Ỹ LATIN CAPITAL LETTER Y WITH TILDE
1EF9: ỹ LATIN SMALL LETTER Y WITH TILDE
1EFA: Ỻ LATIN CAPITAL LETTER MIDDLE-WELSH LL
1EFB: ỻ LATIN SMALL LETTER MIDDLE-WELSH LL
1EFC: Ỽ LATIN CAPITAL LETTER MIDDLE-WELSH V
1EFD: ỽ LATIN SMALL LETTER MIDDLE-WELSH V
1EFE: Ỿ LATIN CAPITAL LETTER Y WITH LOOP
1EFF: ỿ LATIN SMALL LETTER Y WITH LOOP
# Spacing Modifier Letters
02B0: ʰ MODIFIER LETTER SMALL H
@ -950,6 +974,7 @@
2061: ⁡ FUNCTION APPLICATION
2062: ⁢ INVISIBLE TIMES
2063: ⁣ INVISIBLE SEPARATOR
2064: ⁤ INVISIBLE PLUS
206A:  INHIBIT SYMMETRIC SWAPPING
206B:  ACTIVATE SYMMETRIC SWAPPING
206C:  INHIBIT ARABIC FORM SHAPING
@ -957,5 +982,119 @@
206E:  NATIONAL DIGIT SHAPES
206F:  NOMINAL DIGIT SHAPES
# Combining Diacritical Marks
0300: ̀ COMBINING GRAVE ACCENT
0301: ́ COMBINING ACUTE ACCENT
0302: ̂ COMBINING CIRCUMFLEX ACCENT
0303: ̃ COMBINING TILDE
0304: ̄ COMBINING MACRON
0305: ̅ COMBINING OVERLINE
0306: ̆ COMBINING BREVE
0307: ̇ COMBINING DOT ABOVE
0308: ̈ COMBINING DIAERESIS
0309: ̉ COMBINING HOOK ABOVE
030A: ̊ COMBINING RING ABOVE
030B: ̋ COMBINING DOUBLE ACUTE ACCENT
030C: ̌ COMBINING CARON
030D: ̍ COMBINING VERTICAL LINE ABOVE
030E: ̎ COMBINING DOUBLE VERTICAL LINE ABOVE
030F: ̏ COMBINING DOUBLE GRAVE ACCENT
0310: ̐ COMBINING CANDRABINDU
0311: ̑ COMBINING INVERTED BREVE
0312: ̒ COMBINING TURNED COMMA ABOVE
0313: ̓ COMBINING COMMA ABOVE
0314: ̔ COMBINING REVERSED COMMA ABOVE
0315: ̕ COMBINING COMMA ABOVE RIGHT
0316: ̖ COMBINING GRAVE ACCENT BELOW
0317: ̗ COMBINING ACUTE ACCENT BELOW
0318: ̘ COMBINING LEFT TACK BELOW
0319: ̙ COMBINING RIGHT TACK BELOW
031A: ̚ COMBINING LEFT ANGLE ABOVE
031B: ̛ COMBINING HORN
031C: ̜ COMBINING LEFT HALF RING BELOW
031D: ̝ COMBINING UP TACK BELOW
031E: ̞ COMBINING DOWN TACK BELOW
031F: ̟ COMBINING PLUS SIGN BELOW
0320: ̠ COMBINING MINUS SIGN BELOW
0321: ̡ COMBINING PALATALIZED HOOK BELOW
0322: ̢ COMBINING RETROFLEX HOOK BELOW
0323: ̣ COMBINING DOT BELOW
0324: ̤ COMBINING DIAERESIS BELOW
0325: ̥ COMBINING RING BELOW
0326: ̦ COMBINING COMMA BELOW
0327: ̧ COMBINING CEDILLA
0328: ̨ COMBINING OGONEK
0329: ̩ COMBINING VERTICAL LINE BELOW
032A: ̪ COMBINING BRIDGE BELOW
032B: ̫ COMBINING INVERTED DOUBLE ARCH BELOW
032C: ̬ COMBINING CARON BELOW
032D: ̭ COMBINING CIRCUMFLEX ACCENT BELOW
032E: ̮ COMBINING BREVE BELOW
032F: ̯ COMBINING INVERTED BREVE BELOW
0330: ̰ COMBINING TILDE BELOW
0331: ̱ COMBINING MACRON BELOW
0332: ̲ COMBINING LOW LINE
0333: ̳ COMBINING DOUBLE LOW LINE
0334: ̴ COMBINING TILDE OVERLAY
0335: ̵ COMBINING SHORT STROKE OVERLAY
0336: ̶ COMBINING LONG STROKE OVERLAY
0337: ̷ COMBINING SHORT SOLIDUS OVERLAY
0338: ̸ COMBINING LONG SOLIDUS OVERLAY
0339: ̹ COMBINING RIGHT HALF RING BELOW
033A: ̺ COMBINING INVERTED BRIDGE BELOW
033B: ̻ COMBINING SQUARE BELOW
033C: ̼ COMBINING SEAGULL BELOW
033D: ̽ COMBINING X ABOVE
033E: ̾ COMBINING VERTICAL TILDE
033F: ̿ COMBINING DOUBLE OVERLINE
0340: ̀ COMBINING GRAVE TONE MARK
0341: ́ COMBINING ACUTE TONE MARK
0342: ͂ COMBINING GREEK PERISPOMENI
0343: ̓ COMBINING GREEK KORONIS
0344: ̈́ COMBINING GREEK DIALYTIKA TONOS
0345: ͅ COMBINING GREEK YPOGEGRAMMENI
0346: ͆ COMBINING BRIDGE ABOVE
0347: ͇ COMBINING EQUALS SIGN BELOW
0348: ͈ COMBINING DOUBLE VERTICAL LINE BELOW
0349: ͉ COMBINING LEFT ANGLE BELOW
034A: ͊ COMBINING NOT TILDE ABOVE
034B: ͋ COMBINING HOMOTHETIC ABOVE
034C: ͌ COMBINING ALMOST EQUAL TO ABOVE
034D: ͍ COMBINING LEFT RIGHT ARROW BELOW
034E: ͎ COMBINING UPWARDS ARROW BELOW
034F: ͏ COMBINING GRAPHEME JOINER
0350: ͐ COMBINING RIGHT ARROWHEAD ABOVE
0351: ͑ COMBINING LEFT HALF RING ABOVE
0352: ͒ COMBINING FERMATA
0353: ͓ COMBINING X BELOW
0354: ͔ COMBINING LEFT ARROWHEAD BELOW
0355: ͕ COMBINING RIGHT ARROWHEAD BELOW
0356: ͖ COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW
0357: ͗ COMBINING RIGHT HALF RING ABOVE
0358: ͘ COMBINING DOT ABOVE RIGHT
0359: ͙ COMBINING ASTERISK BELOW
035A: ͚ COMBINING DOUBLE RING BELOW
035B: ͛ COMBINING ZIGZAG ABOVE
035C: ͜ COMBINING DOUBLE BREVE BELOW
035D: ͝ COMBINING DOUBLE BREVE
035E: ͞ COMBINING DOUBLE MACRON
035F: ͟ COMBINING DOUBLE MACRON BELOW
0360: ͠ COMBINING DOUBLE TILDE
0361: ͡ COMBINING DOUBLE INVERTED BREVE
0362: ͢ COMBINING DOUBLE RIGHTWARDS ARROW BELOW
0363: ͣ COMBINING LATIN SMALL LETTER A
0364: ͤ COMBINING LATIN SMALL LETTER E
0365: ͥ COMBINING LATIN SMALL LETTER I
0366: ͦ COMBINING LATIN SMALL LETTER O
0367: ͧ COMBINING LATIN SMALL LETTER U
0368: ͨ COMBINING LATIN SMALL LETTER C
0369: ͩ COMBINING LATIN SMALL LETTER D
036A: ͪ COMBINING LATIN SMALL LETTER H
036B: ͫ COMBINING LATIN SMALL LETTER M
036C: ͬ COMBINING LATIN SMALL LETTER R
036D: ͭ COMBINING LATIN SMALL LETTER T
036E: ͮ COMBINING LATIN SMALL LETTER V
036F: ͯ COMBINING LATIN SMALL LETTER X
FE33: ︳ PRESENTATION FORM FOR VERTICAL LOW LINE
FFFD: � REPLACEMENT CHARACTER

View File

@ -145,7 +145,19 @@ def generate_font(chars, outname, ttf, loadopts, size, renderstyle):
fnt.write("%d\n" % charheight)
glyphs.sort(key = lambda g: ord(g.char))
for g in glyphs:
fnt.write("%d %d %d %d %d %d %d %d\n" % (ord(g.char), g.pos.x, h-g.pos.y, g.w, g.h, -g.x0, g.y0, g.xadvance))
x0 = g.x0
y0 = g.y0
# UGLY HACK: see http://trac.wildfiregames.com/ticket/1039 ;
# to handle a-macron-acute characters without the hassle of
# doing proper OpenType GPOS layout (which the Pagella font
# doesn't support anyway), we'll just shift the combining acute
# glyph by an arbitrary amount to make it roughly the right
# place when used after an a-macron glyph.
if ord(g.char) == 0x0301:
y0 += charheight/3
fnt.write("%d %d %d %d %d %d %d %d\n" % (ord(g.char), g.pos.x, h-g.pos.y, g.w, g.h, -x0, y0, g.xadvance))
fnt.close()
return

View File

@ -16,6 +16,7 @@ for ( # (these are probably more than we really need)
'Latin Extended Additional',
'Spacing Modifier Letters',
'General Punctuation',
'Combining Diacritical Marks',
) {
print "# $_\n";
for my $r (@{Unicode::UCD::charblock($_)}) {