/* * interface to libfreetype without recourse to the real freetype headers * which would otherwise require full-blown CPP */typedef struct FTfaceinfo FTfaceinfo;struct FTfaceinfo { int nfaces; int index; int style; int height; int ascent; char* familyname; char* stylename;};typedef struct FTface FTface;struct FTface { void* ft_lib; void* ft_face;};typedef struct FTglyph FTglyph;struct FTglyph { int top; int left; int advx; int advy; int height; int width; int bpr; uchar* bitmap;};typedef struct FTmatrix FTmatrix;struct FTmatrix { int a; int b; int c; int d;};typedef struct FTvector FTvector;struct FTvector { int dx; int dy;};extern char* ftnewface(char *, int, FTface*, FTfaceinfo*);extern char* ftloadmemface(void*, int, int, FTface*, FTfaceinfo*);extern char* ftsetcharsize(FTface, int, int, int, FTfaceinfo*);extern void ftsettransform(FTface, FTmatrix*, FTvector*);extern int fthaschar(FTface,int);extern char* ftloadglyph(FTface, int, FTglyph*);extern void ftdoneface(FTface);
/*
* interface to libfreetype without recourse to the real freetype headers
* which would otherwise require full-blown CPP
*/
typedef struct FTfaceinfo FTfaceinfo;
struct FTfaceinfo {
int nfaces;
int index;
int style;
int height;
int ascent;
char* familyname;
char* stylename;
};
typedef struct FTface FTface;
struct FTface {
void* ft_lib;
void* ft_face;
};
typedef struct FTglyph FTglyph;
struct FTglyph {
int top;
int left;
int advx;
int advy;
int height;
int width;
int bpr;
uchar* bitmap;
};
typedef struct FTmatrix FTmatrix;
struct FTmatrix {
int a;
int b;
int c;
int d;
};
typedef struct FTvector FTvector;
struct FTvector {
int dx;
int dy;
};
extern char* ftnewface(char *, int, FTface*, FTfaceinfo*);
extern char* ftloadmemface(void*, int, int, FTface*, FTfaceinfo*);
extern char* ftsetcharsize(FTface, int, int, int, FTfaceinfo*);
extern void ftsettransform(FTface, FTmatrix*, FTvector*);
extern int fthaschar(FTface,int);
extern char* ftloadglyph(FTface, int, FTglyph*);
extern void ftdoneface(FTface);