#!/usr/bin/python # $Id$ def convert_def(fn): src=file(fn) line=src.readline() tw,th,fh,fa,fd=map(int, line.split()) result="native_size %d;\n"%fh result+="ascent %.3f;\n"%(float(fa)/fh) result+="descent %.3f;\n"%(float(fd)/fh) for line in src.readlines(): g,x,y,w,h,ox,oy,a=map(int, line.split()) result+="glyph %d\n{\n"%g result+="\ttexcoords %f %f %f %f;\n"%(float(x)/tw, float(th-y-h)/th, float(x+w)/tw, float(th-y)/th) result+="\tsize %.3f %.3f;\n"%(float(w)/fh, float(h)/fh) result+="\toffset %.3f %.3f;\n"%(float(ox)/fh, float(oy)/fh) result+="\tadvance %.3f;\n"%(float(a)/fh) result+="};\n" return result def make_font(fn, size): import maketex import os if os.system("ttf2png \"%s\" -o makefont-tmp.png -d makefont-tmp.def -t -p -s %d"%(fn, size)): raise Exception("Could not execute ttf2png") result="texture\n{\n" result+="wrap CLAMP_TO_EDGE;\n" result+=maketex.make_tex("makefont-tmp.png") result+="};\n" result+=convert_def("makefont-tmp.def") os.unlink("makefont-tmp.png") os.unlink("makefont-tmp.def") return result if __name__=="__main__": import sys if len(sys.argv)<4: import os print "Usage: %s "%os.path.basename(sys.argv[0]) else: out=file(sys.argv[2], "w") out.write(make_font(sys.argv[1], int(sys.argv[3])))