diff options
author | Behdad Esfahbod <behdad@behdad.org> | 2008-12-25 02:44:19 -0500 |
---|---|---|
committer | Behdad Esfahbod <behdad@behdad.org> | 2008-12-25 02:46:27 -0500 |
commit | 0c7eaf6e0a2c2f0db634f8120fcbc03f7e8fd751 (patch) | |
tree | 7c8934e80fba878eab08dc92d3a50b3f145e6d1f /src/cairo-font-face-twin-data.c | |
parent | e6205ea5a38c9de4c08b313a1beb70d4a38b0676 (diff) |
[twin] Improve glyph hints
Diffstat (limited to 'src/cairo-font-face-twin-data.c')
-rw-r--r-- | src/cairo-font-face-twin-data.c | 202 |
1 files changed, 116 insertions, 86 deletions
diff --git a/src/cairo-font-face-twin-data.c b/src/cairo-font-face-twin-data.c index 16d1e2c31..ff09cb2be 100644 --- a/src/cairo-font-face-twin-data.c +++ b/src/cairo-font-face-twin-data.c @@ -4,28 +4,31 @@ const int8_t _cairo_twin_outlines[] = { /* 0x0 '\0' offset 0 */ - 0, 24, 42, 0, 2, 4, + 0, 24, 42, 0, 2, 2, 0, 24, /* snap_x */ - -42, -21, -15, 0, /* snap_y */ + -42, 0, /* snap_y */ 'm', 0, 0, 'l', 0, -42, 'l', 24, -42, 'l', 24, 0, 'l', 0, 0, 'e', + 'X', 'X', /* 0x20 ' ' offset 28 */ - 0, 4, 0, 0, 2, 3, - -128, 0, /* snap_x */ - -21, -15, 0, /* snap_y */ + 0, 4, 0, 0, 0, 0, + /* snap_x */ + /* snap_y */ 'e', + 'X', 'X', 'X', + 'X', 'X', /* 0x21 '!' offset 40 */ 0, 0, 42, 0, 1, 3, 0, /* snap_x */ - -21, -15, -4, /* snap_y */ + -42, -14, 0, /* snap_y */ 'm', 0, -42, 'l', 0, -14, - 'm', 0, -4, - 'l', 0, -4, + 'm', 0, 0, + 'l', 0, 0, 'e', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', @@ -33,14 +36,15 @@ const int8_t _cairo_twin_outlines[] = { 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', /* 0x22 '"' offset 90 */ - 0, 16, 42, -28, 2, 3, + 0, 16, 42, -28, 2, 2, 0, 16, /* snap_x */ - -21, -15, 0, /* snap_y */ + -42, -28, /* snap_y */ 'm', 0, -42, 'l', 0, -28, 'm', 16, -42, 'l', 16, -28, 'e', + 'X', /* 0x23 '#' offset 114 */ 0, 30, 50, 14, 2, 5, 0, 30, /* snap_x */ @@ -104,27 +108,30 @@ const int8_t _cairo_twin_outlines[] = { 'c', 39, 0, 40, -1, 40, -4, 'e', /* 0x27 ''' offset 390 */ - 0, 4, 42, -30, 2, 3, + 0, 4, 42, -30, 2, 2, 0, 4, /* snap_x */ - -21, -15, 0, /* snap_y */ + -42, -28, /* snap_y */ 'm', 2, -38, 'c', -1, -38, -1, -42, 2, -42, 'c', 6, -42, 5, -33, 0, -30, 'e', + 'X', /* 0x28 '(' offset 419 */ - 0, 14, 50, 14, 2, 3, + 0, 14, 50, 14, 2, 2, 0, 14, /* snap_x */ - -21, -15, 0, /* snap_y */ + -50, 14, /* snap_y */ 'm', 14, -50, 'c', -5, -32, -5, -5, 14, 14, 'e', + 'X', /* 0x29 ')' offset 441 */ - 0, 14, 50, 14, 2, 3, + 0, 14, 50, 14, 2, 2, 0, 14, /* snap_x */ - -21, -15, 0, /* snap_y */ + -15, 14, /* snap_y */ 'm', 0, -50, 'c', 19, -34, 19, -2, 0, 14, 'e', + 'X', /* 0x2a '*' offset 463 */ 0, 20, 30, -6, 3, 3, 0, 10, 20, /* snap_x */ @@ -189,7 +196,7 @@ const int8_t _cairo_twin_outlines[] = { /* 0x31 '1' offset 666 */ 0, 28, 42, 0, 2, 3, 0, 17, 28 /* snap_x */ - -21, -15, 0, /* snap_y */ + -42, -34, 0, /* snap_y */ 'm', 7, -34, 'c', 11, -35, 15, -38, 17, -42, 'l', 17, 0, @@ -217,15 +224,16 @@ const int8_t _cairo_twin_outlines[] = { 'c', 8, 0, 3, -1, 0, -8, 'e', /* 0x34 '4' offset 780 */ - 0, 28, 42, 0, 3, 4, + 0, 28, 42, 0, 3, 3, 0, 20, 30, /* snap_x */ - -21, -15, -14, 0, /* snap_y */ + -42, -14, 0, /* snap_y */ 'm', 20, 0, 'l', 20, -42, 'l', 0, -14, 'l', 30, -14, 'e', 'X', 'X', 'X', + 'X', /* 0x35 '5' offset 809 */ 0, 28, 42, 0, 2, 5, 0, 28, /* snap_x */ @@ -309,24 +317,25 @@ const int8_t _cairo_twin_outlines[] = { /* 0x3c '<' offset 1162 */ 0, 32, 36, 0, 2, 3, 0, 32, /* snap_x */ - -21, -15, 0, /* snap_y */ + -36, -18, 0, /* snap_y */ 'm', 32, -36, 'l', 0, -18, 'l', 32, 0, 'e', /* 0x3d '=' offset 1183 */ - 0, 36, 24, -12, 2, 5, + 0, 36, 24, -12, 2, 2, 0, 36, /* snap_x */ - -24, -21, -15, -12, 0, /* snap_y */ + -24, -15, /* snap_y */ 'm', 0, -24, 'l', 36, -24, 'm', 0, -12, 'l', 36, -12, 'e', + 'X', 'X', 'X', /* 0x3e '>' offset 1209 */ 0, 32, 36, 0, 2, 3, 0, 32, /* snap_x */ - -21, -15, 0, /* snap_y */ + -36, -18, 0, /* snap_y */ 'm', 0, -36, 'l', 32, -18, 'l', 0, 0, @@ -334,14 +343,14 @@ const int8_t _cairo_twin_outlines[] = { /* 0x3f '?' offset 1230 */ 0, 24, 42, 0, 3, 4, 0, 12, 24, /* snap_x */ - -42, -21, -15, -4, /* snap_y */ + -42, -21, -15, 0, /* snap_y */ 'm', 0, -32, 'c', 0, -34, 0, -42, 12, -42, 'c', 24, -42, 24, -34, 24, -32, 'c', 24, -29, 24, -24, 12, -20, 'l', 12, -14, - 'm', 12, -4, - 'l', 12, -4, + 'm', 12, 0, + 'l', 12, 0, 'e', 'X', 'X', 'X', 'X', 'X', 'X', @@ -364,9 +373,9 @@ const int8_t _cairo_twin_outlines[] = { 'c', 30, 0, 34, -3, 36, -6, 'e', /* 0x41 'A' offset 1375 */ - 0, 32, 42, 0, 2, 4, + 0, 32, 42, 0, 2, 3, 0, 32, /* snap_x */ - -21, -15, -14, 0, /* snap_y */ + -42, -14, 0, /* snap_y */ 'm', 0, 0, 'l', 16, -42, 'l', 32, 0, @@ -374,10 +383,11 @@ const int8_t _cairo_twin_outlines[] = { 'l', 26, -14, 'e', 'X', 'X', 'X', + 'X', /* 0x42 'B' offset 1406 */ - 0, 28, 42, 0, 2, 5, + 0, 28, 42, 0, 2, 3, 0, 28, /* snap_x */ - -42, -22, -21, -15, 0, /* snap_y */ + -42, -22, 0, /* snap_y */ 'm', 0, 0, 'l', 0, -42, 'l', 18, -42, @@ -388,6 +398,7 @@ const int8_t _cairo_twin_outlines[] = { 'E', 'X', 'X', 'X', 'X', 'X', 'X', + 'X', 'X', /* 0x43 'C' offset 1455 */ 0, 30, 42, 0, 2, 4, 0, 30, /* snap_x */ @@ -399,9 +410,9 @@ const int8_t _cairo_twin_outlines[] = { 'c', 21, 0, 26, 0, 30, -10, 'e', /* 0x44 'D' offset 1499 */ - 0, 28, 42, 0, 2, 4, + 0, 28, 42, 0, 2, 2, 0, 28, /* snap_x */ - -42, -21, -15, 0, /* snap_y */ + -42, 0, /* snap_y */ 'm', 0, 0, 'l', 0, -42, 'l', 14, -42, @@ -409,10 +420,11 @@ const int8_t _cairo_twin_outlines[] = { 'E', 'X', 'X', 'X', 'X', 'X', 'X', + 'X', 'X', /* 0x45 'E' offset 1534 */ - 0, 26, 42, 0, 2, 5, + 0, 26, 42, 0, 2, 3, 0, 26, /* snap_x */ - -42, -22, -21, -15, 0, /* snap_y */ + -42, -22, 0, /* snap_y */ 'm', 26, -42, 'l', 0, -42, 'l', 0, 0, @@ -422,10 +434,11 @@ const int8_t _cairo_twin_outlines[] = { 'e', 'X', 'X', 'X', 'X', 'X', 'X', + 'X', 'X', /* 0x46 'F' offset 1572 */ - 0, 26, 42, 0, 2, 5, + 0, 26, 42, 0, 2, 3, 0, 26, /* snap_x */ - -42, -22, -21, -15, 0, /* snap_y */ + -42, -22, 0, /* snap_y */ 'm', 0, 0, 'l', 0, -42, 'l', 26, -42, @@ -433,6 +446,7 @@ const int8_t _cairo_twin_outlines[] = { 'l', 16, -22, 'e', 'X', 'X', 'X', + 'X', 'X', /* 0x47 'G' offset 1604 */ 0, 30, 42, 0, 2, 5, 0, 30, /* snap_x */ @@ -446,9 +460,9 @@ const int8_t _cairo_twin_outlines[] = { 'e', 'X', 'X', 'X', /* 0x48 'H' offset 1655 */ - 0, 28, 42, 0, 2, 4, + 0, 28, 42, 0, 2, 3, 0, 28, /* snap_x */ - -22, -21, -15, 0, /* snap_y */ + -42, -22, 0, /* snap_y */ 'm', 0, -42, 'l', 0, 0, 'm', 28, -42, @@ -456,17 +470,19 @@ const int8_t _cairo_twin_outlines[] = { 'm', 0, -22, 'l', 28, -22, 'e', + 'X', /* 0x49 'I' offset 1686 */ - 0, 0, 42, 0, 1, 3, + 0, 0, 42, 0, 1, 2, 0, /* snap_x */ - -21, -15, 0, /* snap_y */ + -42, 0, /* snap_y */ 'm', 0, -42, 'l', 0, 0, 'e', + 'X', /* 0x4a 'J' offset 1703 */ 0, 20, 42, 0, 2, 3, 0, 20, /* snap_x */ - -21, -15, 0, /* snap_y */ + -42, -15, 0, /* snap_y */ 'm', 20, -42, 'l', 20, -10, 'c', 20, 3, 0, 3, 0, -10, @@ -475,7 +491,7 @@ const int8_t _cairo_twin_outlines[] = { /* 0x4b 'K' offset 1731 */ 0, 28, 42, 0, 2, 3, 0, 28, /* snap_x */ - -21, -15, 0, /* snap_y */ + -42, -15, 0, /* snap_y */ 'm', 0, -42, 'l', 0, 0, 'm', 28, -42, @@ -484,18 +500,19 @@ const int8_t _cairo_twin_outlines[] = { 'l', 28, 0, 'e', /* 0x4c 'L' offset 1761 */ - 0, 24, 42, 0, 2, 3, + 0, 24, 42, 0, 2, 2, 0, 24, /* snap_x */ - -21, -15, 0, /* snap_y */ + -42, 0, /* snap_y */ 'm', 0, -42, 'l', 0, 0, 'l', 24, 0, 'e', 'X', 'X', 'X', + 'X', /* 0x4d 'M' offset 1785 */ - 0, 32, 42, 0, 2, 3, + 0, 32, 42, 0, 2, 2, 0, 32, /* snap_x */ - -21, -15, 0, /* snap_y */ + -42, 0, /* snap_y */ 'm', 0, 0, 'l', 0, -42, 'l', 16, 0, @@ -505,10 +522,11 @@ const int8_t _cairo_twin_outlines[] = { 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', + 'X', /* 0x4e 'N' offset 1821 */ - 0, 28, 42, 0, 2, 3, + 0, 28, 42, 0, 2, 2, 0, 28, /* snap_x */ - -21, -15, 0, /* snap_y */ + -42, 0, /* snap_y */ 'm', 0, 0, 'l', 0, -42, 'l', 28, 0, @@ -516,6 +534,7 @@ const int8_t _cairo_twin_outlines[] = { 'e', 'X', 'X', 'X', 'X', 'X', 'X', + 'X', /* 0x4f 'O' offset 1851 */ 0, 32, 42, 0, 2, 4, 0, 32, /* snap_x */ @@ -583,27 +602,29 @@ const int8_t _cairo_twin_outlines[] = { 'l', 28, -42, 'e', /* 0x55 'U' offset 2100 */ - 0, 28, 42, 0, 2, 3, + 0, 28, 42, 0, 2, 2, 0, 28, /* snap_x */ - -21, -15, 0, /* snap_y */ + -42, 0, /* snap_y */ 'm', 0, -42, 'l', 0, -12, 'c', 0, 4, 28, 4, 28, -12, 'l', 28, -42, 'e', + 'X', /* 0x56 'V' offset 2128 */ - 0, 32, 42, 0, 2, 3, + 0, 32, 42, 0, 2, 2, 0, 32, /* snap_x */ - -21, -15, 0, /* snap_y */ + -42, 0, /* snap_y */ 'm', 0, -42, 'l', 16, 0, 'l', 32, -42, 'e', 'X', 'X', 'X', + 'X', /* 0x57 'W' offset 2152 */ - 0, 40, 42, 0, 2, 3, + 0, 40, 42, 0, 2, 2, 0, 40, /* snap_x */ - -21, -15, 0, /* snap_y */ + -42, 0, /* snap_y */ 'm', 0, -42, 'l', 10, 0, 'l', 20, -42, @@ -613,19 +634,21 @@ const int8_t _cairo_twin_outlines[] = { 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', + 'X', /* 0x58 'X' offset 2188 */ - 0, 28, 42, 0, 2, 3, + 0, 28, 42, 0, 2, 2, 0, 28, /* snap_x */ - -21, -15, 0, /* snap_y */ + -42, 0, /* snap_y */ 'm', 0, -42, 'l', 28, 0, 'm', 28, -42, 'l', 0, 0, 'e', + 'X', /* 0x59 'Y' offset 2212 */ 0, 32, 42, 0, 3, 3, 0, 16, 32, /* snap_x */ - -21, -15, 0, /* snap_y */ + -42, -21, 0, /* snap_y */ 'm', 0, -42, 'l', 16, -22, 'l', 16, 0, @@ -678,21 +701,23 @@ const int8_t _cairo_twin_outlines[] = { 'e', 'X', 'X', 'X', /* 0x5f '_' offset 2363 */ - 0, 36, 0, 0, 2, 3, + 0, 36, 0, 0, 2, 1, 0, 36, /* snap_x */ - -21, -15, 0, /* snap_y */ + 0, /* snap_y */ 'm', 0, 0, 'l', 36, 0, 'e', + 'X', 'X', /* 0x60 '`' offset 2381 */ - 0, 4, 42, -30, 2, 3, + 0, 4, 42, -30, 2, 2, 0, 4, /* snap_x */ - -21, -15, 0, /* snap_y */ + -42, 0, /* snap_y */ 'm', 4, -42, 'c', 2, -40, 0, -39, 0, -32, 'c', 0, -31, 1, -30, 2, -30, 'c', 5, -30, 5, -34, 2, -34, 'e', + 'X', /* 0x61 'a' offset 2417 */ 0, 24, 28, 0, 2, 4, 0, 24, /* snap_x */ @@ -708,7 +733,7 @@ const int8_t _cairo_twin_outlines[] = { /* 0x62 'b' offset 2467 */ 0, 24, 42, 0, 2, 4, 0, 24, /* snap_x */ - -28, -21, -15, 0, /* snap_y */ + -42, -28, -15, 0, /* snap_y */ 'm', 0, -42, 'l', 0, 0, 'm', 0, -22, @@ -730,7 +755,7 @@ const int8_t _cairo_twin_outlines[] = { /* 0x64 'd' offset 2561 */ 0, 24, 42, 0, 2, 4, 0, 24, /* snap_x */ - -28, -21, -15, 0, /* snap_y */ + -42, -28, -15, 0, /* snap_y */ 'm', 24, -42, 'l', 24, 0, 'm', 24, -22, @@ -777,7 +802,7 @@ const int8_t _cairo_twin_outlines[] = { /* 0x68 'h' offset 2758 */ 0, 22, 42, 0, 2, 4, 0, 22, /* snap_x */ - -28, -21, -15, 0, /* snap_y */ + -42, -28, -15, 0, /* snap_y */ 'm', 0, -42, 'l', 0, 0, 'm', 0, -20, @@ -785,9 +810,9 @@ const int8_t _cairo_twin_outlines[] = { 'l', 22, 0, 'e', /* 0x69 'i' offset 2790 */ - 0, 0, 44, 0, 1, 4, + 0, 0, 44, 0, 1, 3, 0, /* snap_x */ - -42, -21, -15, 0, /* snap_y */ + -42, -28, 0, /* snap_y */ 'm', 0, -42, 'l', 0, -42, 'm', 0, -28, @@ -797,10 +822,10 @@ const int8_t _cairo_twin_outlines[] = { 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', - 'X', + 'X', 'X', /* 0x6a 'j' offset 2826 */ -8, 4, 44, 14, 3, 5, - 0, 2, 4, /* snap_x */ + -8, 2, 4, /* snap_x */ -42, -21, -15, 0, 14, /* snap_y */ 'm', 2, -42, 'l', 2, -42, @@ -815,7 +840,7 @@ const int8_t _cairo_twin_outlines[] = { /* 0x6b 'k' offset 2870 */ 0, 22, 42, 0, 2, 3, 0, 22, /* snap_x */ - -21, -15, 0, /* snap_y */ + -42, -28, 0, /* snap_y */ 'm', 0, -42, 'l', 0, 0, 'm', 20, -28, @@ -824,16 +849,17 @@ const int8_t _cairo_twin_outlines[] = { 'l', 22, 0, 'e', /* 0x6c 'l' offset 2900 */ - 0, 0, 42, 0, 1, 3, + 0, 0, 42, 0, 1, 2, 0, /* snap_x */ - -21, -15, 0, /* snap_y */ + -42, 0, /* snap_y */ 'm', 0, -42, 'l', 0, 0, 'e', + 'X', /* 0x6d 'm' offset 2917 */ - 0, 44, 28, 0, 3, 4, + 0, 44, 28, 0, 3, 3, 0, 22, 44, /* snap_x */ - -28, -21, -15, 0, /* snap_y */ + -28, -21, 0, /* snap_y */ 'm', 0, -28, 'l', 0, 0, 'm', 0, -20, @@ -843,16 +869,18 @@ const int8_t _cairo_twin_outlines[] = { 'c', 27, -29, 44, -33, 44, -20, 'l', 44, 0, 'e', + 'X', /* 0x6e 'n' offset 2963 */ - 0, 22, 28, 0, 2, 4, + 0, 22, 28, 0, 2, 3, 0, 22, /* snap_x */ - -28, -21, -15, 0, /* snap_y */ + -28, -21, 0, /* snap_y */ 'm', 0, -28, 'l', 0, 0, 'm', 0, -20, 'c', 4, -28, 22, -34, 22, -20, 'l', 22, 0, 'e', + 'X', /* 0x6f 'o' offset 2995 */ 0, 26, 28, 0, 2, 4, 0, 26, /* snap_x */ @@ -866,7 +894,7 @@ const int8_t _cairo_twin_outlines[] = { /* 0x70 'p' offset 3039 */ 0, 24, 28, 14, 2, 4, 0, 24, /* snap_x */ - -28, -21, -15, 0, /* snap_y */ + -28, -21, 0, 14, /* snap_y */ 'm', 0, -28, 'l', 0, 14, 'm', 0, -22, @@ -878,7 +906,7 @@ const int8_t _cairo_twin_outlines[] = { /* 0x71 'q' offset 3089 */ 0, 24, 28, 14, 2, 4, 0, 24, /* snap_x */ - -28, -21, -15, 0, /* snap_y */ + -28, -21, 0, 14, /* snap_y */ 'm', 24, -28, 'l', 24, 14, 'm', 24, -22, @@ -910,7 +938,7 @@ const int8_t _cairo_twin_outlines[] = { /* 0x74 't' offset 3219 */ 0, 16, 42, 0, 3, 4, 0, 6, 16, /* snap_x */ - -28, -21, -15, 0, /* snap_y */ + -42, -28, -21, 0, /* snap_y */ 'm', 6, -42, 'l', 6, -8, 'c', 6, -2, 8, 0, 16, 0, @@ -920,7 +948,7 @@ const int8_t _cairo_twin_outlines[] = { /* 0x75 'u' offset 3252 */ 0, 22, 28, 0, 2, 3, 0, 22, /* snap_x */ - -21, -15, 0, /* snap_y */ + -28, -15, 0, /* snap_y */ 'm', 0, -28, 'l', 0, -8, 'c', 0, 6, 18, 0, 22, -8, @@ -930,7 +958,7 @@ const int8_t _cairo_twin_outlines[] = { /* 0x76 'v' offset 3283 */ 0, 24, 28, 0, 2, 3, 0, 24, /* snap_x */ - -21, -15, 0, /* snap_y */ + -28, -15, 0, /* snap_y */ 'm', 0, -28, 'l', 12, 0, 'l', 24, -28, @@ -939,7 +967,7 @@ const int8_t _cairo_twin_outlines[] = { /* 0x77 'w' offset 3307 */ 0, 32, 28, 0, 2, 3, 0, 32, /* snap_x */ - -21, -15, 0, /* snap_y */ + -28, -15, 0, /* snap_y */ 'm', 0, -28, 'l', 8, 0, 'l', 16, -28, @@ -950,18 +978,19 @@ const int8_t _cairo_twin_outlines[] = { 'X', 'X', 'X', 'X', 'X', 'X', /* 0x78 'x' offset 3343 */ - 0, 22, 28, 0, 2, 3, + 0, 22, 28, 0, 2, 2, 0, 22, /* snap_x */ - -21, -15, 0, /* snap_y */ + -28, 0, /* snap_y */ 'm', 0, -28, 'l', 22, 0, 'm', 22, -28, 'l', 0, 0, 'e', + 'X', /* 0x79 'y' offset 3367 */ -2, 24, 28, 14, 2, 4, 0, 24, /* snap_x */ - -21, -15, 0, 14, /* snap_y */ + -28, -15, 0, 14, /* snap_y */ 'm', 0, -28, 'l', 12, 0, 'm', 24, -28, @@ -992,12 +1021,13 @@ const int8_t _cairo_twin_outlines[] = { 'c', 6, -2, 10, 0, 16, 0, 'e', /* 0x7c '|' offset 3474 */ - 0, 0, 50, 14, 1, 3, + 0, 0, 50, 14, 1, 2, 0, /* snap_x */ - -21, -15, 0, /* snap_y */ + -50, 14, /* snap_y */ 'm', 0, -50, 'l', 0, 14, 'e', + 'X', /* 0x7d '}' offset 3491 */ 0, 16, 44, 0, 3, 5, 0, 10, 16, /* snap_x */ |