CuVoodoo STM32F1 firmware template
font.c
Go to the documentation of this file.
1 /* This program is free software: you can redistribute it and/or modify
2  * it under the terms of the GNU General Public License as published by
3  * the Free Software Foundation, either version 3 of the License, or
4  * (at your option) any later version.
5  *
6  * This program is distributed in the hope that it will be useful,
7  * but WITHOUT ANY WARRANTY; without even the implied warranty of
8  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9  * GNU General Public License for more details.
10  *
11  * You should have received a copy of the GNU General Public License
12  * along with this program. If not, see <http://www.gnu.org/licenses/>.
13  *
14  */
20 #include <stdint.h> // standard integer types
21 #include "font.h" // own definitions
22 
24 const uint16_t font_king8[FONT_GLYPH_NUMBERS*5] = {
25  0x00, 0x00, 0x00, 0x00, 0x00, // ' '
26  0x00, 0x00, 0xfa, 0x00, 0x00, // '!'
27  0x00, 0xc0, 0x00, 0xc0, 0x00, // '"'
28  0x28, 0x7c, 0x28, 0x7c, 0x28, // '#'
29  0x24, 0x54, 0xfe, 0x54, 0x48, // '$'
30  0xc6, 0xc8, 0x10, 0x26, 0xc6, // '%'
31  0x6c, 0x92, 0x6a, 0x04, 0x0a, // '&'
32  0x00, 0xc0, 0x00, 0x00, 0x00, // '''
33  0x00, 0x3c, 0x42, 0x81, 0x00, // '('
34  0x00, 0x81, 0x42, 0x3c, 0x00, // ')'
35  0x54, 0x38, 0x7c, 0x38, 0x54, // '*'
36  0x10, 0x10, 0x7c, 0x10, 0x10, // '+'
37  0x00, 0x02, 0x0c, 0x00, 0x00, // ','
38  0x00, 0x10, 0x10, 0x10, 0x00, // '-'
39  0x00, 0x00, 0x0c, 0x00, 0x00, // '.'
40  0x06, 0x08, 0x10, 0x20, 0xc0, // '/'
41  0x7c, 0x8a, 0x92, 0xa2, 0x7c, // '0'
42  0x00, 0x42, 0xfe, 0x02, 0x00, // '1'
43  0x00, 0x86, 0x8a, 0x92, 0x62, // '2'
44  0x00, 0x82, 0x92, 0x92, 0x6c, // '3'
45  0x18, 0x28, 0x48, 0xfe, 0x08, // '4'
46  0xe4, 0xa2, 0xa2, 0xa2, 0x9c, // '5'
47  0x7c, 0x92, 0x92, 0x92, 0x0c, // '6'
48  0x80, 0x8e, 0x90, 0xa0, 0xc0, // '7'
49  0x6c, 0x92, 0x92, 0x92, 0x6c, // '8'
50  0x60, 0x92, 0x92, 0x92, 0x7c, // '9'
51  0x00, 0x00, 0x6c, 0x00, 0x00, // ':'
52  0x00, 0x02, 0x6c, 0x00, 0x00, // ';'
53  0x00, 0x10, 0x28, 0x44, 0x00, // '<'
54  0x00, 0x28, 0x28, 0x28, 0x00, // '='
55  0x00, 0x44, 0x28, 0x10, 0x00, // '>'
56  0x40, 0x80, 0x9a, 0xa0, 0x40, // '?'
57  0x7c, 0x82, 0xba, 0xaa, 0x7a, // '@'
58  0x7e, 0x90, 0x90, 0x90, 0x7e, // 'A'
59  0xfe, 0x92, 0x92, 0x92, 0x6c, // 'B'
60  0x7c, 0x82, 0x82, 0x82, 0x82, // 'C'
61  0xfe, 0x82, 0x82, 0x82, 0x7c, // 'D'
62  0xfe, 0x92, 0x92, 0x92, 0x82, // 'E'
63  0xfe, 0x90, 0x90, 0x90, 0x80, // 'F'
64  0x7c, 0x82, 0x82, 0x92, 0x9c, // 'G'
65  0xfe, 0x10, 0x10, 0x10, 0xfe, // 'H'
66  0x00, 0x82, 0xfe, 0x82, 0x00, // 'I'
67  0x00, 0x82, 0x82, 0xfc, 0x00, // 'J'
68  0xfe, 0x10, 0x28, 0x44, 0x82, // 'K'
69  0xfe, 0x02, 0x02, 0x02, 0x02, // 'L'
70  0xfe, 0x40, 0x20, 0x40, 0xfe, // 'M'
71  0xfe, 0x20, 0x10, 0x08, 0xfe, // 'N'
72  0x7c, 0x82, 0x82, 0x82, 0x7c, // 'O'
73  0xfe, 0x90, 0x90, 0x90, 0x60, // 'P'
74  0x7c, 0x82, 0x8a, 0x84, 0x7a, // 'Q'
75  0xfe, 0x90, 0x98, 0x94, 0x62, // 'R'
76  0x62, 0x92, 0x92, 0x92, 0x8c, // 'S'
77  0x80, 0x80, 0xfe, 0x80, 0x80, // 'T'
78  0xfc, 0x02, 0x02, 0x02, 0xfc, // 'U'
79  0xe0, 0x18, 0x06, 0x18, 0xe0, // 'V'
80  0xf8, 0x06, 0x18, 0x06, 0xf8, // 'W'
81  0xc6, 0x28, 0x10, 0x28, 0xc6, // 'X'
82  0xc0, 0x20, 0x1e, 0x20, 0xc0, // 'Y'
83  0x86, 0x8a, 0x92, 0xa2, 0xc2, // 'Z'
84  0x00, 0xfe, 0x82, 0x82, 0x00, // '['
85  0xc0, 0x20, 0x10, 0x08, 0x06, // '\'
86  0x00, 0x82, 0x82, 0xfe, 0x00, // ']'
87  0x00, 0x20, 0x40, 0x20, 0x00, // '^'
88  0x02, 0x02, 0x02, 0x02, 0x02, // '_'
89  0x00, 0x40, 0x20, 0x00, 0x00, // '`'
90  0x04, 0x2a, 0x2a, 0x1e, 0x00, // 'a'
91  0x7e, 0x12, 0x12, 0x0c, 0x00, // 'b'
92  0x1c, 0x22, 0x22, 0x22, 0x00, // 'c'
93  0x0c, 0x12, 0x12, 0x7e, 0x00, // 'd'
94  0x1c, 0x2a, 0x2a, 0x18, 0x00, // 'e'
95  0x10, 0x3e, 0x50, 0x40, 0x00, // 'f'
96  0x18, 0x25, 0x25, 0x1e, 0x00, // 'g'
97  0x7e, 0x10, 0x10, 0x0e, 0x00, // 'h'
98  0x00, 0x10, 0x5e, 0x00, 0x00, // 'i'
99  0x01, 0x01, 0x5e, 0x00, 0x00, // 'j'
100  0x7e, 0x08, 0x14, 0x22, 0x00, // 'k'
101  0x00, 0x40, 0x7c, 0x02, 0x00, // 'l'
102  0x3e, 0x20, 0x1e, 0x20, 0x1e, // 'm'
103  0x00, 0x3e, 0x20, 0x1e, 0x00, // 'n'
104  0x1c, 0x22, 0x22, 0x1c, 0x00, // 'o'
105  0x3f, 0x24, 0x24, 0x18, 0x00, // 'p'
106  0x18, 0x24, 0x24, 0x3f, 0x00, // 'q'
107  0x3e, 0x10, 0x20, 0x10, 0x00, // 'r'
108  0x12, 0x2a, 0x2a, 0x24, 0x00, // 's'
109  0x7c, 0x12, 0x12, 0x02, 0x00, // 't'
110  0x3c, 0x02, 0x02, 0x3e, 0x00, // 'u'
111  0x38, 0x04, 0x02, 0x04, 0x38, // 'v'
112  0x3c, 0x02, 0x0c, 0x02, 0x3c, // 'w'
113  0x36, 0x08, 0x08, 0x36, 0x00, // 'x'
114  0x30, 0x09, 0x09, 0x3e, 0x00, // 'y'
115  0x26, 0x2a, 0x2a, 0x32, 0x00, // 'z'
116  0x10, 0x6c, 0x82, 0x00, 0x00, // '{'
117  0x00, 0x00, 0xfe, 0x00, 0x00, // '|'
118  0x00, 0x82, 0x6c, 0x10, 0x00, // '}'
119  0x20, 0x40, 0x60, 0x20, 0x40, // '~'
120 };
121 
123 static const uint16_t font_king10[FONT_GLYPH_NUMBERS*6] = {
124  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // ' '
125  0x0000, 0x0000, 0x01f6, 0x0000, 0x0000, 0x0000, // '!'
126  0x0000, 0x0180, 0x0000, 0x0180, 0x0000, 0x0000, // '"'
127  0x0028, 0x00fe, 0x0028, 0x00fe, 0x0028, 0x0000, // '#'
128  0x00c4, 0x0124, 0x03fe, 0x0124, 0x0118, 0x0000, // '$'
129  0x00c6, 0x00c8, 0x0010, 0x0020, 0x004c, 0x018c, // '%'
130  0x00dc, 0x0122, 0x0122, 0x00d2, 0x000c, 0x0012, // '&'
131  0x0000, 0x0000, 0x0180, 0x0000, 0x0000, 0x0000, // '''
132  0x0000, 0x0078, 0x0186, 0x0201, 0x0000, 0x0000, // '('
133  0x0000, 0x0201, 0x0186, 0x0078, 0x0000, 0x0000, // ')'
134  0x0090, 0x0060, 0x00f0, 0x0060, 0x0090, 0x0000, // '*'
135  0x0020, 0x0020, 0x00f8, 0x0020, 0x0020, 0x0000, // '+'
136  0x0000, 0x0000, 0x0001, 0x0006, 0x0000, 0x0000, // ','
137  0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0000, // '-'
138  0x0000, 0x0000, 0x0000, 0x0006, 0x0000, 0x0000, // '.'
139  0x0003, 0x000c, 0x0030, 0x00c0, 0x0300, 0x0000, // '/'
140  0x01fc, 0x0212, 0x0222, 0x0242, 0x0282, 0x01fc, // '0'
141  0x0000, 0x0040, 0x0080, 0x0100, 0x03fe, 0x0000, // '1'
142  0x0102, 0x0206, 0x020a, 0x0212, 0x0222, 0x01c2, // '2'
143  0x0202, 0x0202, 0x0222, 0x0222, 0x0222, 0x01dc, // '3'
144  0x0030, 0x0050, 0x0090, 0x0110, 0x03fe, 0x0010, // '4'
145  0x03c4, 0x0242, 0x0242, 0x0242, 0x0242, 0x023c, // '5'
146  0x01fc, 0x0222, 0x0222, 0x0222, 0x0222, 0x001c, // '6'
147  0x0200, 0x0200, 0x023e, 0x0240, 0x0280, 0x0300, // '7'
148  0x01dc, 0x0222, 0x0222, 0x0222, 0x0222, 0x01dc, // '8'
149  0x01c0, 0x0222, 0x0222, 0x0222, 0x0222, 0x01fc, // '9'
150  0x0000, 0x0000, 0x00cc, 0x0000, 0x0000, 0x0000, // ':'
151  0x0000, 0x0002, 0x00cc, 0x0000, 0x0000, 0x0000, // ';'
152  0x0000, 0x0020, 0x0050, 0x0088, 0x0104, 0x0000, // '<'
153  0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0000, // '='
154  0x0000, 0x0104, 0x0088, 0x0050, 0x0020, 0x0000, // '>'
155  0x0100, 0x0200, 0x021a, 0x0220, 0x0240, 0x0180, // '?'
156  0x0078, 0x0084, 0x0132, 0x014a, 0x014a, 0x00fa, // '@'
157  0x01fe, 0x0220, 0x0220, 0x0220, 0x0220, 0x01fe, // 'A'
158  0x03fe, 0x0222, 0x0222, 0x0222, 0x0222, 0x01dc, // 'B'
159  0x01fc, 0x0202, 0x0202, 0x0202, 0x0202, 0x0202, // 'C'
160  0x03fe, 0x0202, 0x0202, 0x0202, 0x0202, 0x01fc, // 'D'
161  0x03fe, 0x0222, 0x0222, 0x0222, 0x0222, 0x0202, // 'E'
162  0x03fe, 0x0220, 0x0220, 0x0220, 0x0220, 0x0200, // 'F'
163  0x01fc, 0x0202, 0x0202, 0x0202, 0x0222, 0x023c, // 'G'
164  0x03fe, 0x0020, 0x0020, 0x0020, 0x0020, 0x03fe, // 'H'
165  0x0202, 0x0202, 0x03fe, 0x0202, 0x0202, 0x0000, // 'I'
166  0x0202, 0x0202, 0x0202, 0x0204, 0x03f8, 0x0000, // 'J'
167  0x03fe, 0x0020, 0x0050, 0x0088, 0x0104, 0x0202, // 'K'
168  0x03fe, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, // 'L'
169  0x03fe, 0x0100, 0x0080, 0x0080, 0x0100, 0x03fe, // 'M'
170  0x03fe, 0x0080, 0x0040, 0x0020, 0x0010, 0x03fe, // 'N'
171  0x01fc, 0x0202, 0x0202, 0x0202, 0x0202, 0x01fc, // 'O'
172  0x03fe, 0x0220, 0x0220, 0x0220, 0x0220, 0x01c0, // 'P'
173  0x01fc, 0x0202, 0x0202, 0x020a, 0x0204, 0x01fa, // 'Q'
174  0x03fe, 0x0220, 0x0230, 0x0228, 0x0224, 0x01c2, // 'R'
175  0x01c2, 0x0222, 0x0222, 0x0222, 0x0222, 0x021c, // 'S'
176  0x0200, 0x0200, 0x03fe, 0x0200, 0x0200, 0x0000, // 'T'
177  0x03fc, 0x0002, 0x0002, 0x0002, 0x0002, 0x03fc, // 'U'
178  0x03e0, 0x0018, 0x0006, 0x0006, 0x0018, 0x03e0, // 'V'
179  0x03fc, 0x0002, 0x000c, 0x000c, 0x0002, 0x03fc, // 'W'
180  0x038e, 0x0050, 0x0020, 0x0020, 0x0050, 0x038e, // 'X'
181  0x0380, 0x0040, 0x003e, 0x0040, 0x0380, 0x0000, // 'Y'
182  0x020e, 0x0212, 0x0222, 0x0242, 0x0282, 0x0302, // 'Z'
183  0x0000, 0x03fe, 0x0202, 0x0202, 0x0202, 0x0000, // '['
184  0x0000, 0x0300, 0x00c0, 0x0030, 0x000c, 0x0003, // '\'
185  0x0000, 0x0202, 0x0202, 0x0202, 0x03fe, 0x0000, // ']'
186  0x0040, 0x0080, 0x0100, 0x0080, 0x0040, 0x0000, // '^'
187  0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, // '_'
188  0x0000, 0x0100, 0x0080, 0x0040, 0x0000, 0x0000, // '`'
189  0x0004, 0x002a, 0x002a, 0x002a, 0x001e, 0x0000, // 'a'
190  0x01fe, 0x0022, 0x0022, 0x0022, 0x001c, 0x0000, // 'b'
191  0x001c, 0x0022, 0x0022, 0x0022, 0x0022, 0x0000, // 'c'
192  0x001c, 0x0022, 0x0022, 0x0022, 0x01fe, 0x0000, // 'd'
193  0x001c, 0x002a, 0x002a, 0x002a, 0x0018, 0x0000, // 'e'
194  0x0020, 0x00fe, 0x0120, 0x0120, 0x0100, 0x0000, // 'f'
195  0x0018, 0x0025, 0x0025, 0x0025, 0x001e, 0x0000, // 'g'
196  0x01fe, 0x0020, 0x0020, 0x0020, 0x001e, 0x0000, // 'h'
197  0x0000, 0x0020, 0x00be, 0x0000, 0x0000, 0x0000, // 'i'
198  0x0000, 0x0001, 0x0021, 0x00be, 0x0000, 0x0000, // 'j'
199  0x01fe, 0x0010, 0x0028, 0x0046, 0x0000, 0x0000, // 'k'
200  0x0000, 0x0100, 0x01fc, 0x0002, 0x0000, 0x0000, // 'l'
201  0x003e, 0x0020, 0x001e, 0x0020, 0x001e, 0x0000, // 'm'
202  0x0000, 0x003e, 0x0020, 0x0020, 0x001e, 0x0000, // 'n'
203  0x001c, 0x0022, 0x0022, 0x0022, 0x001c, 0x0000, // 'o'
204  0x003f, 0x0024, 0x0024, 0x0024, 0x0018, 0x0000, // 'p'
205  0x0018, 0x0024, 0x0024, 0x0024, 0x003f, 0x0000, // 'q'
206  0x003e, 0x0010, 0x0020, 0x0020, 0x0010, 0x0000, // 'r'
207  0x0012, 0x002a, 0x002a, 0x002a, 0x0024, 0x0000, // 's'
208  0x0000, 0x01fc, 0x0042, 0x0042, 0x0002, 0x0000, // 't'
209  0x003c, 0x0002, 0x0002, 0x0002, 0x003e, 0x0000, // 'u'
210  0x0030, 0x000c, 0x0002, 0x000c, 0x0030, 0x0000, // 'v'
211  0x003c, 0x0002, 0x001c, 0x0002, 0x003c, 0x0000, // 'w'
212  0x0022, 0x0014, 0x0008, 0x0014, 0x0022, 0x0000, // 'x'
213  0x0038, 0x0005, 0x0005, 0x0005, 0x003e, 0x0000, // 'y'
214  0x0022, 0x0026, 0x002a, 0x0032, 0x0022, 0x0000, // 'z'
215  0x0000, 0x0020, 0x01dc, 0x0202, 0x0000, 0x0000, // '{'
216  0x0000, 0x0000, 0x03fe, 0x0000, 0x0000, 0x0000, // '|'
217  0x0000, 0x0202, 0x01dc, 0x0020, 0x0000, 0x0000, // '}'
218  0x0020, 0x0040, 0x0040, 0x0020, 0x0020, 0x0040, // '~'
219 };
220 
222 static const uint16_t font_king14[FONT_GLYPH_NUMBERS*9] = {
223  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // ' '
224  0x0000, 0x0000, 0x0000, 0x1fe6, 0x1fe6, 0x0000, 0x0000, 0x0000, 0x0000, // '!'
225  0x0000, 0x0e00, 0x0e00, 0x0000, 0x0000, 0x0e00, 0x0e00, 0x0000, 0x0000, // '"'
226  0x0330, 0x0ffc, 0x0ffc, 0x0330, 0x0330, 0x0ffc, 0x0ffc, 0x0330, 0x0000, // '#'
227  0x0718, 0x0f9c, 0x1dce, 0x18c6, 0x3fff, 0x18c6, 0x1cee, 0x0e7c, 0x0638, // '$'
228  0x041e, 0x0e3e, 0x1b70, 0x0ee0, 0x05d0, 0x03b8, 0x076c, 0x3e38, 0x3c10, // '%'
229  0x0e78, 0x1ffe, 0x3186, 0x3186, 0x1fce, 0x0e7c, 0x0038, 0x006c, 0x00c6, // '&'
230  0x0000, 0x0000, 0x0000, 0x0e00, 0x0e00, 0x0000, 0x0000, 0x0000, 0x0000, // '''
231  0x0000, 0x0000, 0x07f8, 0x0ffc, 0x1c0e, 0x3807, 0x3003, 0x0000, 0x0000, // '('
232  0x0000, 0x0000, 0x3003, 0x3807, 0x1c0e, 0x0ffc, 0x03f0, 0x0000, 0x0000, // ')'
233  0x0ccc, 0x06d8, 0x03f0, 0x0ffc, 0x0ffc, 0x03f0, 0x06d8, 0x0ccc, 0x0000, // '*'
234  0x0000, 0x01c0, 0x01c0, 0x07f0, 0x07f0, 0x07f0, 0x01c0, 0x01c0, 0x0000, // '+'
235  0x0000, 0x0000, 0x0003, 0x0007, 0x001e, 0x001c, 0x0000, 0x0000, 0x0000, // ','
236  0x0000, 0x00c0, 0x00c0, 0x00c0, 0x00c0, 0x00c0, 0x00c0, 0x00c0, 0x0000, // '-'
237  0x0000, 0x0000, 0x0000, 0x000c, 0x000c, 0x0000, 0x0000, 0x0000, 0x0000, // '.'
238  0x0003, 0x000f, 0x003c, 0x00f0, 0x03c0, 0x0f00, 0x3c00, 0x3000, 0x0000, // '/'
239  0x0ffc, 0x1ffe, 0x3033, 0x3063, 0x30c3, 0x3183, 0x3303, 0x1ffe, 0x0ffc, // '0'
240  0x0000, 0x0000, 0x0600, 0x0e00, 0x1e00, 0x3fff, 0x3fff, 0x0000, 0x0000, // '1'
241  0x0c07, 0x1c0f, 0x381f, 0x303b, 0x3073, 0x30e3, 0x39c3, 0x1f83, 0x0f03, // '2'
242  0x3003, 0x3003, 0x30c3, 0x30c3, 0x30c3, 0x30c3, 0x39e7, 0x1ffe, 0x0f3c, // '3'
243  0x00f0, 0x01f0, 0x03b0, 0x0730, 0x0e30, 0x1c30, 0x3fff, 0x3fff, 0x0030, // '4'
244  0x3f1c, 0x3f1e, 0x3307, 0x3303, 0x3303, 0x3303, 0x3387, 0x31fe, 0x30fc, // '5'
245  0x0ffc, 0x1ffe, 0x39c7, 0x3183, 0x3183, 0x3183, 0x31c7, 0x30fe, 0x007c, // '6'
246  0x3000, 0x3000, 0x3000, 0x30ff, 0x31ff, 0x3380, 0x3700, 0x3e00, 0x3c00, // '7'
247  0x0f7c, 0x1ffe, 0x39e7, 0x30c3, 0x30c3, 0x30c3, 0x39e7, 0x1ffe, 0x0f3c, // '8'
248  0x0f80, 0x1fc3, 0x38e3, 0x3063, 0x3063, 0x3063, 0x38e7, 0x1ffe, 0x0ffc, // '9'
249  0x0000, 0x0000, 0x0000, 0x071c, 0x071c, 0x0000, 0x0000, 0x0000, 0x0000, // ':'
250  0x0000, 0x0000, 0x0003, 0x0007, 0x071e, 0x071c, 0x0000, 0x0000, 0x0000, // ';'
251  0x0000, 0x01c0, 0x03e0, 0x0770, 0x0e38, 0x1c1c, 0x380e, 0x3006, 0x0000, // '<'
252  0x0000, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0000, // '='
253  0x0000, 0x3006, 0x380e, 0x1c1c, 0x0e38, 0x0770, 0x03e0, 0x01c0, 0x0000, // '>'
254  0x0c00, 0x1c00, 0x3800, 0x303b, 0x307b, 0x30e0, 0x39c0, 0x1f80, 0x0f00, // '?'
255  0x07f8, 0x0ffc, 0x1c0e, 0x19e6, 0x1bf6, 0x1b36, 0x1f36, 0x0ff6, 0x07e6, // '@'
256  0x0fff, 0x1fff, 0x38c0, 0x30c0, 0x30c0, 0x30c0, 0x38c0, 0x1fff, 0x0fff, // 'A'
257  0x3fff, 0x3fff, 0x30c3, 0x30c3, 0x30c3, 0x30c3, 0x39e7, 0x1ffe, 0x0f3c, // 'B'
258  0x0ffc, 0x1ffe, 0x3807, 0x3003, 0x3003, 0x3003, 0x3003, 0x3003, 0x3003, // 'C'
259  0x3fff, 0x3fff, 0x3003, 0x3003, 0x3003, 0x3807, 0x1c0e, 0x0ffc, 0x07f8, // 'D'
260  0x3fff, 0x3fff, 0x30c3, 0x30c3, 0x30c3, 0x30c3, 0x30c3, 0x3003, 0x3003, // 'E'
261  0x3fff, 0x3fff, 0x3180, 0x3180, 0x3180, 0x3180, 0x3180, 0x3000, 0x3000, // 'F'
262  0x1ffe, 0x3fff, 0x3807, 0x3003, 0x3003, 0x30c3, 0x30c3, 0x38ff, 0x18fe, // 'G'
263  0x3fff, 0x3fff, 0x00c0, 0x00c0, 0x00c0, 0x00c0, 0x00c0, 0x3fff, 0x3fff, // 'H'
264  0x3003, 0x3003, 0x3003, 0x3fff, 0x3fff, 0x3003, 0x3003, 0x3003, 0x0000, // 'I'
265  0x0000, 0x3003, 0x3007, 0x300e, 0x301c, 0x3ff8, 0x3ff0, 0x0000, 0x0000, // 'J'
266  0x3fff, 0x3fff, 0x01e0, 0x03f0, 0x0738, 0x0e1c, 0x1c0e, 0x3807, 0x3003, // 'K'
267  0x3fff, 0x3fff, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, // 'L'
268  0x3fff, 0x3fff, 0x1c00, 0x0e00, 0x0700, 0x0e00, 0x1c00, 0x3fff, 0x3fff, // 'M'
269  0x3fff, 0x3fff, 0x0700, 0x0380, 0x01c0, 0x00e0, 0x0070, 0x3fff, 0x3fff, // 'N'
270  0x0ffc, 0x1ffe, 0x3807, 0x3003, 0x3003, 0x3003, 0x3807, 0x1ffe, 0x0ffc, // 'O'
271  0x3fff, 0x3fff, 0x3060, 0x3060, 0x3060, 0x3060, 0x38e0, 0x1fc0, 0x0f80, // 'P'
272  0x0ffc, 0x1ffe, 0x3003, 0x3003, 0x301b, 0x301f, 0x300e, 0x1fff, 0x0ffb, // 'Q'
273  0x3fff, 0x3fff, 0x30e0, 0x30f0, 0x30f8, 0x30dc, 0x39ce, 0x1f87, 0x0f03, // 'R'
274  0x0f03, 0x1f83, 0x39c3, 0x30c3, 0x30c3, 0x30c3, 0x30e7, 0x307e, 0x303c, // 'S'
275  0x3000, 0x3000, 0x3000, 0x3fff, 0x3fff, 0x3fff, 0x3000, 0x3000, 0x3000, // 'T'
276  0x3ffc, 0x3ffe, 0x0007, 0x0003, 0x0003, 0x0003, 0x0007, 0x3ffe, 0x3ffc, // 'U'
277  0x3ff0, 0x3ff8, 0x003c, 0x001e, 0x000f, 0x001e, 0x003c, 0x3ff8, 0x3ff0, // 'V'
278  0x3ffc, 0x3ffe, 0x000f, 0x001e, 0x003c, 0x001e, 0x000f, 0x3ffe, 0x3ffc, // 'W'
279  0x3e1f, 0x3f3f, 0x03f0, 0x01e0, 0x00c0, 0x01e0, 0x03f0, 0x3f3f, 0x3e1f, // 'X'
280  0x3f00, 0x3f80, 0x01c0, 0x00ff, 0x007f, 0x00ff, 0x01c0, 0x3f80, 0x3f00, // 'Y'
281  0x300f, 0x301f, 0x303b, 0x3073, 0x30e3, 0x31c3, 0x3383, 0x3f03, 0x3e03, // 'Z'
282  0x0000, 0x0000, 0x3fff, 0x3fff, 0x3003, 0x3003, 0x3003, 0x3003, 0x0000, // '['
283  0x3000, 0x3c00, 0x0f00, 0x03c0, 0x00f0, 0x003c, 0x000f, 0x0003, 0x0000, // '\'
284  0x0000, 0x0000, 0x3003, 0x3003, 0x3003, 0x3003, 0x3fff, 0x3fff, 0x0000, // ']'
285  0x0000, 0x0380, 0x0700, 0x0e00, 0x1c00, 0x0e00, 0x0700, 0x0380, 0x0000, // '^'
286  0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, // '_'
287  0x0000, 0x0000, 0x1800, 0x1c00, 0x0e00, 0x0700, 0x0300, 0x0000, 0x0000, // '`'
288  0x0000, 0x001c, 0x01be, 0x01b6, 0x01b6, 0x01b6, 0x01fe, 0x00fe, 0x0000, // 'a'
289  0x0000, 0x0ffe, 0x0ffe, 0x00c6, 0x00c6, 0x00c6, 0x00fe, 0x007c, 0x0000, // 'b'
290  0x0000, 0x00fc, 0x01fe, 0x0186, 0x0186, 0x0186, 0x0186, 0x0186, 0x0000, // 'c'
291  0x0000, 0x007c, 0x00fe, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x0ffe, 0x0ffe, // 'd'
292  0x0000, 0x00fc, 0x01fe, 0x01b6, 0x01b6, 0x01b6, 0x01f6, 0x00e0, 0x0000, // 'e'
293  0x0000, 0x00c0, 0x00c0, 0x07fe, 0x0ffe, 0x0cc0, 0x0cc0, 0x0c00, 0x0000, // 'f'
294  0x0000, 0x01e0, 0x03f3, 0x0333, 0x0333, 0x0333, 0x03ff, 0x01fe, 0x0000, // 'g'
295  0x0000, 0x0ffe, 0x0ffe, 0x00c0, 0x00c0, 0x00c0, 0x00fe, 0x007e, 0x0000, // 'h'
296  0x0000, 0x0000, 0x0000, 0x00c0, 0x06fe, 0x06fe, 0x0000, 0x0000, 0x0000, // 'i'
297  0x0000, 0x0000, 0x0003, 0x0187, 0x0dfe, 0x0dfc, 0x0000, 0x0000, 0x0000, // 'j'
298  0x0000, 0x0ffe, 0x0ffe, 0x0078, 0x00fc, 0x01ce, 0x0186, 0x0102, 0x0000, // 'k'
299  0x0000, 0x0800, 0x0ffc, 0x0ffe, 0x0002, 0x0000, 0x0000, 0x0000, 0x0000, // 'l'
300  0x0000, 0x01fe, 0x01fe, 0x0180, 0x00fe, 0x0180, 0x01fe, 0x00fe, 0x0000, // 'm'
301  0x0000, 0x01fe, 0x01fe, 0x0180, 0x0180, 0x0180, 0x01fe, 0x00fe, 0x0000, // 'n'
302  0x0000, 0x00fc, 0x01fe, 0x0186, 0x0186, 0x0186, 0x01fe, 0x00fc, 0x0000, // 'o'
303  0x0000, 0x03ff, 0x03ff, 0x0318, 0x0318, 0x0318, 0x03f8, 0x01f0, 0x0000, // 'p'
304  0x0000, 0x01f0, 0x03f8, 0x0318, 0x0318, 0x0318, 0x03ff, 0x03ff, 0x0000, // 'q'
305  0x0000, 0x01fe, 0x01fe, 0x00c0, 0x0180, 0x0180, 0x01c0, 0x00c0, 0x0000, // 'r'
306  0x0000, 0x00e6, 0x01f6, 0x01b6, 0x01b6, 0x01b6, 0x01be, 0x019c, 0x0000, // 's'
307  0x0000, 0x0000, 0x0ffc, 0x0ffe, 0x00c6, 0x00c6, 0x00c6, 0x0006, 0x0000, // 't'
308  0x0000, 0x01fc, 0x01fe, 0x0006, 0x0006, 0x0006, 0x01fe, 0x01fe, 0x0000, // 'u'
309  0x0000, 0x01f0, 0x01f8, 0x001c, 0x000e, 0x001c, 0x01f8, 0x01f0, 0x0000, // 'v'
310  0x0000, 0x01fc, 0x01fe, 0x0006, 0x007c, 0x0006, 0x01fe, 0x01fc, 0x0000, // 'w'
311  0x0000, 0x01c6, 0x01ee, 0x007c, 0x0038, 0x007c, 0x01ee, 0x01c6, 0x0000, // 'x'
312  0x0000, 0x01f0, 0x01fb, 0x001b, 0x001b, 0x001b, 0x01ff, 0x01fe, 0x0000, // 'y'
313  0x0000, 0x0186, 0x018e, 0x019e, 0x01b6, 0x01e6, 0x01c6, 0x0186, 0x0000, // 'z'
314  0x0000, 0x00c0, 0x01e0, 0x0ffc, 0x1f3e, 0x3807, 0x3003, 0x0000, 0x0000, // '{'
315  0x0000, 0x0000, 0x0000, 0x1fff, 0x1fff, 0x0000, 0x0000, 0x0000, 0x0000, // '|'
316  0x0000, 0x3003, 0x3807, 0x1f3e, 0x0ffc, 0x01e0, 0x00c0, 0x0000, 0x0000, // '}'
317  0x0180, 0x0380, 0x0700, 0x0700, 0x0300, 0x0380, 0x0380, 0x0700, 0x0600, // '~'
318 };
319 
321 const struct font_s fonts[FONT_MAX] = {
322  [FONT_KING8] = {
323  .width = sizeof(font_king8)/sizeof(font_king8[0])/FONT_GLYPH_NUMBERS, // 5
324  .height = 8,
325  .glyphs = font_king8,
326  },
327  [FONT_KING10] = {
328  .width = sizeof(font_king10)/sizeof(font_king10[0])/FONT_GLYPH_NUMBERS, // 6
329  .height = 10,
330  .glyphs = font_king10,
331  },
332  [FONT_KING14] = {
333  .width = sizeof(font_king14)/sizeof(font_king14[0])/FONT_GLYPH_NUMBERS, // 9
334  .height = 14,
335  .glyphs = font_king14,
336  },
337 };
const struct font_s fonts[FONT_MAX]
list of all available fonts
Definition: font.c:321
const uint16_t font_king8[FONT_GLYPH_NUMBERS *5]
8x5 px monospace bitmap font
Definition: font.c:24
#define FONT_GLYPH_NUMBERS
number of available glyphs (starting with &#39; &#39; and ending with &#39;~&#39;)
Definition: font.h:38
number of fonts available
Definition: font.h:27
custom 8x5 monospace font
Definition: font.h:24
font structure containing all properties
Definition: font.h:31
static const uint16_t font_king14[FONT_GLYPH_NUMBERS *9]
14*9 px monospace bitmap font
Definition: font.c:222
uint8_t width
font width in pixels
Definition: font.h:32
custom 14x9 monospace font
Definition: font.h:26
static const uint16_t font_king10[FONT_GLYPH_NUMBERS *6]
10x6 px monospace bitmap font
Definition: font.c:123
monospace pixel fonts collection (API)
custom 10x6 monospace font
Definition: font.h:25