summaryrefslogtreecommitdiff
path: root/plugins/Alarms/glyph.c
diff options
context:
space:
mode:
authorKirill Volinsky <mataes2007@gmail.com>2012-05-19 14:38:34 +0000
committerKirill Volinsky <mataes2007@gmail.com>2012-05-19 14:38:34 +0000
commit4392b08fedcfc61eb3ec40a956516637d5abbf38 (patch)
tree16061c2ae482ea45b070fe4171b080edc1cf5c1b /plugins/Alarms/glyph.c
parent162e60d66c78bd51aa44c691fe4f4e2f1deb990f (diff)
added Alarms
git-svn-id: http://svn.miranda-ng.org/main/trunk@77 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/Alarms/glyph.c')
-rw-r--r--plugins/Alarms/glyph.c537
1 files changed, 537 insertions, 0 deletions
diff --git a/plugins/Alarms/glyph.c b/plugins/Alarms/glyph.c
new file mode 100644
index 0000000000..b7e4a3e5ff
--- /dev/null
+++ b/plugins/Alarms/glyph.c
@@ -0,0 +1,537 @@
+#ifdef _WIN32
+#include <windows.h>
+#endif
+
+#include <GL/gl.h>
+#include <assert.h>
+
+static const unsigned char g20[] = {
+ 0xff, 0xff
+};
+static const unsigned char g21[] = {
+ 0x60, 0x80, 0x62, 0x82, 0xff, 0x64, 0x84, 0x6e,
+ 0x8e, 0xff, 0xff
+};
+static const unsigned char g22[] = {
+ 0x6a, 0x6e, 0x4c, 0x4e, 0xff, 0x8a, 0xac, 0x8e,
+ 0xae, 0xff, 0xff
+};
+static const unsigned char g23[] = {
+ 0x42, 0x62, 0x44, 0x64, 0x46, 0x66, 0x48, 0x68,
+ 0x4a, 0x6a, 0x4c, 0x6c, 0xff, 0x82, 0xa2, 0x84,
+ 0xa4, 0x86, 0xa6, 0x88, 0xa8, 0x8a, 0xaa, 0x8c,
+ 0xac, 0xff, 0x24, 0x44, 0x26, 0x46, 0xff, 0x64,
+ 0x84, 0x66, 0x86, 0xff, 0xa4, 0xc4, 0xa6, 0xc6,
+ 0xff, 0x28, 0x48, 0x2a, 0x4a, 0xff, 0x68, 0x88,
+ 0x6a, 0x8a, 0xff, 0xa8, 0xc8, 0xaa, 0xca, 0xff,
+ 0xff
+};
+static const unsigned char g24[] = {
+ 0x46, 0x48, 0x26, 0x38, 0x08, 0x29, 0x0a, 0x3a,
+ 0x2c, 0x4a, 0x4c, 0xff, 0xa8, 0xa6, 0xc8, 0xb6,
+ 0xe6, 0xc5, 0xe4, 0xb4, 0xc2, 0xa4, 0xa2, 0xff,
+ 0x25, 0x04, 0x34, 0x22, 0x44, 0x42, 0xff, 0xc9,
+ 0xea, 0xba, 0xcc, 0xaa, 0xac, 0xff, 0x40, 0x60,
+ 0x42, 0x62, 0x44, 0x64, 0x46, 0x66, 0x48, 0x68,
+ 0x4a, 0x6a, 0x4c, 0x6c, 0x4e, 0x6e, 0xff, 0x80,
+ 0xa0, 0x82, 0xa2, 0x84, 0xa4, 0x86, 0xa6, 0x88,
+ 0xa8, 0x8a, 0xaa, 0x8c, 0xac, 0x8e, 0xae, 0xff,
+ 0x62, 0x82, 0x64, 0x84, 0xff, 0x66, 0x86, 0x68,
+ 0x88, 0xff, 0x6a, 0x8a, 0x6c, 0x8c, 0xff, 0xff
+};
+static const unsigned char g25[] = {
+ 0x00, 0x20, 0x02, 0xec, 0xce, 0xee, 0xff, 0xa0,
+ 0xb2, 0x82, 0xa3, 0x84, 0xb4, 0xa6, 0xc6, 0xff,
+ 0xc6, 0xb4, 0xe4, 0xc3, 0xe2, 0xb2, 0xc0, 0xa0,
+ 0xff, 0x28, 0x3a, 0x0a, 0x2b, 0x0c, 0x3c, 0x2e,
+ 0x4e, 0xff, 0x4e, 0x3c, 0x6c, 0x4b, 0x6a, 0x3a,
+ 0x48, 0x28, 0xff, 0xff
+};
+static const unsigned char g26[] = {
+ 0xa0, 0xe0, 0x91, 0xb3, 0x73, 0x95, 0x55, 0x77,
+ 0x37, 0x59, 0x28, 0x4a, 0x2c, 0x4b, 0x4e, 0x5c,
+ 0x6e, 0x6b, 0x8c, 0x6a, 0x88, 0x59, 0x77, 0xff,
+ 0x91, 0x73, 0x80, 0x62, 0x20, 0x42, 0x02, 0x33,
+ 0x04, 0x55, 0x37, 0xff, 0x95, 0xb3, 0xa6, 0xc4,
+ 0xff, 0xff
+};
+static const unsigned char g27[] = {
+ 0x6a, 0x8c, 0x6e, 0x8e, 0xff, 0xff
+};
+static const unsigned char g28[] = {
+ 0x80, 0xa0, 0x62, 0x82, 0x6c, 0x8c, 0x8e, 0xae,
+ 0xff, 0xff
+};
+static const unsigned char g29[] = {
+ 0x40, 0x60, 0x62, 0x82, 0x6c, 0x8c, 0x4e, 0x6e,
+ 0xff, 0xff
+};
+static const unsigned char g2A[] = {
+ 0x77, 0xa8, 0x8a, 0xb9, 0x9b, 0xff, 0x77, 0x8a,
+ 0x6a, 0x8c, 0x6c, 0xff, 0x77, 0x6a, 0x48, 0x5b,
+ 0x39, 0xff, 0x77, 0x48, 0x46, 0x28, 0x26, 0xff,
+ 0x77, 0x46, 0x64, 0x35, 0x53, 0xff, 0x77, 0x64,
+ 0x84, 0x62, 0x82, 0xff, 0x77, 0x84, 0xa6, 0x93,
+ 0xb5, 0xff, 0x77, 0xa6, 0xa8, 0xc6, 0xc8, 0xff,
+ 0xff
+};
+static const unsigned char g2B[] = {
+ 0x62, 0x82, 0x66, 0x86, 0x88, 0xc6, 0xc8, 0xff,
+ 0x8c, 0x6c, 0x88, 0x68, 0x66, 0x28, 0x26, 0xff,
+ 0xff
+};
+static const unsigned char g2C[] = {
+ 0x84, 0x64, 0x82, 0x60, 0xff, 0xff
+};
+static const unsigned char g2D[] = {
+ 0x28, 0x26, 0xc8, 0xc6, 0xff, 0xff
+};
+static const unsigned char g2E[] = {
+ 0x60, 0x80, 0x62, 0x82, 0xff, 0xff
+};
+static const unsigned char g2F[] = {
+ 0x00, 0x20, 0x02, 0xec, 0xce, 0xee, 0xff, 0xff
+};
+static const unsigned char g30[] = {
+ 0x24, 0x42, 0xac, 0xca, 0xff, 0xb2, 0xc0, 0xc3,
+ 0xe2, 0xca, 0xec, 0xac, 0xce, 0x3c, 0x2e, 0x2b,
+ 0x0c, 0x24, 0x02, 0x42, 0x20, 0xb2, 0xc0, 0xff,
+ 0xff
+};
+static const unsigned char g31[] = {
+ 0x80, 0xff, 0x4c, 0x4a, 0x6e, 0x6a, 0x8e, 0x60,
+ 0x80, 0xff, 0xff
+};
+static const unsigned char g32[] = {
+ 0x0c, 0x2b, 0x2e, 0x3c, 0xce, 0xbc, 0xec, 0xcb,
+ 0xe8, 0xc9, 0xc6, 0xb8, 0x36, 0x28, 0x25, 0x06,
+ 0x22, 0x00, 0xe2, 0xe0, 0xff, 0xff
+};
+static const unsigned char g33[] = {
+ 0x0c, 0x2b, 0x2e, 0x3c, 0xce, 0xbc, 0xec, 0xcb,
+ 0xe8, 0xc9, 0xd7, 0xb8, 0xb6, 0x68, 0x66, 0xff,
+ 0xd7, 0xb6, 0xe6, 0xc5, 0xe2, 0xc3, 0xc0, 0xb2,
+ 0x20, 0x32, 0x02, 0x23, 0xff, 0xff
+};
+static const unsigned char g34[] = {
+ 0xc6, 0xc8, 0x06, 0x28, 0x0c, 0x2c, 0xff, 0xc0,
+ 0xe0, 0xc6, 0xe7, 0xc8, 0xee, 0xce, 0xff, 0xff
+};
+static const unsigned char g35[] = {
+ 0xec, 0xee, 0x2c, 0x0e, 0x29, 0x08, 0x38, 0x26,
+ 0xc8, 0xb6, 0xe6, 0xc5, 0xe2, 0xc3, 0xc0, 0xb2,
+ 0x20, 0x32, 0x02, 0x23, 0xff, 0xff
+};
+static const unsigned char g36[] = {
+ 0xcb, 0xec, 0xbc, 0xce, 0x3c, 0x2e, 0x2b, 0x0c,
+ 0x28, 0x07, 0x26, 0x02, 0x23, 0x20, 0x32, 0xc0,
+ 0xb2, 0xe2, 0xc3, 0xe6, 0xc5, 0xc8, 0xb6, 0x28,
+ 0x26, 0xff, 0xff
+};
+static const unsigned char g37[] = {
+ 0x0e, 0x0c, 0xee, 0xbc, 0xec, 0x67, 0x86, 0x60,
+ 0x80, 0xff, 0xff
+};
+static const unsigned char g38[] = {
+ 0x36, 0x17, 0x25, 0x06, 0x23, 0x02, 0x32, 0x20,
+ 0xb2, 0xc0, 0xc3, 0xe2, 0xc5, 0xe6, 0xb6, 0xd7,
+ 0xb8, 0xe8, 0xc9, 0xec, 0xcb, 0xce, 0xbc, 0x2e,
+ 0x3c, 0x0c, 0x2b, 0x08, 0x29, 0x17, 0x38, 0x36,
+ 0xb8, 0xb6, 0xff, 0xff
+};
+static const unsigned char g39[] = {
+ 0x23, 0x02, 0x32, 0x20, 0xb2, 0xc0, 0xc3, 0xe2,
+ 0xc6, 0xe7, 0xc8, 0xec, 0xcb, 0xce, 0xbc, 0x2e,
+ 0x3c, 0x0c, 0x2b, 0x08, 0x29, 0x26, 0x38, 0xc6,
+ 0xc8, 0xff, 0xff
+};
+static const unsigned char g3A[] = {
+ 0x60, 0x80, 0x62, 0x82, 0xff, 0x66, 0x86, 0x68,
+ 0x88, 0xff, 0xff
+};
+static const unsigned char g3B[] = {
+ 0x84, 0x64, 0x82, 0x60, 0xff, 0x66, 0x86, 0x68,
+ 0x88, 0xff, 0xff
+};
+static const unsigned char g3C[] = {
+ 0xbc, 0x8c, 0x67, 0x37, 0xb2, 0x82, 0xff, 0xff
+};
+static const unsigned char g3D[] = {
+ 0x24, 0x26, 0xc4, 0xc6, 0xff, 0x28, 0x2a, 0xc8,
+ 0xca, 0xff, 0xff
+};
+static const unsigned char g3E[] = {
+ 0x32, 0x62, 0x87, 0xb7, 0x3c, 0x6c, 0xff, 0xff
+};
+static const unsigned char g3F[] = {
+ 0x60, 0x80, 0x62, 0x82, 0xff, 0x64, 0x84, 0x65,
+ 0xea, 0xcb, 0xec, 0xbc, 0xce, 0x3c, 0x2e, 0x2b,
+ 0x0c, 0xff, 0xff
+};
+static const unsigned char g40[] = {
+ 0xe2, 0xc3, 0xc0, 0xb2, 0x20, 0x32, 0x02, 0x23,
+ 0x0c, 0x2b, 0x2e, 0x3c, 0xce, 0xbc, 0xec, 0xcb,
+ 0xe6, 0xc7, 0xc4, 0xb6, 0xa4, 0xa6, 0x84, 0x86,
+ 0x64, 0x76, 0x46, 0x67, 0x48, 0x78, 0x6a, 0x88,
+ 0xaa, 0x86, 0xa6, 0xff, 0xff
+};
+static const unsigned char g41[] = {
+ 0x00, 0x20, 0x08, 0x26, 0x38, 0xc6, 0xb8, 0xff,
+ 0xc0, 0xe0, 0xc6, 0xe8, 0xb8, 0x8e, 0x7c, 0x6e,
+ 0x38, 0x08, 0xff, 0xff
+};
+static const unsigned char g42[] = {
+ 0xb8, 0xd7, 0xc9, 0xe8, 0xcb, 0xec, 0xbc, 0xce,
+ 0x2c, 0x0e, 0x28, 0x07, 0x26, 0x00, 0x22, 0xc0,
+ 0xb2, 0xe2, 0xc3, 0xe6, 0xc5, 0xd7, 0xb6, 0xb8,
+ 0x26, 0x28, 0xff, 0xff
+};
+static const unsigned char g43[] = {
+ 0xcb, 0xec, 0xbc, 0xce, 0x3c, 0x2e, 0x2b, 0x0c,
+ 0x23, 0x02, 0x32, 0x20, 0xb2, 0xc0, 0xc3, 0xe2,
+ 0xff, 0xff
+};
+static const unsigned char g44[] = {
+ 0x22, 0x00, 0xb2, 0xc0, 0xc3, 0xe2, 0xcb, 0xec,
+ 0xbc, 0xce, 0x2c, 0x0e, 0x22, 0x00, 0xff, 0xff
+};
+static const unsigned char g45[] = {
+ 0xe0, 0xe2, 0x00, 0x22, 0x06, 0x26, 0x08, 0x28,
+ 0x0e, 0x2c, 0xee, 0xec, 0xff, 0x28, 0x26, 0x88,
+ 0x86, 0xff, 0xff
+};
+static const unsigned char g46[] = {
+ 0x00, 0x20, 0x06, 0x26, 0x08, 0x28, 0x0e, 0x2c,
+ 0xee, 0xec, 0xff, 0x28, 0x26, 0x88, 0x86, 0xff,
+ 0xff
+};
+static const unsigned char g47[] = {
+ 0xcb, 0xec, 0xbc, 0xce, 0x3c, 0x2e, 0x2b, 0x0c,
+ 0x23, 0x02, 0x32, 0x20, 0xb2, 0xc0, 0xc3, 0xe2,
+ 0xc6, 0xe8, 0x86, 0x88, 0xff, 0xff
+};
+static const unsigned char g48[] = {
+ 0x2e, 0x0e, 0x28, 0x07, 0x26, 0x00, 0x20, 0xff,
+ 0xc0, 0xe0, 0xc6, 0xe7, 0xc8, 0xee, 0xce, 0xff,
+ 0x28, 0x26, 0xc8, 0xc6, 0xff, 0xff
+};
+static const unsigned char g49[] = {
+ 0x42, 0x40, 0x62, 0x60, 0x82, 0x80, 0xa2, 0xa0,
+ 0xff, 0x4e, 0x4c, 0x6e, 0x6c, 0x8e, 0x8c, 0xae,
+ 0xac, 0xff, 0x62, 0x82, 0x6c, 0x8c, 0xff, 0xff
+};
+static const unsigned char g4A[] = {
+ 0x23, 0x02, 0x32, 0x20, 0xb2, 0xc0, 0xc3, 0xe2,
+ 0xce, 0xee, 0xff, 0xff
+};
+static const unsigned char g4B[] = {
+ 0x2e, 0x0e, 0x28, 0x07, 0x26, 0x00, 0x20, 0xff,
+ 0x28, 0x26, 0x68, 0x66, 0x97, 0xc0, 0xe2, 0xe0,
+ 0xff, 0x68, 0x97, 0xce, 0xec, 0xee, 0xff, 0xff
+};
+static const unsigned char g4C[] = {
+ 0xe0, 0xe2, 0x00, 0x22, 0x0e, 0x2e, 0xff, 0xff
+};
+static const unsigned char g4D[] = {
+ 0x00, 0x20, 0x0e, 0x2b, 0x2e, 0x67, 0x79, 0x87,
+ 0xce, 0xcb, 0xee, 0xc0, 0xe0, 0xff, 0xff
+};
+static const unsigned char g4E[] = {
+ 0x00, 0x20, 0x0e, 0x2b, 0x2e, 0xc0, 0xc3, 0xe0,
+ 0xce, 0xee, 0xff, 0xff
+};
+static const unsigned char g4F[] = {
+ 0x23, 0x02, 0x32, 0x20, 0xb2, 0xc0, 0xc3, 0xe2,
+ 0xcb, 0xec, 0xbc, 0xce, 0x3c, 0x2e, 0x2b, 0x0c,
+ 0x23, 0x02, 0xff, 0xff
+};
+static const unsigned char g50[] = {
+ 0x00, 0x20, 0x06, 0x26, 0x08, 0x28, 0x0c, 0x2c,
+ 0x0e, 0xbc, 0xce, 0xcb, 0xec, 0xc9, 0xe8, 0xb8,
+ 0xc6, 0x28, 0x26, 0xff, 0xff
+};
+static const unsigned char g51[] = {
+ 0xc0, 0xe2, 0xc4, 0xec, 0xcb, 0xce, 0xbc, 0x2e,
+ 0x3c, 0x0c, 0x2b, 0x02, 0x23, 0x20, 0x32, 0xc0,
+ 0xa2, 0xc4, 0x84, 0xa6, 0xff, 0xff
+};
+static const unsigned char g52[] = {
+ 0xc0, 0xe0, 0xc5, 0xe6, 0xb6, 0xd7, 0xb8, 0xe8,
+ 0xc9, 0xec, 0xcb, 0xce, 0xbc, 0x0e, 0x2c, 0x08,
+ 0x28, 0x06, 0x26, 0x00, 0x20, 0xff, 0x28, 0x26,
+ 0xb8, 0xb6, 0xff, 0xff
+};
+static const unsigned char g53[] = {
+ 0x23, 0x02, 0x32, 0x20, 0xb2, 0xc0, 0xc3, 0xe2,
+ 0xc5, 0xe6, 0xb6, 0xc8, 0x26, 0x38, 0x08, 0x29,
+ 0x0c, 0x2b, 0x2e, 0x3c, 0xce, 0xbc, 0xec, 0xcb,
+ 0xff, 0xff
+};
+static const unsigned char g54[] = {
+ 0x0e, 0x0c, 0x6e, 0x6c, 0x8e, 0x8c, 0xee, 0xec,
+ 0xff, 0x60, 0x80, 0x6c, 0x8c, 0xff, 0xff
+};
+static const unsigned char g55[] = {
+ 0x2e, 0x0e, 0x23, 0x02, 0x32, 0x20, 0xb2, 0xc0,
+ 0xc3, 0xe2, 0xce, 0xee, 0xff, 0xff
+};
+static const unsigned char g56[] = {
+ 0x2e, 0x0e, 0x27, 0x06, 0x72, 0x60, 0xff, 0x60,
+ 0x80, 0x72, 0xe6, 0xc7, 0xee, 0xce, 0xff, 0xff
+};
+static const unsigned char g57[] = {
+ 0xee, 0xce, 0xe0, 0xc3, 0xc0, 0x87, 0x75, 0x67,
+ 0x20, 0x23, 0x00, 0x2e, 0x0e, 0xff, 0xff
+};
+static const unsigned char g58[] = {
+ 0x00, 0x20, 0x02, 0x75, 0x57, 0x97, 0x79, 0xec,
+ 0xce, 0xee, 0xff, 0xe0, 0xe2, 0xc0, 0x97, 0x75,
+ 0xff, 0x0e, 0x0c, 0x2e, 0x57, 0x79, 0xff, 0xff
+};
+static const unsigned char g59[] = {
+ 0x0e, 0x0c, 0x2e, 0x66, 0x79, 0x86, 0xce, 0xec,
+ 0xee, 0xff, 0x60, 0x80, 0x66, 0x86, 0xff, 0xff
+};
+static const unsigned char g5A[] = {
+ 0x0e, 0x0c, 0xee, 0xbc, 0xec, 0x02, 0x32, 0x00,
+ 0xe2, 0xe0, 0xff, 0xff
+};
+static const unsigned char g5B[] = {
+ 0xa0, 0xa2, 0x60, 0x82, 0x6e, 0x8c, 0xae, 0xac,
+ 0xff, 0xff
+};
+static const unsigned char g5C[] = {
+ 0xe0, 0xe2, 0xc0, 0x2e, 0x0c, 0x0e, 0xff, 0xff
+};
+static const unsigned char g5D[] = {
+ 0x4e, 0x4c, 0x8e, 0x6c, 0x80, 0x62, 0x40, 0x42,
+ 0xff, 0xff
+};
+static const unsigned char g5E[] = {
+ 0x3a, 0x6a, 0x7e, 0x7b, 0xba, 0x8a, 0xff, 0xff
+};
+static const unsigned char g5F[] = {
+ 0x02, 0x00, 0xe2, 0xe0, 0xff, 0xff
+};
+static const unsigned char g60[] = {
+ 0x8a, 0x8e, 0x6c, 0x6e, 0xff, 0xff
+};
+static const unsigned char g61[] = {
+ 0x08, 0x27, 0x2a, 0x38, 0xca, 0xb8, 0xe8, 0xc7,
+ 0xe6, 0xc6, 0xe4, 0xc4, 0xe0, 0xc2, 0x20, 0x32,
+ 0x02, 0x23, 0x04, 0x34, 0x26, 0xc4, 0xc6, 0xff,
+ 0xff
+};
+static const unsigned char g62[] = {
+ 0x2e, 0x0e, 0x2a, 0x09, 0x28, 0x00, 0x22, 0xc0,
+ 0xb2, 0xe2, 0xc3, 0xe8, 0xc7, 0xca, 0xb8, 0x2a,
+ 0x28, 0xff, 0xff
+};
+static const unsigned char g63[] = {
+ 0xc7, 0xe8, 0xb8, 0xca, 0x38, 0x2a, 0x27, 0x08,
+ 0x23, 0x02, 0x32, 0x20, 0xb2, 0xc0, 0xc3, 0xe2,
+ 0xff, 0xff
+};
+static const unsigned char g64[] = {
+ 0xc8, 0xca, 0x38, 0x2a, 0x27, 0x08, 0x23, 0x02,
+ 0x32, 0x20, 0xc2, 0xe0, 0xc8, 0xe9, 0xca, 0xee,
+ 0xce, 0xff, 0xff
+};
+static const unsigned char g65[] = {
+ 0xe2, 0xc3, 0xc0, 0xb2, 0x20, 0x32, 0x02, 0x23,
+ 0x04, 0x24, 0x06, 0x26, 0x08, 0x27, 0x2a, 0x38,
+ 0xca, 0xb8, 0xe8, 0xc7, 0xe4, 0xc6, 0x24, 0x26,
+ 0xff, 0xff
+};
+static const unsigned char g66[] = {
+ 0x4a, 0x48, 0x6a, 0x68, 0x8a, 0x88, 0xaa, 0xa8,
+ 0xff, 0x60, 0x80, 0x68, 0x88, 0xff, 0x6a, 0x8a,
+ 0x6c, 0x8b, 0x8e, 0x9c, 0xae, 0xac, 0xff, 0xff
+};
+static const unsigned char g67[] = {
+ 0x23, 0x02, 0x32, 0x20, 0xb2, 0xc0, 0xc3, 0xe2,
+ 0xc4, 0xe6, 0xc6, 0xea, 0xc8, 0x2a, 0x38, 0x08,
+ 0x27, 0x06, 0x36, 0x24, 0xc6, 0xc4, 0xff, 0xff
+};
+static const unsigned char g68[] = {
+ 0x00, 0x20, 0x08, 0x28, 0x0a, 0x2a, 0x0e, 0x2e,
+ 0xff, 0x2a, 0x28, 0xca, 0xb8, 0xe8, 0xc7, 0xe0,
+ 0xc0, 0xff, 0xff
+};
+static const unsigned char g69[] = {
+ 0x60, 0x80, 0x6a, 0x8a, 0xff, 0x6c, 0x8c, 0x6e,
+ 0x8e, 0xff, 0xff
+};
+static const unsigned char g6A[] = {
+ 0x23, 0x02, 0x32, 0x20, 0xb2, 0xc0, 0xc3, 0xe2,
+ 0xca, 0xea, 0xff, 0xcc, 0xec, 0xce, 0xee, 0xff,
+ 0xff
+};
+static const unsigned char g6B[] = {
+ 0x00, 0x20, 0x04, 0x24, 0x06, 0x26, 0x0e, 0x2e,
+ 0xff, 0x26, 0x24, 0x86, 0x84, 0xb5, 0xc0, 0xe2,
+ 0xe0, 0xff, 0x86, 0xb5, 0xca, 0xe8, 0xea, 0xff,
+ 0xff
+};
+static const unsigned char g6C[] = {
+ 0x60, 0x80, 0x6e, 0x8e, 0xff, 0xff
+};
+static const unsigned char g6D[] = {
+ 0x00, 0x20, 0x0a, 0x28, 0x6a, 0x68, 0xff, 0x60,
+ 0x80, 0x68, 0x88, 0x6a, 0xb8, 0xca, 0xc7, 0xe8,
+ 0xc0, 0xe0, 0xff, 0xff
+};
+static const unsigned char g6E[] = {
+ 0x00, 0x20, 0x0a, 0x28, 0xca, 0xb8, 0xe8, 0xc7,
+ 0xe0, 0xc0, 0xff, 0xff
+};
+static const unsigned char g6F[] = {
+ 0x23, 0x02, 0x32, 0x20, 0xb2, 0xc0, 0xc3, 0xe2,
+ 0xc7, 0xe8, 0xb8, 0xca, 0x38, 0x2a, 0x27, 0x08,
+ 0x23, 0x02, 0xff, 0xff
+};
+static const unsigned char g70[] = {
+ 0x00, 0x20, 0x04, 0x24, 0x06, 0x26, 0x0a, 0x28,
+ 0xca, 0xb8, 0xe8, 0xc7, 0xe6, 0xb6, 0xc4, 0x26,
+ 0x24, 0xff, 0xff
+};
+static const unsigned char g71[] = {
+ 0xc0, 0xe0, 0xc4, 0xe5, 0xc6, 0xea, 0xc8, 0x2a,
+ 0x38, 0x08, 0x27, 0x06, 0x36, 0x24, 0xc6, 0xc4,
+ 0xff, 0xff
+};
+static const unsigned char g72[] = {
+ 0x00, 0x20, 0x0a, 0x28, 0xca, 0xb8, 0xe8, 0xc7,
+ 0xff, 0xff
+};
+static const unsigned char g73[] = {
+ 0xc3, 0xe4, 0xb4, 0xc6, 0x24, 0x36, 0x06, 0x27,
+ 0x08, 0x38, 0x2a, 0xb8, 0xca, 0xc7, 0xe8, 0xff,
+ 0x23, 0x02, 0x32, 0x20, 0xb2, 0xc0, 0xc3, 0xe2,
+ 0xe4, 0xff, 0xff
+};
+static const unsigned char g74[] = {
+ 0x4a, 0x48, 0x6a, 0x68, 0xff, 0x8a, 0x88, 0xaa,
+ 0xa8, 0xff, 0xa0, 0xa2, 0x80, 0x92, 0x62, 0x83,
+ 0x68, 0x88, 0x6a, 0x8a, 0x6c, 0x8c, 0xff, 0xff
+};
+static const unsigned char g75[] = {
+ 0x2a, 0x0a, 0x23, 0x02, 0x32, 0x20, 0xc2, 0xe0,
+ 0xca, 0xea, 0xff, 0xff
+};
+static const unsigned char g76[] = {
+ 0xea, 0xca, 0xe6, 0xc7, 0x80, 0x72, 0x60, 0x27,
+ 0x06, 0x2a, 0x0a, 0xff, 0xff
+};
+static const unsigned char g77[] = {
+ 0x2a, 0x0a, 0x22, 0x00, 0x52, 0x60, 0x63, 0x71,
+ 0x83, 0x80, 0x92, 0xc0, 0xb2, 0xe2, 0xc3, 0xea,
+ 0xca, 0xff, 0x8a, 0x6a, 0x83, 0x63, 0xff, 0xff
+};
+static const unsigned char g78[] = {
+ 0x00, 0x20, 0x02, 0x74, 0x45, 0x76, 0x08, 0x2a,
+ 0x0a, 0xff, 0xea, 0xca, 0xe8, 0x76, 0xa5, 0x74,
+ 0xe2, 0xc0, 0xe0, 0xff, 0xff
+};
+static const unsigned char g79[] = {
+ 0x23, 0x02, 0x32, 0x20, 0xb2, 0xc0, 0xc3, 0xe2,
+ 0xc4, 0xe5, 0xc6, 0xea, 0xca, 0xff, 0x2a, 0x0a,
+ 0x27, 0x06, 0x36, 0x24, 0xc6, 0xc4, 0xff, 0xff
+};
+static const unsigned char g7A[] = {
+ 0x0a, 0x08, 0xea, 0xa8, 0xe8, 0x02, 0x42, 0x00,
+ 0xe2, 0xe0, 0xff, 0xff
+};
+static const unsigned char g7B[] = {
+ 0x80, 0xa0, 0x62, 0x82, 0x66, 0x86, 0x57, 0x77,
+ 0x68, 0x88, 0x6c, 0x8c, 0x8e, 0xae, 0xff, 0xff
+};
+static const unsigned char g7C[] = {
+ 0x60, 0x80, 0x6f, 0x8f, 0xff, 0xff
+};
+static const unsigned char g7D[] = {
+ 0x6e, 0x4e, 0x8c, 0x6c, 0x88, 0x68, 0x97, 0x77,
+ 0x86, 0x66, 0x82, 0x62, 0x60, 0x40, 0xff, 0xff
+};
+static const unsigned char g7E[] = {
+ 0xbc, 0xbe, 0x9a, 0x9c, 0x5c, 0x5e, 0x3a, 0x3c,
+ 0xff, 0xff
+};
+static const unsigned char g7F[] = {
+ 0x44, 0x22, 0xa4, 0xc2, 0xaa, 0xcc, 0x4a, 0x2c,
+ 0x44, 0x22, 0xff, 0xff
+};
+
+static const unsigned char *glyph[] = {
+ g7F, g7F, g7F, g7F, g7F, g7F, g7F, g7F,
+ g7F, g7F, g7F, g7F, g7F, g7F, g7F, g7F,
+ g7F, g7F, g7F, g7F, g7F, g7F, g7F, g7F,
+ g7F, g7F, g7F, g7F, g7F, g7F, g7F, g7F,
+ g20, g21, g22, g23, g24, g25, g26, g27,
+ g28, g29, g2A, g2B, g2C, g2D, g2E, g2F,
+ g30, g31, g32, g33, g34, g35, g36, g37,
+ g38, g39, g3A, g3B, g3C, g3D, g3E, g3F,
+ g40, g41, g42, g43, g44, g45, g46, g47,
+ g48, g49, g4A, g4B, g4C, g4D, g4E, g4F,
+ g50, g51, g52, g53, g54, g55, g56, g57,
+ g58, g59, g5A, g5B, g5C, g5D, g5E, g5F,
+ g60, g61, g62, g63, g64, g65, g66, g67,
+ g68, g69, g6A, g6B, g6C, g6D, g6E, g6F,
+ g70, g71, g72, g73, g74, g75, g76, g77,
+ g78, g79, g7A, g7B, g7C, g7D, g7E, g7F,
+};
+
+void draw_glyph(int c)
+{
+ int i = 0;
+
+ assert(0 <= c && c < 128);
+
+ while (glyph[c][i] != 0xff)
+ {
+ glBegin(GL_TRIANGLE_STRIP);
+ {
+ while (glyph[c][i] != 0xff)
+ {
+ glVertex2f((glyph[c][i] / 16) / 16.0f,
+ (glyph[c][i] % 16) / 16.0f);
+ i++;
+ }
+ }
+ glEnd();
+
+ i++;
+ }
+
+ glTranslatef(1.0f, 0.0f, 0.0f);
+}
+
+double text_width = 8;
+double text_height = 12;
+
+void draw_string(const char *s) {
+ int index = 0;
+
+ glPushMatrix();
+ glScaled(text_width, text_height, 0);
+ glRotated(180, 1, 0, 0); // flip - ortho screen coords have y inverted
+
+ while(s[index] != '\0') {
+ draw_glyph((int)s[index]);
+ index++;
+ }
+
+ glPopMatrix();
+}
+
+void draw_string_centered(const char *s) {
+ glPushMatrix();
+ glTranslated(strlen(s) / 2.0 * -text_width, text_height / 2, 0);
+ draw_string(s);
+ glPopMatrix();
+}
+
+void set_text_size(const double ttext_width, const double ttext_height) {
+ text_width = ttext_width;
+ text_height = ttext_height;
+}