blob: 619aae8358c040d40315946df33046fdb688a454 (
plain)
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
|
/*
* Fitz display tree text node.
*
* The text node is an optimization to reference glyphs in a font resource
* and specifying an individual transform matrix for each one.
*
* The trm field contains the a, b, c and d coefficients.
* The e and f coefficients come from the individual elements,
* together they form the transform matrix for the glyph.
*
* Glyphs are referenced by glyph ID.
* The Unicode text equivalent is kept in a separate array
* with indexes into the glyph array.
*
TODO the unicode textels
struct fz_textgid_s { float e, f; int gid; };
struct fz_textucs_s { int idx; int ucs; };
*/
typedef struct fz_textel_s fz_textel;
struct fz_textel_s
{
float x, y;
int cid;
};
struct fz_textnode_s
{
fz_node super;
fz_font *font;
fz_matrix trm;
int len, cap;
fz_textel *els;
};
fz_error *fz_newtextnode(fz_textnode **textp, fz_font *face);
fz_error *fz_clonetextnode(fz_textnode **textp, fz_textnode *oldtext);
fz_error *fz_addtext(fz_textnode *text, int g, float x, float y);
fz_error *fz_endtext(fz_textnode *text);
|