1 /******************************************************************************* 2 * Size: 20 px 3 * Bpp: 1 4 * Opts: 5 ******************************************************************************/ 6 7 #include "../../../lvgl.h" 8 #if LV_BUILD_TEST 9 10 #ifndef TEST_FONT_MONTSERRAT_ASCII_1BPP 11 #define TEST_FONT_MONTSERRAT_ASCII_1BPP 1 12 #endif 13 14 #if TEST_FONT_MONTSERRAT_ASCII_1BPP 15 16 /*----------------- 17 * BITMAPS 18 *----------------*/ 19 20 /*Store the image of the glyphs*/ 21 static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = { 22 /* U+0020 " " */ 23 0x0, 24 25 /* U+0021 "!" */ 26 0xff, 0xff, 0xf0, 0x30, 27 28 /* U+0022 "\"" */ 29 0xde, 0xf7, 0xbd, 0x80, 30 31 /* U+0023 "#" */ 32 0x8, 0x40, 0x42, 0x2, 0x10, 0xff, 0xf0, 0x8c, 33 0xc, 0x60, 0x63, 0x3, 0x18, 0x18, 0x87, 0xff, 34 0x84, 0x20, 0x21, 0x1, 0x8, 0x8, 0x40, 35 36 /* U+0024 "$" */ 37 0xc, 0x3, 0x0, 0xc0, 0xfe, 0x6c, 0xb3, 0xc, 38 0xc3, 0x30, 0xec, 0x1f, 0x81, 0xf8, 0x37, 0xc, 39 0xc3, 0x38, 0xcf, 0x36, 0x7f, 0x3, 0x0, 0xc0, 40 0x30, 41 42 /* U+0025 "%" */ 43 0x38, 0x8, 0x6c, 0x10, 0xc6, 0x30, 0xc6, 0x20, 44 0xc6, 0x40, 0x6c, 0xc0, 0x38, 0x9c, 0x1, 0x36, 45 0x3, 0x63, 0x2, 0x63, 0x4, 0x63, 0xc, 0x63, 46 0x8, 0x36, 0x10, 0x1c, 47 48 /* U+0026 "&" */ 49 0x1f, 0x1, 0x8c, 0xc, 0x60, 0x63, 0x3, 0xb8, 50 0xf, 0x80, 0x70, 0x7, 0xc0, 0x63, 0x36, 0xd, 51 0xb0, 0x79, 0x81, 0xc6, 0x1f, 0x1f, 0x98, 0x0, 52 0x40, 53 54 /* U+0027 "'" */ 55 0xff, 0xc0, 56 57 /* U+0028 "(" */ 58 0x33, 0x66, 0x6c, 0xcc, 0xcc, 0xcc, 0xcc, 0x66, 59 0x63, 0x30, 60 61 /* U+0029 ")" */ 62 0xcc, 0x66, 0x63, 0x33, 0x33, 0x33, 0x33, 0x66, 63 0x6c, 0xc0, 64 65 /* U+002A "*" */ 66 0x11, 0x27, 0xf9, 0xcf, 0xf2, 0x44, 0x0, 67 68 /* U+002B "+" */ 69 0x18, 0xc, 0x6, 0x3, 0xf, 0xf8, 0xc0, 0x60, 70 0x30, 0x18, 0x0, 71 72 /* U+002C "," */ 73 0xf6, 0x80, 74 75 /* U+002D "-" */ 76 0xf8, 77 78 /* U+002E "." */ 79 0xfc, 80 81 /* U+002F "/" */ 82 0x1, 0x80, 0x80, 0xc0, 0x60, 0x20, 0x30, 0x18, 83 0x8, 0xc, 0x6, 0x2, 0x3, 0x1, 0x80, 0x80, 84 0xc0, 0x60, 0x20, 0x30, 0x18, 0x8, 0x0, 85 86 /* U+0030 "0" */ 87 0x1f, 0x6, 0x31, 0x83, 0x30, 0x6c, 0x7, 0x80, 88 0xf0, 0x1e, 0x3, 0xc0, 0x78, 0xd, 0x3, 0x30, 89 0x63, 0x18, 0x3e, 0x0, 90 91 /* U+0031 "1" */ 92 0xf8, 0xc6, 0x31, 0x8c, 0x63, 0x18, 0xc6, 0x31, 93 0x8c, 94 95 /* U+0032 "2" */ 96 0x7e, 0x30, 0xc0, 0x18, 0x6, 0x1, 0x80, 0xe0, 97 0x30, 0x1c, 0xe, 0x7, 0x3, 0x81, 0xc0, 0x60, 98 0x3f, 0xf0, 99 100 /* U+0033 "3" */ 101 0x7f, 0xc0, 0x18, 0x6, 0x1, 0x80, 0x70, 0xc, 102 0x3, 0xe0, 0x1e, 0x0, 0xe0, 0xc, 0x1, 0x80, 103 0x36, 0xc, 0x7e, 0x0, 104 105 /* U+0034 "4" */ 106 0x1, 0x80, 0x30, 0x7, 0x0, 0x60, 0xc, 0x1, 107 0x80, 0x38, 0xc7, 0xc, 0x60, 0xcf, 0xff, 0x0, 108 0xc0, 0xc, 0x0, 0xc0, 0xc, 109 110 /* U+0035 "5" */ 111 0x7f, 0x98, 0x6, 0x1, 0x80, 0x60, 0x18, 0x7, 112 0xf0, 0x6, 0x0, 0xc0, 0x30, 0xe, 0x3, 0xc1, 113 0x9f, 0xc0, 114 115 /* U+0036 "6" */ 116 0xf, 0xc6, 0x9, 0x80, 0x20, 0xc, 0x1, 0xbf, 117 0x3c, 0x37, 0x3, 0xe0, 0x7c, 0xd, 0x81, 0xb0, 118 0x33, 0xc, 0x3e, 0x0, 119 120 /* U+0037 "7" */ 121 0xff, 0xf8, 0x1b, 0x3, 0x60, 0xc0, 0x18, 0x7, 122 0x0, 0xc0, 0x18, 0x6, 0x0, 0xc0, 0x30, 0x6, 123 0x1, 0xc0, 0x30, 0x0, 124 125 /* U+0038 "8" */ 126 0x3f, 0x8c, 0x1b, 0x1, 0xe0, 0x3c, 0x6, 0xc1, 127 0x8f, 0xe3, 0x6, 0xc0, 0x78, 0xf, 0x1, 0xe0, 128 0x36, 0xc, 0x3e, 0x0, 129 130 /* U+0039 "9" */ 131 0x3f, 0xc, 0x33, 0x3, 0x60, 0x6c, 0xf, 0x81, 132 0xd8, 0x79, 0xfb, 0x0, 0x60, 0xc, 0x3, 0x0, 133 0x64, 0x38, 0xfc, 0x0, 134 135 /* U+003A ":" */ 136 0xfc, 0x0, 0xfc, 137 138 /* U+003B ";" */ 139 0xfc, 0x0, 0x3d, 0xa0, 140 141 /* U+003C "<" */ 142 0x0, 0x81, 0xc3, 0xcf, 0xe, 0x7, 0x80, 0xf0, 143 0x1f, 0x1, 0x80, 144 145 /* U+003D "=" */ 146 0xff, 0x80, 0x0, 0x0, 0x0, 0x7, 0xfc, 147 148 /* U+003E ">" */ 149 0x80, 0x70, 0x1f, 0x1, 0xe0, 0x38, 0x3c, 0x79, 150 0xf0, 0xc0, 0x0, 151 152 /* U+003F "?" */ 153 0x3f, 0x38, 0x64, 0xc, 0x3, 0x0, 0xc0, 0x70, 154 0x38, 0x1c, 0xe, 0x3, 0x0, 0xc0, 0x0, 0x0, 155 0x3, 0x0, 156 157 /* U+0040 "@" */ 158 0x3, 0xf8, 0x1, 0xc1, 0xc0, 0x60, 0xc, 0x18, 159 0x0, 0xc6, 0x1f, 0x6c, 0xce, 0x3d, 0xb1, 0x83, 160 0x9e, 0x60, 0x33, 0xcc, 0x6, 0x79, 0x80, 0xcf, 161 0x30, 0x19, 0xe3, 0x7, 0x36, 0x71, 0xec, 0xc3, 162 0xe7, 0xc, 0x0, 0x0, 0xc0, 0x0, 0xe, 0x4, 163 0x0, 0x7f, 0x0, 164 165 /* U+0041 "A" */ 166 0x3, 0x80, 0x7, 0x0, 0x1e, 0x0, 0x36, 0x0, 167 0xcc, 0x1, 0x8c, 0x6, 0x18, 0xc, 0x18, 0x38, 168 0x30, 0x7f, 0xf0, 0x80, 0x63, 0x0, 0x66, 0x0, 169 0xd8, 0x1, 0x80, 170 171 /* U+0042 "B" */ 172 0xff, 0x8c, 0xc, 0xc0, 0x6c, 0x6, 0xc0, 0x6c, 173 0xc, 0xff, 0xcc, 0x6, 0xc0, 0x3c, 0x3, 0xc0, 174 0x3c, 0x3, 0xc0, 0x6f, 0xfc, 175 176 /* U+0043 "C" */ 177 0x7, 0xe0, 0xc1, 0xcc, 0x4, 0xc0, 0xc, 0x0, 178 0x60, 0x3, 0x0, 0x18, 0x0, 0xc0, 0x6, 0x0, 179 0x18, 0x0, 0x60, 0x21, 0x83, 0x87, 0xf0, 180 181 /* U+0044 "D" */ 182 0xff, 0x86, 0x6, 0x30, 0x19, 0x80, 0x6c, 0x1, 183 0xe0, 0xf, 0x0, 0x78, 0x3, 0xc0, 0x1e, 0x0, 184 0xf0, 0xd, 0x80, 0xec, 0xc, 0x7f, 0xc0, 185 186 /* U+0045 "E" */ 187 0xff, 0xf0, 0xc, 0x3, 0x0, 0xc0, 0x30, 0xf, 188 0xfb, 0x0, 0xc0, 0x30, 0xc, 0x3, 0x0, 0xc0, 189 0x3f, 0xf0, 190 191 /* U+0046 "F" */ 192 0xff, 0xf0, 0xc, 0x3, 0x0, 0xc0, 0x30, 0xc, 193 0x3, 0xfe, 0xc0, 0x30, 0xc, 0x3, 0x0, 0xc0, 194 0x30, 0x0, 195 196 /* U+0047 "G" */ 197 0x7, 0xe0, 0xc1, 0xcc, 0x4, 0xc0, 0xc, 0x0, 198 0x60, 0x3, 0x0, 0x18, 0x3, 0xc0, 0x1e, 0x0, 199 0xd8, 0x6, 0x60, 0x31, 0x83, 0x83, 0xf8, 200 201 /* U+0048 "H" */ 202 0xc0, 0x3c, 0x3, 0xc0, 0x3c, 0x3, 0xc0, 0x3c, 203 0x3, 0xff, 0xfc, 0x3, 0xc0, 0x3c, 0x3, 0xc0, 204 0x3c, 0x3, 0xc0, 0x3c, 0x3, 205 206 /* U+0049 "I" */ 207 0xff, 0xff, 0xff, 0xf0, 208 209 /* U+004A "J" */ 210 0x7f, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 211 0x3, 0x3, 0x3, 0x83, 0xc6, 0x7c, 212 213 /* U+004B "K" */ 214 0xc0, 0x6c, 0xc, 0xc1, 0xcc, 0x38, 0xc7, 0xc, 215 0xe0, 0xdc, 0xf, 0xe0, 0xf7, 0xe, 0x38, 0xc1, 216 0x8c, 0xc, 0xc0, 0x6c, 0x7, 217 218 /* U+004C "L" */ 219 0xc0, 0x30, 0xc, 0x3, 0x0, 0xc0, 0x30, 0xc, 220 0x3, 0x0, 0xc0, 0x30, 0xc, 0x3, 0x0, 0xc0, 221 0x3f, 0xf0, 222 223 /* U+004D "M" */ 224 0xc0, 0x7, 0xc0, 0x1f, 0x80, 0x3f, 0x80, 0xff, 225 0x1, 0xfb, 0x6, 0xf3, 0x19, 0xe6, 0x33, 0xc6, 226 0xc7, 0x8d, 0x8f, 0xe, 0x1e, 0x8, 0x3c, 0x0, 227 0x78, 0x0, 0xc0, 228 229 /* U+004E "N" */ 230 0xc0, 0x3e, 0x3, 0xf0, 0x3f, 0x3, 0xd8, 0x3c, 231 0xc3, 0xce, 0x3c, 0x73, 0xc3, 0x3c, 0x1b, 0xc0, 232 0xfc, 0xf, 0xc0, 0x7c, 0x3, 233 234 /* U+004F "O" */ 235 0x7, 0xc0, 0x30, 0x60, 0xc0, 0x63, 0x0, 0x6c, 236 0x0, 0x78, 0x0, 0xf0, 0x1, 0xe0, 0x3, 0xc0, 237 0x7, 0x80, 0xd, 0x80, 0x31, 0x80, 0xc1, 0x83, 238 0x0, 0xf8, 0x0, 239 240 /* U+0050 "P" */ 241 0xff, 0x18, 0x3b, 0x1, 0xe0, 0x3c, 0x7, 0x80, 242 0xf0, 0x3e, 0xe, 0xff, 0x18, 0x3, 0x0, 0x60, 243 0xc, 0x1, 0x80, 0x0, 244 245 /* U+0051 "Q" */ 246 0x7, 0xc0, 0x18, 0x30, 0x30, 0x18, 0x60, 0xc, 247 0xc0, 0x6, 0xc0, 0x6, 0xc0, 0x6, 0xc0, 0x6, 248 0xc0, 0x6, 0xc0, 0x6, 0x60, 0xc, 0x30, 0x18, 249 0x18, 0x30, 0xf, 0xe0, 0x1, 0xc2, 0x0, 0xe2, 250 0x0, 0x3c, 251 252 /* U+0052 "R" */ 253 0xff, 0x18, 0x3b, 0x1, 0xe0, 0x3c, 0x7, 0x80, 254 0xf0, 0x3e, 0xe, 0xff, 0x98, 0x63, 0x6, 0x60, 255 0x6c, 0xd, 0x80, 0xc0, 256 257 /* U+0053 "S" */ 258 0x3f, 0x98, 0x6c, 0x3, 0x0, 0xc0, 0x3c, 0x7, 259 0xf0, 0xfe, 0x7, 0xc0, 0x70, 0xe, 0x3, 0xc1, 260 0x9f, 0xc0, 261 262 /* U+0054 "T" */ 263 0xff, 0xf0, 0x60, 0x6, 0x0, 0x60, 0x6, 0x0, 264 0x60, 0x6, 0x0, 0x60, 0x6, 0x0, 0x60, 0x6, 265 0x0, 0x60, 0x6, 0x0, 0x60, 266 267 /* U+0055 "U" */ 268 0xc0, 0x3c, 0x3, 0xc0, 0x3c, 0x3, 0xc0, 0x3c, 269 0x3, 0xc0, 0x3c, 0x3, 0xc0, 0x3c, 0x3, 0xc0, 270 0x36, 0x6, 0x30, 0xc1, 0xf8, 271 272 /* U+0056 "V" */ 273 0xc0, 0xd, 0x80, 0x36, 0x1, 0x8c, 0x6, 0x30, 274 0x30, 0xe0, 0xc1, 0x86, 0x6, 0x18, 0xc, 0xe0, 275 0x33, 0x0, 0x6c, 0x1, 0xe0, 0x7, 0x80, 0xc, 276 0x0, 277 278 /* U+0057 "W" */ 279 0xc0, 0x60, 0x1e, 0x3, 0x81, 0xb8, 0x1c, 0xc, 280 0xc1, 0xa0, 0x66, 0xd, 0x86, 0x38, 0xcc, 0x30, 281 0xc6, 0x21, 0x86, 0x31, 0x98, 0x3b, 0xc, 0xc0, 282 0xd8, 0x26, 0x6, 0xc1, 0xe0, 0x3c, 0xf, 0x0, 283 0xe0, 0x38, 0x7, 0x1, 0x80, 284 285 /* U+0058 "X" */ 286 0x60, 0x31, 0x81, 0x8e, 0x18, 0x31, 0x80, 0xdc, 287 0x3, 0xc0, 0x1c, 0x0, 0xe0, 0xf, 0x80, 0x66, 288 0x6, 0x38, 0x60, 0xc7, 0x3, 0x30, 0xc, 289 290 /* U+0059 "Y" */ 291 0x60, 0x19, 0xc0, 0x63, 0x3, 0x6, 0x18, 0x18, 292 0x60, 0x33, 0x0, 0xec, 0x1, 0xe0, 0x3, 0x0, 293 0xc, 0x0, 0x30, 0x0, 0xc0, 0x3, 0x0, 0xc, 294 0x0, 295 296 /* U+005A "Z" */ 297 0xff, 0xe0, 0xe, 0x1, 0xc0, 0x18, 0x3, 0x0, 298 0x70, 0x6, 0x0, 0xc0, 0x1c, 0x1, 0x80, 0x30, 299 0x7, 0x0, 0xe0, 0xf, 0xff, 300 301 /* U+005B "[" */ 302 0xfc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 303 0xcc, 0xf0, 304 305 /* U+005C "\\" */ 306 0xc0, 0x20, 0x18, 0xc, 0x2, 0x1, 0x80, 0xc0, 307 0x20, 0x18, 0xc, 0x2, 0x1, 0x80, 0xc0, 0x20, 308 0x18, 0xc, 0x2, 0x1, 0x80, 0xc0, 0x20, 309 310 /* U+005D "]" */ 311 0xf8, 0xc6, 0x31, 0x8c, 0x63, 0x18, 0xc6, 0x31, 312 0x8c, 0x63, 0x18, 0xfe, 313 314 /* U+005E "^" */ 315 0xc, 0x6, 0x7, 0x2, 0xc3, 0x21, 0x18, 0x84, 316 0xc3, 0x41, 0x80, 317 318 /* U+005F "_" */ 319 0xff, 0xc0, 320 321 /* U+0060 "`" */ 322 0xe0, 0xc1, 0x80, 323 324 /* U+0061 "a" */ 325 0x7e, 0x21, 0x80, 0x60, 0x30, 0x1b, 0xff, 0x87, 326 0x83, 0xc1, 0xf1, 0xdf, 0x60, 327 328 /* U+0062 "b" */ 329 0xc0, 0x18, 0x3, 0x0, 0x60, 0xd, 0xf1, 0xe3, 330 0x38, 0x36, 0x3, 0xc0, 0x78, 0xf, 0x1, 0xe0, 331 0x3e, 0xd, 0xe3, 0xb7, 0xc0, 332 333 /* U+0063 "c" */ 334 0x1f, 0xc, 0x76, 0xb, 0x0, 0xc0, 0x30, 0xc, 335 0x3, 0x0, 0x60, 0x8c, 0x71, 0xf0, 336 337 /* U+0064 "d" */ 338 0x0, 0x60, 0xc, 0x1, 0x80, 0x31, 0xf6, 0x63, 339 0xd8, 0x3e, 0x3, 0xc0, 0x78, 0xf, 0x1, 0xe0, 340 0x36, 0xe, 0xe3, 0xc7, 0xd8, 341 342 /* U+0065 "e" */ 343 0x1f, 0x6, 0x31, 0x83, 0x60, 0x3c, 0x7, 0xff, 344 0xf0, 0x6, 0x0, 0x60, 0x6, 0x18, 0x7e, 0x0, 345 346 /* U+0066 "f" */ 347 0x1f, 0x30, 0x30, 0x30, 0xfe, 0x30, 0x30, 0x30, 348 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 349 350 /* U+0067 "g" */ 351 0x1f, 0x6e, 0x3d, 0x83, 0xe0, 0x3c, 0x7, 0x80, 352 0xf0, 0x1e, 0x3, 0x60, 0xe6, 0x3c, 0x7d, 0x80, 353 0x30, 0x4, 0xc1, 0x8f, 0xc0, 354 355 /* U+0068 "h" */ 356 0xc0, 0x30, 0xc, 0x3, 0x0, 0xdf, 0x38, 0x6e, 357 0xf, 0x3, 0xc0, 0xf0, 0x3c, 0xf, 0x3, 0xc0, 358 0xf0, 0x3c, 0xc, 359 360 /* U+0069 "i" */ 361 0xc0, 0xff, 0xff, 0xfc, 362 363 /* U+006A "j" */ 364 0x18, 0x0, 0x1, 0x8c, 0x63, 0x18, 0xc6, 0x31, 365 0x8c, 0x63, 0x18, 0xfc, 366 367 /* U+006B "k" */ 368 0xc0, 0x18, 0x3, 0x0, 0x60, 0xc, 0x1d, 0x87, 369 0x31, 0xc6, 0x70, 0xdc, 0x1f, 0x83, 0xd8, 0x73, 370 0x8c, 0x39, 0x83, 0x30, 0x30, 371 372 /* U+006C "l" */ 373 0xff, 0xff, 0xff, 0xfc, 374 375 /* U+006D "m" */ 376 0xdf, 0x1f, 0x38, 0x78, 0x6e, 0xe, 0xf, 0x3, 377 0x3, 0xc0, 0xc0, 0xf0, 0x30, 0x3c, 0xc, 0xf, 378 0x3, 0x3, 0xc0, 0xc0, 0xf0, 0x30, 0x3c, 0xc, 379 0xc, 380 381 /* U+006E "n" */ 382 0xdf, 0x38, 0x6e, 0xf, 0x3, 0xc0, 0xf0, 0x3c, 383 0xf, 0x3, 0xc0, 0xf0, 0x3c, 0xc, 384 385 /* U+006F "o" */ 386 0x1f, 0x6, 0x31, 0x83, 0x60, 0x3c, 0x7, 0x80, 387 0xf0, 0x1e, 0x3, 0x60, 0xc6, 0x30, 0x7c, 0x0, 388 389 /* U+0070 "p" */ 390 0xdf, 0x1e, 0x33, 0x83, 0x60, 0x3c, 0x7, 0x80, 391 0xf0, 0x1e, 0x3, 0xe0, 0xde, 0x3b, 0x7c, 0x60, 392 0xc, 0x1, 0x80, 0x30, 0x0, 393 394 /* U+0071 "q" */ 395 0x1f, 0x66, 0x3d, 0x83, 0xe0, 0x3c, 0x7, 0x80, 396 0xf0, 0x1e, 0x3, 0x60, 0xe6, 0x3c, 0x7d, 0x80, 397 0x30, 0x6, 0x0, 0xc0, 0x18, 398 399 /* U+0072 "r" */ 400 0xdf, 0x8e, 0x30, 0xc3, 0xc, 0x30, 0xc3, 0xc, 401 0x0, 402 403 /* U+0073 "s" */ 404 0x3f, 0x30, 0xb0, 0x18, 0xf, 0xc3, 0xf8, 0x7e, 405 0x7, 0x1, 0xe1, 0xbf, 0x80, 406 407 /* U+0074 "t" */ 408 0x30, 0x30, 0x30, 0xfe, 0x30, 0x30, 0x30, 0x30, 409 0x30, 0x30, 0x30, 0x30, 0x30, 0x1f, 410 411 /* U+0075 "u" */ 412 0xc0, 0xf0, 0x3c, 0xf, 0x3, 0xc0, 0xf0, 0x3c, 413 0xf, 0x3, 0xc1, 0xd8, 0x73, 0xec, 414 415 /* U+0076 "v" */ 416 0xc0, 0x6c, 0xd, 0x83, 0x30, 0x63, 0x18, 0x63, 417 0x6, 0x40, 0xd8, 0xb, 0x1, 0xc0, 0x38, 0x0, 418 419 /* U+0077 "w" */ 420 0xc0, 0xc0, 0xd0, 0x30, 0x26, 0x1e, 0x19, 0x87, 421 0x86, 0x31, 0x21, 0xc, 0xcc, 0xc3, 0x33, 0x30, 422 0x78, 0x78, 0x1e, 0x1e, 0x3, 0x3, 0x0, 0xc0, 423 0xc0, 424 425 /* U+0078 "x" */ 426 0x60, 0xc6, 0x30, 0xc6, 0xd, 0x80, 0xe0, 0x1c, 427 0x3, 0x80, 0xd8, 0x31, 0x8e, 0x39, 0x83, 0x0, 428 429 /* U+0079 "y" */ 430 0xc0, 0x6c, 0xd, 0x83, 0x30, 0x63, 0x8, 0x63, 431 0x6, 0x40, 0xd8, 0x1b, 0x1, 0xc0, 0x38, 0x2, 432 0x0, 0xc1, 0x10, 0x3c, 0x0, 433 434 /* U+007A "z" */ 435 0xff, 0x81, 0xc1, 0xc0, 0xc0, 0xc0, 0xe0, 0x60, 436 0x60, 0x70, 0x70, 0x3f, 0xe0, 437 438 /* U+007B "{" */ 439 0x1c, 0xc3, 0xc, 0x30, 0xc3, 0xc, 0x33, 0x83, 440 0xc, 0x30, 0xc3, 0xc, 0x30, 0xc1, 0xc0, 441 442 /* U+007C "|" */ 443 0xff, 0xff, 0xff, 0xff, 0xfc, 444 445 /* U+007D "}" */ 446 0xe0, 0xc3, 0xc, 0x30, 0xc3, 0xc, 0x30, 0x73, 447 0xc, 0x30, 0xc3, 0xc, 0x30, 0xce, 0x0, 448 449 /* U+007E "~" */ 450 0x70, 0xc4, 0x61, 0xc0 451 }; 452 453 /*--------------------- 454 * GLYPH DESCRIPTION 455 *--------------------*/ 456 457 static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = { 458 {.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */, 459 {.bitmap_index = 0, .adv_w = 86, .box_w = 1, .box_h = 1, .ofs_x = 0, .ofs_y = 0}, 460 {.bitmap_index = 1, .adv_w = 86, .box_w = 2, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, 461 {.bitmap_index = 5, .adv_w = 125, .box_w = 5, .box_h = 5, .ofs_x = 1, .ofs_y = 9}, 462 {.bitmap_index = 9, .adv_w = 225, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, 463 {.bitmap_index = 32, .adv_w = 199, .box_w = 10, .box_h = 20, .ofs_x = 1, .ofs_y = -3}, 464 {.bitmap_index = 57, .adv_w = 270, .box_w = 16, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, 465 {.bitmap_index = 85, .adv_w = 220, .box_w = 13, .box_h = 15, .ofs_x = 1, .ofs_y = -1}, 466 {.bitmap_index = 110, .adv_w = 67, .box_w = 2, .box_h = 5, .ofs_x = 1, .ofs_y = 9}, 467 {.bitmap_index = 112, .adv_w = 108, .box_w = 4, .box_h = 19, .ofs_x = 2, .ofs_y = -4}, 468 {.bitmap_index = 122, .adv_w = 108, .box_w = 4, .box_h = 19, .ofs_x = 1, .ofs_y = -4}, 469 {.bitmap_index = 132, .adv_w = 128, .box_w = 7, .box_h = 7, .ofs_x = 0, .ofs_y = 8}, 470 {.bitmap_index = 139, .adv_w = 186, .box_w = 9, .box_h = 9, .ofs_x = 1, .ofs_y = 3}, 471 {.bitmap_index = 150, .adv_w = 73, .box_w = 2, .box_h = 5, .ofs_x = 1, .ofs_y = -3}, 472 {.bitmap_index = 152, .adv_w = 123, .box_w = 5, .box_h = 1, .ofs_x = 1, .ofs_y = 5}, 473 {.bitmap_index = 153, .adv_w = 73, .box_w = 2, .box_h = 3, .ofs_x = 1, .ofs_y = 0}, 474 {.bitmap_index = 154, .adv_w = 113, .box_w = 9, .box_h = 20, .ofs_x = -1, .ofs_y = -2}, 475 {.bitmap_index = 177, .adv_w = 213, .box_w = 11, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, 476 {.bitmap_index = 197, .adv_w = 118, .box_w = 5, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, 477 {.bitmap_index = 206, .adv_w = 184, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, 478 {.bitmap_index = 224, .adv_w = 183, .box_w = 11, .box_h = 14, .ofs_x = 0, .ofs_y = 0}, 479 {.bitmap_index = 244, .adv_w = 214, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, 480 {.bitmap_index = 265, .adv_w = 184, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, 481 {.bitmap_index = 283, .adv_w = 197, .box_w = 11, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, 482 {.bitmap_index = 303, .adv_w = 191, .box_w = 11, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, 483 {.bitmap_index = 323, .adv_w = 206, .box_w = 11, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, 484 {.bitmap_index = 343, .adv_w = 197, .box_w = 11, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, 485 {.bitmap_index = 363, .adv_w = 73, .box_w = 2, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, 486 {.bitmap_index = 366, .adv_w = 73, .box_w = 2, .box_h = 14, .ofs_x = 1, .ofs_y = -3}, 487 {.bitmap_index = 370, .adv_w = 186, .box_w = 9, .box_h = 9, .ofs_x = 1, .ofs_y = 3}, 488 {.bitmap_index = 381, .adv_w = 186, .box_w = 9, .box_h = 6, .ofs_x = 1, .ofs_y = 5}, 489 {.bitmap_index = 388, .adv_w = 186, .box_w = 9, .box_h = 9, .ofs_x = 1, .ofs_y = 3}, 490 {.bitmap_index = 399, .adv_w = 183, .box_w = 10, .box_h = 14, .ofs_x = 0, .ofs_y = 0}, 491 {.bitmap_index = 417, .adv_w = 331, .box_w = 19, .box_h = 18, .ofs_x = 1, .ofs_y = -4}, 492 {.bitmap_index = 460, .adv_w = 234, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = 0}, 493 {.bitmap_index = 487, .adv_w = 242, .box_w = 12, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, 494 {.bitmap_index = 508, .adv_w = 231, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, 495 {.bitmap_index = 531, .adv_w = 264, .box_w = 13, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, 496 {.bitmap_index = 554, .adv_w = 214, .box_w = 10, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, 497 {.bitmap_index = 572, .adv_w = 203, .box_w = 10, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, 498 {.bitmap_index = 590, .adv_w = 247, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, 499 {.bitmap_index = 613, .adv_w = 260, .box_w = 12, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, 500 {.bitmap_index = 634, .adv_w = 99, .box_w = 2, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, 501 {.bitmap_index = 638, .adv_w = 164, .box_w = 8, .box_h = 14, .ofs_x = 0, .ofs_y = 0}, 502 {.bitmap_index = 652, .adv_w = 230, .box_w = 12, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, 503 {.bitmap_index = 673, .adv_w = 190, .box_w = 10, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, 504 {.bitmap_index = 691, .adv_w = 306, .box_w = 15, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, 505 {.bitmap_index = 718, .adv_w = 260, .box_w = 12, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, 506 {.bitmap_index = 739, .adv_w = 269, .box_w = 15, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, 507 {.bitmap_index = 766, .adv_w = 231, .box_w = 11, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, 508 {.bitmap_index = 786, .adv_w = 269, .box_w = 16, .box_h = 17, .ofs_x = 1, .ofs_y = -3}, 509 {.bitmap_index = 820, .adv_w = 233, .box_w = 11, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, 510 {.bitmap_index = 840, .adv_w = 199, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, 511 {.bitmap_index = 858, .adv_w = 188, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, 512 {.bitmap_index = 879, .adv_w = 253, .box_w = 12, .box_h = 14, .ofs_x = 2, .ofs_y = 0}, 513 {.bitmap_index = 900, .adv_w = 228, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = 0}, 514 {.bitmap_index = 925, .adv_w = 360, .box_w = 21, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, 515 {.bitmap_index = 962, .adv_w = 215, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = 0}, 516 {.bitmap_index = 985, .adv_w = 207, .box_w = 14, .box_h = 14, .ofs_x = -1, .ofs_y = 0}, 517 {.bitmap_index = 1010, .adv_w = 210, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, 518 {.bitmap_index = 1031, .adv_w = 107, .box_w = 4, .box_h = 19, .ofs_x = 2, .ofs_y = -4}, 519 {.bitmap_index = 1041, .adv_w = 113, .box_w = 9, .box_h = 20, .ofs_x = -1, .ofs_y = -2}, 520 {.bitmap_index = 1064, .adv_w = 107, .box_w = 5, .box_h = 19, .ofs_x = 0, .ofs_y = -4}, 521 {.bitmap_index = 1076, .adv_w = 187, .box_w = 9, .box_h = 9, .ofs_x = 1, .ofs_y = 3}, 522 {.bitmap_index = 1087, .adv_w = 160, .box_w = 10, .box_h = 1, .ofs_x = 0, .ofs_y = -1}, 523 {.bitmap_index = 1089, .adv_w = 192, .box_w = 6, .box_h = 3, .ofs_x = 2, .ofs_y = 12}, 524 {.bitmap_index = 1092, .adv_w = 191, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, 525 {.bitmap_index = 1105, .adv_w = 218, .box_w = 11, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, 526 {.bitmap_index = 1126, .adv_w = 183, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, 527 {.bitmap_index = 1140, .adv_w = 218, .box_w = 11, .box_h = 15, .ofs_x = 1, .ofs_y = 0}, 528 {.bitmap_index = 1161, .adv_w = 196, .box_w = 11, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, 529 {.bitmap_index = 1177, .adv_w = 113, .box_w = 8, .box_h = 15, .ofs_x = 1, .ofs_y = 0}, 530 {.bitmap_index = 1192, .adv_w = 221, .box_w = 11, .box_h = 15, .ofs_x = 1, .ofs_y = -4}, 531 {.bitmap_index = 1213, .adv_w = 218, .box_w = 10, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, 532 {.bitmap_index = 1232, .adv_w = 89, .box_w = 2, .box_h = 15, .ofs_x = 1, .ofs_y = 0}, 533 {.bitmap_index = 1236, .adv_w = 91, .box_w = 5, .box_h = 19, .ofs_x = -1, .ofs_y = -4}, 534 {.bitmap_index = 1248, .adv_w = 197, .box_w = 11, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, 535 {.bitmap_index = 1269, .adv_w = 89, .box_w = 2, .box_h = 15, .ofs_x = 2, .ofs_y = 0}, 536 {.bitmap_index = 1273, .adv_w = 338, .box_w = 18, .box_h = 11, .ofs_x = 2, .ofs_y = 0}, 537 {.bitmap_index = 1298, .adv_w = 218, .box_w = 10, .box_h = 11, .ofs_x = 2, .ofs_y = 0}, 538 {.bitmap_index = 1312, .adv_w = 203, .box_w = 11, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, 539 {.bitmap_index = 1328, .adv_w = 218, .box_w = 11, .box_h = 15, .ofs_x = 2, .ofs_y = -4}, 540 {.bitmap_index = 1349, .adv_w = 218, .box_w = 11, .box_h = 15, .ofs_x = 1, .ofs_y = -4}, 541 {.bitmap_index = 1370, .adv_w = 131, .box_w = 6, .box_h = 11, .ofs_x = 2, .ofs_y = 0}, 542 {.bitmap_index = 1379, .adv_w = 160, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, 543 {.bitmap_index = 1392, .adv_w = 132, .box_w = 8, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, 544 {.bitmap_index = 1406, .adv_w = 217, .box_w = 10, .box_h = 11, .ofs_x = 2, .ofs_y = 0}, 545 {.bitmap_index = 1420, .adv_w = 179, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = 0}, 546 {.bitmap_index = 1436, .adv_w = 288, .box_w = 18, .box_h = 11, .ofs_x = 0, .ofs_y = 0}, 547 {.bitmap_index = 1461, .adv_w = 177, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = 0}, 548 {.bitmap_index = 1477, .adv_w = 179, .box_w = 11, .box_h = 15, .ofs_x = 0, .ofs_y = -4}, 549 {.bitmap_index = 1498, .adv_w = 167, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0}, 550 {.bitmap_index = 1511, .adv_w = 112, .box_w = 6, .box_h = 19, .ofs_x = 1, .ofs_y = -4}, 551 {.bitmap_index = 1526, .adv_w = 96, .box_w = 2, .box_h = 19, .ofs_x = 2, .ofs_y = -4}, 552 {.bitmap_index = 1531, .adv_w = 112, .box_w = 6, .box_h = 19, .ofs_x = 1, .ofs_y = -4}, 553 {.bitmap_index = 1546, .adv_w = 186, .box_w = 9, .box_h = 3, .ofs_x = 1, .ofs_y = 6} 554 }; 555 556 /*--------------------- 557 * CHARACTER MAPPING 558 *--------------------*/ 559 560 /*Collect the unicode lists and glyph_id offsets*/ 561 static const lv_font_fmt_txt_cmap_t cmaps[] = { 562 { 563 .range_start = 32, .range_length = 95, .glyph_id_start = 1, 564 .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY 565 } 566 }; 567 568 /*----------------- 569 * KERNING 570 *----------------*/ 571 572 /*Map glyph_ids to kern left classes*/ 573 static const uint8_t kern_left_class_mapping[] = { 574 0, 0, 1, 2, 0, 3, 4, 5, 575 2, 6, 7, 8, 9, 10, 9, 10, 576 11, 12, 0, 13, 14, 15, 16, 17, 577 18, 19, 12, 20, 20, 0, 0, 0, 578 21, 22, 23, 24, 25, 22, 26, 27, 579 28, 29, 29, 30, 31, 32, 29, 29, 580 22, 33, 34, 35, 3, 36, 30, 37, 581 37, 38, 39, 40, 41, 42, 43, 0, 582 44, 0, 45, 46, 47, 48, 49, 50, 583 51, 45, 52, 52, 53, 48, 45, 45, 584 46, 46, 54, 55, 56, 57, 51, 58, 585 58, 59, 58, 60, 41, 0, 0, 9 586 }; 587 588 /*Map glyph_ids to kern right classes*/ 589 static const uint8_t kern_right_class_mapping[] = { 590 0, 0, 1, 2, 0, 3, 4, 5, 591 2, 6, 7, 8, 9, 10, 9, 10, 592 11, 12, 13, 14, 15, 16, 17, 12, 593 18, 19, 20, 21, 21, 0, 0, 0, 594 22, 23, 24, 25, 23, 25, 25, 25, 595 23, 25, 25, 26, 25, 25, 25, 25, 596 23, 25, 23, 25, 3, 27, 28, 29, 597 29, 30, 31, 32, 33, 34, 35, 0, 598 36, 0, 37, 38, 39, 39, 39, 0, 599 39, 38, 40, 41, 38, 38, 42, 42, 600 39, 42, 39, 42, 43, 44, 45, 46, 601 46, 47, 46, 48, 0, 0, 35, 9 602 }; 603 604 /*Kern values between classes*/ 605 static const int8_t kern_class_values[] = { 606 0, 1, 0, 0, 0, 0, 0, 0, 607 0, 1, 0, 0, 3, 0, 0, 0, 608 0, 2, 0, 0, 0, 0, 0, 0, 609 0, 0, 0, 0, 0, 0, 0, 0, 610 0, 0, 1, 0, 0, 0, 0, 0, 611 0, 0, 0, 0, 0, 0, 0, 0, 612 1, 14, 0, 9, -7, 0, 0, 0, 613 0, -18, -19, 2, 15, 7, 5, -13, 614 2, 16, 1, 13, 3, 10, 0, 0, 615 0, 0, 0, 0, 0, 0, 0, 0, 616 0, 19, 3, -2, 0, 0, 0, 0, 617 0, 0, 0, 0, 0, 0, 0, 0, 618 0, -10, 0, 0, 0, 0, 0, -6, 619 5, 6, 0, 0, -3, 0, -2, 3, 620 0, -3, 0, -3, -2, -6, 0, 0, 621 0, 0, -3, 0, 0, -4, -5, 0, 622 0, -3, 0, -6, 0, 0, 0, 0, 623 0, 0, 0, 0, 0, -3, -3, 0, 624 0, -9, 0, -39, 0, 0, -6, 0, 625 6, 10, 0, 0, -6, 3, 3, 11, 626 6, -5, 6, 0, 0, -18, 0, 0, 627 0, 0, 0, 0, 0, 0, 0, 0, 628 0, -12, 0, 0, 0, 0, 0, 0, 629 0, 0, 0, 0, 0, 0, 0, 0, 630 -4, -16, 0, -13, -2, 0, 0, 0, 631 0, 1, 12, 0, -10, -3, -1, 1, 632 0, -5, 0, 0, -2, -24, 0, 0, 633 0, 0, 0, 0, 0, 0, 0, 0, 634 0, -26, -3, 12, 0, 0, 0, 0, 635 0, 0, 0, 0, 0, 0, 0, 0, 636 0, 0, 0, 0, 0, 0, 0, 0, 637 0, 0, 11, 0, 3, 0, 0, -6, 638 0, 0, 0, 0, 0, 0, 0, 0, 639 0, 0, 0, 0, 0, 0, 0, 0, 640 0, 12, 3, 1, 0, 0, 0, 0, 641 0, 0, 0, 0, 0, 0, 0, 0, 642 0, 0, 0, 0, 0, 0, 0, 0, 643 0, 0, 0, 0, 0, 0, 0, 0, 644 0, 0, 0, 0, 0, 0, 0, 0, 645 0, 0, -12, 0, 0, 0, 0, 0, 646 0, 0, 0, 0, 0, 0, 0, 0, 647 0, 0, 0, 0, 0, 0, 0, 0, 648 2, 6, 3, 10, -3, 0, 0, 6, 649 -3, -11, -44, 2, 9, 6, 1, -4, 650 0, 12, 0, 10, 0, 10, 0, -30, 651 0, -4, 10, 0, 11, -3, 6, 3, 652 0, 0, 1, -3, 0, 0, -5, 26, 653 0, 26, 0, 10, 0, 13, 4, 5, 654 0, 0, 0, -12, 0, 0, 0, 0, 655 1, -2, 0, 2, -6, -4, -6, 2, 656 0, -3, 0, 0, 0, -13, 0, 0, 657 0, 0, 0, 0, 0, 0, 0, 0, 658 0, -21, 0, 0, 0, 0, 0, 0, 659 0, 0, 0, 0, 0, 0, 0, 0, 660 1, -18, 0, -20, 0, 0, 0, 0, 661 -2, 0, 32, -4, -4, 3, 3, -3, 662 0, -4, 3, 0, 0, -17, 0, 0, 663 0, 0, 0, 0, 0, 0, 0, 0, 664 0, -31, 0, 3, 0, 0, 0, 0, 665 0, 0, 0, 0, 0, 0, 0, 0, 666 0, 19, 0, 0, -12, 0, 11, 0, 667 -22, -31, -22, -6, 10, 0, 0, -21, 668 0, 4, -7, 0, -5, 0, 0, 0, 669 0, 0, 0, 0, 0, 0, 0, 0, 670 0, 8, 10, -39, 0, 0, 0, 0, 671 0, 0, 0, 0, 0, 0, 0, 0, 672 0, 2, 0, 0, 0, 0, 0, 2, 673 2, -4, -6, 0, -1, -1, -3, 0, 674 0, -2, 0, 0, 0, -6, 0, -3, 675 0, -7, -6, 0, -8, -11, -11, -6, 676 0, -6, 0, -6, 0, 0, 0, 0, 677 -3, 0, 0, 3, 0, 2, -3, 0, 678 0, 0, 0, 3, -2, 0, 0, 0, 679 -2, 3, 3, -1, 0, 0, 0, -6, 680 0, -1, 0, 0, 0, 0, 0, 1, 681 0, 4, -2, 0, -4, 0, -5, 0, 682 0, -2, 0, 10, 0, 0, -3, 0, 683 0, 0, 0, 0, -1, 1, -2, -2, 684 0, -3, 0, -3, 0, 0, 0, 0, 685 0, 0, 0, 0, 0, -2, -2, 0, 686 -3, -4, 0, 0, 0, 0, 0, 1, 687 0, 0, -2, 0, -3, -3, -3, 0, 688 0, 0, 0, 0, 0, 0, 0, 0, 689 -2, 0, 0, 0, 0, -2, -4, 0, 690 0, -10, -2, -10, 6, 0, 0, -6, 691 3, 6, 9, 0, -8, -1, -4, 0, 692 -1, -15, 3, -2, 2, -17, 3, 0, 693 0, 1, -17, 0, -17, -3, -28, -2, 694 0, -16, 0, 6, 9, 0, 4, 0, 695 0, 0, 0, 1, 0, -6, -4, 0, 696 0, 0, 0, -3, 0, 0, 0, -3, 697 0, 0, 0, 0, 0, -2, -2, 0, 698 -2, -4, 0, 0, 0, 0, 0, 0, 699 0, -3, -3, 0, -2, -4, -3, 0, 700 0, -3, 0, 0, 0, 0, 0, 0, 701 0, 0, 0, 0, 0, -3, -3, 0, 702 0, -2, 0, -6, 3, 0, 0, -4, 703 2, 3, 3, 0, 0, 0, 0, 0, 704 0, -2, 0, 0, 0, 0, 0, 2, 705 0, 0, -3, 0, -3, -2, -4, 0, 706 0, 0, 0, 0, 0, 0, 3, 0, 707 -3, 0, 0, 0, 0, -4, -5, 0, 708 0, 10, -2, 1, -10, 0, 0, 9, 709 -16, -17, -13, -6, 3, 0, -3, -21, 710 -6, 0, -6, 0, -6, 5, -6, -20, 711 0, -9, 0, 0, 2, -1, 3, -2, 712 0, 3, 0, -10, -12, 0, -16, -8, 713 -7, -8, -10, -4, -9, -1, -6, -9, 714 0, 1, 0, -3, 0, 0, 0, 2, 715 0, 3, 0, 0, 0, 0, 0, 0, 716 0, 0, 0, 0, 0, -3, 0, -2, 717 0, -1, -3, 0, -5, -7, -7, -1, 718 0, -10, 0, 0, 0, 0, 0, 0, 719 -3, 0, 0, 0, 0, 1, -2, 0, 720 0, 3, 0, 0, 0, 0, 0, 0, 721 0, 0, 15, 0, 0, 0, 0, 0, 722 0, 2, 0, 0, 0, -3, 0, 0, 723 0, 0, 0, 0, 0, 0, 0, 0, 724 0, -6, 0, 3, 0, 0, 0, 0, 725 0, 0, 0, 0, 0, 0, 0, 0, 726 -2, 0, 0, 0, -6, 0, 0, 0, 727 0, -16, -10, 0, 0, 0, -5, -16, 728 0, 0, -3, 3, 0, -9, 0, 0, 729 0, 0, 0, 0, 0, 0, 0, 0, 730 -5, 0, 0, -6, 0, 0, 0, 0, 731 0, 0, 0, 0, 0, 0, 0, 0, 732 0, -6, 0, 0, 0, 0, 4, 0, 733 2, -6, -6, 0, -3, -3, -4, 0, 734 0, 0, 0, 0, 0, -10, 0, -3, 735 0, -5, -3, 0, -7, -8, -10, -3, 736 0, -6, 0, -10, 0, 0, 0, 0, 737 26, 0, 0, 2, 0, 0, -4, 0, 738 0, -14, 0, 0, 0, 0, 0, -30, 739 -6, 11, 10, -3, -13, 0, 3, -5, 740 0, -16, -2, -4, 3, -22, -3, 4, 741 0, 5, -11, -5, -12, -11, -13, 0, 742 0, -19, 0, 18, 0, 0, -2, 0, 743 0, 0, -2, -2, -3, -9, -11, -1, 744 0, 0, 0, 0, 0, 0, 0, 0, 745 0, 1, 0, 0, 0, 0, 0, 0, 746 0, 0, 0, 0, 0, 0, 0, 0, 747 0, 0, -3, 0, -2, -3, -5, 0, 748 0, -6, 0, -3, 0, 0, 0, 0, 749 0, 0, 0, 0, 0, 0, 0, 0, 750 0, 0, -1, 0, -6, 0, 0, 6, 751 -1, 4, 0, -7, 3, -2, -1, -8, 752 -3, 0, -4, -3, -2, 0, -5, -5, 753 0, 0, -3, -1, -2, -5, -4, 0, 754 0, -3, 0, 3, -2, 0, -7, 0, 755 0, 0, -6, 0, -5, 0, -5, -5, 756 0, 0, 0, 0, 0, 0, 0, 0, 757 -6, 3, 0, -4, 0, -2, -4, -10, 758 -2, -2, -2, -1, -2, -4, -1, 0, 759 0, 0, 0, 0, -3, -3, -3, 0, 760 0, 0, 0, 4, -2, 0, -2, 0, 761 0, 0, -2, -4, -2, -3, -4, -3, 762 3, 13, -1, 0, -9, 0, -2, 6, 763 0, -3, -13, -4, 5, 0, 0, -15, 764 -5, 3, -5, 2, 0, -2, -3, -10, 765 0, -5, 2, 0, 0, -5, 0, 0, 766 0, 3, 3, -6, -6, 0, -5, -3, 767 -5, -3, -3, 0, -5, 2, -6, -5, 768 0, 0, 0, 0, 0, 0, 0, 0, 769 0, 3, 0, 0, 0, 0, 0, 0, 770 0, 0, 0, 0, 0, 0, 0, 0, 771 0, 0, 0, 0, 0, 0, 0, 0, 772 0, -5, 0, 0, 0, 0, 0, 0, 773 0, 0, 0, 0, 0, 0, 0, 0, 774 0, 0, 0, 0, 0, 0, 0, 0, 775 0, 0, 0, 0, 0, 0, 0, 0, 776 0, 0, 0, 0, 0, 0, 0, 0, 777 0, 0, 0, 0, -2, 0, 0, 0, 778 0, 0, 0, 0, 0, 0, 0, 0, 779 0, 0, 0, 0, 0, 0, 0, 0, 780 0, 0, 0, 0, 0, 0, 0, 0, 781 0, -3, -3, 0, 0, 0, 0, 0, 782 0, 0, 0, 0, 0, 0, 0, -5, 783 0, 0, -4, 0, 0, -3, -3, 0, 784 0, 0, 0, -3, 0, 0, 0, 0, 785 -2, 0, 0, 0, 0, 0, -2, 0, 786 0, 0, -5, 0, -6, 0, 0, 0, 787 -11, 0, 2, -7, 6, 1, -2, -15, 788 0, 0, -7, -3, 0, -13, -8, -9, 789 0, 0, -14, -3, -13, -12, -15, 0, 790 -8, 0, 3, 21, -4, 0, -7, -3, 791 -1, -3, -5, -9, -6, -12, -13, -7, 792 0, 0, -2, 0, 1, 0, 0, -22, 793 -3, 10, 7, -7, -12, 0, 1, -10, 794 0, -16, -2, -3, 6, -29, -4, 1, 795 0, 0, -21, -4, -17, -3, -23, 0, 796 0, -22, 0, 19, 1, 0, -2, 0, 797 0, 0, 0, -2, -2, -12, -2, 0, 798 0, 0, 0, 0, -10, 0, -3, 0, 799 -1, -9, -15, 0, 0, -2, -5, -10, 800 -3, 0, -2, 0, 0, 0, 0, -14, 801 -3, -11, -10, -3, -5, -8, -3, -5, 802 0, -6, -3, -11, -5, 0, -4, -6, 803 -3, -6, 0, 2, 0, -2, -11, 0, 804 0, -6, 0, 0, 0, 0, 4, 0, 805 2, -6, 13, 0, -3, -3, -4, 0, 806 0, 0, 0, 0, 0, -10, 0, -3, 807 0, -5, -3, 0, -7, -8, -10, -3, 808 0, -6, 3, 13, 0, 0, 0, 0, 809 26, 0, 0, 2, 0, 0, -4, 0, 810 0, 0, 0, 0, 0, 0, 0, 0, 811 -1, 0, 0, 0, 0, 0, -2, -6, 812 0, 0, 0, 0, 0, -2, 0, 0, 813 0, -3, -3, 0, 0, -6, -3, 0, 814 0, -6, 0, 5, -2, 0, 0, 0, 815 0, 0, 0, 2, 0, 0, 0, 0, 816 6, 3, -3, 0, -10, -5, 0, 10, 817 -11, -10, -6, -6, 13, 6, 3, -28, 818 -2, 6, -3, 0, -3, 4, -3, -11, 819 0, -3, 3, -4, -3, -10, -3, 0, 820 0, 10, 6, 0, -9, 0, -18, -4, 821 9, -4, -12, 1, -4, -11, -11, -3, 822 3, 0, -5, 0, -9, 0, 3, 11, 823 -7, -12, -13, -8, 10, 0, 1, -23, 824 -3, 3, -5, -2, -7, 0, -7, -12, 825 -5, -5, -3, 0, 0, -7, -7, -3, 826 0, 10, 7, -3, -18, 0, -18, -4, 827 0, -11, -19, -1, -10, -5, -11, -9, 828 0, 0, -4, 0, -6, -3, 0, -3, 829 -6, 0, 5, -11, 3, 0, 0, -17, 830 0, -3, -7, -5, -2, -10, -8, -11, 831 -7, 0, -10, -3, -7, -6, -10, -3, 832 0, 0, 1, 15, -5, 0, -10, -3, 833 0, -3, -6, -7, -9, -9, -12, -4, 834 6, 0, -5, 0, -16, -4, 2, 6, 835 -10, -12, -6, -11, 11, -3, 2, -30, 836 -6, 6, -7, -5, -12, 0, -10, -13, 837 -4, -3, -3, -3, -7, -10, -1, 0, 838 0, 10, 9, -2, -21, 0, -19, -7, 839 8, -12, -22, -6, -11, -13, -16, -11, 840 0, 0, 0, 0, -4, 0, 0, 3, 841 -4, 6, 2, -6, 6, 0, 0, -10, 842 -1, 0, -1, 0, 1, 1, -3, 0, 843 0, 0, 0, 0, 0, -3, 0, 0, 844 0, 0, 3, 10, 1, 0, -4, 0, 845 0, 0, 0, -2, -2, -4, 0, 0, 846 1, 3, 0, 0, 0, 0, 3, 0, 847 -3, 0, 12, 0, 6, 1, 1, -4, 848 0, 6, 0, 0, 0, 3, 0, 0, 849 0, 0, 0, 0, 0, 0, 0, 0, 850 0, 10, 0, 9, 0, 0, 0, 0, 851 0, 0, 0, 0, 0, 0, 0, 0, 852 0, -19, 0, -3, 5, 0, 10, 0, 853 0, 32, 4, -6, -6, 3, 3, -2, 854 1, -16, 0, 0, 15, -19, 0, 0, 855 0, 0, 0, 0, 0, 0, 0, 0, 856 0, -22, 12, 45, 0, 0, 0, 0, 857 0, 0, 0, 0, 0, 0, 0, 0, 858 0, 0, 0, 0, 0, 0, 0, 0, 859 0, 0, 0, 0, 0, 0, 0, 0, 860 0, 0, 0, 0, 0, 0, 0, 0, 861 0, 0, -5, 0, 0, -6, -3, 0, 862 0, 0, 0, 0, 0, 0, 0, 0, 863 0, 0, 0, 0, 0, 0, 0, 0, 864 0, -2, 0, -9, 0, 0, 1, 0, 865 0, 3, 41, -6, -3, 10, 9, -9, 866 3, 0, 0, 3, 3, -4, 0, 0, 867 0, 0, 0, 0, 0, 0, 0, 0, 868 0, -42, 9, 0, 0, 0, 0, 0, 869 0, 0, 0, 0, 0, 0, 0, 0, 870 0, 0, 0, -9, 0, 0, 0, -9, 871 0, 0, 0, 0, -7, -2, 0, 0, 872 0, -7, 0, -4, 0, -15, 0, 0, 873 0, 0, 0, 0, 0, 0, 0, 0, 874 0, -21, 0, 0, 0, 0, 1, 0, 875 0, 0, 0, 0, 0, -3, 0, 0, 876 0, -5, 0, -9, 0, 0, 0, -5, 877 3, -4, 0, 0, -9, -3, -7, 0, 878 0, -9, 0, -3, 0, -15, 0, -4, 879 0, 0, -26, -6, -13, -4, -12, 0, 880 0, -21, 0, -9, -2, 0, 0, 0, 881 0, 0, 0, 0, 0, -5, -6, -3, 882 0, 0, 0, 0, -7, 0, -7, 4, 883 -4, 6, 0, -2, -7, -2, -5, -6, 884 0, -4, -2, -2, 2, -9, -1, 0, 885 0, 0, -28, -3, -4, 0, -7, 0, 886 -2, -15, -3, 0, 0, -2, -3, 0, 887 0, 0, 0, 2, 0, -2, -5, -2, 888 0, 0, 0, 0, 0, 0, 0, 0, 889 0, 0, 0, 0, 0, 0, 0, 0, 890 0, 0, 0, 0, 0, 0, 0, 0, 891 0, 0, 0, 0, 0, 0, 0, 0, 892 0, 0, 0, 0, 0, 0, 0, 0, 893 0, 0, 0, 4, 0, 0, 0, 0, 894 0, -7, 0, -2, 0, 0, 0, -6, 895 3, 0, 0, 0, -9, -3, -6, 0, 896 0, -9, 0, -3, 0, -15, 0, 0, 897 0, 0, -31, 0, -6, -12, -16, 0, 898 0, -21, 0, -2, -5, 0, 0, 0, 899 0, 0, 0, 0, 0, -3, -5, -2, 900 1, 0, 0, 5, -4, 0, 10, 16, 901 -3, -3, -10, 4, 16, 5, 7, -9, 902 4, 13, 4, 9, 7, 9, 0, 0, 903 0, 0, 0, 0, 0, 0, 0, 0, 904 0, 20, 15, -6, -3, 0, -3, 26, 905 14, 26, 0, 0, 0, 3, 0, 0, 906 0, 0, -5, 0, 0, 0, 0, 0, 907 0, 0, 0, 0, -2, 0, 0, 0, 908 0, 0, 0, 0, 0, 4, 0, 0, 909 0, 0, -27, -4, -3, -13, -16, 0, 910 0, -21, 0, 0, 0, 0, 0, 0, 911 0, 0, 0, 0, 0, 0, 0, 0, 912 0, 0, -5, 0, 0, 0, 0, 0, 913 0, 0, 0, 0, -2, 0, 0, 0, 914 0, 0, 0, 0, 0, 4, 0, 0, 915 0, 0, -27, -4, -3, -13, -16, 0, 916 0, -13, 0, 0, 0, 0, 0, 0, 917 0, 0, 0, 0, 0, 0, 0, 0, 918 0, 0, 0, 0, -3, 0, 0, 0, 919 -7, 3, 0, -3, 3, 6, 3, -10, 920 0, -1, -3, 3, 0, 3, 0, 0, 921 0, 0, -8, 0, -3, -2, -6, 0, 922 -3, -13, 0, 20, -3, 0, -7, -2, 923 0, -2, -5, 0, -3, -9, -6, -4, 924 0, 0, -5, 0, 0, 0, 0, 0, 925 0, 0, 0, 0, -2, 0, 0, 0, 926 0, 0, 0, 0, 0, 4, 0, 0, 927 0, 0, -27, -4, -3, -13, -16, 0, 928 0, -21, 0, 0, 0, 0, 0, 0, 929 16, 0, 0, 0, 0, 0, 0, 0, 930 0, 0, -5, 0, -10, -4, -3, 10, 931 -3, -3, -13, 1, -2, 1, -2, -9, 932 1, 7, 1, 3, 1, 3, -8, -13, 933 -4, 0, -12, -6, -9, -13, -12, 0, 934 -5, -6, -4, -4, -3, -2, -4, -2, 935 0, -2, -1, 5, 0, 5, -2, 0, 936 0, 0, 0, 0, 0, 0, 0, 0, 937 0, 0, 0, 0, -2, -3, -3, 0, 938 0, -9, 0, -2, 0, -5, 0, 0, 939 0, 0, 0, 0, 0, 0, 0, 0, 940 0, -19, 0, 0, 0, 0, 0, 0, 941 0, 0, 0, 0, 0, -3, -3, 0, 942 0, 0, 0, 0, -3, 0, 0, -5, 943 -3, 3, 0, -5, -6, -2, 0, -9, 944 -2, -7, -2, -4, 0, -5, 0, 0, 945 0, 0, 0, 0, 0, 0, 0, 0, 946 0, -21, 0, 10, 0, 0, -6, 0, 947 0, 0, 0, -4, 0, -3, 0, 0, 948 0, 0, -2, 0, -7, 0, 0, 13, 949 -4, -11, -10, 2, 4, 4, -1, -9, 950 2, 5, 2, 10, 2, 11, -2, -9, 951 0, 0, -13, 0, 0, -10, -9, 0, 952 0, -6, 0, -4, -5, 0, -5, 0, 953 -5, 0, -2, 5, 0, -3, -10, -3, 954 0, 0, -3, 0, -6, 0, 0, 4, 955 -7, 0, 3, -3, 3, 0, 0, -11, 956 0, -2, -1, 0, -3, 4, -3, 0, 957 0, 0, -13, -4, -7, 0, -10, 0, 958 0, -15, 0, 12, -3, 0, -6, 0, 959 2, 0, -3, 0, -3, -10, 0, -3, 960 0, 0, 0, 0, -2, 0, 0, 3, 961 -4, 1, 0, 0, -4, -2, 0, -4, 962 0, 0, 0, 0, 0, 0, 0, 0, 963 0, 0, 0, 0, 0, 0, 0, 0, 964 0, -20, 0, 7, 0, 0, -3, 0, 965 0, 0, 0, 1, 0, -3, -3, 0 966 }; 967 968 /*Collect the kern class' data in one place*/ 969 static const lv_font_fmt_txt_kern_classes_t kern_classes = { 970 .class_pair_values = kern_class_values, 971 .left_class_mapping = kern_left_class_mapping, 972 .right_class_mapping = kern_right_class_mapping, 973 .left_class_cnt = 60, 974 .right_class_cnt = 48, 975 }; 976 977 /*-------------------- 978 * ALL CUSTOM DATA 979 *--------------------*/ 980 981 #if LV_VERSION_CHECK(8, 0, 0) 982 /*Store all the custom data of the font*/ 983 984 static const lv_font_fmt_txt_dsc_t font_dsc = { 985 #else 986 static lv_font_fmt_txt_dsc_t font_dsc = { 987 #endif 988 .glyph_bitmap = glyph_bitmap, 989 .glyph_dsc = glyph_dsc, 990 .cmaps = cmaps, 991 .kern_dsc = &kern_classes, 992 .kern_scale = 16, 993 .cmap_num = 1, 994 .bpp = 1, 995 .kern_classes = 1, 996 .bitmap_format = 0, 997 #if LV_VERSION_CHECK(8, 0, 0) 998 .cache = &cache 999 #endif 1000 }; 1001 1002 /*----------------- 1003 * PUBLIC FONT 1004 *----------------*/ 1005 1006 /*Initialize a public general font descriptor*/ 1007 #if LV_VERSION_CHECK(8, 0, 0) 1008 const lv_font_t test_font_montserrat_ascii_1bpp = { 1009 #else 1010 lv_font_t test_font_montserrat_ascii_1bpp = { 1011 #endif 1012 .get_glyph_dsc = lv_font_get_glyph_dsc_fmt_txt, /*Function pointer to get glyph's data*/ 1013 .get_glyph_bitmap = lv_font_get_bitmap_fmt_txt, /*Function pointer to get glyph's bitmap*/ 1014 .line_height = 22, /*The maximum line height required by the font*/ 1015 .base_line = 4, /*Baseline measured from the bottom of the line*/ 1016 #if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0) 1017 .subpx = LV_FONT_SUBPX_NONE, 1018 #endif 1019 #if LV_VERSION_CHECK(7, 4, 0) || LVGL_VERSION_MAJOR >= 8 1020 .underline_position = -1, 1021 .underline_thickness = 1, 1022 #endif 1023 .dsc = &font_dsc /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */ 1024 }; 1025 1026 #endif /*#if TEST_FONT_MONTSERRAT_ASCII_1BPP*/ 1027 1028 #endif /*LV_BUILD_TEST*/ 1029