Files
GfxCanvas/gfx_font_5x7.h

124 lines
4.5 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// gfx_font_5x7.h — Built-in 5x7 monospace bitmap font.
//
// Column-major encoding: 5 bytes per glyph, each byte is one column,
// bit 0 = topmost row. Covers printable ASCII 0x200x7E (95 glyphs).
#ifndef GFX_FONT_5X7_H
#define GFX_FONT_5X7_H
#include "gfx_canvas.h"
namespace gfx {
inline constexpr uint8_t font_5x7_bitmap[] = {
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, // 0x30 '0'
0x00,0x42,0x7F,0x40,0x00, // 0x31 '1'
0x42,0x61,0x51,0x49,0x46, // 0x32 '2'
0x21,0x41,0x45,0x4B,0x31, // 0x33 '3'
0x18,0x14,0x12,0x7F,0x10, // 0x34 '4'
0x27,0x45,0x45,0x45,0x39, // 0x35 '5'
0x3C,0x4A,0x49,0x49,0x30, // 0x36 '6'
0x01,0x71,0x09,0x05,0x03, // 0x37 '7'
0x36,0x49,0x49,0x49,0x36, // 0x38 '8'
0x06,0x49,0x49,0x29,0x1E, // 0x39 '9'
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, // 0x41 'A'
0x7F,0x49,0x49,0x49,0x36, // 0x42 'B'
0x3E,0x41,0x41,0x41,0x22, // 0x43 'C'
0x7F,0x41,0x41,0x22,0x1C, // 0x44 'D'
0x7F,0x49,0x49,0x49,0x41, // 0x45 'E'
0x7F,0x09,0x09,0x09,0x01, // 0x46 'F'
0x3E,0x41,0x49,0x49,0x7A, // 0x47 'G'
0x7F,0x08,0x08,0x08,0x7F, // 0x48 'H'
0x00,0x41,0x7F,0x41,0x00, // 0x49 'I'
0x20,0x40,0x41,0x3F,0x01, // 0x4A 'J'
0x7F,0x08,0x14,0x22,0x41, // 0x4B 'K'
0x7F,0x40,0x40,0x40,0x40, // 0x4C 'L'
0x7F,0x02,0x0C,0x02,0x7F, // 0x4D 'M'
0x7F,0x04,0x08,0x10,0x7F, // 0x4E 'N'
0x3E,0x41,0x41,0x41,0x3E, // 0x4F 'O'
0x7F,0x09,0x09,0x09,0x06, // 0x50 'P'
0x3E,0x41,0x51,0x21,0x5E, // 0x51 'Q'
0x7F,0x09,0x19,0x29,0x46, // 0x52 'R'
0x46,0x49,0x49,0x49,0x31, // 0x53 'S'
0x01,0x01,0x7F,0x01,0x01, // 0x54 'T'
0x3F,0x40,0x40,0x40,0x3F, // 0x55 'U'
0x1F,0x20,0x40,0x20,0x1F, // 0x56 'V'
0x3F,0x40,0x38,0x40,0x3F, // 0x57 'W'
0x63,0x14,0x08,0x14,0x63, // 0x58 'X'
0x07,0x08,0x70,0x08,0x07, // 0x59 'Y'
0x61,0x51,0x49,0x45,0x43, // 0x5A 'Z'
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, // 0x61 'a'
0x7F,0x48,0x44,0x44,0x38, // 0x62 'b'
0x38,0x44,0x44,0x44,0x20, // 0x63 'c'
0x38,0x44,0x44,0x48,0x7F, // 0x64 'd'
0x38,0x54,0x54,0x54,0x18, // 0x65 'e'
0x08,0x7E,0x09,0x01,0x02, // 0x66 'f'
0x0C,0x52,0x52,0x52,0x3E, // 0x67 'g'
0x7F,0x08,0x04,0x04,0x78, // 0x68 'h'
0x00,0x44,0x7D,0x40,0x00, // 0x69 'i'
0x20,0x40,0x44,0x3D,0x00, // 0x6A 'j'
0x7F,0x10,0x28,0x44,0x00, // 0x6B 'k'
0x00,0x41,0x7F,0x40,0x00, // 0x6C 'l'
0x7C,0x04,0x18,0x04,0x78, // 0x6D 'm'
0x7C,0x08,0x04,0x04,0x78, // 0x6E 'n'
0x38,0x44,0x44,0x44,0x38, // 0x6F 'o'
0x7C,0x14,0x14,0x14,0x08, // 0x70 'p'
0x08,0x14,0x14,0x18,0x7C, // 0x71 'q'
0x7C,0x08,0x04,0x04,0x08, // 0x72 'r'
0x48,0x54,0x54,0x54,0x20, // 0x73 's'
0x04,0x3F,0x44,0x40,0x20, // 0x74 't'
0x3C,0x40,0x40,0x20,0x7C, // 0x75 'u'
0x1C,0x20,0x40,0x20,0x1C, // 0x76 'v'
0x3C,0x40,0x30,0x40,0x3C, // 0x77 'w'
0x44,0x28,0x10,0x28,0x44, // 0x78 'x'
0x0C,0x50,0x50,0x50,0x3C, // 0x79 'y'
0x44,0x64,0x54,0x4C,0x44, // 0x7A 'z'
0x00,0x08,0x36,0x41,0x00, // 0x7B '{'
0x00,0x00,0x7F,0x00,0x00, // 0x7C '|'
0x00,0x41,0x36,0x08,0x00, // 0x7D '}'
0x10,0x08,0x08,0x10,0x08, // 0x7E '~'
};
inline constexpr Font font_5x7 = {
.bitmap = font_5x7_bitmap,
.glyph_width = 5,
.glyph_height = 7,
.first_char = 0x20,
.last_char = 0x7E,
.x_advance = 6, // 5px glyph + 1px spacing
.y_advance = 9, // 7px glyph + 2px spacing
};
} // namespace gfx
#endif // GFX_FONT_5X7_H