add font generation & missing font flags
This commit is contained in:
@@ -1,6 +1,11 @@
|
|||||||
.PHONY: build run
|
.PHONY: build run fonts
|
||||||
|
|
||||||
all: ufb-test
|
all: fonts ufb-test
|
||||||
|
|
||||||
|
fonts: fontedit_35.c fontedit_45.c fontedit_57.c
|
||||||
|
tcc -run fontedit_35.c > font_35.inc.c || true
|
||||||
|
tcc -run fontedit_45.c > font_45.inc.c || true
|
||||||
|
tcc -run fontedit_57.c > font_57.inc.c || true
|
||||||
|
|
||||||
run: ufb-test
|
run: ufb-test
|
||||||
./ufb-test
|
./ufb-test
|
||||||
|
|||||||
@@ -16,9 +16,12 @@ void fb_text_P_or_RAM(fbpos_t x, fbpos_t y, const char *text, uint8_t flags, fbc
|
|||||||
|
|
||||||
uint8_t symw;
|
uint8_t symw;
|
||||||
uint8_t symh;
|
uint8_t symh;
|
||||||
if (flags & FONT_TINY) {
|
if (flags & FONT_4X5) {
|
||||||
symw = 4;
|
symw = 4;
|
||||||
symh = 5;
|
symh = 5;
|
||||||
|
} else if (flags & FONT_3X5) {
|
||||||
|
symw = 3;
|
||||||
|
symh = 5;
|
||||||
} else {
|
} else {
|
||||||
symw = 5;
|
symw = 5;
|
||||||
symh = 7;
|
symh = 7;
|
||||||
@@ -26,10 +29,13 @@ void fb_text_P_or_RAM(fbpos_t x, fbpos_t y, const char *text, uint8_t flags, fbc
|
|||||||
|
|
||||||
while ((uchar = Utf8Iterator_Next(&iter)).uint) {
|
while ((uchar = Utf8Iterator_Next(&iter)).uint) {
|
||||||
const uint8_t *data;
|
const uint8_t *data;
|
||||||
if (flags & FONT_TINY) {
|
if (flags & FONT_4X5) {
|
||||||
const font4x_bitmap_t *sym = font45_getsym(&uchar);
|
const font4x_bitmap_t *sym = font45_getsym(&uchar);
|
||||||
data = sym->data;
|
data = sym->data;
|
||||||
} else {
|
} else if (flags & FONT_3X5) {
|
||||||
|
const font3x_bitmap_t *sym = font35_getsym(&uchar);
|
||||||
|
data = sym->data;
|
||||||
|
} else{
|
||||||
const font5x_bitmap_t *sym = font57_getsym(&uchar);
|
const font5x_bitmap_t *sym = font57_getsym(&uchar);
|
||||||
data = sym->data;
|
data = sym->data;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,9 @@
|
|||||||
#include "framebuffer.h"
|
#include "framebuffer.h"
|
||||||
|
|
||||||
/// Use tiny font 5x4, supports only digits and select symbols
|
/// Use tiny font 5x4, supports only digits and select symbols
|
||||||
#define FONT_TINY 8
|
#define FONT_4X5 8
|
||||||
|
#define FONT_3X5 16
|
||||||
|
#define FONT_5X7 0 // default font
|
||||||
/// Use bold variant (each character is printed twice, 1px offset)
|
/// Use bold variant (each character is printed twice, 1px offset)
|
||||||
#define FONT_BOLD 1
|
#define FONT_BOLD 1
|
||||||
/// Print characters 2x wider
|
/// Print characters 2x wider
|
||||||
|
|||||||
@@ -3,8 +3,6 @@
|
|||||||
#include "progmem.h"
|
#include "progmem.h"
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
#define FONT_EXTRAS_START (0x7e - 0x20 + 1)
|
|
||||||
|
|
||||||
union utf_lookup {
|
union utf_lookup {
|
||||||
const char symbol[4];
|
const char symbol[4];
|
||||||
/// symbol as uint, but not decoded - just for matching!
|
/// symbol as uint, but not decoded - just for matching!
|
||||||
@@ -26,203 +24,58 @@ struct utf_glyph3x {
|
|||||||
font3x_bitmap_t graphic;
|
font3x_bitmap_t graphic;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define F57_NUM_ASCII 95
|
|
||||||
#define F57_ASCII_START 0x20
|
|
||||||
#define F57_ASCII_END 0x7e
|
|
||||||
|
|
||||||
// ASCII symbols are stored as bare graphic to reduce ROM size
|
#include "font_35.inc.c"
|
||||||
static const font5x_bitmap_t PROGMEM font57_ascii[F57_NUM_ASCII] = {
|
#include "font_45.inc.c"
|
||||||
{{0x00, 0x00, 0x00, 0x00, 0x00}}, // 0x20
|
#include "font_57.inc.c"
|
||||||
{{0x00, 0x00, 0x5f, 0x00, 0x00}}, // ! 0x21
|
|
||||||
{{0x00, 0x07, 0x00, 0x07, 0x00}}, // \" 0x22
|
|
||||||
{{0x14, 0x7f, 0x14, 0x7f, 0x14}}, // # 0x23
|
|
||||||
{{0x24, 0x2a, 0x7f, 0x2a, 0x12}}, // $ 0x24
|
|
||||||
{{0x23, 0x13, 0x08, 0x64, 0x62}}, // % 0x25
|
|
||||||
{{0x36, 0x49, 0x55, 0x22, 0x50}}, // & 0x26
|
|
||||||
{{0x00, 0x05, 0x03, 0x00, 0x00}}, // ' 0x27
|
|
||||||
{{0x00, 0x1c, 0x22, 0x41, 0x00}}, // ( 0x28
|
|
||||||
{{0x00, 0x41, 0x22, 0x1c, 0x00}}, // ) 0x29
|
|
||||||
{{0x14, 0x08, 0x3e, 0x08, 0x14}}, // * 0x2a
|
|
||||||
{{0x08, 0x08, 0x3e, 0x08, 0x08}}, // + 0x2b
|
|
||||||
{{0x00, 0x50, 0x30, 0x00, 0x00}}, // , 0x2c
|
|
||||||
{{0x08, 0x08, 0x08, 0x08, 0x08}}, // - 0x2d
|
|
||||||
{{0x00, 0x60, 0x60, 0x00, 0x00}}, // . 0x2e
|
|
||||||
{{0x20, 0x10, 0x08, 0x04, 0x02}}, // / 0x2f
|
|
||||||
{{0x3e, 0x51, 0x49, 0x45, 0x3e}}, // 0 0x30
|
|
||||||
{{0x00, 0x42, 0x7f, 0x40, 0x00}}, // 1 0x31
|
|
||||||
{{0x42, 0x61, 0x51, 0x49, 0x46}}, // 2 0x32
|
|
||||||
{{0x21, 0x41, 0x45, 0x4b, 0x31}}, // 3 0x33
|
|
||||||
{{0x18, 0x14, 0x12, 0x7f, 0x10}}, // 4 0x34
|
|
||||||
{{0x27, 0x45, 0x45, 0x45, 0x39}}, // 5 0x35
|
|
||||||
{{0x3c, 0x4a, 0x49, 0x49, 0x30}}, // 6 0x36
|
|
||||||
{{0x01, 0x71, 0x09, 0x05, 0x03}}, // 7 0x37
|
|
||||||
{{0x36, 0x49, 0x49, 0x49, 0x36}}, // 8 0x38
|
|
||||||
{{0x06, 0x49, 0x49, 0x29, 0x1e}}, // 9 0x39
|
|
||||||
{{0x00, 0x36, 0x36, 0x00, 0x00}}, // : 0x3a
|
|
||||||
{{0x00, 0x56, 0x36, 0x00, 0x00}}, // ; 0x3b
|
|
||||||
{{0x08, 0x14, 0x22, 0x41, 0x00}}, // < 0x3c
|
|
||||||
{{0x14, 0x14, 0x14, 0x14, 0x14}}, // = 0x3d
|
|
||||||
{{0x00, 0x41, 0x22, 0x14, 0x08}}, // > 0x3e
|
|
||||||
{{0x02, 0x01, 0x51, 0x09, 0x06}}, // ? 0x3f
|
|
||||||
{{0x32, 0x49, 0x79, 0x41, 0x3e}}, // @ 0x40
|
|
||||||
{{0x7e, 0x11, 0x11, 0x11, 0x7e}}, // A 0x41
|
|
||||||
{{0x7f, 0x49, 0x49, 0x49, 0x36}}, // B 0x42
|
|
||||||
{{0x3e, 0x41, 0x41, 0x41, 0x22}}, // C 0x43
|
|
||||||
{{0x7f, 0x41, 0x41, 0x22, 0x1c}}, // D 0x44
|
|
||||||
{{0x7f, 0x49, 0x49, 0x49, 0x41}}, // E 0x45
|
|
||||||
{{0x7f, 0x09, 0x09, 0x09, 0x01}}, // F 0x46
|
|
||||||
{{0x3e, 0x41, 0x49, 0x49, 0x7a}}, // G 0x47
|
|
||||||
{{0x7f, 0x08, 0x08, 0x08, 0x7f}}, // H 0x48
|
|
||||||
{{0x00, 0x41, 0x7f, 0x41, 0x00}}, // I 0x49
|
|
||||||
{{0x20, 0x40, 0x41, 0x3f, 0x01}}, // J 0x4a
|
|
||||||
{{0x7f, 0x08, 0x14, 0x22, 0x41}}, // K 0x4b
|
|
||||||
{{0x7f, 0x40, 0x40, 0x40, 0x40}}, // L 0x4c
|
|
||||||
{{0x7f, 0x02, 0x0c, 0x02, 0x7f}}, // M 0x4d
|
|
||||||
{{0x7f, 0x04, 0x08, 0x10, 0x7f}}, // N 0x4e
|
|
||||||
{{0x3e, 0x41, 0x41, 0x41, 0x3e}}, // O 0x4f
|
|
||||||
{{0x7f, 0x09, 0x09, 0x09, 0x06}}, // P 0x50
|
|
||||||
{{0x3e, 0x41, 0x51, 0x21, 0x5e}}, // Q 0x51
|
|
||||||
{{0x7f, 0x09, 0x19, 0x29, 0x46}}, // R 0x52
|
|
||||||
{{0x46, 0x49, 0x49, 0x49, 0x31}}, // S 0x53
|
|
||||||
{{0x01, 0x01, 0x7f, 0x01, 0x01}}, // T 0x54
|
|
||||||
{{0x3f, 0x40, 0x40, 0x40, 0x3f}}, // U 0x55
|
|
||||||
{{0x1f, 0x20, 0x40, 0x20, 0x1f}}, // V 0x56
|
|
||||||
{{0x3f, 0x40, 0x38, 0x40, 0x3f}}, // W 0x57
|
|
||||||
{{0x63, 0x14, 0x08, 0x14, 0x63}}, // X 0x58
|
|
||||||
{{0x07, 0x08, 0x70, 0x08, 0x07}}, // Y 0x59
|
|
||||||
{{0x61, 0x51, 0x49, 0x45, 0x43}}, // Z 0x5a
|
|
||||||
{{0x00, 0x7f, 0x41, 0x41, 0x00}}, // [ 0x5b
|
|
||||||
{{0x02, 0x04, 0x08, 0x10, 0x20}}, // \\ 0x5c
|
|
||||||
{{0x00, 0x41, 0x41, 0x7f, 0x00}}, // ] 0x5d
|
|
||||||
{{0x04, 0x02, 0x01, 0x02, 0x04}}, // ^ 0x5e
|
|
||||||
{{0x40, 0x40, 0x40, 0x40, 0x40}}, // _ 0x5f
|
|
||||||
{{0x00, 0x01, 0x02, 0x04, 0x00}}, // ` 0x60
|
|
||||||
{{0x20, 0x54, 0x54, 0x54, 0x78}}, // a 0x61
|
|
||||||
{{0x7f, 0x48, 0x44, 0x44, 0x38}}, // b 0x62
|
|
||||||
{{0x38, 0x44, 0x44, 0x44, 0x20}}, // c 0x63
|
|
||||||
{{0x38, 0x44, 0x44, 0x48, 0x7f}}, // d 0x64
|
|
||||||
{{0x38, 0x54, 0x54, 0x54, 0x18}}, // e 0x65
|
|
||||||
{{0x08, 0x7e, 0x09, 0x01, 0x02}}, // f 0x66
|
|
||||||
{{0x0c, 0x52, 0x52, 0x52, 0x3e}}, // g 0x67
|
|
||||||
{{0x7f, 0x08, 0x04, 0x04, 0x78}}, // h 0x68
|
|
||||||
{{0x00, 0x44, 0x7d, 0x40, 0x00}}, // i 0x69
|
|
||||||
{{0x20, 0x40, 0x44, 0x3d, 0x00}}, // j 0x6a
|
|
||||||
{{0x7f, 0x10, 0x28, 0x44, 0x00}}, // k 0x6b
|
|
||||||
{{0x00, 0x41, 0x7f, 0x40, 0x00}}, // l 0x6c
|
|
||||||
{{0x7c, 0x04, 0x18, 0x04, 0x78}}, // m 0x6d
|
|
||||||
{{0x7c, 0x08, 0x04, 0x04, 0x78}}, // n 0x6e
|
|
||||||
{{0x38, 0x44, 0x44, 0x44, 0x38}}, // o 0x6f
|
|
||||||
{{0x7c, 0x14, 0x14, 0x14, 0x08}}, // p 0x70
|
|
||||||
{{0x08, 0x14, 0x14, 0x18, 0x7c}}, // q 0x71
|
|
||||||
{{0x7c, 0x08, 0x04, 0x04, 0x08}}, // r 0x72
|
|
||||||
{{0x48, 0x54, 0x54, 0x54, 0x20}}, // s 0x73
|
|
||||||
{{0x04, 0x3f, 0x44, 0x40, 0x20}}, // t 0x74
|
|
||||||
{{0x3c, 0x40, 0x40, 0x20, 0x7c}}, // u 0x75
|
|
||||||
{{0x1c, 0x20, 0x40, 0x20, 0x1c}}, // v 0x76
|
|
||||||
{{0x3c, 0x40, 0x30, 0x40, 0x3c}}, // w 0x77
|
|
||||||
{{0x44, 0x28, 0x10, 0x28, 0x44}}, // x 0x78
|
|
||||||
{{0x0c, 0x50, 0x50, 0x50, 0x3c}}, // y 0x79
|
|
||||||
{{0x44, 0x64, 0x54, 0x4c, 0x44}}, // z 0x7a
|
|
||||||
{{0x00, 0x08, 0x36, 0x41, 0x00}}, // { 0x7b
|
|
||||||
{{0x00, 0x00, 0x7f, 0x00, 0x00}}, // | 0x7c
|
|
||||||
{{0x00, 0x41, 0x36, 0x08, 0x00}}, // } 0x7d
|
|
||||||
{{0x10, 0x08, 0x08, 0x10, 0x08}}, // ~ 0x7e
|
|
||||||
};
|
|
||||||
|
|
||||||
#define F57_NUM_EXTRA 16
|
|
||||||
|
|
||||||
// utf8 characters list ending with empty struct
|
#define ASCII_START 0x20
|
||||||
static const struct utf_glyph5x PROGMEM font57_extra[F57_NUM_EXTRA] = {
|
#define ASCII_END 0x7e
|
||||||
{.symbol="�", {{0xFE, 0x82, 0x82, 0x82, 0xFE}}}, // box - error code
|
|
||||||
{.symbol="×", {{0x22, 0x14, 0x08, 0x14, 0x22}}}, // cross
|
|
||||||
{.symbol="↑", {{0x08, 0x04, 0x3e, 0x04, 0x08}}}, // arrow_up
|
|
||||||
{.symbol="↓", {{0x08, 0x10, 0x3e, 0x10, 0x08}}}, // arrow_down
|
|
||||||
{.symbol="←", {{0x08, 0x1c, 0x2a, 0x08, 0x08}}}, // arrow_left
|
|
||||||
{.symbol="→", {{0x08, 0x08, 0x2a, 0x1c, 0x08}}}, // arrow_right
|
|
||||||
{.symbol="⏰", {{0x1c, 0x22, 0x2e, 0x2a, 0x1c}}}, // clock
|
|
||||||
{.symbol="⌛", {{0x63, 0x55, 0x4d, 0x55, 0x63}}}, // hourglass
|
|
||||||
{.symbol="☸", {{0x1c, 0x22, 0x2a, 0x22, 0x1c}}}, // wheel
|
|
||||||
{.symbol="⏎", {{0x10, 0x38, 0x54, 0x10, 0x1e}}}, // return
|
|
||||||
{.symbol="🌡", {{0x60, 0x9e, 0x81, 0x9e, 0x6a}}}, // thermometer
|
|
||||||
{.symbol="°", {{0x00, 0x07, 0x05, 0x07, 0x00}}}, // degree
|
|
||||||
{.symbol="μ", {{0x7C, 0x20, 0x20, 0x10, 0x3C}}}, // micro
|
|
||||||
{.symbol="🔙", {{0x04, 0x4e, 0x55, 0x44, 0x38}}}, // back
|
|
||||||
{.symbol="▶", {{0x7f, 0x3e, 0x1c, 0x08, 0x00}}}, // tri_right
|
|
||||||
{.symbol="◀", {{0x00, 0x08, 0x1c, 0x3e, 0x7f}}}, // tri_left
|
|
||||||
};
|
|
||||||
|
|
||||||
#define F45_NUM_ASCII
|
#define FONT_GETSYM_IMPL(rettype, symtype, fontname) \
|
||||||
static const font4x_bitmap_t PROGMEM font45_ascii[F45_NUM_ASCII] = {
|
const rettype *fontname##_getsym(const struct Utf8Char *ch) { \
|
||||||
{{0x0e, 0x11, 0x11, 0x0e}}, // 0
|
const uint8_t byte0 = ch->bytes[0]; \
|
||||||
{{0x04, 0x12, 0x1f, 0x10}}, // 1
|
if (byte0 < ASCII_START) { \
|
||||||
{{0x12, 0x19, 0x15, 0x12}}, // 2
|
goto fail; \
|
||||||
{{0x0a, 0x11, 0x15, 0x0a}}, // 3
|
} \
|
||||||
{{0x07, 0x04, 0x1e, 0x04}}, // 4
|
if (byte0 <= ASCII_END) { \
|
||||||
{{0x17, 0x15, 0x15, 0x09}}, // 5
|
return &fontname##_ascii[byte0 - ASCII_START]; \
|
||||||
{{0x0e, 0x15, 0x15, 0x09}}, // 6
|
} \
|
||||||
{{0x11, 0x09, 0x05, 0x03}}, // 7
|
for (uint8_t i = 0; i < sizeof(fontname##_extra) / sizeof(fontname##_extra[0]); i++) { \
|
||||||
{{0x0a, 0x15, 0x15, 0x0a}}, // 8
|
const struct symtype *sym = &fontname##_extra[i]; \
|
||||||
{{0x12, 0x15, 0x15, 0x0a}}, // 9
|
const uint32_t table_ch = pgm_read_dword(&sym->utf.uint); \
|
||||||
{{0x00, 0x00, 0x00, 0x00}}, // ' '
|
if (table_ch == ch->uint) { \
|
||||||
};
|
return &sym->graphic; \
|
||||||
|
} \
|
||||||
|
} \
|
||||||
|
fail: return &fontname ## _extra[0].graphic; \
|
||||||
|
}
|
||||||
|
|
||||||
#define F45_NUM_EXTRA 7
|
|
||||||
static const struct utf_glyph4x PROGMEM font45_extra[F45_NUM_EXTRA] = {
|
|
||||||
{.symbol="�", {{0x1f, 0x11, 0x11, 0x1f}}}, // box - error code
|
|
||||||
{.symbol="°", {{0x02, 0x05, 0x02, 0x00}}},
|
|
||||||
{.symbol="-", {{0x00, 0x04, 0x04, 0x04}}},
|
|
||||||
{.symbol="C", {{0x0e, 0x11, 0x11, 0x0a}}},
|
|
||||||
{.symbol="P", {{0x1f, 0x05, 0x05, 0x02}}},
|
|
||||||
{.symbol="M", {{0x1f, 0x01, 0x02, 0x1f}}},
|
|
||||||
{.symbol=".", {{0x00, 0x18, 0x18, 0x00}}},
|
|
||||||
};
|
|
||||||
|
|
||||||
|
FONT_GETSYM_IMPL(font5x_bitmap_t, utf_glyph5x, font57)
|
||||||
|
FONT_GETSYM_IMPL(font4x_bitmap_t, utf_glyph4x, font45)
|
||||||
|
FONT_GETSYM_IMPL(font3x_bitmap_t, utf_glyph3x, font35)
|
||||||
|
|
||||||
|
|
||||||
|
#if 0
|
||||||
const font5x_bitmap_t *font57_getsym(const struct Utf8Char *ch)
|
const font5x_bitmap_t *font57_getsym(const struct Utf8Char *ch)
|
||||||
{
|
{
|
||||||
const uint8_t byte0 = ch->bytes[0];
|
const uint8_t byte0 = ch->bytes[0];
|
||||||
if (byte0 < F57_ASCII_START) {
|
if (byte0 < ASCII_START) {
|
||||||
// low ASCII is not supported.
|
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
if (byte0 <= ASCII_END) {
|
||||||
if (byte0 <= F57_ASCII_END) {
|
return &font57_ascii[byte0 - ASCII_START];
|
||||||
// valid ASCII at hard positions.
|
|
||||||
// In this case only the first byte is significant.
|
|
||||||
return &font57_ascii[byte0 - F57_ASCII_START];
|
|
||||||
}
|
}
|
||||||
|
for (uint8_t i = 0; i < sizeof(font57_extra) / sizeof(font57_extra[0]); i++) {
|
||||||
// search UTF8
|
|
||||||
for (uint8_t i = 0; i < F57_NUM_EXTRA; i++) {
|
|
||||||
const struct utf_glyph5x *sym = &font57_extra[i];
|
const struct utf_glyph5x *sym = &font57_extra[i];
|
||||||
const uint32_t table_ch = pgm_read_dword(&sym->uint);
|
const uint32_t table_ch = pgm_read_dword(&sym->uint);
|
||||||
if (table_ch == ch->uint) {
|
if (table_ch == ch->uint) {
|
||||||
return &sym->graphic;
|
return &sym->graphic;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
fail:
|
||||||
fail:
|
|
||||||
return &font57_extra[0].graphic; // replacement character
|
return &font57_extra[0].graphic; // replacement character
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
const font4x_bitmap_t *font45_getsym(const struct Utf8Char *ch)
|
|
||||||
{
|
|
||||||
const uint8_t byte0 = ch->bytes[0];
|
|
||||||
if (byte0 == ' ') {
|
|
||||||
return &font45_ascii[10];
|
|
||||||
}
|
|
||||||
if (byte0 >= '0' && byte0 <= '9') {
|
|
||||||
return &font45_ascii[byte0 - '0'];
|
|
||||||
}
|
|
||||||
|
|
||||||
// search UTF8
|
|
||||||
for (uint8_t i = 0; i < F45_NUM_EXTRA; i++) {
|
|
||||||
const struct utf_glyph4x *sym = &font45_extra[i];
|
|
||||||
const uint32_t table_ch = pgm_read_dword(&sym->uint);
|
|
||||||
if (table_ch == ch->uint) {
|
|
||||||
return &sym->graphic;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fail:
|
|
||||||
return &font45_extra[0].graphic; // replacement character
|
|
||||||
}
|
|
||||||
|
|||||||
+102
@@ -0,0 +1,102 @@
|
|||||||
|
static const font3x_bitmap_t PROGMEM font35_ascii[] = {
|
||||||
|
{{0x00, 0x00, 0x00}},
|
||||||
|
{{0x00, 0x17, 0x00}},
|
||||||
|
{{0x03, 0x00, 0x03}},
|
||||||
|
{{0x0a, 0x1f, 0x0a}},
|
||||||
|
{{0x16, 0x1f, 0x1a}},
|
||||||
|
{{0x19, 0x04, 0x13}},
|
||||||
|
{{0x1d, 0x17, 0x19}},
|
||||||
|
{{0x00, 0x03, 0x00}},
|
||||||
|
{{0x0e, 0x11, 0x00}},
|
||||||
|
{{0x11, 0x0e, 0x00}},
|
||||||
|
{{0x05, 0x02, 0x05}},
|
||||||
|
{{0x04, 0x0e, 0x04}},
|
||||||
|
{{0x10, 0x08, 0x00}},
|
||||||
|
{{0x04, 0x04, 0x04}},
|
||||||
|
{{0x18, 0x18, 0x00}},
|
||||||
|
{{0x18, 0x04, 0x03}},
|
||||||
|
{{0x1f, 0x11, 0x1f}},
|
||||||
|
{{0x12, 0x1f, 0x10}},
|
||||||
|
{{0x1d, 0x15, 0x17}},
|
||||||
|
{{0x11, 0x15, 0x1f}},
|
||||||
|
{{0x07, 0x04, 0x1f}},
|
||||||
|
{{0x17, 0x15, 0x1d}},
|
||||||
|
{{0x1f, 0x15, 0x1d}},
|
||||||
|
{{0x03, 0x01, 0x1f}},
|
||||||
|
{{0x1f, 0x15, 0x1f}},
|
||||||
|
{{0x17, 0x15, 0x1f}},
|
||||||
|
{{0x00, 0x0a, 0x00}},
|
||||||
|
{{0x10, 0x0a, 0x00}},
|
||||||
|
{{0x04, 0x0a, 0x11}},
|
||||||
|
{{0x0a, 0x0a, 0x0a}},
|
||||||
|
{{0x11, 0x0a, 0x04}},
|
||||||
|
{{0x01, 0x15, 0x07}},
|
||||||
|
{{0x0f, 0x11, 0x17}},
|
||||||
|
{{0x1f, 0x05, 0x1f}},
|
||||||
|
{{0x1f, 0x15, 0x1e}},
|
||||||
|
{{0x1f, 0x11, 0x11}},
|
||||||
|
{{0x1f, 0x11, 0x0e}},
|
||||||
|
{{0x1f, 0x15, 0x11}},
|
||||||
|
{{0x1f, 0x05, 0x01}},
|
||||||
|
{{0x1f, 0x11, 0x1d}},
|
||||||
|
{{0x1f, 0x04, 0x1f}},
|
||||||
|
{{0x11, 0x1f, 0x11}},
|
||||||
|
{{0x19, 0x11, 0x1f}},
|
||||||
|
{{0x1f, 0x04, 0x1b}},
|
||||||
|
{{0x1f, 0x10, 0x10}},
|
||||||
|
{{0x1f, 0x03, 0x1f}},
|
||||||
|
{{0x1f, 0x01, 0x1e}},
|
||||||
|
{{0x1f, 0x11, 0x1f}},
|
||||||
|
{{0x1f, 0x05, 0x07}},
|
||||||
|
{{0x0f, 0x09, 0x1f}},
|
||||||
|
{{0x1f, 0x0d, 0x17}},
|
||||||
|
{{0x17, 0x15, 0x1d}},
|
||||||
|
{{0x01, 0x1f, 0x01}},
|
||||||
|
{{0x1f, 0x10, 0x1f}},
|
||||||
|
{{0x0f, 0x10, 0x0f}},
|
||||||
|
{{0x1f, 0x18, 0x1f}},
|
||||||
|
{{0x1b, 0x04, 0x1b}},
|
||||||
|
{{0x07, 0x1c, 0x07}},
|
||||||
|
{{0x19, 0x15, 0x13}},
|
||||||
|
{{0x00, 0x1f, 0x11}},
|
||||||
|
{{0x03, 0x04, 0x18}},
|
||||||
|
{{0x11, 0x1f, 0x00}},
|
||||||
|
{{0x02, 0x01, 0x02}},
|
||||||
|
{{0x10, 0x10, 0x10}},
|
||||||
|
{{0x01, 0x02, 0x00}},
|
||||||
|
{{0x1d, 0x15, 0x1e}},
|
||||||
|
{{0x1f, 0x14, 0x1c}},
|
||||||
|
{{0x1c, 0x14, 0x14}},
|
||||||
|
{{0x1c, 0x14, 0x1f}},
|
||||||
|
{{0x0f, 0x15, 0x17}},
|
||||||
|
{{0x04, 0x1f, 0x05}},
|
||||||
|
{{0x17, 0x15, 0x0f}},
|
||||||
|
{{0x1f, 0x04, 0x1c}},
|
||||||
|
{{0x14, 0x1d, 0x10}},
|
||||||
|
{{0x18, 0x10, 0x1d}},
|
||||||
|
{{0x1f, 0x08, 0x14}},
|
||||||
|
{{0x11, 0x1f, 0x10}},
|
||||||
|
{{0x1c, 0x0c, 0x1c}},
|
||||||
|
{{0x1c, 0x04, 0x18}},
|
||||||
|
{{0x1c, 0x14, 0x1c}},
|
||||||
|
{{0x1e, 0x0a, 0x0e}},
|
||||||
|
{{0x0e, 0x0a, 0x1e}},
|
||||||
|
{{0x1c, 0x04, 0x04}},
|
||||||
|
{{0x16, 0x16, 0x1a}},
|
||||||
|
{{0x02, 0x1f, 0x12}},
|
||||||
|
{{0x1e, 0x10, 0x1e}},
|
||||||
|
{{0x0e, 0x10, 0x0e}},
|
||||||
|
{{0x1c, 0x18, 0x1c}},
|
||||||
|
{{0x14, 0x08, 0x14}},
|
||||||
|
{{0x16, 0x14, 0x1e}},
|
||||||
|
{{0x1a, 0x16, 0x16}},
|
||||||
|
{{0x04, 0x0e, 0x11}},
|
||||||
|
{{0x00, 0x1f, 0x00}},
|
||||||
|
{{0x11, 0x0e, 0x04}},
|
||||||
|
{{0x04, 0x02, 0x06}},
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct utf_glyph3x PROGMEM font35_extra[] = {
|
||||||
|
{.utf={.symbol="�"}, {{0x1f, 0x1f, 0x1f}}},
|
||||||
|
{.utf={.symbol="°"}, {{0x07, 0x05, 0x07}}},
|
||||||
|
};
|
||||||
+102
@@ -0,0 +1,102 @@
|
|||||||
|
static const font4x_bitmap_t PROGMEM font45_ascii[] = {
|
||||||
|
{{0x00, 0x00, 0x00, 0x00}},
|
||||||
|
{{0x00, 0x17, 0x17, 0x00}},
|
||||||
|
{{0x03, 0x00, 0x03, 0x00}},
|
||||||
|
{{0x0a, 0x1f, 0x0a, 0x1f}},
|
||||||
|
{{0x12, 0x1d, 0x17, 0x09}},
|
||||||
|
{{0x12, 0x08, 0x04, 0x12}},
|
||||||
|
{{0x1f, 0x15, 0x1f, 0x14}},
|
||||||
|
{{0x00, 0x03, 0x00, 0x00}},
|
||||||
|
{{0x00, 0x0e, 0x11, 0x00}},
|
||||||
|
{{0x00, 0x11, 0x0e, 0x00}},
|
||||||
|
{{0x05, 0x02, 0x02, 0x05}},
|
||||||
|
{{0x04, 0x0e, 0x04, 0x00}},
|
||||||
|
{{0x00, 0x10, 0x08, 0x00}},
|
||||||
|
{{0x00, 0x04, 0x04, 0x04}},
|
||||||
|
{{0x00, 0x18, 0x18, 0x00}},
|
||||||
|
{{0x10, 0x08, 0x04, 0x02}},
|
||||||
|
{{0x0e, 0x11, 0x11, 0x0e}},
|
||||||
|
{{0x04, 0x12, 0x1f, 0x10}},
|
||||||
|
{{0x12, 0x19, 0x15, 0x12}},
|
||||||
|
{{0x0a, 0x11, 0x15, 0x0a}},
|
||||||
|
{{0x07, 0x04, 0x1e, 0x04}},
|
||||||
|
{{0x17, 0x15, 0x15, 0x09}},
|
||||||
|
{{0x0e, 0x15, 0x15, 0x09}},
|
||||||
|
{{0x11, 0x09, 0x05, 0x03}},
|
||||||
|
{{0x0a, 0x15, 0x15, 0x0a}},
|
||||||
|
{{0x12, 0x15, 0x15, 0x0a}},
|
||||||
|
{{0x00, 0x00, 0x0a, 0x00}},
|
||||||
|
{{0x00, 0x10, 0x0a, 0x00}},
|
||||||
|
{{0x04, 0x0a, 0x11, 0x00}},
|
||||||
|
{{0x0a, 0x0a, 0x0a, 0x00}},
|
||||||
|
{{0x11, 0x0a, 0x04, 0x00}},
|
||||||
|
{{0x01, 0x01, 0x15, 0x02}},
|
||||||
|
{{0x1f, 0x11, 0x17, 0x16}},
|
||||||
|
{{0x1e, 0x05, 0x05, 0x1e}},
|
||||||
|
{{0x1f, 0x15, 0x15, 0x0a}},
|
||||||
|
{{0x0e, 0x11, 0x11, 0x0a}},
|
||||||
|
{{0x1f, 0x11, 0x11, 0x0e}},
|
||||||
|
{{0x1f, 0x15, 0x15, 0x11}},
|
||||||
|
{{0x1f, 0x05, 0x05, 0x01}},
|
||||||
|
{{0x0e, 0x11, 0x15, 0x0d}},
|
||||||
|
{{0x1f, 0x04, 0x04, 0x1f}},
|
||||||
|
{{0x00, 0x11, 0x1f, 0x11}},
|
||||||
|
{{0x09, 0x11, 0x11, 0x0f}},
|
||||||
|
{{0x1f, 0x04, 0x0a, 0x11}},
|
||||||
|
{{0x1f, 0x10, 0x10, 0x10}},
|
||||||
|
{{0x1f, 0x03, 0x01, 0x1f}},
|
||||||
|
{{0x1f, 0x02, 0x04, 0x1f}},
|
||||||
|
{{0x0e, 0x11, 0x11, 0x0e}},
|
||||||
|
{{0x1f, 0x05, 0x05, 0x02}},
|
||||||
|
{{0x0e, 0x11, 0x19, 0x1e}},
|
||||||
|
{{0x1f, 0x05, 0x0d, 0x12}},
|
||||||
|
{{0x12, 0x15, 0x15, 0x09}},
|
||||||
|
{{0x01, 0x1f, 0x01, 0x00}},
|
||||||
|
{{0x0f, 0x10, 0x10, 0x0f}},
|
||||||
|
{{0x07, 0x08, 0x10, 0x1f}},
|
||||||
|
{{0x1f, 0x08, 0x18, 0x1f}},
|
||||||
|
{{0x1b, 0x04, 0x0c, 0x13}},
|
||||||
|
{{0x03, 0x1c, 0x04, 0x03}},
|
||||||
|
{{0x19, 0x15, 0x15, 0x13}},
|
||||||
|
{{0x00, 0x1f, 0x11, 0x00}},
|
||||||
|
{{0x02, 0x04, 0x08, 0x10}},
|
||||||
|
{{0x00, 0x11, 0x1f, 0x00}},
|
||||||
|
{{0x02, 0x01, 0x02, 0x00}},
|
||||||
|
{{0x10, 0x10, 0x10, 0x10}},
|
||||||
|
{{0x00, 0x01, 0x02, 0x00}},
|
||||||
|
{{0x19, 0x15, 0x15, 0x1e}},
|
||||||
|
{{0x1f, 0x14, 0x14, 0x08}},
|
||||||
|
{{0x0c, 0x12, 0x12, 0x12}},
|
||||||
|
{{0x08, 0x14, 0x14, 0x1f}},
|
||||||
|
{{0x0e, 0x15, 0x15, 0x16}},
|
||||||
|
{{0x04, 0x1e, 0x05, 0x01}},
|
||||||
|
{{0x13, 0x15, 0x15, 0x0f}},
|
||||||
|
{{0x1f, 0x04, 0x04, 0x18}},
|
||||||
|
{{0x00, 0x14, 0x1d, 0x10}},
|
||||||
|
{{0x18, 0x10, 0x1d, 0x00}},
|
||||||
|
{{0x1f, 0x08, 0x14, 0x12}},
|
||||||
|
{{0x11, 0x1f, 0x10, 0x00}},
|
||||||
|
{{0x1e, 0x06, 0x06, 0x1e}},
|
||||||
|
{{0x1e, 0x02, 0x02, 0x1c}},
|
||||||
|
{{0x0c, 0x12, 0x12, 0x0c}},
|
||||||
|
{{0x1f, 0x05, 0x05, 0x02}},
|
||||||
|
{{0x02, 0x05, 0x05, 0x1f}},
|
||||||
|
{{0x1e, 0x04, 0x02, 0x06}},
|
||||||
|
{{0x10, 0x16, 0x1a, 0x02}},
|
||||||
|
{{0x02, 0x0f, 0x12, 0x10}},
|
||||||
|
{{0x0e, 0x10, 0x10, 0x1e}},
|
||||||
|
{{0x06, 0x08, 0x10, 0x0e}},
|
||||||
|
{{0x1e, 0x18, 0x18, 0x1e}},
|
||||||
|
{{0x12, 0x0c, 0x0c, 0x12}},
|
||||||
|
{{0x17, 0x14, 0x14, 0x0f}},
|
||||||
|
{{0x12, 0x1a, 0x16, 0x12}},
|
||||||
|
{{0x00, 0x04, 0x1f, 0x11}},
|
||||||
|
{{0x00, 0x00, 0x1f, 0x00}},
|
||||||
|
{{0x00, 0x11, 0x1f, 0x04}},
|
||||||
|
{{0x02, 0x04, 0x02, 0x04}},
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct utf_glyph4x PROGMEM font45_extra[] = {
|
||||||
|
{.utf={.symbol="�"}, {{0x1f, 0x11, 0x11, 0x1f}}},
|
||||||
|
{.utf={.symbol="°"}, {{0x07, 0x05, 0x07, 0x00}}},
|
||||||
|
};
|
||||||
+116
@@ -0,0 +1,116 @@
|
|||||||
|
static const font5x_bitmap_t PROGMEM font57_ascii[] = {
|
||||||
|
{{0x00, 0x00, 0x00, 0x00, 0x00}},
|
||||||
|
{{0x00, 0x00, 0x5f, 0x00, 0x00}},
|
||||||
|
{{0x00, 0x07, 0x00, 0x07, 0x00}},
|
||||||
|
{{0x14, 0x7f, 0x14, 0x7f, 0x14}},
|
||||||
|
{{0x24, 0x2a, 0x7f, 0x2a, 0x12}},
|
||||||
|
{{0x23, 0x13, 0x08, 0x64, 0x62}},
|
||||||
|
{{0x36, 0x49, 0x55, 0x22, 0x50}},
|
||||||
|
{{0x00, 0x05, 0x03, 0x00, 0x00}},
|
||||||
|
{{0x00, 0x1c, 0x22, 0x41, 0x00}},
|
||||||
|
{{0x00, 0x41, 0x22, 0x1c, 0x00}},
|
||||||
|
{{0x14, 0x08, 0x3e, 0x08, 0x14}},
|
||||||
|
{{0x08, 0x08, 0x3e, 0x08, 0x08}},
|
||||||
|
{{0x00, 0x50, 0x30, 0x00, 0x00}},
|
||||||
|
{{0x08, 0x08, 0x08, 0x08, 0x08}},
|
||||||
|
{{0x00, 0x60, 0x60, 0x00, 0x00}},
|
||||||
|
{{0x20, 0x10, 0x08, 0x04, 0x02}},
|
||||||
|
{{0x3e, 0x51, 0x49, 0x45, 0x3e}},
|
||||||
|
{{0x00, 0x42, 0x7f, 0x40, 0x00}},
|
||||||
|
{{0x42, 0x61, 0x51, 0x49, 0x46}},
|
||||||
|
{{0x21, 0x41, 0x45, 0x4b, 0x31}},
|
||||||
|
{{0x18, 0x14, 0x12, 0x7f, 0x10}},
|
||||||
|
{{0x27, 0x45, 0x45, 0x45, 0x39}},
|
||||||
|
{{0x3c, 0x4a, 0x49, 0x49, 0x30}},
|
||||||
|
{{0x01, 0x71, 0x09, 0x05, 0x03}},
|
||||||
|
{{0x36, 0x49, 0x49, 0x49, 0x36}},
|
||||||
|
{{0x06, 0x49, 0x49, 0x29, 0x1e}},
|
||||||
|
{{0x00, 0x36, 0x36, 0x00, 0x00}},
|
||||||
|
{{0x00, 0x56, 0x36, 0x00, 0x00}},
|
||||||
|
{{0x08, 0x14, 0x22, 0x41, 0x00}},
|
||||||
|
{{0x14, 0x14, 0x14, 0x14, 0x14}},
|
||||||
|
{{0x00, 0x41, 0x22, 0x14, 0x08}},
|
||||||
|
{{0x02, 0x01, 0x51, 0x09, 0x06}},
|
||||||
|
{{0x32, 0x49, 0x79, 0x41, 0x3e}},
|
||||||
|
{{0x7e, 0x11, 0x11, 0x11, 0x7e}},
|
||||||
|
{{0x7f, 0x49, 0x49, 0x49, 0x36}},
|
||||||
|
{{0x3e, 0x41, 0x41, 0x41, 0x22}},
|
||||||
|
{{0x7f, 0x41, 0x41, 0x22, 0x1c}},
|
||||||
|
{{0x7f, 0x49, 0x49, 0x49, 0x41}},
|
||||||
|
{{0x7f, 0x09, 0x09, 0x09, 0x01}},
|
||||||
|
{{0x3e, 0x41, 0x49, 0x49, 0x7a}},
|
||||||
|
{{0x7f, 0x08, 0x08, 0x08, 0x7f}},
|
||||||
|
{{0x00, 0x41, 0x7f, 0x41, 0x00}},
|
||||||
|
{{0x20, 0x40, 0x41, 0x3f, 0x01}},
|
||||||
|
{{0x7f, 0x08, 0x14, 0x22, 0x41}},
|
||||||
|
{{0x7f, 0x40, 0x40, 0x40, 0x40}},
|
||||||
|
{{0x7f, 0x02, 0x0c, 0x02, 0x7f}},
|
||||||
|
{{0x7f, 0x04, 0x08, 0x10, 0x7f}},
|
||||||
|
{{0x3e, 0x41, 0x41, 0x41, 0x3e}},
|
||||||
|
{{0x7f, 0x09, 0x09, 0x09, 0x06}},
|
||||||
|
{{0x3e, 0x41, 0x51, 0x21, 0x5e}},
|
||||||
|
{{0x7f, 0x09, 0x19, 0x29, 0x46}},
|
||||||
|
{{0x46, 0x49, 0x49, 0x49, 0x31}},
|
||||||
|
{{0x01, 0x01, 0x7f, 0x01, 0x01}},
|
||||||
|
{{0x3f, 0x40, 0x40, 0x40, 0x3f}},
|
||||||
|
{{0x1f, 0x20, 0x40, 0x20, 0x1f}},
|
||||||
|
{{0x3f, 0x40, 0x38, 0x40, 0x3f}},
|
||||||
|
{{0x63, 0x14, 0x08, 0x14, 0x63}},
|
||||||
|
{{0x07, 0x08, 0x70, 0x08, 0x07}},
|
||||||
|
{{0x61, 0x51, 0x49, 0x45, 0x43}},
|
||||||
|
{{0x00, 0x7f, 0x41, 0x41, 0x00}},
|
||||||
|
{{0x02, 0x04, 0x08, 0x10, 0x20}},
|
||||||
|
{{0x00, 0x41, 0x41, 0x7f, 0x00}},
|
||||||
|
{{0x04, 0x02, 0x01, 0x02, 0x04}},
|
||||||
|
{{0x40, 0x40, 0x40, 0x40, 0x40}},
|
||||||
|
{{0x00, 0x01, 0x02, 0x04, 0x00}},
|
||||||
|
{{0x20, 0x54, 0x54, 0x54, 0x78}},
|
||||||
|
{{0x7f, 0x48, 0x44, 0x44, 0x38}},
|
||||||
|
{{0x38, 0x44, 0x44, 0x44, 0x20}},
|
||||||
|
{{0x38, 0x44, 0x44, 0x48, 0x7f}},
|
||||||
|
{{0x38, 0x54, 0x54, 0x54, 0x18}},
|
||||||
|
{{0x08, 0x7e, 0x09, 0x01, 0x02}},
|
||||||
|
{{0x0c, 0x52, 0x52, 0x52, 0x3e}},
|
||||||
|
{{0x7f, 0x08, 0x04, 0x04, 0x78}},
|
||||||
|
{{0x00, 0x44, 0x7d, 0x40, 0x00}},
|
||||||
|
{{0x20, 0x40, 0x44, 0x3d, 0x00}},
|
||||||
|
{{0x7f, 0x10, 0x28, 0x44, 0x00}},
|
||||||
|
{{0x00, 0x41, 0x7f, 0x40, 0x00}},
|
||||||
|
{{0x7c, 0x04, 0x18, 0x04, 0x78}},
|
||||||
|
{{0x7c, 0x08, 0x04, 0x04, 0x78}},
|
||||||
|
{{0x38, 0x44, 0x44, 0x44, 0x38}},
|
||||||
|
{{0x7c, 0x14, 0x14, 0x14, 0x08}},
|
||||||
|
{{0x08, 0x14, 0x14, 0x18, 0x7c}},
|
||||||
|
{{0x7c, 0x08, 0x04, 0x04, 0x08}},
|
||||||
|
{{0x48, 0x54, 0x54, 0x54, 0x20}},
|
||||||
|
{{0x04, 0x3f, 0x44, 0x40, 0x20}},
|
||||||
|
{{0x3c, 0x40, 0x40, 0x20, 0x7c}},
|
||||||
|
{{0x1c, 0x20, 0x40, 0x20, 0x1c}},
|
||||||
|
{{0x3c, 0x40, 0x30, 0x40, 0x3c}},
|
||||||
|
{{0x44, 0x28, 0x10, 0x28, 0x44}},
|
||||||
|
{{0x0c, 0x50, 0x50, 0x50, 0x3c}},
|
||||||
|
{{0x44, 0x64, 0x54, 0x4c, 0x44}},
|
||||||
|
{{0x00, 0x08, 0x36, 0x41, 0x00}},
|
||||||
|
{{0x00, 0x00, 0x7f, 0x00, 0x00}},
|
||||||
|
{{0x00, 0x41, 0x36, 0x08, 0x00}},
|
||||||
|
{{0x10, 0x08, 0x08, 0x10, 0x08}},
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct utf_glyph5x PROGMEM font57_extra[] = {
|
||||||
|
{.utf={.symbol="�"}, {{0x7f, 0x41, 0x41, 0x41, 0x7f}}},
|
||||||
|
{.utf={.symbol="×"}, {{0x22, 0x14, 0x08, 0x14, 0x22}}},
|
||||||
|
{.utf={.symbol="↑"}, {{0x08, 0x04, 0x3e, 0x04, 0x08}}},
|
||||||
|
{.utf={.symbol="↓"}, {{0x08, 0x10, 0x3e, 0x10, 0x08}}},
|
||||||
|
{.utf={.symbol="←"}, {{0x08, 0x1c, 0x2a, 0x08, 0x08}}},
|
||||||
|
{.utf={.symbol="→"}, {{0x08, 0x08, 0x2a, 0x1c, 0x08}}},
|
||||||
|
{.utf={.symbol="⏰"}, {{0x1c, 0x22, 0x2e, 0x2a, 0x1c}}},
|
||||||
|
{.utf={.symbol="⌛"}, {{0x63, 0x55, 0x4d, 0x55, 0x63}}},
|
||||||
|
{.utf={.symbol="☸"}, {{0x1c, 0x22, 0x2a, 0x22, 0x1c}}},
|
||||||
|
{.utf={.symbol="⏎"}, {{0x10, 0x38, 0x54, 0x10, 0x1e}}},
|
||||||
|
{.utf={.symbol="🌡"}, {{0x20, 0x7e, 0x79, 0x7e, 0x2a}}},
|
||||||
|
{.utf={.symbol="°"}, {{0x00, 0x07, 0x05, 0x07, 0x00}}},
|
||||||
|
{.utf={.symbol="μ"}, {{0x7c, 0x20, 0x20, 0x10, 0x3c}}},
|
||||||
|
{.utf={.symbol="🔙"}, {{0x04, 0x4e, 0x55, 0x44, 0x38}}},
|
||||||
|
{.utf={.symbol="▶"}, {{0x7f, 0x3e, 0x1c, 0x08, 0x00}}},
|
||||||
|
{.utf={.symbol="◀"}, {{0x00, 0x08, 0x1c, 0x3e, 0x7f}}},
|
||||||
|
};
|
||||||
+12
-1
@@ -1,4 +1,7 @@
|
|||||||
const char* symbols[] = {
|
#define FONT_W 3
|
||||||
|
#define FONT_H 5
|
||||||
|
|
||||||
|
const char* font_ascii[] = {
|
||||||
// 32 " "
|
// 32 " "
|
||||||
" ",
|
" ",
|
||||||
" ",
|
" ",
|
||||||
@@ -569,7 +572,9 @@ const char* symbols[] = {
|
|||||||
"x x",
|
"x x",
|
||||||
" ",
|
" ",
|
||||||
" ",
|
" ",
|
||||||
|
};
|
||||||
|
|
||||||
|
const char *font_extras[] = {
|
||||||
// Extras
|
// Extras
|
||||||
// Extra 0 "°"
|
// Extra 0 "°"
|
||||||
"xxx",
|
"xxx",
|
||||||
@@ -585,3 +590,9 @@ const char* symbols[] = {
|
|||||||
" ",
|
" ",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const char *font_extras_utf[] = {
|
||||||
|
"�",
|
||||||
|
"°",
|
||||||
|
};
|
||||||
|
|
||||||
|
#include "fontedit_render.inc.c"
|
||||||
|
|||||||
+17
-7
@@ -1,4 +1,7 @@
|
|||||||
const char *symbols[] = {
|
#define FONT_W 4
|
||||||
|
#define FONT_H 5
|
||||||
|
|
||||||
|
const char *font_ascii[] = {
|
||||||
// 32 " "
|
// 32 " "
|
||||||
" ",
|
" ",
|
||||||
" ",
|
" ",
|
||||||
@@ -270,8 +273,8 @@ const char *symbols[] = {
|
|||||||
"x ",
|
"x ",
|
||||||
"xxxx",
|
"xxxx",
|
||||||
// 77 "M"
|
// 77 "M"
|
||||||
"## #",
|
"#XX#",
|
||||||
"# ##",
|
"#X #",
|
||||||
"# #",
|
"# #",
|
||||||
"# #",
|
"# #",
|
||||||
"# #",
|
"# #",
|
||||||
@@ -332,7 +335,7 @@ const char *symbols[] = {
|
|||||||
// 87 "W"
|
// 87 "W"
|
||||||
"x x",
|
"x x",
|
||||||
"x x",
|
"x x",
|
||||||
"xxxx",
|
"x x",
|
||||||
"xxxx",
|
"xxxx",
|
||||||
"x xx",
|
"x xx",
|
||||||
// 88 "X"
|
// 88 "X"
|
||||||
@@ -569,9 +572,9 @@ const char *symbols[] = {
|
|||||||
" x x",
|
" x x",
|
||||||
" ",
|
" ",
|
||||||
" ",
|
" ",
|
||||||
|
};
|
||||||
|
|
||||||
// Extras
|
const char *font_extras[] = {
|
||||||
|
|
||||||
// Extra 0 - unknown symbol
|
// Extra 0 - unknown symbol
|
||||||
"####",
|
"####",
|
||||||
"# #",
|
"# #",
|
||||||
@@ -584,5 +587,12 @@ const char *symbols[] = {
|
|||||||
"xxx ",
|
"xxx ",
|
||||||
" ",
|
" ",
|
||||||
" ",
|
" ",
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const char *font_extras_utf[] = {
|
||||||
|
"�",
|
||||||
|
"°",
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#include "fontedit_render.inc.c"
|
||||||
|
|||||||
+10
-34
@@ -1,4 +1,7 @@
|
|||||||
const char *symbols[] = {
|
#define FONT_W 5
|
||||||
|
#define FONT_H 7
|
||||||
|
|
||||||
|
const char *font_ascii[] = {
|
||||||
// 32 " "
|
// 32 " "
|
||||||
" ",
|
" ",
|
||||||
" ",
|
" ",
|
||||||
@@ -759,7 +762,9 @@ const char *symbols[] = {
|
|||||||
"# # ",
|
"# # ",
|
||||||
" ",
|
" ",
|
||||||
" ",
|
" ",
|
||||||
|
};
|
||||||
|
|
||||||
|
const char *font_extras[] = {
|
||||||
// Extras
|
// Extras
|
||||||
|
|
||||||
// Extra 0
|
// Extra 0
|
||||||
@@ -892,52 +897,23 @@ const char *symbols[] = {
|
|||||||
" #",
|
" #",
|
||||||
};
|
};
|
||||||
|
|
||||||
const char* extra_utf[] = {
|
const char *font_extras_utf[] = {
|
||||||
"�",
|
"�",
|
||||||
"×",
|
"×",
|
||||||
"↑",
|
"↑",
|
||||||
"↓",
|
"↓",
|
||||||
"←",
|
"←",
|
||||||
"→",
|
"→",
|
||||||
"⏰",
|
"⏰", // clock
|
||||||
"⌛",
|
"⌛",
|
||||||
"☸",
|
"☸",
|
||||||
"⏎",
|
"⏎",
|
||||||
"🌡",
|
"🌡",
|
||||||
"°",
|
"°",
|
||||||
"μ",
|
"μ",
|
||||||
"🔙",
|
"🔙", // back
|
||||||
"▶",
|
"▶",
|
||||||
"◀",
|
"◀",
|
||||||
};
|
};
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include "fontedit_render.inc.c"
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
void main() {
|
|
||||||
printf("static const font5x_bitmap_t PROGMEM font57[] = {\n");
|
|
||||||
|
|
||||||
const int fw = 5;
|
|
||||||
const int fh = 7;
|
|
||||||
for (int i = 32; i < 127; i++) {
|
|
||||||
uint8_t line[8] = {};
|
|
||||||
for(int j = 0; j < fh; j++) {
|
|
||||||
const char *row = symbols[(i - 32)*fh + j];
|
|
||||||
for(int k = 0; k < fw; k++) {
|
|
||||||
line[k] |= (row[k] != 32) << j;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
printf(" {{");
|
|
||||||
for(int k = 0; k < fw; k++) {
|
|
||||||
if (k > 0) printf(", ");
|
|
||||||
printf("0x%02x", line[k]);
|
|
||||||
}
|
|
||||||
printf("}},\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
printf("};\n");
|
|
||||||
|
|
||||||
// TODO specials
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,40 +0,0 @@
|
|||||||
#include <stdlib.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
struct X {
|
|
||||||
uint8_t data[4];
|
|
||||||
};
|
|
||||||
|
|
||||||
const struct X font[] = {
|
|
||||||
{{0x0e, 0x11, 0x11, 0x0e}}, // 0
|
|
||||||
{{0x04, 0x12, 0x1f, 0x10}}, // 1
|
|
||||||
{{0x12, 0x19, 0x15, 0x12}}, // 2
|
|
||||||
{{0x0a, 0x11, 0x15, 0x0a}}, // 3
|
|
||||||
{{0x07, 0x04, 0x1e, 0x04}}, // 4
|
|
||||||
{{0x17, 0x15, 0x15, 0x09}}, // 5
|
|
||||||
{{0x0e, 0x15, 0x15, 0x09}}, // 6
|
|
||||||
{{0x11, 0x09, 0x05, 0x03}}, // 7
|
|
||||||
{{0x0a, 0x15, 0x15, 0x0a}}, // 8
|
|
||||||
{{0x12, 0x15, 0x15, 0x0a}}, // 9
|
|
||||||
{{0x00, 0x00, 0x00, 0x00}}, // ' '
|
|
||||||
};
|
|
||||||
|
|
||||||
void main() {
|
|
||||||
printf("const char* symbols[] = {\n");
|
|
||||||
for(int c = 0; c < 11; c++) {
|
|
||||||
printf(" // %d \"%c\"\n", c+'0', c+'0');
|
|
||||||
for(int j=0;j<5;j++){
|
|
||||||
printf(" \"");
|
|
||||||
for(int k=0;k<4;k++){
|
|
||||||
if (font[c].data[k]& (1<<j)) {
|
|
||||||
printf("#");
|
|
||||||
} else {
|
|
||||||
printf(" ");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
printf("\",\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
printf("};\n");
|
|
||||||
}
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
#include <stdlib.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
struct X {
|
|
||||||
uint8_t data[4];
|
|
||||||
};
|
|
||||||
|
|
||||||
const struct X font[] = {
|
|
||||||
{{0x1f, 0x11, 0x11, 0x1f}},
|
|
||||||
{{0x02, 0x05, 0x02, 0x00}},
|
|
||||||
{{0x00, 0x04, 0x04, 0x04}},
|
|
||||||
{{0x0e, 0x11, 0x11, 0x0a}},
|
|
||||||
{{0x1f, 0x05, 0x05, 0x02}},
|
|
||||||
{{0x1f, 0x01, 0x02, 0x1f}},
|
|
||||||
{{0x00, 0x18, 0x18, 0x00}},
|
|
||||||
};
|
|
||||||
|
|
||||||
void main() {
|
|
||||||
printf("const char* symbols[] = {\n");
|
|
||||||
for(int c = 0; c < 7; c++) {
|
|
||||||
printf(" // %d \"%c\"\n", c+'0', c+'0');
|
|
||||||
for(int j=0;j<5;j++){
|
|
||||||
printf(" \"");
|
|
||||||
for(int k=0;k<4;k++){
|
|
||||||
if (font[c].data[k]& (1<<j)) {
|
|
||||||
printf("#");
|
|
||||||
} else {
|
|
||||||
printf(" ");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
printf("\",\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
printf("};\n");
|
|
||||||
}
|
|
||||||
@@ -1,124 +0,0 @@
|
|||||||
#include <stdlib.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
struct X {
|
|
||||||
uint8_t data[5];
|
|
||||||
};
|
|
||||||
|
|
||||||
const struct X font[] = {
|
|
||||||
{{0x00, 0x00, 0x00, 0x00, 0x00}}, // 0x20
|
|
||||||
{{0x00, 0x00, 0x5f, 0x00, 0x00}}, // ! 0x21
|
|
||||||
{{0x00, 0x07, 0x00, 0x07, 0x00}}, // \" 0x22
|
|
||||||
{{0x14, 0x7f, 0x14, 0x7f, 0x14}}, // # 0x23
|
|
||||||
{{0x24, 0x2a, 0x7f, 0x2a, 0x12}}, // $ 0x24
|
|
||||||
{{0x23, 0x13, 0x08, 0x64, 0x62}}, // % 0x25
|
|
||||||
{{0x36, 0x49, 0x55, 0x22, 0x50}}, // & 0x26
|
|
||||||
{{0x00, 0x05, 0x03, 0x00, 0x00}}, // ' 0x27
|
|
||||||
{{0x00, 0x1c, 0x22, 0x41, 0x00}}, // ( 0x28
|
|
||||||
{{0x00, 0x41, 0x22, 0x1c, 0x00}}, // ) 0x29
|
|
||||||
{{0x14, 0x08, 0x3e, 0x08, 0x14}}, // * 0x2a
|
|
||||||
{{0x08, 0x08, 0x3e, 0x08, 0x08}}, // + 0x2b
|
|
||||||
{{0x00, 0x50, 0x30, 0x00, 0x00}}, // , 0x2c
|
|
||||||
{{0x08, 0x08, 0x08, 0x08, 0x08}}, // - 0x2d
|
|
||||||
{{0x00, 0x60, 0x60, 0x00, 0x00}}, // . 0x2e
|
|
||||||
{{0x20, 0x10, 0x08, 0x04, 0x02}}, // / 0x2f
|
|
||||||
{{0x3e, 0x51, 0x49, 0x45, 0x3e}}, // 0 0x30
|
|
||||||
{{0x00, 0x42, 0x7f, 0x40, 0x00}}, // 1 0x31
|
|
||||||
{{0x42, 0x61, 0x51, 0x49, 0x46}}, // 2 0x32
|
|
||||||
{{0x21, 0x41, 0x45, 0x4b, 0x31}}, // 3 0x33
|
|
||||||
{{0x18, 0x14, 0x12, 0x7f, 0x10}}, // 4 0x34
|
|
||||||
{{0x27, 0x45, 0x45, 0x45, 0x39}}, // 5 0x35
|
|
||||||
{{0x3c, 0x4a, 0x49, 0x49, 0x30}}, // 6 0x36
|
|
||||||
{{0x01, 0x71, 0x09, 0x05, 0x03}}, // 7 0x37
|
|
||||||
{{0x36, 0x49, 0x49, 0x49, 0x36}}, // 8 0x38
|
|
||||||
{{0x06, 0x49, 0x49, 0x29, 0x1e}}, // 9 0x39
|
|
||||||
{{0x00, 0x36, 0x36, 0x00, 0x00}}, // : 0x3a
|
|
||||||
{{0x00, 0x56, 0x36, 0x00, 0x00}}, // ; 0x3b
|
|
||||||
{{0x08, 0x14, 0x22, 0x41, 0x00}}, // < 0x3c
|
|
||||||
{{0x14, 0x14, 0x14, 0x14, 0x14}}, // = 0x3d
|
|
||||||
{{0x00, 0x41, 0x22, 0x14, 0x08}}, // > 0x3e
|
|
||||||
{{0x02, 0x01, 0x51, 0x09, 0x06}}, // ? 0x3f
|
|
||||||
{{0x32, 0x49, 0x79, 0x41, 0x3e}}, // @ 0x40
|
|
||||||
{{0x7e, 0x11, 0x11, 0x11, 0x7e}}, // A 0x41
|
|
||||||
{{0x7f, 0x49, 0x49, 0x49, 0x36}}, // B 0x42
|
|
||||||
{{0x3e, 0x41, 0x41, 0x41, 0x22}}, // C 0x43
|
|
||||||
{{0x7f, 0x41, 0x41, 0x22, 0x1c}}, // D 0x44
|
|
||||||
{{0x7f, 0x49, 0x49, 0x49, 0x41}}, // E 0x45
|
|
||||||
{{0x7f, 0x09, 0x09, 0x09, 0x01}}, // F 0x46
|
|
||||||
{{0x3e, 0x41, 0x49, 0x49, 0x7a}}, // G 0x47
|
|
||||||
{{0x7f, 0x08, 0x08, 0x08, 0x7f}}, // H 0x48
|
|
||||||
{{0x00, 0x41, 0x7f, 0x41, 0x00}}, // I 0x49
|
|
||||||
{{0x20, 0x40, 0x41, 0x3f, 0x01}}, // J 0x4a
|
|
||||||
{{0x7f, 0x08, 0x14, 0x22, 0x41}}, // K 0x4b
|
|
||||||
{{0x7f, 0x40, 0x40, 0x40, 0x40}}, // L 0x4c
|
|
||||||
{{0x7f, 0x02, 0x0c, 0x02, 0x7f}}, // M 0x4d
|
|
||||||
{{0x7f, 0x04, 0x08, 0x10, 0x7f}}, // N 0x4e
|
|
||||||
{{0x3e, 0x41, 0x41, 0x41, 0x3e}}, // O 0x4f
|
|
||||||
{{0x7f, 0x09, 0x09, 0x09, 0x06}}, // P 0x50
|
|
||||||
{{0x3e, 0x41, 0x51, 0x21, 0x5e}}, // Q 0x51
|
|
||||||
{{0x7f, 0x09, 0x19, 0x29, 0x46}}, // R 0x52
|
|
||||||
{{0x46, 0x49, 0x49, 0x49, 0x31}}, // S 0x53
|
|
||||||
{{0x01, 0x01, 0x7f, 0x01, 0x01}}, // T 0x54
|
|
||||||
{{0x3f, 0x40, 0x40, 0x40, 0x3f}}, // U 0x55
|
|
||||||
{{0x1f, 0x20, 0x40, 0x20, 0x1f}}, // V 0x56
|
|
||||||
{{0x3f, 0x40, 0x38, 0x40, 0x3f}}, // W 0x57
|
|
||||||
{{0x63, 0x14, 0x08, 0x14, 0x63}}, // X 0x58
|
|
||||||
{{0x07, 0x08, 0x70, 0x08, 0x07}}, // Y 0x59
|
|
||||||
{{0x61, 0x51, 0x49, 0x45, 0x43}}, // Z 0x5a
|
|
||||||
{{0x00, 0x7f, 0x41, 0x41, 0x00}}, // [ 0x5b
|
|
||||||
{{0x02, 0x04, 0x08, 0x10, 0x20}}, // \\ 0x5c
|
|
||||||
{{0x00, 0x41, 0x41, 0x7f, 0x00}}, // ] 0x5d
|
|
||||||
{{0x04, 0x02, 0x01, 0x02, 0x04}}, // ^ 0x5e
|
|
||||||
{{0x40, 0x40, 0x40, 0x40, 0x40}}, // _ 0x5f
|
|
||||||
{{0x00, 0x01, 0x02, 0x04, 0x00}}, // ` 0x60
|
|
||||||
{{0x20, 0x54, 0x54, 0x54, 0x78}}, // a 0x61
|
|
||||||
{{0x7f, 0x48, 0x44, 0x44, 0x38}}, // b 0x62
|
|
||||||
{{0x38, 0x44, 0x44, 0x44, 0x20}}, // c 0x63
|
|
||||||
{{0x38, 0x44, 0x44, 0x48, 0x7f}}, // d 0x64
|
|
||||||
{{0x38, 0x54, 0x54, 0x54, 0x18}}, // e 0x65
|
|
||||||
{{0x08, 0x7e, 0x09, 0x01, 0x02}}, // f 0x66
|
|
||||||
{{0x0c, 0x52, 0x52, 0x52, 0x3e}}, // g 0x67
|
|
||||||
{{0x7f, 0x08, 0x04, 0x04, 0x78}}, // h 0x68
|
|
||||||
{{0x00, 0x44, 0x7d, 0x40, 0x00}}, // i 0x69
|
|
||||||
{{0x20, 0x40, 0x44, 0x3d, 0x00}}, // j 0x6a
|
|
||||||
{{0x7f, 0x10, 0x28, 0x44, 0x00}}, // k 0x6b
|
|
||||||
{{0x00, 0x41, 0x7f, 0x40, 0x00}}, // l 0x6c
|
|
||||||
{{0x7c, 0x04, 0x18, 0x04, 0x78}}, // m 0x6d
|
|
||||||
{{0x7c, 0x08, 0x04, 0x04, 0x78}}, // n 0x6e
|
|
||||||
{{0x38, 0x44, 0x44, 0x44, 0x38}}, // o 0x6f
|
|
||||||
{{0x7c, 0x14, 0x14, 0x14, 0x08}}, // p 0x70
|
|
||||||
{{0x08, 0x14, 0x14, 0x18, 0x7c}}, // q 0x71
|
|
||||||
{{0x7c, 0x08, 0x04, 0x04, 0x08}}, // r 0x72
|
|
||||||
{{0x48, 0x54, 0x54, 0x54, 0x20}}, // s 0x73
|
|
||||||
{{0x04, 0x3f, 0x44, 0x40, 0x20}}, // t 0x74
|
|
||||||
{{0x3c, 0x40, 0x40, 0x20, 0x7c}}, // u 0x75
|
|
||||||
{{0x1c, 0x20, 0x40, 0x20, 0x1c}}, // v 0x76
|
|
||||||
{{0x3c, 0x40, 0x30, 0x40, 0x3c}}, // w 0x77
|
|
||||||
{{0x44, 0x28, 0x10, 0x28, 0x44}}, // x 0x78
|
|
||||||
{{0x0c, 0x50, 0x50, 0x50, 0x3c}}, // y 0x79
|
|
||||||
{{0x44, 0x64, 0x54, 0x4c, 0x44}}, // z 0x7a
|
|
||||||
{{0x00, 0x08, 0x36, 0x41, 0x00}}, // { 0x7b
|
|
||||||
{{0x00, 0x00, 0x7f, 0x00, 0x00}}, // | 0x7c
|
|
||||||
{{0x00, 0x41, 0x36, 0x08, 0x00}}, // } 0x7d
|
|
||||||
{{0x10, 0x08, 0x08, 0x10, 0x08}}, // ~ 0x7e
|
|
||||||
};
|
|
||||||
|
|
||||||
void main() {
|
|
||||||
printf("const char* symbols[] = {\n");
|
|
||||||
for(int c = 32; c < 127; c++) {
|
|
||||||
printf(" // %d \"%c\"\n", c, c);
|
|
||||||
for(int j=0;j<7;j++){
|
|
||||||
printf(" \"");
|
|
||||||
for(int k=0;k<5;k++){
|
|
||||||
if (font[c - ' '].data[k]& (1<<j)) {
|
|
||||||
printf("#");
|
|
||||||
} else {
|
|
||||||
printf(" ");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
printf("\",\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
printf("};\n");
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
#include <stdlib.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
struct X {
|
|
||||||
uint8_t data[5];
|
|
||||||
};
|
|
||||||
|
|
||||||
const struct X font[] = {
|
|
||||||
{{0xFE, 0x82, 0x82, 0x82, 0xFE}},
|
|
||||||
{{0x22, 0x14, 0x08, 0x14, 0x22}},
|
|
||||||
{{0x08, 0x04, 0x3e, 0x04, 0x08}},
|
|
||||||
{{0x08, 0x10, 0x3e, 0x10, 0x08}},
|
|
||||||
{{0x08, 0x1c, 0x2a, 0x08, 0x08}},
|
|
||||||
{{0x08, 0x08, 0x2a, 0x1c, 0x08}},
|
|
||||||
{{0x1c, 0x22, 0x2e, 0x2a, 0x1c}},
|
|
||||||
{{0x63, 0x55, 0x4d, 0x55, 0x63}},
|
|
||||||
{{0x1c, 0x22, 0x2a, 0x22, 0x1c}},
|
|
||||||
{{0x10, 0x38, 0x54, 0x10, 0x1e}},
|
|
||||||
{{0x60, 0x9e, 0x81, 0x9e, 0x6a}},
|
|
||||||
{{0x00, 0x07, 0x05, 0x07, 0x00}},
|
|
||||||
{{0x7C, 0x20, 0x20, 0x10, 0x3C}},
|
|
||||||
{{0x04, 0x4e, 0x55, 0x44, 0x38}},
|
|
||||||
{{0x7f, 0x3e, 0x1c, 0x08, 0x00}},
|
|
||||||
{{0x00, 0x08, 0x1c, 0x3e, 0x7f}},
|
|
||||||
};
|
|
||||||
|
|
||||||
void main() {
|
|
||||||
printf("const char* symbols[] = {\n");
|
|
||||||
for(int c = 0; c < sizeof(font)/sizeof(font[0]); c++) {
|
|
||||||
printf(" // Extra %d\n", c, c);
|
|
||||||
for(int j=0;j<7;j++){
|
|
||||||
printf(" \"");
|
|
||||||
for(int k=0;k<5;k++){
|
|
||||||
if (font[c].data[k]& (1<<j)) {
|
|
||||||
printf("#");
|
|
||||||
} else {
|
|
||||||
printf(" ");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
printf("\",\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
printf("};\n");
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
void generate_glyph_tables() {
|
||||||
|
printf("static const font%dx_bitmap_t PROGMEM font%d%d_ascii[] = {\n", FONT_W, FONT_W, FONT_H);
|
||||||
|
for (int i = 32; i < 127; i++) {
|
||||||
|
uint8_t line[8] = {};
|
||||||
|
for(int j = 0; j < FONT_H; j++) {
|
||||||
|
const char *row = font_ascii[(i - 32)*FONT_H + j];
|
||||||
|
for(int k = 0; k < FONT_W; k++) {
|
||||||
|
line[k] |= (row[k] != 32) << j;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
printf(" {{");
|
||||||
|
for(int k = 0; k < FONT_W; k++) {
|
||||||
|
if (k > 0) printf(", ");
|
||||||
|
printf("0x%02x", line[k]);
|
||||||
|
}
|
||||||
|
printf("}},\n");
|
||||||
|
}
|
||||||
|
printf("};\n\n");
|
||||||
|
|
||||||
|
printf("static const struct utf_glyph%dx PROGMEM font%d%d_extra[] = {\n", FONT_W, FONT_W, FONT_H);
|
||||||
|
for (int i = 0; i < sizeof(font_extras) / (sizeof(font_extras[0]) * FONT_H); i++) {
|
||||||
|
uint8_t line[8] = {};
|
||||||
|
for(int j = 0; j < FONT_H; j++) {
|
||||||
|
const char *row = font_extras[i*FONT_H + j];
|
||||||
|
for(int k = 0; k < FONT_W; k++) {
|
||||||
|
line[k] |= (row[k] != 32) << j;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
printf(" {.utf={.symbol=\"%s\"}, {{", font_extras_utf[i]);
|
||||||
|
for(int k = 0; k < FONT_W; k++) {
|
||||||
|
if (k > 0) printf(", ");
|
||||||
|
printf("0x%02x", line[k]);
|
||||||
|
}
|
||||||
|
printf("}}},\n");
|
||||||
|
}
|
||||||
|
printf("};\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
generate_glyph_tables();
|
||||||
|
}
|
||||||
@@ -99,6 +99,10 @@ void main() {
|
|||||||
fb_text(15, 15, "MEOW", FONT_DOUBLEH, 1);
|
fb_text(15, 15, "MEOW", FONT_DOUBLEH, 1);
|
||||||
fb_text(40, 15, "MEOW", FONT_DOUBLEW, 1);
|
fb_text(40, 15, "MEOW", FONT_DOUBLEW, 1);
|
||||||
fb_text(40, 23, "MEOW", FONT_BOLD, 1);
|
fb_text(40, 23, "MEOW", FONT_BOLD, 1);
|
||||||
|
|
||||||
|
fb_text(5, 5, "Tiny 3x5", FONT_3X5, 1);
|
||||||
|
fb_text(40, 5, "Tiny 4x5 MEOW", FONT_4X5, 1);
|
||||||
|
|
||||||
fb_frame(12,12,80,20,1,1);
|
fb_frame(12,12,80,20,1,1);
|
||||||
|
|
||||||
// fb_text(36, 5, "-123456789.0 CPM°", FONT_TINY, 1);
|
// fb_text(36, 5, "-123456789.0 CPM°", FONT_TINY, 1);
|
||||||
|
|||||||
Reference in New Issue
Block a user