From dea4028581b03223460e4fe5bf52be6235268490 Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Tue, 28 Sep 2004 23:09:41 +0000 Subject: 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] --- paper.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'paper.h') diff --git a/paper.h b/paper.h index 859f933..6813fe6 100644 --- a/paper.h +++ b/paper.h @@ -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 -- cgit v1.1