aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2004-10-04 08:30:35 +0000
committerKeith Packard <keithp@keithp.com>2004-10-04 08:30:35 +0000
commit3c0c7451e419104918657d05ee9ba86c36315cd7 (patch)
tree9727f4b2cf9d1a8c7a0b0b3ab0067b95f1a5ff1e
parente27025eda79dbf6428c20d2d0dd635ddffaa3fba (diff)
downloadlibtwin-3c0c7451e419104918657d05ee9ba86c36315cd7.tar.gz
Delete old glyph representation support code.
Oops -- overflow not handled correctly in distance functions. Replace new glyphs with versions using splines. Whack around the default presentation a bit more
-rw-r--r--ChangeLog14
-rw-r--r--twin_font.c320
-rw-r--r--twin_geom.c4
-rw-r--r--twin_glyphs.c1592
-rw-r--r--xtwin.c13
5 files changed, 341 insertions, 1602 deletions
diff --git a/ChangeLog b/ChangeLog
index a9693bc..ac72b23 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,19 @@
2004-10-04 Keith Packard <keithp@keithp.com>
+ * twin_font.c: (twin_has_ucs4), (twin_path_ucs4):
+ Delete old glyph representation support code.
+
+ * twin_geom.c: (_twin_distance_to_line_squared):
+ Oops -- overflow not handled correctly in distance functions.
+
+ * twin_glyphs.c:
+ Replace new glyphs with versions using splines.
+
+ * xtwin.c: (main):
+ Whack around the default presentation a bit more
+
+2004-10-04 Keith Packard <keithp@keithp.com>
+
* twin.h:
* twin_draw.c: (twin_composite):
Fix a clipping bug
diff --git a/twin_font.c b/twin_font.c
index ba052b3..c23c291 100644
--- a/twin_font.c
+++ b/twin_font.c
@@ -41,7 +41,7 @@
twin_bool_t
twin_has_ucs4 (twin_ucs4_t ucs4)
{
- return ucs4 <= TWIN_FONT_MAX && _twin_glyph_offsets[ucs4] != 0;
+ return ucs4 <= TWIN_FONT_MAX && _twin_g_offsets[ucs4] != 0;
}
#define SNAPI(p) (((p) + 0x7fff) & ~0xffff)
@@ -87,14 +87,6 @@ _snap (twin_path_t *path, twin_gfixed_t g, twin_gfixed_t *snap, int nsnap)
#define SNAPX(p) _snap (path, p, snap_x, nsnap_x)
#define SNAPY(p) _snap (path, p, snap_y, nsnap_y)
-static const twin_gpoint_t *
-_twin_ucs4_base(twin_ucs4_t ucs4)
-{
- if (ucs4 > TWIN_FONT_MAX) ucs4 = 0;
-
- return _twin_glyphs + _twin_glyph_offsets[ucs4];
-}
-
static const signed char *
_twin_g_base (twin_ucs4_t ucs4)
{
@@ -167,310 +159,6 @@ twin_text_metrics_ucs4 (twin_path_t *path,
m->font_descent = font_ascent + Margin(pen_size);
}
-#include <stdio.h>
-
-#define TWIN_MAX_POINTS 50
-#define TWIN_MAX_STROKE 50
-
-typedef enum { twin_gmove, twin_gline, twin_gcurve } twin_gcmd_t;
-
-typedef struct _twin_gop {
- twin_gcmd_t cmd;
- twin_gpoint_t p[3];
-} twin_gop_t;
-
-typedef struct _twin_stroke {
- int n;
- twin_gpoint_t p[TWIN_MAX_STROKE];
-} twin_stroke_t;
-
-typedef struct _twin_snap {
- int n;
- twin_gfixed_t s[TWIN_MAX_POINTS];
-} twin_snap_t;
-
-typedef struct _twin_glyph {
- twin_ucs4_t ucs4;
- int offset;
- twin_bool_t exists;
- twin_gfixed_t left, right, top, bottom;
- int n;
- twin_stroke_t s[TWIN_MAX_STROKE];
- int nop;
- twin_gop_t op[TWIN_MAX_STROKE];
- twin_snap_t snap_x;
- twin_snap_t snap_y;
-} twin_glyph_t;
-
-static twin_glyph_t glyphs[0x80];
-
-static void
-twin_add_snap (twin_snap_t *snap, twin_gfixed_t v)
-{
- int n;
-
- for (n = 0; n < snap->n; n++)
- {
- if (snap->s[n] == v)
- return;
- if (snap->s[n] > v)
- break;
- }
- memmove (&snap->s[n+1], &snap->s[n], snap->n - n);
- snap->s[n] = v;
- snap->n++;
-}
-
-static int
-twin_n_in_spline (twin_gpoint_t *p, int n)
-{
- return 0;
-}
-
-static void
-twin_spline_fit (twin_gpoint_t *p, int n, twin_gpoint_t *c1, twin_gpoint_t *c2)
-{
-}
-
-static char *
-_ucs4_string (twin_ucs4_t ucs4)
-{
- static char buf[10];
- if (ucs4 < ' ' || ucs4 > '~')
- {
- if (!ucs4)
- return "\\0";
- sprintf (buf, "\\0%o", ucs4);
- return buf;
- }
- sprintf (buf, "%c", ucs4);
- return buf;
-}
-
-static twin_gfixed_t
-px (const twin_gpoint_t *p, int i)
-{
- return p[i].x << 1;
-}
-
-static twin_gfixed_t
-py (const twin_gpoint_t *p, int i)
-{
- return p[i].y << 1;
-}
-
-static void
-twin_dump_glyphs (void)
-{
- twin_ucs4_t ucs4;
- int offset = 0;
- int i, j;
- twin_gop_t *gop;
-
- for (ucs4 = 0; ucs4 < 0x80; ucs4++)
- {
- const twin_gpoint_t *p = _twin_ucs4_base (ucs4);
- twin_glyph_t *g = &glyphs[ucs4];
- twin_stroke_t *s;
- twin_gfixed_t origin;
- twin_gfixed_t left, right, top, bottom;
- twin_gfixed_t baseline;
- twin_gfixed_t x, y;
- twin_bool_t move;
-
- g->ucs4 = ucs4;
- g->n = 0;
-
- if (ucs4 && p == _twin_glyphs) continue;
-
- if (p[1].y == -64)
- {
- origin = 0;
- left = 0;
- right = 4;
- top = 18;
- bottom = 18;
- baseline = 18;
- }
- else
- {
- origin = 64;
- left = 64;
- right = -64;
- top = 64;
- bottom = -64;
- baseline = 18;
- for (i = 1, move = TWIN_TRUE; p[i].y != -64; i++)
- {
- if (p[i].x == -64) { move = TWIN_TRUE; continue; }
- if (py(p,i) <= baseline && px(p,i) < origin) origin = px(p,i);
- if (px(p,i) < left) left = px(p,i);
- if (px(p,i) > right) right = px(p,i);
- if (py(p,i) < top) top = py(p,i);
- if (py(p,i) > bottom) bottom = py(p,i);
- move = TWIN_FALSE;
- }
- }
- left -= origin;
- right -= origin;;
- bottom -= baseline;
- top -= baseline;
-
- /*
- * Convert from hershey format to internal format
- */
- for (i = 1, move = TWIN_TRUE; p[i].y != -64; i++)
- {
- if (p[i].x == -64) { move = TWIN_TRUE; continue; }
-
- x = px(p,i) - origin;
- y = py(p,i) - baseline;
- if (move)
- if (g->s[g->n].n)
- ++g->n;
- s = &g->s[g->n];
- s->p[s->n].x = x;
- s->p[s->n].y = y;
- s->n++;
-
- move = TWIN_FALSE;
- }
- if (g->s[g->n].n)
- ++g->n;
-
- g->left = left;
- g->right = right;
- g->top = top;
- g->bottom = bottom;
-
- /*
- * Find snap points
- */
- twin_add_snap (&g->snap_x, 0); /* origin */
- twin_add_snap (&g->snap_x, right); /* right */
-
- twin_add_snap (&g->snap_y, 0); /* baseline */
- twin_add_snap (&g->snap_y, -15); /* x height */
- twin_add_snap (&g->snap_y, -21); /* cap height */
-
- for (i = 0; i < g->n; i++)
- {
- s = &g->s[i];
- for (j = 0; j < s->n - 1; j++)
- {
- if (s->p[j].x == s->p[j+1].x)
- twin_add_snap (&g->snap_x, s->p[j].x);
- if (s->p[j].y == s->p[j+1].y)
- twin_add_snap (&g->snap_y, s->p[j].y);
- }
- }
-
- /*
- * Now convert to gops and try to locate splines
- */
-
- gop = &g->op[0];
- for (i = 0; i < g->n; i++)
- {
- s = &g->s[i];
- gop->cmd = twin_gmove;
- gop->p[0] = s->p[0];
- gop++;
- for (j = 0; j < s->n - 1;)
- {
- int ns = twin_n_in_spline (s->p + j, s->n - j);
-
- if (ns)
- {
- twin_spline_fit (s->p + j, ns,
- &gop->p[0], &gop->p[1]);
- gop->cmd = twin_gcurve;
- gop->p[2] = s->p[j + ns - 1];
- gop++;
- j += ns;
- }
- else
- {
- gop->cmd = twin_gline;
- gop->p[0] = s->p[j+1];
- gop++;
- j++;
- }
- }
- }
- g->nop = gop - &g->op[0];
- g->exists = TWIN_TRUE;
- }
-
- printf ("const signed char _twin_gtable[] = {\n");
- for (ucs4 = 0; ucs4 < 0x80; ucs4++)
- {
- twin_glyph_t *g = &glyphs[ucs4];
-
- if (!g->exists) continue;
-
- g->offset = offset;
-
- printf ("/* 0x%x '%s' */\n", g->ucs4, _ucs4_string (g->ucs4));
- printf (" %d, %d, %d, %d, %d, %d,\n",
- g->left, g->right, -g->top, g->bottom, g->snap_x.n, g->snap_y.n);
-
- offset += 6;
-
- printf (" ");
- for (i = 0; i < g->snap_x.n; i++)
- printf (" %d,", g->snap_x.s[i]);
- printf (" /* snap_x */\n");
-
- offset += g->snap_x.n;
-
- printf (" ");
- for (i = 0; i < g->snap_y.n; i++)
- printf (" %d,", g->snap_y.s[i]);
- printf (" /* snap_y */\n");
-
- offset += g->snap_y.n;
-
-#define CO(n) gop->p[n].x, gop->p[n].y
- for (i = 0; i < g->nop; i++)
- {
- gop = &g->op[i];
- switch (gop->cmd) {
- case twin_gmove:
- printf (" 'm', %d, %d,\n", CO(0));
- offset += 3;
- break;
- case twin_gline:
- printf (" 'l', %d, %d,\n", CO(0));
- offset += 3;
- break;
- case twin_gcurve:
- printf (" 'c', %d, %d, %d, %d, %d, %d,\n",
- CO(0), CO(1), CO(2));
- offset += 7;
- break;
- }
- }
- printf (" 'e',\n");
- offset++;
- }
- printf ("};\n\n");
- printf ("const uint16_t _twin_g_offsets[] = {");
- for (ucs4 = 0; ucs4 < 0x80; ucs4++)
- {
- twin_glyph_t *g = &glyphs[ucs4];
-
- if ((ucs4 & 7) == 0)
- printf ("\n ");
- else
- printf (" ");
- printf ("%4d,", g->offset);
- }
- printf ("\n};\n");
- fflush (stdout);
- exit (0);
-}
-
void
twin_path_ucs4 (twin_path_t *path, twin_ucs4_t ucs4)
{
@@ -485,12 +173,6 @@ twin_path_ucs4 (twin_path_t *path, twin_ucs4_t ucs4)
twin_matrix_t pen_matrix;
twin_text_metrics_t metrics;
- if (0)
- {
- static int been_here = 0;
- if (!been_here) { been_here = 1; twin_dump_glyphs (); }
- }
-
twin_text_metrics_ucs4 (path, ucs4, &metrics);
origin = _twin_path_current_spoint (path);
diff --git a/twin_geom.c b/twin_geom.c
index 82dcee9..e682d7a 100644
--- a/twin_geom.c
+++ b/twin_geom.c
@@ -56,8 +56,10 @@ _twin_distance_to_line_squared (twin_spoint_t *p, twin_spoint_t *p1, twin_spoint
twin_dfixed_t den, num;
num = A * p->x + B * p->y + C;
+ if (num < 0)
+ num = -num;
den = A * A + B * B;
- if (den == 0 || num >= 0x10000)
+ if (den == 0 || num >= 0x8000)
return _twin_distance_to_point_squared (p, p1);
else
return (num * num) / den;
diff --git a/twin_glyphs.c b/twin_glyphs.c
index 1dfe1ab..fbb53c8 100644
--- a/twin_glyphs.c
+++ b/twin_glyphs.c
@@ -24,458 +24,36 @@
#include "twinint.h"
-const twin_gpoint_t _twin_glyphs[] = {
-/* box for missing chars */
- { -9, 9 }, { -6, 8 }, { -6, -12 }, { 6, -12 }, { 6, 9 }, { -6, 9 },
- { -64, -64 },
-/* space */
- { -4, 4 }, { -64, -64 },
-/* ! */
- { -5, 5 }, { 0, -12 }, { 0, 2 }, { -64, 0 },
- { 0, 7 }, { -1, 8 }, { 0, 9 }, { 1, 8 }, { 0, 7 }, { -64, -64 },
-/* " */
- { -8, 8 }, { -4, -12 }, { -4, -5 }, { -64, 0 },
- { 4, -12 }, { 4, -5 }, { -64, -64 },
-/* # */
- { -10, 11 }, { 1, -16 }, { -6, 16 }, { -64, 0 },
- { 7, -16 }, { 0, 16 }, { -64, 0 },
- { -6, -3 }, { 8, -3 }, { -64, 0 },
- { -7, 3 }, { 7, 3 }, { -64, -64 },
-/* $ */
- { -10, 10 }, { -2, -16 }, { -2, 13 }, { -64, 0 },
- { 2, -16 }, { 2, 13 }, { -64, 0 },
- { 7, -9 }, { 5, -11 }, { 2, -12 }, { -2, -12 }, { -5, -11 }, { -7, -9 },
- { -7, -7 }, { -6, -5 }, { -5, -4 }, { -3, -3 }, { 3, -1 }, { 5, 0 },
- { 6, 1 }, { 7, 3 }, { 7, 6 }, { 5, 8 }, { 2, 9 }, { -2, 9 }, { -5, 8 },
- { -7, 6 }, { -64, -64 },
-/* % */
- { -12, 12 }, { 9, -12 }, { -9, 9 }, { -64, 0 },
- { -4, -12 }, { -2, -10 }, { -2, -8 }, { -3, -6 }, { -5, -5 }, { -7, -5 },
- { -9, -7 }, { -9, -9 }, { -8, -11 }, { -6, -12 }, { -4, -12 }, { -2, -11 },
- { 1, -10 }, { 4, -10 }, { 7, -11 }, { 9, -12 }, { -64, 0 },
- { 5, 2 }, { 3, 3 }, { 2, 5 }, { 2, 7 }, { 4, 9 }, { 6, 9 },
- { 8, 8 }, { 9, 6 }, { 9, 4 }, { 7, 2 }, { 5, 2 }, { -64, -64 },
-/* & */
- { -13, 13 }, { 10, -3 }, { 10, -4 }, { 9, -5 }, { 8, -5 }, { 7, -4 },
- { 6, -2 }, { 4, 3 }, { 2, 6 }, { 0, 8 }, { -2, 9 }, { -6, 9 }, { -8, 8 },
- { -9, 7 }, { -10, 5 }, { -10, 3 }, { -9, 1 }, { -8, 0 }, { -1, -4 },
- { 0, -5 }, { 1, -7 }, { 1, -9 }, { 0, -11 }, { -2, -12 }, { -4, -11 },
- { -5, -9 }, { -5, -7 }, { -4, -4 }, { -2, -1 }, { 3, 6 }, { 5, 8 },
- { 7, 9 }, { 9, 9 }, { 10, 8 }, { 10, 7 }, { -64, -64 },
-/* ' */
- { -5, 5 }, { 0, -10 }, { -1, -11 }, { 0, -12 }, { 1, -11 }, { 1, -9 },
- { 0, -7 }, { -1, -6 }, { -64, -64 },
-/* ( */
- { -7, 7 }, { 4, -16 }, { 2, -14 }, { 0, -11 }, { -2, -7 }, { -3, -2 },
- { -3, 2 }, { -2, 7 }, { 0, 11 }, { 2, 14 }, { 4, 16 }, { -64, -64 },
-/* ) */
- { -7, 7 }, { -4, -16 }, { -2, -14 }, { 0, -11 }, { 2, -7 }, { 3, -2 },
- { 3, 2 }, { 2, 7 }, { 0, 11 }, { -2, 14 }, { -4, 16 }, { -64, -64 },
-/* * */
- { -8, 8 }, { 0, -6 }, { 0, 6 }, { -64, 0 },
- { -5, -3 }, { 5, 3 }, { -64, 0 },
- { 5, -3 }, { -5, 3 }, { -64, -64 },
-/* + */
- { -13, 13 }, { 0, -9 }, { 0, 9 }, { -64, 0 },
- { -9, 0 }, { 9, 0 }, { -64, -64 },
-/* , */
- { -5, 5 }, { 1, 8 }, { 0, 9 }, { -1, 8 }, { 0, 7 }, { 1, 8 },
- { 1, 10 }, { 0, 12 }, { -1, 13 }, { -64, -64 },
-/* - */
- { -13, 13 }, { -9, 0 }, { 9, 0 }, { -64, -64 },
-/* . */
- { -5, 5 }, { 0, 7 }, { -1, 8 }, { 0, 9 }, { 1, 8 }, { 0, 7 }, { -64, -64 },
-/* / */
- { -11, 11 }, { 9, -16 }, { -9, 16 }, { -64, -64 },
-/* 0 */
- { -10, 10 }, { -1, -12 }, { -4, -11 }, { -6, -8 }, { -7, -3 }, { -7, 0 },
- { -6, 5 }, { -4, 8 }, { -1, 9 }, { 1, 9 }, { 4, 8 }, { 6, 5 }, { 7, 0 },
- { 7, -3 }, { 6, -8 }, { 4, -11 }, { 1, -12 }, { -1, -12 }, { -64, -64 },
-/* 1 */
- { -10, 10 }, { -4, -8 }, { -2, -9 }, { 1, -12 }, { 1, 9 }, { -64, -64 },
-/* 2 */
- { -10, 10 }, { -6, -7 }, { -6, -8 }, { -5, -10 }, { -4, -11 }, { -2, -12 },
- { 2, -12 }, { 4, -11 }, { 5, -10 }, { 6, -8 }, { 6, -6 }, { 5, -4 },
- { 3, -1 }, { -7, 9 }, { 7, 9 }, { -64, -64 },
-/* 3 */
- { -10, 10 }, { -5, -12 }, { 6, -12 }, { 0, -4 }, { 3, -4 }, { 5, -3 },
- { 6, -2 }, { 7, 1 }, { 7, 3 }, { 6, 6 }, { 4, 8 }, { 1, 9 }, { -2, 9 },
- { -5, 8 }, { -6, 7 }, { -7, 5 }, { -64, -64 },
-/* 4 */
- { -10, 10 }, { 3, -12 }, { -7, 2 }, { 8, 2 }, { -64, 0 },
- { 3, -12 }, { 3, 9 }, { -64, -64 },
-/* 5 */
- { -10, 10 }, { 5, -12 }, { -5, -12 }, { -6, -3 }, { -5, -4 }, { -2, -5 },
- { 1, -5 }, { 4, -4 }, { 6, -2 }, { 7, 1 }, { 7, 3 }, { 6, 6 }, { 4, 8 },
- { 1, 9 }, { -2, 9 }, { -5, 8 }, { -6, 7 }, { -7, 5 }, { -64, -64 },
-/* 6 */
- { -10, 10 }, { 6, -9 }, { 5, -11 }, { 2, -12 }, { 0, -12 }, { -3, -11 },
- { -5, -8 }, { -6, -3 }, { -6, 2 }, { -5, 6 }, { -3, 8 }, { 0, 9 },
- { 1, 9 }, { 4, 8 }, { 6, 6 }, { 7, 3 }, { 7, 2 }, { 6, -1 },
- { 4, -3 }, { 1, -4 }, { 0, -4 }, { -3, -3 }, { -5, -1 }, { -6, 2 },
- { -64, -64 },
-/* 7 */
- { -10, 10 }, { 7, -12 }, { -3, 9 }, { -64, 0 },
- { -7, -12 }, { 7, -12 }, { -64, -64 },
-/* 8 */
- { -10, 10 }, { -2, -12 }, { -5, -11 }, { -6, -9 }, { -6, -7 }, { -5, -5 },
- { -3, -4 }, { 1, -3 }, { 4, -2 }, { 6, 0 }, { 7, 2 }, { 7, 5 },
- { 6, 7 }, { 5, 8 }, { 2, 9 }, { -2, 9 }, { -5, 8 }, { -6, 7 },
- { -7, 5 }, { -7, 2 }, { -6, 0 }, { -4, -2 }, { -1, -3 }, { 3, -4 },
- { 5, -5 }, { 6, -7 }, { 6, -9 }, { 5, -11 }, { 2, -12 }, { -2, -12 },
- { -64, -64 },
-/* 9 */
- { -10, 10 }, { 6, -5 }, { 5, -2 }, { 3, 0 }, { 0, 1 }, { -1, 1 },
- { -4, 0 }, { -6, -2 }, { -7, -5 }, { -7, -6 }, { -6, -9 }, { -4, -11 },
- { -1, -12 }, { 0, -12 }, { 3, -11 }, { 5, -9 }, { 6, -5 }, { 6, 0 },
- { 5, 5 }, { 3, 8 }, { 0, 9 }, { -2, 9 }, { -5, 8 }, { -6, 6 }, { -64, -64 },
-/* : */
- { -5, 5 }, { 0, -5 }, { -1, -4 }, { 0, -3 }, { 1, -4 }, { 0, -5 },
- { -64, 0 },
- { 0, 7 }, { -1, 8 }, { 0, 9 }, { 1, 8 }, { 0, 7 }, { -64, -64 },
-/* ; */
- { -5, 5 }, { 0, -5 }, { -1, -4 }, { 0, -3 }, { 1, -4 }, { 0, -5 },
- { -64, 0 },
- { 1, 8 }, { 0, 9 }, { -1, 8 }, { 0, 7 }, { 1, 8 }, { 1, 10 },
- { 0, 12 }, { -1, 13 }, { -64, -64 },
-/* < */
- { -12, 12 }, { 8, -9 }, { -8, 0 }, { 8, 9 }, { -64, -64 },
-/* = */
- { -13, 13 }, { -9, -3 }, { 9, -3 }, { -64, 0 },
- { -9, 3 }, { 9, 3 }, { -64, -64 },
-/* > */
- { -12, 12 }, { -8, -9 }, { 8, 0 }, { -8, 9 }, { -64, -64 },
-/* ? */
- { -9, 9 }, { -6, -7 }, { -6, -8 }, { -5, -10 }, { -4, -11 }, { -2, -12 },
- { 2, -12 }, { 4, -11 }, { 5, -10 }, { 6, -8 }, { 6, -6 }, { 5, -4 },
- { 4, -3 }, { 0, -1 }, { 0, 2 }, { -64, 0 },
- { 0, 7 }, { -1, 8 }, { 0, 9 }, { 1, 8 }, { 0, 7 }, { -64, -64 },
-/* @ */
- { -13, 14 }, { 5, -4 }, { 4, -6 }, { 2, -7 }, { -1, -7 }, { -3, -6 },
- { -4, -5 }, { -5, -2 }, { -5, 1 }, { -4, 3 }, { -2, 4 }, { 1, 4 },
- { 3, 3 }, { 4, 1 }, { -64, 0 }, { -1, -7 }, { -3, -5 }, { -4, -2 },
- { -4, 1 }, { -3, 3 }, { -2, 4 }, { -64, 0 }, { 5, -7 }, { 4, 1 },
- { 4, 3 }, { 6, 4 }, { 8, 4 }, { 10, 2 }, { 11, -1 }, { 11, -3 },
- { 10, -6 }, { 9, -8 }, { 7, -10 }, { 5, -11 }, { 2, -12 }, { -1, -12 },
- { -4, -11 }, { -6, -10 }, { -8, -8 }, { -9, -6 }, { -10, -3 }, { -10, 0 },
- { -9, 3 }, { -8, 5 }, { -6, 7 }, { -4, 8 }, { -1, 9 }, { 2, 9 },
- { 5, 8 }, { 7, 7 }, { 8, 6 }, { -64, 0 }, { 6, -7 }, { 5, 1 },
- { 5, 3 }, { 6, 4 }, { -64, -64 },
-/* A */
- { -9, 9 }, { 0, -12 }, { -8, 9 }, { -64, 0 },
- { 0, -12 }, { 8, 9 }, { -64, 0 },
- { -5, 2 }, { 5, 2 }, { -64, -64 },
-/* B */
- { -11, 10 }, { -7, -12 }, { -7, 9 }, { -64, 0 },
- { -7, -12 }, { 2, -12 }, { 5, -11 }, { 6, -10 }, { 7, -8 }, { 7, -6 },
- { 6, -4 }, { 5, -3 }, { 2, -2 }, { -64, 0 },
- { -7, -2 }, { 2, -2 }, { 5, -1 }, { 6, 0 }, { 7, 2 }, { 7, 5 },
- { 6, 7 }, { 5, 8 }, { 2, 9 }, { -7, 9 }, { -64, -64 },
-/* C */
- { -10, 11 }, { 8, -7 }, { 7, -9 }, { 5, -11 }, { 3, -12 }, { -1, -12 },
- { -3, -11 }, { -5, -9 }, { -6, -7 }, { -7, -4 }, { -7, 1 }, { -6, 4 },
- { -5, 6 }, { -3, 8 }, { -1, 9 }, { 3, 9 }, { 5, 8 }, { 7, 6 },
- { 8, 4 }, { -64, -64 },
-/* D */
- { -11, 10 }, { -7, -12 }, { -7, 9 }, { -64, 0 },
- { -7, -12 }, { 0, -12 }, { 3, -11 }, { 5, -9 }, { 6, -7 }, { 7, -4 },
- { 7, 1 }, { 6, 4 }, { 5, 6 }, { 3, 8 }, { 0, 9 }, { -7, 9 },
- { -64, -64 },
-/* E */
- { -10, 9 }, { -6, -12 }, { -6, 9 }, { -64, 0 },
- { -6, -12 }, { 7, -12 }, { -64, 0 },
- { -6, -2 }, { 2, -2 }, { -64, 0 },
- { -6, 9 }, { 7, 9 }, { -64, -64 },
-/* F */
- { -10, 8 }, { -6, -12 }, { -6, 9 }, { -64, 0 },
- { -6, -12 }, { 7, -12 }, { -64, 0 },
- { -6, -2 }, { 2, -2 }, { -64, -64 },
-/* G */
- { -10, 11 }, { 8, -7 }, { 7, -9 }, { 5, -11 }, { 3, -12 }, { -1, -12 },
- { -3, -11 }, { -5, -9 }, { -6, -7 }, { -7, -4 }, { -7, 1 }, { -6, 4 },
- { -5, 6 }, { -3, 8 }, { -1, 9 }, { 3, 9 }, { 5, 8 }, { 7, 6 },
- { 8, 4 }, { 8, 1 }, { -64, 0 },
- { 3, 1 }, { 8, 1 }, { -64, -64 },
-/* H */
- { -11, 11 }, { -7, -12 }, { -7, 9 }, { -64, 0 },
- { 7, -12 }, { 7, 9 }, { -64, 0 },
- { -7, -2 }, { 7, -2 }, { -64, -64 },
-/* I */
- { -4, 4 }, { 0, -12 }, { 0, 9 }, { -64, -64 },
-/* J */
- { -8, 8 }, { 4, -12 }, { 4, 4 }, { 3, 7 }, { 2, 8 }, { 0, 9 },
- { -2, 9 }, { -4, 8 }, { -5, 7 }, { -6, 4 }, { -6, 2 }, { -64, -64 },
-/* K */
- { -11, 10 }, { -7, -12 }, { -7, 9 }, { -64, 0 },
- { 7, -12 }, { -7, 2 }, { -64, 0 },
- { -2, -3 }, { 7, 9 }, { -64, -64 },
-/* L */
- { -10, 7 }, { -6, -12 }, { -6, 9 }, { -64, 0 },
- { -6, 9 }, { 6, 9 }, { -64, -64 },
-/* M */
- { -12, 12 }, { -8, -12 }, { -8, 9 }, { -64, 0 },
- { -8, -12 }, { 0, 9 }, { -64, 0 },
- { 8, -12 }, { 0, 9 }, { -64, 0 },
- { 8, -12 }, { 8, 9 }, { -64, -64 },
-/* N */
- { -11, 11 }, { -7, -12 }, { -7, 9 }, { -64, 0 },
- { -7, -12 }, { 7, 9 }, { -64, 0 },
- { 7, -12 }, { 7, 9 }, { -64, -64 },
-/* O */
- { -11, 11 }, { -2, -12 }, { -4, -11 }, { -6, -9 }, { -7, -7 }, { -8, -4 },
- { -8, 1 }, { -7, 4 }, { -6, 6 }, { -4, 8 }, { -2, 9 }, { 2, 9 },
- { 4, 8 }, { 6, 6 }, { 7, 4 }, { 8, 1 }, { 8, -4 }, { 7, -7 },
- { 6, -9 }, { 4, -11 }, { 2, -12 }, { -2, -12 }, { -64, -64 },
-/* P */
- { -11, 10 }, { -7, -12 }, { -7, 9 }, { -64, 0 },
- { -7, -12 }, { 2, -12 }, { 5, -11 }, { 6, -10 }, { 7, -8 }, { 7, -5 },
- { 6, -3 }, { 5, -2 }, { 2, -1 }, { -7, -1 }, { -64, -64 },
-/* Q */
- { -11, 11 }, { -2, -12 }, { -4, -11 }, { -6, -9 }, { -7, -7 }, { -8, -4 },
- { -8, 1 }, { -7, 4 }, { -6, 6 }, { -4, 8 }, { -2, 9 }, { 2, 9 },
- { 4, 8 }, { 6, 6 }, { 7, 4 }, { 8, 1 }, { 8, -4 }, { 7, -7 },
- { 6, -9 }, { 4, -11 }, { 2, -12 }, { -2, -12 }, { -64, 0 },
- { 1, 5 }, { 7, 11 }, { -64, -64 },
-/* R */
- { -11, 10 }, { -7, -12 }, { -7, 9 }, { -64, 0 },
- { -7, -12 }, { 2, -12 }, { 5, -11 }, { 6, -10 }, { 7, -8 }, { 7, -6 },
- { 6, -4 }, { 5, -3 }, { 2, -2 }, { -7, -2 }, { -64, 0 },
- { 0, -2 }, { 7, 9 }, { -64, -64 },
-/* S */
- { -10, 10 }, { 7, -9 }, { 5, -11 }, { 2, -12 }, { -2, -12 }, { -5, -11 },
- { -7, -9 }, { -7, -7 }, { -6, -5 }, { -5, -4 }, { -3, -3 }, { 3, -1 },
- { 5, 0 }, { 6, 1 }, { 7, 3 }, { 7, 6 }, { 5, 8 }, { 2, 9 },
- { -2, 9 }, { -5, 8 }, { -7, 6 }, { -64, -64 },
-/* T */
- { -8, 8 }, { 0, -12 }, { 0, 9 }, { -64, 0 },
- { -7, -12 }, { 7, -12 }, { -64, -64 },
-/* U */
- { -11, 11 }, { -7, -12 }, { -7, 3 }, { -6, 6 }, { -4, 8 }, { -1, 9 },
- { 1, 9 }, { 4, 8 }, { 6, 6 }, { 7, 3 }, { 7, -12 }, { -64, -64 },
-/* V */
- { -9, 9 }, { -8, -12 }, { 0, 9 }, { -64, 0 },
- { 8, -12 }, { 0, 9 }, { -64, -64 },
-/* W */
- { -12, 12 }, { -10, -12 }, { -5, 9 }, { -64, 0 },
- { 0, -12 }, { -5, 9 }, { -64, 0 },
- { 0, -12 }, { 5, 9 }, { -64, 0 },
- { 10, -12 }, { 5, 9 }, { -64, -64 },
-/* X */
- { -10, 10 }, { -7, -12 }, { 7, 9 }, { -64, 0 },
- { 7, -12 }, { -7, 9 }, { -64, -64 },
-/* Y */
- { -9, 9 }, { -8, -12 }, { 0, -2 }, { 0, 9 }, { -64, 0 },
- { 8, -12 }, { 0, -2 }, { -64, -64 },
-/* Z */
- { -10, 10 }, { 7, -12 }, { -7, 9 }, { -64, 0 },
- { -7, -12 }, { 7, -12 }, { -64, 0 },
- { -7, 9 }, { 7, 9 }, { -64, -64 },
-/* [ */
- { -7, 7 }, { 4, -13 }, { -3, -13 }, { -3, 9 }, { 4, 9 }, { -64, -64 },
-/* \ */
- { -11, 11 }, { -9, -16 }, { 9, 16 }, { -64, -64 },
-/* ] */
- { -7, 7 }, { -4, -13 }, { 3, -13 }, { 3, 9 }, { -4, 9 }, { -64, -64 },
-/* ^ */
- { -8, 8 }, { 0, -14 }, { -8, 0 }, { -64, 0 },
- { 0, -14 }, { 8, 0 }, { -64, -64 },
-/* _ */
- { -13, 13 }, { -9, 9 }, { 9, 9 }, { -64, -64 },
-/* ` */
- { -5, 5 }, { 1, -12 }, { 0, -11 }, { -1, -9 }, { -1, -7 }, { 0, -6 },
- { 1, -7 }, { 0, -8 }, { -64, -64 },
-/* a */
- { -9, 10 }, { 6, -5 }, { 6, 9 }, { -64, 0 },
- { 6, -2 }, { 4, -4 }, { 2, -5 }, { -1, -5 }, { -3, -4 }, { -5, -2 },
- { -6, 1 }, { -6, 3 }, { -5, 6 }, { -3, 8 }, { -1, 9 }, { 2, 9 },
- { 4, 8 }, { 6, 6 }, { -64, -64 },
-/* b */
- { -10, 9 }, { -6, -12 }, { -6, 9 }, { -64, 0 },
- { -6, -2 }, { -4, -4 }, { -2, -5 }, { 1, -5 }, { 3, -4 }, { 5, -2 },
- { 6, 1 }, { 6, 3 }, { 5, 6 }, { 3, 8 }, { 1, 9 }, { -2, 9 },
- { -4, 8 }, { -6, 6 }, { -64, -64 },
-/* c */
- { -9, 9 }, { 6, -2 }, { 4, -4 }, { 2, -5 }, { -1, -5 }, { -3, -4 },
- { -5, -2 }, { -6, 1 }, { -6, 3 }, { -5, 6 }, { -3, 8 }, { -1, 9 },
- { 2, 9 }, { 4, 8 }, { 6, 6 }, { -64, -64 },
-/* d */
- { -9, 10 }, { 6, -12 }, { 6, 9 }, { -64, 0 },
- { 6, -2 }, { 4, -4 }, { 2, -5 }, { -1, -5 }, { -3, -4 }, { -5, -2 },
- { -6, 1 }, { -6, 3 }, { -5, 6 }, { -3, 8 }, { -1, 9 }, { 2, 9 },
- { 4, 8 }, { 6, 6 }, { -64, -64 },
-/* e */
- { -9, 9 }, { -6, 1 }, { 6, 1 }, { 6, -1 }, { 5, -3 }, { 4, -4 },
- { 2, -5 }, { -1, -5 }, { -3, -4 }, { -5, -2 }, { -6, 1 }, { -6, 3 },
- { -5, 6 }, { -3, 8 }, { -1, 9 }, { 2, 9 }, { 4, 8 }, { 6, 6 },
- { -64, -64 },
-/* f */
- { -5, 7 }, { 5, -12 }, { 3, -12 }, { 1, -11 }, { 0, -8 }, { 0, 9 },
- { -64, 0 },
- { -3, -5 }, { 4, -5 }, { -64, -64 },
-/* g */
- { -9, 10 }, { 6, -5 }, { 6, 11 }, { 5, 14 }, { 4, 15 }, { 2, 16 },
- { -1, 16 }, { -3, 15 }, { -64, 0 },
- { 6, -2 }, { 4, -4 }, { 2, -5 }, { -1, -5 }, { -3, -4 }, { -5, -2 },
- { -6, 1 }, { -6, 3 }, { -5, 6 }, { -3, 8 }, { -1, 9 }, { 2, 9 },
- { 4, 8 }, { 6, 6 }, { -64, -64 },
-/* h */
- { -9, 10 }, { -5, -12 }, { -5, 9 }, { -64, 0 },
- { -5, -1 }, { -2, -4 }, { 0, -5 }, { 3, -5 }, { 5, -4 }, { 6, -1 },
- { 6, 9 }, { -64, -64 },
-/* i */
- { -4, 4 }, { -1, -12 }, { 0, -11 }, { 1, -12 }, { 0, -13 }, { -1, -12 },
- { -64, 0 },
- { 0, -5 }, { 0, 9 }, { -64, -64 },
-/* j */
- { -5, 5 }, { 0, -12 }, { 1, -11 }, { 2, -12 }, { 1, -13 }, { 0, -12 },
- { -64, 0 },
- { 1, -5 }, { 1, 12 }, { 0, 15 }, { -2, 16 }, { -4, 16 }, { -64, -64 },
-/* k */
- { -9, 8 }, { -5, -12 }, { -5, 9 }, { -64, 0 },
- { 5, -5 }, { -5, 5 }, { -64, 0 },
- { -1, 1 }, { 6, 9 }, { -64, -64 },
-/* l */
- { -4, 4 }, { 0, -12 }, { 0, 9 }, { -64, -64 },
-/* m */
- { -15, 15 }, { -11, -5 }, { -11, 9 }, { -64, 0 },
- { -11, -1 }, { -8, -4 }, { -6, -5 }, { -3, -5 }, { -1, -4 }, { 0, -1 },
- { 0, 9 }, { -64, 0 },
- { 0, -1 }, { 3, -4 }, { 5, -5 }, { 8, -5 }, { 10, -4 }, { 11, -1 },
- { 11, 9 }, { -64, -64 },
-/* n */
- { -9, 10 }, { -5, -5 }, { -5, 9 }, { -64, 0 },
- { -5, -1 }, { -2, -4 }, { 0, -5 }, { 3, -5 }, { 5, -4 }, { 6, -1 },
- { 6, 9 }, { -64, -64 },
-/* o */
- { -9, 10 }, { -1, -5 }, { -3, -4 }, { -5, -2 }, { -6, 1 }, { -6, 3 },
- { -5, 6 }, { -3, 8 }, { -1, 9 }, { 2, 9 }, { 4, 8 }, { 6, 6 },
- { 7, 3 }, { 7, 1 }, { 6, -2 }, { 4, -4 }, { 2, -5 }, { -1, -5 },
- { -64, -64 },
-/* p */
- { -10, 9 }, { -6, -5 }, { -6, 16 }, { -64, 0 },
- { -6, -2 }, { -4, -4 }, { -2, -5 }, { 1, -5 }, { 3, -4 }, { 5, -2 },
- { 6, 1 }, { 6, 3 }, { 5, 6 }, { 3, 8 }, { 1, 9 }, { -2, 9 },
- { -4, 8 }, { -6, 6 }, { -64, -64 },
-/* q */
- { -9, 10 }, { 6, -5 }, { 6, 16 }, { -64, 0 },
- { 6, -2 }, { 4, -4 }, { 2, -5 }, { -1, -5 }, { -3, -4 }, { -5, -2 },
- { -6, 1 }, { -6, 3 }, { -5, 6 }, { -3, 8 }, { -1, 9 }, { 2, 9 },
- { 4, 8 }, { 6, 6 }, { -64, -64 },
-/* r */
- { -7, 6 }, { -3, -5 }, { -3, 9 }, { -64, 0 },
- { -3, 1 }, { -2, -2 }, { 0, -4 }, { 2, -5 }, { 5, -5 }, { -64, -64 },
-/* s */
- { -8, 9 }, { 6, -2 }, { 5, -4 }, { 2, -5 }, { -1, -5 }, { -4, -4 },
- { -5, -2 }, { -4, 0 }, { -2, 1 }, { 3, 2 }, { 5, 3 }, { 6, 5 },
- { 6, 6 }, { 5, 8 }, { 2, 9 }, { -1, 9 }, { -4, 8 }, { -5, 6 },
- { -64, -64 },
-/* t */
- { -5, 7 }, { 0, -12 }, { 0, 5 }, { 1, 8 }, { 3, 9 }, { 5, 9 },
- { -64, 0 },
- { -3, -5 }, { 4, -5 }, { -64, -64 },
-/* u */
- { -9, 10 }, { -5, -5 }, { -5, 5 }, { -4, 8 }, { -2, 9 }, { 1, 9 },
- { 3, 8 }, { 6, 5 }, { -64, 0 },
- { 6, -5 }, { 6, 9 }, { -64, -64 },
-/* v */
- { -8, 8 }, { -6, -5 }, { 0, 9 }, { -64, 0 },
- { 6, -5 }, { 0, 9 }, { -64, -64 },
-/* w */
- { -11, 11 }, { -8, -5 }, { -4, 9 }, { -64, 0 },
- { 0, -5 }, { -4, 9 }, { -64, 0 },
- { 0, -5 }, { 4, 9 }, { -64, 0 },
- { 8, -5 }, { 4, 9 }, { -64, -64 },
-/* x */
- { -8, 9 }, { -5, -5 }, { 6, 9 }, { -64, 0 },
- { 6, -5 }, { -5, 9 }, { -64, -64 },
-/* y */
- { -8, 8 }, { -6, -5 }, { 0, 9 }, { -64, 0 },
- { 6, -5 }, { 0, 9 }, { -2, 13 }, { -4, 15 }, { -6, 16 }, { -7, 16 },
- { -64, -64 },
-/* z */
- { -8, 9 }, { 6, -5 }, { -5, 9 }, { -64, 0 },
- { -5, -5 }, { 6, -5 }, { -64, 0 },
- { -5, 9 }, { 6, 9 }, { -64, -64 },
-/* { */
- { -5, 7 }, { 5, -13 }, { 3, -13 }, { 1, -12 }, { 0, -9 }, { 0, -3 },
- { -3, -3 }, { 0, -3 }, { 0, 5 }, { 1, 8 }, { 3, 9 }, { 5, 9 },
- { -64, -64 },
-/* | */
- { -4, 4 }, { 0, -16 }, { 0, 16 }, { -64, -64 },
-/* } */
- { -7, 5 }, { -5, -13 }, { -3, -13 }, { -1, -12 }, { 0, -9 }, { 0, -3 },
- { 3, -3 }, { 0, -3 }, { 0, 5 }, { -1, 8 }, { -3, 9 }, { -5, 9 },
- { -64, -64 },
-/* ~ */
- { -12, 12 }, { -9, 2 }, { -9, 1 }, { -8, -2 }, { -6, -3 }, { -4, -3 },
- { -2, -2 }, { 2, 2 }, { 4, 3 }, { 6, 3 }, { 8, 2 }, { 9, -1 },
- { 9, -2 }, { -64, -64 },
-};
-
-const uint16_t _twin_glyph_offsets[] = {
-/* 0x00 */
- 0, 0, 0, 0, 0, 0, 0, 0,
-/* 0x08 */
- 0, 0, 0, 0, 0, 0, 0, 0,
-/* 0x10 */
- 0, 0, 0, 0, 0, 0, 0, 0,
-/* 0x18 */
- 0, 0, 0, 0, 0, 0, 0, 0,
-/* 0x20 */
- 7, 9, 19, 26, 39, 67, 100, 136,
-/* 0x28 */
- 145, 157, 169, 179, 186, 196, 200, 207,
-/* 0x30 */
- 211, 230, 236, 252, 269, 277, 296, 321,
-/* 0x38 */
- 328, 359, 384, 397, 413, 418, 425, 430,
-/* 0x40 */
- 452, 509, 519, 544, 564, 581, 594, 604,
-/* 0x48 */
- 628, 638, 642, 654, 664, 671, 684, 694,
-/* 0x50 */
- 717, 732, 758, 776, 798, 805, 817, 824,
-/* 0x58 */
- 837, 844, 852, 862, 868, 872, 878, 885,
-/* 0x60 */
- 889, 898, 917, 936, 952, 971, 990, 1000,
-/* 0x68 */
- 1024, 1036, 1046, 1059, 1069, 1073, 1093, 1105,
-/* 0x70 */
- 1124, 1143, 1162, 1172, 1191, 1201, 1213, 1220,
-/* 0x78 */
- 1233, 1240, 1251, 1261, 1274, 1278, 1291, 0,
-};
const signed char _twin_gtable[] = {
-/* 0x0 '\0' */
+/* 0x0 '\0' offset 0 */
0, 24, 42, 0, 2, 4,
0, 24, /* snap_x */
-42, -21, -15, 0, /* snap_y */
- 'm', 0, -2,
+ 'm', 0, 0,
'l', 0, -42,
'l', 24, -42,
'l', 24, 0,
'l', 0, 0,
'e',
-/* 0x20 ' ' */
+/* 0x20 ' ' offset 28 */
0, 4, 0, 0, 2, 3,
-128, 0, /* snap_x */
-21, -15, 0, /* snap_y */
'e',
-/* 0x21 '!' */
+/* 0x21 '!' offset 40 */
0, 4, 42, 0, 3, 3,
0, 2, 4, /* snap_x */
-21, -15, 0, /* snap_y */
'm', 2, -42,
'l', 2, -14,
'm', 2, -4,
- 'l', 0, -2,
- 'l', 2, 0,
- 'l', 4, -2,
- 'l', 2, -4,
+ 'c', 1, -4, 0, -3, 0, -2,
+ 'c', 0, -1, 1, 0, 2, 0,
+ 'c', 3, 0, 4, -1, 4, -2,
+ 'c', 4, -3, 3, -4, 2, -4,
'e',
-/* 0x22 '"' */
+/* 0x22 '"' offset 90 */
0, 16, 42, -28, 2, 3,
0, 16, /* snap_x */
-21, -15, 0, /* snap_y */
@@ -484,7 +62,7 @@ const signed char _twin_gtable[] = {
'm', 16, -42,
'l', 16, -28,
'e',
-/* 0x23 '#' */
+/* 0x23 '#' offset 114 */
0, 30, 50, 14, 2, 5,
0, 30, /* snap_x */
-24, -21, -15, -12, 0, /* snap_y */
@@ -497,7 +75,7 @@ const signed char _twin_gtable[] = {
'm', 0, -12,
'l', 28, -12,
'e',
-/* 0x24 '$' */
+/* 0x24 '$' offset 152 */
0, 28, 50, 8, 4, 4,
0, 10, 18, 28, /* snap_x */
-42, -21, -15, 0, /* snap_y */
@@ -506,142 +84,69 @@ const signed char _twin_gtable[] = {
'm', 18, -50,
'l', 18, 8,
'm', 28, -36,
- 'l', 24, -40,
- 'l', 18, -42,
- 'l', 10, -42,
- 'l', 4, -40,
- 'l', 0, -36,
- 'l', 0, -32,
- 'l', 2, -28,
- 'l', 4, -26,
- 'l', 8, -24,
- 'l', 20, -20,
- 'l', 24, -18,
- 'l', 26, -16,
- 'l', 28, -12,
- 'l', 28, -6,
- 'l', 24, -2,
- 'l', 18, 0,
- 'l', 10, 0,
- 'l', 4, -2,
- 'l', 0, -6,
- 'e',
-/* 0x25 '%' */
+ 'c', 24, -42, 18, -42, 14, -42,
+ 'c', 10, -42, 0, -42, 0, -34,
+ 'c', 0, -25, 8, -24, 14, -22,
+ 'c', 20, -20, 28, -19, 28, -9,
+ 'c', 28, 0, 18, 0, 14, 0,
+ 'c', 10, 0, 4, 0, 0, -6,
+ 'e',
+/* 0x25 '%' offset 224 */
0, 36, 42, 0, 4, 7,
0, 14, 22, 36, /* snap_x */
-42, -38, -28, -21, -15, -14, 0, /* snap_y */
'm', 36, -42,
'l', 0, 0,
'm', 10, -42,
- 'l', 14, -38,
- 'l', 14, -34,
- 'l', 12, -30,
- 'l', 8, -28,
- 'l', 4, -28,
- 'l', 0, -32,
- 'l', 0, -36,
- 'l', 2, -40,
- 'l', 6, -42,
+ 'c', 12, -41, 14, -40, 14, -36,
+ 'c', 14, -30, 11, -28, 6, -28,
+ 'c', 2, -28, 0, -30, 0, -34,
+ 'c', 0, -39, 3, -42, 8, -42,
'l', 10, -42,
- 'l', 14, -40,
- 'l', 20, -38,
- 'l', 26, -38,
- 'l', 32, -40,
- 'l', 36, -42,
+ 'c', 18, -37, 28, -37, 36, -42,
'm', 28, -14,
- 'l', 24, -12,
- 'l', 22, -8,
- 'l', 22, -4,
- 'l', 26, 0,
- 'l', 30, 0,
- 'l', 34, -2,
- 'l', 36, -6,
- 'l', 36, -10,
- 'l', 32, -14,
+ 'c', 24, -14, 22, -11, 22, -6,
+ 'c', 22, -2, 24, 0, 28, 0,
+ 'c', 33, 0, 36, -2, 36, -8,
+ 'c', 36, -12, 34, -14, 30, -14,
'l', 28, -14,
'e',
-/* 0x26 '&' */
+/* 0x26 '&' offset 323 */
0, 40, 42, 0, 4, 4,
0, 10, 22, 40, /* snap_x */
-28, -21, -15, 0, /* snap_y */
'm', 40, -24,
- 'l', 40, -26,
- 'l', 38, -28,
- 'l', 36, -28,
- 'l', 34, -26,
- 'l', 32, -22,
- 'l', 28, -12,
- 'l', 24, -6,
- 'l', 20, -2,
- 'l', 16, 0,
- 'l', 8, 0,
- 'l', 4, -2,
- 'l', 2, -4,
- 'l', 0, -8,
- 'l', 0, -12,
- 'l', 2, -16,
- 'l', 4, -18,
- 'l', 18, -26,
- 'l', 20, -28,
- 'l', 22, -32,
- 'l', 22, -36,
- 'l', 20, -40,
- 'l', 16, -42,
- 'l', 12, -40,
- 'l', 10, -36,
- 'l', 10, -32,
- 'l', 12, -26,
- 'l', 16, -20,
- 'l', 26, -6,
- 'l', 30, -2,
- 'l', 34, 0,
- 'l', 38, 0,
- 'l', 40, -2,
- 'l', 40, -4,
- 'e',
-/* 0x27 ''' */
+ 'c', 40, -27, 39, -28, 37, -28,
+ 'c', 29, -28, 32, 0, 12, 0,
+ 'c', 0, 0, 0, -8, 0, -10,
+ 'c', 0, -24, 22, -20, 22, -34,
+ 'c', 22, -45, 10, -45, 10, -34,
+ 'c', 10, -27, 25, 0, 36, 0,
+ 'c', 39, 0, 40, -1, 40, -4,
+ 'e',
+/* 0x27 ''' offset 390 */
0, 4, 42, -30, 2, 3,
0, 4, /* snap_x */
-21, -15, 0, /* snap_y */
'm', 2, -38,
- 'l', 0, -40,
- 'l', 2, -42,
- 'l', 4, -40,
- 'l', 4, -36,
- 'l', 2, -32,
- 'l', 0, -30,
- 'e',
-/* 0x28 '(' */
+ 'c', -1, -38, -1, -42, 2, -42,
+ 'c', 6, -42, 5, -33, 0, -30,
+ 'e',
+/* 0x28 '(' offset 419 */
0, 14, 50, 14, 2, 3,
0, 14, /* snap_x */
-21, -15, 0, /* snap_y */
'm', 14, -50,
- 'l', 10, -46,
- 'l', 6, -40,
- 'l', 2, -32,
- 'l', 0, -22,
- 'l', 0, -14,
- 'l', 2, -4,
- 'l', 6, 4,
- 'l', 10, 10,
- 'l', 14, 14,
+ 'c', -5, -32, -5, -5, 14, 14,
'e',
-/* 0x29 ')' */
+/* 0x29 ')' offset 441 */
0, 14, 50, 14, 2, 3,
0, 14, /* snap_x */
-21, -15, 0, /* snap_y */
'm', 0, -50,
- 'l', 4, -46,
- 'l', 8, -40,
- 'l', 12, -32,
- 'l', 14, -22,
- 'l', 14, -14,
- 'l', 12, -4,
- 'l', 8, 4,
- 'l', 4, 10,
- 'l', 0, 14,
+ 'c', 19, -34, 19, -2, 0, 14,
'e',
-/* 0x2a '*' */
+/* 0x2a '*' offset 463 */
0, 20, 30, -6, 3, 3,
0, 10, 20, /* snap_x */
-21, -15, 0, /* snap_y */
@@ -652,7 +157,7 @@ const signed char _twin_gtable[] = {
'm', 20, -24,
'l', 0, -12,
'e',
-/* 0x2b '+' */
+/* 0x2b '+' offset 494 */
0, 36, 36, 0, 3, 4,
0, 18, 36, /* snap_x */
-21, -18, -15, 0, /* snap_y */
@@ -661,114 +166,78 @@ const signed char _twin_gtable[] = {
'm', 0, -18,
'l', 36, -18,
'e',
-/* 0x2c ',' */
+/* 0x2c ',' offset 520 */
0, 4, 4, 8, 2, 3,
0, 4, /* snap_x */
-21, -15, 0, /* snap_y */
'm', 4, -2,
- 'l', 2, 0,
- 'l', 0, -2,
- 'l', 2, -4,
- 'l', 4, -2,
- 'l', 4, 2,
- 'l', 2, 6,
- 'l', 0, 8,
+ 'c', 4, 1, 0, 1, 0, -2,
+ 'c', 0, -5, 4, -5, 4, -2,
+ 'c', 4, 4, 2, 6, 0, 8,
'e',
-/* 0x2d '-' */
+/* 0x2d '-' offset 556 */
0, 36, 18, -18, 2, 4,
0, 36, /* snap_x */
-21, -18, -15, 0, /* snap_y */
'm', 0, -18,
'l', 36, -18,
'e',
-/* 0x2e '.' */
+/* 0x2e '.' offset 575 */
0, 4, 4, 0, 2, 3,
0, 4, /* snap_x */
-21, -15, 0, /* snap_y */
'm', 2, -4,
- 'l', 0, -2,
- 'l', 2, 0,
- 'l', 4, -2,
- 'l', 2, -4,
+ 'c', -1, -4, -1, 0, 2, 0,
+ 'c', 5, 0, 5, -4, 2, -4,
'e',
-/* 0x2f '/' */
- -36, 0, 50, 14, 1, 3,
- 0, /* snap_x */
+/* 0x2f '/' offset 604 */
+ 0, 36, 50, 14, 2, 3,
+ 0, 36, /* snap_x */
-21, -15, 0, /* snap_y */
- 'm', 0, -50,
- 'l', -36, 14,
+ 'm', 36, -50,
+ 'l', 0, 14,
'e',
-/* 0x30 '0' */
+/* 0x30 '0' offset 622 */
0, 28, 42, 0, 2, 4,
0, 28, /* snap_x */
-42, -21, -15, 0, /* snap_y */
- 'm', 12, -42,
- 'l', 6, -40,
- 'l', 2, -34,
- 'l', 0, -24,
- 'l', 0, -18,
- 'l', 2, -8,
- 'l', 6, -2,
- 'l', 12, 0,
- 'l', 16, 0,
- 'l', 22, -2,
- 'l', 26, -8,
- 'l', 28, -18,
- 'l', 28, -24,
- 'l', 26, -34,
- 'l', 22, -40,
- 'l', 16, -42,
- 'l', 12, -42,
- 'e',
-/* 0x31 '1' */
+ 'm', 14, -42,
+ 'c', 9, -42, 0, -42, 0, -21,
+ 'c', 0, 0, 9, 0, 14, 0,
+ 'c', 19, 0, 28, 0, 28, -21,
+ 'c', 28, -42, 19, -42, 14, -42,
+ 'e',
+/* 0x31 '1' offset 666 */
0, 10, 42, 0, 2, 3,
0, 10, /* snap_x */
-21, -15, 0, /* snap_y */
'm', 0, -34,
- 'l', 4, -36,
- 'l', 10, -42,
+ 'c', 4, -35, 8, -38, 10, -42,
'l', 10, 0,
'e',
-/* 0x32 '2' */
+/* 0x32 '2' offset 691 */
0, 28, 42, 0, 4, 4,
0, 2, 26, 28, /* snap_x */
-42, -21, -15, 0, /* snap_y */
'm', 2, -32,
- 'l', 2, -34,
- 'l', 4, -38,
- 'l', 6, -40,
- 'l', 10, -42,
- 'l', 18, -42,
- 'l', 22, -40,
- 'l', 24, -38,
- 'l', 26, -34,
- 'l', 26, -30,
- 'l', 24, -26,
- 'l', 20, -20,
+ 'c', 2, -34, 2, -42, 14, -42,
+ 'c', 26, -42, 26, -34, 26, -32,
+ 'c', 26, -30, 25, -25, 10, -10,
'l', 0, 0,
'l', 28, 0,
'e',
-/* 0x33 '3' */
+/* 0x33 '3' offset 736 */
0, 28, 42, 0, 2, 5,
0, 28, /* snap_x */
-42, -26, -21, -15, 0, /* snap_y */
'm', 4, -42,
'l', 26, -42,
'l', 14, -26,
- 'l', 20, -26,
- 'l', 24, -24,
- 'l', 26, -22,
- 'l', 28, -16,
- 'l', 28, -12,
- 'l', 26, -6,
- 'l', 22, -2,
- 'l', 16, 0,
- 'l', 10, 0,
- 'l', 4, -2,
- 'l', 2, -4,
- 'l', 0, -8,
+ 'c', 21, -26, 28, -26, 28, -14,
+ 'c', 28, 0, 17, 0, 13, 0,
+ 'c', 8, 0, 3, -1, 0, -8,
'e',
-/* 0x34 '4' */
+/* 0x34 '4' offset 780 */
0, 30, 42, 0, 3, 4,
0, 20, 30, /* snap_x */
-21, -15, -14, 0, /* snap_y */
@@ -778,57 +247,31 @@ const signed char _twin_gtable[] = {
'm', 20, -42,
'l', 20, 0,
'e',
-/* 0x35 '5' */
+/* 0x35 '5' offset 809 */
0, 28, 42, 0, 2, 5,
0, 28, /* snap_x */
-42, -28, -21, -15, 0, /* snap_y */
'm', 24, -42,
'l', 4, -42,
'l', 2, -24,
- 'l', 4, -26,
- 'l', 10, -28,
- 'l', 16, -28,
- 'l', 22, -26,
- 'l', 26, -22,
- 'l', 28, -16,
- 'l', 28, -12,
- 'l', 26, -6,
- 'l', 22, -2,
- 'l', 16, 0,
- 'l', 10, 0,
- 'l', 4, -2,
- 'l', 2, -4,
- 'l', 0, -8,
+ 'c', 5, -27, 10, -28, 13, -28,
+ 'c', 16, -28, 28, -28, 28, -14,
+ 'c', 28, 0, 16, 0, 13, 0,
+ 'c', 10, 0, 3, 0, 0, -8,
'e',
-/* 0x36 '6' */
+/* 0x36 '6' offset 860 */
0, 26, 42, 0, 2, 5,
0, 26, /* snap_x */
-42, -26, -21, -15, 0, /* snap_y */
'm', 24, -36,
- 'l', 22, -40,
- 'l', 16, -42,
- 'l', 12, -42,
- 'l', 6, -40,
- 'l', 2, -34,
- 'l', 0, -24,
- 'l', 0, -14,
- 'l', 2, -6,
- 'l', 6, -2,
- 'l', 12, 0,
- 'l', 14, 0,
- 'l', 20, -2,
- 'l', 24, -6,
- 'l', 26, -12,
- 'l', 26, -14,
- 'l', 24, -20,
- 'l', 20, -24,
- 'l', 14, -26,
- 'l', 12, -26,
- 'l', 6, -24,
- 'l', 2, -20,
- 'l', 0, -14,
- 'e',
-/* 0x37 '7' */
+ 'c', 22, -41, 19, -42, 14, -42,
+ 'c', 9, -42, 0, -41, 0, -19,
+ 'c', 0, -1, 9, 0, 13, 0,
+ 'c', 18, 0, 26, -3, 26, -13,
+ 'c', 26, -18, 23, -26, 13, -26,
+ 'c', 10, -26, 1, -24, 0, -14,
+ 'e',
+/* 0x37 '7' offset 919 */
0, 28, 42, 0, 2, 4,
0, 28, /* snap_x */
-42, -21, -15, 0, /* snap_y */
@@ -837,102 +280,54 @@ const signed char _twin_gtable[] = {
'm', 0, -42,
'l', 28, -42,
'e',
-/* 0x38 '8' */
+/* 0x38 '8' offset 944 */
0, 28, 42, 0, 4, 4,
0, 2, 26, 28, /* snap_x */
-42, -21, -15, 0, /* snap_y */
- 'm', 10, -42,
- 'l', 4, -40,
- 'l', 2, -36,
- 'l', 2, -32,
- 'l', 4, -28,
- 'l', 8, -26,
- 'l', 16, -24,
- 'l', 22, -22,
- 'l', 26, -18,
- 'l', 28, -14,
- 'l', 28, -8,
- 'l', 26, -4,
- 'l', 24, -2,
- 'l', 18, 0,
- 'l', 10, 0,
- 'l', 4, -2,
- 'l', 2, -4,
- 'l', 0, -8,
- 'l', 0, -14,
- 'l', 2, -18,
- 'l', 6, -22,
- 'l', 12, -24,
- 'l', 20, -26,
- 'l', 24, -28,
- 'l', 26, -32,
- 'l', 26, -36,
- 'l', 24, -40,
- 'l', 18, -42,
- 'l', 10, -42,
- 'e',
-/* 0x39 '9' */
+ 'm', 14, -42,
+ 'c', 5, -42, 2, -40, 2, -34,
+ 'c', 2, -18, 28, -32, 28, -11,
+ 'c', 28, 0, 18, 0, 14, 0,
+ 'c', 10, 0, 0, 0, 0, -11,
+ 'c', 0, -32, 26, -18, 26, -34,
+ 'c', 26, -40, 23, -42, 14, -42,
+ 'e',
+/* 0x39 '9' offset 1004 */
0, 26, 42, 0, 2, 5,
0, 26, /* snap_x */
-42, -21, -16, -15, 0, /* snap_y */
'm', 26, -28,
- 'l', 24, -22,
- 'l', 20, -18,
- 'l', 14, -16,
- 'l', 12, -16,
- 'l', 6, -18,
- 'l', 2, -22,
- 'l', 0, -28,
- 'l', 0, -30,
- 'l', 2, -36,
- 'l', 6, -40,
- 'l', 12, -42,
- 'l', 14, -42,
- 'l', 20, -40,
- 'l', 24, -36,
- 'l', 26, -28,
- 'l', 26, -18,
- 'l', 24, -8,
- 'l', 20, -2,
- 'l', 14, 0,
- 'l', 10, 0,
- 'l', 4, -2,
- 'l', 2, -6,
- 'e',
-/* 0x3a ':' */
+ 'c', 25, -16, 13, -16, 13, -16,
+ 'c', 8, -16, 0, -19, 0, -29,
+ 'c', 0, -34, 3, -42, 13, -42,
+ 'c', 24, -42, 26, -32, 26, -23,
+ 'c', 26, -14, 24, 0, 12, 0,
+ 'c', 7, 0, 4, -2, 2, -6,
+ 'e',
+/* 0x3a ':' offset 1063 */
0, 4, 28, 0, 2, 3,
0, 4, /* snap_x */
-21, -15, 0, /* snap_y */
'm', 2, -28,
- 'l', 0, -26,
- 'l', 2, -24,
- 'l', 4, -26,
- 'l', 2, -28,
+ 'c', -1, -28, -1, -24, 2, -24,
+ 'c', 5, -24, 5, -28, 2, -28,
'm', 2, -4,
- 'l', 0, -2,
- 'l', 2, 0,
- 'l', 4, -2,
- 'l', 2, -4,
+ 'c', -1, -4, -1, 0, 2, 0,
+ 'c', 5, 0, 5, -4, 2, -4,
'e',
-/* 0x3b ';' */
+/* 0x3b ';' offset 1109 */
0, 4, 28, 8, 2, 3,
0, 4, /* snap_x */
-21, -15, 0, /* snap_y */
'm', 2, -28,
- 'l', 0, -26,
- 'l', 2, -24,
- 'l', 4, -26,
- 'l', 2, -28,
+ 'c', -1, -28, -1, -24, 2, -24,
+ 'c', 5, -24, 5, -28, 2, -28,
'm', 4, -2,
- 'l', 2, 0,
- 'l', 0, -2,
- 'l', 2, -4,
- 'l', 4, -2,
- 'l', 4, 2,
- 'l', 2, 6,
- 'l', 0, 8,
+ 'c', 4, 1, 0, 1, 0, -2,
+ 'c', 0, -5, 4, -5, 4, -2,
+ 'c', 4, 3, 2, 6, 0, 8,
'e',
-/* 0x3c '<' */
+/* 0x3c '<' offset 1162 */
0, 32, 36, 0, 2, 3,
0, 32, /* snap_x */
-21, -15, 0, /* snap_y */
@@ -940,7 +335,7 @@ const signed char _twin_gtable[] = {
'l', 0, -18,
'l', 32, 0,
'e',
-/* 0x3d '=' */
+/* 0x3d '=' offset 1183 */
0, 36, 24, -12, 2, 5,
0, 36, /* snap_x */
-24, -21, -15, -12, 0, /* snap_y */
@@ -949,7 +344,7 @@ const signed char _twin_gtable[] = {
'm', 0, -12,
'l', 36, -12,
'e',
-/* 0x3e '>' */
+/* 0x3e '>' offset 1209 */
0, 32, 36, 0, 2, 3,
0, 32, /* snap_x */
-21, -15, 0, /* snap_y */
@@ -957,88 +352,36 @@ const signed char _twin_gtable[] = {
'l', 32, -18,
'l', 0, 0,
'e',
-/* 0x3f '?' */
+/* 0x3f '?' offset 1230 */
0, 24, 42, 0, 3, 4,
0, 12, 24, /* snap_x */
-42, -21, -15, 0, /* snap_y */
'm', 0, -32,
- 'l', 0, -34,
- 'l', 2, -38,
- 'l', 4, -40,
- 'l', 8, -42,
- 'l', 16, -42,
- 'l', 20, -40,
- 'l', 22, -38,
- 'l', 24, -34,
- 'l', 24, -30,
- 'l', 22, -26,
- 'l', 20, -24,
- 'l', 12, -20,
+ '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', 10, -2,
- 'l', 12, 0,
- 'l', 14, -2,
- 'l', 12, -4,
+ 'c', 9, -4, 9, 0, 12, 0,
+ 'c', 15, 0, 15, -4, 12, -4,
'e',
-/* 0x40 '@' */
+/* 0x40 '@' offset 1288 */
0, 42, 42, 0, 1, 6,
30, /* snap_x */
-42, -32, -21, -15, -10, 0, /* snap_y */
'm', 30, -26,
- 'l', 28, -30,
- 'l', 24, -32,
- 'l', 18, -32,
- 'l', 14, -30,
- 'l', 12, -28,
- 'l', 10, -22,
- 'l', 10, -16,
- 'l', 12, -12,
- 'l', 16, -10,
- 'l', 22, -10,
- 'l', 26, -12,
- 'l', 28, -16,
- 'm', 18, -32,
- 'l', 14, -28,
- 'l', 12, -22,
- 'l', 12, -16,
- 'l', 14, -12,
- 'l', 16, -10,
- 'm', 30, -32,
- 'l', 28, -16,
- 'l', 28, -12,
- 'l', 32, -10,
- 'l', 36, -10,
- 'l', 40, -14,
- 'l', 42, -20,
- 'l', 42, -24,
- 'l', 40, -30,
- 'l', 38, -34,
- 'l', 34, -38,
- 'l', 30, -40,
- 'l', 24, -42,
- 'l', 18, -42,
- 'l', 12, -40,
- 'l', 8, -38,
- 'l', 4, -34,
- 'l', 2, -30,
- 'l', 0, -24,
- 'l', 0, -18,
- 'l', 2, -12,
- 'l', 4, -8,
- 'l', 8, -4,
- 'l', 12, -2,
- 'l', 18, 0,
- 'l', 24, 0,
- 'l', 30, -2,
- 'l', 34, -4,
- 'l', 36, -6,
- 'm', 32, -32,
- 'l', 30, -16,
- 'l', 30, -12,
- 'l', 32, -10,
- 'e',
-/* 0x41 'A' */
+ 'c', 28, -31, 24, -32, 21, -32,
+ 'c', 10, -32, 10, -23, 10, -19,
+ 'c', 10, -13, 11, -10, 19, -10,
+ 'c', 30, -10, 28, -21, 30, -32,
+ 'c', 27, -10, 30, -10, 34, -10,
+ 'c', 41, -10, 42, -19, 42, -22,
+ 'c', 42, -34, 34, -42, 21, -42,
+ 'c', 9, -42, 0, -34, 0, -21,
+ 'c', 0, -9, 8, 0, 21, 0,
+ 'c', 30, 0, 34, -3, 36, -6,
+ 'e',
+/* 0x41 'A' offset 1375 */
0, 32, 42, 0, 2, 4,
0, 32, /* snap_x */
-21, -15, -14, 0, /* snap_y */
@@ -1049,7 +392,7 @@ const signed char _twin_gtable[] = {
'm', 6, -14,
'l', 26, -14,
'e',
-/* 0x42 'B' */
+/* 0x42 'B' offset 1406 */
0, 28, 42, 0, 2, 5,
0, 28, /* snap_x */
-42, -22, -21, -15, 0, /* snap_y */
@@ -1057,48 +400,23 @@ const signed char _twin_gtable[] = {
'l', 0, 0,
'm', 0, -42,
'l', 18, -42,
- 'l', 24, -40,
- 'l', 26, -38,
- 'l', 28, -34,
- 'l', 28, -30,
- 'l', 26, -26,
- 'l', 24, -24,
- 'l', 18, -22,
+ 'c', 32, -42, 32, -22, 18, -22,
'm', 0, -22,
'l', 18, -22,
- 'l', 24, -20,
- 'l', 26, -18,
- 'l', 28, -14,
- 'l', 28, -8,
- 'l', 26, -4,
- 'l', 24, -2,
- 'l', 18, 0,
+ 'c', 32, -22, 32, 0, 18, 0,
'l', 0, 0,
'e',
-/* 0x43 'C' */
+/* 0x43 'C' offset 1455 */
0, 30, 42, 0, 2, 4,
0, 30, /* snap_x */
-42, -21, -15, 0, /* snap_y */
'm', 30, -32,
- 'l', 28, -36,
- 'l', 24, -40,
- 'l', 20, -42,
- 'l', 12, -42,
- 'l', 8, -40,
- 'l', 4, -36,
- 'l', 2, -32,
- 'l', 0, -26,
- 'l', 0, -16,
- 'l', 2, -10,
- 'l', 4, -6,
- 'l', 8, -2,
- 'l', 12, 0,
- 'l', 20, 0,
- 'l', 24, -2,
- 'l', 28, -6,
- 'l', 30, -10,
+ 'c', 26, -42, 21, -42, 16, -42,
+ 'c', 2, -42, 0, -29, 0, -21,
+ 'c', 0, -13, 2, 0, 16, 0,
+ 'c', 21, 0, 26, 0, 30, -10,
'e',
-/* 0x44 'D' */
+/* 0x44 'D' offset 1499 */
0, 28, 42, 0, 2, 4,
0, 28, /* snap_x */
-42, -21, -15, 0, /* snap_y */
@@ -1106,18 +424,10 @@ const signed char _twin_gtable[] = {
'l', 0, 0,
'm', 0, -42,
'l', 14, -42,
- 'l', 20, -40,
- 'l', 24, -36,
- 'l', 26, -32,
- 'l', 28, -26,
- 'l', 28, -16,
- 'l', 26, -10,
- 'l', 24, -6,
- 'l', 20, -2,
- 'l', 14, 0,
+ 'c', 33, -42, 33, 0, 14, 0,
'l', 0, 0,
'e',
-/* 0x45 'E' */
+/* 0x45 'E' offset 1534 */
0, 26, 42, 0, 2, 5,
0, 26, /* snap_x */
-42, -22, -21, -15, 0, /* snap_y */
@@ -1130,7 +440,7 @@ const signed char _twin_gtable[] = {
'm', 0, 0,
'l', 26, 0,
'e',
-/* 0x46 'F' */
+/* 0x46 'F' offset 1572 */
0, 26, 42, 0, 2, 5,
0, 26, /* snap_x */
-42, -22, -21, -15, 0, /* snap_y */
@@ -1141,33 +451,19 @@ const signed char _twin_gtable[] = {
'm', 0, -22,
'l', 16, -22,
'e',
-/* 0x47 'G' */
+/* 0x47 'G' offset 1604 */
0, 30, 42, 0, 2, 5,
0, 30, /* snap_x */
-42, -21, -16, -15, 0, /* snap_y */
'm', 30, -32,
- 'l', 28, -36,
- 'l', 24, -40,
- 'l', 20, -42,
- 'l', 12, -42,
- 'l', 8, -40,
- 'l', 4, -36,
- 'l', 2, -32,
- 'l', 0, -26,
- 'l', 0, -16,
- 'l', 2, -10,
- 'l', 4, -6,
- 'l', 8, -2,
- 'l', 12, 0,
- 'l', 20, 0,
- 'l', 24, -2,
- 'l', 28, -6,
- 'l', 30, -10,
- 'l', 30, -16,
+ 'c', 26, -42, 21, -42, 16, -42,
+ 'c', 2, -42, 0, -29, 0, -21,
+ 'c', 0, -13, 2, 0, 16, 0,
+ 'c', 28, 0, 30, -7, 30, -16,
'm', 20, -16,
'l', 30, -16,
'e',
-/* 0x48 'H' */
+/* 0x48 'H' offset 1655 */
0, 28, 42, 0, 2, 4,
0, 28, /* snap_x */
-22, -21, -15, 0, /* snap_y */
@@ -1178,29 +474,23 @@ const signed char _twin_gtable[] = {
'm', 0, -22,
'l', 28, -22,
'e',
-/* 0x49 'I' */
+/* 0x49 'I' offset 1686 */
0, 0, 42, 0, 1, 3,
0, /* snap_x */
-21, -15, 0, /* snap_y */
'm', 0, -42,
'l', 0, 0,
'e',
-/* 0x4a 'J' */
+/* 0x4a 'J' offset 1703 */
0, 20, 42, 0, 2, 3,
0, 20, /* snap_x */
-21, -15, 0, /* snap_y */
'm', 20, -42,
'l', 20, -10,
- 'l', 18, -4,
- 'l', 16, -2,
- 'l', 12, 0,
- 'l', 8, 0,
- 'l', 4, -2,
- 'l', 2, -4,
- 'l', 0, -10,
+ 'c', 20, 3, 0, 3, 0, -10,
'l', 0, -14,
'e',
-/* 0x4b 'K' */
+/* 0x4b 'K' offset 1731 */
0, 28, 42, 0, 2, 3,
0, 28, /* snap_x */
-21, -15, 0, /* snap_y */
@@ -1211,7 +501,7 @@ const signed char _twin_gtable[] = {
'm', 10, -24,
'l', 28, 0,
'e',
-/* 0x4c 'L' */
+/* 0x4c 'L' offset 1761 */
0, 24, 42, 0, 2, 3,
0, 24, /* snap_x */
-21, -15, 0, /* snap_y */
@@ -1220,7 +510,7 @@ const signed char _twin_gtable[] = {
'm', 0, 0,
'l', 24, 0,
'e',
-/* 0x4d 'M' */
+/* 0x4d 'M' offset 1785 */
0, 32, 42, 0, 2, 3,
0, 32, /* snap_x */
-21, -15, 0, /* snap_y */
@@ -1233,7 +523,7 @@ const signed char _twin_gtable[] = {
'm', 32, -42,
'l', 32, 0,
'e',
-/* 0x4e 'N' */
+/* 0x4e 'N' offset 1821 */
0, 28, 42, 0, 2, 3,
0, 28, /* snap_x */
-21, -15, 0, /* snap_y */
@@ -1244,33 +534,17 @@ const signed char _twin_gtable[] = {
'm', 28, -42,
'l', 28, 0,
'e',
-/* 0x4f 'O' */
+/* 0x4f 'O' offset 1851 */
0, 32, 42, 0, 2, 4,
0, 32, /* snap_x */
-42, -21, -15, 0, /* snap_y */
- 'm', 12, -42,
- 'l', 8, -40,
- 'l', 4, -36,
- 'l', 2, -32,
- 'l', 0, -26,
- 'l', 0, -16,
- 'l', 2, -10,
- 'l', 4, -6,
- 'l', 8, -2,
- 'l', 12, 0,
- 'l', 20, 0,
- 'l', 24, -2,
- 'l', 28, -6,
- 'l', 30, -10,
- 'l', 32, -16,
- 'l', 32, -26,
- 'l', 30, -32,
- 'l', 28, -36,
- 'l', 24, -40,
- 'l', 20, -42,
- 'l', 12, -42,
- 'e',
-/* 0x50 'P' */
+ 'm', 16, -42,
+ 'c', 2, -42, 0, -29, 0, -21,
+ 'c', 0, -13, 2, 0, 16, 0,
+ 'c', 30, 0, 32, -13, 32, -21,
+ 'c', 32, -29, 30, -42, 16, -42,
+ 'e',
+/* 0x50 'P' offset 1895 */
0, 28, 42, 0, 2, 5,
0, 28, /* snap_x */
-42, -21, -20, -15, 0, /* snap_y */
@@ -1278,44 +552,22 @@ const signed char _twin_gtable[] = {
'l', 0, 0,
'm', 0, -42,
'l', 18, -42,
- 'l', 24, -40,
- 'l', 26, -38,
- 'l', 28, -34,
- 'l', 28, -28,
- 'l', 26, -24,
- 'l', 24, -22,
- 'l', 18, -20,
+ 'c', 32, -42, 32, -20, 18, -20,
'l', 0, -20,
'e',
-/* 0x51 'Q' */
+/* 0x51 'Q' offset 1931 */
0, 32, 42, 4, 2, 4,
0, 32, /* snap_x */
-42, -21, -15, 0, /* snap_y */
- 'm', 12, -42,
- 'l', 8, -40,
- 'l', 4, -36,
- 'l', 2, -32,
- 'l', 0, -26,
- 'l', 0, -16,
- 'l', 2, -10,
- 'l', 4, -6,
- 'l', 8, -2,
- 'l', 12, 0,
- 'l', 20, 0,
- 'l', 24, -2,
- 'l', 28, -6,
- 'l', 30, -10,
- 'l', 32, -16,
- 'l', 32, -26,
- 'l', 30, -32,
- 'l', 28, -36,
- 'l', 24, -40,
- 'l', 20, -42,
- 'l', 12, -42,
+ 'm', 16, -42,
+ 'c', 2, -42, 0, -29, 0, -21,
+ 'c', 0, -13, 2, 0, 16, 0,
+ 'c', 30, 0, 32, -13, 32, -21,
+ 'c', 32, -29, 30, -42, 16, -42,
'm', 18, -8,
'l', 30, 4,
'e',
-/* 0x52 'R' */
+/* 0x52 'R' offset 1981 */
0, 28, 42, 0, 2, 5,
0, 28, /* snap_x */
-42, -22, -21, -15, 0, /* snap_y */
@@ -1323,43 +575,23 @@ const signed char _twin_gtable[] = {
'l', 0, 0,
'm', 0, -42,
'l', 18, -42,
- 'l', 24, -40,
- 'l', 26, -38,
- 'l', 28, -34,
- 'l', 28, -30,
- 'l', 26, -26,
- 'l', 24, -24,
- 'l', 18, -22,
+ 'c', 32, -42, 31, -22, 18, -22,
'l', 0, -22,
'm', 14, -22,
'l', 28, 0,
'e',
-/* 0x53 'S' */
+/* 0x53 'S' offset 2023 */
0, 28, 42, 0, 2, 4,
0, 28, /* snap_x */
-42, -21, -15, 0, /* snap_y */
'm', 28, -36,
- 'l', 24, -40,
- 'l', 18, -42,
- 'l', 10, -42,
- 'l', 4, -40,
- 'l', 0, -36,
- 'l', 0, -32,
- 'l', 2, -28,
- 'l', 4, -26,
- 'l', 8, -24,
- 'l', 20, -20,
- 'l', 24, -18,
- 'l', 26, -16,
- 'l', 28, -12,
- 'l', 28, -6,
- 'l', 24, -2,
- 'l', 18, 0,
- 'l', 10, 0,
- 'l', 4, -2,
- 'l', 0, -6,
+ 'c', 25, -41, 21, -42, 14, -42,
+ 'c', 10, -42, 0, -42, 0, -34,
+ 'c', 0, -17, 28, -28, 28, -9,
+ 'c', 28, 0, 19, 0, 14, 0,
+ 'c', 7, 0, 3, -1, 0, -6,
'e',
-/* 0x54 'T' */
+/* 0x54 'T' offset 2074 */
0, 28, 42, 0, 3, 4,
0, 14, 28, /* snap_x */
-42, -21, -15, 0, /* snap_y */
@@ -1368,22 +600,16 @@ const signed char _twin_gtable[] = {
'm', 0, -42,
'l', 28, -42,
'e',
-/* 0x55 'U' */
+/* 0x55 'U' offset 2100 */
0, 28, 42, 0, 2, 3,
0, 28, /* snap_x */
-21, -15, 0, /* snap_y */
'm', 0, -42,
'l', 0, -12,
- 'l', 2, -6,
- 'l', 6, -2,
- 'l', 12, 0,
- 'l', 16, 0,
- 'l', 22, -2,
- 'l', 26, -6,
- 'l', 28, -12,
+ 'c', 0, 4, 28, 4, 28, -12,
'l', 28, -42,
'e',
-/* 0x56 'V' */
+/* 0x56 'V' offset 2128 */
0, 32, 42, 0, 2, 3,
0, 32, /* snap_x */
-21, -15, 0, /* snap_y */
@@ -1392,7 +618,7 @@ const signed char _twin_gtable[] = {
'm', 32, -42,
'l', 16, 0,
'e',
-/* 0x57 'W' */
+/* 0x57 'W' offset 2152 */
0, 40, 42, 0, 2, 3,
0, 40, /* snap_x */
-21, -15, 0, /* snap_y */
@@ -1405,7 +631,7 @@ const signed char _twin_gtable[] = {
'm', 40, -42,
'l', 30, 0,
'e',
-/* 0x58 'X' */
+/* 0x58 'X' offset 2188 */
0, 28, 42, 0, 2, 3,
0, 28, /* snap_x */
-21, -15, 0, /* snap_y */
@@ -1414,7 +640,7 @@ const signed char _twin_gtable[] = {
'm', 28, -42,
'l', 0, 0,
'e',
-/* 0x59 'Y' */
+/* 0x59 'Y' offset 2212 */
0, 32, 42, 0, 3, 3,
0, 16, 32, /* snap_x */
-21, -15, 0, /* snap_y */
@@ -1424,7 +650,7 @@ const signed char _twin_gtable[] = {
'm', 32, -42,
'l', 16, -22,
'e',
-/* 0x5a 'Z' */
+/* 0x5a 'Z' offset 2240 */
0, 28, 42, 0, 2, 4,
0, 28, /* snap_x */
-42, -21, -15, 0, /* snap_y */
@@ -1435,7 +661,7 @@ const signed char _twin_gtable[] = {
'm', 0, 0,
'l', 28, 0,
'e',
-/* 0x5b '[' */
+/* 0x5b '[' offset 2271 */
0, 14, 44, 0, 2, 4,
0, 14, /* snap_x */
-44, -21, -15, 0, /* snap_y */
@@ -1444,14 +670,14 @@ const signed char _twin_gtable[] = {
'l', 0, 0,
'l', 14, 0,
'e',
-/* 0x5c '\' */
+/* 0x5c '\' offset 2296 */
0, 36, 50, 14, 2, 3,
0, 36, /* snap_x */
-21, -15, 0, /* snap_y */
'm', 0, -50,
'l', 36, 14,
'e',
-/* 0x5d ']' */
+/* 0x5d ']' offset 2314 */
0, 14, 44, 0, 2, 4,
0, 14, /* snap_x */
-44, -21, -15, 0, /* snap_y */
@@ -1460,7 +686,7 @@ const signed char _twin_gtable[] = {
'l', 14, 0,
'l', 0, 0,
'e',
-/* 0x5e '^' */
+/* 0x5e '^' offset 2339 */
0, 32, 46, -18, 2, 3,
0, 32, /* snap_x */
-21, -15, 0, /* snap_y */
@@ -1469,209 +695,135 @@ const signed char _twin_gtable[] = {
'm', 16, -46,
'l', 32, -18,
'e',
-/* 0x5f '_' */
+/* 0x5f '_' offset 2363 */
0, 36, 0, 0, 2, 3,
0, 36, /* snap_x */
-21, -15, 0, /* snap_y */
'm', 0, 0,
'l', 36, 0,
'e',
-/* 0x60 '`' */
+/* 0x60 '`' offset 2381 */
0, 4, 42, -30, 2, 3,
0, 4, /* snap_x */
-21, -15, 0, /* snap_y */
'm', 4, -42,
- 'l', 2, -40,
- 'l', 0, -36,
- 'l', 0, -32,
- 'l', 2, -30,
- 'l', 4, -32,
- 'l', 2, -34,
- 'e',
-/* 0x61 'a' */
+ 'c', 2, -40, 0, -39, 0, -32,
+ 'c', 0, -31, 1, -30, 2, -30,
+ 'c', 5, -30, 5, -34, 2, -34,
+ 'e',
+/* 0x61 'a' offset 2417 */
0, 24, 28, 0, 2, 4,
0, 24, /* snap_x */
-28, -21, -15, 0, /* snap_y */
'm', 24, -28,
'l', 24, 0,
'm', 24, -22,
- 'l', 20, -26,
- 'l', 16, -28,
- 'l', 10, -28,
- 'l', 6, -26,
- 'l', 2, -22,
- 'l', 0, -16,
- 'l', 0, -12,
- 'l', 2, -6,
- 'l', 6, -2,
- 'l', 10, 0,
- 'l', 16, 0,
- 'l', 20, -2,
- 'l', 24, -6,
+ 'c', 21, -27, 18, -28, 13, -28,
+ 'c', 2, -28, 0, -19, 0, -14,
+ 'c', 0, -9, 2, 0, 13, 0,
+ 'c', 18, 0, 21, -1, 24, -6,
'e',
-/* 0x62 'b' */
+/* 0x62 'b' offset 2467 */
0, 24, 42, 0, 2, 4,
0, 24, /* snap_x */
-28, -21, -15, 0, /* snap_y */
'm', 0, -42,
'l', 0, 0,
'm', 0, -22,
- 'l', 4, -26,
- 'l', 8, -28,
- 'l', 14, -28,
- 'l', 18, -26,
- 'l', 22, -22,
- 'l', 24, -16,
- 'l', 24, -12,
- 'l', 22, -6,
- 'l', 18, -2,
- 'l', 14, 0,
- 'l', 8, 0,
- 'l', 4, -2,
- 'l', 0, -6,
+ 'c', 3, -26, 6, -28, 11, -28,
+ 'c', 22, -28, 24, -19, 24, -14,
+ 'c', 24, -9, 22, 0, 11, 0,
+ 'c', 6, 0, 3, -2, 0, -6,
'e',
-/* 0x63 'c' */
+/* 0x63 'c' offset 2517 */
0, 24, 28, 0, 2, 4,
0, 24, /* snap_x */
-28, -21, -15, 0, /* snap_y */
'm', 24, -22,
- 'l', 20, -26,
- 'l', 16, -28,
- 'l', 10, -28,
- 'l', 6, -26,
- 'l', 2, -22,
- 'l', 0, -16,
- 'l', 0, -12,
- 'l', 2, -6,
- 'l', 6, -2,
- 'l', 10, 0,
- 'l', 16, 0,
- 'l', 20, -2,
- 'l', 24, -6,
+ 'c', 21, -26, 18, -28, 13, -28,
+ 'c', 2, -28, 0, -19, 0, -14,
+ 'c', 0, -9, 2, 0, 13, 0,
+ 'c', 18, 0, 21, -2, 24, -6,
'e',
-/* 0x64 'd' */
+/* 0x64 'd' offset 2561 */
0, 24, 42, 0, 2, 4,
0, 24, /* snap_x */
-28, -21, -15, 0, /* snap_y */
'm', 24, -42,
'l', 24, 0,
'm', 24, -22,
- 'l', 20, -26,
- 'l', 16, -28,
- 'l', 10, -28,
- 'l', 6, -26,
- 'l', 2, -22,
- 'l', 0, -16,
- 'l', 0, -12,
- 'l', 2, -6,
- 'l', 6, -2,
- 'l', 10, 0,
- 'l', 16, 0,
- 'l', 20, -2,
- 'l', 24, -6,
+ 'c', 21, -26, 18, -28, 13, -28,
+ 'c', 2, -28, 0, -19, 0, -14,
+ 'c', 0, -9, 2, 0, 13, 0,
+ 'c', 18, 0, 21, -2, 24, -6,
'e',
-/* 0x65 'e' */
+/* 0x65 'e' offset 2611 */
0, 24, 28, 0, 2, 5,
0, 24, /* snap_x */
-28, -21, -16, -15, 0, /* snap_y */
'm', 0, -16,
'l', 24, -16,
- 'l', 24, -20,
- 'l', 22, -24,
- 'l', 20, -26,
- 'l', 16, -28,
- 'l', 10, -28,
- 'l', 6, -26,
- 'l', 2, -22,
- 'l', 0, -16,
- 'l', 0, -12,
- 'l', 2, -6,
- 'l', 6, -2,
- 'l', 10, 0,
- 'l', 16, 0,
- 'l', 20, -2,
- 'l', 24, -6,
+ 'c', 24, -20, 24, -28, 13, -28,
+ 'c', 2, -28, 0, -19, 0, -14,
+ 'c', 0, -9, 2, 0, 13, 0,
+ 'c', 18, 0, 21, -2, 24, -6,
'e',
-/* 0x66 'f' */
+/* 0x66 'f' offset 2659 */
0, 16, 42, 0, 3, 5,
0, 6, 16, /* snap_x */
-42, -28, -21, -15, 0, /* snap_y */
'm', 16, -42,
- 'l', 12, -42,
- 'l', 8, -40,
- 'l', 6, -34,
+ 'c', 8, -42, 6, -40, 6, -34,
'l', 6, 0,
'm', 0, -28,
'l', 14, -28,
'e',
-/* 0x67 'g' */
+/* 0x67 'g' offset 2693 */
0, 24, 28, 14, 2, 5,
0, 24, /* snap_x */
-28, -21, -15, 0, 14, /* snap_y */
'm', 24, -28,
'l', 24, 4,
- 'l', 22, 10,
- 'l', 20, 12,
- 'l', 16, 14,
- 'l', 10, 14,
- 'l', 6, 12,
+ 'c', 23, 14, 16, 14, 13, 14,
+ 'c', 10, 14, 8, 14, 6, 12,
'm', 24, -22,
- 'l', 20, -26,
- 'l', 16, -28,
- 'l', 10, -28,
- 'l', 6, -26,
- 'l', 2, -22,
- 'l', 0, -16,
- 'l', 0, -12,
- 'l', 2, -6,
- 'l', 6, -2,
- 'l', 10, 0,
- 'l', 16, 0,
- 'l', 20, -2,
- 'l', 24, -6,
+ 'c', 21, -26, 18, -28, 13, -28,
+ 'c', 2, -28, 0, -19, 0, -14,
+ 'c', 0, -9, 2, 0, 13, 0,
+ 'c', 18, 0, 21, -2, 24, -6,
'e',
-/* 0x68 'h' */
+/* 0x68 'h' offset 2758 */
0, 22, 42, 0, 2, 4,
0, 22, /* snap_x */
-28, -21, -15, 0, /* snap_y */
'm', 0, -42,
'l', 0, 0,
'm', 0, -20,
- 'l', 6, -26,
- 'l', 10, -28,
- 'l', 16, -28,
- 'l', 20, -26,
- 'l', 22, -20,
+ 'c', 8, -32, 22, -31, 22, -20,
'l', 22, 0,
'e',
-/* 0x69 'i' */
+/* 0x69 'i' offset 2790 */
0, 4, 44, 0, 3, 3,
0, 2, 4, /* snap_x */
-21, -15, 0, /* snap_y */
'm', 0, -42,
- 'l', 2, -40,
- 'l', 4, -42,
- 'l', 2, -44,
- 'l', 0, -42,
+ 'c', 0, -39, 4, -39, 4, -42,
+ 'c', 4, -45, 0, -45, 0, -42,
'm', 2, -28,
'l', 2, 0,
'e',
-/* 0x6a 'j' */
+/* 0x6a 'j' offset 2826 */
-8, 4, 44, 14, 3, 4,
0, 2, 4, /* snap_x */
-21, -15, 0, 14, /* snap_y */
'm', 0, -42,
- 'l', 2, -40,
- 'l', 4, -42,
- 'l', 2, -44,
- 'l', 0, -42,
+ 'c', 0, -39, 4, -39, 4, -42,
+ 'c', 4, -45, 0, -45, 0, -42,
'm', 2, -28,
'l', 2, 6,
- 'l', 0, 12,
- 'l', -4, 14,
- 'l', -8, 14,
+ 'c', 2, 13, -1, 14, -8, 14,
'e',
-/* 0x6b 'k' */
+/* 0x6b 'k' offset 2870 */
0, 22, 42, 0, 2, 3,
0, 22, /* snap_x */
-21, -15, 0, /* snap_y */
@@ -1682,204 +834,111 @@ const signed char _twin_gtable[] = {
'm', 8, -16,
'l', 22, 0,
'e',
-/* 0x6c 'l' */
+/* 0x6c 'l' offset 2900 */
0, 0, 42, 0, 1, 3,
0, /* snap_x */
-21, -15, 0, /* snap_y */
'm', 0, -42,
'l', 0, 0,
'e',
-/* 0x6d 'm' */
+/* 0x6d 'm' offset 2917 */
0, 44, 28, 0, 3, 4,
0, 22, 44, /* snap_x */
-28, -21, -15, 0, /* snap_y */
'm', 0, -28,
'l', 0, 0,
'm', 0, -20,
- 'l', 6, -26,
- 'l', 10, -28,
- 'l', 16, -28,
- 'l', 20, -26,
- 'l', 22, -20,
+ 'c', 5, -29, 22, -33, 22, -20,
'l', 22, 0,
'm', 22, -20,
- 'l', 28, -26,
- 'l', 32, -28,
- 'l', 38, -28,
- 'l', 42, -26,
- 'l', 44, -20,
+ 'c', 27, -29, 44, -33, 44, -20,
'l', 44, 0,
'e',
-/* 0x6e 'n' */
+/* 0x6e 'n' offset 2963 */
0, 22, 28, 0, 2, 4,
0, 22, /* snap_x */
-28, -21, -15, 0, /* snap_y */
'm', 0, -28,
'l', 0, 0,
'm', 0, -20,
- 'l', 6, -26,
- 'l', 10, -28,
- 'l', 16, -28,
- 'l', 20, -26,
- 'l', 22, -20,
+ 'c', 4, -28, 22, -34, 22, -20,
'l', 22, 0,
'e',
-/* 0x6f 'o' */
+/* 0x6f 'o' offset 2995 */
0, 26, 28, 0, 2, 4,
0, 26, /* snap_x */
-28, -21, -15, 0, /* snap_y */
-#define DX (6)
-#define DY (9)
-#if 1
- 'm', 13, -28,
- 'c', 13-DX, -28,
- 0, -14-DY,
- 0, -14,
-#else
- 'm', 10, -28,
- 'l', 6, -26,
- 'l', 2, -22,
- 'l', 0, -16,
-#endif
-#if 1
- 'c', 0, -14+DY,
- 13-DX, 0,
- 13, 0,
-#else
- 'l', 0, -12,
- 'l', 2, -6,
- 'l', 6, -2,
- 'l', 10, 0,
-#endif
-#if 1
- 'c', 13+DX, 0,
- 26, -14+DY,
- 26, -14,
-#else
- 'l', 16, 0,
- 'l', 20, -2,
- 'l', 24, -6,
- 'l', 26, -12,
-#endif
-#if 1
- 'c', 26, -14-DY,
- 13+DX, -28,
- 13, -28,
-#else
- 'l', 26, -16,
- 'l', 24, -22,
- 'l', 20, -26,
- 'l', 16, -28,
- 'l', 10, -28,
-#endif
- 'e',
-#if 1
- 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e',
- 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e',
-#endif
-/* 0x70 'p' */
+ 'm', 13, -28,
+ 'c', 2, -28, 0, -19, 0, -14,
+ 'c', 0, -9, 2, 0, 13, 0,
+ 'c', 24, 0, 26, -9, 26, -14,
+ 'c', 26, -19, 24, -28, 13, -28,
+ 'e',
+/* 0x70 'p' offset 3039 */
0, 24, 28, 14, 2, 4,
0, 24, /* snap_x */
-28, -21, -15, 0, /* snap_y */
'm', 0, -28,
'l', 0, 14,
'm', 0, -22,
- 'l', 4, -26,
- 'l', 8, -28,
- 'l', 14, -28,
- 'l', 18, -26,
- 'l', 22, -22,
- 'l', 24, -16,
- 'l', 24, -12,
- 'l', 22, -6,
- 'l', 18, -2,
- 'l', 14, 0,
- 'l', 8, 0,
- 'l', 4, -2,
- 'l', 0, -6,
+ 'c', 3, -26, 6, -28, 11, -28,
+ 'c', 22, -28, 24, -19, 24, -14,
+ 'c', 24, -9, 22, 0, 11, 0,
+ 'c', 6, 0, 3, -2, 0, -6,
'e',
-/* 0x71 'q' */
+/* 0x71 'q' offset 3089 */
0, 24, 28, 14, 2, 4,
0, 24, /* snap_x */
-28, -21, -15, 0, /* snap_y */
'm', 24, -28,
'l', 24, 14,
'm', 24, -22,
- 'l', 20, -26,
- 'l', 16, -28,
- 'l', 10, -28,
- 'l', 6, -26,
- 'l', 2, -22,
- 'l', 0, -16,
- 'l', 0, -12,
- 'l', 2, -6,
- 'l', 6, -2,
- 'l', 10, 0,
- 'l', 16, 0,
- 'l', 20, -2,
- 'l', 24, -6,
+ 'c', 21, -26, 18, -28, 13, -28,
+ 'c', 2, -28, 0, -19, 0, -14,
+ 'c', 0, -9, 2, 0, 13, 0,
+ 'c', 18, 0, 21, -2, 24, -6,
'e',
-/* 0x72 'r' */
+/* 0x72 'r' offset 3139 */
0, 16, 28, 0, 2, 4,
0, 16, /* snap_x */
-28, -21, -15, 0, /* snap_y */
'm', 0, -28,
'l', 0, 0,
'm', 0, -16,
- 'l', 2, -22,
- 'l', 6, -26,
- 'l', 10, -28,
- 'l', 16, -28,
+ 'c', 2, -27, 7, -28, 16, -28,
'e',
-/* 0x73 's' */
+/* 0x73 's' offset 3168 */
0, 22, 28, 0, 2, 4,
0, 22, /* snap_x */
-28, -21, -15, 0, /* snap_y */
'm', 22, -22,
- 'l', 20, -26,
- 'l', 14, -28,
- 'l', 8, -28,
- 'l', 2, -26,
- 'l', 0, -22,
- 'l', 2, -18,
- 'l', 6, -16,
- 'l', 16, -14,
- 'l', 20, -12,
- 'l', 22, -8,
- 'l', 22, -6,
- 'l', 20, -2,
- 'l', 14, 0,
- 'l', 8, 0,
- 'l', 2, -2,
- 'l', 0, -6,
+ 'c', 22, -27, 16, -28, 11, -28,
+ 'c', 4, -28, 0, -26, 0, -22,
+ 'c', 0, -11, 22, -20, 22, -7,
+ 'c', 22, 0, 17, 0, 11, 0,
+ 'c', 6, 0, 0, -1, 0, -6,
'e',
-/* 0x74 't' */
+/* 0x74 't' offset 3219 */
0, 16, 42, 0, 3, 4,
0, 6, 16, /* snap_x */
-28, -21, -15, 0, /* snap_y */
'm', 6, -42,
'l', 6, -8,
- 'l', 8, -2,
- 'l', 12, 0,
- 'l', 16, 0,
+ 'c', 6, -2, 8, 0, 16, 0,
'm', 0, -28,
'l', 14, -28,
'e',
-/* 0x75 'u' */
+/* 0x75 'u' offset 3252 */
0, 22, 28, 0, 2, 3,
0, 22, /* snap_x */
-21, -15, 0, /* snap_y */
'm', 0, -28,
'l', 0, -8,
- 'l', 2, -2,
- 'l', 6, 0,
- 'l', 12, 0,
- 'l', 16, -2,
- 'l', 22, -8,
+ 'c', 0, 6, 18, 0, 22, -8,
'm', 22, -28,
'l', 22, 0,
'e',
-/* 0x76 'v' */
+/* 0x76 'v' offset 3283 */
0, 24, 28, 0, 2, 3,
0, 24, /* snap_x */
-21, -15, 0, /* snap_y */
@@ -1888,7 +947,7 @@ const signed char _twin_gtable[] = {
'm', 24, -28,
'l', 12, 0,
'e',
-/* 0x77 'w' */
+/* 0x77 'w' offset 3307 */
0, 32, 28, 0, 2, 3,
0, 32, /* snap_x */
-21, -15, 0, /* snap_y */
@@ -1901,7 +960,7 @@ const signed char _twin_gtable[] = {
'm', 32, -28,
'l', 24, 0,
'e',
-/* 0x78 'x' */
+/* 0x78 'x' offset 3343 */
0, 22, 28, 0, 2, 3,
0, 22, /* snap_x */
-21, -15, 0, /* snap_y */
@@ -1910,7 +969,7 @@ const signed char _twin_gtable[] = {
'm', 22, -28,
'l', 0, 0,
'e',
-/* 0x79 'y' */
+/* 0x79 'y' offset 3367 */
-2, 24, 28, 14, 2, 4,
0, 24, /* snap_x */
-21, -15, 0, 14, /* snap_y */
@@ -1918,12 +977,9 @@ const signed char _twin_gtable[] = {
'l', 12, 0,
'm', 24, -28,
'l', 12, 0,
- 'l', 8, 8,
- 'l', 4, 12,
- 'l', 0, 14,
- 'l', -2, 14,
+ 'c', 6, 13, 0, 14, -2, 14,
'e',
-/* 0x7a 'z' */
+/* 0x7a 'z' offset 3399 */
0, 22, 28, 0, 2, 4,
0, 22, /* snap_x */
-28, -21, -15, 0, /* snap_y */
@@ -1934,61 +990,45 @@ const signed char _twin_gtable[] = {
'm', 0, 0,
'l', 22, 0,
'e',
-/* 0x7b '{' */
+/* 0x7b '{' offset 3430 */
0, 16, 44, 0, 3, 5,
0, 6, 16, /* snap_x */
-44, -24, -21, -15, 0, /* snap_y */
'm', 16, -44,
- 'l', 12, -44,
- 'l', 8, -42,
- 'l', 6, -36,
+ 'c', 10, -44, 6, -42, 6, -36,
'l', 6, -24,
'l', 0, -24,
'l', 6, -24,
'l', 6, -8,
- 'l', 8, -2,
- 'l', 12, 0,
- 'l', 16, 0,
+ 'c', 6, -2, 10, 0, 16, 0,
'e',
-/* 0x7c '|' */
+/* 0x7c '|' offset 3474 */
0, 0, 50, 14, 1, 3,
0, /* snap_x */
-21, -15, 0, /* snap_y */
'm', 0, -50,
'l', 0, 14,
'e',
-/* 0x7d '}' */
+/* 0x7d '}' offset 3491 */
0, 16, 44, 0, 3, 5,
0, 10, 16, /* snap_x */
-44, -24, -21, -15, 0, /* snap_y */
'm', 0, -44,
- 'l', 4, -44,
- 'l', 8, -42,
- 'l', 10, -36,
+ 'c', 6, -44, 10, -42, 10, -36,
'l', 10, -24,
'l', 16, -24,
'l', 10, -24,
'l', 10, -8,
- 'l', 8, -2,
- 'l', 4, 0,
- 'l', 0, 0,
+ 'c', 10, -2, 6, 0, 0, 0,
'e',
-/* 0x7e '~' */
+/* 0x7e '~' offset 3535 */
0, 36, 24, -12, 2, 5,
0, 36, /* snap_x */
-24, -21, -15, -12, 0, /* snap_y */
'm', 0, -14,
- 'l', 0, -16,
- 'l', 2, -22,
- 'l', 6, -24,
- 'l', 10, -24,
- 'l', 14, -22,
- 'l', 22, -14,
- 'l', 26, -12,
- 'l', 30, -12,
- 'l', 34, -14,
- 'l', 36, -20,
- 'l', 36, -22,
+ 'c', 1, -21, 4, -24, 8, -24,
+ 'c', 18, -24, 18, -12, 28, -12,
+ 'c', 32, -12, 35, -15, 36, -22,
'e',
};
@@ -1997,16 +1037,16 @@ const uint16_t _twin_g_offsets[] = {
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 28, 40, 74, 98, 136, 223, 328, 445,
- 478, 520, 562, 593, 619, 655, 674, 701,
- 718, 782, 806, 863, 922, 951, 1016, 1099,
- 1124, 1226, 1309, 1351, 1402, 1423, 1449, 1470,
- 1541, 1711, 1742, 1819, 1886, 1941, 1979, 2011,
- 2088, 2119, 2136, 2178, 2208, 2232, 2268, 2298,
- 2374, 2424, 2506, 2562, 2635, 2661, 2703, 2727,
- 2763, 2787, 2815, 2846, 2871, 2889, 2914, 2938,
- 2956, 2989, 3050, 3111, 3166, 3227, 3292, 3328,
- 3405, 3445, 3479, 3523, 3553, 3570, 3632, 3672,
- 3736, 3797, 3858, 3892, 3956, 3991, 4030, 4054,
- 4090, 4114, 4151, 4182, 4230, 4247, 4295, 0,
+ 28, 40, 90, 114, 152, 224, 323, 390,
+ 419, 441, 463, 494, 520, 556, 575, 604,
+ 622, 666, 691, 736, 780, 809, 860, 919,
+ 944, 1004, 1063, 1109, 1162, 1183, 1209, 1230,
+ 1288, 1375, 1406, 1455, 1499, 1534, 1572, 1604,
+ 1655, 1686, 1703, 1731, 1761, 1785, 1821, 1851,
+ 1895, 1931, 1981, 2023, 2074, 2100, 2128, 2152,
+ 2188, 2212, 2240, 2271, 2296, 2314, 2339, 2363,
+ 2381, 2417, 2467, 2517, 2561, 2611, 2659, 2693,
+ 2758, 2790, 2826, 2870, 2900, 2917, 2963, 2995,
+ 3039, 3089, 3139, 3168, 3219, 3252, 3283, 3307,
+ 3343, 3367, 3399, 3430, 3474, 3491, 3535, 0,
};
diff --git a/xtwin.c b/xtwin.c
index 8dcce03..2ed292f 100644
--- a/xtwin.c
+++ b/xtwin.c
@@ -277,8 +277,8 @@ int styles[] = {
TWIN_TEXT_BOLD|TWIN_TEXT_OBLIQUE
};
-#define WIDTH 512
-#define HEIGHT 512
+#define WIDTH 256
+#define HEIGHT 256
int
main (int argc, char **argv)
@@ -347,7 +347,8 @@ main (int argc, char **argv)
#if 0
stroke = twin_path_create ();
twin_path_move (stroke, D(30), D(400));
- twin_path_string (stroke, D(200), D(200), TWIN_TEXT_ROMAN, "jelly world.");
+ twin_path_set_font_size (stroke, D(100));
+ twin_path_utf8 (stroke, "jelly world.");
twin_path_convolve (path, stroke, pen);
/* twin_path_append (path, stroke); */
twin_path_destroy (stroke);
@@ -397,10 +398,10 @@ main (int argc, char **argv)
#if 1
fx = D(10);
fy = 0;
- for (g = 90; g < 91; g += 4)
+ for (g = 10; g <= 38; g += 4)
{
twin_path_set_font_size (path, D(g));
-#if 0
+#if 1
fy += D(g+2);
twin_path_move (path, fx, fy);
twin_path_utf8 (path,
@@ -623,7 +624,7 @@ main (int argc, char **argv)
#endif
#if 1
- twin_start_clock (x11->screen, 0, 0, 256, 256);
+ twin_start_clock (x11->screen, 0, 0, WIDTH, HEIGHT);
#endif
#if 0
twin_start_clock (x11->screen, 0, 0, 256, 256);