6 for line in src.readlines():
8 if not line or line[0]=='#':
14 tw, th, fh, fa, fd = map(int, parts[1:])
15 result = "native_size %d;\n"%fh
16 result += "ascent %.3f;\n"%(float(fa)/fh)
17 result += "descent %.3f;\n"%(float(fd)/fh)
18 elif parts[0]=="glyph":
19 g, x, y, w, h, ox, oy, a = map(int, parts[1:])
20 result += "glyph %d\n{\n"%g
21 result += "\ttexcoords %f %f %f %f;\n"%(float(x)/tw, float(th-y-h)/th, float(x+w)/tw, float(th-y)/th)
22 result += "\tsize %.3f %.3f;\n"%(float(w)/fh, float(h)/fh)
23 result += "\toffset %.3f %.3f;\n"%(float(ox)/fh, float(oy)/fh)
24 result += "\tadvance %.3f;\n"%(float(a)/fh)
26 elif parts[0]=="kern":
27 l, r, d = map(int, parts[1:])
28 result += "kerning %d %d %.3f;\n"%(l, r, float(d)/fh)
32 def make_font(fn, size):
36 if os.system("ttf2png \"%s\" -o makefont-tmp.png -d makefont-tmp.def -t -p -s %d"%(fn, size)):
37 raise Exception("Could not execute ttf2png")
39 result = "texture\n{\n"
40 result += maketex.make_tex("makefont-tmp.png", wrap="CLAMP_TO_EDGE")
42 result += convert_def("makefont-tmp.def")
44 os.unlink("makefont-tmp.png")
45 os.unlink("makefont-tmp.def")
49 if __name__=="__main__":
54 print "Usage: %s <font.ttf> <outfile> <size>"%os.path.basename(sys.argv[0])
56 out = file(sys.argv[2], "w")
57 out.write(make_font(sys.argv[1], int(sys.argv[3])))