git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@66 b9cfdab3-6d41-4d17-bbe4-086880011989
This commit is contained in:
NishiOwO
2025-09-29 09:16:44 +00:00
parent 38a109e8df
commit 278a86951e
4 changed files with 196 additions and 134 deletions

View File

@@ -62,7 +62,7 @@ lib: src/libMw$(SO)
examples: $(EXAMPLES)
format:
clang-format --verbose -i $(shell find src include examples -name "*.c" -or -name "*.h")
clang-format --verbose -i $(shell find src include examples tools -name "*.c" -or -name "*.h")
src/libMw$(SO): $(L_OBJS)
$(CC) $(L_LDFLAGS) -shared -o $@ $^ $(L_LIBS)

View File

@@ -118,20 +118,21 @@ void MwDrawFrame(MwWidget handle, MwRect* rect, MwLLColor color, int invert) {
void MwDrawText(MwWidget handle, MwPoint* point, const char* text, MwLLColor color) {
int i, x, y, sx, sy, sc = 1;
int fw = 7, fh = 14;
MwRect r;
sx = point->x - strlen(text) * 8 * sc / 2;
sy = point->y - 16 * sc / 2;
sx = point->x - strlen(text) * fw * sc / 2;
sy = point->y - fh * sc / 2;
for(i = 0; text[i] != 0; i++) {
for(y = 0; y < 16; y++) {
for(x = 0; x < 8; x++) {
for(y = 0; y < fh; y++) {
for(x = 0; x < fw; x++) {
r.x = sx + x * sc;
r.y = sy + y * sc;
r.width = sc;
r.height = sc;
if(MwFontData[(unsigned char)text[i]].data[y] & (1 << (7 - x))) {
if(MwFontData[(unsigned char)text[i]].data[y] & (1 << ((fw - 1) - x))) {
MwDrawRect(handle, &r, color);
}
}

View File

@@ -2,132 +2,132 @@
#include <Mw/Milsko.h>
MwFont MwFontData[] = {
{0, 14, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, /* 0 */
{0, 14, {16, 16, 56, 56, 124, 124, 254, 254, 124, 124, 56, 56, 16, 16, 0, 0}}, /* 1 */
{0, 14, {146, 146, 68, 68, 146, 146, 68, 68, 146, 146, 68, 68, 146, 146, 0, 0}}, /* 2 */
{0, 14, {0, 136, 136, 136, 248, 136, 136, 136, 0, 62, 8, 8, 8, 8, 8, 8}}, /* 3 */
{0, 14, {0, 248, 128, 128, 240, 128, 128, 128, 62, 32, 32, 60, 32, 32, 32, 0}}, /* 4 */
{0, 14, {0, 112, 136, 128, 128, 128, 136, 112, 0, 60, 34, 34, 60, 40, 36, 34}}, /* 5 */
{0, 14, {0, 128, 128, 128, 128, 128, 128, 248, 0, 62, 32, 32, 60, 32, 32, 32}}, /* 6 */
{0, 14, {0, 0, 56, 68, 68, 68, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, /* 7 */
{0, 14, {0, 0, 16, 16, 16, 16, 254, 16, 16, 16, 16, 0, 254, 0, 0, 0}}, /* 8 */
{0, 14, {0, 132, 196, 164, 164, 148, 148, 140, 132, 32, 32, 32, 32, 32, 32, 62}}, /* 9 */
{0, 14, {0, 0, 136, 136, 136, 80, 80, 32, 0, 62, 8, 8, 8, 8, 8, 0}}, /* 10 */
{0, 14, {16, 16, 16, 16, 16, 16, 16, 16, 240, 0, 0, 0, 0, 0, 0, 0}}, /* 11 */
{0, 14, {0, 0, 0, 0, 0, 0, 0, 0, 240, 16, 16, 16, 16, 16, 16, 16}}, /* 12 */
{0, 14, {0, 0, 0, 0, 0, 0, 0, 0, 31, 16, 16, 16, 16, 16, 16, 16}}, /* 13 */
{0, 14, {16, 16, 16, 16, 16, 16, 16, 16, 31, 0, 0, 0, 0, 0, 0, 0}}, /* 14 */
{0, 14, {16, 16, 16, 16, 16, 16, 16, 16, 255, 16, 16, 16, 16, 16, 16, 16}}, /* 15 */
{0, 14, {0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, /* 16 */
{0, 14, {0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, /* 17 */
{0, 14, {0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0}}, /* 18 */
{0, 14, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0}}, /* 19 */
{0, 14, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0}}, /* 20 */
{0, 14, {16, 16, 16, 16, 16, 16, 16, 16, 31, 16, 16, 16, 16, 16, 16, 16}}, /* 21 */
{0, 14, {16, 16, 16, 16, 16, 16, 16, 16, 240, 16, 16, 16, 16, 16, 16, 16}}, /* 22 */
{0, 14, {16, 16, 16, 16, 16, 16, 16, 16, 255, 0, 0, 0, 0, 0, 0, 0}}, /* 23 */
{0, 14, {0, 0, 0, 0, 0, 0, 0, 0, 255, 16, 16, 16, 16, 16, 16, 16}}, /* 24 */
{0, 14, {16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16}}, /* 25 */
{0, 14, {0, 0, 0, 0, 2, 12, 48, 192, 48, 12, 2, 254, 0, 254, 0, 0}}, /* 26 */
{0, 14, {0, 0, 0, 0, 128, 96, 24, 6, 24, 96, 128, 254, 0, 254, 0, 0}}, /* 27 */
{0, 14, {0, 0, 0, 0, 0, 0, 0, 254, 36, 36, 36, 36, 68, 132, 0, 0}}, /* 28 */
{0, 14, {0, 0, 0, 0, 2, 4, 8, 254, 16, 254, 32, 64, 128, 0, 0, 0}}, /* 29 */
{0, 14, {0, 0, 0, 0, 12, 18, 16, 16, 16, 124, 16, 16, 60, 82, 32, 0}}, /* 30 */
{0, 14, {0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0}}, /* 31 */
{0, 14, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, /* 32 */
{0, 14, {0, 56, 56, 56, 56, 56, 56, 16, 16, 16, 16, 0, 0, 16, 56, 16}}, /* 33 */
{0, 14, {108, 108, 36, 36, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, /* 34 */
{0, 14, {0, 18, 18, 18, 127, 36, 36, 36, 36, 36, 254, 72, 72, 72, 72, 0}}, /* 35 */
{0, 14, {16, 56, 84, 146, 150, 144, 80, 56, 20, 18, 210, 146, 148, 120, 16, 16}}, /* 36 */
{0, 14, {2, 98, 148, 148, 148, 152, 104, 16, 16, 44, 50, 82, 82, 82, 140, 128}}, /* 37 */
{0, 14, {0, 48, 72, 72, 72, 80, 32, 46, 84, 84, 148, 136, 140, 114, 0, 0}}, /* 38 */
{0, 14, {224, 224, 32, 32, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, /* 39 */
{0, 14, {2, 4, 8, 8, 16, 16, 16, 16, 16, 16, 16, 16, 8, 8, 4, 2}}, /* 40 */
{0, 14, {128, 64, 32, 32, 16, 16, 16, 16, 16, 16, 16, 16, 32, 32, 64, 128}}, /* 41 */
{0, 14, {0, 0, 0, 16, 56, 146, 214, 56, 214, 146, 56, 16, 0, 0, 0, 0}}, /* 42 */
{0, 14, {0, 0, 0, 16, 16, 16, 16, 254, 16, 16, 16, 16, 0, 0, 0, 0}}, /* 43 */
{0, 14, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 32, 32, 192}}, /* 44 */
{0, 14, {0, 0, 0, 0, 0, 0, 0, 254, 0, 0, 0, 0, 0, 0, 0, 0}}, /* 45 */
{0, 14, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 224, 224, 64, 0}}, /* 46 */
{0, 14, {2, 2, 4, 4, 8, 8, 8, 16, 16, 16, 32, 32, 64, 64, 128, 128}}, /* 47 */
{0, 14, {0, 24, 36, 36, 66, 66, 66, 66, 66, 66, 66, 66, 36, 36, 24, 0}}, /* 48 */
{0, 14, {0, 16, 112, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 124, 0, 0}}, /* 49 */
{0, 14, {0, 24, 36, 66, 98, 2, 4, 8, 8, 16, 32, 34, 66, 126, 0, 0}}, /* 50 */
{0, 14, {0, 56, 68, 130, 130, 2, 4, 56, 4, 2, 130, 130, 68, 56, 0, 0}}, /* 51 */
{0, 14, {0, 8, 24, 40, 40, 72, 72, 136, 136, 254, 8, 8, 8, 60, 0, 0}}, /* 52 */
{0, 14, {0, 252, 128, 128, 128, 184, 196, 130, 2, 2, 194, 130, 68, 56, 0, 0}}, /* 53 */
{0, 14, {0, 60, 66, 70, 128, 128, 184, 196, 130, 130, 130, 130, 68, 56, 0, 0}}, /* 54 */
{0, 14, {0, 254, 130, 130, 4, 4, 4, 8, 8, 8, 8, 16, 16, 16, 16, 0}}, /* 55 */
{0, 14, {0, 56, 68, 130, 130, 130, 68, 56, 68, 130, 130, 130, 68, 56, 0, 0}}, /* 56 */
{0, 14, {0, 56, 68, 130, 130, 130, 130, 70, 58, 2, 2, 130, 68, 56, 0, 0}}, /* 57 */
{0, 14, {0, 0, 0, 0, 0, 56, 56, 0, 0, 0, 0, 0, 56, 56, 0, 0}}, /* 58 */
{0, 14, {0, 0, 0, 0, 0, 56, 56, 0, 0, 0, 0, 56, 56, 24, 16, 48}}, /* 59 */
{0, 14, {2, 4, 4, 8, 8, 16, 16, 32, 32, 16, 16, 8, 8, 4, 4, 2}}, /* 60 */
{0, 14, {0, 0, 0, 0, 0, 254, 0, 0, 0, 254, 0, 0, 0, 0, 0, 0}}, /* 61 */
{0, 14, {128, 64, 64, 32, 32, 16, 16, 8, 8, 16, 16, 32, 32, 64, 64, 128}}, /* 62 */
{0, 14, {0, 56, 68, 130, 194, 2, 4, 4, 8, 16, 16, 0, 0, 16, 56, 16}}, /* 63 */
{0, 14, {0, 60, 66, 130, 154, 166, 162, 162, 162, 166, 154, 128, 66, 60, 0, 0}}, /* 64 */
{0, 14, {0, 16, 40, 40, 40, 68, 68, 68, 68, 124, 130, 130, 130, 198, 0, 0}}, /* 65 */
{0, 14, {0, 248, 68, 66, 66, 66, 68, 120, 68, 66, 66, 66, 66, 252, 0, 0}}, /* 66 */
{0, 14, {0, 58, 70, 66, 128, 128, 128, 128, 128, 128, 130, 66, 66, 60, 0, 0}}, /* 67 */
{0, 14, {0, 248, 68, 68, 66, 66, 66, 66, 66, 66, 66, 68, 68, 248, 0, 0}}, /* 68 */
{0, 14, {0, 254, 66, 66, 64, 72, 72, 120, 72, 72, 66, 66, 66, 254, 0, 0}}, /* 69 */
{0, 14, {0, 254, 66, 66, 64, 72, 72, 120, 72, 72, 64, 64, 64, 240, 0, 0}}, /* 70 */
{0, 14, {0, 26, 38, 66, 64, 128, 128, 143, 130, 130, 130, 66, 102, 26, 0, 0}}, /* 71 */
{0, 14, {0, 231, 66, 66, 66, 66, 126, 66, 66, 66, 66, 66, 66, 231, 0, 0}}, /* 72 */
{0, 14, {0, 254, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 254, 0, 0}}, /* 73 */
{0, 14, {0, 31, 2, 2, 2, 2, 2, 2, 2, 130, 130, 130, 68, 56, 0, 0}}, /* 74 */
{0, 14, {0, 230, 68, 68, 72, 72, 112, 80, 72, 72, 68, 68, 66, 227, 0, 0}}, /* 75 */
{0, 14, {0, 240, 64, 64, 64, 64, 64, 64, 64, 64, 66, 66, 66, 254, 0, 0}}, /* 76 */
{0, 14, {0, 130, 198, 170, 170, 170, 146, 146, 146, 130, 130, 130, 130, 198, 0, 0}}, /* 77 */
{0, 14, {0, 135, 194, 162, 162, 162, 146, 146, 146, 138, 138, 138, 134, 194, 0, 0}}, /* 78 */
{0, 14, {0, 56, 68, 130, 130, 130, 130, 130, 130, 130, 130, 130, 68, 56, 0, 0}}, /* 79 */
{0, 14, {0, 248, 68, 66, 66, 66, 66, 68, 120, 64, 64, 64, 64, 240, 0, 0}}, /* 80 */
{0, 14, {0, 56, 68, 68, 130, 130, 130, 130, 130, 130, 186, 68, 68, 56, 8, 6}}, /* 81 */
{0, 14, {0, 248, 68, 66, 66, 66, 68, 120, 72, 68, 68, 68, 66, 227, 0, 0}}, /* 82 */
{0, 14, {0, 52, 76, 132, 128, 128, 96, 24, 4, 130, 130, 130, 196, 184, 0, 0}}, /* 83 */
{0, 14, {0, 254, 146, 146, 16, 16, 16, 16, 16, 16, 16, 16, 16, 124, 0, 0}}, /* 84 */
{0, 14, {0, 231, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 60, 0, 0}}, /* 85 */
{0, 14, {0, 198, 130, 130, 130, 130, 68, 68, 68, 68, 40, 40, 16, 16, 0, 0}}, /* 86 */
{0, 14, {0, 198, 130, 130, 130, 146, 146, 146, 170, 170, 170, 68, 68, 68, 0, 0}}, /* 87 */
{0, 14, {0, 238, 68, 68, 40, 40, 16, 40, 40, 40, 68, 68, 130, 198, 0, 0}}, /* 88 */
{0, 14, {0, 198, 130, 68, 68, 68, 40, 40, 16, 16, 16, 16, 16, 124, 0, 0}}, /* 89 */
{0, 14, {0, 254, 132, 136, 8, 16, 16, 16, 32, 32, 66, 66, 130, 254, 0, 0}}, /* 90 */
{0, 14, {30, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 30}}, /* 91 */
{0, 14, {0, 128, 128, 64, 64, 32, 32, 16, 16, 8, 8, 4, 4, 2, 2, 0}}, /* 92 */
{0, 14, {240, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 240}}, /* 93 */
{0, 14, {16, 40, 68, 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, /* 94 */
{0, 14, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254}}, /* 95 */
{0, 14, {48, 48, 32, 32, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, /* 96 */
{0, 14, {0, 0, 0, 0, 0, 60, 66, 2, 62, 66, 130, 130, 134, 123, 0, 0}}, /* 97 */
{0, 14, {0, 192, 64, 64, 64, 120, 68, 66, 66, 66, 66, 66, 68, 120, 0, 0}}, /* 98 */
{0, 14, {0, 0, 0, 0, 0, 58, 70, 130, 128, 128, 128, 130, 66, 60, 0, 0}}, /* 99 */
{0, 14, {0, 6, 4, 4, 4, 60, 68, 132, 132, 132, 132, 132, 68, 62, 0, 0}}, /* 100 */
{0, 14, {0, 0, 0, 0, 0, 56, 68, 130, 254, 128, 128, 130, 66, 60, 0, 0}}, /* 101 */
{0, 14, {0, 14, 17, 16, 16, 254, 16, 16, 16, 16, 16, 16, 16, 124, 0, 0}}, /* 102 */
{0, 14, {0, 0, 0, 0, 0, 59, 68, 68, 68, 56, 64, 120, 132, 130, 130, 124}}, /* 103 */
{0, 14, {0, 192, 64, 64, 64, 92, 98, 66, 66, 66, 66, 66, 66, 231, 0, 0}}, /* 104 */
{0, 14, {24, 24, 0, 0, 0, 120, 8, 8, 8, 8, 8, 8, 8, 255, 0, 0}}, /* 105 */
{0, 14, {6, 6, 0, 0, 0, 62, 2, 2, 2, 2, 2, 2, 130, 130, 68, 56}}, /* 106 */
{0, 14, {0, 192, 64, 64, 64, 66, 68, 72, 88, 100, 68, 66, 66, 227, 0, 0}}, /* 107 */
{0, 14, {0, 120, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 255, 0, 0}}, /* 108 */
{0, 14, {0, 0, 0, 0, 0, 108, 146, 146, 146, 146, 146, 146, 146, 219, 0, 0}}, /* 109 */
{0, 14, {0, 0, 0, 0, 0, 220, 98, 66, 66, 66, 66, 66, 66, 231, 0, 0}}, /* 110 */
{0, 14, {0, 0, 0, 0, 0, 56, 68, 130, 130, 130, 130, 130, 68, 56, 0, 0}}, /* 111 */
{0, 14, {0, 0, 0, 0, 0, 248, 68, 66, 66, 66, 66, 68, 120, 64, 64, 240}}, /* 112 */
{0, 14, {0, 0, 0, 0, 0, 62, 68, 132, 132, 132, 132, 68, 60, 4, 4, 30}}, /* 113 */
{0, 14, {0, 0, 0, 0, 0, 236, 50, 34, 32, 32, 32, 32, 32, 252, 0, 0}}, /* 114 */
{0, 14, {0, 0, 0, 0, 0, 58, 70, 66, 64, 60, 2, 130, 194, 188, 0, 0}}, /* 115 */
{0, 14, {0, 0, 32, 32, 32, 252, 32, 32, 32, 32, 32, 34, 34, 28, 0, 0}}, /* 116 */
{0, 14, {0, 0, 0, 0, 0, 198, 66, 66, 66, 66, 66, 66, 70, 57, 0, 0}}, /* 117 */
{0, 14, {0, 0, 0, 0, 0, 198, 130, 130, 68, 68, 68, 40, 40, 16, 0, 0}}, /* 118 */
{0, 14, {0, 0, 0, 0, 0, 146, 146, 146, 146, 170, 170, 68, 68, 68, 0, 0}}, /* 119 */
{0, 14, {0, 0, 0, 0, 0, 238, 68, 40, 40, 16, 40, 40, 68, 238, 0, 0}}, /* 120 */
{0, 14, {0, 0, 0, 0, 0, 231, 66, 34, 36, 20, 8, 8, 16, 144, 160, 64}}, /* 121 */
{0, 14, {0, 0, 0, 0, 0, 126, 68, 8, 8, 16, 16, 34, 66, 254, 0, 0}}, /* 122 */
{0, 14, {6, 8, 8, 8, 8, 8, 16, 32, 16, 8, 8, 8, 8, 8, 8, 6}}, /* 123 */
{0, 14, {16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16}}, /* 124 */
{0, 14, {192, 32, 32, 32, 32, 32, 16, 8, 16, 32, 32, 32, 32, 32, 32, 192}}, /* 125 */
{0, 14, {96, 146, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, /* 126 */
{0, 14, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}} /* 127 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 0 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 1 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 2 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 3 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 4 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 5 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 6 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 7 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 8 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 9 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 10 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 11 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 12 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 13 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 14 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 15 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 16 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 17 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 18 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 19 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 20 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 21 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 22 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 23 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 24 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 25 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 26 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 27 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 28 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 29 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 30 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}}, /* 31 */
{0, 12, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, /* 32 */
{0, 12, {0, 0, 8, 8, 8, 8, 8, 8, 8, 0, 8, 8, 0, 0}}, /* 33 */
{0, 12, {0, 20, 20, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, /* 34 */
{0, 12, {0, 0, 20, 20, 20, 62, 20, 20, 62, 20, 20, 20, 0, 0}}, /* 35 */
{0, 12, {0, 0, 8, 60, 74, 74, 40, 28, 10, 74, 74, 60, 8, 0}}, /* 36 */
{0, 12, {0, 0, 50, 74, 76, 56, 8, 16, 28, 50, 82, 76, 0, 0}}, /* 37 */
{0, 12, {0, 0, 24, 36, 36, 36, 24, 50, 74, 68, 76, 50, 0, 0}}, /* 38 */
{0, 12, {0, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, /* 39 */
{0, 12, {0, 2, 4, 8, 8, 16, 16, 16, 16, 16, 8, 8, 4, 2}}, /* 40 */
{0, 12, {0, 32, 16, 8, 8, 4, 4, 4, 4, 4, 8, 8, 16, 32}}, /* 41 */
{0, 12, {0, 0, 0, 0, 8, 42, 28, 8, 28, 42, 8, 0, 0, 0}}, /* 42 */
{0, 12, {0, 0, 0, 0, 8, 8, 8, 62, 8, 8, 8, 0, 0, 0}}, /* 43 */
{0, 12, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 8, 8, 16}}, /* 44 */
{0, 12, {0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0}}, /* 45 */
{0, 12, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 28, 8, 0}}, /* 46 */
{0, 12, {0, 2, 2, 4, 4, 8, 8, 8, 16, 16, 32, 32, 64, 64}}, /* 47 */
{0, 12, {0, 0, 24, 36, 66, 66, 66, 66, 66, 66, 36, 24, 0, 0}}, /* 48 */
{0, 12, {0, 0, 8, 24, 40, 8, 8, 8, 8, 8, 8, 62, 0, 0}}, /* 49 */
{0, 12, {0, 0, 60, 66, 66, 2, 4, 4, 8, 16, 32, 126, 0, 0}}, /* 50 */
{0, 12, {0, 0, 126, 2, 4, 8, 28, 2, 2, 66, 66, 60, 0, 0}}, /* 51 */
{0, 12, {0, 0, 4, 12, 20, 20, 36, 36, 68, 126, 4, 4, 0, 0}}, /* 52 */
{0, 12, {0, 0, 126, 64, 64, 124, 66, 2, 2, 66, 66, 60, 0, 0}}, /* 53 */
{0, 12, {0, 0, 28, 32, 64, 64, 92, 98, 66, 66, 66, 60, 0, 0}}, /* 54 */
{0, 12, {0, 0, 126, 2, 4, 4, 8, 8, 16, 16, 32, 32, 0, 0}}, /* 55 */
{0, 12, {0, 0, 60, 66, 66, 36, 24, 36, 66, 66, 66, 60, 0, 0}}, /* 56 */
{0, 12, {0, 0, 60, 66, 66, 66, 70, 58, 2, 66, 68, 56, 0, 0}}, /* 57 */
{0, 12, {0, 0, 0, 0, 8, 28, 8, 0, 0, 8, 28, 8, 0, 0}}, /* 58 */
{0, 12, {0, 0, 0, 0, 0, 24, 24, 0, 0, 24, 8, 8, 16, 0}}, /* 59 */
{0, 12, {0, 0, 0, 2, 4, 8, 16, 32, 16, 8, 4, 2, 0, 0}}, /* 60 */
{0, 12, {0, 0, 0, 0, 0, 126, 0, 0, 126, 0, 0, 0, 0, 0}}, /* 61 */
{0, 12, {0, 0, 0, 32, 16, 8, 4, 2, 4, 8, 16, 32, 0, 0}}, /* 62 */
{0, 12, {0, 0, 60, 66, 66, 4, 8, 8, 8, 0, 8, 8, 0, 0}}, /* 63 */
{0, 12, {0, 0, 28, 34, 78, 82, 82, 82, 82, 78, 32, 30, 0, 0}}, /* 64 */
{0, 12, {0, 0, 24, 36, 66, 66, 66, 126, 66, 66, 66, 66, 0, 0}}, /* 65 */
{0, 12, {0, 0, 120, 68, 66, 68, 120, 68, 66, 66, 68, 120, 0, 0}}, /* 66 */
{0, 12, {0, 0, 60, 66, 66, 64, 64, 64, 64, 66, 66, 60, 0, 0}}, /* 67 */
{0, 12, {0, 0, 120, 68, 66, 66, 66, 66, 66, 66, 68, 120, 0, 0}}, /* 68 */
{0, 12, {0, 0, 126, 64, 64, 64, 120, 64, 64, 64, 64, 126, 0, 0}}, /* 69 */
{0, 12, {0, 0, 126, 64, 64, 64, 120, 64, 64, 64, 64, 64, 0, 0}}, /* 70 */
{0, 12, {0, 0, 60, 66, 66, 64, 64, 78, 66, 66, 70, 58, 0, 0}}, /* 71 */
{0, 12, {0, 0, 66, 66, 66, 66, 126, 66, 66, 66, 66, 66, 0, 0}}, /* 72 */
{0, 12, {0, 0, 62, 8, 8, 8, 8, 8, 8, 8, 8, 62, 0, 0}}, /* 73 */
{0, 12, {0, 0, 14, 4, 4, 4, 4, 4, 4, 68, 68, 56, 0, 0}}, /* 74 */
{0, 12, {0, 0, 66, 68, 72, 80, 96, 80, 72, 68, 66, 66, 0, 0}}, /* 75 */
{0, 12, {0, 0, 64, 64, 64, 64, 64, 64, 64, 64, 64, 126, 0, 0}}, /* 76 */
{0, 12, {0, 0, 66, 102, 102, 90, 90, 66, 66, 66, 66, 66, 0, 0}}, /* 77 */
{0, 12, {0, 0, 66, 66, 98, 98, 82, 74, 70, 70, 66, 66, 0, 0}}, /* 78 */
{0, 12, {0, 0, 60, 66, 66, 66, 66, 66, 66, 66, 66, 60, 0, 0}}, /* 79 */
{0, 12, {0, 0, 124, 66, 66, 66, 66, 124, 64, 64, 64, 64, 0, 0}}, /* 80 */
{0, 12, {0, 0, 60, 66, 66, 66, 66, 66, 114, 74, 70, 60, 4, 2}}, /* 81 */
{0, 12, {0, 0, 124, 66, 66, 66, 66, 124, 72, 68, 66, 66, 0, 0}}, /* 82 */
{0, 12, {0, 0, 60, 66, 66, 64, 48, 12, 2, 66, 66, 60, 0, 0}}, /* 83 */
{0, 12, {0, 0, 127, 8, 8, 8, 8, 8, 8, 8, 8, 8, 0, 0}}, /* 84 */
{0, 12, {0, 0, 66, 66, 66, 66, 66, 66, 66, 66, 66, 60, 0, 0}}, /* 85 */
{0, 12, {0, 0, 66, 66, 66, 66, 36, 36, 36, 24, 24, 24, 0, 0}}, /* 86 */
{0, 12, {0, 0, 34, 34, 34, 34, 34, 34, 42, 42, 42, 20, 0, 0}}, /* 87 */
{0, 12, {0, 0, 66, 66, 36, 36, 24, 24, 36, 36, 66, 66, 0, 0}}, /* 88 */
{0, 12, {0, 0, 34, 34, 34, 20, 20, 8, 8, 8, 8, 8, 0, 0}}, /* 89 */
{0, 12, {0, 0, 126, 2, 4, 8, 8, 16, 32, 32, 64, 126, 0, 0}}, /* 90 */
{0, 12, {0, 30, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 30}}, /* 91 */
{0, 12, {0, 64, 64, 32, 32, 16, 16, 16, 8, 8, 4, 4, 2, 2}}, /* 92 */
{0, 12, {0, 60, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 60}}, /* 93 */
{0, 12, {0, 24, 36, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, /* 94 */
{0, 12, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126}}, /* 95 */
{0, 12, {0, 16, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, /* 96 */
{0, 12, {0, 0, 0, 0, 0, 60, 66, 2, 62, 66, 66, 62, 0, 0}}, /* 97 */
{0, 12, {0, 0, 64, 64, 64, 92, 98, 66, 66, 66, 98, 92, 0, 0}}, /* 98 */
{0, 12, {0, 0, 0, 0, 0, 60, 66, 64, 64, 64, 66, 60, 0, 0}}, /* 99 */
{0, 12, {0, 0, 2, 2, 2, 58, 70, 66, 66, 66, 70, 58, 0, 0}}, /* 100 */
{0, 12, {0, 0, 0, 0, 0, 60, 66, 66, 126, 64, 66, 60, 0, 0}}, /* 101 */
{0, 12, {0, 0, 12, 18, 16, 16, 124, 16, 16, 16, 16, 16, 0, 0}}, /* 102 */
{0, 12, {0, 0, 0, 0, 0, 58, 68, 68, 68, 56, 32, 92, 66, 60}}, /* 103 */
{0, 12, {0, 0, 64, 64, 64, 92, 98, 66, 66, 66, 66, 66, 0, 0}}, /* 104 */
{0, 12, {0, 0, 8, 8, 0, 24, 8, 8, 8, 8, 8, 62, 0, 0}}, /* 105 */
{0, 12, {0, 0, 2, 2, 0, 6, 2, 2, 2, 2, 2, 34, 34, 28}}, /* 106 */
{0, 12, {0, 0, 64, 64, 64, 68, 72, 80, 112, 72, 68, 66, 0, 0}}, /* 107 */
{0, 12, {0, 0, 24, 8, 8, 8, 8, 8, 8, 8, 8, 62, 0, 0}}, /* 108 */
{0, 12, {0, 0, 0, 0, 0, 52, 42, 42, 42, 42, 42, 34, 0, 0}}, /* 109 */
{0, 12, {0, 0, 0, 0, 0, 92, 98, 66, 66, 66, 66, 66, 0, 0}}, /* 110 */
{0, 12, {0, 0, 0, 0, 0, 60, 66, 66, 66, 66, 66, 60, 0, 0}}, /* 111 */
{0, 12, {0, 0, 0, 0, 0, 92, 98, 66, 66, 66, 98, 92, 64, 64}}, /* 112 */
{0, 12, {0, 0, 0, 0, 0, 58, 70, 66, 66, 66, 70, 58, 2, 2}}, /* 113 */
{0, 12, {0, 0, 0, 0, 0, 92, 98, 66, 64, 64, 64, 64, 0, 0}}, /* 114 */
{0, 12, {0, 0, 0, 0, 0, 60, 66, 32, 24, 4, 66, 60, 0, 0}}, /* 115 */
{0, 12, {0, 0, 16, 16, 16, 124, 16, 16, 16, 16, 18, 12, 0, 0}}, /* 116 */
{0, 12, {0, 0, 0, 0, 0, 66, 66, 66, 66, 66, 70, 58, 0, 0}}, /* 117 */
{0, 12, {0, 0, 0, 0, 0, 34, 34, 34, 20, 20, 8, 8, 0, 0}}, /* 118 */
{0, 12, {0, 0, 0, 0, 0, 34, 34, 42, 42, 42, 42, 20, 0, 0}}, /* 119 */
{0, 12, {0, 0, 0, 0, 0, 66, 66, 36, 24, 36, 66, 66, 0, 0}}, /* 120 */
{0, 12, {0, 0, 0, 0, 0, 66, 66, 66, 66, 70, 58, 2, 66, 60}}, /* 121 */
{0, 12, {0, 0, 0, 0, 0, 126, 4, 8, 16, 16, 32, 126, 0, 0}}, /* 122 */
{0, 12, {0, 6, 8, 8, 8, 8, 8, 16, 8, 8, 8, 8, 8, 6}}, /* 123 */
{0, 12, {0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}}, /* 124 */
{0, 12, {0, 48, 8, 8, 8, 8, 8, 4, 8, 8, 8, 8, 8, 48}}, /* 125 */
{0, 12, {0, 32, 82, 74, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, /* 126 */
{0, 12, {0, 90, 66, 0, 66, 66, 0, 66, 66, 0, 66, 90, 0, 0}} /* 127 */
};

61
tools/font.c Normal file
View File

@@ -0,0 +1,61 @@
/* $Id$ */
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_BITMAP_H
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv) {
FT_Library lib;
FT_Face face;
int i;
int ay = 0;
int ax = 0;
int sy = 0;
int sx = 0;
FT_Init_FreeType(&lib);
if(FT_New_Face(lib, argv[1], 0, &face)) {
fprintf(stderr, "bad 1\n");
return 1;
}
if(FT_Set_Pixel_Sizes(face, 0, atoi(argv[2]))) {
fprintf(stderr, "bad 2\n");
return 1;
}
printf("/* $Id$ */\n");
printf("#include <Mw/Milsko.h>\n");
printf("\n");
printf("MwFont MwFontData[] = {\n");
for(i = 0; i < 0x80; i++) {
int y, x;
FT_Bitmap bitmap;
unsigned char n;
if(FT_Load_Char(face, i, FT_LOAD_RENDER | FT_LOAD_COLOR)) {
continue;
}
FT_Bitmap_Init(&bitmap);
FT_Bitmap_Convert(lib, &face->glyph->bitmap, &bitmap, 1);
printf("\t{%d, %d, {", face->glyph->bitmap_left, face->glyph->bitmap_top);
for(y = 0; y < bitmap.rows; y++) {
n = 0;
for(x = 0; x < bitmap.width; x++) {
unsigned char b = bitmap.buffer[bitmap.width * y + x] ? 1 : 0;
n = n << 1;
n = n | b;
}
printf("%d%s", n, y == (bitmap.rows - 1) ? "" : ", ");
}
printf("}}%s /* %d */\n", i == (0x80 - 1) ? "" : ", ", i);
FT_Bitmap_Done(lib, &bitmap);
sx += face->glyph->advance.x >> 6;
}
printf("};\n");
}