diff options
| author | Ben Harris <bjh21@bjh21.me.uk> | 2004-09-28 23:09:41 +0000 |
|---|---|---|
| committer | Ben Harris <bjh21@bjh21.me.uk> | 2004-09-28 23:09:41 +0000 |
| commit | dea4028581b03223460e4fe5bf52be6235268490 (patch) | |
| tree | 5c1d35da77eec6d8f284dfb77c296027e5a5bfad /paper.h | |
| parent | 332be5bbc231f7139e6fc4cede37456225e590a7 (diff) | |
| download | halibut-dea4028581b03223460e4fe5bf52be6235268490.zip halibut-dea4028581b03223460e4fe5bf52be6235268490.tar.gz halibut-dea4028581b03223460e4fe5bf52be6235268490.tar.bz2 halibut-dea4028581b03223460e4fe5bf52be6235268490.tar.xz | |
Add kerning support to paper backends, embedding the kerning tables from
the AFM files in psdata.c. Also fix a couple of bugs that this revealed.
[originally from svn r4588]
Diffstat (limited to 'paper.h')
| -rw-r--r-- | paper.h | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -13,6 +13,7 @@ #define FUNITS_PER_PT 1000.0 typedef struct document_Tag document; +typedef struct kern_pair_Tag kern_pair; typedef struct font_data_Tag font_data; typedef struct font_encoding_Tag font_encoding; typedef struct font_list_Tag font_list; @@ -39,6 +40,16 @@ struct document_Tag { }; /* + * This data structure represents a kerning pair within a font. + */ +struct kern_pair_Tag { + /* Glyph indices, in font_data.glyphs. */ + unsigned short left, right; + /* Kern amount, in internal units. */ + int kern; +}; + +/* * This data structure represents a particular font. */ struct font_data_Tag { @@ -54,6 +65,7 @@ struct font_data_Tag { int nglyphs; const char *const *glyphs; const int *widths; + tree234 *kerns; /* * For reasonably speedy lookup, we set up a 65536-element * table representing the Unicode BMP (I can conveniently @@ -311,5 +323,6 @@ struct outline_element_Tag { wchar_t ps_glyph_to_unicode(char const *glyph); extern const char *const ps_std_glyphs[]; const int *ps_std_font_widths(char const *fontname); +const kern_pair *ps_std_font_kerns(char const *fontname); #endif |