1*37da2899SCharles.Forsyth /* 2*37da2899SCharles.Forsyth * interface to libfreetype without recourse to the real freetype headers 3*37da2899SCharles.Forsyth * which would otherwise require full-blown CPP 4*37da2899SCharles.Forsyth */ 5*37da2899SCharles.Forsyth 6*37da2899SCharles.Forsyth typedef struct FTfaceinfo FTfaceinfo; 7*37da2899SCharles.Forsyth struct FTfaceinfo { 8*37da2899SCharles.Forsyth int nfaces; 9*37da2899SCharles.Forsyth int index; 10*37da2899SCharles.Forsyth int style; 11*37da2899SCharles.Forsyth int height; 12*37da2899SCharles.Forsyth int ascent; 13*37da2899SCharles.Forsyth char* familyname; 14*37da2899SCharles.Forsyth char* stylename; 15*37da2899SCharles.Forsyth }; 16*37da2899SCharles.Forsyth 17*37da2899SCharles.Forsyth typedef struct FTface FTface; 18*37da2899SCharles.Forsyth struct FTface { 19*37da2899SCharles.Forsyth void* ft_lib; 20*37da2899SCharles.Forsyth void* ft_face; 21*37da2899SCharles.Forsyth }; 22*37da2899SCharles.Forsyth 23*37da2899SCharles.Forsyth typedef struct FTglyph FTglyph; 24*37da2899SCharles.Forsyth struct FTglyph { 25*37da2899SCharles.Forsyth int top; 26*37da2899SCharles.Forsyth int left; 27*37da2899SCharles.Forsyth int advx; 28*37da2899SCharles.Forsyth int advy; 29*37da2899SCharles.Forsyth int height; 30*37da2899SCharles.Forsyth int width; 31*37da2899SCharles.Forsyth int bpr; 32*37da2899SCharles.Forsyth uchar* bitmap; 33*37da2899SCharles.Forsyth }; 34*37da2899SCharles.Forsyth 35*37da2899SCharles.Forsyth typedef struct FTmatrix FTmatrix; 36*37da2899SCharles.Forsyth struct FTmatrix { 37*37da2899SCharles.Forsyth int a; 38*37da2899SCharles.Forsyth int b; 39*37da2899SCharles.Forsyth int c; 40*37da2899SCharles.Forsyth int d; 41*37da2899SCharles.Forsyth }; 42*37da2899SCharles.Forsyth 43*37da2899SCharles.Forsyth typedef struct FTvector FTvector; 44*37da2899SCharles.Forsyth struct FTvector { 45*37da2899SCharles.Forsyth int dx; 46*37da2899SCharles.Forsyth int dy; 47*37da2899SCharles.Forsyth }; 48*37da2899SCharles.Forsyth 49*37da2899SCharles.Forsyth extern char* ftnewface(char *, int, FTface*, FTfaceinfo*); 50*37da2899SCharles.Forsyth extern char* ftloadmemface(void*, int, int, FTface*, FTfaceinfo*); 51*37da2899SCharles.Forsyth extern char* ftsetcharsize(FTface, int, int, int, FTfaceinfo*); 52*37da2899SCharles.Forsyth extern void ftsettransform(FTface, FTmatrix*, FTvector*); 53*37da2899SCharles.Forsyth extern int fthaschar(FTface,int); 54*37da2899SCharles.Forsyth extern char* ftloadglyph(FTface, int, FTglyph*); 55*37da2899SCharles.Forsyth extern void ftdoneface(FTface); 56