1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
typedef struct fz_font_s fz_font;
typedef struct fz_hmtx_s fz_hmtx;
typedef struct fz_vmtx_s fz_vmtx;
typedef struct fz_glyph_s fz_glyph;
typedef struct fz_glyphcache_s fz_glyphcache;
struct fz_hmtx_s
{
unsigned short c;
short w;
};
struct fz_vmtx_s
{
unsigned short c;
short x;
short y;
short w;
};
struct fz_font_s
{
char name[32];
fz_error* (*render)(fz_glyph*, fz_font*, int, fz_matrix);
void (*free)(fz_font *);
int wmode;
fz_irect bbox;
int nhmtx, hmtxcap;
fz_hmtx dhmtx;
fz_hmtx *hmtx;
int nvmtx, vmtxcap;
fz_vmtx dvmtx;
fz_vmtx *vmtx;
};
struct fz_glyph_s
{
int w, h, lsb, top;
unsigned char *bitmap;
};
void fz_initfont(fz_font *font, char *name);
void fz_freefont(fz_font *font);
void fz_debugfont(fz_font *font);
void fz_setfontwmode(fz_font *font, int wmode);
void fz_setfontbbox(fz_font *font, int xmin, int ymin, int xmax, int ymax);
void fz_setdefaulthmtx(fz_font *font, int w);
void fz_setdefaultvmtx(fz_font *font, int y, int w);
fz_error *fz_addhmtx(fz_font *font, int gid, int w);
fz_error *fz_addvmtx(fz_font *font, int gid, int x, int y, int w);
fz_error *fz_endhmtx(fz_font *font);
fz_error *fz_endvmtx(fz_font *font);
fz_hmtx fz_gethmtx(fz_font *font, int gid);
fz_vmtx fz_getvmtx(fz_font *font, int gid);
fz_error *fz_newglyphcache(fz_glyphcache **arenap, int slots, int size);
fz_error *fz_renderglyph(fz_glyphcache*, fz_glyph*, fz_font*, int, fz_matrix);
void fz_freeglyphcache(fz_glyphcache *);
|