From 788db64b8642bf31de6930d18a62177c64163ee0 Mon Sep 17 00:00:00 2001 From: Yuval Adam Date: Fri, 13 Mar 2015 12:24:02 +0200 Subject: Add grlib, fixes #5 --- grlib/Makefile | 245 ++ grlib/binfonts/fontcm12pt.bin | Bin 0 -> 1680 bytes grlib/binfonts/fontcm12ptb.bin | Bin 0 -> 1632 bytes grlib/binfonts/fontcm12pti.bin | Bin 0 -> 1688 bytes grlib/binfonts/fontcm14pt.bin | Bin 0 -> 1920 bytes grlib/binfonts/fontcm14ptb.bin | Bin 0 -> 1864 bytes grlib/binfonts/fontcm14pti.bin | Bin 0 -> 1948 bytes grlib/binfonts/fontcm16pt.bin | Bin 0 -> 2168 bytes grlib/binfonts/fontcm16ptb.bin | Bin 0 -> 2156 bytes grlib/binfonts/fontcm16pti.bin | Bin 0 -> 2196 bytes grlib/binfonts/fontcm18pt.bin | Bin 0 -> 2428 bytes grlib/binfonts/fontcm18ptb.bin | Bin 0 -> 2360 bytes grlib/binfonts/fontcm18pti.bin | Bin 0 -> 2472 bytes grlib/binfonts/fontcm20pt.bin | Bin 0 -> 2660 bytes grlib/binfonts/fontcm20ptb.bin | Bin 0 -> 2632 bytes grlib/binfonts/fontcm20pti.bin | Bin 0 -> 2680 bytes grlib/binfonts/fontcm22pt.bin | Bin 0 -> 2664 bytes grlib/binfonts/fontcm22ptb.bin | Bin 0 -> 2844 bytes grlib/binfonts/fontcm22pti.bin | Bin 0 -> 2688 bytes grlib/binfonts/fontcm24pt.bin | Bin 0 -> 2908 bytes grlib/binfonts/fontcm24ptb.bin | Bin 0 -> 3068 bytes grlib/binfonts/fontcm24pti.bin | Bin 0 -> 2944 bytes grlib/binfonts/fontcm26pt.bin | Bin 0 -> 3156 bytes grlib/binfonts/fontcm26ptb.bin | Bin 0 -> 3284 bytes grlib/binfonts/fontcm26pti.bin | Bin 0 -> 3208 bytes grlib/binfonts/fontcm28pt.bin | Bin 0 -> 3392 bytes grlib/binfonts/fontcm28ptb.bin | Bin 0 -> 3308 bytes grlib/binfonts/fontcm28pti.bin | Bin 0 -> 3508 bytes grlib/binfonts/fontcm30pt.bin | Bin 0 -> 3716 bytes grlib/binfonts/fontcm30ptb.bin | Bin 0 -> 3572 bytes grlib/binfonts/fontcm30pti.bin | Bin 0 -> 3868 bytes grlib/binfonts/fontcm32pt.bin | Bin 0 -> 3976 bytes grlib/binfonts/fontcm32ptb.bin | Bin 0 -> 3868 bytes grlib/binfonts/fontcm32pti.bin | Bin 0 -> 4100 bytes grlib/binfonts/fontcm34pt.bin | Bin 0 -> 4308 bytes grlib/binfonts/fontcm34ptb.bin | Bin 0 -> 4072 bytes grlib/binfonts/fontcm34pti.bin | Bin 0 -> 4412 bytes grlib/binfonts/fontcm36pt.bin | Bin 0 -> 4324 bytes grlib/binfonts/fontcm36ptb.bin | Bin 0 -> 4364 bytes grlib/binfonts/fontcm36pti.bin | Bin 0 -> 4728 bytes grlib/binfonts/fontcm38pt.bin | Bin 0 -> 4568 bytes grlib/binfonts/fontcm38ptb.bin | Bin 0 -> 4576 bytes grlib/binfonts/fontcm38pti.bin | Bin 0 -> 4804 bytes grlib/binfonts/fontcm40pt.bin | Bin 0 -> 5012 bytes grlib/binfonts/fontcm40ptb.bin | Bin 0 -> 4988 bytes grlib/binfonts/fontcm40pti.bin | Bin 0 -> 5344 bytes grlib/binfonts/fontcm42pt.bin | Bin 0 -> 5360 bytes grlib/binfonts/fontcm42ptb.bin | Bin 0 -> 5212 bytes grlib/binfonts/fontcm42pti.bin | Bin 0 -> 5708 bytes grlib/binfonts/fontcm44pt.bin | Bin 0 -> 5708 bytes grlib/binfonts/fontcm44ptb.bin | Bin 0 -> 5592 bytes grlib/binfonts/fontcm44pti.bin | Bin 0 -> 6144 bytes grlib/binfonts/fontcm46pt.bin | Bin 0 -> 6084 bytes grlib/binfonts/fontcm46ptb.bin | Bin 0 -> 5648 bytes grlib/binfonts/fontcm46pti.bin | Bin 0 -> 6600 bytes grlib/binfonts/fontcm48pt.bin | Bin 0 -> 6472 bytes grlib/binfonts/fontcm48ptb.bin | Bin 0 -> 5920 bytes grlib/binfonts/fontcm48pti.bin | Bin 0 -> 6960 bytes grlib/binfonts/fontcmsc12pt.bin | Bin 0 -> 1772 bytes grlib/binfonts/fontcmsc14pt.bin | Bin 0 -> 1984 bytes grlib/binfonts/fontcmsc16pt.bin | Bin 0 -> 2240 bytes grlib/binfonts/fontcmsc18pt.bin | Bin 0 -> 2428 bytes grlib/binfonts/fontcmsc20pt.bin | Bin 0 -> 2600 bytes grlib/binfonts/fontcmsc22pt.bin | Bin 0 -> 2892 bytes grlib/binfonts/fontcmsc24pt.bin | Bin 0 -> 3084 bytes grlib/binfonts/fontcmsc26pt.bin | Bin 0 -> 3284 bytes grlib/binfonts/fontcmsc28pt.bin | Bin 0 -> 3552 bytes grlib/binfonts/fontcmsc30pt.bin | Bin 0 -> 3800 bytes grlib/binfonts/fontcmsc32pt.bin | Bin 0 -> 4060 bytes grlib/binfonts/fontcmsc34pt.bin | Bin 0 -> 4344 bytes grlib/binfonts/fontcmsc36pt.bin | Bin 0 -> 4832 bytes grlib/binfonts/fontcmsc38pt.bin | Bin 0 -> 5176 bytes grlib/binfonts/fontcmsc40pt.bin | Bin 0 -> 5496 bytes grlib/binfonts/fontcmsc42pt.bin | Bin 0 -> 5844 bytes grlib/binfonts/fontcmsc44pt.bin | Bin 0 -> 6324 bytes grlib/binfonts/fontcmsc46pt.bin | Bin 0 -> 6672 bytes grlib/binfonts/fontcmsc48pt.bin | Bin 0 -> 6928 bytes grlib/binfonts/fontcmss12pt.bin | Bin 0 -> 1612 bytes grlib/binfonts/fontcmss12ptb.bin | Bin 0 -> 1780 bytes grlib/binfonts/fontcmss12pti.bin | Bin 0 -> 1644 bytes grlib/binfonts/fontcmss14pt.bin | Bin 0 -> 1848 bytes grlib/binfonts/fontcmss14ptb.bin | Bin 0 -> 1800 bytes grlib/binfonts/fontcmss14pti.bin | Bin 0 -> 1888 bytes grlib/binfonts/fontcmss16pt.bin | Bin 0 -> 2040 bytes grlib/binfonts/fontcmss16ptb.bin | Bin 0 -> 2024 bytes grlib/binfonts/fontcmss16pti.bin | Bin 0 -> 2084 bytes grlib/binfonts/fontcmss18pt.bin | Bin 0 -> 2300 bytes grlib/binfonts/fontcmss18ptb.bin | Bin 0 -> 2200 bytes grlib/binfonts/fontcmss18pti.bin | Bin 0 -> 2336 bytes grlib/binfonts/fontcmss20pt.bin | Bin 0 -> 2508 bytes grlib/binfonts/fontcmss20ptb.bin | Bin 0 -> 2452 bytes grlib/binfonts/fontcmss20pti.bin | Bin 0 -> 2536 bytes grlib/binfonts/fontcmss22pt.bin | Bin 0 -> 2512 bytes grlib/binfonts/fontcmss22ptb.bin | Bin 0 -> 2592 bytes grlib/binfonts/fontcmss22pti.bin | Bin 0 -> 2552 bytes grlib/binfonts/fontcmss24pt.bin | Bin 0 -> 2728 bytes grlib/binfonts/fontcmss24ptb.bin | Bin 0 -> 2852 bytes grlib/binfonts/fontcmss24pti.bin | Bin 0 -> 2752 bytes grlib/binfonts/fontcmss26pt.bin | Bin 0 -> 2936 bytes grlib/binfonts/fontcmss26ptb.bin | Bin 0 -> 3016 bytes grlib/binfonts/fontcmss26pti.bin | Bin 0 -> 2988 bytes grlib/binfonts/fontcmss28pt.bin | Bin 0 -> 3100 bytes grlib/binfonts/fontcmss28ptb.bin | Bin 0 -> 3268 bytes grlib/binfonts/fontcmss28pti.bin | Bin 0 -> 3144 bytes grlib/binfonts/fontcmss30pt.bin | Bin 0 -> 3380 bytes grlib/binfonts/fontcmss30ptb.bin | Bin 0 -> 3468 bytes grlib/binfonts/fontcmss30pti.bin | Bin 0 -> 3524 bytes grlib/binfonts/fontcmss32pt.bin | Bin 0 -> 3616 bytes grlib/binfonts/fontcmss32ptb.bin | Bin 0 -> 3720 bytes grlib/binfonts/fontcmss32pti.bin | Bin 0 -> 3788 bytes grlib/binfonts/fontcmss34pt.bin | Bin 0 -> 3828 bytes grlib/binfonts/fontcmss34ptb.bin | Bin 0 -> 3924 bytes grlib/binfonts/fontcmss34pti.bin | Bin 0 -> 3996 bytes grlib/binfonts/fontcmss36pt.bin | Bin 0 -> 3860 bytes grlib/binfonts/fontcmss36ptb.bin | Bin 0 -> 3976 bytes grlib/binfonts/fontcmss36pti.bin | Bin 0 -> 4060 bytes grlib/binfonts/fontcmss38pt.bin | Bin 0 -> 4128 bytes grlib/binfonts/fontcmss38ptb.bin | Bin 0 -> 4264 bytes grlib/binfonts/fontcmss38pti.bin | Bin 0 -> 4356 bytes grlib/binfonts/fontcmss40pt.bin | Bin 0 -> 4536 bytes grlib/binfonts/fontcmss40ptb.bin | Bin 0 -> 4660 bytes grlib/binfonts/fontcmss40pti.bin | Bin 0 -> 4728 bytes grlib/binfonts/fontcmss42pt.bin | Bin 0 -> 4804 bytes grlib/binfonts/fontcmss42ptb.bin | Bin 0 -> 4912 bytes grlib/binfonts/fontcmss42pti.bin | Bin 0 -> 5076 bytes grlib/binfonts/fontcmss44pt.bin | Bin 0 -> 5168 bytes grlib/binfonts/fontcmss44ptb.bin | Bin 0 -> 5204 bytes grlib/binfonts/fontcmss44pti.bin | Bin 0 -> 5492 bytes grlib/binfonts/fontcmss46pt.bin | Bin 0 -> 5436 bytes grlib/binfonts/fontcmss46ptb.bin | Bin 0 -> 5560 bytes grlib/binfonts/fontcmss46pti.bin | Bin 0 -> 5856 bytes grlib/binfonts/fontcmss48pt.bin | Bin 0 -> 5892 bytes grlib/binfonts/fontcmss48ptb.bin | Bin 0 -> 5960 bytes grlib/binfonts/fontcmss48pti.bin | Bin 0 -> 6240 bytes grlib/binfonts/fontcmtt12pt.bin | Bin 0 -> 1712 bytes grlib/binfonts/fontcmtt14pt.bin | Bin 0 -> 1956 bytes grlib/binfonts/fontcmtt16pt.bin | Bin 0 -> 2200 bytes grlib/binfonts/fontcmtt18pt.bin | Bin 0 -> 2424 bytes grlib/binfonts/fontcmtt20pt.bin | Bin 0 -> 2600 bytes grlib/binfonts/fontcmtt22pt.bin | Bin 0 -> 2652 bytes grlib/binfonts/fontcmtt24pt.bin | Bin 0 -> 2816 bytes grlib/binfonts/fontcmtt26pt.bin | Bin 0 -> 3000 bytes grlib/binfonts/fontcmtt28pt.bin | Bin 0 -> 3164 bytes grlib/binfonts/fontcmtt30pt.bin | Bin 0 -> 3776 bytes grlib/binfonts/fontcmtt32pt.bin | Bin 0 -> 4160 bytes grlib/binfonts/fontcmtt34pt.bin | Bin 0 -> 4396 bytes grlib/binfonts/fontcmtt36pt.bin | Bin 0 -> 4768 bytes grlib/binfonts/fontcmtt38pt.bin | Bin 0 -> 4760 bytes grlib/binfonts/fontcmtt40pt.bin | Bin 0 -> 5068 bytes grlib/binfonts/fontcmtt42pt.bin | Bin 0 -> 5344 bytes grlib/binfonts/fontcmtt44pt.bin | Bin 0 -> 5640 bytes grlib/binfonts/fontcmtt46pt.bin | Bin 0 -> 5872 bytes grlib/binfonts/fontcmtt48pt.bin | Bin 0 -> 6292 bytes grlib/canvas.c | 402 +++ grlib/canvas.h | 837 ++++++ grlib/ccs/.ccsproject | 9 + grlib/ccs/.cproject | 164 ++ grlib/ccs/.project | 900 ++++++ .../ccs/.settings/org.eclipse.cdt.codan.core.prefs | 3 + grlib/ccs/Debug/grlib.lib | Bin 0 -> 4267042 bytes grlib/ccs/macros.ini_initial | 1 + grlib/charmap.c | 2058 ++++++++++++++ grlib/checkbox.c | 467 ++++ grlib/checkbox.h | 704 +++++ grlib/circle.c | 564 ++++ grlib/container.c | 322 +++ grlib/container.h | 615 +++++ grlib/context.c | 227 ++ grlib/ewarm/Exe/grlib.a | Bin 0 -> 1741462 bytes grlib/fonts/fontcm12.c | 221 ++ grlib/fonts/fontcm12b.c | 217 ++ grlib/fonts/fontcm12i.c | 223 ++ grlib/fonts/fontcm14.c | 242 ++ grlib/fonts/fontcm14b.c | 237 ++ grlib/fonts/fontcm14i.c | 245 ++ grlib/fonts/fontcm16.c | 263 ++ grlib/fonts/fontcm16b.c | 263 ++ grlib/fonts/fontcm16i.c | 267 ++ grlib/fonts/fontcm18.c | 286 ++ grlib/fonts/fontcm18b.c | 281 ++ grlib/fonts/fontcm18i.c | 293 ++ grlib/fonts/fontcm20.c | 306 +++ grlib/fonts/fontcm20b.c | 305 +++ grlib/fonts/fontcm20i.c | 309 +++ grlib/fonts/fontcm22.c | 305 +++ grlib/fonts/fontcm22b.c | 323 +++ grlib/fonts/fontcm22i.c | 311 +++ grlib/fonts/fontcm24.c | 328 +++ grlib/fonts/fontcm24b.c | 343 +++ grlib/fonts/fontcm24i.c | 334 +++ grlib/fonts/fontcm26.c | 349 +++ grlib/fonts/fontcm26b.c | 362 +++ grlib/fonts/fontcm26i.c | 358 +++ grlib/fonts/fontcm28.c | 370 +++ grlib/fonts/fontcm28b.c | 364 +++ grlib/fonts/fontcm28i.c | 383 +++ grlib/fonts/fontcm30.c | 398 +++ grlib/fonts/fontcm30b.c | 386 +++ grlib/fonts/fontcm30i.c | 417 +++ grlib/fonts/fontcm32.c | 421 +++ grlib/fonts/fontcm32b.c | 413 +++ grlib/fonts/fontcm32i.c | 437 +++ grlib/fonts/fontcm34.c | 449 +++ grlib/fonts/fontcm34b.c | 432 +++ grlib/fonts/fontcm34i.c | 464 ++++ grlib/fonts/fontcm36.c | 450 +++ grlib/fonts/fontcm36b.c | 457 ++++ grlib/fonts/fontcm36i.c | 491 ++++ grlib/fonts/fontcm38.c | 471 ++++ grlib/fonts/fontcm38b.c | 475 ++++ grlib/fonts/fontcm38i.c | 498 ++++ grlib/fonts/fontcm40.c | 510 ++++ grlib/fonts/fontcm40b.c | 511 ++++ grlib/fonts/fontcm40i.c | 545 ++++ grlib/fonts/fontcm42.c | 541 ++++ grlib/fonts/fontcm42b.c | 530 ++++ grlib/fonts/fontcm42i.c | 577 ++++ grlib/fonts/fontcm44.c | 569 ++++ grlib/fonts/fontcm44b.c | 564 ++++ grlib/fonts/fontcm44i.c | 614 +++++ grlib/fonts/fontcm46.c | 603 +++++ grlib/fonts/fontcm46b.c | 568 ++++ grlib/fonts/fontcm46i.c | 654 +++++ grlib/fonts/fontcm48.c | 637 +++++ grlib/fonts/fontcm48b.c | 592 ++++ grlib/fonts/fontcm48i.c | 685 +++++ grlib/fonts/fontcmsc12.c | 226 ++ grlib/fonts/fontcmsc14.c | 244 ++ grlib/fonts/fontcmsc16.c | 266 ++ grlib/fonts/fontcmsc18.c | 281 ++ grlib/fonts/fontcmsc20.c | 296 ++ grlib/fonts/fontcmsc22.c | 322 +++ grlib/fonts/fontcmsc24.c | 338 +++ grlib/fonts/fontcmsc26.c | 356 +++ grlib/fonts/fontcmsc28.c | 378 +++ grlib/fonts/fontcmsc30.c | 399 +++ grlib/fonts/fontcmsc32.c | 422 +++ grlib/fonts/fontcmsc34.c | 446 +++ grlib/fonts/fontcmsc36.c | 487 ++++ grlib/fonts/fontcmsc38.c | 515 ++++ grlib/fonts/fontcmsc40.c | 543 ++++ grlib/fonts/fontcmsc42.c | 573 ++++ grlib/fonts/fontcmsc44.c | 614 +++++ grlib/fonts/fontcmsc46.c | 643 +++++ grlib/fonts/fontcmsc48.c | 666 +++++ grlib/fonts/fontcmss12.c | 215 ++ grlib/fonts/fontcmss12b.c | 230 ++ grlib/fonts/fontcmss12i.c | 216 ++ grlib/fonts/fontcmss14.c | 235 ++ grlib/fonts/fontcmss14b.c | 232 ++ grlib/fonts/fontcmss14i.c | 239 ++ grlib/fonts/fontcmss16.c | 252 ++ grlib/fonts/fontcmss16b.c | 251 ++ grlib/fonts/fontcmss16i.c | 256 ++ grlib/fonts/fontcmss18.c | 275 ++ grlib/fonts/fontcmss18b.c | 267 ++ grlib/fonts/fontcmss18i.c | 278 ++ grlib/fonts/fontcmss20.c | 293 ++ grlib/fonts/fontcmss20b.c | 289 ++ grlib/fonts/fontcmss20i.c | 296 ++ grlib/fonts/fontcmss22.c | 294 ++ grlib/fonts/fontcmss22b.c | 301 +++ grlib/fonts/fontcmss22i.c | 297 ++ grlib/fonts/fontcmss24.c | 312 +++ grlib/fonts/fontcmss24b.c | 324 +++ grlib/fonts/fontcmss24i.c | 314 +++ grlib/fonts/fontcmss26.c | 331 +++ grlib/fonts/fontcmss26b.c | 338 +++ grlib/fonts/fontcmss26i.c | 336 +++ grlib/fonts/fontcmss28.c | 345 +++ grlib/fonts/fontcmss28b.c | 360 +++ grlib/fonts/fontcmss28i.c | 349 +++ grlib/fonts/fontcmss30.c | 369 +++ grlib/fonts/fontcmss30b.c | 376 +++ grlib/fonts/fontcmss30i.c | 382 +++ grlib/fonts/fontcmss32.c | 390 +++ grlib/fonts/fontcmss32b.c | 398 +++ grlib/fonts/fontcmss32i.c | 405 +++ grlib/fonts/fontcmss34.c | 408 +++ grlib/fonts/fontcmss34b.c | 418 +++ grlib/fonts/fontcmss34i.c | 423 +++ grlib/fonts/fontcmss36.c | 411 +++ grlib/fonts/fontcmss36b.c | 422 +++ grlib/fonts/fontcmss36i.c | 428 +++ grlib/fonts/fontcmss38.c | 434 +++ grlib/fonts/fontcmss38b.c | 447 +++ grlib/fonts/fontcmss38i.c | 452 ++++ grlib/fonts/fontcmss40.c | 469 ++++ grlib/fonts/fontcmss40b.c | 480 ++++ grlib/fonts/fontcmss40i.c | 485 ++++ grlib/fonts/fontcmss42.c | 493 ++++ grlib/fonts/fontcmss42b.c | 501 ++++ grlib/fonts/fontcmss42i.c | 514 ++++ grlib/fonts/fontcmss44.c | 524 ++++ grlib/fonts/fontcmss44b.c | 529 ++++ grlib/fonts/fontcmss44i.c | 549 ++++ grlib/fonts/fontcmss46.c | 547 ++++ grlib/fonts/fontcmss46b.c | 559 ++++ grlib/fonts/fontcmss46i.c | 582 ++++ grlib/fonts/fontcmss48.c | 587 ++++ grlib/fonts/fontcmss48b.c | 594 ++++ grlib/fonts/fontcmss48i.c | 616 +++++ grlib/fonts/fontcmtt12.c | 216 ++ grlib/fonts/fontcmtt14.c | 236 ++ grlib/fonts/fontcmtt16.c | 257 ++ grlib/fonts/fontcmtt18.c | 275 ++ grlib/fonts/fontcmtt20.c | 290 ++ grlib/fonts/fontcmtt22.c | 291 ++ grlib/fonts/fontcmtt24.c | 308 +++ grlib/fonts/fontcmtt26.c | 321 +++ grlib/fonts/fontcmtt28.c | 336 +++ grlib/fonts/fontcmtt30.c | 351 +++ grlib/fonts/fontcmtt32.c | 420 +++ grlib/fonts/fontcmtt34.c | 436 +++ grlib/fonts/fontcmtt36.c | 467 ++++ grlib/fonts/fontcmtt38.c | 467 ++++ grlib/fonts/fontcmtt40.c | 490 ++++ grlib/fonts/fontcmtt42.c | 513 ++++ grlib/fonts/fontcmtt44.c | 544 ++++ grlib/fonts/fontcmtt46.c | 557 ++++ grlib/fonts/fontcmtt48.c | 592 ++++ grlib/fonts/fontfixed6x8.c | 162 ++ grlib/gcc/libgr.a | Bin 0 -> 802942 bytes grlib/grlib.ewp | 1289 +++++++++ grlib/grlib.h | 2304 ++++++++++++++++ grlib/grlib.uvopt | 2652 ++++++++++++++++++ grlib/grlib.uvproj | 1270 +++++++++ grlib/image.c | 1072 ++++++++ grlib/imgbutton.c | 474 ++++ grlib/imgbutton.h | 914 +++++++ grlib/keyboard.c | 1145 ++++++++ grlib/keyboard.h | 965 +++++++ grlib/line.c | 639 +++++ grlib/listbox.c | 750 +++++ grlib/listbox.h | 758 ++++++ grlib/offscr1bpp.c | 909 +++++++ grlib/offscr4bpp.c | 998 +++++++ grlib/offscr8bpp.c | 839 ++++++ grlib/pushbutton.c | 959 +++++++ grlib/pushbutton.h | 1075 ++++++++ grlib/radiobutton.c | 521 ++++ grlib/radiobutton.h | 717 +++++ grlib/readme.txt | 21 + grlib/rectangle.c | 303 +++ grlib/rvmdk/grlib.lib | Bin 0 -> 7228710 bytes grlib/slider.c | 878 ++++++ grlib/slider.h | 1202 +++++++++ grlib/string.c | 2853 ++++++++++++++++++++ grlib/widget.c | 1227 +++++++++ grlib/widget.h | 258 ++ 350 files changed, 95418 insertions(+) create mode 100644 grlib/Makefile create mode 100644 grlib/binfonts/fontcm12pt.bin create mode 100644 grlib/binfonts/fontcm12ptb.bin create mode 100644 grlib/binfonts/fontcm12pti.bin create mode 100644 grlib/binfonts/fontcm14pt.bin create mode 100644 grlib/binfonts/fontcm14ptb.bin create mode 100644 grlib/binfonts/fontcm14pti.bin create mode 100644 grlib/binfonts/fontcm16pt.bin create mode 100644 grlib/binfonts/fontcm16ptb.bin create mode 100644 grlib/binfonts/fontcm16pti.bin create mode 100644 grlib/binfonts/fontcm18pt.bin create mode 100644 grlib/binfonts/fontcm18ptb.bin create mode 100644 grlib/binfonts/fontcm18pti.bin create mode 100644 grlib/binfonts/fontcm20pt.bin create mode 100644 grlib/binfonts/fontcm20ptb.bin create mode 100644 grlib/binfonts/fontcm20pti.bin create mode 100644 grlib/binfonts/fontcm22pt.bin create mode 100644 grlib/binfonts/fontcm22ptb.bin create mode 100644 grlib/binfonts/fontcm22pti.bin create mode 100644 grlib/binfonts/fontcm24pt.bin create mode 100644 grlib/binfonts/fontcm24ptb.bin create mode 100644 grlib/binfonts/fontcm24pti.bin create mode 100644 grlib/binfonts/fontcm26pt.bin create mode 100644 grlib/binfonts/fontcm26ptb.bin create mode 100644 grlib/binfonts/fontcm26pti.bin create mode 100644 grlib/binfonts/fontcm28pt.bin create mode 100644 grlib/binfonts/fontcm28ptb.bin create mode 100644 grlib/binfonts/fontcm28pti.bin create mode 100644 grlib/binfonts/fontcm30pt.bin create mode 100644 grlib/binfonts/fontcm30ptb.bin create mode 100644 grlib/binfonts/fontcm30pti.bin create mode 100644 grlib/binfonts/fontcm32pt.bin create mode 100644 grlib/binfonts/fontcm32ptb.bin create mode 100644 grlib/binfonts/fontcm32pti.bin create mode 100644 grlib/binfonts/fontcm34pt.bin create mode 100644 grlib/binfonts/fontcm34ptb.bin create mode 100644 grlib/binfonts/fontcm34pti.bin create mode 100644 grlib/binfonts/fontcm36pt.bin create mode 100644 grlib/binfonts/fontcm36ptb.bin create mode 100644 grlib/binfonts/fontcm36pti.bin create mode 100644 grlib/binfonts/fontcm38pt.bin create mode 100644 grlib/binfonts/fontcm38ptb.bin create mode 100644 grlib/binfonts/fontcm38pti.bin create mode 100644 grlib/binfonts/fontcm40pt.bin create mode 100644 grlib/binfonts/fontcm40ptb.bin create mode 100644 grlib/binfonts/fontcm40pti.bin create mode 100644 grlib/binfonts/fontcm42pt.bin create mode 100644 grlib/binfonts/fontcm42ptb.bin create mode 100644 grlib/binfonts/fontcm42pti.bin create mode 100644 grlib/binfonts/fontcm44pt.bin create mode 100644 grlib/binfonts/fontcm44ptb.bin create mode 100644 grlib/binfonts/fontcm44pti.bin create mode 100644 grlib/binfonts/fontcm46pt.bin create mode 100644 grlib/binfonts/fontcm46ptb.bin create mode 100644 grlib/binfonts/fontcm46pti.bin create mode 100644 grlib/binfonts/fontcm48pt.bin create mode 100644 grlib/binfonts/fontcm48ptb.bin create mode 100644 grlib/binfonts/fontcm48pti.bin create mode 100644 grlib/binfonts/fontcmsc12pt.bin create mode 100644 grlib/binfonts/fontcmsc14pt.bin create mode 100644 grlib/binfonts/fontcmsc16pt.bin create mode 100644 grlib/binfonts/fontcmsc18pt.bin create mode 100644 grlib/binfonts/fontcmsc20pt.bin create mode 100644 grlib/binfonts/fontcmsc22pt.bin create mode 100644 grlib/binfonts/fontcmsc24pt.bin create mode 100644 grlib/binfonts/fontcmsc26pt.bin create mode 100644 grlib/binfonts/fontcmsc28pt.bin create mode 100644 grlib/binfonts/fontcmsc30pt.bin create mode 100644 grlib/binfonts/fontcmsc32pt.bin create mode 100644 grlib/binfonts/fontcmsc34pt.bin create mode 100644 grlib/binfonts/fontcmsc36pt.bin create mode 100644 grlib/binfonts/fontcmsc38pt.bin create mode 100644 grlib/binfonts/fontcmsc40pt.bin create mode 100644 grlib/binfonts/fontcmsc42pt.bin create mode 100644 grlib/binfonts/fontcmsc44pt.bin create mode 100644 grlib/binfonts/fontcmsc46pt.bin create mode 100644 grlib/binfonts/fontcmsc48pt.bin create mode 100644 grlib/binfonts/fontcmss12pt.bin create mode 100644 grlib/binfonts/fontcmss12ptb.bin create mode 100644 grlib/binfonts/fontcmss12pti.bin create mode 100644 grlib/binfonts/fontcmss14pt.bin create mode 100644 grlib/binfonts/fontcmss14ptb.bin create mode 100644 grlib/binfonts/fontcmss14pti.bin create mode 100644 grlib/binfonts/fontcmss16pt.bin create mode 100644 grlib/binfonts/fontcmss16ptb.bin create mode 100644 grlib/binfonts/fontcmss16pti.bin create mode 100644 grlib/binfonts/fontcmss18pt.bin create mode 100644 grlib/binfonts/fontcmss18ptb.bin create mode 100644 grlib/binfonts/fontcmss18pti.bin create mode 100644 grlib/binfonts/fontcmss20pt.bin create mode 100644 grlib/binfonts/fontcmss20ptb.bin create mode 100644 grlib/binfonts/fontcmss20pti.bin create mode 100644 grlib/binfonts/fontcmss22pt.bin create mode 100644 grlib/binfonts/fontcmss22ptb.bin create mode 100644 grlib/binfonts/fontcmss22pti.bin create mode 100644 grlib/binfonts/fontcmss24pt.bin create mode 100644 grlib/binfonts/fontcmss24ptb.bin create mode 100644 grlib/binfonts/fontcmss24pti.bin create mode 100644 grlib/binfonts/fontcmss26pt.bin create mode 100644 grlib/binfonts/fontcmss26ptb.bin create mode 100644 grlib/binfonts/fontcmss26pti.bin create mode 100644 grlib/binfonts/fontcmss28pt.bin create mode 100644 grlib/binfonts/fontcmss28ptb.bin create mode 100644 grlib/binfonts/fontcmss28pti.bin create mode 100644 grlib/binfonts/fontcmss30pt.bin create mode 100644 grlib/binfonts/fontcmss30ptb.bin create mode 100644 grlib/binfonts/fontcmss30pti.bin create mode 100644 grlib/binfonts/fontcmss32pt.bin create mode 100644 grlib/binfonts/fontcmss32ptb.bin create mode 100644 grlib/binfonts/fontcmss32pti.bin create mode 100644 grlib/binfonts/fontcmss34pt.bin create mode 100644 grlib/binfonts/fontcmss34ptb.bin create mode 100644 grlib/binfonts/fontcmss34pti.bin create mode 100644 grlib/binfonts/fontcmss36pt.bin create mode 100644 grlib/binfonts/fontcmss36ptb.bin create mode 100644 grlib/binfonts/fontcmss36pti.bin create mode 100644 grlib/binfonts/fontcmss38pt.bin create mode 100644 grlib/binfonts/fontcmss38ptb.bin create mode 100644 grlib/binfonts/fontcmss38pti.bin create mode 100644 grlib/binfonts/fontcmss40pt.bin create mode 100644 grlib/binfonts/fontcmss40ptb.bin create mode 100644 grlib/binfonts/fontcmss40pti.bin create mode 100644 grlib/binfonts/fontcmss42pt.bin create mode 100644 grlib/binfonts/fontcmss42ptb.bin create mode 100644 grlib/binfonts/fontcmss42pti.bin create mode 100644 grlib/binfonts/fontcmss44pt.bin create mode 100644 grlib/binfonts/fontcmss44ptb.bin create mode 100644 grlib/binfonts/fontcmss44pti.bin create mode 100644 grlib/binfonts/fontcmss46pt.bin create mode 100644 grlib/binfonts/fontcmss46ptb.bin create mode 100644 grlib/binfonts/fontcmss46pti.bin create mode 100644 grlib/binfonts/fontcmss48pt.bin create mode 100644 grlib/binfonts/fontcmss48ptb.bin create mode 100644 grlib/binfonts/fontcmss48pti.bin create mode 100644 grlib/binfonts/fontcmtt12pt.bin create mode 100644 grlib/binfonts/fontcmtt14pt.bin create mode 100644 grlib/binfonts/fontcmtt16pt.bin create mode 100644 grlib/binfonts/fontcmtt18pt.bin create mode 100644 grlib/binfonts/fontcmtt20pt.bin create mode 100644 grlib/binfonts/fontcmtt22pt.bin create mode 100644 grlib/binfonts/fontcmtt24pt.bin create mode 100644 grlib/binfonts/fontcmtt26pt.bin create mode 100644 grlib/binfonts/fontcmtt28pt.bin create mode 100644 grlib/binfonts/fontcmtt30pt.bin create mode 100644 grlib/binfonts/fontcmtt32pt.bin create mode 100644 grlib/binfonts/fontcmtt34pt.bin create mode 100644 grlib/binfonts/fontcmtt36pt.bin create mode 100644 grlib/binfonts/fontcmtt38pt.bin create mode 100644 grlib/binfonts/fontcmtt40pt.bin create mode 100644 grlib/binfonts/fontcmtt42pt.bin create mode 100644 grlib/binfonts/fontcmtt44pt.bin create mode 100644 grlib/binfonts/fontcmtt46pt.bin create mode 100644 grlib/binfonts/fontcmtt48pt.bin create mode 100644 grlib/canvas.c create mode 100644 grlib/canvas.h create mode 100644 grlib/ccs/.ccsproject create mode 100644 grlib/ccs/.cproject create mode 100644 grlib/ccs/.project create mode 100644 grlib/ccs/.settings/org.eclipse.cdt.codan.core.prefs create mode 100644 grlib/ccs/Debug/grlib.lib create mode 100644 grlib/ccs/macros.ini_initial create mode 100644 grlib/charmap.c create mode 100644 grlib/checkbox.c create mode 100644 grlib/checkbox.h create mode 100644 grlib/circle.c create mode 100644 grlib/container.c create mode 100644 grlib/container.h create mode 100644 grlib/context.c create mode 100644 grlib/ewarm/Exe/grlib.a create mode 100644 grlib/fonts/fontcm12.c create mode 100644 grlib/fonts/fontcm12b.c create mode 100644 grlib/fonts/fontcm12i.c create mode 100644 grlib/fonts/fontcm14.c create mode 100644 grlib/fonts/fontcm14b.c create mode 100644 grlib/fonts/fontcm14i.c create mode 100644 grlib/fonts/fontcm16.c create mode 100644 grlib/fonts/fontcm16b.c create mode 100644 grlib/fonts/fontcm16i.c create mode 100644 grlib/fonts/fontcm18.c create mode 100644 grlib/fonts/fontcm18b.c create mode 100644 grlib/fonts/fontcm18i.c create mode 100644 grlib/fonts/fontcm20.c create mode 100644 grlib/fonts/fontcm20b.c create mode 100644 grlib/fonts/fontcm20i.c create mode 100644 grlib/fonts/fontcm22.c create mode 100644 grlib/fonts/fontcm22b.c create mode 100644 grlib/fonts/fontcm22i.c create mode 100644 grlib/fonts/fontcm24.c create mode 100644 grlib/fonts/fontcm24b.c create mode 100644 grlib/fonts/fontcm24i.c create mode 100644 grlib/fonts/fontcm26.c create mode 100644 grlib/fonts/fontcm26b.c create mode 100644 grlib/fonts/fontcm26i.c create mode 100644 grlib/fonts/fontcm28.c create mode 100644 grlib/fonts/fontcm28b.c create mode 100644 grlib/fonts/fontcm28i.c create mode 100644 grlib/fonts/fontcm30.c create mode 100644 grlib/fonts/fontcm30b.c create mode 100644 grlib/fonts/fontcm30i.c create mode 100644 grlib/fonts/fontcm32.c create mode 100644 grlib/fonts/fontcm32b.c create mode 100644 grlib/fonts/fontcm32i.c create mode 100644 grlib/fonts/fontcm34.c create mode 100644 grlib/fonts/fontcm34b.c create mode 100644 grlib/fonts/fontcm34i.c create mode 100644 grlib/fonts/fontcm36.c create mode 100644 grlib/fonts/fontcm36b.c create mode 100644 grlib/fonts/fontcm36i.c create mode 100644 grlib/fonts/fontcm38.c create mode 100644 grlib/fonts/fontcm38b.c create mode 100644 grlib/fonts/fontcm38i.c create mode 100644 grlib/fonts/fontcm40.c create mode 100644 grlib/fonts/fontcm40b.c create mode 100644 grlib/fonts/fontcm40i.c create mode 100644 grlib/fonts/fontcm42.c create mode 100644 grlib/fonts/fontcm42b.c create mode 100644 grlib/fonts/fontcm42i.c create mode 100644 grlib/fonts/fontcm44.c create mode 100644 grlib/fonts/fontcm44b.c create mode 100644 grlib/fonts/fontcm44i.c create mode 100644 grlib/fonts/fontcm46.c create mode 100644 grlib/fonts/fontcm46b.c create mode 100644 grlib/fonts/fontcm46i.c create mode 100644 grlib/fonts/fontcm48.c create mode 100644 grlib/fonts/fontcm48b.c create mode 100644 grlib/fonts/fontcm48i.c create mode 100644 grlib/fonts/fontcmsc12.c create mode 100644 grlib/fonts/fontcmsc14.c create mode 100644 grlib/fonts/fontcmsc16.c create mode 100644 grlib/fonts/fontcmsc18.c create mode 100644 grlib/fonts/fontcmsc20.c create mode 100644 grlib/fonts/fontcmsc22.c create mode 100644 grlib/fonts/fontcmsc24.c create mode 100644 grlib/fonts/fontcmsc26.c create mode 100644 grlib/fonts/fontcmsc28.c create mode 100644 grlib/fonts/fontcmsc30.c create mode 100644 grlib/fonts/fontcmsc32.c create mode 100644 grlib/fonts/fontcmsc34.c create mode 100644 grlib/fonts/fontcmsc36.c create mode 100644 grlib/fonts/fontcmsc38.c create mode 100644 grlib/fonts/fontcmsc40.c create mode 100644 grlib/fonts/fontcmsc42.c create mode 100644 grlib/fonts/fontcmsc44.c create mode 100644 grlib/fonts/fontcmsc46.c create mode 100644 grlib/fonts/fontcmsc48.c create mode 100644 grlib/fonts/fontcmss12.c create mode 100644 grlib/fonts/fontcmss12b.c create mode 100644 grlib/fonts/fontcmss12i.c create mode 100644 grlib/fonts/fontcmss14.c create mode 100644 grlib/fonts/fontcmss14b.c create mode 100644 grlib/fonts/fontcmss14i.c create mode 100644 grlib/fonts/fontcmss16.c create mode 100644 grlib/fonts/fontcmss16b.c create mode 100644 grlib/fonts/fontcmss16i.c create mode 100644 grlib/fonts/fontcmss18.c create mode 100644 grlib/fonts/fontcmss18b.c create mode 100644 grlib/fonts/fontcmss18i.c create mode 100644 grlib/fonts/fontcmss20.c create mode 100644 grlib/fonts/fontcmss20b.c create mode 100644 grlib/fonts/fontcmss20i.c create mode 100644 grlib/fonts/fontcmss22.c create mode 100644 grlib/fonts/fontcmss22b.c create mode 100644 grlib/fonts/fontcmss22i.c create mode 100644 grlib/fonts/fontcmss24.c create mode 100644 grlib/fonts/fontcmss24b.c create mode 100644 grlib/fonts/fontcmss24i.c create mode 100644 grlib/fonts/fontcmss26.c create mode 100644 grlib/fonts/fontcmss26b.c create mode 100644 grlib/fonts/fontcmss26i.c create mode 100644 grlib/fonts/fontcmss28.c create mode 100644 grlib/fonts/fontcmss28b.c create mode 100644 grlib/fonts/fontcmss28i.c create mode 100644 grlib/fonts/fontcmss30.c create mode 100644 grlib/fonts/fontcmss30b.c create mode 100644 grlib/fonts/fontcmss30i.c create mode 100644 grlib/fonts/fontcmss32.c create mode 100644 grlib/fonts/fontcmss32b.c create mode 100644 grlib/fonts/fontcmss32i.c create mode 100644 grlib/fonts/fontcmss34.c create mode 100644 grlib/fonts/fontcmss34b.c create mode 100644 grlib/fonts/fontcmss34i.c create mode 100644 grlib/fonts/fontcmss36.c create mode 100644 grlib/fonts/fontcmss36b.c create mode 100644 grlib/fonts/fontcmss36i.c create mode 100644 grlib/fonts/fontcmss38.c create mode 100644 grlib/fonts/fontcmss38b.c create mode 100644 grlib/fonts/fontcmss38i.c create mode 100644 grlib/fonts/fontcmss40.c create mode 100644 grlib/fonts/fontcmss40b.c create mode 100644 grlib/fonts/fontcmss40i.c create mode 100644 grlib/fonts/fontcmss42.c create mode 100644 grlib/fonts/fontcmss42b.c create mode 100644 grlib/fonts/fontcmss42i.c create mode 100644 grlib/fonts/fontcmss44.c create mode 100644 grlib/fonts/fontcmss44b.c create mode 100644 grlib/fonts/fontcmss44i.c create mode 100644 grlib/fonts/fontcmss46.c create mode 100644 grlib/fonts/fontcmss46b.c create mode 100644 grlib/fonts/fontcmss46i.c create mode 100644 grlib/fonts/fontcmss48.c create mode 100644 grlib/fonts/fontcmss48b.c create mode 100644 grlib/fonts/fontcmss48i.c create mode 100644 grlib/fonts/fontcmtt12.c create mode 100644 grlib/fonts/fontcmtt14.c create mode 100644 grlib/fonts/fontcmtt16.c create mode 100644 grlib/fonts/fontcmtt18.c create mode 100644 grlib/fonts/fontcmtt20.c create mode 100644 grlib/fonts/fontcmtt22.c create mode 100644 grlib/fonts/fontcmtt24.c create mode 100644 grlib/fonts/fontcmtt26.c create mode 100644 grlib/fonts/fontcmtt28.c create mode 100644 grlib/fonts/fontcmtt30.c create mode 100644 grlib/fonts/fontcmtt32.c create mode 100644 grlib/fonts/fontcmtt34.c create mode 100644 grlib/fonts/fontcmtt36.c create mode 100644 grlib/fonts/fontcmtt38.c create mode 100644 grlib/fonts/fontcmtt40.c create mode 100644 grlib/fonts/fontcmtt42.c create mode 100644 grlib/fonts/fontcmtt44.c create mode 100644 grlib/fonts/fontcmtt46.c create mode 100644 grlib/fonts/fontcmtt48.c create mode 100644 grlib/fonts/fontfixed6x8.c create mode 100644 grlib/gcc/libgr.a create mode 100644 grlib/grlib.ewp create mode 100644 grlib/grlib.h create mode 100644 grlib/grlib.uvopt create mode 100644 grlib/grlib.uvproj create mode 100644 grlib/image.c create mode 100644 grlib/imgbutton.c create mode 100644 grlib/imgbutton.h create mode 100644 grlib/keyboard.c create mode 100644 grlib/keyboard.h create mode 100644 grlib/line.c create mode 100644 grlib/listbox.c create mode 100644 grlib/listbox.h create mode 100644 grlib/offscr1bpp.c create mode 100644 grlib/offscr4bpp.c create mode 100644 grlib/offscr8bpp.c create mode 100644 grlib/pushbutton.c create mode 100644 grlib/pushbutton.h create mode 100644 grlib/radiobutton.c create mode 100644 grlib/radiobutton.h create mode 100644 grlib/readme.txt create mode 100644 grlib/rectangle.c create mode 100644 grlib/rvmdk/grlib.lib create mode 100644 grlib/slider.c create mode 100644 grlib/slider.h create mode 100644 grlib/string.c create mode 100644 grlib/widget.c create mode 100644 grlib/widget.h (limited to 'grlib') diff --git a/grlib/Makefile b/grlib/Makefile new file mode 100644 index 0000000..fc5b72d --- /dev/null +++ b/grlib/Makefile @@ -0,0 +1,245 @@ +#****************************************************************************** +# +# Makefile - Rules for building the graphics library. +# +# Copyright (c) 2008-2014 Texas Instruments Incorporated. All rights reserved. +# Software License Agreement +# +# Texas Instruments (TI) is supplying this software for use solely and +# exclusively on TI's microcontroller products. The software is owned by +# TI and/or its suppliers, and is protected under applicable copyright +# laws. You may not combine this software with "viral" open-source +# software in order to form a larger program. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +# NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +# NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +# CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +# DAMAGES, FOR ANY REASON WHATSOEVER. +# +# This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +# +#****************************************************************************** + +# +# The base directory for TivaWare. +# +ROOT=.. + +# +# Include the common make definitions. +# +include ${ROOT}/makedefs + +# +# Where to find source files that do not live in this directory. +# +VPATH=fonts + +# +# Where to find header files that do not live in the source directory. +# +IPATH=.. + +# +# The default rule, which causes the graphics library to be built. +# +all: ${COMPILER} +all: ${COMPILER}/libgr.a + +# +# The rule to clean out all the build products. +# +clean: + @rm -rf ${COMPILER} ${wildcard *~} + +# +# The rule to create the target directory. +# +${COMPILER}: + @mkdir -p ${COMPILER} + +# +# Rules for building the graphics library. +# +${COMPILER}/libgr.a: ${COMPILER}/canvas.o +${COMPILER}/libgr.a: ${COMPILER}/charmap.o +${COMPILER}/libgr.a: ${COMPILER}/checkbox.o +${COMPILER}/libgr.a: ${COMPILER}/circle.o +${COMPILER}/libgr.a: ${COMPILER}/container.o +${COMPILER}/libgr.a: ${COMPILER}/context.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm12.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm12b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm12i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm14.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm14b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm14i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm16.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm16b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm16i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm18.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm18b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm18i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm20.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm20b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm20i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm22.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm22b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm22i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm24.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm24b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm24i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm26.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm26b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm26i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm28.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm28b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm28i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm30.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm30b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm30i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm32.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm32b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm32i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm34.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm34b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm34i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm36.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm36b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm36i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm38.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm38b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm38i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm40.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm40b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm40i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm42.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm42b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm42i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm44.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm44b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm44i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm46.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm46b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm46i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm48.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm48b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcm48i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmsc12.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmsc14.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmsc16.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmsc18.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmsc20.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmsc22.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmsc24.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmsc26.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmsc28.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmsc30.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmsc32.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmsc34.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmsc36.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmsc38.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmsc40.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmsc42.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmsc44.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmsc46.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmsc48.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss12.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss12b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss12i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss14.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss14b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss14i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss16.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss16b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss16i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss18.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss18b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss18i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss20.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss20b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss20i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss22.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss22b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss22i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss24.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss24b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss24i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss26.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss26b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss26i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss28.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss28b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss28i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss30.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss30b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss30i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss32.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss32b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss32i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss34.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss34b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss34i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss36.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss36b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss36i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss38.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss38b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss38i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss40.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss40b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss40i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss42.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss42b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss42i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss44.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss44b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss44i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss46.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss46b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss46i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss48.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss48b.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmss48i.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmtt12.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmtt14.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmtt16.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmtt18.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmtt20.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmtt22.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmtt24.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmtt26.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmtt28.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmtt30.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmtt32.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmtt34.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmtt36.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmtt38.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmtt40.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmtt42.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmtt44.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmtt46.o +${COMPILER}/libgr.a: ${COMPILER}/fontcmtt48.o +${COMPILER}/libgr.a: ${COMPILER}/fontfixed6x8.o +${COMPILER}/libgr.a: ${COMPILER}/image.o +${COMPILER}/libgr.a: ${COMPILER}/imgbutton.o +${COMPILER}/libgr.a: ${COMPILER}/keyboard.o +${COMPILER}/libgr.a: ${COMPILER}/line.o +${COMPILER}/libgr.a: ${COMPILER}/listbox.o +${COMPILER}/libgr.a: ${COMPILER}/offscr1bpp.o +${COMPILER}/libgr.a: ${COMPILER}/offscr4bpp.o +${COMPILER}/libgr.a: ${COMPILER}/offscr8bpp.o +${COMPILER}/libgr.a: ${COMPILER}/pushbutton.o +${COMPILER}/libgr.a: ${COMPILER}/radiobutton.o +${COMPILER}/libgr.a: ${COMPILER}/rectangle.o +${COMPILER}/libgr.a: ${COMPILER}/slider.o +${COMPILER}/libgr.a: ${COMPILER}/string.o +${COMPILER}/libgr.a: ${COMPILER}/widget.o + +# +# Include the automatically generated dependency files. +# +ifneq (${MAKECMDGOALS},clean) +-include ${wildcard ${COMPILER}/*.d} __dummy__ +endif diff --git a/grlib/binfonts/fontcm12pt.bin b/grlib/binfonts/fontcm12pt.bin new file mode 100644 index 0000000..25eaca7 Binary files /dev/null and b/grlib/binfonts/fontcm12pt.bin differ diff --git a/grlib/binfonts/fontcm12ptb.bin b/grlib/binfonts/fontcm12ptb.bin new file mode 100644 index 0000000..a11cbfb Binary files /dev/null and b/grlib/binfonts/fontcm12ptb.bin differ diff --git a/grlib/binfonts/fontcm12pti.bin b/grlib/binfonts/fontcm12pti.bin new file mode 100644 index 0000000..6264f59 Binary files /dev/null and b/grlib/binfonts/fontcm12pti.bin differ diff --git a/grlib/binfonts/fontcm14pt.bin b/grlib/binfonts/fontcm14pt.bin new file mode 100644 index 0000000..95959ca Binary files /dev/null and b/grlib/binfonts/fontcm14pt.bin differ diff --git a/grlib/binfonts/fontcm14ptb.bin b/grlib/binfonts/fontcm14ptb.bin new file mode 100644 index 0000000..2bb392a Binary files /dev/null and b/grlib/binfonts/fontcm14ptb.bin differ diff --git a/grlib/binfonts/fontcm14pti.bin b/grlib/binfonts/fontcm14pti.bin new file mode 100644 index 0000000..1cacf3d Binary files /dev/null and b/grlib/binfonts/fontcm14pti.bin differ diff --git a/grlib/binfonts/fontcm16pt.bin b/grlib/binfonts/fontcm16pt.bin new file mode 100644 index 0000000..9921dd1 Binary files /dev/null and b/grlib/binfonts/fontcm16pt.bin differ diff --git a/grlib/binfonts/fontcm16ptb.bin b/grlib/binfonts/fontcm16ptb.bin new file mode 100644 index 0000000..9c38a82 Binary files /dev/null and b/grlib/binfonts/fontcm16ptb.bin differ diff --git a/grlib/binfonts/fontcm16pti.bin b/grlib/binfonts/fontcm16pti.bin new file mode 100644 index 0000000..3c97b5b Binary files /dev/null and b/grlib/binfonts/fontcm16pti.bin differ diff --git a/grlib/binfonts/fontcm18pt.bin b/grlib/binfonts/fontcm18pt.bin new file mode 100644 index 0000000..50820b0 Binary files /dev/null and b/grlib/binfonts/fontcm18pt.bin differ diff --git a/grlib/binfonts/fontcm18ptb.bin b/grlib/binfonts/fontcm18ptb.bin new file mode 100644 index 0000000..0a6303e Binary files /dev/null and b/grlib/binfonts/fontcm18ptb.bin differ diff --git a/grlib/binfonts/fontcm18pti.bin b/grlib/binfonts/fontcm18pti.bin new file mode 100644 index 0000000..4f7aa97 Binary files /dev/null and b/grlib/binfonts/fontcm18pti.bin differ diff --git a/grlib/binfonts/fontcm20pt.bin b/grlib/binfonts/fontcm20pt.bin new file mode 100644 index 0000000..96071a2 Binary files /dev/null and b/grlib/binfonts/fontcm20pt.bin differ diff --git a/grlib/binfonts/fontcm20ptb.bin b/grlib/binfonts/fontcm20ptb.bin new file mode 100644 index 0000000..443b637 Binary files /dev/null and b/grlib/binfonts/fontcm20ptb.bin differ diff --git a/grlib/binfonts/fontcm20pti.bin b/grlib/binfonts/fontcm20pti.bin new file mode 100644 index 0000000..2331595 Binary files /dev/null and b/grlib/binfonts/fontcm20pti.bin differ diff --git a/grlib/binfonts/fontcm22pt.bin b/grlib/binfonts/fontcm22pt.bin new file mode 100644 index 0000000..8ff3be3 Binary files /dev/null and b/grlib/binfonts/fontcm22pt.bin differ diff --git a/grlib/binfonts/fontcm22ptb.bin b/grlib/binfonts/fontcm22ptb.bin new file mode 100644 index 0000000..0044ef1 Binary files /dev/null and b/grlib/binfonts/fontcm22ptb.bin differ diff --git a/grlib/binfonts/fontcm22pti.bin b/grlib/binfonts/fontcm22pti.bin new file mode 100644 index 0000000..348ed30 Binary files /dev/null and b/grlib/binfonts/fontcm22pti.bin differ diff --git a/grlib/binfonts/fontcm24pt.bin b/grlib/binfonts/fontcm24pt.bin new file mode 100644 index 0000000..7c09a77 Binary files /dev/null and b/grlib/binfonts/fontcm24pt.bin differ diff --git a/grlib/binfonts/fontcm24ptb.bin b/grlib/binfonts/fontcm24ptb.bin new file mode 100644 index 0000000..357caac Binary files /dev/null and b/grlib/binfonts/fontcm24ptb.bin differ diff --git a/grlib/binfonts/fontcm24pti.bin b/grlib/binfonts/fontcm24pti.bin new file mode 100644 index 0000000..0e334da Binary files /dev/null and b/grlib/binfonts/fontcm24pti.bin differ diff --git a/grlib/binfonts/fontcm26pt.bin b/grlib/binfonts/fontcm26pt.bin new file mode 100644 index 0000000..4b0ea34 Binary files /dev/null and b/grlib/binfonts/fontcm26pt.bin differ diff --git a/grlib/binfonts/fontcm26ptb.bin b/grlib/binfonts/fontcm26ptb.bin new file mode 100644 index 0000000..eb77e7b Binary files /dev/null and b/grlib/binfonts/fontcm26ptb.bin differ diff --git a/grlib/binfonts/fontcm26pti.bin b/grlib/binfonts/fontcm26pti.bin new file mode 100644 index 0000000..2e268db Binary files /dev/null and b/grlib/binfonts/fontcm26pti.bin differ diff --git a/grlib/binfonts/fontcm28pt.bin b/grlib/binfonts/fontcm28pt.bin new file mode 100644 index 0000000..1ccbd94 Binary files /dev/null and b/grlib/binfonts/fontcm28pt.bin differ diff --git a/grlib/binfonts/fontcm28ptb.bin b/grlib/binfonts/fontcm28ptb.bin new file mode 100644 index 0000000..cd7de01 Binary files /dev/null and b/grlib/binfonts/fontcm28ptb.bin differ diff --git a/grlib/binfonts/fontcm28pti.bin b/grlib/binfonts/fontcm28pti.bin new file mode 100644 index 0000000..a6eaddc Binary files /dev/null and b/grlib/binfonts/fontcm28pti.bin differ diff --git a/grlib/binfonts/fontcm30pt.bin b/grlib/binfonts/fontcm30pt.bin new file mode 100644 index 0000000..b2349f2 Binary files /dev/null and b/grlib/binfonts/fontcm30pt.bin differ diff --git a/grlib/binfonts/fontcm30ptb.bin b/grlib/binfonts/fontcm30ptb.bin new file mode 100644 index 0000000..72dd822 Binary files /dev/null and b/grlib/binfonts/fontcm30ptb.bin differ diff --git a/grlib/binfonts/fontcm30pti.bin b/grlib/binfonts/fontcm30pti.bin new file mode 100644 index 0000000..d1e437c Binary files /dev/null and b/grlib/binfonts/fontcm30pti.bin differ diff --git a/grlib/binfonts/fontcm32pt.bin b/grlib/binfonts/fontcm32pt.bin new file mode 100644 index 0000000..1a73c65 Binary files /dev/null and b/grlib/binfonts/fontcm32pt.bin differ diff --git a/grlib/binfonts/fontcm32ptb.bin b/grlib/binfonts/fontcm32ptb.bin new file mode 100644 index 0000000..4001beb Binary files /dev/null and b/grlib/binfonts/fontcm32ptb.bin differ diff --git a/grlib/binfonts/fontcm32pti.bin b/grlib/binfonts/fontcm32pti.bin new file mode 100644 index 0000000..19ec734 Binary files /dev/null and b/grlib/binfonts/fontcm32pti.bin differ diff --git a/grlib/binfonts/fontcm34pt.bin b/grlib/binfonts/fontcm34pt.bin new file mode 100644 index 0000000..734ac51 Binary files /dev/null and b/grlib/binfonts/fontcm34pt.bin differ diff --git a/grlib/binfonts/fontcm34ptb.bin b/grlib/binfonts/fontcm34ptb.bin new file mode 100644 index 0000000..6423cbe Binary files /dev/null and b/grlib/binfonts/fontcm34ptb.bin differ diff --git a/grlib/binfonts/fontcm34pti.bin b/grlib/binfonts/fontcm34pti.bin new file mode 100644 index 0000000..36a1c82 Binary files /dev/null and b/grlib/binfonts/fontcm34pti.bin differ diff --git a/grlib/binfonts/fontcm36pt.bin b/grlib/binfonts/fontcm36pt.bin new file mode 100644 index 0000000..f6071ea Binary files /dev/null and b/grlib/binfonts/fontcm36pt.bin differ diff --git a/grlib/binfonts/fontcm36ptb.bin b/grlib/binfonts/fontcm36ptb.bin new file mode 100644 index 0000000..40117c2 Binary files /dev/null and b/grlib/binfonts/fontcm36ptb.bin differ diff --git a/grlib/binfonts/fontcm36pti.bin b/grlib/binfonts/fontcm36pti.bin new file mode 100644 index 0000000..9515dd9 Binary files /dev/null and b/grlib/binfonts/fontcm36pti.bin differ diff --git a/grlib/binfonts/fontcm38pt.bin b/grlib/binfonts/fontcm38pt.bin new file mode 100644 index 0000000..b3e4486 Binary files /dev/null and b/grlib/binfonts/fontcm38pt.bin differ diff --git a/grlib/binfonts/fontcm38ptb.bin b/grlib/binfonts/fontcm38ptb.bin new file mode 100644 index 0000000..5da6f38 Binary files /dev/null and b/grlib/binfonts/fontcm38ptb.bin differ diff --git a/grlib/binfonts/fontcm38pti.bin b/grlib/binfonts/fontcm38pti.bin new file mode 100644 index 0000000..c4e84f8 Binary files /dev/null and b/grlib/binfonts/fontcm38pti.bin differ diff --git a/grlib/binfonts/fontcm40pt.bin b/grlib/binfonts/fontcm40pt.bin new file mode 100644 index 0000000..39f3950 Binary files /dev/null and b/grlib/binfonts/fontcm40pt.bin differ diff --git a/grlib/binfonts/fontcm40ptb.bin b/grlib/binfonts/fontcm40ptb.bin new file mode 100644 index 0000000..6ee7701 Binary files /dev/null and b/grlib/binfonts/fontcm40ptb.bin differ diff --git a/grlib/binfonts/fontcm40pti.bin b/grlib/binfonts/fontcm40pti.bin new file mode 100644 index 0000000..2f54689 Binary files /dev/null and b/grlib/binfonts/fontcm40pti.bin differ diff --git a/grlib/binfonts/fontcm42pt.bin b/grlib/binfonts/fontcm42pt.bin new file mode 100644 index 0000000..5a639f9 Binary files /dev/null and b/grlib/binfonts/fontcm42pt.bin differ diff --git a/grlib/binfonts/fontcm42ptb.bin b/grlib/binfonts/fontcm42ptb.bin new file mode 100644 index 0000000..0b2353a Binary files /dev/null and b/grlib/binfonts/fontcm42ptb.bin differ diff --git a/grlib/binfonts/fontcm42pti.bin b/grlib/binfonts/fontcm42pti.bin new file mode 100644 index 0000000..70a211a Binary files /dev/null and b/grlib/binfonts/fontcm42pti.bin differ diff --git a/grlib/binfonts/fontcm44pt.bin b/grlib/binfonts/fontcm44pt.bin new file mode 100644 index 0000000..42a3b76 Binary files /dev/null and b/grlib/binfonts/fontcm44pt.bin differ diff --git a/grlib/binfonts/fontcm44ptb.bin b/grlib/binfonts/fontcm44ptb.bin new file mode 100644 index 0000000..be6048b Binary files /dev/null and b/grlib/binfonts/fontcm44ptb.bin differ diff --git a/grlib/binfonts/fontcm44pti.bin b/grlib/binfonts/fontcm44pti.bin new file mode 100644 index 0000000..7a3492b Binary files /dev/null and b/grlib/binfonts/fontcm44pti.bin differ diff --git a/grlib/binfonts/fontcm46pt.bin b/grlib/binfonts/fontcm46pt.bin new file mode 100644 index 0000000..25581cc Binary files /dev/null and b/grlib/binfonts/fontcm46pt.bin differ diff --git a/grlib/binfonts/fontcm46ptb.bin b/grlib/binfonts/fontcm46ptb.bin new file mode 100644 index 0000000..3947309 Binary files /dev/null and b/grlib/binfonts/fontcm46ptb.bin differ diff --git a/grlib/binfonts/fontcm46pti.bin b/grlib/binfonts/fontcm46pti.bin new file mode 100644 index 0000000..ab5eb8f Binary files /dev/null and b/grlib/binfonts/fontcm46pti.bin differ diff --git a/grlib/binfonts/fontcm48pt.bin b/grlib/binfonts/fontcm48pt.bin new file mode 100644 index 0000000..296820e Binary files /dev/null and b/grlib/binfonts/fontcm48pt.bin differ diff --git a/grlib/binfonts/fontcm48ptb.bin b/grlib/binfonts/fontcm48ptb.bin new file mode 100644 index 0000000..6934a13 Binary files /dev/null and b/grlib/binfonts/fontcm48ptb.bin differ diff --git a/grlib/binfonts/fontcm48pti.bin b/grlib/binfonts/fontcm48pti.bin new file mode 100644 index 0000000..6865f1c Binary files /dev/null and b/grlib/binfonts/fontcm48pti.bin differ diff --git a/grlib/binfonts/fontcmsc12pt.bin b/grlib/binfonts/fontcmsc12pt.bin new file mode 100644 index 0000000..c411243 Binary files /dev/null and b/grlib/binfonts/fontcmsc12pt.bin differ diff --git a/grlib/binfonts/fontcmsc14pt.bin b/grlib/binfonts/fontcmsc14pt.bin new file mode 100644 index 0000000..8024c75 Binary files /dev/null and b/grlib/binfonts/fontcmsc14pt.bin differ diff --git a/grlib/binfonts/fontcmsc16pt.bin b/grlib/binfonts/fontcmsc16pt.bin new file mode 100644 index 0000000..4a6615f Binary files /dev/null and b/grlib/binfonts/fontcmsc16pt.bin differ diff --git a/grlib/binfonts/fontcmsc18pt.bin b/grlib/binfonts/fontcmsc18pt.bin new file mode 100644 index 0000000..5a081d7 Binary files /dev/null and b/grlib/binfonts/fontcmsc18pt.bin differ diff --git a/grlib/binfonts/fontcmsc20pt.bin b/grlib/binfonts/fontcmsc20pt.bin new file mode 100644 index 0000000..1a0798a Binary files /dev/null and b/grlib/binfonts/fontcmsc20pt.bin differ diff --git a/grlib/binfonts/fontcmsc22pt.bin b/grlib/binfonts/fontcmsc22pt.bin new file mode 100644 index 0000000..3eaae23 Binary files /dev/null and b/grlib/binfonts/fontcmsc22pt.bin differ diff --git a/grlib/binfonts/fontcmsc24pt.bin b/grlib/binfonts/fontcmsc24pt.bin new file mode 100644 index 0000000..7ec80cf Binary files /dev/null and b/grlib/binfonts/fontcmsc24pt.bin differ diff --git a/grlib/binfonts/fontcmsc26pt.bin b/grlib/binfonts/fontcmsc26pt.bin new file mode 100644 index 0000000..57b98eb Binary files /dev/null and b/grlib/binfonts/fontcmsc26pt.bin differ diff --git a/grlib/binfonts/fontcmsc28pt.bin b/grlib/binfonts/fontcmsc28pt.bin new file mode 100644 index 0000000..98862d4 Binary files /dev/null and b/grlib/binfonts/fontcmsc28pt.bin differ diff --git a/grlib/binfonts/fontcmsc30pt.bin b/grlib/binfonts/fontcmsc30pt.bin new file mode 100644 index 0000000..07f2598 Binary files /dev/null and b/grlib/binfonts/fontcmsc30pt.bin differ diff --git a/grlib/binfonts/fontcmsc32pt.bin b/grlib/binfonts/fontcmsc32pt.bin new file mode 100644 index 0000000..8372d3e Binary files /dev/null and b/grlib/binfonts/fontcmsc32pt.bin differ diff --git a/grlib/binfonts/fontcmsc34pt.bin b/grlib/binfonts/fontcmsc34pt.bin new file mode 100644 index 0000000..9239c0a Binary files /dev/null and b/grlib/binfonts/fontcmsc34pt.bin differ diff --git a/grlib/binfonts/fontcmsc36pt.bin b/grlib/binfonts/fontcmsc36pt.bin new file mode 100644 index 0000000..d9ee91e Binary files /dev/null and b/grlib/binfonts/fontcmsc36pt.bin differ diff --git a/grlib/binfonts/fontcmsc38pt.bin b/grlib/binfonts/fontcmsc38pt.bin new file mode 100644 index 0000000..2d3e6ad Binary files /dev/null and b/grlib/binfonts/fontcmsc38pt.bin differ diff --git a/grlib/binfonts/fontcmsc40pt.bin b/grlib/binfonts/fontcmsc40pt.bin new file mode 100644 index 0000000..a444571 Binary files /dev/null and b/grlib/binfonts/fontcmsc40pt.bin differ diff --git a/grlib/binfonts/fontcmsc42pt.bin b/grlib/binfonts/fontcmsc42pt.bin new file mode 100644 index 0000000..0d8a8f6 Binary files /dev/null and b/grlib/binfonts/fontcmsc42pt.bin differ diff --git a/grlib/binfonts/fontcmsc44pt.bin b/grlib/binfonts/fontcmsc44pt.bin new file mode 100644 index 0000000..bf86f48 Binary files /dev/null and b/grlib/binfonts/fontcmsc44pt.bin differ diff --git a/grlib/binfonts/fontcmsc46pt.bin b/grlib/binfonts/fontcmsc46pt.bin new file mode 100644 index 0000000..2b7f871 Binary files /dev/null and b/grlib/binfonts/fontcmsc46pt.bin differ diff --git a/grlib/binfonts/fontcmsc48pt.bin b/grlib/binfonts/fontcmsc48pt.bin new file mode 100644 index 0000000..e0b1601 Binary files /dev/null and b/grlib/binfonts/fontcmsc48pt.bin differ diff --git a/grlib/binfonts/fontcmss12pt.bin b/grlib/binfonts/fontcmss12pt.bin new file mode 100644 index 0000000..c82df91 Binary files /dev/null and b/grlib/binfonts/fontcmss12pt.bin differ diff --git a/grlib/binfonts/fontcmss12ptb.bin b/grlib/binfonts/fontcmss12ptb.bin new file mode 100644 index 0000000..28e0a09 Binary files /dev/null and b/grlib/binfonts/fontcmss12ptb.bin differ diff --git a/grlib/binfonts/fontcmss12pti.bin b/grlib/binfonts/fontcmss12pti.bin new file mode 100644 index 0000000..2c23bd4 Binary files /dev/null and b/grlib/binfonts/fontcmss12pti.bin differ diff --git a/grlib/binfonts/fontcmss14pt.bin b/grlib/binfonts/fontcmss14pt.bin new file mode 100644 index 0000000..1885611 Binary files /dev/null and b/grlib/binfonts/fontcmss14pt.bin differ diff --git a/grlib/binfonts/fontcmss14ptb.bin b/grlib/binfonts/fontcmss14ptb.bin new file mode 100644 index 0000000..0cf8b8f Binary files /dev/null and b/grlib/binfonts/fontcmss14ptb.bin differ diff --git a/grlib/binfonts/fontcmss14pti.bin b/grlib/binfonts/fontcmss14pti.bin new file mode 100644 index 0000000..e726b15 Binary files /dev/null and b/grlib/binfonts/fontcmss14pti.bin differ diff --git a/grlib/binfonts/fontcmss16pt.bin b/grlib/binfonts/fontcmss16pt.bin new file mode 100644 index 0000000..6a6f99e Binary files /dev/null and b/grlib/binfonts/fontcmss16pt.bin differ diff --git a/grlib/binfonts/fontcmss16ptb.bin b/grlib/binfonts/fontcmss16ptb.bin new file mode 100644 index 0000000..f55dcf6 Binary files /dev/null and b/grlib/binfonts/fontcmss16ptb.bin differ diff --git a/grlib/binfonts/fontcmss16pti.bin b/grlib/binfonts/fontcmss16pti.bin new file mode 100644 index 0000000..f422c1a Binary files /dev/null and b/grlib/binfonts/fontcmss16pti.bin differ diff --git a/grlib/binfonts/fontcmss18pt.bin b/grlib/binfonts/fontcmss18pt.bin new file mode 100644 index 0000000..030026d Binary files /dev/null and b/grlib/binfonts/fontcmss18pt.bin differ diff --git a/grlib/binfonts/fontcmss18ptb.bin b/grlib/binfonts/fontcmss18ptb.bin new file mode 100644 index 0000000..0ec29c0 Binary files /dev/null and b/grlib/binfonts/fontcmss18ptb.bin differ diff --git a/grlib/binfonts/fontcmss18pti.bin b/grlib/binfonts/fontcmss18pti.bin new file mode 100644 index 0000000..714f944 Binary files /dev/null and b/grlib/binfonts/fontcmss18pti.bin differ diff --git a/grlib/binfonts/fontcmss20pt.bin b/grlib/binfonts/fontcmss20pt.bin new file mode 100644 index 0000000..d9df932 Binary files /dev/null and b/grlib/binfonts/fontcmss20pt.bin differ diff --git a/grlib/binfonts/fontcmss20ptb.bin b/grlib/binfonts/fontcmss20ptb.bin new file mode 100644 index 0000000..dfda605 Binary files /dev/null and b/grlib/binfonts/fontcmss20ptb.bin differ diff --git a/grlib/binfonts/fontcmss20pti.bin b/grlib/binfonts/fontcmss20pti.bin new file mode 100644 index 0000000..516b320 Binary files /dev/null and b/grlib/binfonts/fontcmss20pti.bin differ diff --git a/grlib/binfonts/fontcmss22pt.bin b/grlib/binfonts/fontcmss22pt.bin new file mode 100644 index 0000000..15852bb Binary files /dev/null and b/grlib/binfonts/fontcmss22pt.bin differ diff --git a/grlib/binfonts/fontcmss22ptb.bin b/grlib/binfonts/fontcmss22ptb.bin new file mode 100644 index 0000000..f4a07a8 Binary files /dev/null and b/grlib/binfonts/fontcmss22ptb.bin differ diff --git a/grlib/binfonts/fontcmss22pti.bin b/grlib/binfonts/fontcmss22pti.bin new file mode 100644 index 0000000..9aba876 Binary files /dev/null and b/grlib/binfonts/fontcmss22pti.bin differ diff --git a/grlib/binfonts/fontcmss24pt.bin b/grlib/binfonts/fontcmss24pt.bin new file mode 100644 index 0000000..dfe37b4 Binary files /dev/null and b/grlib/binfonts/fontcmss24pt.bin differ diff --git a/grlib/binfonts/fontcmss24ptb.bin b/grlib/binfonts/fontcmss24ptb.bin new file mode 100644 index 0000000..ba907d6 Binary files /dev/null and b/grlib/binfonts/fontcmss24ptb.bin differ diff --git a/grlib/binfonts/fontcmss24pti.bin b/grlib/binfonts/fontcmss24pti.bin new file mode 100644 index 0000000..0786ae2 Binary files /dev/null and b/grlib/binfonts/fontcmss24pti.bin differ diff --git a/grlib/binfonts/fontcmss26pt.bin b/grlib/binfonts/fontcmss26pt.bin new file mode 100644 index 0000000..c55d948 Binary files /dev/null and b/grlib/binfonts/fontcmss26pt.bin differ diff --git a/grlib/binfonts/fontcmss26ptb.bin b/grlib/binfonts/fontcmss26ptb.bin new file mode 100644 index 0000000..ecfcaad Binary files /dev/null and b/grlib/binfonts/fontcmss26ptb.bin differ diff --git a/grlib/binfonts/fontcmss26pti.bin b/grlib/binfonts/fontcmss26pti.bin new file mode 100644 index 0000000..01b7ada Binary files /dev/null and b/grlib/binfonts/fontcmss26pti.bin differ diff --git a/grlib/binfonts/fontcmss28pt.bin b/grlib/binfonts/fontcmss28pt.bin new file mode 100644 index 0000000..0b5178f Binary files /dev/null and b/grlib/binfonts/fontcmss28pt.bin differ diff --git a/grlib/binfonts/fontcmss28ptb.bin b/grlib/binfonts/fontcmss28ptb.bin new file mode 100644 index 0000000..d7dbd15 Binary files /dev/null and b/grlib/binfonts/fontcmss28ptb.bin differ diff --git a/grlib/binfonts/fontcmss28pti.bin b/grlib/binfonts/fontcmss28pti.bin new file mode 100644 index 0000000..4b9b332 Binary files /dev/null and b/grlib/binfonts/fontcmss28pti.bin differ diff --git a/grlib/binfonts/fontcmss30pt.bin b/grlib/binfonts/fontcmss30pt.bin new file mode 100644 index 0000000..500c2eb Binary files /dev/null and b/grlib/binfonts/fontcmss30pt.bin differ diff --git a/grlib/binfonts/fontcmss30ptb.bin b/grlib/binfonts/fontcmss30ptb.bin new file mode 100644 index 0000000..cb52670 Binary files /dev/null and b/grlib/binfonts/fontcmss30ptb.bin differ diff --git a/grlib/binfonts/fontcmss30pti.bin b/grlib/binfonts/fontcmss30pti.bin new file mode 100644 index 0000000..d113ccf Binary files /dev/null and b/grlib/binfonts/fontcmss30pti.bin differ diff --git a/grlib/binfonts/fontcmss32pt.bin b/grlib/binfonts/fontcmss32pt.bin new file mode 100644 index 0000000..3b27745 Binary files /dev/null and b/grlib/binfonts/fontcmss32pt.bin differ diff --git a/grlib/binfonts/fontcmss32ptb.bin b/grlib/binfonts/fontcmss32ptb.bin new file mode 100644 index 0000000..02eb8b1 Binary files /dev/null and b/grlib/binfonts/fontcmss32ptb.bin differ diff --git a/grlib/binfonts/fontcmss32pti.bin b/grlib/binfonts/fontcmss32pti.bin new file mode 100644 index 0000000..d81cfa4 Binary files /dev/null and b/grlib/binfonts/fontcmss32pti.bin differ diff --git a/grlib/binfonts/fontcmss34pt.bin b/grlib/binfonts/fontcmss34pt.bin new file mode 100644 index 0000000..b5c1e28 Binary files /dev/null and b/grlib/binfonts/fontcmss34pt.bin differ diff --git a/grlib/binfonts/fontcmss34ptb.bin b/grlib/binfonts/fontcmss34ptb.bin new file mode 100644 index 0000000..d883d9a Binary files /dev/null and b/grlib/binfonts/fontcmss34ptb.bin differ diff --git a/grlib/binfonts/fontcmss34pti.bin b/grlib/binfonts/fontcmss34pti.bin new file mode 100644 index 0000000..e1b2eec Binary files /dev/null and b/grlib/binfonts/fontcmss34pti.bin differ diff --git a/grlib/binfonts/fontcmss36pt.bin b/grlib/binfonts/fontcmss36pt.bin new file mode 100644 index 0000000..d71e418 Binary files /dev/null and b/grlib/binfonts/fontcmss36pt.bin differ diff --git a/grlib/binfonts/fontcmss36ptb.bin b/grlib/binfonts/fontcmss36ptb.bin new file mode 100644 index 0000000..0725ad5 Binary files /dev/null and b/grlib/binfonts/fontcmss36ptb.bin differ diff --git a/grlib/binfonts/fontcmss36pti.bin b/grlib/binfonts/fontcmss36pti.bin new file mode 100644 index 0000000..7234a22 Binary files /dev/null and b/grlib/binfonts/fontcmss36pti.bin differ diff --git a/grlib/binfonts/fontcmss38pt.bin b/grlib/binfonts/fontcmss38pt.bin new file mode 100644 index 0000000..86ecdc3 Binary files /dev/null and b/grlib/binfonts/fontcmss38pt.bin differ diff --git a/grlib/binfonts/fontcmss38ptb.bin b/grlib/binfonts/fontcmss38ptb.bin new file mode 100644 index 0000000..8c0edbe Binary files /dev/null and b/grlib/binfonts/fontcmss38ptb.bin differ diff --git a/grlib/binfonts/fontcmss38pti.bin b/grlib/binfonts/fontcmss38pti.bin new file mode 100644 index 0000000..4401dff Binary files /dev/null and b/grlib/binfonts/fontcmss38pti.bin differ diff --git a/grlib/binfonts/fontcmss40pt.bin b/grlib/binfonts/fontcmss40pt.bin new file mode 100644 index 0000000..02f3745 Binary files /dev/null and b/grlib/binfonts/fontcmss40pt.bin differ diff --git a/grlib/binfonts/fontcmss40ptb.bin b/grlib/binfonts/fontcmss40ptb.bin new file mode 100644 index 0000000..f885088 Binary files /dev/null and b/grlib/binfonts/fontcmss40ptb.bin differ diff --git a/grlib/binfonts/fontcmss40pti.bin b/grlib/binfonts/fontcmss40pti.bin new file mode 100644 index 0000000..a7e32c0 Binary files /dev/null and b/grlib/binfonts/fontcmss40pti.bin differ diff --git a/grlib/binfonts/fontcmss42pt.bin b/grlib/binfonts/fontcmss42pt.bin new file mode 100644 index 0000000..b6eed95 Binary files /dev/null and b/grlib/binfonts/fontcmss42pt.bin differ diff --git a/grlib/binfonts/fontcmss42ptb.bin b/grlib/binfonts/fontcmss42ptb.bin new file mode 100644 index 0000000..42b1029 Binary files /dev/null and b/grlib/binfonts/fontcmss42ptb.bin differ diff --git a/grlib/binfonts/fontcmss42pti.bin b/grlib/binfonts/fontcmss42pti.bin new file mode 100644 index 0000000..1b5caf8 Binary files /dev/null and b/grlib/binfonts/fontcmss42pti.bin differ diff --git a/grlib/binfonts/fontcmss44pt.bin b/grlib/binfonts/fontcmss44pt.bin new file mode 100644 index 0000000..3e5a175 Binary files /dev/null and b/grlib/binfonts/fontcmss44pt.bin differ diff --git a/grlib/binfonts/fontcmss44ptb.bin b/grlib/binfonts/fontcmss44ptb.bin new file mode 100644 index 0000000..441f62a Binary files /dev/null and b/grlib/binfonts/fontcmss44ptb.bin differ diff --git a/grlib/binfonts/fontcmss44pti.bin b/grlib/binfonts/fontcmss44pti.bin new file mode 100644 index 0000000..d11fc42 Binary files /dev/null and b/grlib/binfonts/fontcmss44pti.bin differ diff --git a/grlib/binfonts/fontcmss46pt.bin b/grlib/binfonts/fontcmss46pt.bin new file mode 100644 index 0000000..21db707 Binary files /dev/null and b/grlib/binfonts/fontcmss46pt.bin differ diff --git a/grlib/binfonts/fontcmss46ptb.bin b/grlib/binfonts/fontcmss46ptb.bin new file mode 100644 index 0000000..9435493 Binary files /dev/null and b/grlib/binfonts/fontcmss46ptb.bin differ diff --git a/grlib/binfonts/fontcmss46pti.bin b/grlib/binfonts/fontcmss46pti.bin new file mode 100644 index 0000000..dae0ba2 Binary files /dev/null and b/grlib/binfonts/fontcmss46pti.bin differ diff --git a/grlib/binfonts/fontcmss48pt.bin b/grlib/binfonts/fontcmss48pt.bin new file mode 100644 index 0000000..8f7d938 Binary files /dev/null and b/grlib/binfonts/fontcmss48pt.bin differ diff --git a/grlib/binfonts/fontcmss48ptb.bin b/grlib/binfonts/fontcmss48ptb.bin new file mode 100644 index 0000000..9d1f8d5 Binary files /dev/null and b/grlib/binfonts/fontcmss48ptb.bin differ diff --git a/grlib/binfonts/fontcmss48pti.bin b/grlib/binfonts/fontcmss48pti.bin new file mode 100644 index 0000000..a8d5671 Binary files /dev/null and b/grlib/binfonts/fontcmss48pti.bin differ diff --git a/grlib/binfonts/fontcmtt12pt.bin b/grlib/binfonts/fontcmtt12pt.bin new file mode 100644 index 0000000..52a5d29 Binary files /dev/null and b/grlib/binfonts/fontcmtt12pt.bin differ diff --git a/grlib/binfonts/fontcmtt14pt.bin b/grlib/binfonts/fontcmtt14pt.bin new file mode 100644 index 0000000..d8fa9cb Binary files /dev/null and b/grlib/binfonts/fontcmtt14pt.bin differ diff --git a/grlib/binfonts/fontcmtt16pt.bin b/grlib/binfonts/fontcmtt16pt.bin new file mode 100644 index 0000000..a60683d Binary files /dev/null and b/grlib/binfonts/fontcmtt16pt.bin differ diff --git a/grlib/binfonts/fontcmtt18pt.bin b/grlib/binfonts/fontcmtt18pt.bin new file mode 100644 index 0000000..f526f56 Binary files /dev/null and b/grlib/binfonts/fontcmtt18pt.bin differ diff --git a/grlib/binfonts/fontcmtt20pt.bin b/grlib/binfonts/fontcmtt20pt.bin new file mode 100644 index 0000000..743f0b2 Binary files /dev/null and b/grlib/binfonts/fontcmtt20pt.bin differ diff --git a/grlib/binfonts/fontcmtt22pt.bin b/grlib/binfonts/fontcmtt22pt.bin new file mode 100644 index 0000000..6999973 Binary files /dev/null and b/grlib/binfonts/fontcmtt22pt.bin differ diff --git a/grlib/binfonts/fontcmtt24pt.bin b/grlib/binfonts/fontcmtt24pt.bin new file mode 100644 index 0000000..e233008 Binary files /dev/null and b/grlib/binfonts/fontcmtt24pt.bin differ diff --git a/grlib/binfonts/fontcmtt26pt.bin b/grlib/binfonts/fontcmtt26pt.bin new file mode 100644 index 0000000..d174f69 Binary files /dev/null and b/grlib/binfonts/fontcmtt26pt.bin differ diff --git a/grlib/binfonts/fontcmtt28pt.bin b/grlib/binfonts/fontcmtt28pt.bin new file mode 100644 index 0000000..e8da2db Binary files /dev/null and b/grlib/binfonts/fontcmtt28pt.bin differ diff --git a/grlib/binfonts/fontcmtt30pt.bin b/grlib/binfonts/fontcmtt30pt.bin new file mode 100644 index 0000000..a87cf44 Binary files /dev/null and b/grlib/binfonts/fontcmtt30pt.bin differ diff --git a/grlib/binfonts/fontcmtt32pt.bin b/grlib/binfonts/fontcmtt32pt.bin new file mode 100644 index 0000000..c568c75 Binary files /dev/null and b/grlib/binfonts/fontcmtt32pt.bin differ diff --git a/grlib/binfonts/fontcmtt34pt.bin b/grlib/binfonts/fontcmtt34pt.bin new file mode 100644 index 0000000..352b514 Binary files /dev/null and b/grlib/binfonts/fontcmtt34pt.bin differ diff --git a/grlib/binfonts/fontcmtt36pt.bin b/grlib/binfonts/fontcmtt36pt.bin new file mode 100644 index 0000000..eb8b90d Binary files /dev/null and b/grlib/binfonts/fontcmtt36pt.bin differ diff --git a/grlib/binfonts/fontcmtt38pt.bin b/grlib/binfonts/fontcmtt38pt.bin new file mode 100644 index 0000000..453eb82 Binary files /dev/null and b/grlib/binfonts/fontcmtt38pt.bin differ diff --git a/grlib/binfonts/fontcmtt40pt.bin b/grlib/binfonts/fontcmtt40pt.bin new file mode 100644 index 0000000..2f5e3fa Binary files /dev/null and b/grlib/binfonts/fontcmtt40pt.bin differ diff --git a/grlib/binfonts/fontcmtt42pt.bin b/grlib/binfonts/fontcmtt42pt.bin new file mode 100644 index 0000000..2f033c8 Binary files /dev/null and b/grlib/binfonts/fontcmtt42pt.bin differ diff --git a/grlib/binfonts/fontcmtt44pt.bin b/grlib/binfonts/fontcmtt44pt.bin new file mode 100644 index 0000000..cb906c0 Binary files /dev/null and b/grlib/binfonts/fontcmtt44pt.bin differ diff --git a/grlib/binfonts/fontcmtt46pt.bin b/grlib/binfonts/fontcmtt46pt.bin new file mode 100644 index 0000000..d13cf3a Binary files /dev/null and b/grlib/binfonts/fontcmtt46pt.bin differ diff --git a/grlib/binfonts/fontcmtt48pt.bin b/grlib/binfonts/fontcmtt48pt.bin new file mode 100644 index 0000000..9885a0e Binary files /dev/null and b/grlib/binfonts/fontcmtt48pt.bin differ diff --git a/grlib/canvas.c b/grlib/canvas.c new file mode 100644 index 0000000..d6939fb --- /dev/null +++ b/grlib/canvas.c @@ -0,0 +1,402 @@ +//***************************************************************************** +// +// canvas.c - A drawing canvas widget. +// +// Copyright (c) 2008-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#include +#include +#include "driverlib/debug.h" +#include "grlib/grlib.h" +#include "grlib/widget.h" +#include "grlib/canvas.h" + +//***************************************************************************** +// +//! \addtogroup canvas_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +//! Draws the contents of a canvas. +//! +//! \param psWidget is a pointer to the canvas widget to be drawn. +//! +//! This function draws the contents of a canvas on the display. This is +//! called in response to a \b #WIDGET_MSG_PAINT message. +//! +//! \return None. +// +//***************************************************************************** +static void +CanvasPaint(tWidget *psWidget) +{ + tCanvasWidget *psCanvas; + tContext sCtx; + int32_t i32X, i32Y, i32Size; + + // + // Check the arguments. + // + ASSERT(psWidget); + + // + // Convert the generic widget pointer into a canvas widget pointer. + // + psCanvas = (tCanvasWidget *)psWidget; + + // + // Initialize a drawing context. + // + GrContextInit(&sCtx, psWidget->psDisplay); + + // + // Initialize the clipping region based on the extents of this canvas. + // + GrContextClipRegionSet(&sCtx, &(psWidget->sPosition)); + + // + // See if the canvas fill style is selected. + // + if(psCanvas->ui32Style & CANVAS_STYLE_FILL) + { + // + // Fill the canvas with the fill color. + // + GrContextForegroundSet(&sCtx, psCanvas->ui32FillColor); + GrRectFill(&sCtx, &(psWidget->sPosition)); + } + + // + // See if the canvas outline style is selected. + // + if(psCanvas->ui32Style & CANVAS_STYLE_OUTLINE) + { + // + // Outline the canvas with the outline color. + // + GrContextForegroundSet(&sCtx, psCanvas->ui32OutlineColor); + GrRectDraw(&sCtx, &(psWidget->sPosition)); + } + + // + // See if the canvas text or image style is selected. + // + if(psCanvas->ui32Style & (CANVAS_STYLE_TEXT | CANVAS_STYLE_IMG)) + { + // + // Compute the center of the canvas. + // + i32X = (psWidget->sPosition.i16XMin + + ((psWidget->sPosition.i16XMax - + psWidget->sPosition.i16XMin + 1) / 2)); + i32Y = (psWidget->sPosition.i16YMin + + ((psWidget->sPosition.i16YMax - + psWidget->sPosition.i16YMin + 1) / 2)); + + // + // If the canvas outline style is selected then shrink the clipping + // region by one pixel on each side so that the outline is not + // overwritten by the text or image. + // + if(psCanvas->ui32Style & CANVAS_STYLE_OUTLINE) + { + sCtx.sClipRegion.i16XMin++; + sCtx.sClipRegion.i16YMin++; + sCtx.sClipRegion.i16XMax--; + sCtx.sClipRegion.i16YMax--; + } + + // + // See if the canvas image style is selected. + // + if(psCanvas->ui32Style & CANVAS_STYLE_IMG) + { + // + // Set the foreground and background colors to use for 1 BPP + // images. + // + GrContextForegroundSet(&sCtx, psCanvas->ui32TextColor); + GrContextBackgroundSet(&sCtx, psCanvas->ui32FillColor); + + // + // Draw the image centered in the canvas. + // + GrImageDraw(&sCtx, psCanvas->pui8Image, + i32X - (GrImageWidthGet(psCanvas->pui8Image) / 2), + i32Y - (GrImageHeightGet(psCanvas->pui8Image) / 2)); + } + + // + // See if the canvas text style is selected. + // + if(psCanvas->ui32Style & CANVAS_STYLE_TEXT) + { + // + // Set the relevant font and colors. + // + GrContextFontSet(&sCtx, psCanvas->psFont); + GrContextForegroundSet(&sCtx, psCanvas->ui32TextColor); + GrContextBackgroundSet(&sCtx, psCanvas->ui32FillColor); + + // + // Determine the drawing position for the string based on the + // text alignment style. First consider the horizontal case. We + // enter this section with i32X set to the center of the widget. + // + + // + // How wide is the string? + // + i32Size = GrStringWidthGet(&sCtx, psCanvas->pcText, -1); + + if(psCanvas->ui32Style & CANVAS_STYLE_TEXT_LEFT) + { + // + // The string is to be aligned with the left edge of + // the widget. Use the clipping rectangle as reference + // since this will ensure that the string doesn't + // encroach on any border that is set. + // + i32X = sCtx.sClipRegion.i16XMin; + } + else + { + if(psCanvas->ui32Style & CANVAS_STYLE_TEXT_RIGHT) + { + // + // The string is to be aligned with the right edge of + // the widget. Use the clipping rectangle as reference + // since this will ensure that the string doesn't + // encroach on any border that is set. + // + i32X = sCtx.sClipRegion.i16XMax - i32Size; + } + else + { + // + // We are centering the string horizontally so adjust + // the position accordingly to take into account the + // width of the string. + // + i32X -= (i32Size / 2); + } + } + + // + // Now consider the horizontal case. We enter this section with + // i32Y set to the center of the widget. + // + // How tall is the string? + // + i32Size = GrStringHeightGet(&sCtx); + + if(psCanvas->ui32Style & CANVAS_STYLE_TEXT_TOP) + { + // + // The string is to be aligned with the top edge of + // the widget. Use the clipping rectangle as reference + // since this will ensure that the string doesn't + // encroach on any border that is set. + // + i32Y = sCtx.sClipRegion.i16YMin; + } + else + { + if(psCanvas->ui32Style & CANVAS_STYLE_TEXT_BOTTOM) + { + // + // The string is to be aligned with the bottom edge of + // the widget. Use the clipping rectangle as reference + // since this will ensure that the string doesn't + // encroach on any border that is set. + // + i32Y = sCtx.sClipRegion.i16YMax - i32Size; + } + else + { + // + // We are centering the string vertically so adjust + // the position accordingly to take into account the + // height of the string. + // + i32Y -= (i32Size / 2); + } + } + + // + // Now draw the string. + // + GrStringDraw(&sCtx, psCanvas->pcText, -1, i32X, i32Y, + psCanvas->ui32Style & CANVAS_STYLE_TEXT_OPAQUE); + } + } + + // + // See if the application-drawn style is selected. + // + if(psCanvas->ui32Style & CANVAS_STYLE_APP_DRAWN) + { + // + // Call the application-supplied function to draw the canvas. + // + psCanvas->pfnOnPaint(psWidget, &sCtx); + } +} + +//***************************************************************************** +// +//! Handles messages for a canvas widget. +//! +//! \param psWidget is a pointer to the canvas widget. +//! \param ui32Msg is the message. +//! \param ui32Param1 is the first parameter to the message. +//! \param ui32Param2 is the second parameter to the message. +//! +//! This function receives messages intended for this canvas widget and +//! processes them accordingly. The processing of the message varies based on +//! the message in question. +//! +//! Unrecognized messages are handled by calling WidgetDefaultMsgProc(). +//! +//! \return Returns a value appropriate to the supplied message. +// +//***************************************************************************** +int32_t +CanvasMsgProc(tWidget *psWidget, uint32_t ui32Msg, uint32_t ui32Param1, + uint32_t ui32Param2) +{ + // + // Check the arguments. + // + ASSERT(psWidget); + + // + // Determine which message is being sent. + // + switch(ui32Msg) + { + // + // The widget paint request has been sent. + // + case WIDGET_MSG_PAINT: + { + // + // Handle the widget paint request. + // + CanvasPaint(psWidget); + + // + // Return one to indicate that the message was successfully + // processed. + // + return(1); + } + + // + // An unknown request has been sent. + // + default: + { + // + // Let the default message handler process this message. + // + return(WidgetDefaultMsgProc(psWidget, ui32Msg, ui32Param1, + ui32Param2)); + } + } +} + +//***************************************************************************** +// +//! Initializes a canvas widget. +//! +//! \param psWidget is a pointer to the canvas widget to initialize. +//! \param psDisplay is a pointer to the display on which to draw the canvas. +//! \param i32X is the X coordinate of the upper left corner of the canvas. +//! \param i32Y is the Y coordinate of the upper left corner of the canvas. +//! \param i32Width is the width of the canvas. +//! \param i32Height is the height of the canvas. +//! +//! This function initializes the provided canvas widget. +//! +//! \return None. +// +//***************************************************************************** +void +CanvasInit(tCanvasWidget *psWidget, const tDisplay *psDisplay, int32_t i32X, + int32_t i32Y, int32_t i32Width, int32_t i32Height) +{ + uint32_t ui32Idx; + + // + // Check the arguments. + // + ASSERT(psWidget); + ASSERT(psDisplay); + + // + // Clear out the widget structure. + // + for(ui32Idx = 0; ui32Idx < sizeof(tCanvasWidget); ui32Idx += 4) + { + ((uint32_t *)psWidget)[ui32Idx / 4] = 0; + } + + // + // Set the size of the canvas widget structure. + // + psWidget->sBase.i32Size = sizeof(tCanvasWidget); + + // + // Mark this widget as fully disconnected. + // + psWidget->sBase.psParent = 0; + psWidget->sBase.psNext = 0; + psWidget->sBase.psChild = 0; + + // + // Save the display pointer. + // + psWidget->sBase.psDisplay = psDisplay; + + // + // Set the extents of this canvas. + // + psWidget->sBase.sPosition.i16XMin = i32X; + psWidget->sBase.sPosition.i16YMin = i32Y; + psWidget->sBase.sPosition.i16XMax = i32X + i32Width - 1; + psWidget->sBase.sPosition.i16YMax = i32Y + i32Height - 1; + + // + // Use the canvas message handler to process messages to this canvas. + // + psWidget->sBase.pfnMsgProc = CanvasMsgProc; +} + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** diff --git a/grlib/canvas.h b/grlib/canvas.h new file mode 100644 index 0000000..05c8abc --- /dev/null +++ b/grlib/canvas.h @@ -0,0 +1,837 @@ +//***************************************************************************** +// +// canvas.h - Prototypes for the canvas widget. +// +// Copyright (c) 2008-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#ifndef __CANVAS_H__ +#define __CANVAS_H__ + +//***************************************************************************** +// +//! \addtogroup canvas_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +// If building with a C++ compiler, make all of the definitions in this header +// have a C binding. +// +//***************************************************************************** +#ifdef __cplusplus +extern "C" +{ +#endif + +//***************************************************************************** +// +//! The structure that describes a canvas widget. +// +//***************************************************************************** +typedef struct +{ + // + //! The generic widget information. + // + tWidget sBase; + + // + //! The style for this widget. This is a set of flags defined by + //! CANVAS_STYLE_xxx. + // + uint32_t ui32Style; + + // + //! The 24-bit RGB color used to fill this canvas, if CANVAS_STYLE_FILL is + //! selected, and to use as the background color if + //! CANVAS_STYLE_TEXT_OPAQUE is selected. + // + uint32_t ui32FillColor; + + // + //! The 24-bit RGB color used to outline this canvas, if + //! CANVAS_STYLE_OUTLINE is selected. + // + uint32_t ui32OutlineColor; + + // + //! The 24-bit RGB color used to draw text on this canvas, if + //! CANVAS_STYLE_TEXT is selected. + // + uint32_t ui32TextColor; + + // + //! A pointer to the font used to render the canvas text, if + //! CANVAS_STYLE_TEXT is selected. + // + const tFont *psFont; + + // + //! A pointer to the text to draw on this canvas, if CANVAS_STYLE_TEXT is + //! selected. + // + const char *pcText; + + // + //! A pointer to the image to be drawn onto this canvas, if + //! CANVAS_STYLE_IMG is selected. + // + const uint8_t *pui8Image; + + // + //! A pointer to the application-supplied drawing function used to draw + //! onto this canvas, if CANVAS_STYLE_APP_DRAWN is selected. + // + void (*pfnOnPaint)(tWidget *psWidget, tContext *psContext); +} +tCanvasWidget; + +//***************************************************************************** +// +//! This flag indicates that the canvas should be outlined. +// +//***************************************************************************** +#define CANVAS_STYLE_OUTLINE 0x00000001 + +//***************************************************************************** +// +//! This flag indicates that the canvas should be filled. +// +//***************************************************************************** +#define CANVAS_STYLE_FILL 0x00000002 + +//***************************************************************************** +// +//! This flag indicates that the canvas should have text drawn on it. +// +//***************************************************************************** +#define CANVAS_STYLE_TEXT 0x00000004 + +//***************************************************************************** +// +//! This flag indicates that the canvas should have an image drawn on it. +// +//***************************************************************************** +#define CANVAS_STYLE_IMG 0x00000008 + +//***************************************************************************** +// +//! This flag indicates that the canvas is drawn using the application-supplied +//! drawing function. +// +//***************************************************************************** +#define CANVAS_STYLE_APP_DRAWN 0x00000010 + +//***************************************************************************** +// +//! This flag indicates that the canvas text should be drawn opaque (in other +//! words, drawing the background pixels as well as the foreground pixels). +// +//***************************************************************************** +#define CANVAS_STYLE_TEXT_OPAQUE \ + 0x00000020 + +//***************************************************************************** +// +//! This flag indicates that canvas text should be left-aligned. By default, +//! text is centered in both X and Y within the canvas bounding rectangle. +// +//***************************************************************************** +#define CANVAS_STYLE_TEXT_LEFT \ + 0x00000040 + +//***************************************************************************** +// +//! This flag indicates that canvas text should be right-aligned. By default, +//! text is centered in both X and Y within the canvas bounding rectangle. +// +//***************************************************************************** +#define CANVAS_STYLE_TEXT_RIGHT \ + 0x00000080 + +//***************************************************************************** +// +//! This flag indicates that canvas text should be top-aligned. By default, +//! text is centered in both X and Y within the canvas bounding rectangle. +// +//***************************************************************************** +#define CANVAS_STYLE_TEXT_TOP \ + 0x00000100 + +//***************************************************************************** +// +//! This flag indicates that canvas text should be bottom-aligned. By default, +//! text is centered in both X and Y within the canvas bounding rectangle. +// +//***************************************************************************** +#define CANVAS_STYLE_TEXT_BOTTOM \ + 0x00000200 + +//***************************************************************************** +// +//! This flag indicates that canvas text should be centered horizontally. By +//! default, text is centered in both X and Y within the canvas bounding +//! rectangle. +// +//***************************************************************************** +#define CANVAS_STYLE_TEXT_HCENTER \ + 0x00000000 + +//***************************************************************************** +// +//! This flag indicates that canvas text should be centered vertically. By +//! default, text is centered in both X and Y within the canvas bounding +//! rectangle. +// +//***************************************************************************** +#define CANVAS_STYLE_TEXT_VCENTER \ + 0x00000000 + +//***************************************************************************** +// +// Masks used to extract the text alignment flags from the widget style. +// +//***************************************************************************** +#define CANVAS_STYLE_ALIGN_MASK (CANVAS_STYLE_TEXT_LEFT | \ + CANVAS_STYLE_TEXT_RIGHT | \ + CANVAS_STYLE_TEXT_TOP | \ + CANVAS_STYLE_TEXT_BOTTOM) +#define CANVAS_STYLE_ALIGN_HMASK \ + (CANVAS_STYLE_TEXT_LEFT | \ + CANVAS_STYLE_TEXT_RIGHT) +#define CANVAS_STYLE_ALIGN_VMASK \ + (CANVAS_STYLE_TEXT_TOP | \ + CANVAS_STYLE_TEXT_BOTTOM) + +//***************************************************************************** +// +//! Declares an initialized canvas widget data structure. +//! +//! \param psParent is a pointer to the parent widget. +//! \param psNext is a pointer to the sibling widget. +//! \param psChild is a pointer to the first child widget. +//! \param psDisplay is a pointer to the display on which to draw the canvas. +//! \param i32X is the X coordinate of the upper left corner of the canvas. +//! \param i32Y is the Y coordinate of the upper left corner of the canvas. +//! \param i32Width is the width of the canvas. +//! \param i32Height is the height of the canvas. +//! \param ui32Style is the style to be applied to the canvas. +//! \param ui32FillColor is the color used to fill in the canvas. +//! \param ui32OutlineColor is the color used to outline the canvas. +//! \param ui32TextColor is the color used to draw text on the canvas. +//! \param psFont is a pointer to the font to be used to draw text on the +//! canvas. +//! \param pcText is a pointer to the text to draw on this canvas. +//! \param pui8Image is a pointer to the image to draw on this canvas. +//! \param pfnOnPaint is a pointer to the application function to draw onto +//! this canvas. +//! +//! This macro provides an initialized canvas widget data structure, which can +//! be used to construct the widget tree at compile time in global variables +//! (as opposed to run-time via function calls). This must be assigned to a +//! variable, such as: +//! +//! \verbatim +//! tCanvasWidget g_sCanvas = CanvasStruct(...); +//! \endverbatim +//! +//! Or, in an array of variables: +//! +//! \verbatim +//! tCanvasWidget g_psCanvas[] = +//! { +//! CanvasStruct(...), +//! CanvasStruct(...) +//! }; +//! \endverbatim +//! +//! \e ui32Style is the logical OR of the following: +//! +//! - \b #CANVAS_STYLE_OUTLINE to indicate that the canvas should be outlined. +//! - \b #CANVAS_STYLE_FILL to indicate that the canvas should be filled. +//! - \b #CANVAS_STYLE_TEXT to indicate that the canvas should have text drawn +//! on it (using \e psFont and \e pcText). +//! - \b #CANVAS_STYLE_IMG to indicate that the canvas should have an image +//! drawn on it (using \e pui8Image). +//! - \b #CANVAS_STYLE_APP_DRAWN to indicate that the canvas should be drawn +//! with the application-supplied drawing function (using \e pfnOnPaint). +//! - \b #CANVAS_STYLE_TEXT_OPAQUE to indicate that the canvas text should be +//! drawn opaque (in other words, drawing the background pixels). +//! - \b #CANVAS_STYLE_TEXT_LEFT to indicate that the canvas text should be +//! left aligned within the widget bounding rectangle. +//! - \b #CANVAS_STYLE_TEXT_HCENTER to indicate that the canvas text should be +//! horizontally centered within the widget bounding rectangle. +//! - \b #CANVAS_STYLE_TEXT_RIGHT to indicate that the canvas text should be +//! right aligned within the widget bounding rectangle. +//! - \b #CANVAS_STYLE_TEXT_TOP to indicate that the canvas text should be +//! top aligned within the widget bounding rectangle. +//! - \b #CANVAS_STYLE_TEXT_VCENTER to indicate that the canvas text should be +//! vertically centered within the widget bounding rectangle. +//! - \b #CANVAS_STYLE_TEXT_BOTTOM to indicate that the canvas text should be +//! bottom aligned within the widget bounding rectangle. +//! +//! \return Nothing; this is not a function. +// +//***************************************************************************** +#define CanvasStruct(psParent, psNext, psChild, psDisplay, i32X, i32Y, i32Width, \ + i32Height, ui32Style, ui32FillColor, ui32OutlineColor, \ + ui32TextColor, psFont, pcText, pui8Image, pfnOnPaint) \ + { \ + { \ + sizeof(tCanvasWidget), \ + (tWidget *)(psParent), \ + (tWidget *)(psNext), \ + (tWidget *)(psChild), \ + psDisplay, \ + { \ + i32X, \ + i32Y, \ + (i32X) + (i32Width) - 1, \ + (i32Y) + (i32Height) - 1 \ + }, \ + CanvasMsgProc \ + }, \ + ui32Style, \ + ui32FillColor, \ + ui32OutlineColor, \ + ui32TextColor, \ + psFont, \ + pcText, \ + pui8Image, \ + pfnOnPaint \ + } + +//***************************************************************************** +// +//! Declares an initialized variable containing a canvas widget data structure. +//! +//! \param sName is the name of the variable to be declared. +//! \param psParent is a pointer to the parent widget. +//! \param psNext is a pointer to the sibling widget. +//! \param psChild is a pointer to the first child widget. +//! \param psDisplay is a pointer to the display on which to draw the canvas. +//! \param i32X is the X coordinate of the upper left corner of the canvas. +//! \param i32Y is the Y coordinate of the upper left corner of the canvas. +//! \param i32Width is the width of the canvas. +//! \param i32Height is the height of the canvas. +//! \param ui32Style is the style to be applied to the canvas. +//! \param ui32FillColor is the color used to fill in the canvas. +//! \param ui32OutlineColor is the color used to outline the canvas. +//! \param ui32TextColor is the color used to draw text on the canvas. +//! \param psFont is a pointer to the font to be used to draw text on the +//! canvas. +//! \param pcText is a pointer to the text to draw on this canvas. +//! \param pui8Image is a pointer to the image to draw on this canvas. +//! \param pfnOnPaint is a pointer to the application function to draw onto +//! this canvas. +//! +//! This macro declares a variable containing an initialized canvas widget data +//! structure, which can be used to construct the widget tree at compile time +//! in global variables (as opposed to run-time via function calls). +//! +//! \e ui32Style is the logical OR of the following: +//! +//! - \b #CANVAS_STYLE_OUTLINE to indicate that the canvas should be outlined. +//! - \b #CANVAS_STYLE_FILL to indicate that the canvas should be filled. +//! - \b #CANVAS_STYLE_TEXT to indicate that the canvas should have text drawn +//! on it (using \e psFont and \e pcText). +//! - \b #CANVAS_STYLE_IMG to indicate that the canvas should have an image +//! drawn on it (using \e pui8Image). +//! - \b #CANVAS_STYLE_APP_DRAWN to indicate that the canvas should be drawn +//! with the application-supplied drawing function (using \e pfnOnPaint). +//! - \b #CANVAS_STYLE_TEXT_OPAQUE to indicate that the canvas text should be +//! drawn opaque (in other words, drawing the background pixels). +//! - \b #CANVAS_STYLE_TEXT_LEFT to indicate that the canvas text should be +//! left aligned within the widget bounding rectangle. +//! - \b #CANVAS_STYLE_TEXT_HCENTER to indicate that the canvas text should be +//! horizontally centered within the widget bounding rectangle. +//! - \b #CANVAS_STYLE_TEXT_RIGHT to indicate that the canvas text should be +//! right aligned within the widget bounding rectangle. +//! - \b #CANVAS_STYLE_TEXT_TOP to indicate that the canvas text should be +//! top aligned within the widget bounding rectangle. +//! - \b #CANVAS_STYLE_TEXT_VCENTER to indicate that the canvas text should be +//! vertically centered within the widget bounding rectangle. +//! - \b #CANVAS_STYLE_TEXT_BOTTOM to indicate that the canvas text should be +//! bottom aligned within the widget bounding rectangle. +//! +//! \return Nothing; this is not a function. +// +//***************************************************************************** +#define Canvas(sName, psParent, psNext, psChild, psDisplay, i32X, i32Y, i32Width,\ + i32Height, ui32Style, ui32FillColor, ui32OutlineColor, \ + ui32TextColor, psFont, pcText, pui8Image, pfnOnPaint) \ + tCanvasWidget sName = \ + CanvasStruct(psParent, psNext, psChild, psDisplay, i32X, i32Y, \ + i32Width, i32Height, ui32Style, ui32FillColor, \ + ui32OutlineColor, ui32TextColor, psFont, pcText, \ + pui8Image, pfnOnPaint) + +//***************************************************************************** +// +//! Disables application drawing of a canvas widget. +//! +//! \param psWidget is a pointer to the canvas widget to modify. +//! +//! This function disables the use of the application callback to draw on a +//! canvas widget. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define CanvasAppDrawnOff(psWidget) \ + do \ + { \ + tCanvasWidget *pW = psWidget; \ + pW->ui32Style &= ~(CANVAS_STYLE_APP_DRAWN); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables application drawing of a canvas widget. +//! +//! \param psWidget is a pointer to the canvas widget to modify. +//! +//! This function enables the use of the application callback to draw on a +//! canvas widget. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define CanvasAppDrawnOn(psWidget) \ + do \ + { \ + tCanvasWidget *pW = psWidget; \ + pW->ui32Style |= CANVAS_STYLE_APP_DRAWN; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the function to call when this canvas widget is drawn. +//! +//! \param psWidget is a pointer to the canvas widget to modify. +//! \param pfnOnPnt is a pointer to the function to call. +//! +//! This function sets the function to be called when this canvas is drawn and +//! \b CANVAS_STYLE_APP_DRAWN is selected. +//! +//! \return None. +// +//***************************************************************************** +#define CanvasCallbackSet(psWidget, pfnOnPnt) \ + do \ + { \ + tCanvasWidget *pW = psWidget; \ + pW->pfnOnPaint = pfnOnPnt; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the fill color of a canvas widget. +//! +//! \param psWidget is a pointer to the canvas widget to be modified. +//! \param ui32Color is the 24-bit RGB color to use to fill the canvas. +//! +//! This function changes the color used to fill the canvas on the display. +//! The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define CanvasFillColorSet(psWidget, ui32Color) \ + do \ + { \ + tCanvasWidget *pW = psWidget; \ + pW->ui32FillColor = ui32Color; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables filling of a canvas widget. +//! +//! \param psWidget is a pointer to the canvas widget to modify. +//! +//! This function disables the filling of a canvas widget. The display is not +//! updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define CanvasFillOff(psWidget) \ + do \ + { \ + tCanvasWidget *pW = psWidget; \ + pW->ui32Style &= ~(CANVAS_STYLE_FILL); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables filling of a canvas widget. +//! +//! \param psWidget is a pointer to the canvas widget to modify. +//! +//! This function enables the filling of a canvas widget. The display is not +//! updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define CanvasFillOn(psWidget) \ + do \ + { \ + tCanvasWidget *pW = psWidget; \ + pW->ui32Style |= CANVAS_STYLE_FILL; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the font for a canvas widget. +//! +//! \param psWidget is a pointer to the canvas widget to modify. +//! \param pFnt is a pointer to the font to use to draw text on the canvas. +//! +//! This function changes the font used to draw text on the canvas. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define CanvasFontSet(psWidget, pFnt) \ + do \ + { \ + tCanvasWidget *pW = psWidget; \ + const tFont *pF = pFnt; \ + pW->psFont = pF; \ + } \ + while(0) + +//***************************************************************************** +// +//! Changes the image drawn on a canvas widget. +//! +//! \param psWidget is a pointer to the canvas widget to be modified. +//! \param pImg is a pointer to the image to draw onto the canvas. +//! +//! This function changes the image that is drawn onto the canvas. The display +//! is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define CanvasImageSet(psWidget, pImg) \ + do \ + { \ + tCanvasWidget *pW = psWidget; \ + const uint8_t *pI = pImg; \ + pW->pui8Image = pI; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables the image on a canvas widget. +//! +//! \param psWidget is a pointer to the canvas widget to modify. +//! +//! This function disables the drawing of an image on a canvas widget. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define CanvasImageOff(psWidget) \ + do \ + { \ + tCanvasWidget *pW = psWidget; \ + pW->ui32Style &= ~(CANVAS_STYLE_IMG); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables the image on a canvas widget. +//! +//! \param psWidget is a pointer to the canvas widget to modify. +//! +//! This function enables the drawing of an image on a canvas widget. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define CanvasImageOn(psWidget) \ + do \ + { \ + tCanvasWidget *pW = psWidget; \ + pW->ui32Style |= CANVAS_STYLE_IMG; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the outline color of a canvas widget. +//! +//! \param psWidget is a pointer to the canvas widget to be modified. +//! \param ui32Color is the 24-bit RGB color to use to outline the canvas. +//! +//! This function changes the color used to outline the canvas on the display. +//! The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define CanvasOutlineColorSet(psWidget, ui32Color) \ + do \ + { \ + tCanvasWidget *pW = psWidget; \ + pW->ui32OutlineColor = ui32Color; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables outlining of a canvas widget. +//! +//! \param psWidget is a pointer to the canvas widget to modify. +//! +//! This function disables the outlining of a canvas widget. The display is +//! not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define CanvasOutlineOff(psWidget) \ + do \ + { \ + tCanvasWidget *pW = psWidget; \ + pW->ui32Style &= ~(CANVAS_STYLE_OUTLINE); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables outlining of a canvas widget. +//! +//! \param psWidget is a pointer to the canvas widget to modify. +//! +//! This function enables the outlining of a canvas widget. The display is not +//! updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define CanvasOutlineOn(psWidget) \ + do \ + { \ + tCanvasWidget *pW = psWidget; \ + pW->ui32Style |= CANVAS_STYLE_OUTLINE; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the text color of a canvas widget. +//! +//! \param psWidget is a pointer to the canvas widget to be modified. +//! \param ui32Color is the 24-bit RGB color to use to draw text on the canvas. +//! +//! This function changes the color used to draw text on the canvas on the +//! display. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define CanvasTextColorSet(psWidget, ui32Color) \ + do \ + { \ + tCanvasWidget *pW = psWidget; \ + pW->ui32TextColor = ui32Color; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables the text on a canvas widget. +//! +//! \param psWidget is a pointer to the canvas widget to modify. +//! +//! This function disables the drawing of text on a canvas widget. The display +//! is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define CanvasTextOff(psWidget) \ + do \ + { \ + tCanvasWidget *pW = psWidget; \ + pW->ui32Style &= ~(CANVAS_STYLE_TEXT); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables the text on a canvas widget. +//! +//! \param psWidget is a pointer to the canvas widget to modify. +//! +//! This function enables the drawing of text on a canvas widget. The display +//! is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define CanvasTextOn(psWidget) \ + do \ + { \ + tCanvasWidget *pW = psWidget; \ + pW->ui32Style |= CANVAS_STYLE_TEXT; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables opaque text on a canvas widget. +//! +//! \param psWidget is a pointer to the canvas widget to modify. +//! +//! This function disables the use of opaque text on this canvas. When not +//! using opaque text, only the foreground pixels of the text are drawn on the +//! screen, allowing the previously drawn pixels (such as the canvas image) to +//! show through the text. +//! +//! \return None. +// +//***************************************************************************** +#define CanvasTextOpaqueOff(psWidget) \ + do \ + { \ + tCanvasWidget *pW = psWidget; \ + pW->ui32Style &= ~(CANVAS_STYLE_TEXT_OPAQUE); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables opaque text on a canvas widget. +//! +//! \param psWidget is a pointer to the canvas widget to modify. +//! +//! This function enables the use of opaque text on this canvas. When using +//! opaque text, both the foreground and background pixels of the text +//! are drawn on the screen, blocking out the previously drawn pixels. +//! +//! \return None. +// +//***************************************************************************** +#define CanvasTextOpaqueOn(psWidget) \ + do \ + { \ + tCanvasWidget *pW = psWidget; \ + pW->ui32Style |= CANVAS_STYLE_TEXT_OPAQUE; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the text alignment for a canvas widget. +//! +//! \param psWidget is a pointer to the canvas widget to modify. +//! \param ui32Align contains the required text alignment setting. This is a +//! logical OR of style values \b #CANVAS_STYLE_TEXT_LEFT, \b +//! #CANVAS_STYLE_TEXT_RIGHT, \b #CANVAS_STYLE_TEXT_HCENTER, +//! \b #CANVAS_STYLE_TEXT_VCENTER, \b #CANVAS_STYLE_TEXT_TOP and +//! \b #CANVAS_STYLE_TEXT_BOTTOM. +//! +//! This function sets the alignment of the text drawn inside the widget. +//! Independent alignment options for horizontal and vertical placement allow +//! the text to be positioned in one of 9 positions within the boinding box +//! of the widget. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define CanvasTextAlignment(psWidget, ui32Align) \ + do \ + { \ + tCanvasWidget *pW = psWidget; \ + pW->ui32Style &= ~CANVAS_STYLE_ALIGN_MASK; \ + pW->ui32Style |= ((ui32Align) & CANVAS_STYLE_ALIGN_MASK); \ + } \ + while(0) + +//***************************************************************************** +// +//! Changes the text drawn on a canvas widget. +//! +//! \param psWidget is a pointer to the canvas widget to be modified. +//! \param pcTxt is a pointer to the text to draw onto the canvas. +//! +//! This function changes the text that is drawn onto the canvas. The display +//! is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define CanvasTextSet(psWidget, pcTxt) \ + do \ + { \ + tCanvasWidget *pW = psWidget; \ + const char *pcT = pcTxt; \ + pW->pcText = pcT; \ + } \ + while(0) + +//***************************************************************************** +// +// Prototypes for the canvas widget APIs. +// +//***************************************************************************** +extern int32_t CanvasMsgProc(tWidget *psWidget, uint32_t ui32Msg, + uint32_t ui32Param1, uint32_t ui32Param2); +extern void CanvasInit(tCanvasWidget *psWidget, const tDisplay *psDisplay, + int32_t i32X, int32_t i32Y, int32_t i32Width, + int32_t i32Height); + +//***************************************************************************** +// +// Mark the end of the C bindings section for C++ compilers. +// +//***************************************************************************** +#ifdef __cplusplus +} +#endif + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** + +#endif // __CANVAS_H__ diff --git a/grlib/ccs/.ccsproject b/grlib/ccs/.ccsproject new file mode 100644 index 0000000..b4eaafa --- /dev/null +++ b/grlib/ccs/.ccsproject @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/grlib/ccs/.cproject b/grlib/ccs/.cproject new file mode 100644 index 0000000..e9d7bc2 --- /dev/null +++ b/grlib/ccs/.cproject @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/grlib/ccs/.project b/grlib/ccs/.project new file mode 100644 index 0000000..16b989e --- /dev/null +++ b/grlib/ccs/.project @@ -0,0 +1,900 @@ + + + grlib + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + com.ti.ccstudio.core.ccsNature + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + canvas.c + 1 + SW_ROOT/grlib/canvas.c + + + charmap.c + 1 + SW_ROOT/grlib/charmap.c + + + checkbox.c + 1 + SW_ROOT/grlib/checkbox.c + + + circle.c + 1 + SW_ROOT/grlib/circle.c + + + container.c + 1 + SW_ROOT/grlib/container.c + + + context.c + 1 + SW_ROOT/grlib/context.c + + + image.c + 1 + SW_ROOT/grlib/image.c + + + imgbutton.c + 1 + SW_ROOT/grlib/imgbutton.c + + + keyboard.c + 1 + SW_ROOT/grlib/keyboard.c + + + line.c + 1 + SW_ROOT/grlib/line.c + + + listbox.c + 1 + SW_ROOT/grlib/listbox.c + + + offscr1bpp.c + 1 + SW_ROOT/grlib/offscr1bpp.c + + + offscr4bpp.c + 1 + SW_ROOT/grlib/offscr4bpp.c + + + offscr8bpp.c + 1 + SW_ROOT/grlib/offscr8bpp.c + + + pushbutton.c + 1 + SW_ROOT/grlib/pushbutton.c + + + radiobutton.c + 1 + SW_ROOT/grlib/radiobutton.c + + + rectangle.c + 1 + SW_ROOT/grlib/rectangle.c + + + slider.c + 1 + SW_ROOT/grlib/slider.c + + + string.c + 1 + SW_ROOT/grlib/string.c + + + widget.c + 1 + SW_ROOT/grlib/widget.c + + + fonts/fontcm12.c + 1 + SW_ROOT/grlib/fonts/fontcm12.c + + + fonts/fontcm12b.c + 1 + SW_ROOT/grlib/fonts/fontcm12b.c + + + fonts/fontcm12i.c + 1 + SW_ROOT/grlib/fonts/fontcm12i.c + + + fonts/fontcm14.c + 1 + SW_ROOT/grlib/fonts/fontcm14.c + + + fonts/fontcm14b.c + 1 + SW_ROOT/grlib/fonts/fontcm14b.c + + + fonts/fontcm14i.c + 1 + SW_ROOT/grlib/fonts/fontcm14i.c + + + fonts/fontcm16.c + 1 + SW_ROOT/grlib/fonts/fontcm16.c + + + fonts/fontcm16b.c + 1 + SW_ROOT/grlib/fonts/fontcm16b.c + + + fonts/fontcm16i.c + 1 + SW_ROOT/grlib/fonts/fontcm16i.c + + + fonts/fontcm18.c + 1 + SW_ROOT/grlib/fonts/fontcm18.c + + + fonts/fontcm18b.c + 1 + SW_ROOT/grlib/fonts/fontcm18b.c + + + fonts/fontcm18i.c + 1 + SW_ROOT/grlib/fonts/fontcm18i.c + + + fonts/fontcm20.c + 1 + SW_ROOT/grlib/fonts/fontcm20.c + + + fonts/fontcm20b.c + 1 + SW_ROOT/grlib/fonts/fontcm20b.c + + + fonts/fontcm20i.c + 1 + SW_ROOT/grlib/fonts/fontcm20i.c + + + fonts/fontcm22.c + 1 + SW_ROOT/grlib/fonts/fontcm22.c + + + fonts/fontcm22b.c + 1 + SW_ROOT/grlib/fonts/fontcm22b.c + + + fonts/fontcm22i.c + 1 + SW_ROOT/grlib/fonts/fontcm22i.c + + + fonts/fontcm24.c + 1 + SW_ROOT/grlib/fonts/fontcm24.c + + + fonts/fontcm24b.c + 1 + SW_ROOT/grlib/fonts/fontcm24b.c + + + fonts/fontcm24i.c + 1 + SW_ROOT/grlib/fonts/fontcm24i.c + + + fonts/fontcm26.c + 1 + SW_ROOT/grlib/fonts/fontcm26.c + + + fonts/fontcm26b.c + 1 + SW_ROOT/grlib/fonts/fontcm26b.c + + + fonts/fontcm26i.c + 1 + SW_ROOT/grlib/fonts/fontcm26i.c + + + fonts/fontcm28.c + 1 + SW_ROOT/grlib/fonts/fontcm28.c + + + fonts/fontcm28b.c + 1 + SW_ROOT/grlib/fonts/fontcm28b.c + + + fonts/fontcm28i.c + 1 + SW_ROOT/grlib/fonts/fontcm28i.c + + + fonts/fontcm30.c + 1 + SW_ROOT/grlib/fonts/fontcm30.c + + + fonts/fontcm30b.c + 1 + SW_ROOT/grlib/fonts/fontcm30b.c + + + fonts/fontcm30i.c + 1 + SW_ROOT/grlib/fonts/fontcm30i.c + + + fonts/fontcm32.c + 1 + SW_ROOT/grlib/fonts/fontcm32.c + + + fonts/fontcm32b.c + 1 + SW_ROOT/grlib/fonts/fontcm32b.c + + + fonts/fontcm32i.c + 1 + SW_ROOT/grlib/fonts/fontcm32i.c + + + fonts/fontcm34.c + 1 + SW_ROOT/grlib/fonts/fontcm34.c + + + fonts/fontcm34b.c + 1 + SW_ROOT/grlib/fonts/fontcm34b.c + + + fonts/fontcm34i.c + 1 + SW_ROOT/grlib/fonts/fontcm34i.c + + + fonts/fontcm36.c + 1 + SW_ROOT/grlib/fonts/fontcm36.c + + + fonts/fontcm36b.c + 1 + SW_ROOT/grlib/fonts/fontcm36b.c + + + fonts/fontcm36i.c + 1 + SW_ROOT/grlib/fonts/fontcm36i.c + + + fonts/fontcm38.c + 1 + SW_ROOT/grlib/fonts/fontcm38.c + + + fonts/fontcm38b.c + 1 + SW_ROOT/grlib/fonts/fontcm38b.c + + + fonts/fontcm38i.c + 1 + SW_ROOT/grlib/fonts/fontcm38i.c + + + fonts/fontcm40.c + 1 + SW_ROOT/grlib/fonts/fontcm40.c + + + fonts/fontcm40b.c + 1 + SW_ROOT/grlib/fonts/fontcm40b.c + + + fonts/fontcm40i.c + 1 + SW_ROOT/grlib/fonts/fontcm40i.c + + + fonts/fontcm42.c + 1 + SW_ROOT/grlib/fonts/fontcm42.c + + + fonts/fontcm42b.c + 1 + SW_ROOT/grlib/fonts/fontcm42b.c + + + fonts/fontcm42i.c + 1 + SW_ROOT/grlib/fonts/fontcm42i.c + + + fonts/fontcm44.c + 1 + SW_ROOT/grlib/fonts/fontcm44.c + + + fonts/fontcm44b.c + 1 + SW_ROOT/grlib/fonts/fontcm44b.c + + + fonts/fontcm44i.c + 1 + SW_ROOT/grlib/fonts/fontcm44i.c + + + fonts/fontcm46.c + 1 + SW_ROOT/grlib/fonts/fontcm46.c + + + fonts/fontcm46b.c + 1 + SW_ROOT/grlib/fonts/fontcm46b.c + + + fonts/fontcm46i.c + 1 + SW_ROOT/grlib/fonts/fontcm46i.c + + + fonts/fontcm48.c + 1 + SW_ROOT/grlib/fonts/fontcm48.c + + + fonts/fontcm48b.c + 1 + SW_ROOT/grlib/fonts/fontcm48b.c + + + fonts/fontcm48i.c + 1 + SW_ROOT/grlib/fonts/fontcm48i.c + + + fonts/fontcmsc12.c + 1 + SW_ROOT/grlib/fonts/fontcmsc12.c + + + fonts/fontcmsc14.c + 1 + SW_ROOT/grlib/fonts/fontcmsc14.c + + + fonts/fontcmsc16.c + 1 + SW_ROOT/grlib/fonts/fontcmsc16.c + + + fonts/fontcmsc18.c + 1 + SW_ROOT/grlib/fonts/fontcmsc18.c + + + fonts/fontcmsc20.c + 1 + SW_ROOT/grlib/fonts/fontcmsc20.c + + + fonts/fontcmsc22.c + 1 + SW_ROOT/grlib/fonts/fontcmsc22.c + + + fonts/fontcmsc24.c + 1 + SW_ROOT/grlib/fonts/fontcmsc24.c + + + fonts/fontcmsc26.c + 1 + SW_ROOT/grlib/fonts/fontcmsc26.c + + + fonts/fontcmsc28.c + 1 + SW_ROOT/grlib/fonts/fontcmsc28.c + + + fonts/fontcmsc30.c + 1 + SW_ROOT/grlib/fonts/fontcmsc30.c + + + fonts/fontcmsc32.c + 1 + SW_ROOT/grlib/fonts/fontcmsc32.c + + + fonts/fontcmsc34.c + 1 + SW_ROOT/grlib/fonts/fontcmsc34.c + + + fonts/fontcmsc36.c + 1 + SW_ROOT/grlib/fonts/fontcmsc36.c + + + fonts/fontcmsc38.c + 1 + SW_ROOT/grlib/fonts/fontcmsc38.c + + + fonts/fontcmsc40.c + 1 + SW_ROOT/grlib/fonts/fontcmsc40.c + + + fonts/fontcmsc42.c + 1 + SW_ROOT/grlib/fonts/fontcmsc42.c + + + fonts/fontcmsc44.c + 1 + SW_ROOT/grlib/fonts/fontcmsc44.c + + + fonts/fontcmsc46.c + 1 + SW_ROOT/grlib/fonts/fontcmsc46.c + + + fonts/fontcmsc48.c + 1 + SW_ROOT/grlib/fonts/fontcmsc48.c + + + fonts/fontcmss12.c + 1 + SW_ROOT/grlib/fonts/fontcmss12.c + + + fonts/fontcmss12b.c + 1 + SW_ROOT/grlib/fonts/fontcmss12b.c + + + fonts/fontcmss12i.c + 1 + SW_ROOT/grlib/fonts/fontcmss12i.c + + + fonts/fontcmss14.c + 1 + SW_ROOT/grlib/fonts/fontcmss14.c + + + fonts/fontcmss14b.c + 1 + SW_ROOT/grlib/fonts/fontcmss14b.c + + + fonts/fontcmss14i.c + 1 + SW_ROOT/grlib/fonts/fontcmss14i.c + + + fonts/fontcmss16.c + 1 + SW_ROOT/grlib/fonts/fontcmss16.c + + + fonts/fontcmss16b.c + 1 + SW_ROOT/grlib/fonts/fontcmss16b.c + + + fonts/fontcmss16i.c + 1 + SW_ROOT/grlib/fonts/fontcmss16i.c + + + fonts/fontcmss18.c + 1 + SW_ROOT/grlib/fonts/fontcmss18.c + + + fonts/fontcmss18b.c + 1 + SW_ROOT/grlib/fonts/fontcmss18b.c + + + fonts/fontcmss18i.c + 1 + SW_ROOT/grlib/fonts/fontcmss18i.c + + + fonts/fontcmss20.c + 1 + SW_ROOT/grlib/fonts/fontcmss20.c + + + fonts/fontcmss20b.c + 1 + SW_ROOT/grlib/fonts/fontcmss20b.c + + + fonts/fontcmss20i.c + 1 + SW_ROOT/grlib/fonts/fontcmss20i.c + + + fonts/fontcmss22.c + 1 + SW_ROOT/grlib/fonts/fontcmss22.c + + + fonts/fontcmss22b.c + 1 + SW_ROOT/grlib/fonts/fontcmss22b.c + + + fonts/fontcmss22i.c + 1 + SW_ROOT/grlib/fonts/fontcmss22i.c + + + fonts/fontcmss24.c + 1 + SW_ROOT/grlib/fonts/fontcmss24.c + + + fonts/fontcmss24b.c + 1 + SW_ROOT/grlib/fonts/fontcmss24b.c + + + fonts/fontcmss24i.c + 1 + SW_ROOT/grlib/fonts/fontcmss24i.c + + + fonts/fontcmss26.c + 1 + SW_ROOT/grlib/fonts/fontcmss26.c + + + fonts/fontcmss26b.c + 1 + SW_ROOT/grlib/fonts/fontcmss26b.c + + + fonts/fontcmss26i.c + 1 + SW_ROOT/grlib/fonts/fontcmss26i.c + + + fonts/fontcmss28.c + 1 + SW_ROOT/grlib/fonts/fontcmss28.c + + + fonts/fontcmss28b.c + 1 + SW_ROOT/grlib/fonts/fontcmss28b.c + + + fonts/fontcmss28i.c + 1 + SW_ROOT/grlib/fonts/fontcmss28i.c + + + fonts/fontcmss30.c + 1 + SW_ROOT/grlib/fonts/fontcmss30.c + + + fonts/fontcmss30b.c + 1 + SW_ROOT/grlib/fonts/fontcmss30b.c + + + fonts/fontcmss30i.c + 1 + SW_ROOT/grlib/fonts/fontcmss30i.c + + + fonts/fontcmss32.c + 1 + SW_ROOT/grlib/fonts/fontcmss32.c + + + fonts/fontcmss32b.c + 1 + SW_ROOT/grlib/fonts/fontcmss32b.c + + + fonts/fontcmss32i.c + 1 + SW_ROOT/grlib/fonts/fontcmss32i.c + + + fonts/fontcmss34.c + 1 + SW_ROOT/grlib/fonts/fontcmss34.c + + + fonts/fontcmss34b.c + 1 + SW_ROOT/grlib/fonts/fontcmss34b.c + + + fonts/fontcmss34i.c + 1 + SW_ROOT/grlib/fonts/fontcmss34i.c + + + fonts/fontcmss36.c + 1 + SW_ROOT/grlib/fonts/fontcmss36.c + + + fonts/fontcmss36b.c + 1 + SW_ROOT/grlib/fonts/fontcmss36b.c + + + fonts/fontcmss36i.c + 1 + SW_ROOT/grlib/fonts/fontcmss36i.c + + + fonts/fontcmss38.c + 1 + SW_ROOT/grlib/fonts/fontcmss38.c + + + fonts/fontcmss38b.c + 1 + SW_ROOT/grlib/fonts/fontcmss38b.c + + + fonts/fontcmss38i.c + 1 + SW_ROOT/grlib/fonts/fontcmss38i.c + + + fonts/fontcmss40.c + 1 + SW_ROOT/grlib/fonts/fontcmss40.c + + + fonts/fontcmss40b.c + 1 + SW_ROOT/grlib/fonts/fontcmss40b.c + + + fonts/fontcmss40i.c + 1 + SW_ROOT/grlib/fonts/fontcmss40i.c + + + fonts/fontcmss42.c + 1 + SW_ROOT/grlib/fonts/fontcmss42.c + + + fonts/fontcmss42b.c + 1 + SW_ROOT/grlib/fonts/fontcmss42b.c + + + fonts/fontcmss42i.c + 1 + SW_ROOT/grlib/fonts/fontcmss42i.c + + + fonts/fontcmss44.c + 1 + SW_ROOT/grlib/fonts/fontcmss44.c + + + fonts/fontcmss44b.c + 1 + SW_ROOT/grlib/fonts/fontcmss44b.c + + + fonts/fontcmss44i.c + 1 + SW_ROOT/grlib/fonts/fontcmss44i.c + + + fonts/fontcmss46.c + 1 + SW_ROOT/grlib/fonts/fontcmss46.c + + + fonts/fontcmss46b.c + 1 + SW_ROOT/grlib/fonts/fontcmss46b.c + + + fonts/fontcmss46i.c + 1 + SW_ROOT/grlib/fonts/fontcmss46i.c + + + fonts/fontcmss48.c + 1 + SW_ROOT/grlib/fonts/fontcmss48.c + + + fonts/fontcmss48b.c + 1 + SW_ROOT/grlib/fonts/fontcmss48b.c + + + fonts/fontcmss48i.c + 1 + SW_ROOT/grlib/fonts/fontcmss48i.c + + + fonts/fontcmtt12.c + 1 + SW_ROOT/grlib/fonts/fontcmtt12.c + + + fonts/fontcmtt14.c + 1 + SW_ROOT/grlib/fonts/fontcmtt14.c + + + fonts/fontcmtt16.c + 1 + SW_ROOT/grlib/fonts/fontcmtt16.c + + + fonts/fontcmtt18.c + 1 + SW_ROOT/grlib/fonts/fontcmtt18.c + + + fonts/fontcmtt20.c + 1 + SW_ROOT/grlib/fonts/fontcmtt20.c + + + fonts/fontcmtt22.c + 1 + SW_ROOT/grlib/fonts/fontcmtt22.c + + + fonts/fontcmtt24.c + 1 + SW_ROOT/grlib/fonts/fontcmtt24.c + + + fonts/fontcmtt26.c + 1 + SW_ROOT/grlib/fonts/fontcmtt26.c + + + fonts/fontcmtt28.c + 1 + SW_ROOT/grlib/fonts/fontcmtt28.c + + + fonts/fontcmtt30.c + 1 + SW_ROOT/grlib/fonts/fontcmtt30.c + + + fonts/fontcmtt32.c + 1 + SW_ROOT/grlib/fonts/fontcmtt32.c + + + fonts/fontcmtt34.c + 1 + SW_ROOT/grlib/fonts/fontcmtt34.c + + + fonts/fontcmtt36.c + 1 + SW_ROOT/grlib/fonts/fontcmtt36.c + + + fonts/fontcmtt38.c + 1 + SW_ROOT/grlib/fonts/fontcmtt38.c + + + fonts/fontcmtt40.c + 1 + SW_ROOT/grlib/fonts/fontcmtt40.c + + + fonts/fontcmtt42.c + 1 + SW_ROOT/grlib/fonts/fontcmtt42.c + + + fonts/fontcmtt44.c + 1 + SW_ROOT/grlib/fonts/fontcmtt44.c + + + fonts/fontcmtt46.c + 1 + SW_ROOT/grlib/fonts/fontcmtt46.c + + + fonts/fontcmtt48.c + 1 + SW_ROOT/grlib/fonts/fontcmtt48.c + + + fonts/fontfixed6x8.c + 1 + SW_ROOT/grlib/fonts/fontfixed6x8.c + + + + + SW_ROOT + $%7BPARENT-2-PROJECT_LOC%7D + + + diff --git a/grlib/ccs/.settings/org.eclipse.cdt.codan.core.prefs b/grlib/ccs/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..98b6350 --- /dev/null +++ b/grlib/ccs/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +inEditor=false +onBuild=false diff --git a/grlib/ccs/Debug/grlib.lib b/grlib/ccs/Debug/grlib.lib new file mode 100644 index 0000000..7c74eea Binary files /dev/null and b/grlib/ccs/Debug/grlib.lib differ diff --git a/grlib/ccs/macros.ini_initial b/grlib/ccs/macros.ini_initial new file mode 100644 index 0000000..08b716d --- /dev/null +++ b/grlib/ccs/macros.ini_initial @@ -0,0 +1 @@ +SW_ROOT = ../.. diff --git a/grlib/charmap.c b/grlib/charmap.c new file mode 100644 index 0000000..c95d91c --- /dev/null +++ b/grlib/charmap.c @@ -0,0 +1,2058 @@ +//***************************************************************************** +// +// charmap.c - Routines converting between different text codebases. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#include +#include +#include "inc/hw_types.h" +#include "driverlib/debug.h" +#include "grlib/grlib.h" + +//***************************************************************************** +// +//! \addtogroup primitives_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +// Counts the number of zeros at the start of a word. This macro uses +// compiler-specific constructs to perform an inline insertion of the "clz" +// instruction, which counts the leading zeros directly. +// +//***************************************************************************** +#if defined(ewarm) +#include +#define NumLeadingZeros(x) __CLZ(x) +#endif +#if defined(codered) || defined(gcc) || defined(sourcerygxx) +#define NumLeadingZeros(x) __extension__ \ + ({ \ + register uint32_t __ret, __inp = x; \ + __asm__("clz %0, %1" : "=r" (__ret) : "r" (__inp)); \ + __ret; \ + }) +#endif +#if defined(rvmdk) || defined(__ARMCC_VERSION) +#define NumLeadingZeros(x) __clz(x) +#endif +#if defined(ccs) +// +// The CCS/TI compiler _norm intrinsic function will generate an inline CLZ +// instruction. +// +#define NumLeadingZeros(x) _norm(x) +#endif + +//***************************************************************************** +// +// An array containing Unicode mappings for ISO8859-2 codes from 0xA1 and above. +// +//***************************************************************************** +const uint16_t g_pui16ISO8859_2_Unicode[] = +{ + 0x0104, 0x02D8, 0x0141, 0x00A4, 0x013D, 0x015A, 0x00A7, 0x00A8, + 0x0160, 0x015E, 0x0164, 0x0179, 0x00AD, 0x017D, 0x017B, 0x00B0, + 0x0105, 0x02DB, 0x0142, 0x00B4, 0x013E, 0x015B, 0x02C7, 0x00B8, + 0x0161, 0x015F, 0x0165, 0x017A, 0x02DD, 0x017E, 0x017C, 0x0154, + 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7, 0x010C, + 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E, 0x0110, + 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7, 0x0158, + 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF, 0x0155, + 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7, 0x010D, + 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F, 0x0111, + 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7, 0x0159, + 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9 +}; + +//***************************************************************************** +// +// An array containing Unicode mappings for ISO8859-3 codes from 0xA1 and above. +// +//***************************************************************************** +const uint16_t g_pui16ISO8859_3_Unicode[] = +{ + 0x0126, 0x02D8, 0x00A3, 0x00A4, 0x0000, 0x0124, 0x00A7, 0x00A8, + 0x0130, 0x015E, 0x011E, 0x0134, 0x00AD, 0x0000, 0x017B, 0x00B0, + 0x0127, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x0125, 0x00B7, 0x00B8, + 0x0131, 0x015F, 0x011F, 0x0135, 0x00BD, 0x0000, 0x017C, 0x00C0, + 0x00C1, 0x00C2, 0x0000, 0x00C4, 0x010A, 0x0108, 0x00C7, 0x00C8, + 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, 0x0000, + 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x0120, 0x00D6, 0x00D7, 0x011C, + 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x016C, 0x015C, 0x00DF, 0x00E0, + 0x00E1, 0x00E2, 0x0000, 0x00E4, 0x010B, 0x0109, 0x00E7, 0x00E8, + 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, 0x0000, + 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x0121, 0x00F6, 0x00F7, 0x011D, + 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x016D, 0x015D, 0x02D9 +}; + +//***************************************************************************** +// +// An array containing Unicode mappings for ISO8859-4 codes from 0xA1 and above. +// +//***************************************************************************** +const uint16_t g_pui16ISO8859_4_Unicode[] = +{ + 0x0104, 0x0138, 0x0156, 0x00A4, 0x0128, 0x013B, 0x00A7, 0x00A8, + 0x0160, 0x0112, 0x0122, 0x0166, 0x00AD, 0x017D, 0x00AF, 0x00B0, + 0x0105, 0x02DB, 0x0157, 0x00B4, 0x0129, 0x013C, 0x02C7, 0x00B8, + 0x0161, 0x0113, 0x0123, 0x0167, 0x014A, 0x017E, 0x014B, 0x0100, + 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x012E, 0x010C, + 0x00C9, 0x0118, 0x00CB, 0x0116, 0x00CD, 0x00CE, 0x012A, 0x0110, + 0x0145, 0x014C, 0x0136, 0x00D4, 0x00D5, 0x00D6, 0x00D7, 0x00D8, + 0x0172, 0x00DA, 0x00DB, 0x00DC, 0x0168, 0x016A, 0x00DF, 0x0101, + 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x012F, 0x010D, + 0x00E9, 0x0119, 0x00EB, 0x0117, 0x00ED, 0x00EE, 0x012B, 0x0111, + 0x0146, 0x014D, 0x0137, 0x00F4, 0x00F5, 0x00F6, 0x00F7, 0x00F8, + 0x0173, 0x00FA, 0x00FB, 0x00FC, 0x0169, 0x016B, 0x02D9 +}; + +//***************************************************************************** +// +// An array containing Unicode mappings for ISO8859-7 codes from 0xA1 to 0xBD +// +//***************************************************************************** +const uint16_t g_pui16ISO8859_7_Unicode[] = +{ + 0x2018, 0x2019, 0x00A3, 0x20AC, 0x20AF, 0x00A6, 0x00A7, 0x00A8, + 0x00A9, 0x037A, 0x00AB, 0x00AC, 0x00AD, 0x0000, 0x2015, 0x00B0, + 0x00B1, 0x00B2, 0x00B3, 0x0384, 0x0385, 0x0386, 0x00B7, 0x0388, + 0x0389, 0x038A, 0x00BB, 0x038C, 0x00BD +}; + +//***************************************************************************** +// +// An array containing Unicode mappings for ISO8859-10 codes from 0xA1 and +// above. +// +//***************************************************************************** +const uint16_t g_pui16ISO8859_10_Unicode[] = +{ + 0x0104, 0x0112, 0x0122, 0x012A, 0x0128, 0x0136, 0x00A7, 0x013B, + 0x0110, 0x0160, 0x0166, 0x017D, 0x00AD, 0x016A, 0x014A, 0x00B0, + 0x0105, 0x0113, 0x0123, 0x012B, 0x0129, 0x0137, 0x00B7, 0x013C, + 0x0111, 0x0161, 0x0167, 0x017E, 0x2015, 0x016B, 0x014B, 0x0100, + 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x012E, 0x010C, + 0x00C9, 0x0118, 0x00CB, 0x0116, 0x00CD, 0x00CE, 0x00CF, 0x00D0, + 0x0145, 0x014C, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x0168, 0x00D8, + 0x0172, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, 0x0101, + 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x012F, 0x010D, + 0x00E9, 0x0119, 0x00EB, 0x0117, 0x00ED, 0x00EE, 0x00EF, 0x00F0, + 0x0146, 0x014D, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x0169, 0x00F8, + 0x0173, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x0138 +}; + +//***************************************************************************** +// +// An array containing Unicode mappings for ISO8859-13 codes from 0xA1 and +// above. +// +//***************************************************************************** +const uint16_t g_pui16ISO8859_13_Unicode[] = +{ + 0x201D, 0x00A2, 0x00A3, 0x00A4, 0x201E, 0x00A6, 0x00A7, 0x00D8, + 0x00A9, 0x0156, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00C6, 0x00B0, + 0x00B1, 0x00B2, 0x00B3, 0x201C, 0x00B5, 0x00B6, 0x00B7, 0x00F8, + 0x00B9, 0x0157, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00E6, 0x0104, + 0x012E, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0118, 0x0112, 0x010C, + 0x00C9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012A, 0x013B, 0x0160, + 0x0143, 0x0145, 0x00D3, 0x014C, 0x00D5, 0x00D6, 0x00D7, 0x0172, + 0x0141, 0x015A, 0x016A, 0x00DC, 0x017B, 0x017D, 0x00DF, 0x0105, + 0x012F, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0119, 0x0113, 0x010D, + 0x00E9, 0x017A, 0x0117, 0x0123, 0x0137, 0x012B, 0x013C, 0x0161, + 0x0144, 0x0146, 0x00F3, 0x014D, 0x00F5, 0x00F6, 0x00F7, 0x0173, + 0x0142, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017E, 0x2019 +}; + +//***************************************************************************** +// +// An array containing Unicode mappings for ISO8859-14 codes from 0xA1 to 0xBF. +// +//***************************************************************************** +const uint16_t g_pui16ISO8859_14_Unicode[] = +{ + 0x1E02, 0x1E03, 0x00A3, 0x010A, 0x010B, 0x1E0A, 0x00A7, 0x1E80, + 0x00A9, 0x1E82, 0x1E0B, 0x1EF2, 0x00AD, 0x00AE, 0x0178, 0x1E1E, + 0x1E1F, 0x0120, 0x0121, 0x1E40, 0x1E41, 0x00B6, 0x1E56, 0x1E81, + 0x1E57, 0x1E83, 0x1E60, 0x1EF3, 0x1E84, 0x1E85, 0x1E61 +}; + +//***************************************************************************** +// +// An array containing Unicode mappings for ISO8859-16 codes from 0xA1 and +// above. +// +//***************************************************************************** +const uint16_t g_pui16ISO8859_16_Unicode[] = +{ + 0x0104, 0x0105, 0x0141, 0x20AC, 0x201E, 0x0160, 0x00A7, 0x0161, + 0x00A9, 0x0218, 0x00AB, 0x0179, 0x00AD, 0x017A, 0x017B, 0x00B0, + 0x00B1, 0x010C, 0x0142, 0x017D, 0x201D, 0x00B6, 0x00B7, 0x017E, + 0x010D, 0x0219, 0x00BB, 0x0152, 0x0153, 0x0178, 0x017C, 0x00C0, + 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0106, 0x00C6, 0x00C7, 0x00C8, + 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, 0x0110, + 0x0143, 0x00D2, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x015A, 0x0170, + 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0118, 0x021A, 0x00DF, 0x00E0, + 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x0107, 0x00E6, 0x00E7, 0x00E8, + 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, 0x0111, + 0x0144, 0x00F2, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x015B, 0x0171, + 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0119, 0x021B, 0x00FF +}; + +//***************************************************************************** +// +// An array containing Unicode mappings for Windows-1250 codes from 0x80 to +// 0xFF. +// +//***************************************************************************** +const uint16_t g_pui16WIN1250_Unicode[] = +{ + 0x20AC, 0, 0x201A, 0, 0x201E, 0x2026, 0x2020, 0x2021, + 0, 0x2030, 0x0160, 0x2039, 0x015A, 0x0164, 0x017D, 0x0179, + 0, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, + 0, 0x2122, 0x0161, 0x203A, 0x015B, 0x0165, 0x017E, 0x017A, + 0x00A0, 0x02C7, 0x02D8, 0x0141, 0x00A4, 0x0104, 0x00A6, 0x00A7, + 0x00A8, 0x00A9, 0x015E, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x017B, + 0x00B0, 0x00B1, 0x02DB, 0x0142, 0x00B4, 0x00B5, 0x00B6, 0x00B7, + 0x00B8, 0x0105, 0x015F, 0x00BB, 0x013D, 0x02DD, 0x013E, 0x017C, + 0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7, + 0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E, + 0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7, + 0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF, + 0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7, + 0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F, + 0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7, + 0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9 +}; + +//***************************************************************************** +// +// An array containing Unicode mappings for Windows-1251 codes from 0x80 to +// 0xBF. Codes from 0xC0 to 0xFF calculate as code + 0x0350. +// +//***************************************************************************** +const uint16_t g_pui16WIN1251_Unicode[] = +{ + 0x0402, 0x0403, 0x201A, 0x0453, 0x201E, 0x2026, 0x2020, 0x2021, + 0x20AC, 0x2030, 0x0409, 0x2039, 0x040A, 0x040C, 0x040B, 0x040F, + 0x0452, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, + 0x0020, 0x2122, 0x0459, 0x203A, 0x045A, 0x045C, 0x045B, 0x045F, + 0x00A0, 0x040E, 0x045E, 0x0408, 0x00A4, 0x0490, 0x00A6, 0x00A7, + 0x0401, 0x00A9, 0x0404, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x0407, + 0x00B0, 0x00B1, 0x0406, 0x0456, 0x0491, 0x00B5, 0x00B6, 0x00B7, + 0x0451, 0x2116, 0x0454, 0x00BB, 0x0458, 0x0405, 0x0455, 0x0457 +}; + +//***************************************************************************** +// +// An array containing Unicode mappings for Windows-1252 codes from 0x80 to +// 0x9F. All codes outside this range map directly the same Unicode codepoint. +// +//***************************************************************************** +const uint16_t g_pui16WIN1252_Unicode[] = +{ + 0x20AC, 0, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, + 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0, 0x017D, 0, + 0, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, + 0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, 0, 0x017E, 0x0178, +}; + +//***************************************************************************** +// +// An array containing Unicode mappings for Windows-1253 codes from 0x80 to +// 0xBF. All codes below 0x80 map map directly the same Unicode codepoint. +// Codes from 0xC0 to 0xFF calculate as code + 0x02D0. +// +//***************************************************************************** +const uint16_t g_pui16WIN1253_Unicode[] = +{ + 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, + 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, + 0x03A0, 0x03A1, 0, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, + 0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x03AC, 0x03AD, 0x03AE, 0x03AF, + 0x03B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, + 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, + 0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, + 0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE, 0, +}; + +//***************************************************************************** +// +// An array containing Unicode mappings for Windows-1254 codes from 0x80 to +// 0x9F. All codes outside this range are compatible with ISO8859-9. +// +//***************************************************************************** +const uint16_t g_pui16WIN1254_Unicode[] = +{ + 0x20AC, 0, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, + 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0, 0, 0, + 0, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, + 0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, 0, 0, 0x0178 +}; + +//***************************************************************************** +// +//! Maps an ISO8859-1 encoded character to its Unicode equivalent. +//! +//! \param pcSrcChar is a pointer to a string containing ISO8859-1 encoded +//! text. +//! \param ui32Count is the number of bytes in the buffer pointed to by +//! pcSrcChar. +//! \param pui32Skip points to storage that will be written with the number of +//! bytes to skip in pcSrcChar to get to the next character in the +//! buffer. +//! +//! This function may be passed to GrCodepageMapTableSet() in a tCodePointMap +//! structure to map source text in ISO8859-1 format into 32 bit Unicode +//! typically used by wide character fonts. This conversion is trivial since +//! the bottom 256 characters in Unicode are the ISO8859-1 characters and since +//! ISO8859-1 is not a variable length encoding (every character is exactly 1 +//! byte). +//! +//! See http://unicode.org/Public/MAPPINGS/ISO8859/8859-1.TXT for more +//! information. +//! +//! \return Returns the Unicode character code for the first character in the +//! pcSrcChar string passed. +// +//***************************************************************************** +uint32_t +GrMapISO8859_1_Unicode(const char *pcSrcChar, uint32_t ui32Count, + uint32_t *pui32Skip) +{ + // + // Parameter sanity check. + // + ASSERT(pui32Skip); + ASSERT(pcSrcChar); + + // + // There is a 1:1 mapping of characters in ISO8859-1 to Unicode. + // + *pui32Skip = 1; + return((uint32_t)((uint8_t)*pcSrcChar)); +} + +//***************************************************************************** +// +//! Maps an ISO8859-2 encoded character to its Unicode equivalent. +//! +//! \param pcSrcChar is a pointer to a string containing ISO8859-2 encoded +//! text. +//! \param ui32Count is the number of bytes in the buffer pointed to by +//! pcSrcChar. +//! \param pui32Skip points to storage that will be written with the number of +//! bytes to skip in pcSrcChar to get to the next character in the +//! buffer. +//! +//! This function may be passed to GrCodepageMapTableSet() in a tCodePointMap +//! structure to map source text in ISO8859-2 format into 32 bit Unicode +//! typically used by wide character fonts. This conversion is straightforward +//! since character codes 0xA0 and below map directly to the same code in +//! Unicode and those from 0xA1 to 0xFF are converted using a global data +//! table. +//! +//! See http://unicode.org/Public/MAPPINGS/ISO8859/8859-2.TXT for more +//! information. +//! +//! \return Returns the Unicode character code for the first character in the +//! pcSrcChar string passed. +// +//***************************************************************************** +uint32_t +GrMapISO8859_2_Unicode(const char *pcSrcChar, uint32_t ui32Count, + uint32_t *pui32Skip) +{ + // + // Parameter sanity check. + // + ASSERT(pui32Skip); + ASSERT(pcSrcChar); + + // + // ISO8859 mappings are all 8 bits so we skip a single byte for each + // character. + // + *pui32Skip = 1; + + // + // Is this character one of those which maps directly to Unicode? + // + if((uint8_t)*pcSrcChar <= 0xA0) + { + return((uint32_t)(char)*pcSrcChar); + } + else + { + return((uint32_t)g_pui16ISO8859_2_Unicode[ + (char)*pcSrcChar - 0xA1]); + } +} + +//***************************************************************************** +// +//! Maps an ISO8859-3 encoded character to its Unicode equivalent. +//! +//! \param pcSrcChar is a pointer to a string containing ISO8859-3 encoded +//! text. +//! \param ui32Count is the number of bytes in the buffer pointed to by +//! pcSrcChar. +//! \param pui32Skip points to storage that will be written with the number of +//! bytes to skip in pcSrcChar to get to the next character in the +//! buffer. +//! +//! This function may be passed to GrCodepageMapTableSet() in a tCodePointMap +//! structure to map source text in ISO8859-3 format into 32 bit Unicode +//! typically used by wide character fonts. This conversion is straightforward +//! since character codes 0xA0 and below map directly to the same code in +//! Unicode and those from 0xA1 to 0xFF are converted using a global data table. +//! +//! See http://unicode.org/Public/MAPPINGS/ISO8859/8859-3.TXT for more +//! information. +//! +//! \return Returns the Unicode character code for the first character in the +//! pcSrcChar string passed. +// +//***************************************************************************** +uint32_t +GrMapISO8859_3_Unicode(const char *pcSrcChar, uint32_t ui32Count, + uint32_t *pui32Skip) +{ + // + // Parameter sanity check. + // + ASSERT(pui32Skip); + ASSERT(pcSrcChar); + + // + // ISO8859 mappings are all 8 bits so we skip a single byte for each + // character. + // + *pui32Skip = 1; + + // + // Is this character one of those which maps directly to Unicode? + // + if((uint8_t)*pcSrcChar <= 0xA0) + { + return((uint32_t)(uint8_t)*pcSrcChar); + } + else + { + return((uint32_t)g_pui16ISO8859_3_Unicode[ + (uint8_t)*pcSrcChar - 0xA1]); + } +} + +//***************************************************************************** +// +//! Maps an ISO8859-4 encoded character to its Unicode equivalent. +//! +//! \param pcSrcChar is a pointer to a string containing ISO8859-4 encoded +//! text. +//! \param ui32Count is the number of bytes in the buffer pointed to by +//! pcSrcChar. +//! \param pui32Skip points to storage that will be written with the number of +//! bytes to skip in pcSrcChar to get to the next character in the +//! buffer. +//! +//! This function may be passed to GrCodepageMapTableSet() in a tCodePointMap +//! structure to map source text in ISO8859-4 format into 32 bit Unicode +//! typically used by wide character fonts. This conversion is straightforward +//! since character codes 0xA0 and below map directly to the same code in +//! Unicode and those from 0xA1 to 0xFF are converted using a global data table. +//! +//! See http://unicode.org/Public/MAPPINGS/ISO8859/8859-4.TXT for more +//! information. +//! +//! \return Returns the Unicode character code for the first character in the +//! pcSrcChar string passed. +// +//***************************************************************************** +uint32_t +GrMapISO8859_4_Unicode(const char *pcSrcChar, uint32_t ui32Count, + uint32_t *pui32Skip) +{ + // + // Parameter sanity check. + // + ASSERT(pui32Skip); + ASSERT(pcSrcChar); + + // + // ISO8859 mappings are all 8 bits so we skip a single byte for each + // character. + // + *pui32Skip = 1; + + // + // Is this character one of those which maps directly to Unicode? + // + if((uint8_t)*pcSrcChar <= 0xA0) + { + return((uint32_t)(uint8_t)*pcSrcChar); + } + else + { + return((uint32_t)g_pui16ISO8859_4_Unicode[ + (uint8_t)*pcSrcChar - 0xA1]); + } +} + +//***************************************************************************** +// +//! Maps an ISO8859-5 encoded character to its Unicode equivalent. +//! +//! \param pcSrcChar is a pointer to a string containing ISO8859-5 encoded +//! text. +//! \param ui32Count is the number of bytes in the buffer pointed to by +//! pcSrcChar. +//! \param pui32Skip points to storage that will be written with the number of +//! bytes to skip in pcSrcChar to get to the next character in the +//! buffer. +//! +//! This function may be passed to GrCodepageMapTableSet() in a tCodePointMap +//! structure to map source text in ISO8859-5 format into 32 bit Unicode +//! typically used by wide character fonts. This conversion is straightforward +//! since character codes 0xA0 and below map directly to the same code in +//! Unicode and those from 0xA1 to 0xFF map to the Unicode by adding 0x360 to +//! the ISO8859-5 code. +//! +//! See http://unicode.org/Public/MAPPINGS/ISO8859/8859-5.TXT for more +//! information. +//! +//! \return Returns the Unicode character code for the first character in the +//! pcSrcChar string passed. +// +//***************************************************************************** +uint32_t +GrMapISO8859_5_Unicode(const char *pcSrcChar, uint32_t ui32Count, + uint32_t *pui32Skip) +{ + // + // Parameter sanity check. + // + ASSERT(pui32Skip); + ASSERT(pcSrcChar); + + // + // ISO8859 mappings are all 8 bits so we skip a single byte for each + // character. + // + *pui32Skip = 1; + + // + // Is this character one of those which maps directly to Unicode? + // + if((uint8_t)*pcSrcChar <= 0xA0) + { + return((uint32_t)(uint8_t)*pcSrcChar); + } + else + { + return((uint32_t)((uint8_t)*pcSrcChar) + 0x360); + } +} + +//***************************************************************************** +// +//! Maps an ISO8859-6 encoded character to its Unicode equivalent. +//! +//! \param pcSrcChar is a pointer to a string containing ISO8859-6 encoded +//! text. +//! \param ui32Count is the number of bytes in the buffer pointed to by +//! pcSrcChar. +//! \param pui32Skip points to storage that will be written with the number of +//! bytes to skip in pcSrcChar to get to the next character in the +//! buffer. +//! +//! This function may be passed to GrCodepageMapTableSet() in a tCodePointMap +//! structure to map source text in ISO8859-6 format into 32 bit Unicode +//! typically used by wide character fonts. This conversion is straightforward +//! since character codes 0xA4 and below map directly to the same code in +//! Unicode and those from 0xA5 to 0xFF map to the Unicode by adding 0x560 to +//! the ISO8859-5 code. The only odd-man-out is character 0xAD which maps to +//! Unicode 0xAD even though it is above 0xA4. +//! +//! See http://unicode.org/Public/MAPPINGS/ISO8859/8859-6.TXT for more +//! information. +//! +//! \return Returns the Unicode character code for the first character in the +//! pcSrcChar string passed. +// +//***************************************************************************** +uint32_t +GrMapISO8859_6_Unicode(const char *pcSrcChar, uint32_t ui32Count, + uint32_t *pui32Skip) +{ + // + // Parameter sanity check. + // + ASSERT(pui32Skip); + ASSERT(pcSrcChar); + + // + // ISO8859 mappings are all 8 bits so we skip a single byte for each + // character. + // + *pui32Skip = 1; + + // + // Is this character one of those which maps directly to Unicode? + // + if(((uint8_t)*pcSrcChar <= 0xA4) || + ((uint8_t)*pcSrcChar == 0xAD)) + { + return((uint32_t)(uint8_t)*pcSrcChar); + } + else + { + return((uint32_t)((uint8_t)*pcSrcChar) + 0x560); + } +} + +//***************************************************************************** +// +//! Maps an ISO8859-7 encoded character to its Unicode equivalent. +//! +//! \param pcSrcChar is a pointer to a string containing ISO8859-7 encoded +//! text. +//! \param ui32Count is the number of bytes in the buffer pointed to by +//! pcSrcChar. +//! \param pui32Skip points to storage that will be written with the number of +//! bytes to skip in pcSrcChar to get to the next character in the +//! buffer. +//! +//! This function may be passed to GrCodepageMapTableSet() in a tCodePointMap +//! structure to map source text in ISO8859-7 format into 32 bit Unicode +//! typically used by wide character fonts. This conversion is straightforward +//! since character codes 0xA0 and below map directly to the same code in +//! Unicode, those from 0xBE to 0xFE map to the Unicode by adding 0x2D0 to +//! the ISO8859-7 code and only a few "unusual" mappings exist between +//! codepoints 0xA1 and 0xBD. +//! +//! See http://unicode.org/Public/MAPPINGS/ISO8859/8859-7.TXT for more +//! information. +//! +//! \return Returns the Unicode character code for the first character in the +//! pcSrcChar string passed. +// +//***************************************************************************** +uint32_t +GrMapISO8859_7_Unicode(const char *pcSrcChar, uint32_t ui32Count, + uint32_t *pui32Skip) +{ + // + // Parameter sanity check. + // + ASSERT(pui32Skip); + ASSERT(pcSrcChar); + + // + // ISO8859 mappings are all 8 bits so we skip a single byte for each + // character. + // + *pui32Skip = 1; + + // + // Is this character one of those which maps directly to Unicode? + // + if((uint8_t)*pcSrcChar <= 0xA0) + { + // + // This character is in the basic ASCII range so return it without + // remapping. + // + return((uint32_t)(uint8_t)*pcSrcChar); + } + else if((uint8_t)*pcSrcChar >= 0xBE) + { + // + // This character can be mapped to Unicode by a simple addition. + // + return((uint32_t)((uint8_t)*pcSrcChar) + 0x2D0); + } + else + { + // + // This is one of the characters in the range which we map using a + // table. + // + return(g_pui16ISO8859_7_Unicode[(uint8_t)*pcSrcChar - 0xA1]); + } +} + +//***************************************************************************** +// +//! Maps an ISO8859-8 encoded character to its Unicode equivalent. +//! +//! \param pcSrcChar is a pointer to a string containing ISO8859-8 encoded +//! text. +//! \param ui32Count is the number of bytes in the buffer pointed to by +//! pcSrcChar. +//! \param pui32Skip points to storage that will be written with the number of +//! bytes to skip in pcSrcChar to get to the next character in the +//! buffer. +//! +//! This function may be passed to GrCodepageMapTableSet() in a tCodePointMap +//! structure to map source text in ISO8859-8 format into 32 bit Unicode +//! typically used by wide character fonts. This conversion is straightforward +//! since character codes 0xDE and below map directly to the same code in +//! Unicode, those from 0xE0 to 0xFA map to the Unicode by adding 0x4F0 to +//! the ISO8859-7 code and only a few "unusual" mappings exist at codepoints +//! 0xDF, 0xFD and 0xFE. +//! +//! See http://unicode.org/Public/MAPPINGS/ISO8859/8859-8.TXT for more +//! information. +//! +//! \return Returns the Unicode character code for the first character in the +//! pcSrcChar string passed. +// +//***************************************************************************** +uint32_t +GrMapISO8859_8_Unicode(const char *pcSrcChar, uint32_t ui32Count, + uint32_t *pui32Skip) +{ + // + // Parameter sanity check. + // + ASSERT(pui32Skip); + ASSERT(pcSrcChar); + + // + // ISO8859 mappings are all 8 bits so we skip a single byte for each + // character. + // + *pui32Skip = 1; + + // + // Is this character one of those which maps directly to Unicode? + // + if((uint8_t)*pcSrcChar <= 0xDE) + { + // + // This character is in the basic ASCII range so return it without + // remapping. + // + return((uint32_t)(uint8_t)*pcSrcChar); + } + else if((uint8_t)*pcSrcChar == 0xDF) + { + // + // Return this special case. + // + return(0x2017); + } + else if((uint8_t)*pcSrcChar <= 0xFC) + { + // + // Map this range using a simple addition. + // + return((uint8_t)*pcSrcChar + 0x4F0); + } + else + { + // + // There are only 2 valid characters left at 0xFD and 0xFE. Map these + // to Unicode by adding 0x1F11 to map them to 0x200E and 0x200F. + // + return((uint8_t)*pcSrcChar + 0x1F11); + } +} + +//***************************************************************************** +// +//! Maps an ISO8859-9 encoded character to its Unicode equivalent. +//! +//! \param pcSrcChar is a pointer to a string containing ISO8859-9 encoded +//! text. +//! \param ui32Count is the number of bytes in the buffer pointed to by +//! pcSrcChar. +//! \param pui32Skip points to storage that will be written with the number of +//! bytes to skip in pcSrcChar to get to the next character in the +//! buffer. +//! +//! This function may be passed to GrCodepageMapTableSet() in a tCodePointMap +//! structure to map source text in ISO8859-9 format into 32 bit Unicode +//! typically used by wide character fonts. This character set is almost +//! identical to ISO8859-1 but substitutes 6 characters to offer better +//! support for the Turkish language. +//! +//! See http://unicode.org/Public/MAPPINGS/ISO8859/8859-9.TXT for more +//! information. +//! +//! \return Returns the Unicode character code for the first character in the +//! pcSrcChar string passed. +// +//***************************************************************************** +uint32_t +GrMapISO8859_9_Unicode(const char *pcSrcChar, uint32_t ui32Count, + uint32_t *pui32Skip) +{ + // + // Parameter sanity check. + // + ASSERT(pui32Skip); + ASSERT(pcSrcChar); + + // + // ISO8859 mappings are all 8 bits so we skip a single byte for each + // character. + // + *pui32Skip = 1; + + // + // Deal with the special cases in this switch. + // + switch((uint8_t)*pcSrcChar) + { + // + // Character 0xD0 in ISO8859-9 maps to U+011E + // + case 0xD0: + { + return(0x11E); + } + + // + // Character 0xDD in ISO8859-9 maps to U+0130 + // + case 0xDD: + { + return(0x130); + } + + // + // Character 0xDE in ISO8859-9 maps to U+015E + // + case 0xDE: + { + return(0x15E); + } + + // + // Character 0xF0 in ISO8859-9 maps to U+011F + // + case 0xF0: + { + return(0x11F); + } + + // + // Character 0xFD in ISO8859-9 maps to U+0131 + // + case 0xFD: + { + return(0x131); + } + + // + // Character 0xFE in ISO8859-9 maps to U+015F + // + case 0xFE: + { + return(0x15F); + } + + // + // All other characters map directly to Unicode using the same + // codepoints. + // + default: + { + return((uint32_t)(uint8_t)*pcSrcChar); + } + } +} + +//***************************************************************************** +// +//! Maps an ISO8859-10 encoded character to its Unicode equivalent. +//! +//! \param pcSrcChar is a pointer to a string containing ISO8859-10 encoded +//! text. +//! \param ui32Count is the number of bytes in the buffer pointed to by +//! pcSrcChar. +//! \param pui32Skip points to storage that will be written with the number of +//! bytes to skip in pcSrcChar to get to the next character in the +//! buffer. +//! +//! This function may be passed to GrCodepageMapTableSet() in a tCodePointMap +//! structure to map source text in ISO8859-10 format into 32 bit Unicode +//! typically used by wide character fonts. Character codes 0xA0 and below +//! map directly to the same code in Unicode and those from 0xA1 to 0xFF are +//! converted using a global data table. +//! +//! See http://unicode.org/Public/MAPPINGS/ISO8859/8859-10.TXT for more +//! information. +//! +//! \return Returns the Unicode character code for the first character in the +//! pcSrcChar string passed. +// +//***************************************************************************** +uint32_t +GrMapISO8859_10_Unicode(const char *pcSrcChar, uint32_t ui32Count, + uint32_t *pui32Skip) +{ + // + // Parameter sanity check. + // + ASSERT(pui32Skip); + ASSERT(pcSrcChar); + + // + // ISO8859 mappings are all 8 bits so we skip a single byte for each + // character. + // + *pui32Skip = 1; + + // + // Is this character one of those which maps directly to Unicode? + // + if((uint8_t)*pcSrcChar <= 0xA0) + { + return((uint32_t)(uint8_t)*pcSrcChar); + } + else + { + return((uint32_t)g_pui16ISO8859_10_Unicode[ + (uint8_t)*pcSrcChar - 0xA1]); + } +} + +//***************************************************************************** +// +//! Maps an ISO8859-11 encoded character to its Unicode equivalent. +//! +//! \param pcSrcChar is a pointer to a string containing ISO8859-11 encoded +//! text. +//! \param ui32Count is the number of bytes in the buffer pointed to by +//! pcSrcChar. +//! \param pui32Skip points to storage that will be written with the number of +//! bytes to skip in pcSrcChar to get to the next character in the +//! buffer. +//! +//! This function may be passed to GrCodepageMapTableSet() in a tCodePointMap +//! structure to map source text in ISO8859-11 format into 32 bit Unicode +//! typically used by wide character fonts. This conversion is straightforward +//! since character codes 0xA0 and below map directly to the same code in +//! Unicode and those from 0xA1 to 0xFF map to the Unicode by adding 0xD60 to +//! the ISO8859-11 code. +//! +//! See http://unicode.org/Public/MAPPINGS/ISO8859/8859-11.TXT for more +//! information. +//! +//! \return Returns the Unicode character code for the first character in the +//! pcSrcChar string passed. +// +//***************************************************************************** +uint32_t +GrMapISO8859_11_Unicode(const char *pcSrcChar, uint32_t ui32Count, + uint32_t *pui32Skip) +{ + // + // Parameter sanity check. + // + ASSERT(pui32Skip); + ASSERT(pcSrcChar); + + // + // ISO8859 mappings are all 8 bits so we skip a single byte for each + // character. + // + *pui32Skip = 1; + + // + // Is this character one of those which maps directly to Unicode? + // + if((uint8_t)*pcSrcChar <= 0xA0) + { + return((uint32_t)(uint8_t)*pcSrcChar); + } + else + { + return((uint32_t)((uint8_t)*pcSrcChar) + 0xD60); + } +} + +//***************************************************************************** +// +//! Maps an ISO8859-13 encoded character to its Unicode equivalent. +//! +//! \param pcSrcChar is a pointer to a string containing ISO8859-13 encoded +//! text. +//! \param ui32Count is the number of bytes in the buffer pointed to by +//! pcSrcChar. +//! \param pui32Skip points to storage that will be written with the number of +//! bytes to skip in pcSrcChar to get to the next character in the +//! buffer. +//! +//! This function may be passed to GrCodepageMapTableSet() in a tCodePointMap +//! structure to map source text in ISO8859-13 format into 32 bit Unicode +//! typically used by wide character fonts. Character codes 0xA0 and below +//! map directly to the same code in Unicode and those from 0xA1 to 0xFF are +//! converted using a global data table. +//! +//! See http://unicode.org/Public/MAPPINGS/ISO8859/8859-13.TXT for more +//! information. +//! +//! \return Returns the Unicode character code for the first character in the +//! pcSrcChar string passed. +// +//***************************************************************************** +uint32_t +GrMapISO8859_13_Unicode(const char *pcSrcChar, uint32_t ui32Count, + uint32_t *pui32Skip) +{ + // + // Parameter sanity check. + // + ASSERT(pui32Skip); + ASSERT(pcSrcChar); + + // + // ISO8859 mappings are all 8 bits so we skip a single byte for each + // character. + // + *pui32Skip = 1; + + // + // Is this character one of those which maps directly to Unicode? + // + if((uint8_t)*pcSrcChar <= 0xA0) + { + return((uint32_t)(uint8_t)*pcSrcChar); + } + else + { + return((uint32_t)g_pui16ISO8859_13_Unicode[(uint8_t)*pcSrcChar - 0xA1]); + } +} + +//***************************************************************************** +// +//! Maps an ISO8859-14 encoded character to its Unicode equivalent. +//! +//! \param pcSrcChar is a pointer to a string containing ISO8859-14 encoded +//! text. +//! \param ui32Count is the number of bytes in the buffer pointed to by +//! pcSrcChar. +//! \param pui32Skip points to storage that will be written with the number of +//! bytes to skip in pcSrcChar to get to the next character in the +//! buffer. +//! +//! This function may be passed to GrCodepageMapTableSet() in a tCodePointMap +//! structure to map source text in ISO8859-9 format into 32 bit Unicode +//! typically used by wide character fonts. This character set is similar to +//! ISO8859-1 but substitutes several characters to offer support for various +//! Celtic languages. +//! +//! See http://unicode.org/Public/MAPPINGS/ISO8859/8859-14.TXT for more +//! information. +//! +//! \return Returns the Unicode character code for the first character in the +//! pcSrcChar string passed. +// +//***************************************************************************** +uint32_t +GrMapISO8859_14_Unicode(const char *pcSrcChar, uint32_t ui32Count, + uint32_t *pui32Skip) +{ + // + // Parameter sanity check. + // + ASSERT(pui32Skip); + ASSERT(pcSrcChar); + + // + // ISO8859 mappings are all 8 bits so we skip a single byte for each + // character. + // + *pui32Skip = 1; + + // + // Deal with the special cases in this switch. + // + switch((uint8_t)*pcSrcChar) + { + // + // Character 0xD0 in ISO8859-14 maps to U+0174 + // + case 0xD0: + { + return(0x174); + } + + // + // Character 0xD7 in ISO8859-14 maps to U+1E6A + // + case 0xD7: + { + return(0x1E6A); + } + + // + // Character 0xDE in ISO8859-14 maps to U+0176 + // + case 0xDE: + { + return(0x176); + } + + // + // Character 0xF0 in ISO8859-14 maps to U+0175 + // + case 0xF0: + { + return(0x175); + } + + // + // Character 0xF7 in ISO8859-14 maps to U+1E6B + // + case 0xF7: + { + return(0x1E6B); + } + + // + // Character 0xFD in ISO8859-14 maps to U+0177 + // + case 0xFD: + { + return(0x131); + } + + // + // Other codepoints above 0xC0 map directly to their Unicode + // equivalents. Mappings for characters from 0xA1 to 0xBF are handled + // using a global table. + // + default: + { + if((uint8_t)*pcSrcChar >= 0xC0) + { + return((uint32_t)(uint8_t)*pcSrcChar); + } + else + { + return((uint32_t)g_pui16ISO8859_14_Unicode[ + (uint8_t)*pcSrcChar - 0xA1]); + } + } + } +} + +//***************************************************************************** +// +//! Maps an ISO8859-15 encoded character to its Unicode equivalent. +//! +//! \param pcSrcChar is a pointer to a string containing ISO8859-15 encoded +//! text. +//! \param ui32Count is the number of bytes in the buffer pointed to by +//! pcSrcChar. +//! \param pui32Skip points to storage that will be written with the number of +//! bytes to skip in pcSrcChar to get to the next character in the +//! buffer. +//! +//! This function may be passed to GrCodepageMapTableSet() in a tCodePointMap +//! structure to map source text in ISO8859-15 format into 32 bit Unicode +//! typically used by wide character fonts. This character set is similar to +//! ISO8859-1 differing from that codepage in only 8 positions. +//! +//! See http://unicode.org/Public/MAPPINGS/ISO8859/8859-15.TXT for more +//! information. +//! +//! \return Returns the Unicode character code for the first character in the +//! pcSrcChar string passed. +// +//***************************************************************************** +uint32_t +GrMapISO8859_15_Unicode(const char *pcSrcChar, uint32_t ui32Count, + uint32_t *pui32Skip) +{ + // + // Parameter sanity check. + // + ASSERT(pui32Skip); + ASSERT(pcSrcChar); + + // + // ISO8859 mappings are all 8 bits so we skip a single byte for each + // character. + // + *pui32Skip = 1; + + // + // Deal with the special cases in this switch. + // + switch((uint8_t)*pcSrcChar) + { + // + // Character 0xA4 in ISO8859-15 maps to U+20AC + // + case 0xA4: + { + return(0x20AC); + } + + // + // Character 0xA6 in ISO8859-15 maps to U+0160 + // + case 0xA6: + { + return(0x160); + } + + // + // Character 0xA8 in ISO8859-15 maps to U+0161 + // + case 0xA8: + { + return(0x161); + } + + // + // Character 0xB4 in ISO8859-15 maps to U+017D + // + case 0xB4: + { + return(0x17D); + } + + // + // Character 0xB8 in ISO8859-15 maps to U+017E + // + case 0xB8: + { + return(0x17E); + } + + // + // Character 0xBC in ISO8859-15 maps to U+0152 + // + case 0xBC: + { + return(0x152); + } + + // + // Character 0xBD in ISO8859-15 maps to U+0153 + // + case 0xBD: + { + return(0x153); + } + + // + // Character 0xBE in ISO8859-15 maps to U+0178 + // + case 0xBE: + { + return(0x178); + } + + // + // All other codepoints map directly to their Unicode equivalents. + // + default: + { + return((uint32_t)(uint8_t)*pcSrcChar); + } + } +} + +//***************************************************************************** +// +//! Maps an ISO8859-16 encoded character to its Unicode equivalent. +//! +//! \param pcSrcChar is a pointer to a string containing ISO8859-16 encoded +//! text. +//! \param ui32Count is the number of bytes in the buffer pointed to by +//! pcSrcChar. +//! \param pui32Skip points to storage that will be written with the number of +//! bytes to skip in pcSrcChar to get to the next character in the +//! buffer. +//! +//! This function may be passed to GrCodepageMapTableSet() in a tCodePointMap +//! structure to map source text in ISO8859-16 format into 32 bit Unicode +//! typically used by wide character fonts. Character codes 0xA0 and below +//! map directly to the same code in Unicode and those from 0xA1 to 0xFF are +//! converted using a global data table. +//! +//! See http://unicode.org/Public/MAPPINGS/ISO8859/8859-16.TXT for more +//! information. +//! +//! \return Returns the Unicode character code for the first character in the +//! pcSrcChar string passed. +// +//***************************************************************************** +uint32_t +GrMapISO8859_16_Unicode(const char *pcSrcChar, uint32_t ui32Count, + uint32_t *pui32Skip) +{ + // + // Parameter sanity check. + // + ASSERT(pui32Skip); + ASSERT(pcSrcChar); + + // + // ISO8859 mappings are all 8 bits so we skip a single byte for each + // character. + // + *pui32Skip = 1; + + // + // Is this character one of those which maps directly to Unicode? + // + if((uint8_t)*pcSrcChar <= 0xA0) + { + return((uint32_t)(uint8_t)*pcSrcChar); + } + else + { + return((uint32_t)g_pui16ISO8859_16_Unicode[ + (uint8_t)*pcSrcChar - 0xA1]); + } +} + +//***************************************************************************** +// +//! Maps a UTF-8 encoded character to its Unicode equivalent. +//! +//! \param pcSrcChar is a pointer to a string containing UTF-8 encoded text. +//! \param ui32Count is the number of bytes in the buffer pointed to by +//! pcSrcChar. +//! \param pui32Skip points to storage that will be written with the number of +//! bytes to skip in pcSrcChar to get to the next character in the +//! buffer. +//! +//! This function may be passed to GrCodepageMapTableSet() in a tCodePointMap +//! structure to map source text in UTF-8 format into 32 bit Unicode typically +//! used by wide character fonts. This conversion will read bytes from the +//! buffer and decode the first full UTF-8 character found, returning the +//! Unicode code for that character and the number of bytes to advance +//! pcSrcChar by to point to the end of the decoded character. If no valid +//! UTF-8 character is found, 0 is returned. +//! +//! See http://en.wikipedia.org/wiki/UTF-8 for more information. +//! +//! \return Returns the Unicode character code for the first character in the +//! pcSrcChar string passed. +// +//***************************************************************************** +uint32_t +GrMapUTF8_Unicode(const char *pcSrcChar, uint32_t ui32Count, + uint32_t *pui32Skip) +{ + uint32_t ui32Unicode, ui32ToRead, ui32Index; + + // + // Parameter sanity check. + // + ASSERT(pui32Skip); + ASSERT(pcSrcChar); + + // + // Clear our our character code storage. + // + ui32Unicode = 0; + ui32Index = 0; + + // + // While we have bytes left to examine in the buffer and the current byte + // is a continuation code... + // + while(ui32Count && ((uint8_t)pcSrcChar[ui32Index] & 0xC0) == 0x80) + { + // + // Skip the byte. + // + ui32Index++; + ui32Count--; + } + + // + // We are now either at the end of the string or the start of a new + // character unit. Did we get to the end of the string? + // + if(!ui32Count) + { + // + // Yes - return 0. + // + return(0); + } + + // + // Is this a single byte encoded character of the form 0xxxxxxx? + // + if(!((uint8_t)(pcSrcChar[ui32Index]) & 0x80)) + { + // + // Yes - the Unicode equivalent is just the bottom 7 bits of the + // UTF-8 byte. + // + ui32Unicode = (uint8_t)(pcSrcChar[ui32Index++]) & 0x7F; + ui32ToRead = 0; + } + else + { + // + // This is a multi-byte encoded character. Determine how many bytes + // it uses. + // + ui32ToRead = + NumLeadingZeros(~((uint32_t)pcSrcChar[ui32Index] << 24)) - 1; + + + // + // There can be a maximum of 5 more bytes to read. If we found more + // than this, then this is an illegal code. + // + if(ui32ToRead > 5) + { + ui32Unicode = 0; + ui32ToRead = 0; + ui32Index++; + } + else + { + // + // Extract the first bits of the Unicode value from this byte. + // + ui32Unicode = (uint8_t)pcSrcChar[ui32Index++] & + ((1 << (6 - ui32ToRead)) - 1); + + // + // Read the remaining bytes encoding this character. + // + while(ui32Count && ui32ToRead) + { + // + // Is this a continuation byte with form 10xxxxxx? + // + if(((uint8_t)pcSrcChar[ui32Index] & 0xC0) != 0x80) + { + // + // No - this is an invalid character to return 0 and tell + // the caller to skip past it. + // + *pui32Skip = ui32Index; + return(0); + } + else + { + // + // Extract the bottom 6 bits from the continuation + // character and mask them into the Unicode code. + // + ui32Unicode = ((ui32Unicode << 6) | + ((uint8_t)pcSrcChar[ui32Index++] & 0x3F)); + ui32ToRead--; + ui32Count--; + } + } + + // + // If we get here and we didn't read the expected number of bytes, + // this is an invalid character. + // + if(ui32ToRead) + { + // + // We ran out of data before reading all the required + // continuation bytes so tell the caller to skip the data and + // return 0 to indicate an error. + // + *pui32Skip = ui32Index; + return(0); + } + } + } + + // + // Tell the caller how many bytes to skip to get to the next character in + // the string. + // + *pui32Skip = ui32Index; + + // + // Return the Unicode character code. + // + return(ui32Unicode); +} + +//***************************************************************************** +// +// Maps a UTF-16LE or UTF-16BE encoded character to its Unicode equivalent. +// +// \param pcSrcChar is a pointer to a string containing UTF-16LE encoded text. +// \param ui32Count is the number of bytes in the buffer pointed to by +// pcSrcChar. +// \param pui32Skip points to storage that will be written with the number of +// bytes to skip in pcSrcChar to get to the next character in the +// buffer. +// \param bLE is \b true if the \e pcSrcChar points to a UTF-16LE encoded +// string or \b false if it points to a UTF-16BE string. +// +// This internal function is used to support GrMapUTF16LE_Unicode and +// GrMapUTF16BE_Unicode. +// +// \return Returns the Unicode character code for the first character in the +// \e pcSrcChar string passed. +// +//***************************************************************************** +static uint32_t +GrMapUTF16_Unicode(const char *pcSrcChar, uint32_t ui32Count, + uint32_t *pui32Skip, bool bLE) +{ + uint16_t ui16Char, ui16CharToo; + uint32_t ui32Code; + const char *pcChar; + + // + // Parameter sanity check. + // + ASSERT(pui32Skip); + ASSERT(pcSrcChar); + + // + // Walk the string until we find something valid that we can decode. + // + ui32Code = 0; + pcChar = pcSrcChar; + + while(ui32Count >= 2) + { + // + // Get a word from the string. + // + ui16Char = bLE ? (pcChar[0] + 256 * pcChar[1]) : + (pcChar[1] + 256 * pcChar[0]); + + // + // Move to the next word and update our count. + // + ui32Count -= 2; + pcChar += 2; + + // + // Is this a valid single-word encoding? + // + if((ui16Char <= 0xD7FF) || (ui16Char >= 0xE000)) + { + // + // Yes - return the value and tell the caller to skip the + // appropriate number of bytes to get to the end of this character. + // + ui32Code = (uint32_t)ui16Char; + break; + } + else + { + // + // Is this a valid first word for a high surrogate (first word in a + // 2 word encoding)? + // + if((ui16Char >= 0xD800) && (ui16Char < 0xDC00)) + { + // + // Yes - this is valid. Now look ahead and see if the next + // word is valid as a low surrogate, assuming there are at + // least 2 more bytes for us to look at. + // + if(ui32Count >= 2) + { + // + // Get the next word in the string. + // + ui16CharToo = bLE ? (pcChar[0] + 256 * pcChar[1]) : + (pcChar[1] + 256 * pcChar[0]); + + // + // Is this a valid low surrogate? + // + if((ui16CharToo >= 0xDC00) && (ui16CharToo < 0xE000)) + { + // + // Yes, it's valid. Update our skip count and parse + // the Unicode codepoint from the two words we've read. + // + pcChar += 2; + ui32Count -= 2; + ui32Code = 0x10000 + + ((uint32_t)(ui16Char - 0xD800) << 10) + + ((uint32_t)ui16CharToo - 0xDC00); + break; + } + } + } + } + } + + // + // Set the number of bytes to skip in the string to get past the + // character we just parsed and return the character codepoint if we + // found one. + // + *pui32Skip = (uint32_t)(pcChar - pcSrcChar); + return(ui32Code); +} + +//***************************************************************************** +// +//! Maps a UTF-16LE encoded character to its Unicode equivalent. +//! +//! \param pcSrcChar is a pointer to a string containing UTF-16LE encoded text. +//! \param ui32Count is the number of bytes in the buffer pointed to by +//! pcSrcChar. +//! \param pui32Skip points to storage that will be written with the number of +//! bytes to skip in pcSrcChar to get to the next character in the +//! buffer. +//! +//! This function may be passed to GrCodepageMapTableSet() in a tCodePointMap +//! structure to map source text in UTF-16LE format into 32 bit Unicode +//! typically used by wide character fonts. This conversion will read bytes +//! from the buffer and decode the first full UTF-16LE character found, +//! returning the Unicode code for that character and the number of bytes to +//! advance \e pcSrcChar by to point to the end of the decoded character. If +//! no valid UTF-16LE character is found, 0 is returned. +//! +//! See http://en.wikipedia.org/wiki/UTF-16 for more information. +//! +//! \return Returns the Unicode character code for the first character in the +//! \e pcSrcChar string passed. +// +//***************************************************************************** +uint32_t +GrMapUTF16LE_Unicode(const char *pcSrcChar, uint32_t ui32Count, + uint32_t *pui32Skip) +{ + // + // Call the low level UTF parsing function and return the result. + // + return(GrMapUTF16_Unicode(pcSrcChar, ui32Count, pui32Skip, true)); +} + +//***************************************************************************** +// +//! Maps a UTF-16BE encoded character to its Unicode equivalent. +//! +//! \param pcSrcChar is a pointer to a string containing UTF-16BE encoded text. +//! \param ui32Count is the number of bytes in the buffer pointed to by +//! pcSrcChar. +//! \param pui32Skip points to storage that will be written with the number of +//! bytes to skip in pcSrcChar to get to the next character in the +//! buffer. +//! +//! This function may be passed to GrCodepageMapTableSet() in a tCodePointMap +//! structure to map source text in UTF-16BE format into 32 bit Unicode +//! typically used by wide character fonts. This conversion will read bytes +//! from the buffer and decode the first full UTF-16BE character found, +//! returning the Unicode code for that character and the number of bytes to +//! advance \e pcSrcChar by to point to the end of the decoded character. If +//! no valid UTF-16BE character is found, 0 is returned. +//! +//! See http://en.wikipedia.org/wiki/UTF-16 for more information. +//! +//! \return Returns the Unicode character code for the first character in the +//! \e pcSrcChar string passed. +// +//***************************************************************************** +uint32_t +GrMapUTF16BE_Unicode(const char *pcSrcChar, uint32_t ui32Count, + uint32_t *pui32Skip) +{ + // + // Call the low level UTF parsing function and return the result. + // + return(GrMapUTF16_Unicode(pcSrcChar, ui32Count, pui32Skip, false)); +} + +//***************************************************************************** +// +//! Maps an 32 bit Unicode encoded character to itself. +//! +//! \param pcSrcChar is a pointer to a string containing 32 bit Unicode text. +//! \param ui32Count is the number of bytes in the buffer pointed to by +//! pcSrcChar. +//! \param pui32Skip points to storage that will be written with the number of +//! bytes to skip in pcSrcChar to get to the next character in the +//! buffer. +//! +//! This function may be passed to GrCodepageMapTableSet() in a tCodePointMap +//! structure to map source text in Unicode (UTF32) format into 32 bit +//! Unicode typically used by wide character fonts. This identity conversion is +//! trivial - we merely read 4 bytes at a time and return the 32 bit value they +//! contain. It is assumed that the text is encoded in little endian format. +//! +//! \return Returns the Unicode character code for the first character in the +//! pcSrcChar string passed. +// +//***************************************************************************** +uint32_t +GrMapUnicode_Unicode(const char *pcSrcChar, uint32_t ui32Count, + uint32_t *pui32Skip) +{ + // + // Parameter sanity check. + // + ASSERT(pui32Skip); + ASSERT(pcSrcChar); + + // + // Do we have enough bytes to pull out a single 32 bit character code? + // + if(ui32Count < 4) + { + // + // Return 0 to indicate an error since we don't have enough data to + // extract a single character code. + // + return(0); + } + else + { + // + // We have at least 4 bytes so tell the caller to skip 4 bytes to get + // the following character and return the Unicode codepoint represented + // by the first 4 bytes in the buffer. + // + *pui32Skip = 4; + return(pcSrcChar[0] | (pcSrcChar[1] << 8) | (pcSrcChar[2] << 16) | + (pcSrcChar[3] << 24)); + } +} + +//***************************************************************************** +// +//! Maps a WIN1250 encoded character to its Unicode equivalent. +//! +//! \param pcSrcChar is a pointer to a string containing WIN1250 encoded +//! text. +//! \param ui32Count is the number of bytes in the buffer pointed to by +//! pcSrcChar. +//! \param pui32Skip points to storage that will be written with the number of +//! bytes to skip in pcSrcChar to get to the next character in the +//! buffer. +//! +//! This function may be passed to GrCodepageMapTableSet() in a tCodePointMap +//! structure to map source text in WIN1250 format into 32 bit Unicode +//! typically used by wide character fonts. Windows-1250 is a codepage commonly +//! used in processing eastern European text. This conversion is +//! straightforward since character codes 0x7F and below map directly to the +//! same code in Unicode, and those from 0x80 to 0xFF are converted using a +//! global data table. +//! +//! See http://en.wikipedia.org/wiki/Windows-1250 for more information. +//! +//! \return Returns the Unicode character code for the first character in the +//! pcSrcChar string passed. +// +//***************************************************************************** +uint32_t +GrMapWIN1250_Unicode(const char *pcSrcChar, uint32_t ui32Count, + uint32_t *pui32Skip) +{ + // + // Parameter sanity check. + // + ASSERT(pui32Skip); + ASSERT(pcSrcChar); + + // + // WIN1250 mappings are all 8 bits so we skip a single byte for each + // character. + // + *pui32Skip = 1; + + // + // Is this character one of those which maps directly to Unicode? + // + if((uint8_t)*pcSrcChar <= 0x7F) + { + return((uint32_t)(uint8_t)*pcSrcChar); + } + else + { + return((uint32_t)g_pui16WIN1250_Unicode[ + (uint8_t)*pcSrcChar - 0x80]); + } +} + +//***************************************************************************** +// +//! Maps a WIN1251 encoded character to its Unicode equivalent. +//! +//! \param pcSrcChar is a pointer to a string containing WIN1251 encoded +//! text. +//! \param ui32Count is the number of bytes in the buffer pointed to by +//! pcSrcChar. +//! \param pui32Skip points to storage that will be written with the number of +//! bytes to skip in pcSrcChar to get to the next character in the +//! buffer. +//! +//! This function may be passed to GrCodepageMapTableSet() in a tCodePointMap +//! structure to map source text in WIN1251 format into 32 bit Unicode +//! typically used by wide character fonts. Windows-1251 is a codepage commonly +//! used in processing Cyrillic text. This conversion is straightforward +//! since character codes 0x7F and below map directly to the same code in +//! Unicode, those from 0x80 to 0xBF are converted using a global data table +//! and those from 0xC0 to 0xFF map to the Unicode by adding 0x350 to +//! the WIN1251 code. +//! +//! See http://en.wikipedia.org/wiki/Windows-1251 for more information. +//! +//! \return Returns the Unicode character code for the first character in the +//! pcSrcChar string passed. +// +//***************************************************************************** +uint32_t +GrMapWIN1251_Unicode(const char *pcSrcChar, uint32_t ui32Count, + uint32_t *pui32Skip) +{ + // + // Parameter sanity check. + // + ASSERT(pui32Skip); + ASSERT(pcSrcChar); + + // + // WIN1251 mappings are all 8 bits so we skip a single byte for each + // character. + // + *pui32Skip = 1; + + // + // Is this character one of those which maps directly to Unicode? + // + if((uint8_t)*pcSrcChar <= 0x7F) + { + return((uint32_t)(uint8_t)*pcSrcChar); + } + else if(((uint8_t)*pcSrcChar >= 0x80) && + ((uint8_t)*pcSrcChar <= 0xBF)) + { + return((uint32_t)g_pui16WIN1251_Unicode[ + (uint8_t)*pcSrcChar - 0x80]); + } + else + { + return((uint32_t)((uint8_t)*pcSrcChar) + 0x350); + } +} + +//***************************************************************************** +// +//! Maps a WIN1252 encoded character to its Unicode equivalent. +//! +//! \param pcSrcChar is a pointer to a string containing WIN1252 encoded +//! text. +//! \param ui32Count is the number of bytes in the buffer pointed to by +//! pcSrcChar. +//! \param pui32Skip points to storage that will be written with the number of +//! bytes to skip in pcSrcChar to get to the next character in the +//! buffer. +//! +//! This function may be passed to GrCodepageMapTableSet() in a tCodePointMap +//! structure to map source text in WIN1252 format into 32 bit Unicode +//! typically used by wide character fonts. Windows-1252 is a codepage commonly +//! used in processing western European text. This conversion is +//! straightforward since character codes 0x7F and below, and 0xA0 and above +//! map directly to the same code in Unicode, and those from 0x80 to 0x9F are +//! converted using a global data table. This codepage can be thought of as a +//! superset of ISO8859-1 and text purported to be encoded in ISO8859-1 is +//! frequently processed using this codepage instead. +//! +//! See http://en.wikipedia.org/wiki/Windows-1252 for more information. +//! +//! \return Returns the Unicode character code for the first character in the +//! pcSrcChar string passed. +// +//***************************************************************************** +uint32_t +GrMapWIN1252_Unicode(const char *pcSrcChar, uint32_t ui32Count, + uint32_t *pui32Skip) +{ + // + // Parameter sanity check. + // + ASSERT(pui32Skip); + ASSERT(pcSrcChar); + + // + // WIN1252 mappings are all 8 bits so we skip a single byte for each + // character. + // + *pui32Skip = 1; + + // + // Is this character one of those which maps directly to Unicode? + // + if(((uint8_t)*pcSrcChar <= 0x7F) || + ((uint8_t)*pcSrcChar >= 0xA0)) + { + return((uint32_t)(uint8_t)*pcSrcChar); + } + else + { + return((uint32_t)g_pui16WIN1252_Unicode[ + (uint8_t)*pcSrcChar - 0x80]); + } +} + +//***************************************************************************** +// +//! Maps a WIN1253 encoded character to its Unicode equivalent. +//! +//! \param pcSrcChar is a pointer to a string containing WIN1253 encoded +//! text. +//! \param ui32Count is the number of bytes in the buffer pointed to by +//! pcSrcChar. +//! \param pui32Skip points to storage that will be written with the number of +//! bytes to skip in pcSrcChar to get to the next character in the +//! buffer. +//! +//! This function may be passed to GrCodepageMapTableSet() in a tCodePointMap +//! structure to map source text in WIN1253 format into 32 bit Unicode +//! typically used by wide character fonts. Windows-1253 is a codepage commonly +//! used in processing Greek text. This conversion is straightforward +//! since character codes 0x7F and below map directly to the same code in +//! Unicode, those from 0x80 to 0xBF are converted using a global data table +//! and those from 0xC0 to 0xFF map to the Unicode by adding 0x2D0 to +//! the WIN1253 code. +//! +//! See http://en.wikipedia.org/wiki/Windows-1253 for more information. +//! +//! \return Returns the Unicode character code for the first character in the +//! pcSrcChar string passed. +// +//***************************************************************************** +uint32_t +GrMapWIN1253_Unicode(const char *pcSrcChar, uint32_t ui32Count, + uint32_t *pui32Skip) +{ + // + // Parameter sanity check. + // + ASSERT(pui32Skip); + ASSERT(pcSrcChar); + + // + // WIN1253 mappings are all 8 bits so we skip a single byte for each + // character. + // + *pui32Skip = 1; + + // + // Is this character one of those which maps directly to Unicode? + // + if((uint8_t)*pcSrcChar <= 0x7F) + { + return((uint32_t)(uint8_t)*pcSrcChar); + } + else if(((uint8_t)*pcSrcChar >= 0x80) && + ((uint8_t)*pcSrcChar <= 0xBF)) + { + // + // This is a character we remap via the global table. + // + return((uint32_t)g_pui16WIN1253_Unicode[ + (uint8_t)*pcSrcChar - 0x80]); + } + else + { + // + // This is a character we can calculate the Unicode character code for. + // + return((uint32_t)((uint8_t)*pcSrcChar) + 0x2D0); + } +} + +//***************************************************************************** +// +//! Maps a WIN1254 encoded character to its Unicode equivalent. +//! +//! \param pcSrcChar is a pointer to a string containing WIN1254 encoded +//! text. +//! \param ui32Count is the number of bytes in the buffer pointed to by +//! pcSrcChar. +//! \param pui32Skip points to storage that will be written with the number of +//! bytes to skip in pcSrcChar to get to the next character in the +//! buffer. +//! +//! This function may be passed to GrCodepageMapTableSet() in a tCodePointMap +//! structure to map source text in WIN1254 format into 32 bit Unicode +//! typically used by wide character fonts. Windows-1254 is a codepage commonly +//! used in processing Turkish text. It is compatible with ISO8859-9 but adds +//! several printable characters in the 0x80-0x9F range. +//! +//! See http://en.wikipedia.org/wiki/Windows-1254 for more information. +//! +//! \return Returns the Unicode character code for the first character in the +//! pcSrcChar string passed. +// +//***************************************************************************** +uint32_t +GrMapWIN1254_Unicode(const char *pcSrcChar, uint32_t ui32Count, + uint32_t *pui32Skip) +{ + // + // Parameter sanity check. + // + ASSERT(pui32Skip); + ASSERT(pcSrcChar); + + // + // WIN1254 mappings are all 8 bits so we skip a single byte for each + // character. + // + *pui32Skip = 1; + + // + // Is this character one of those which maps directly to Unicode? + // + if(((uint8_t)*pcSrcChar <= 0x7F) || + ((uint8_t)*pcSrcChar >= 0xA0)) + { + return(GrMapISO8859_9_Unicode(pcSrcChar, ui32Count, pui32Skip)); + } + else + { + // + // This is a character we remap via the global table. + // + return((uint32_t)g_pui16WIN1254_Unicode[ + (uint8_t)*pcSrcChar - 0x80]); + } +} + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** diff --git a/grlib/checkbox.c b/grlib/checkbox.c new file mode 100644 index 0000000..17bee3b --- /dev/null +++ b/grlib/checkbox.c @@ -0,0 +1,467 @@ +//***************************************************************************** +// +// checkbox.c - Check box widget. +// +// Copyright (c) 2008-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#include +#include +#include "driverlib/debug.h" +#include "grlib/grlib.h" +#include "grlib/widget.h" +#include "grlib/checkbox.h" + +//***************************************************************************** +// +//! \addtogroup checkbox_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +//! Draws a check box widget. +//! +//! \param psWidget is a pointer to the check box widget to be drawn. +//! \param bClick is a boolean that is \b true if the paint request is a result +//! of a pointer click and \b false if not. +//! +//! This function draws a check box widget on the display. This is called in +//! response to a \b #WIDGET_MSG_PAINT message. +//! +//! \return None. +// +//***************************************************************************** +static void +CheckBoxPaint(tWidget *psWidget, bool bClick) +{ + tCheckBoxWidget *pCheck; + tRectangle i16Rect; + tContext sCtx; + int32_t i32Y; + + // + // Check the arguments. + // + ASSERT(psWidget); + + // + // Convert the generic widget pointer into a check box widget pointer. + // + pCheck = (tCheckBoxWidget *)psWidget; + + // + // Initialize a drawing context. + // + GrContextInit(&sCtx, psWidget->psDisplay); + + // + // Initialize the clipping region based on the extents of this check box. + // + GrContextClipRegionSet(&sCtx, &(psWidget->sPosition)); + + // + // See if the check box fill style is selected. + // + if((pCheck->ui16Style & CB_STYLE_FILL) && !bClick) + { + // + // Fill the check box with the fill color. + // + GrContextForegroundSet(&sCtx, pCheck->ui32FillColor); + GrRectFill(&sCtx, &(psWidget->sPosition)); + } + + // + // See if the check box outline style is selected. + // + if((pCheck->ui16Style & CB_STYLE_OUTLINE) && !bClick) + { + // + // Outline the check box with the outline color. + // + GrContextForegroundSet(&sCtx, pCheck->ui32OutlineColor); + GrRectDraw(&sCtx, &(psWidget->sPosition)); + } + + // + // Draw the check box. + // + i16Rect.i16XMin = psWidget->sPosition.i16XMin + 2; + i16Rect.i16YMin = (psWidget->sPosition.i16YMin + + ((psWidget->sPosition.i16YMax - psWidget->sPosition.i16YMin - + pCheck->ui16BoxSize + 1) / 2)); + i16Rect.i16XMax = i16Rect.i16XMin + pCheck->ui16BoxSize - 1; + i16Rect.i16YMax = i16Rect.i16YMin + pCheck->ui16BoxSize - 1; + if(!bClick) + { + GrContextForegroundSet(&sCtx, pCheck->ui32OutlineColor); + GrRectDraw(&sCtx, &i16Rect); + } + + // + // Select the foreground color based on whether or not the check box is + // selected. + // + if(pCheck->ui16Style & CB_STYLE_SELECTED) + { + GrContextForegroundSet(&sCtx, pCheck->ui32OutlineColor); + } + else + { + GrContextForegroundSet(&sCtx, pCheck->ui32FillColor); + } + + // + // Draw an "X" in the check box. + // + GrLineDraw(&sCtx, i16Rect.i16XMin + 1, i16Rect.i16YMin + 1, + i16Rect.i16XMax - 1, i16Rect.i16YMax - 1); + GrLineDraw(&sCtx, i16Rect.i16XMin + 1, i16Rect.i16YMax - 1, + i16Rect.i16XMax - 1, i16Rect.i16YMin + 1); + + // + // See if the check box text or image style is selected. + // + if((pCheck->ui16Style & (CB_STYLE_TEXT | CB_STYLE_IMG)) && !bClick) + { + // + // Shrink the clipping region by the size of the check box so that it + // is not overwritten by further "decorative" portions of the widget. + // + sCtx.sClipRegion.i16XMin += pCheck->ui16BoxSize + 4; + + // + // If the check box outline style is selected then shrink the clipping + // region by one pixel on each side so that the outline is not + // overwritten by the text or image. + // + if(pCheck->ui16Style & CB_STYLE_OUTLINE) + { + sCtx.sClipRegion.i16YMin++; + sCtx.sClipRegion.i16XMax--; + sCtx.sClipRegion.i16YMax--; + } + + // + // See if the check box image style is selected. + // + if(pCheck->ui16Style & CB_STYLE_IMG) + { + // + // Determine where along the Y extent of the widget to draw the + // image. It is drawn at the top if it takes all (or more than + // all) of the Y extent of the widget, and it is drawn centered if + // it takes less than the Y extent. + // + if(GrImageHeightGet(pCheck->pui8Image) > + (sCtx.sClipRegion.i16YMax - sCtx.sClipRegion.i16YMin)) + { + i32Y = sCtx.sClipRegion.i16YMin; + } + else + { + i32Y = (sCtx.sClipRegion.i16YMin + + ((sCtx.sClipRegion.i16YMax - sCtx.sClipRegion.i16YMin - + GrImageHeightGet(pCheck->pui8Image) + 1) / 2)); + } + + // + // Set the foreground and background colors to use for 1 BPP + // images. + // + GrContextForegroundSet(&sCtx, pCheck->ui32TextColor); + GrContextBackgroundSet(&sCtx, pCheck->ui32FillColor); + + // + // Draw the image next to the check box. + // + GrImageDraw(&sCtx, pCheck->pui8Image, sCtx.sClipRegion.i16XMin, + i32Y); + } + + // + // See if the check box text style is selected. + // + if(pCheck->ui16Style & CB_STYLE_TEXT) + { + // + // Determine where along the Y extent of the widget to draw the + // string. It is drawn at the top if it takes all (or more than + // all) of the Y extent of the widget, and it is drawn centered if + // it takes less than the Y extent. + // + if(GrFontHeightGet(pCheck->psFont) > + (sCtx.sClipRegion.i16YMax - sCtx.sClipRegion.i16YMin)) + { + i32Y = sCtx.sClipRegion.i16YMin; + } + else + { + i32Y = (sCtx.sClipRegion.i16YMin + + ((sCtx.sClipRegion.i16YMax - sCtx.sClipRegion.i16YMin - + GrFontHeightGet(pCheck->psFont) + 1) / 2)); + } + + // + // Draw the text next to the check box. + // + GrContextFontSet(&sCtx, pCheck->psFont); + GrContextForegroundSet(&sCtx, pCheck->ui32TextColor); + GrContextBackgroundSet(&sCtx, pCheck->ui32FillColor); + GrStringDraw(&sCtx, pCheck->pcText, -1, sCtx.sClipRegion.i16XMin, + i32Y, pCheck->ui16Style & CB_STYLE_TEXT_OPAQUE); + } + } +} + +//***************************************************************************** +// +//! Handles pointer events for a check box. +//! +//! \param psWidget is a pointer to the check box widget. +//! \param ui32Msg is the pointer event message. +//! \param i32X is the X coordinate of the pointer event. +//! \param i32Y is the Y coordinate of the pointer event. +//! +//! This function processes pointer event messages for a check box. This is +//! called in response to a \b #WIDGET_MSG_PTR_DOWN, \b #WIDGET_MSG_PTR_MOVE, +//! and \b #WIDGET_MSG_PTR_UP messages. +//! +//! If the \b #WIDGET_MSG_PTR_UP message is received with a position within the +//! extents of the check box, the check box's selected state will be toggled +//! and its OnChange function is called. +//! +//! \return Returns 1 if the coordinates are within the extents of the check +//! box and 0 otherwise. +// +//***************************************************************************** +static int32_t +CheckBoxClick(tWidget *psWidget, uint32_t ui32Msg, int32_t i32X, int32_t i32Y) +{ + tCheckBoxWidget *pCheck; + + // + // Check the arguments. + // + ASSERT(psWidget); + + // + // Convert the generic widget pointer into a check box widget pointer. + // + pCheck = (tCheckBoxWidget *)psWidget; + + // + // See if the given coordinates are within the extents of the check box. + // + if((i32X >= psWidget->sPosition.i16XMin) && + (i32X <= psWidget->sPosition.i16XMax) && + (i32Y >= psWidget->sPosition.i16YMin) && + (i32Y <= psWidget->sPosition.i16YMax)) + { + // + // See if the pointer was just raised. + // + if(ui32Msg == WIDGET_MSG_PTR_UP) + { + // + // Toggle the selected state of this check box. + // + pCheck->ui16Style ^= CB_STYLE_SELECTED; + + // + // Redraw the check box based on the new selected state. + // + CheckBoxPaint(psWidget, 1); + + // + // If there is an OnChange callback for this widget then call the + // callback. + // + if(pCheck->pfnOnChange) + { + pCheck->pfnOnChange(psWidget, + pCheck->ui16Style & CB_STYLE_SELECTED); + } + } + + // + // These coordinates are within the extents of the check box widget. + // + return(1); + } + + // + // These coordinates are not within the extents of the check box widget. + // + return(0); +} + +//***************************************************************************** +// +//! Handles messages for a check box widget. +//! +//! \param psWidget is a pointer to the check box widget. +//! \param ui32Msg is the message. +//! \param ui32Param1 is the first parameter to the message. +//! \param ui32Param2 is the second parameter to the message. +//! +//! This function receives messages intended for this check box widget and +//! processes them accordingly. The processing of the message varies based on +//! the message in question. +//! +//! Unrecognized messages are handled by calling WidgetDefaultMsgProc(). +//! +//! \return Returns a value appropriate to the supplied message. +// +//***************************************************************************** +int32_t +CheckBoxMsgProc(tWidget *psWidget, uint32_t ui32Msg, uint32_t ui32Param1, + uint32_t ui32Param2) +{ + // + // Check the arguments. + // + ASSERT(psWidget); + + // + // Determine which message is being sent. + // + switch(ui32Msg) + { + // + // The widget paint request has been sent. + // + case WIDGET_MSG_PAINT: + { + // + // Handle the widget paint request. + // + CheckBoxPaint(psWidget, 0); + + // + // Return one to indicate that the message was successfully + // processed. + // + return(1); + } + + // + // One of the pointer requests has been sent. + // + case WIDGET_MSG_PTR_DOWN: + case WIDGET_MSG_PTR_MOVE: + case WIDGET_MSG_PTR_UP: + { + // + // Handle the pointer request, returning the appropriate value. + // + return(CheckBoxClick(psWidget, ui32Msg, ui32Param1, ui32Param2)); + } + + // + // An unknown request has been sent. + // + default: + { + // + // Let the default message handler process this message. + // + return(WidgetDefaultMsgProc(psWidget, ui32Msg, ui32Param1, + ui32Param2)); + } + } +} + +//***************************************************************************** +// +//! Initializes a check box widget. +//! +//! \param psWidget is a pointer to the check box widget to initialize. +//! \param psDisplay is a pointer to the display on which to draw the check box. +//! \param i32X is the X coordinate of the upper left corner of the check box. +//! \param i32Y is the Y coordinate of the upper left corner of the check box. +//! \param i32Width is the width of the check box. +//! \param i32Height is the height of the check box. +//! +//! This function initializes the provided check box widget. +//! +//! \return None. +// +//***************************************************************************** +void +CheckBoxInit(tCheckBoxWidget *psWidget, const tDisplay *psDisplay, int32_t i32X, + int32_t i32Y, int32_t i32Width, int32_t i32Height) +{ + uint32_t ui32Idx; + + // + // Check the arguments. + // + ASSERT(psWidget); + ASSERT(psDisplay); + + // + // Clear out the widget structure. + // + for(ui32Idx = 0; ui32Idx < sizeof(tCheckBoxWidget); ui32Idx += 4) + { + ((uint32_t *)psWidget)[ui32Idx / 4] = 0; + } + + // + // Set the size of the check box widget structure. + // + psWidget->sBase.i32Size = sizeof(tCheckBoxWidget); + + // + // Mark this widget as fully disconnected. + // + psWidget->sBase.psParent = 0; + psWidget->sBase.psNext = 0; + psWidget->sBase.psChild = 0; + + // + // Save the display pointer. + // + psWidget->sBase.psDisplay = psDisplay; + + // + // Set the extents of this check box. + // + psWidget->sBase.sPosition.i16XMin = i32X; + psWidget->sBase.sPosition.i16YMin = i32Y; + psWidget->sBase.sPosition.i16XMax = i32X + i32Width - 1; + psWidget->sBase.sPosition.i16YMax = i32Y + i32Height - 1; + + // + // Use the check box message handler to processage messages to this check + // box. + // + psWidget->sBase.pfnMsgProc = CheckBoxMsgProc; +} + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** diff --git a/grlib/checkbox.h b/grlib/checkbox.h new file mode 100644 index 0000000..4b89c1f --- /dev/null +++ b/grlib/checkbox.h @@ -0,0 +1,704 @@ +//***************************************************************************** +// +// checkbox.h - Prototypes for the check box widget. +// +// Copyright (c) 2008-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#ifndef __CHECKBOX_H__ +#define __CHECKBOX_H__ + +//***************************************************************************** +// +//! \addtogroup checkbox_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +// If building with a C++ compiler, make all of the definitions in this header +// have a C binding. +// +//***************************************************************************** +#ifdef __cplusplus +extern "C" +{ +#endif + +//***************************************************************************** +// +//! The structure that describes a check box widget. +// +//***************************************************************************** +typedef struct +{ + // + //! The generic widget information. + // + tWidget sBase; + + // + //! The style for this check box. This is a set of flags defined by + //! CB_STYLE_xxx. + // + uint16_t ui16Style; + + // + //! The size of the check box itself, not including the text and/or image + //! that accompanies it (in other words, the size of the actual box that is + //! checked or unchecked). + // + uint16_t ui16BoxSize; + + // + //! The 24-bit RGB color used to fill this check box, if CB_STYLE_FILL is + //! selected, and to use as the background color if CB_STYLE_TEXT_OPAQUE is + //! selected. + // + uint32_t ui32FillColor; + + // + //! The 24-bit RGB color used to outline this check box, if + //! CB_STYLE_OUTLINE is selected. + // + uint32_t ui32OutlineColor; + + // + //! The 24-bit RGB color used to draw text on this check box, if + //! CB_STYLE_TEXT is selected. + // + uint32_t ui32TextColor; + + // + //! The font used to draw the check box text, if CB_STYLE_TEXT is selected. + // + const tFont *psFont; + + // + //! A pointer to the text to draw on this check box, if CB_STYLE_TEXT is + //! selected. + // + const char *pcText; + + // + //! A pointer to the image to be drawn onto this check box, if CB_STYLE_IMG + //! is selected. + // + const uint8_t *pui8Image; + + // + //! A pointer to the function to be called when the check box is pressed. + //! This function is called when the state of the check box is changed. + // + void (*pfnOnChange)(tWidget *psWidget, uint32_t bSelected); +} +tCheckBoxWidget; + +//***************************************************************************** +// +//! This flag indicates that the check box should be outlined. +// +//***************************************************************************** +#define CB_STYLE_OUTLINE 0x0001 + +//***************************************************************************** +// +//! This flag indicates that the check box should be filled. +// +//***************************************************************************** +#define CB_STYLE_FILL 0x0002 + +//***************************************************************************** +// +//! This flag indicates that the check box should have text drawn on it. +// +//***************************************************************************** +#define CB_STYLE_TEXT 0x0004 + +//***************************************************************************** +// +//! This flag indicates that the check box should have an image drawn on it. +// +//***************************************************************************** +#define CB_STYLE_IMG 0x0008 + +//***************************************************************************** +// +//! This flag indicates that the check box text should be drawn opaque (in +//! other words, drawing the background pixels as well as the foreground +//! pixels). +// +//***************************************************************************** +#define CB_STYLE_TEXT_OPAQUE 0x0010 + +//***************************************************************************** +// +//! This flag indicates that the check box is selected. +// +//***************************************************************************** +#define CB_STYLE_SELECTED 0x0020 + +//***************************************************************************** +// +//! Declares an initialized check box widget data structure. +//! +//! \param psParent is a pointer to the parent widget. +//! \param psNext is a pointer to the sibling widget. +//! \param psChild is a pointer to the first child widget. +//! \param psDisplay is a pointer to the display on which to draw the check box. +//! \param i32X is the X coordinate of the upper left corner of the check box. +//! \param i32Y is the Y coordinate of the upper left corner of the check box. +//! \param i32Width is the width of the check box. +//! \param i32Height is the height of the check box. +//! \param ui16Style is the style to be applied to this check box. +//! \param ui16BoxSize is the size of the box that is checked. +//! \param ui32FillColor is the color used to fill in the check box. +//! \param ui32OutlineColor is the color used to outline the check box. +//! \param ui32TextColor is the color used to draw text on the check box. +//! \param psFont is a pointer to the font to be used to draw text on the check +//! box. +//! \param pcText is a pointer to the text to draw on this check box. +//! \param pui8Image is a pointer to the image to draw on this check box. +//! \param pfnOnChange is a pointer to the function that is called when the +//! check box is pressed. +//! +//! This macro provides an initialized check box widget data structure, which +//! can be used to construct the widget tree at compile time in global +//! variables (as opposed to run-time via function calls). This must be +//! assigned to a variable, such as: +//! +//! \verbatim +//! tCheckBoxWidget g_sCheckBox = CheckBoxStruct(...); +//! \endverbatim +//! +//! Or, in an array of variables: +//! +//! \verbatim +//! tCheckBoxWidget g_psCheckBoxes[] = +//! { +//! CheckBoxStruct(...), +//! CheckBoxStruct(...) +//! }; +//! \endverbatim +//! +//! \e ui16Style is the logical OR of the following: +//! +//! - \b #CB_STYLE_OUTLINE to indicate that the check box should be outlined. +//! - \b #CB_STYLE_FILL to indicate that the check box should be filled. +//! - \b #CB_STYLE_TEXT to indicate that the check box should have text drawn +//! on it (using \e psFont and \e pcText). +//! - \b #CB_STYLE_IMG to indicate that the check box should have an image +//! drawn on it (using \e pui8Image). +//! - \b #CB_STYLE_TEXT_OPAQUE to indicate that the check box text should be +//! drawn opaque (in other words, drawing the background pixels). +//! - \b #CB_STYLE_SELECTED to indicate that the check box is selected. +//! +//! \return Nothing; this is not a function. +// +//***************************************************************************** +#define CheckBoxStruct(psParent, psNext, psChild, psDisplay, i32X, i32Y, \ + i32Width, i32Height, ui16Style, ui16BoxSize, \ + ui32FillColor, ui32OutlineColor, ui32TextColor, psFont,\ + pcText, pui8Image, pfnOnChange) \ + { \ + { \ + sizeof(tCheckBoxWidget), \ + (tWidget *)(psParent), \ + (tWidget *)(psNext), \ + (tWidget *)(psChild), \ + psDisplay, \ + { \ + i32X, \ + i32Y, \ + (i32X) + (i32Width) - 1, \ + (i32Y) + (i32Height) - 1 \ + }, \ + CheckBoxMsgProc \ + }, \ + ui16Style, \ + ui16BoxSize, \ + ui32FillColor, \ + ui32OutlineColor, \ + ui32TextColor, \ + psFont, \ + pcText, \ + pui8Image, \ + pfnOnChange \ + } + +//***************************************************************************** +// +//! Declares an initialized variable containing a check box widget data +//! structure. +//! +//! \param sName is the name of the variable to be declared. +//! \param psParent is a pointer to the parent widget. +//! \param psNext is a pointer to the sibling widget. +//! \param psChild is a pointer to the first child widget. +//! \param psDisplay is a pointer to the display on which to draw the check box. +//! \param i32X is the X coordinate of the upper left corner of the check box. +//! \param i32Y is the Y coordinate of the upper left corner of the check box. +//! \param i32Width is the width of the check box. +//! \param i32Height is the height of the check box. +//! \param ui16Style is the style to be applied to this check box. +//! \param ui16BoxSize is the size of the box that is checked. +//! \param ui32FillColor is the color used to fill in the check box. +//! \param ui32OutlineColor is the color used to outline the check box. +//! \param ui32TextColor is the color used to draw text on the check box. +//! \param psFont is a pointer to the font to be used to draw text on the check +//! box. +//! \param pcText is a pointer to the text to draw on this check box. +//! \param pui8Image is a pointer to the image to draw on this check box. +//! \param pfnOnChange is a pointer to the function that is called when the +//! check box is pressed. +//! +//! This macro provides an initialized check box widget data structure, which +//! can be used to construct the widget tree at compile time in global +//! variables (as opposed to run-time via function calls). +//! +//! \e ui16Style is the logical OR of the following: +//! +//! - \b #CB_STYLE_OUTLINE to indicate that the check box should be outlined. +//! - \b #CB_STYLE_FILL to indicate that the check box should be filled. +//! - \b #CB_STYLE_TEXT to indicate that the check box should have text drawn +//! on it (using \e psFont and \e pcText). +//! - \b #CB_STYLE_IMG to indicate that the check box should have an image +//! drawn on it (using \e pui8Image). +//! - \b #CB_STYLE_TEXT_OPAQUE to indicate that the check box text should be +//! drawn opaque (in other words, drawing the background pixels). +//! - \b #CB_STYLE_SELECTED to indicate that the check box is selected. +//! +//! \return Nothing; this is not a function. +// +//***************************************************************************** +#define CheckBox(sName, psParent, psNext, psChild, psDisplay, i32X, i32Y, \ + i32Width, i32Height, ui16Style, ui16BoxSize, ui32FillColor, \ + ui32OutlineColor, ui32TextColor, psFont, pcText, pui8Image, \ + pfnOnChange) \ + tCheckBoxWidget sName = \ + CheckBoxStruct(psParent, psNext, psChild, psDisplay, i32X, i32Y, \ + i32Width, i32Height, ui16Style, ui16BoxSize, \ + ui32FillColor, ui32OutlineColor, ui32TextColor, \ + psFont, pcText, pui8Image, pfnOnChange) + +//***************************************************************************** +// +//! Sets size of the box to be checked. +//! +//! \param psWidget is a pointer to the check box widget to modify. +//! \param ui16Size is the size of the box, in pixels. +//! +//! This function sets the size of the box that is drawn as part of the check +//! box. +//! +//! \return None. +// +//***************************************************************************** +#define CheckBoxBoxSizeSet(psWidget, ui16Size) \ + do \ + { \ + tCheckBoxWidget *psW = psWidget; \ + psW->ui16BoxSize = ui16Size; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the function to call when this check box widget is toggled. +//! +//! \param psWidget is a pointer to the check box widget to modify. +//! \param pfnOnChg is a pointer to the function to call. +//! +//! This function sets the function to be called when this check box is +//! toggled. +//! +//! \return None. +// +//***************************************************************************** +#define CheckBoxCallbackSet(psWidget, pfnOnChg) \ + do \ + { \ + tCheckBoxWidget *psW = psWidget; \ + psW->pfnOnChange = pfnOnChg; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the fill color of a check box widget. +//! +//! \param psWidget is a pointer to the check box widget to be modified. +//! \param ui32Color is the 24-bit RGB color to use to fill the check box. +//! +//! This function changes the color used to fill the check box on the display. +//! The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define CheckBoxFillColorSet(psWidget, ui32Color) \ + do \ + { \ + tCheckBoxWidget *psW = psWidget; \ + psW->ui32FillColor = ui32Color; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables filling of a check box widget. +//! +//! \param psWidget is a pointer to the check box widget to modify. +//! +//! This function disables the filling of a check box widget. The display is +//! not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define CheckBoxFillOff(psWidget) \ + do \ + { \ + tCheckBoxWidget *psW = psWidget; \ + psW->ui16Style &= ~(CB_STYLE_FILL); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables filling of a check box widget. +//! +//! \param psWidget is a pointer to the check box widget to modify. +//! +//! This function enables the filling of a check box widget. The display is +//! not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define CheckBoxFillOn(psWidget) \ + do \ + { \ + tCheckBoxWidget *psW = psWidget; \ + psW->ui16Style |= CB_STYLE_FILL; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the font for a check box widget. +//! +//! \param psWidget is a pointer to the check box widget to modify. +//! \param pFnt is a pointer to the font to use to draw text on the check box. +//! +//! This function changes the font used to draw text on the check box. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define CheckBoxFontSet(psWidget, pFnt) \ + do \ + { \ + tCheckBoxWidget *psW = psWidget; \ + const tFont *pF = pFnt; \ + psW->psFont = pF; \ + } \ + while(0) + +//***************************************************************************** +// +//! Changes the image drawn on a check box widget. +//! +//! \param psWidget is a pointer to the check box widget to be modified. +//! \param pImg is a pointer to the image to draw onto the check box. +//! +//! This function changes the image that is drawn onto the check box. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define CheckBoxImageSet(psWidget, pImg) \ + do \ + { \ + tCheckBoxWidget *psW = psWidget; \ + const uint8_t *pI = pImg; \ + psW->pui8Image = pI; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables the image on a check box widget. +//! +//! \param psWidget is a pointer to the check box widget to modify. +//! +//! This function disables the drawing of an image on a check box widget. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define CheckBoxImageOff(psWidget) \ + do \ + { \ + tCheckBoxWidget *psW = psWidget; \ + psW->ui16Style &= ~(CB_STYLE_IMG); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables the image on a check box widget. +//! +//! \param psWidget is a pointer to the check box widget to modify. +//! +//! This function enables the drawing of an image on a check box widget. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define CheckBoxImageOn(psWidget) \ + do \ + { \ + tCheckBoxWidget *psW = psWidget; \ + psW->ui16Style |= CB_STYLE_IMG; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the outline color of a check box widget. +//! +//! \param psWidget is a pointer to the check box widget to be modified. +//! \param ui32Color is the 24-bit RGB color to use to outline the check box. +//! +//! This function changes the color used to outline the check box on the +//! display. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define CheckBoxOutlineColorSet(psWidget, ui32Color) \ + do \ + { \ + tCheckBoxWidget *psW = psWidget; \ + psW->ui32OutlineColor = ui32Color; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables outlining of a check box widget. +//! +//! \param psWidget is a pointer to the check box widget to modify. +//! +//! This function disables the outlining of a check box widget. The display is +//! not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define CheckBoxOutlineOff(psWidget) \ + do \ + { \ + tCheckBoxWidget *psW = psWidget; \ + psW->ui16Style &= ~(CB_STYLE_OUTLINE); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables outlining of a check box widget. +//! +//! \param psWidget is a pointer to the check box widget to modify. +//! +//! This function enables the outlining of a check box widget. The display is +//! not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define CheckBoxOutlineOn(psWidget) \ + do \ + { \ + tCheckBoxWidget *psW = psWidget; \ + psW->ui16Style |= CB_STYLE_OUTLINE; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the text color of a check box widget. +//! +//! \param psWidget is a pointer to the check box widget to be modified. +//! \param ui32Color is the 24-bit RGB color to use to draw text on the check +//! box. +//! +//! This function changes the color used to draw text on the check box on the +//! display. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define CheckBoxTextColorSet(psWidget, ui32Color) \ + do \ + { \ + tCheckBoxWidget *psW = psWidget; \ + psW->ui32TextColor = ui32Color; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables the text on a check box widget. +//! +//! \param psWidget is a pointer to the check box widget to modify. +//! +//! This function disables the drawing of text on a check box widget. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define CheckBoxTextOff(psWidget) \ + do \ + { \ + tCheckBoxWidget *psW = psWidget; \ + psW->ui16Style &= ~(CB_STYLE_TEXT); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables the text on a check box widget. +//! +//! \param psWidget is a pointer to the check box widget to modify. +//! +//! This function enables the drawing of text on a check box widget. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define CheckBoxTextOn(psWidget) \ + do \ + { \ + tCheckBoxWidget *psW = psWidget; \ + psW->ui16Style |= CB_STYLE_TEXT; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables opaque text on a check box widget. +//! +//! \param psWidget is a pointer to the check box widget to modify. +//! +//! This function disables the use of opaque text on this check box. When not +//! using opaque text, only the foreground pixels of the text are drawn on the +//! screen, allowing the previously drawn pixels (such as the check box image) +//! to show through the text. +//! +//! \return None. +// +//***************************************************************************** +#define CheckBoxTextOpaqueOff(psWidget) \ + do \ + { \ + tCheckBoxWidget *psW = psWidget; \ + psW->ui16Style &= ~(CB_STYLE_TEXT_OPAQUE); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables opaque text on a check box widget. +//! +//! \param psWidget is a pointer to the check box widget to modify. +//! +//! This function enables the use of opaque text on this check box. When using +//! opaque text, both the foreground and background pixels of the text are +//! drawn on the screen, blocking out the previously drawn pixels. +//! +//! \return None. +// +//***************************************************************************** +#define CheckBoxTextOpaqueOn(psWidget) \ + do \ + { \ + tCheckBoxWidget *psW = psWidget; \ + psW->ui16Style |= CB_STYLE_TEXT_OPAQUE; \ + } \ + while(0) + +//***************************************************************************** +// +//! Changes the text drawn on a check box widget. +//! +//! \param psWidget is a pointer to the check box widget to be modified. +//! \param pcTxt is a pointer to the text to draw onto the check box. +//! +//! This function changes the text that is drawn onto the check box. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define CheckBoxTextSet(psWidget, pcTxt) \ + do \ + { \ + tCheckBoxWidget *psW = psWidget; \ + const char *pcT = pcTxt; \ + psW->pcText = pcT; \ + } \ + while(0) + +//***************************************************************************** +// +// Prototypes for the check box widget APIs. +// +//***************************************************************************** +extern int32_t CheckBoxMsgProc(tWidget *psWidget, uint32_t ui32Msg, + uint32_t ui32Param1, uint32_t ui32Param2); +extern void CheckBoxInit(tCheckBoxWidget *psWidget, const tDisplay *psDisplay, + int32_t i32X, int32_t i32Y, int32_t i32Width, + int32_t i32Height); + +//***************************************************************************** +// +// Mark the end of the C bindings section for C++ compilers. +// +//***************************************************************************** +#ifdef __cplusplus +} +#endif + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** + +#endif // __CHECKBOX_H__ diff --git a/grlib/circle.c b/grlib/circle.c new file mode 100644 index 0000000..a2d934f --- /dev/null +++ b/grlib/circle.c @@ -0,0 +1,564 @@ +//***************************************************************************** +// +// circle.c - Routines for drawing circles. +// +// Copyright (c) 2007-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#include +#include +#include "driverlib/debug.h" +#include "grlib/grlib.h" + +//***************************************************************************** +// +//! \addtogroup primitives_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +//! Draws a circle. +//! +//! \param pContext is a pointer to the drawing context to use. +//! \param i32X is the X coordinate of the center of the circle. +//! \param i32Y is the Y coordinate of the center of the circle. +//! \param i32Radius is the radius of the circle. +//! +//! This function draws a circle, utilizing the Bresenham circle drawing +//! algorithm. The extent of the circle is from \e i32X - \e i32Radius to +//! \e i32X + \e i32Radius and \e i32Y - \e i32Radius to \e i32Y + +//! \e i32Radius, inclusive. +//! +//! \return None. +// +//***************************************************************************** +void +GrCircleDraw(const tContext *pContext, int32_t i32X, int32_t i32Y, + int32_t i32Radius) +{ + int_fast32_t i32A, i32B, i32D, i32X1, i32Y1; + + // + // Check the arguments. + // + ASSERT(pContext); + + // + // Initialize the variables that control the Bresenham circle drawing + // algorithm. + // + i32A = 0; + i32B = i32Radius; + i32D = 3 - (2 * i32Radius); + + // + // Loop until the A delta is greater than the B delta, meaning that the + // entire circle has been drawn. + // + while(i32A <= i32B) + { + // + // Determine the row when subtracting the A delta. + // + i32Y1 = i32Y - i32A; + + // + // See if this row is within the clipping region. + // + if((i32Y1 >= pContext->sClipRegion.i16YMin) && + (i32Y1 <= pContext->sClipRegion.i16YMax)) + { + // + // Determine the column when subtracting the B delta. + // + i32X1 = i32X - i32B; + + // + // If this column is within the clipping region, then draw a pixel + // at that position. + // + if((i32X1 >= pContext->sClipRegion.i16XMin) && + (i32X1 <= pContext->sClipRegion.i16XMax)) + { + GrPixelDraw(pContext, i32X1, i32Y1); + } + + // + // Determine the column when adding the B delta. + // + i32X1 = i32X + i32B; + + // + // If this column is within the clipping region, then draw a pixel + // at that position. + // + if((i32X1 >= pContext->sClipRegion.i16XMin) && + (i32X1 <= pContext->sClipRegion.i16XMax)) + { + GrPixelDraw(pContext, i32X1, i32Y1); + } + } + + // + // Determine the row when adding the A delta. + // + i32Y1 = i32Y + i32A; + + // + // See if this row is within the clipping region, and the A delta is + // not zero (otherwise, it will be the same row as when the A delta was + // subtracted). + // + if((i32Y1 >= pContext->sClipRegion.i16YMin) && + (i32Y1 <= pContext->sClipRegion.i16YMax) && + (i32A != 0)) + { + // + // Determine the column when subtracting the B delta. + // + i32X1 = i32X - i32B; + + // + // If this column is within the clipping region, then draw a pixel + // at that position. + // + if((i32X1 >= pContext->sClipRegion.i16XMin) && + (i32X1 <= pContext->sClipRegion.i16XMax)) + { + GrPixelDraw(pContext, i32X1, i32Y1); + } + + // + // Determine the column when adding the B delta. + // + i32X1 = i32X + i32B; + + // + // If this column is within the clipping region, then draw a pixel + // at that position. + // + if((i32X1 >= pContext->sClipRegion.i16XMin) && + (i32X1 <= pContext->sClipRegion.i16XMax)) + { + GrPixelDraw(pContext, i32X1, i32Y1); + } + } + + // + // Only draw the complementary pixels if the A and B deltas are + // different (otherwise, they describe the same set of pixels). + // + if(i32A != i32B) + { + // + // Determine the row when subtracting the B delta. + // + i32Y1 = i32Y - i32B; + + // + // See if this row is within the clipping region. + // + if((i32Y1 >= pContext->sClipRegion.i16YMin) && + (i32Y1 <= pContext->sClipRegion.i16YMax)) + { + // + // Determine the column when subtracting the a delta. + // + i32X1 = i32X - i32A; + + // + // If this column is within the clipping region, then draw a + // pixel at that position. + // + if((i32X1 >= pContext->sClipRegion.i16XMin) && + (i32X1 <= pContext->sClipRegion.i16XMax)) + { + GrPixelDraw(pContext, i32X1, i32Y1); + } + + // + // Only draw the mirrored pixel if the A delta is non-zero + // (otherwise, it will be the same pixel). + // + if(i32A != 0) + { + // + // Determine the column when adding the A delta. + // + i32X1 = i32X + i32A; + + // + // If this column is within the clipping region, then draw + // a pixel at that position. + // + if((i32X1 >= pContext->sClipRegion.i16XMin) && + (i32X1 <= pContext->sClipRegion.i16XMax)) + { + GrPixelDraw(pContext, i32X1, i32Y1); + } + } + } + + // + // Determine the row when adding the B delta. + // + i32Y1 = i32Y + i32B; + + // + // See if this row is within the clipping region. + // + if((i32Y1 >= pContext->sClipRegion.i16YMin) && + (i32Y1 <= pContext->sClipRegion.i16YMax)) + { + // + // Determine the column when subtracting the A delta. + // + i32X1 = i32X - i32A; + + // + // If this column is within the clipping region, then draw a + // pixel at that position. + // + if((i32X1 >= pContext->sClipRegion.i16XMin) && + (i32X1 <= pContext->sClipRegion.i16XMax)) + { + GrPixelDraw(pContext, i32X1, i32Y1); + } + + // + // Only draw the mirrored pixel if the A delta is non-zero + // (otherwise, it will be the same pixel). + // + if(i32A != 0) + { + // + // Determine the column when adding the A delta. + // + i32X1 = i32X + i32A; + + // + // If this column is within the clipping region, then draw + // a pixel at that position. + // + if((i32X1 >= pContext->sClipRegion.i16XMin) && + (i32X1 <= pContext->sClipRegion.i16XMax)) + { + GrPixelDraw(pContext, i32X1, i32Y1); + } + } + } + } + + // + // See if the error term is negative. + // + if(i32D < 0) + { + // + // Since the error term is negative, adjust it based on a move in + // only the A delta. + // + i32D += (4 * i32A) + 6; + } + else + { + // + // Since the error term is non-negative, adjust it based on a move + // in both the A and B deltas. + // + i32D += (4 * (i32A - i32B)) + 10; + + // + // Decrement the B delta. + // + i32B -= 1; + } + + // + // Increment the A delta. + // + i32A++; + } +} + +//***************************************************************************** +// +//! Draws a filled circle. +//! +//! \param pContext is a pointer to the drawing context to use. +//! \param i32X is the X coordinate of the center of the circle. +//! \param i32Y is the Y coordinate of the center of the circle. +//! \param i32Radius is the radius of the circle. +//! +//! This function draws a filled circle, utilizing the Bresenham circle drawing +//! algorithm. The extent of the circle is from \e i32X - \e i32Radius to +//! \e i32X + \e i32Radius and \e i32Y - \e i32Radius to \e i32Y + +//! \e i32Radius, inclusive. +//! +//! \return None. +// +//***************************************************************************** +void +GrCircleFill(const tContext *pContext, int32_t i32X, int32_t i32Y, + int32_t i32Radius) +{ + int_fast32_t i32A, i32B, i32D, i32X1, i32X2, i32Y1; + + // + // Check the arguments. + // + ASSERT(pContext); + + // + // Initialize the variables that control the Bresenham circle drawing + // algorithm. + // + i32A = 0; + i32B = i32Radius; + i32D = 3 - (2 * i32Radius); + + // + // Loop until the A delta is greater than the B delta, meaning that the + // entire circle has been filled. + // + while(i32A <= i32B) + { + // + // Determine the row when subtracting the A delta. + // + i32Y1 = i32Y - i32A; + + // + // See if this row is within the clipping region. + // + if((i32Y1 >= pContext->sClipRegion.i16YMin) && + (i32Y1 <= pContext->sClipRegion.i16YMax)) + { + // + // Determine the column when subtracting the B delta, and move it + // to the left edge of the clipping region if it is to the left of + // the clipping region. + // + i32X1 = i32X - i32B; + if(i32X1 < pContext->sClipRegion.i16XMin) + { + i32X1 = pContext->sClipRegion.i16XMin; + } + + // + // Determine the column when adding the B delta, and move it to the + // right edge of the clipping region if it is to the right of the + // clipping region. + // + i32X2 = i32X + i32B; + if(i32X2 > pContext->sClipRegion.i16XMax) + { + i32X2 = pContext->sClipRegion.i16XMax; + } + + // + // Draw a horizontal line if this portion of the circle is within + // the clipping region. + // + if(i32X1 <= i32X2) + { + GrLineDrawH(pContext, i32X1, i32X2, i32Y1); + } + } + + // + // Determine the row when adding the A delta. + // + i32Y1 = i32Y + i32A; + + // + // See if this row is within the clipping region, and the A delta is + // not zero (otherwise, this describes the same row of the circle). + // + if((i32Y1 >= pContext->sClipRegion.i16YMin) && + (i32Y1 <= pContext->sClipRegion.i16YMax) && + (i32A != 0)) + { + // + // Determine the column when subtracting the B delta, and move it + // to the left edge of the clipping region if it is to the left of + // the clipping region. + // + i32X1 = i32X - i32B; + if(i32X1 < pContext->sClipRegion.i16XMin) + { + i32X1 = pContext->sClipRegion.i16XMin; + } + + // + // Determine the column when adding the B delta, and move it to the + // right edge of the clipping region if it is to the right of the + // clipping region. + // + i32X2 = i32X + i32B; + if(i32X2 > pContext->sClipRegion.i16XMax) + { + i32X2 = pContext->sClipRegion.i16XMax; + } + + // + // Draw a horizontal line if this portion of the circle is within + // the clipping region. + // + if(i32X1 <= i32X2) + { + GrLineDrawH(pContext, i32X1, i32X2, i32Y1); + } + } + + // + // Only draw the complementary lines if the B delta is about to change + // and the A and B delta are different (otherwise, they describe the + // same set of pixels). + // + if((i32D >= 0) && (i32A != i32B)) + { + // + // Determine the row when subtracting the B delta. + // + i32Y1 = i32Y - i32B; + + // + // See if this row is within the clipping region. + // + if((i32Y1 >= pContext->sClipRegion.i16YMin) && + (i32Y1 <= pContext->sClipRegion.i16YMax)) + { + // + // Determine the column when subtracting the A delta, and move + // it to the left edge of the clipping regino if it is to the + // left of the clipping region. + // + i32X1 = i32X - i32A; + if(i32X1 < pContext->sClipRegion.i16XMin) + { + i32X1 = pContext->sClipRegion.i16XMin; + } + + // + // Determine the column when adding the A delta, and move it to + // the right edge of the clipping region if it is to the right + // of the clipping region. + // + i32X2 = i32X + i32A; + if(i32X2 > pContext->sClipRegion.i16XMax) + { + i32X2 = pContext->sClipRegion.i16XMax; + } + + // + // Draw a horizontal line if this portion of the circle is + // within the clipping region. + // + if(i32X1 <= i32X2) + { + GrLineDrawH(pContext, i32X1, i32X2, i32Y1); + } + } + + // + // Determine the row when adding the B delta. + // + i32Y1 = i32Y + i32B; + + // + // See if this row is within the clipping region. + // + if((i32Y1 >= pContext->sClipRegion.i16YMin) && + (i32Y1 <= pContext->sClipRegion.i16YMax)) + { + // + // Determine the column when subtracting the A delta, and move + // it to the left edge of the clipping region if it is to the + // left of the clipping region. + // + i32X1 = i32X - i32A; + if(i32X1 < pContext->sClipRegion.i16XMin) + { + i32X1 = pContext->sClipRegion.i16XMin; + } + + // + // Determine the column when adding the A delta, and move it to + // the right edge of the clipping region if it is to the right + // of the clipping region. + // + i32X2 = i32X + i32A; + if(i32X2 > pContext->sClipRegion.i16XMax) + { + i32X2 = pContext->sClipRegion.i16XMax; + } + + // + // Draw a horizontal line if this portion of the circle is + // within the clipping region. + // + if(i32X1 <= i32X2) + { + GrLineDrawH(pContext, i32X1, i32X2, i32Y1); + } + } + } + + // + // See if the error term is negative. + // + if(i32D < 0) + { + // + // Since the error term is negative, adjust it based on a move in + // only the A delta. + // + i32D += (4 * i32A) + 6; + } + else + { + // + // Since the error term is non-negative, adjust it based on a move + // in both the A and B deltas. + // + i32D += (4 * (i32A - i32B)) + 10; + + // + // Decrement the B delta. + // + i32B -= 1; + } + + // + // Increment the A delta. + // + i32A++; + } +} + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** diff --git a/grlib/container.c b/grlib/container.c new file mode 100644 index 0000000..81792b8 --- /dev/null +++ b/grlib/container.c @@ -0,0 +1,322 @@ +//***************************************************************************** +// +// container.c - Generic container widget. +// +// Copyright (c) 2008-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#include +#include +#include "driverlib/debug.h" +#include "grlib/grlib.h" +#include "grlib/widget.h" +#include "grlib/container.h" + +//***************************************************************************** +// +//! \addtogroup container_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +//! Draws a container widget. +//! +//! \param psWidget is a pointer to the container widget to be drawn. +//! +//! This function draws a container widget on the display. This is called in +//! response to a \b #WIDGET_MSG_PAINT message. +//! +//! \return None. +// +//***************************************************************************** +static void +ContainerPaint(tWidget *psWidget) +{ + tContainerWidget *pContainer; + int32_t i32X1, i32X2, i32Y; + tContext sCtx; + + // + // Check the arguments. + // + ASSERT(psWidget); + + // + // Convert the generic widget pointer into a container widget pointer. + // + pContainer = (tContainerWidget *)psWidget; + + // + // Initialize a drawing context. + // + GrContextInit(&sCtx, psWidget->psDisplay); + + // + // Initialize the clipping region based on the extents of this container. + // + GrContextClipRegionSet(&sCtx, &(psWidget->sPosition)); + + // + // See if the container fill style is selected. + // + if(pContainer->ui32Style & CTR_STYLE_FILL) + { + // + // Fill the container with the fill color. + // + GrContextForegroundSet(&sCtx, pContainer->ui32FillColor); + GrRectFill(&sCtx, &(psWidget->sPosition)); + } + + // + // See if the container text style is selected. + // + if(pContainer->ui32Style & CTR_STYLE_TEXT) + { + // + // Set the font and colors used to draw the container text. + // + GrContextFontSet(&sCtx, pContainer->psFont); + GrContextForegroundSet(&sCtx, pContainer->ui32TextColor); + GrContextBackgroundSet(&sCtx, pContainer->ui32FillColor); + + // + // Get the width of the container text. + // + i32X2 = GrStringWidthGet(&sCtx, pContainer->pcText, -1); + + // + // Determine the position of the text. The position depends on the + // the width of the string and if centering is enabled. + // + if(pContainer->ui32Style & CTR_STYLE_TEXT_CENTER) + { + i32X1 = (psWidget->sPosition.i16XMin + + ((psWidget->sPosition.i16XMax - + psWidget->sPosition.i16XMin + 1 - i32X2 - 8) / 2)); + } + else + { + i32X1 = psWidget->sPosition.i16XMin + 4; + } + + // + // Draw the container text. + // + GrStringDraw(&sCtx, pContainer->pcText, -1, i32X1 + 4, + psWidget->sPosition.i16YMin, + pContainer->ui32Style & CTR_STYLE_TEXT_OPAQUE); + + // + // See if the container outline style is selected. + // + if(pContainer->ui32Style & CTR_STYLE_OUTLINE) + { + // + // Get the position of the right side of the string. + // + i32X2 = i32X1 + i32X2 + 8; + + // + // Get the position of the vertical center of the text. + // + i32Y = (psWidget->sPosition.i16YMin + + (GrFontBaselineGet(pContainer->psFont) / 2)); + + // + // Set the color to draw the outline. + // + GrContextForegroundSet(&sCtx, pContainer->ui32OutlineColor); + + // + // Draw the outline around the container widget, leaving a gap + // where the text reside across the top of the widget. + // + GrLineDraw(&sCtx, i32X1, i32Y, psWidget->sPosition.i16XMin, i32Y); + GrLineDraw(&sCtx, psWidget->sPosition.i16XMin, i32Y, + psWidget->sPosition.i16XMin, + psWidget->sPosition.i16YMax); + GrLineDraw(&sCtx, psWidget->sPosition.i16XMin, + psWidget->sPosition.i16YMax, + psWidget->sPosition.i16XMax, + psWidget->sPosition.i16YMax); + GrLineDraw(&sCtx, psWidget->sPosition.i16XMax, + psWidget->sPosition.i16YMax, + psWidget->sPosition.i16XMax, i32Y); + GrLineDraw(&sCtx, psWidget->sPosition.i16XMax, i32Y, i32X2, i32Y); + } + } + + // + // Otherwise, see if the container outline style is selected. + // + else if(pContainer->ui32Style & CTR_STYLE_OUTLINE) + { + // + // Outline the container with the outline color. + // + GrContextForegroundSet(&sCtx, pContainer->ui32OutlineColor); + GrRectDraw(&sCtx, &(psWidget->sPosition)); + } +} + +//***************************************************************************** +// +//! Handles messages for a container widget. +//! +//! \param psWidget is a pointer to the container widget. +//! \param ui32Msg is the message. +//! \param ui32Param1 is the first parameter to the message. +//! \param ui32Param2 is the second parameter to the message. +//! +//! This function receives messages intended for this container widget and +//! processes them accordingly. The processing of the message varies based on +//! the message in question. +//! +//! Unrecognized messages are handled by calling WidgetDefaultMsgProc(). +//! +//! \return Returns a value appropriate to the supplied message. +// +//***************************************************************************** +int32_t +ContainerMsgProc(tWidget *psWidget, uint32_t ui32Msg, uint32_t ui32Param1, + uint32_t ui32Param2) +{ + // + // Check the arguments. + // + ASSERT(psWidget); + + // + // Determine which message is being sent. + // + switch(ui32Msg) + { + // + // The widget paint request has been sent. + // + case WIDGET_MSG_PAINT: + { + // + // Handle the widget paint request. + // + ContainerPaint(psWidget); + + // + // Return one to indicate that the message was successfully + // processed. + // + return(1); + } + + // + // An unknown request has been sent. + // + default: + { + // + // Let the default message handler process this message. + // + return(WidgetDefaultMsgProc(psWidget, ui32Msg, ui32Param1, + ui32Param2)); + } + } +} + +//***************************************************************************** +// +//! Initializes a container widget. +//! +//! \param psWidget is a pointer to the container widget to initialize. +//! \param psDisplay is a pointer to the display on which to draw the container +//! widget. +//! \param i32X is the X coordinate of the upper left corner of the container +//! widget. +//! \param i32Y is the Y coordinate of the upper left corner of the container +//! widget. +//! \param i32Width is the width of the container widget. +//! \param i32Height is the height of the container widget. +//! +//! This function initializes a container widget, preparing it for placement +//! into the widget tree. +//! +//! \return none. +// +//***************************************************************************** +void +ContainerInit(tContainerWidget *psWidget, const tDisplay *psDisplay, + int32_t i32X, int32_t i32Y, int32_t i32Width, int32_t i32Height) +{ + uint32_t ui32Idx; + + // + // Check the arguments. + // + ASSERT(psWidget); + ASSERT(psDisplay); + + // + // Clear out the widget structure. + // + for(ui32Idx = 0; ui32Idx < sizeof(tContainerWidget); ui32Idx += 4) + { + ((uint32_t *)psWidget)[ui32Idx / 4] = 0; + } + + // + // Set the size of the container widget structure. + // + psWidget->sBase.i32Size = sizeof(tContainerWidget); + + // + // Mark this widget as fully disconnected. + // + psWidget->sBase.psParent = 0; + psWidget->sBase.psNext = 0; + psWidget->sBase.psChild = 0; + + // + // Save the display pointer. + // + psWidget->sBase.psDisplay = psDisplay; + + // + // Set the extents of this container widget. + // + psWidget->sBase.sPosition.i16XMin = i32X; + psWidget->sBase.sPosition.i16YMin = i32Y; + psWidget->sBase.sPosition.i16XMax = i32X + i32Width - 1; + psWidget->sBase.sPosition.i16YMax = i32Y + i32Height - 1; + + // + // Use the container widget message handler to process messages to this + // container widget. + // + psWidget->sBase.pfnMsgProc = ContainerMsgProc; +} + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** diff --git a/grlib/container.h b/grlib/container.h new file mode 100644 index 0000000..be7698b --- /dev/null +++ b/grlib/container.h @@ -0,0 +1,615 @@ +//***************************************************************************** +// +// container.h - Prototypes for the container widget. +// +// Copyright (c) 2008-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#ifndef __CONTAINER_H__ +#define __CONTAINER_H__ + +//***************************************************************************** +// +//! \addtogroup container_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +// If building with a C++ compiler, make all of the definitions in this header +// have a C binding. +// +//***************************************************************************** +#ifdef __cplusplus +extern "C" +{ +#endif + +//***************************************************************************** +// +//! The structure that describes a container widget. +// +//***************************************************************************** +typedef struct +{ + // + //! The generic widget information. + // + tWidget sBase; + + // + //! The style for this widget. This is a set of flags defined by + //! CTR_STYLE_xxx. + // + uint32_t ui32Style; + + // + //! The 24-bit RGB color used to fill this container widget, if + //! CTR_STYLE_FILL is selected, and to use as the background color if + //! CTR_STYLE_TEXT_OPAQUE is selected. + // + uint32_t ui32FillColor; + + // + //! The 24-bit RGB color used to outline this container widget, if + //! CTR_STYLE_OUTLINE is selected. + // + uint32_t ui32OutlineColor; + + // + //! The 24-bit RGB color used to draw text on this container widget, if + //! CTR_STYLE_TEXT is selected. + // + uint32_t ui32TextColor; + + // + //! A pointer to the font used to render the container text, if + //! CTR_STYLE_TEXT is selected. + // + const tFont *psFont; + + // + //! A pointer to the text to draw on this container widget, if + //! CTR_STYLE_TEXT is selected. + // + const char *pcText; +} +tContainerWidget; + +//***************************************************************************** +// +//! This flag indicates that the container widget should be outlined. +// +//***************************************************************************** +#define CTR_STYLE_OUTLINE 0x00000001 + +//***************************************************************************** +// +//! This flag indicates that the container widget should be filled. +// +//***************************************************************************** +#define CTR_STYLE_FILL 0x00000002 + +//***************************************************************************** +// +//! This flag indicates that the container widget should have text drawn on it. +// +//***************************************************************************** +#define CTR_STYLE_TEXT 0x00000004 + +//***************************************************************************** +// +//! This flag indicates that the container text should be drawn opaque (in +//! other words, drawing the background pixels as well as the foreground +//! pixels). +// +//***************************************************************************** +#define CTR_STYLE_TEXT_OPAQUE 0x00000008 + +//***************************************************************************** +// +//! This flag indicates that the container text should be drawn centered +//! within the width of the container. +// +//***************************************************************************** +#define CTR_STYLE_TEXT_CENTER 0x00000010 + +//***************************************************************************** +// +//! Declares an initialized container widget data structure. +//! +//! \param psParent is a pointer to the parent widget. +//! \param psNext is a pointer to the sibling widget. +//! \param psChild is a pointer to the first child widget. +//! \param psDisplay is a pointer to the display on which to draw the container +//! widget. +//! \param i32X is the X coordinate of the upper left corner of the container +//! widget. +//! \param i32Y is the Y coordinate of the upper left corner of the container +//! widget. +//! \param i32Width is the width of the container widget. +//! \param i32Height is the height of the container widget. +//! \param ui32Style is the style to be applied to the container widget. +//! \param ui32FillColor is the color used to fill in the container widget. +//! \param ui32OutlineColor is the color used to outline the container widget. +//! \param ui32TextColor is the color used to draw text on the container +//! widget. +//! \param psFont is a pointer to the font to be used to draw text on the +//! container widget. +//! \param pcText is a pointer to the text to draw on the container widget. +//! +//! This macro provides an initialized container widget data structure, which +//! can be used to construct the widget tree at compile time in global +//! variables (as opposed to run-time via function calls). This must be +//! assigned to a variable, such as: +//! +//! \verbatim +//! tContainerWidget g_sContainer = ContainerStruct(...); +//! \endverbatim +//! +//! Or, in an array of variables: +//! +//! \verbatim +//! tContainerWidget g_psContainers[] = +//! { +//! ContainerStruct(...), +//! ContainerStruct(...) +//! }; +//! \endverbatim +//! +//! \e ui32Style is the logical OR of the following: +//! +//! - \b #CTR_STYLE_OUTLINE to indicate that the container widget should be +//! outlined. +//! - \b #CTR_STYLE_FILL to indicate that the container widget should be +//! filled. +//! - \b #CTR_STYLE_TEXT to indicate that the container widget should have text +//! drawn on it (using \e psFont and \e pcText). +//! - \b #CTR_STYLE_TEXT_OPAQUE to indicate that the container widget text +//! should be drawn opaque (in other words, drawing the background pixels). +//! - \b #CTR_STYLE_TEXT_CENTER to indicate that the container widget text +//! should be drawn centered horizontally. +//! +//! \return Nothing; this is not a function. +// +//***************************************************************************** +#define ContainerStruct(psParent, psNext, psChild, psDisplay, i32X, i32Y, \ + i32Width, i32Height, ui32Style, ui32FillColor, \ + ui32OutlineColor, ui32TextColor, psFont, pcText) \ + { \ + { \ + sizeof(tContainerWidget), \ + (tWidget *)(psParent), \ + (tWidget *)(psNext), \ + (tWidget *)(psChild), \ + psDisplay, \ + { \ + i32X, \ + i32Y, \ + (i32X) + (i32Width) - 1, \ + (i32Y) + (i32Height) - 1 \ + }, \ + ContainerMsgProc \ + }, \ + ui32Style, \ + ui32FillColor, \ + ui32OutlineColor, \ + ui32TextColor, \ + psFont, \ + pcText \ + } + +//***************************************************************************** +// +//! Declares an initialized variable containing a container widget data +//! structure. +//! +//! \param sName is the name of the variable to be declared. +//! \param psParent is a pointer to the parent widget. +//! \param psNext is a pointer to the sibling widget. +//! \param psChild is a pointer to the first child widget. +//! \param psDisplay is a pointer to the display on which to draw the container +//! widget. +//! \param i32X is the X coordinate of the upper left corner of the container +//! widget. +//! \param i32Y is the Y coordinate of the upper left corner of the container +//! widget. +//! \param i32Width is the width of the container widget. +//! \param i32Height is the height of the container widget. +//! \param ui32Style is the style to be applied to the container widget. +//! \param ui32FillColor is the color used to fill in the container widget. +//! \param ui32OutlineColor is the color used to outline the container widget. +//! \param ui32TextColor is the color used to draw text on the container +//! widget. +//! \param psFont is a pointer to the font to be used to draw text on the +//! container widget. +//! \param pcText is a pointer to the text to draw on the container widget. +//! +//! This macro provides an initialized container widget data structure, which +//! can be used to construct the widget tree at compile time in global +//! variables (as opposed to run-time via function calls). +//! +//! \e ui32Style is the logical OR of the following: +//! +//! - \b #CTR_STYLE_OUTLINE to indicate that the container widget should be +//! outlined. +//! - \b #CTR_STYLE_FILL to indicate that the container widget should be +//! filled. +//! - \b #CTR_STYLE_TEXT to indicate that the container widget should have text +//! drawn on it (using \e psFont and \e pcText). +//! - \b #CTR_STYLE_TEXT_OPAQUE to indicate that the container widget text +//! should be drawn opaque (in other words, drawing the background pixels). +//! - \b #CTR_STYLE_TEXT_CENTER to indicate that the container widget text +//! should be drawn centered horizontally. +//! +//! \return Nothing; this is not a function. +// +//***************************************************************************** +#define Container(sName, psParent, psNext, psChild, psDisplay, i32X, i32Y, \ + i32Width, i32Height, ui32Style, ui32FillColor, \ + ui32OutlineColor, ui32TextColor, psFont, pcText) \ + tContainerWidget sName = \ + ContainerStruct(psParent, psNext, psChild, psDisplay, i32X, i32Y, \ + i32Width, i32Height, ui32Style, ui32FillColor, \ + ui32OutlineColor, ui32TextColor, psFont, pcText) + +//***************************************************************************** +// +//! Sets the fill color of a container widget. +//! +//! \param psWidget is a pointer to the container widget to be modified. +//! \param ui32Color is the 24-bit RGB color to use to fill the container +//! widget. +//! +//! This function changes the color used to fill the container widget on the +//! display. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ContainerFillColorSet(psWidget, ui32Color) \ + do \ + { \ + tContainerWidget *psW = psWidget; \ + psW->ui32FillColor = ui32Color; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables filling of a container widget. +//! +//! \param psWidget is a pointer to the container widget to modify. +//! +//! This function disables the filling of a container widget. The display is +//! not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ContainerFillOff(psWidget) \ + do \ + { \ + tContainerWidget *psW = psWidget; \ + psW->ui32Style &= ~(CTR_STYLE_FILL); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables filling of a container widget. +//! +//! \param psWidget is a pointer to the container widget to modify. +//! +//! This function enables the filling of a container widget. The display is +//! not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ContainerFillOn(psWidget) \ + do \ + { \ + tContainerWidget *psW = psWidget; \ + psW->ui32Style |= CTR_STYLE_FILL; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the font for a container widget. +//! +//! \param psWidget is a pointer to the container widget to modify. +//! \param pFnt is a pointer to the font to use to draw text on the container +//! widget. +//! +//! This function changes the font used to draw text on the container widget. +//! The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ContainerFontSet(psWidget, pFnt) \ + do \ + { \ + tContainerWidget *psW = psWidget; \ + const tFont *pF = pFnt; \ + psW->psFont = pF; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the outline color of a container widget. +//! +//! \param psWidget is a pointer to the container widget to be modified. +//! \param ui32Color is the 24-bit RGB color to use to outline the container +//! widget. +//! +//! This function changes the color used to outline the container widget on the +//! display. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ContainerOutlineColorSet(psWidget, ui32Color) \ + do \ + { \ + tContainerWidget *psW = psWidget; \ + psW->ui32OutlineColor = ui32Color; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables outlining of a container widget. +//! +//! \param psWidget is a pointer to the container widget to modify. +//! +//! This function disables the outlining of a container widget. The display is +//! not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ContainerOutlineOff(psWidget) \ + do \ + { \ + tContainerWidget *psW = psWidget; \ + psW->ui32Style &= ~(CTR_STYLE_OUTLINE); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables outlining of a container widget. +//! +//! \param psWidget is a pointer to the container widget to modify. +//! +//! This function enables the outlining of a container widget. The display is +//! not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ContainerOutlineOn(psWidget) \ + do \ + { \ + tContainerWidget *psW = psWidget; \ + psW->ui32Style |= CTR_STYLE_OUTLINE; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables the centering of text on a container widget. +//! +//! \param psWidget is a pointer to the container widget to modify. +//! +//! This function disables the centering of text on a container widget. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ContainerTextCenterOff(psWidget) \ + do \ + { \ + tContainerWidget *psW = psWidget; \ + psW->ui32Style &= ~(CTR_STYLE_TEXT_CENTER); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables the centering of text on a container widget. +//! +//! \param psWidget is a pointer to the container widget to modify. +//! +//! This function enables the centering of text on a container widget. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ContainerTextCenterOn(psWidget) \ + do \ + { \ + tContainerWidget *psW = psWidget; \ + psW->ui32Style |= CTR_STYLE_TEXT_CENTER; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the text color of a container widget. +//! +//! \param psWidget is a pointer to the container widget to be modified. +//! \param ui32Color is the 24-bit RGB color to use to draw text on the +//! container widget. +//! +//! This function changes the color used to draw text on the container widget +//! on the display. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ContainerTextColorSet(psWidget, ui32Color) \ + do \ + { \ + tContainerWidget *psW = psWidget; \ + psW->ui32TextColor = ui32Color; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables the text on a container widget. +//! +//! \param psWidget is a pointer to the container widget to modify. +//! +//! This function disables the drawing of text on a container widget. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ContainerTextOff(psWidget) \ + do \ + { \ + tContainerWidget *psW = psWidget; \ + psW->ui32Style &= ~(CTR_STYLE_TEXT); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables the text on a container widget. +//! +//! \param psWidget is a pointer to the container widget to modify. +//! +//! This function enables the drawing of text on a container widget. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ContainerTextOn(psWidget) \ + do \ + { \ + tContainerWidget *psW = psWidget; \ + psW->ui32Style |= CTR_STYLE_TEXT; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables opaque text on a container widget. +//! +//! \param psWidget is a pointer to the container widget to modify. +//! +//! This function disables the use of opaque text on this container widget. +//! When not using opaque text, only the foreground pixels of the text are +//! drawn on the screen, allowing the previously drawn pixels (such as the +//! background) to show through the text. +//! +//! \return None. +// +//***************************************************************************** +#define ContainerTextOpaqueOff(psWidget) \ + do \ + { \ + tContainerWidget *psW = psWidget; \ + psW->ui32Style &= ~(CTR_STYLE_TEXT_OPAQUE); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables opaque text on a container widget. +//! +//! \param psWidget is a pointer to the container widget to modify. +//! +//! This function enables the use of opaque text on this container widget. +//! When using opaque text, both the foreground and background pixels of the +//! text are drawn on the screen, blocking out the previously drawn pixels. +//! +//! \return None. +// +//***************************************************************************** +#define ContainerTextOpaqueOn(psWidget) \ + do \ + { \ + tContainerWidget *psW = psWidget; \ + psW->ui32Style |= CTR_STYLE_TEXT_OPAQUE; \ + } \ + while(0) + +//***************************************************************************** +// +//! Changes the text drawn on a container widget. +//! +//! \param psWidget is a pointer to the container widget to be modified. +//! \param pcTxt is a pointer to the text to draw onto the container widget. +//! +//! This function changes the text that is drawn onto the container widget. +//! The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ContainerTextSet(psWidget, pcTxt) \ + do \ + { \ + tContainerWidget *psW = psWidget; \ + const char *pcT = pcTxt; \ + psW->pcText = pcT; \ + } \ + while(0) + +//***************************************************************************** +// +// Prototypes for the container widget APIs. +// +//***************************************************************************** +extern int32_t ContainerMsgProc(tWidget *psWidget, uint32_t ui32Msg, + uint32_t ui32Param1, uint32_t ui32Param2); +extern void ContainerInit(tContainerWidget *psWidget, + const tDisplay *psDisplay, int32_t i32X, + int32_t i32Y, int32_t i32Width, int32_t i32Height); + +//***************************************************************************** +// +// Mark the end of the C bindings section for C++ compilers. +// +//***************************************************************************** +#ifdef __cplusplus +} +#endif + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** + +#endif // __CONTAINER_H__ diff --git a/grlib/context.c b/grlib/context.c new file mode 100644 index 0000000..11014b5 --- /dev/null +++ b/grlib/context.c @@ -0,0 +1,227 @@ +//***************************************************************************** +// +// context.c - Routines for handling drawing contexts. +// +// Copyright (c) 2007-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#include +#include +#include "driverlib/debug.h" +#include "grlib/grlib.h" + +//***************************************************************************** +// +//! \addtogroup primitives_api +//! @{ +// +//***************************************************************************** + +#ifndef GRLIB_REMOVE_WIDE_FONT_SUPPORT +//***************************************************************************** +// +// A pointer to the application-passed structure containing default values for +// various text rendering properties. +// +//***************************************************************************** +static tGrLibDefaults const *g_psGrLibDefaults; + +// +// Default text mapping functions. This table allows the use of 8 bit encoded +// source text with either Unicode encoded wide fonts or legacy fonts +// which are assumed to contain ISO8859-1 text (ASCII + western European). +// +const tCodePointMap g_psDefaultCodePointMapTable[] = +{ + {CODEPAGE_ISO8859_1, CODEPAGE_UNICODE, GrMapISO8859_1_Unicode}, + {CODEPAGE_ISO8859_1, CODEPAGE_ISO8859_1, GrMapISO8859_1_Unicode} +}; + +#define NUM_DEFAULT_CODEPOINT_MAPS (sizeof(g_psDefaultCodePointMapTable) / \ + sizeof(tCodePointMap)) + +//***************************************************************************** +// +//! Initializes graphics library default text rendering values. +//! +//! \param pDefaults points to a structure containing default values to use. +//! +//! This function allows an application to set global default values that the +//! graphics library will use when initializing any graphics context. These +//! values set the source text codepage, the rendering function to use for +//! strings and mapping functions used to allow extraction of the correct +//! glyphs from fonts. +//! +//! If this function is not called by an application, the graphics library +//! assumes that text strings are ISO8859-1 encoded and that the default string +//! renderer is used. +//! +//! \return None. +// +//***************************************************************************** +void +GrLibInit(const tGrLibDefaults *pDefaults) +{ + ASSERT(pDefaults); + + // + // Remember the pointer to the defaults structure. + // + g_psGrLibDefaults = pDefaults; +} + +#endif + +//***************************************************************************** +// +//! Initializes a drawing context. +//! +//! \param psContext is a pointer to the drawing context to initialize. +//! \param psDisplay is a pointer to the tDisplayInfo structure that describes +//! the display driver to use. +//! +//! This function initializes a drawing context, preparing it for use. The +//! provided display driver will be used for all subsequent graphics +//! operations, and the default clipping region will be set to the extent of +//! the screen. +//! +//! \return None. +// +//***************************************************************************** +void +GrContextInit(tContext *psContext, const tDisplay *psDisplay) +{ + // + // Check the arguments. + // + ASSERT(psContext); + ASSERT(psDisplay); + + // + // Set the size of the context. + // + psContext->i32Size = sizeof(tContext); + + // + // Save the pointer to the display. + // + psContext->psDisplay = psDisplay; + + // + // Initialize the extent of the clipping region to the extents of the + // screen. + // + psContext->sClipRegion.i16XMin = 0; + psContext->sClipRegion.i16YMin = 0; + psContext->sClipRegion.i16XMax = psDisplay->ui16Width - 1; + psContext->sClipRegion.i16YMax = psDisplay->ui16Height - 1; + + // + // Provide a default color and font. + // + psContext->ui32Foreground = 0; + psContext->ui32Background = 0; + psContext->psFont = 0; + +#ifndef GRLIB_REMOVE_WIDE_FONT_SUPPORT + // + // Set defaults for all text rendering options. + // + if(g_psGrLibDefaults) + { + psContext->pfnStringRenderer = g_psGrLibDefaults->pfnStringRenderer; + psContext->pCodePointMapTable = g_psGrLibDefaults->pCodePointMapTable; + psContext->ui16Codepage = g_psGrLibDefaults->ui16Codepage; + psContext->ui8NumCodePointMaps = g_psGrLibDefaults->ui8NumCodePointMaps; + psContext->ui8Reserved = g_psGrLibDefaults->ui8Reserved; + } + else + { + psContext->pfnStringRenderer = GrDefaultStringRenderer; + psContext->pCodePointMapTable = g_psDefaultCodePointMapTable; + psContext->ui16Codepage = CODEPAGE_ISO8859_1; + psContext->ui8NumCodePointMaps = NUM_DEFAULT_CODEPOINT_MAPS; + psContext->ui8Reserved = 0; + } + psContext->ui8CodePointMap = 0; +#endif +} + +//***************************************************************************** +// +//! Sets the extents of the clipping region. +//! +//! \param psContext is a pointer to the drawing context to use. +//! \param pRect is a pointer to the structure containing the extents of the +//! clipping region. +//! +//! This function sets the extents of the clipping region. The clipping region +//! is not allowed to exceed the extents of the screen, but may be a portion of +//! the screen. +//! +//! The supplied coordinate are inclusive; \e i16XMin of 1 and \e i16XMax of 1 +//! will define a clipping region that will display only the pixels in the +//! X = 1 column. A consequence of this is that the clipping region must +//! contain at least one row and one column. +//! +//! \return None. +// +//***************************************************************************** +void +GrContextClipRegionSet(tContext *psContext, tRectangle *pRect) +{ + uint32_t ui32W, ui32H; + + // + // Check the arguments. + // + ASSERT(psContext); + ASSERT(pRect); + + // + // Get the width and height of the display. + // + ui32W = DpyWidthGet(psContext->psDisplay); + ui32H = DpyHeightGet(psContext->psDisplay); + + // + // Set the extents of the clipping region, forcing them to reside within + // the extents of the screen. + // + psContext->sClipRegion.i16XMin = ((pRect->i16XMin < 0) ? 0 : + ((pRect->i16XMin >= ui32W) ? (ui32W - 1) : + pRect->i16XMin)); + psContext->sClipRegion.i16YMin = ((pRect->i16YMin < 0) ? 0 : + ((pRect->i16YMin >= ui32H) ? (ui32H - 1) : + pRect->i16YMin)); + psContext->sClipRegion.i16XMax = ((pRect->i16XMax < 0) ? 0 : + ((pRect->i16XMax >= ui32W) ? (ui32W - 1) : + pRect->i16XMax)); + psContext->sClipRegion.i16YMax = ((pRect->i16YMax < 0) ? 0 : + ((pRect->i16YMax >= ui32H) ? (ui32H - 1) : + pRect->i16YMax)); +} + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** diff --git a/grlib/ewarm/Exe/grlib.a b/grlib/ewarm/Exe/grlib.a new file mode 100644 index 0000000..2296d97 Binary files /dev/null and b/grlib/ewarm/Exe/grlib.a differ diff --git a/grlib/fonts/fontcm12.c b/grlib/fonts/fontcm12.c new file mode 100644 index 0000000..84a1083 --- /dev/null +++ b/grlib/fonts/fontcm12.c @@ -0,0 +1,221 @@ +//***************************************************************************** +// +// fontcm12.c - Font definition for the 12pt Cm font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 12 point +// Bold: no +// Italic: no +// Memory usage: 1576 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 12 point Cm font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm12Data[1375] = +{ + 5, 5, 0, 8, 16, 11, 2, 33, 17, 17, 17, 17, + 17, 17, 49, 112, 12, 5, 162, 17, 33, 17, 33, 17, + 17, 240, 240, 144, 21, 9, 240, 145, 81, 17, 81, 33, + 56, 49, 33, 56, 33, 33, 81, 33, 81, 33, 81, 240, + 16, 24, 6, 33, 67, 33, 17, 17, 17, 17, 17, 17, + 17, 67, 65, 17, 17, 17, 17, 17, 17, 17, 35, 65, + 240, 29, 10, 18, 114, 17, 33, 49, 51, 49, 50, 65, + 49, 100, 18, 81, 17, 33, 65, 17, 33, 49, 33, 33, + 49, 33, 33, 114, 240, 112, 24, 10, 210, 113, 17, 113, + 17, 113, 17, 114, 35, 50, 49, 34, 33, 17, 49, 65, + 33, 36, 18, 240, 240, 32, 8, 3, 98, 33, 33, 17, + 240, 128, 15, 4, 33, 33, 49, 33, 49, 49, 49, 49, + 49, 49, 65, 49, 65, 16, 4, 1, 65, 49, 65, 49, + 49, 49, 49, 49, 49, 33, 49, 33, 48, 8, 3, 49, + 34, 18, 17, 240, 176, 13, 8, 240, 193, 113, 113, 71, + 65, 113, 113, 113, 240, 80, 6, 3, 240, 194, 33, 112, + 6, 4, 240, 211, 240, 96, 5, 2, 240, 49, 112, 14, + 5, 129, 49, 65, 65, 49, 65, 65, 65, 49, 65, 65, + 144, 18, 6, 211, 33, 49, 17, 49, 17, 49, 17, 49, + 17, 49, 17, 49, 35, 240, 80, 11, 4, 130, 49, 49, + 49, 49, 49, 49, 35, 208, 14, 6, 211, 33, 49, 17, + 49, 81, 65, 50, 49, 85, 240, 64, 14, 5, 164, 17, + 33, 65, 34, 81, 65, 17, 33, 19, 240, 32, 14, 6, + 241, 81, 51, 33, 33, 33, 33, 37, 65, 67, 240, 64, + 14, 6, 209, 83, 51, 49, 33, 81, 81, 18, 33, 35, + 240, 80, 18, 6, 227, 33, 33, 17, 18, 34, 33, 17, + 49, 17, 49, 17, 49, 35, 240, 80, 12, 5, 164, 65, + 49, 65, 49, 65, 65, 65, 240, 48, 17, 5, 178, 33, + 33, 17, 33, 34, 33, 18, 17, 33, 17, 33, 34, 240, + 32, 15, 6, 211, 33, 49, 17, 49, 17, 49, 36, 81, + 65, 35, 240, 96, 5, 2, 161, 113, 112, 7, 2, 161, + 113, 17, 17, 48, 11, 2, 129, 17, 17, 17, 17, 17, + 17, 17, 48, 9, 8, 240, 240, 167, 151, 240, 240, 176, + 13, 6, 240, 177, 81, 81, 65, 81, 65, 81, 49, 35, + 128, 14, 6, 115, 33, 49, 17, 49, 81, 65, 65, 81, + 177, 240, 96, 24, 9, 180, 65, 50, 33, 19, 18, 18, + 49, 17, 18, 49, 17, 18, 49, 17, 17, 22, 33, 81, + 53, 240, 224, 19, 9, 240, 98, 97, 17, 97, 17, 97, + 33, 84, 65, 65, 49, 65, 34, 51, 240, 208, 18, 8, + 240, 22, 49, 65, 33, 65, 37, 49, 65, 33, 65, 33, + 65, 22, 240, 176, 19, 9, 240, 84, 17, 33, 49, 17, + 17, 82, 17, 129, 129, 97, 33, 65, 68, 240, 240, 19, + 9, 240, 54, 65, 65, 49, 81, 33, 81, 33, 81, 33, + 81, 33, 65, 38, 240, 240, 17, 9, 240, 56, 33, 81, + 33, 49, 69, 65, 49, 65, 129, 81, 24, 240, 208, 17, + 9, 240, 56, 33, 81, 33, 49, 69, 65, 49, 65, 129, + 116, 240, 240, 32, 17, 9, 240, 83, 81, 50, 33, 129, + 129, 67, 17, 81, 49, 65, 68, 240, 240, 20, 9, 240, + 51, 35, 33, 65, 49, 65, 54, 49, 65, 49, 65, 49, + 65, 35, 35, 240, 208, 11, 4, 131, 33, 49, 49, 49, + 49, 49, 35, 208, 13, 5, 179, 49, 65, 65, 65, 65, + 33, 17, 35, 240, 32, 21, 9, 240, 51, 50, 33, 49, + 65, 33, 81, 17, 98, 17, 81, 49, 65, 65, 35, 35, + 240, 208, 13, 7, 227, 81, 97, 97, 97, 97, 97, 49, + 22, 240, 112, 29, 10, 240, 83, 66, 34, 65, 50, 35, + 49, 17, 17, 17, 49, 17, 17, 17, 49, 18, 33, 49, + 33, 33, 35, 17, 19, 240, 240, 16, 22, 8, 240, 18, + 35, 33, 49, 50, 33, 50, 33, 49, 17, 17, 49, 34, + 49, 34, 34, 49, 240, 176, 19, 9, 240, 84, 65, 65, + 33, 97, 17, 97, 17, 97, 17, 97, 33, 65, 68, 240, + 240, 15, 8, 240, 22, 49, 65, 33, 65, 37, 49, 113, + 113, 99, 240, 224, 22, 9, 240, 84, 65, 65, 33, 97, + 17, 97, 17, 97, 18, 18, 17, 51, 18, 68, 129, 17, + 114, 160, 21, 10, 240, 86, 81, 65, 65, 65, 69, 81, + 49, 81, 49, 81, 65, 17, 19, 51, 240, 240, 16, 18, + 7, 243, 17, 17, 50, 17, 65, 34, 115, 17, 65, 18, + 49, 17, 19, 240, 128, 15, 9, 240, 71, 17, 49, 33, + 81, 129, 129, 129, 129, 115, 240, 240, 20, 9, 240, 51, + 35, 33, 65, 49, 65, 49, 65, 49, 65, 49, 65, 50, + 34, 68, 240, 240, 18, 9, 240, 50, 66, 33, 65, 49, + 65, 65, 33, 81, 33, 98, 114, 240, 240, 160, 30, 12, + 240, 146, 35, 34, 33, 49, 49, 49, 34, 49, 49, 33, + 17, 17, 81, 17, 17, 17, 82, 33, 17, 82, 49, 113, + 49, 240, 240, 160, 20, 9, 240, 51, 35, 33, 49, 81, + 17, 113, 113, 17, 97, 33, 65, 65, 34, 51, 240, 208, + 18, 10, 240, 83, 66, 33, 65, 81, 49, 97, 17, 129, + 145, 145, 131, 240, 240, 64, 14, 7, 230, 17, 49, 97, + 81, 81, 81, 81, 65, 22, 240, 112, 15, 3, 2, 17, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 9, + 5, 241, 17, 33, 18, 240, 240, 176, 15, 3, 2, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 18, 8, + 4, 145, 33, 17, 240, 240, 112, 5, 2, 65, 240, 96, + 6, 3, 145, 34, 240, 160, 14, 7, 240, 240, 98, 68, + 49, 33, 49, 33, 17, 22, 240, 112, 16, 7, 226, 97, + 97, 97, 18, 50, 33, 33, 49, 33, 49, 36, 240, 128, + 11, 5, 240, 179, 17, 33, 17, 65, 82, 240, 32, 16, + 7, 240, 161, 97, 50, 17, 33, 34, 33, 49, 33, 49, + 53, 240, 112, 12, 6, 240, 240, 19, 37, 17, 81, 49, + 35, 240, 80, 12, 5, 179, 33, 65, 51, 49, 65, 65, + 51, 240, 32, 14, 7, 240, 240, 101, 33, 17, 67, 65, + 115, 34, 49, 36, 144, 15, 7, 226, 97, 97, 100, 49, + 33, 49, 33, 49, 33, 38, 240, 112, 9, 3, 97, 129, + 33, 33, 33, 34, 160, 11, 3, 113, 129, 33, 33, 33, + 33, 18, 18, 64, 16, 7, 226, 97, 97, 97, 33, 51, + 65, 17, 65, 33, 35, 18, 240, 112, 11, 4, 130, 49, + 49, 49, 49, 49, 49, 35, 208, 18, 10, 0, 6, 55, + 49, 33, 33, 49, 33, 33, 49, 33, 33, 41, 240, 240, + 16, 14, 7, 240, 240, 100, 49, 33, 49, 33, 49, 33, + 38, 240, 112, 14, 6, 240, 240, 19, 33, 49, 17, 49, + 17, 49, 35, 240, 80, 16, 7, 240, 240, 97, 18, 50, + 33, 33, 49, 33, 49, 36, 49, 83, 176, 15, 7, 240, + 240, 99, 49, 49, 33, 49, 33, 49, 52, 97, 83, 128, + 10, 5, 240, 179, 33, 65, 65, 51, 240, 32, 12, 5, + 240, 179, 17, 33, 35, 17, 33, 19, 240, 32, 13, 6, + 240, 65, 81, 69, 33, 81, 81, 33, 50, 240, 80, 15, + 7, 240, 240, 82, 18, 49, 33, 49, 33, 49, 33, 53, + 240, 112, 13, 6, 240, 242, 33, 17, 33, 49, 17, 50, + 81, 240, 96, 17, 8, 240, 240, 165, 17, 17, 33, 33, + 17, 17, 18, 50, 18, 240, 240, 64, 15, 7, 240, 240, + 82, 34, 33, 17, 81, 81, 18, 34, 34, 240, 112, 16, + 7, 240, 240, 82, 34, 33, 33, 49, 17, 82, 81, 65, + 17, 66, 192, 10, 5, 240, 164, 49, 49, 49, 68, 240, + 16, 8, 7, 240, 240, 198, 240, 240, 208, 8, 12, 0, + 9, 11, 0, 9, 16, 7, 4, 129, 17, 240, 240, 176, + 7, 5, 162, 17, 0, 6, 48, +}; + +//***************************************************************************** +// +// The font definition for the 12 point Cm font. +// +//***************************************************************************** +const tFont g_sFontCm12 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 10, + + // + // The height of the font. + // + 13, + + // + // The baseline of the font. + // + 10, + + // + // The offset to each character in the font. + // + { + 0, 5, 16, 28, 49, 73, 102, 126, + 134, 149, 165, 173, 186, 192, 198, 203, + 217, 235, 246, 260, 274, 288, 302, 320, + 332, 349, 364, 369, 376, 387, 396, 409, + 423, 447, 466, 484, 503, 522, 539, 556, + 573, 593, 604, 617, 638, 651, 680, 702, + 721, 736, 758, 779, 797, 812, 832, 850, + 880, 900, 918, 932, 947, 956, 971, 979, + 984, 990, 1004, 1020, 1031, 1047, 1059, 1071, + 1085, 1100, 1109, 1120, 1136, 1147, 1165, 1179, + 1193, 1209, 1224, 1234, 1246, 1259, 1274, 1287, + 1304, 1319, 1335, 1345, 1353, 1361, 1368, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm12Data +}; diff --git a/grlib/fonts/fontcm12b.c b/grlib/fonts/fontcm12b.c new file mode 100644 index 0000000..4f031c8 --- /dev/null +++ b/grlib/fonts/fontcm12b.c @@ -0,0 +1,217 @@ +//***************************************************************************** +// +// fontcm12b.c - Font definition for the 12pt Cm bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 12 point +// Bold: yes +// Italic: no +// Memory usage: 1528 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 12 point Cm bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm12bData[1328] = +{ + 5, 5, 0, 7, 64, 11, 2, 1, 17, 17, 17, 17, + 17, 49, 17, 112, 11, 6, 98, 18, 18, 18, 33, 33, + 0, 6, 16, 20, 9, 241, 81, 17, 97, 17, 56, 49, + 33, 81, 17, 72, 49, 17, 81, 33, 81, 240, 16, 17, + 5, 17, 51, 34, 17, 18, 17, 19, 51, 18, 17, 18, + 17, 19, 49, 208, 25, 9, 18, 49, 33, 20, 49, 17, + 33, 49, 17, 17, 65, 18, 97, 17, 113, 35, 33, 49, + 17, 33, 51, 240, 208, 23, 9, 34, 97, 17, 97, 17, + 97, 17, 98, 35, 34, 33, 49, 18, 17, 49, 34, 33, + 19, 34, 240, 224, 7, 3, 50, 18, 33, 240, 160, 13, + 3, 65, 17, 33, 33, 33, 33, 33, 33, 33, 49, 33, + 13, 3, 49, 33, 49, 33, 33, 33, 33, 33, 17, 33, + 80, 10, 6, 33, 81, 67, 37, 49, 240, 240, 240, 13, + 10, 240, 145, 145, 145, 145, 89, 81, 145, 145, 240, 160, + 7, 3, 240, 98, 18, 33, 112, 6, 4, 240, 147, 240, + 96, 5, 2, 225, 17, 112, 15, 6, 65, 81, 65, 81, + 65, 81, 81, 65, 81, 81, 65, 81, 80, 16, 5, 178, + 33, 33, 17, 33, 17, 33, 17, 33, 17, 33, 34, 240, + 32, 10, 4, 130, 49, 49, 49, 49, 49, 35, 208, 12, + 5, 163, 33, 33, 65, 49, 49, 49, 68, 240, 16, 14, + 5, 163, 33, 33, 34, 81, 17, 33, 17, 33, 34, 240, + 32, 13, 6, 241, 66, 49, 17, 33, 33, 37, 65, 67, + 240, 64, 13, 5, 163, 33, 67, 81, 17, 33, 17, 33, + 19, 240, 32, 15, 5, 179, 17, 33, 19, 33, 33, 17, + 33, 17, 33, 34, 240, 32, 11, 5, 164, 49, 65, 49, + 65, 65, 65, 240, 48, 15, 5, 178, 33, 33, 18, 17, + 34, 33, 33, 17, 33, 34, 240, 32, 14, 5, 178, 33, + 33, 17, 33, 35, 65, 17, 17, 35, 240, 32, 7, 2, + 129, 17, 49, 17, 112, 9, 2, 129, 17, 49, 17, 17, + 17, 48, 11, 2, 97, 17, 17, 17, 17, 17, 17, 17, + 48, 10, 9, 240, 240, 104, 240, 72, 240, 240, 112, 12, + 4, 209, 49, 49, 49, 49, 33, 49, 17, 19, 80, 13, + 4, 3, 17, 17, 17, 17, 34, 33, 49, 113, 49, 224, + 28, 10, 37, 66, 50, 34, 19, 18, 17, 17, 49, 17, + 17, 17, 49, 17, 17, 17, 49, 17, 18, 21, 50, 81, + 54, 240, 240, 32, 16, 9, 209, 129, 115, 81, 18, 81, + 34, 69, 49, 50, 35, 35, 240, 208, 17, 7, 117, 49, + 49, 33, 49, 36, 49, 49, 33, 49, 33, 49, 21, 240, + 128, 14, 7, 147, 49, 49, 17, 97, 97, 97, 113, 49, + 51, 240, 128, 18, 8, 134, 49, 49, 49, 65, 33, 65, + 33, 65, 33, 65, 33, 49, 37, 240, 192, 17, 7, 118, + 33, 49, 33, 49, 33, 17, 67, 65, 17, 65, 49, 22, + 240, 112, 16, 7, 118, 33, 49, 33, 49, 33, 17, 67, + 65, 17, 65, 83, 240, 160, 16, 8, 163, 65, 49, 33, + 65, 33, 113, 113, 36, 33, 49, 67, 240, 192, 19, 8, + 131, 19, 33, 49, 49, 49, 53, 49, 49, 49, 49, 49, + 49, 35, 19, 240, 160, 11, 4, 67, 33, 49, 49, 49, + 49, 49, 35, 208, 13, 6, 116, 65, 81, 81, 81, 81, + 33, 33, 35, 240, 96, 19, 9, 147, 34, 49, 49, 65, + 33, 81, 17, 100, 81, 34, 65, 49, 51, 20, 240, 208, + 14, 6, 99, 65, 81, 81, 81, 81, 33, 33, 33, 21, + 240, 64, 29, 11, 179, 67, 35, 50, 49, 17, 33, 17, + 49, 17, 33, 17, 49, 18, 17, 17, 49, 34, 33, 49, + 34, 33, 35, 67, 240, 240, 64, 24, 10, 163, 51, 35, + 49, 49, 18, 33, 49, 34, 17, 49, 34, 17, 49, 51, + 49, 66, 35, 65, 240, 240, 32, 18, 7, 132, 49, 33, + 33, 65, 17, 65, 17, 65, 17, 65, 33, 33, 52, 240, + 128, 14, 7, 117, 49, 49, 33, 49, 36, 49, 97, 97, + 83, 240, 160, 18, 7, 147, 49, 49, 17, 65, 17, 65, + 17, 65, 17, 35, 36, 67, 113, 97, 128, 18, 8, 133, + 65, 49, 49, 49, 52, 65, 34, 49, 34, 49, 34, 35, + 19, 240, 160, 17, 6, 114, 17, 17, 34, 17, 49, 20, + 67, 17, 49, 17, 49, 20, 240, 80, 18, 8, 135, 17, + 33, 33, 17, 33, 33, 17, 33, 33, 65, 113, 113, 85, + 240, 176, 19, 9, 147, 35, 33, 65, 49, 65, 49, 65, + 49, 65, 49, 65, 49, 50, 68, 240, 240, 18, 10, 164, + 35, 34, 49, 82, 33, 82, 33, 97, 17, 115, 114, 145, + 240, 240, 80, 25, 13, 216, 19, 34, 34, 49, 65, 50, + 17, 82, 19, 17, 82, 17, 17, 17, 98, 34, 114, 34, + 193, 240, 240, 208, 19, 10, 164, 19, 66, 17, 113, 17, + 114, 131, 97, 33, 97, 34, 51, 36, 240, 240, 16, 15, + 8, 131, 34, 34, 33, 65, 17, 83, 97, 113, 113, 99, + 240, 192, 16, 7, 118, 17, 49, 33, 34, 66, 81, 82, + 33, 18, 49, 22, 240, 112, 14, 3, 2, 17, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 34, 11, 6, 193, 33, + 34, 18, 18, 18, 240, 240, 208, 14, 3, 2, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 18, 8, 4, 81, + 33, 17, 240, 240, 112, 6, 2, 33, 17, 240, 64, 7, + 3, 97, 34, 18, 240, 112, 12, 7, 240, 212, 68, 34, + 33, 33, 49, 38, 240, 112, 15, 7, 114, 97, 97, 100, + 49, 49, 33, 49, 33, 49, 36, 240, 128, 11, 5, 240, + 99, 17, 33, 17, 65, 83, 240, 16, 15, 7, 162, 97, + 97, 52, 33, 49, 33, 49, 33, 49, 53, 240, 112, 11, + 6, 240, 164, 21, 17, 81, 49, 35, 240, 80, 15, 5, + 34, 33, 17, 33, 17, 33, 51, 49, 65, 65, 51, 240, + 32, 14, 6, 240, 147, 17, 17, 33, 36, 33, 85, 17, + 49, 35, 128, 16, 7, 114, 97, 97, 97, 18, 50, 17, + 49, 33, 49, 33, 38, 240, 112, 10, 4, 81, 49, 98, + 49, 49, 49, 35, 208, 13, 5, 114, 50, 115, 65, 65, + 65, 65, 17, 33, 19, 112, 15, 7, 114, 97, 97, 97, + 18, 49, 17, 67, 65, 18, 38, 240, 112, 11, 4, 66, + 49, 49, 49, 49, 49, 49, 35, 208, 21, 11, 240, 240, + 226, 18, 19, 50, 18, 33, 49, 33, 49, 49, 33, 49, + 38, 19, 240, 240, 64, 14, 7, 240, 210, 18, 50, 17, + 49, 33, 49, 33, 38, 240, 112, 13, 6, 240, 163, 33, + 49, 17, 49, 17, 49, 35, 240, 80, 14, 7, 240, 213, + 49, 49, 33, 49, 33, 49, 36, 49, 83, 176, 14, 7, + 240, 228, 33, 49, 33, 49, 33, 49, 52, 97, 83, 128, + 11, 5, 240, 84, 33, 17, 33, 65, 51, 240, 32, 12, + 5, 240, 84, 17, 33, 35, 17, 33, 20, 240, 16, 13, + 5, 177, 65, 52, 33, 65, 17, 33, 17, 34, 240, 32, + 14, 7, 240, 210, 18, 49, 33, 49, 33, 49, 33, 53, + 240, 112, 13, 7, 240, 211, 18, 34, 17, 65, 17, 66, + 97, 240, 144, 18, 9, 240, 240, 101, 18, 33, 33, 17, + 65, 17, 17, 66, 18, 65, 33, 240, 240, 13, 7, 240, + 211, 18, 50, 82, 65, 18, 34, 19, 240, 112, 14, 6, + 240, 146, 18, 33, 17, 51, 66, 65, 49, 17, 50, 160, + 12, 5, 240, 84, 17, 17, 50, 49, 17, 20, 240, 16, + 8, 7, 240, 240, 86, 240, 240, 208, 8, 13, 0, 8, + 28, 0, 9, 112, 9, 4, 1, 17, 17, 17, 240, 240, + 176, 7, 5, 82, 17, 0, 6, 48, +}; + +//***************************************************************************** +// +// The font definition for the 12 point Cm bold font. +// +//***************************************************************************** +const tFont g_sFontCm12b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 11, + + // + // The height of the font. + // + 12, + + // + // The baseline of the font. + // + 9, + + // + // The offset to each character in the font. + // + { + 0, 5, 16, 27, 47, 64, 89, 112, + 119, 132, 145, 155, 168, 175, 181, 186, + 201, 217, 227, 239, 253, 266, 279, 294, + 305, 320, 334, 341, 350, 361, 371, 383, + 396, 424, 440, 457, 471, 489, 506, 522, + 538, 557, 568, 581, 600, 614, 643, 667, + 685, 699, 717, 735, 752, 770, 789, 807, + 832, 851, 866, 882, 896, 907, 921, 929, + 935, 942, 954, 969, 980, 995, 1006, 1021, + 1035, 1051, 1061, 1074, 1089, 1100, 1121, 1135, + 1148, 1162, 1176, 1187, 1199, 1212, 1226, 1239, + 1257, 1270, 1284, 1296, 1304, 1312, 1321, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm12bData +}; diff --git a/grlib/fonts/fontcm12i.c b/grlib/fonts/fontcm12i.c new file mode 100644 index 0000000..5a8d47c --- /dev/null +++ b/grlib/fonts/fontcm12i.c @@ -0,0 +1,223 @@ +//***************************************************************************** +// +// fontcm12i.c - Font definition for the 12pt Cm italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 12 point +// Bold: no +// Italic: yes +// Memory usage: 1596 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 12 point Cm italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm12iData[1396] = +{ + 5, 5, 0, 8, 16, 10, 4, 97, 49, 33, 49, 49, + 33, 177, 240, 10, 5, 161, 33, 17, 33, 49, 240, 240, + 192, 21, 9, 240, 161, 81, 17, 81, 17, 56, 49, 17, + 72, 33, 33, 81, 17, 81, 33, 81, 240, 32, 15, 9, + 240, 131, 81, 18, 65, 115, 113, 129, 83, 98, 19, 240, + 240, 32, 11, 34, 81, 49, 17, 49, 49, 36, 65, 33, + 17, 81, 20, 83, 20, 97, 17, 17, 81, 17, 33, 65, + 33, 33, 49, 49, 17, 49, 67, 240, 160, 25, 10, 211, + 18, 49, 33, 17, 50, 33, 17, 52, 18, 53, 17, 33, + 65, 17, 33, 97, 34, 65, 69, 240, 240, 64, 6, 2, + 65, 17, 240, 64, 15, 5, 129, 49, 49, 65, 65, 49, + 65, 65, 65, 65, 65, 81, 48, 15, 5, 33, 81, 65, + 65, 65, 65, 65, 49, 65, 65, 49, 49, 144, 10, 6, + 129, 17, 50, 50, 50, 0, 6, 64, 12, 8, 240, 240, + 81, 113, 71, 65, 97, 240, 240, 112, 6, 2, 240, 49, + 17, 80, 6, 4, 240, 211, 240, 96, 5, 2, 240, 49, + 112, 16, 8, 97, 97, 113, 97, 113, 97, 113, 97, 113, + 97, 113, 97, 113, 112, 19, 7, 240, 34, 50, 33, 33, + 49, 18, 49, 17, 50, 17, 49, 33, 34, 51, 240, 144, + 12, 5, 240, 34, 65, 49, 65, 65, 65, 36, 240, 16, + 15, 6, 227, 34, 17, 33, 18, 35, 65, 50, 83, 33, + 33, 240, 80, 17, 7, 240, 19, 50, 33, 33, 17, 17, + 36, 97, 97, 33, 34, 36, 240, 144, 15, 5, 240, 49, + 65, 49, 49, 17, 17, 33, 19, 66, 49, 65, 112, 16, + 7, 240, 17, 33, 51, 66, 65, 33, 97, 97, 33, 33, + 51, 240, 160, 18, 7, 240, 35, 49, 33, 36, 34, 33, + 33, 49, 33, 49, 33, 33, 66, 240, 160, 15, 7, 243, + 17, 33, 18, 33, 49, 81, 97, 81, 97, 97, 240, 160, + 18, 7, 240, 19, 49, 49, 33, 49, 51, 49, 18, 33, + 49, 33, 34, 50, 240, 160, 16, 7, 240, 35, 49, 33, + 33, 49, 33, 34, 52, 81, 81, 51, 240, 160, 6, 3, + 240, 17, 161, 176, 7, 3, 240, 17, 161, 33, 128, 11, + 4, 240, 49, 97, 49, 49, 49, 33, 49, 112, 9, 9, + 0, 5, 103, 167, 0, 5, 112, 14, 5, 240, 129, 50, + 50, 50, 34, 33, 33, 17, 33, 19, 112, 16, 6, 146, + 34, 17, 17, 49, 33, 17, 65, 65, 17, 50, 161, 240, + 112, 22, 9, 240, 84, 68, 18, 19, 17, 33, 18, 49, + 17, 18, 33, 17, 33, 21, 34, 132, 240, 240, 16, 19, + 8, 209, 98, 81, 17, 65, 33, 65, 33, 68, 49, 49, + 33, 65, 34, 35, 240, 160, 18, 9, 240, 85, 81, 49, + 49, 49, 68, 81, 49, 49, 65, 49, 50, 38, 240, 240, + 17, 9, 240, 99, 17, 49, 49, 49, 113, 129, 129, 130, + 33, 83, 240, 240, 32, 20, 9, 240, 85, 65, 65, 49, + 65, 49, 65, 33, 81, 33, 65, 49, 50, 37, 240, 240, + 16, 15, 9, 240, 86, 49, 129, 131, 81, 129, 65, 49, + 49, 54, 240, 240, 14, 8, 240, 53, 49, 113, 115, 65, + 33, 65, 113, 99, 240, 224, 18, 9, 240, 99, 17, 49, + 49, 49, 113, 129, 51, 33, 65, 50, 49, 69, 240, 240, + 21, 10, 240, 115, 19, 65, 49, 65, 49, 85, 81, 49, + 65, 65, 65, 49, 67, 19, 240, 240, 48, 12, 6, 227, + 65, 65, 81, 81, 65, 81, 67, 240, 96, 14, 7, 240, + 35, 81, 97, 81, 97, 97, 49, 17, 67, 240, 160, 21, + 10, 240, 115, 34, 49, 49, 81, 33, 97, 17, 115, 97, + 49, 81, 49, 67, 34, 240, 240, 48, 14, 7, 240, 19, + 65, 97, 97, 81, 97, 97, 49, 21, 240, 128, 29, 11, + 240, 146, 66, 65, 65, 66, 50, 49, 17, 33, 17, 49, + 17, 17, 17, 65, 17, 17, 17, 49, 49, 33, 50, 67, + 240, 240, 80, 24, 10, 240, 114, 35, 65, 49, 67, 17, + 65, 33, 17, 65, 33, 17, 65, 49, 65, 65, 66, 49, + 240, 240, 64, 19, 8, 240, 67, 50, 49, 33, 65, 17, + 81, 17, 81, 17, 65, 33, 49, 67, 240, 208, 16, 9, + 240, 85, 81, 49, 49, 65, 53, 65, 129, 113, 115, 240, + 240, 48, 20, 8, 240, 67, 65, 49, 33, 65, 17, 81, + 17, 81, 17, 35, 50, 18, 67, 114, 97, 176, 19, 8, + 240, 52, 65, 49, 49, 49, 52, 49, 49, 49, 49, 49, + 49, 35, 34, 240, 160, 16, 7, 240, 19, 49, 49, 33, + 49, 34, 114, 97, 33, 34, 51, 240, 144, 15, 8, 240, + 38, 17, 33, 33, 65, 113, 97, 113, 113, 84, 240, 208, + 21, 9, 240, 51, 35, 33, 49, 65, 49, 65, 49, 49, + 65, 49, 49, 65, 49, 83, 240, 240, 32, 19, 9, 240, + 51, 50, 33, 49, 65, 49, 65, 33, 97, 17, 98, 113, + 129, 240, 240, 48, 28, 12, 240, 147, 19, 34, 33, 49, + 49, 49, 49, 33, 65, 34, 17, 81, 17, 17, 17, 82, + 34, 98, 34, 97, 49, 240, 240, 192, 20, 10, 240, 114, + 35, 65, 33, 97, 17, 129, 130, 113, 33, 81, 49, 66, + 35, 240, 240, 48, 17, 9, 240, 51, 50, 33, 49, 81, + 17, 98, 113, 129, 129, 115, 240, 240, 32, 17, 8, 240, + 53, 49, 33, 49, 33, 97, 97, 97, 49, 33, 49, 53, + 240, 192, 15, 6, 161, 65, 81, 65, 81, 81, 81, 65, + 81, 81, 65, 97, 64, 8, 4, 195, 17, 17, 240, 240, + 48, 15, 5, 129, 65, 65, 49, 65, 65, 65, 49, 65, + 65, 65, 49, 64, 8, 4, 145, 33, 17, 240, 240, 112, + 5, 2, 65, 240, 96, 6, 2, 97, 17, 240, 32, 14, + 6, 240, 240, 20, 18, 17, 33, 33, 33, 33, 37, 240, + 64, 15, 5, 177, 65, 65, 67, 18, 17, 17, 33, 17, + 18, 19, 240, 32, 12, 5, 240, 179, 18, 17, 17, 65, + 33, 34, 240, 32, 16, 6, 240, 17, 81, 81, 35, 34, + 17, 33, 33, 33, 33, 37, 240, 64, 12, 6, 240, 240, + 20, 21, 17, 81, 49, 35, 240, 80, 13, 6, 242, 65, + 65, 82, 65, 81, 81, 65, 81, 66, 160, 15, 7, 240, + 240, 116, 34, 17, 49, 33, 49, 33, 52, 81, 52, 160, + 17, 7, 242, 81, 97, 100, 49, 33, 34, 33, 33, 33, + 17, 17, 34, 240, 128, 9, 3, 113, 114, 33, 18, 17, + 34, 160, 11, 5, 209, 210, 65, 65, 50, 49, 65, 34, + 128, 17, 7, 240, 17, 97, 97, 81, 34, 35, 65, 17, + 49, 33, 17, 66, 240, 128, 11, 4, 146, 33, 49, 49, + 49, 33, 49, 50, 224, 22, 10, 0, 6, 36, 19, 49, + 33, 33, 49, 33, 33, 33, 33, 33, 17, 17, 33, 34, + 240, 240, 32, 17, 7, 240, 240, 81, 19, 49, 33, 49, + 33, 33, 33, 17, 17, 34, 240, 128, 14, 6, 240, 240, + 34, 34, 33, 17, 49, 17, 33, 50, 240, 96, 16, 7, + 240, 240, 98, 18, 50, 17, 49, 33, 33, 34, 36, 49, + 82, 192, 15, 6, 240, 240, 20, 18, 17, 33, 33, 33, + 33, 35, 81, 67, 128, 11, 6, 240, 240, 20, 17, 17, + 65, 81, 240, 208, 12, 5, 240, 194, 33, 17, 35, 17, + 33, 19, 240, 32, 12, 4, 161, 33, 49, 35, 33, 33, + 49, 17, 18, 224, 15, 6, 240, 240, 17, 33, 18, 17, + 49, 17, 49, 17, 52, 240, 64, 15, 6, 240, 240, 17, + 33, 18, 33, 33, 33, 33, 17, 50, 240, 96, 20, 8, + 240, 240, 177, 33, 17, 18, 33, 17, 33, 17, 33, 33, + 17, 17, 50, 18, 240, 176, 13, 6, 240, 240, 20, 17, + 17, 81, 81, 17, 20, 240, 80, 16, 6, 240, 240, 17, + 33, 18, 18, 33, 17, 49, 17, 51, 66, 35, 144, 10, + 4, 240, 83, 33, 33, 49, 17, 33, 224, 8, 6, 240, + 240, 101, 240, 240, 112, 8, 12, 0, 9, 11, 0, 9, + 16, 9, 5, 177, 17, 17, 17, 0, 5, 112, 6, 5, + 164, 0, 6, 48, +}; + +//***************************************************************************** +// +// The font definition for the 12 point Cm italic font. +// +//***************************************************************************** +const tFont g_sFontCm12i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 10, + + // + // The height of the font. + // + 13, + + // + // The baseline of the font. + // + 10, + + // + // The offset to each character in the font. + // + { + 0, 5, 15, 25, 46, 61, 93, 118, + 124, 139, 154, 164, 176, 182, 188, 193, + 209, 228, 240, 255, 272, 287, 303, 321, + 336, 354, 370, 376, 383, 394, 403, 417, + 433, 455, 474, 492, 509, 529, 544, 558, + 576, 597, 609, 623, 644, 658, 687, 711, + 730, 746, 766, 785, 801, 816, 837, 856, + 884, 904, 921, 938, 953, 961, 976, 984, + 989, 995, 1009, 1024, 1036, 1052, 1064, 1077, + 1092, 1109, 1118, 1129, 1146, 1157, 1179, 1196, + 1210, 1226, 1241, 1252, 1264, 1276, 1291, 1306, + 1326, 1339, 1355, 1365, 1373, 1381, 1390, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm12iData +}; diff --git a/grlib/fonts/fontcm14.c b/grlib/fonts/fontcm14.c new file mode 100644 index 0000000..59a5818 --- /dev/null +++ b/grlib/fonts/fontcm14.c @@ -0,0 +1,242 @@ +//***************************************************************************** +// +// fontcm14.c - Font definition for the 14pt Cm font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 14 point +// Bold: no +// Italic: no +// Memory usage: 1828 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 14 point Cm font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm14Data[1626] = +{ + 5, 6, 0, 10, 64, 12, 2, 1, 17, 17, 17, 17, + 17, 17, 17, 81, 112, 14, 5, 82, 17, 33, 17, 33, + 17, 17, 33, 17, 240, 240, 224, 27, 10, 225, 33, 81, + 33, 97, 33, 97, 33, 57, 49, 33, 97, 33, 73, 49, + 33, 97, 17, 97, 33, 97, 33, 97, 33, 80, 28, 7, + 35, 49, 17, 17, 17, 33, 17, 17, 33, 17, 17, 33, + 67, 99, 65, 17, 18, 17, 17, 17, 33, 17, 36, 81, + 240, 32, 35, 12, 19, 65, 49, 38, 49, 49, 33, 65, + 49, 17, 81, 34, 17, 99, 17, 19, 99, 34, 81, 17, + 49, 65, 33, 49, 50, 33, 49, 49, 50, 18, 131, 240, + 176, 28, 11, 50, 129, 33, 113, 33, 113, 33, 113, 17, + 130, 51, 65, 65, 50, 17, 33, 49, 66, 66, 65, 33, + 37, 18, 240, 240, 80, 9, 3, 50, 33, 33, 17, 33, + 240, 176, 15, 4, 81, 49, 33, 49, 49, 49, 49, 49, + 49, 49, 65, 49, 65, 15, 4, 65, 65, 49, 65, 49, + 49, 49, 49, 49, 33, 49, 33, 112, 15, 6, 33, 49, + 17, 17, 35, 51, 33, 17, 17, 49, 0, 6, 48, 15, + 10, 240, 145, 145, 145, 145, 145, 89, 81, 145, 145, 145, + 240, 160, 8, 3, 240, 242, 33, 33, 17, 32, 7, 4, + 240, 240, 35, 240, 96, 5, 2, 240, 81, 112, 17, 6, + 65, 81, 65, 81, 81, 65, 81, 81, 65, 81, 81, 65, + 81, 81, 80, 20, 7, 244, 49, 33, 33, 65, 17, 65, + 17, 65, 17, 65, 17, 65, 33, 34, 36, 240, 128, 13, + 6, 195, 81, 81, 81, 81, 81, 81, 81, 53, 240, 64, + 15, 7, 244, 33, 50, 17, 65, 97, 81, 81, 66, 65, + 102, 240, 112, 16, 6, 211, 33, 49, 81, 35, 82, 81, + 17, 49, 17, 49, 35, 240, 80, 17, 7, 240, 49, 82, + 65, 17, 49, 33, 33, 49, 38, 81, 97, 83, 240, 112, + 17, 7, 244, 49, 97, 18, 50, 17, 113, 97, 18, 49, + 17, 65, 36, 240, 128, 21, 7, 240, 20, 33, 49, 17, + 19, 34, 34, 17, 65, 17, 65, 17, 65, 33, 34, 51, + 240, 128, 14, 7, 245, 17, 49, 81, 97, 81, 97, 97, + 97, 97, 240, 160, 19, 7, 244, 33, 65, 17, 65, 33, + 33, 51, 49, 50, 17, 65, 18, 49, 36, 240, 128, 19, + 7, 244, 33, 49, 33, 65, 17, 65, 17, 50, 35, 17, + 97, 17, 49, 36, 240, 144, 5, 2, 161, 145, 112, 7, + 2, 161, 145, 17, 17, 48, 11, 2, 129, 49, 17, 17, + 17, 17, 17, 17, 17, 10, 10, 0, 6, 41, 240, 105, + 0, 6, 48, 15, 5, 240, 113, 145, 65, 65, 49, 49, + 65, 33, 17, 33, 34, 32, 16, 5, 18, 33, 33, 17, + 33, 17, 33, 65, 49, 65, 65, 225, 240, 32, 32, 10, + 36, 82, 49, 68, 33, 33, 17, 33, 33, 18, 65, 17, + 18, 65, 17, 18, 65, 17, 17, 17, 34, 17, 36, 18, + 50, 81, 54, 240, 240, 32, 24, 10, 65, 130, 129, 17, + 113, 17, 97, 33, 97, 49, 85, 65, 65, 65, 81, 49, + 81, 35, 51, 240, 240, 16, 21, 8, 134, 49, 65, 33, + 65, 33, 49, 53, 49, 50, 33, 65, 33, 65, 33, 50, + 22, 240, 176, 22, 9, 179, 33, 34, 33, 17, 33, 66, + 17, 97, 17, 129, 129, 97, 33, 81, 34, 49, 68, 240, + 240, 22, 9, 150, 65, 65, 49, 65, 49, 81, 33, 81, + 33, 81, 33, 81, 33, 81, 33, 65, 38, 240, 240, 21, + 10, 168, 49, 81, 49, 145, 49, 85, 81, 49, 81, 97, + 33, 97, 33, 81, 40, 240, 240, 32, 18, 8, 135, 33, + 65, 33, 113, 33, 68, 65, 33, 65, 33, 65, 113, 99, + 240, 224, 21, 10, 196, 82, 50, 33, 97, 33, 145, 145, + 68, 17, 97, 49, 81, 50, 65, 84, 240, 240, 48, 23, + 9, 147, 35, 33, 65, 49, 65, 49, 65, 54, 49, 65, + 49, 65, 49, 65, 49, 65, 35, 35, 240, 208, 13, 4, + 67, 33, 49, 49, 49, 49, 49, 49, 49, 35, 208, 15, + 6, 131, 65, 81, 81, 81, 81, 81, 81, 33, 33, 35, + 240, 96, 25, 10, 163, 51, 33, 65, 65, 49, 81, 33, + 97, 18, 98, 17, 97, 49, 81, 65, 65, 66, 35, 51, + 240, 240, 16, 17, 8, 131, 97, 113, 113, 113, 113, 113, + 65, 33, 65, 33, 65, 22, 240, 176, 34, 11, 179, 82, + 34, 81, 50, 66, 49, 17, 33, 17, 49, 17, 33, 17, + 49, 17, 33, 17, 49, 34, 33, 49, 34, 33, 49, 34, + 33, 35, 67, 240, 240, 64, 29, 10, 162, 67, 34, 65, + 50, 65, 49, 17, 49, 49, 18, 33, 49, 33, 33, 49, + 49, 17, 49, 51, 49, 66, 34, 81, 240, 240, 32, 22, + 9, 180, 65, 65, 49, 65, 33, 97, 17, 97, 17, 97, + 17, 97, 33, 65, 50, 34, 68, 240, 240, 17, 8, 134, + 49, 65, 33, 65, 33, 65, 37, 49, 113, 113, 113, 99, + 240, 224, 26, 9, 195, 66, 49, 49, 81, 17, 97, 17, + 97, 17, 97, 17, 97, 33, 18, 17, 51, 17, 99, 129, + 17, 97, 17, 114, 24, 10, 166, 81, 65, 65, 65, 65, + 65, 69, 81, 49, 81, 49, 81, 49, 81, 65, 17, 19, + 51, 240, 240, 16, 23, 8, 148, 17, 18, 33, 17, 17, + 66, 17, 81, 35, 130, 33, 81, 17, 81, 18, 50, 17, + 20, 240, 176, 19, 10, 169, 17, 49, 49, 17, 49, 49, + 81, 145, 145, 145, 145, 145, 117, 240, 240, 48, 24, 10, + 163, 51, 33, 81, 49, 81, 49, 81, 49, 81, 49, 81, + 49, 81, 49, 81, 65, 49, 99, 240, 240, 64, 23, 10, + 163, 66, 33, 81, 49, 81, 65, 49, 81, 49, 97, 17, + 113, 17, 113, 17, 129, 145, 240, 240, 80, 32, 14, 227, + 35, 50, 33, 65, 65, 49, 65, 65, 65, 33, 17, 33, + 81, 33, 17, 33, 81, 33, 17, 33, 98, 50, 114, 50, + 114, 50, 0, 7, 64, 23, 10, 163, 50, 49, 65, 81, + 33, 113, 17, 129, 145, 114, 17, 97, 49, 65, 81, 34, + 67, 240, 240, 16, 20, 10, 163, 66, 33, 81, 65, 49, + 82, 33, 97, 17, 129, 145, 145, 145, 131, 240, 240, 64, + 17, 8, 135, 17, 65, 113, 97, 97, 97, 113, 97, 65, + 17, 81, 23, 240, 160, 16, 3, 2, 17, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 34, 13, 6, 113, + 33, 17, 33, 33, 33, 34, 18, 0, 6, 112, 16, 3, + 2, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 18, 8, 4, 81, 33, 17, 240, 240, 240, 5, 2, + 65, 240, 128, 8, 3, 65, 17, 33, 34, 240, 208, 16, + 8, 240, 240, 179, 66, 33, 68, 50, 33, 49, 49, 17, + 38, 240, 160, 19, 8, 130, 113, 113, 113, 113, 19, 50, + 34, 33, 65, 33, 65, 33, 50, 37, 240, 176, 14, 6, + 240, 240, 19, 34, 33, 17, 81, 82, 33, 35, 240, 80, + 19, 8, 240, 97, 113, 113, 51, 17, 34, 34, 33, 65, + 33, 65, 34, 49, 54, 240, 160, 14, 6, 240, 240, 19, + 33, 49, 21, 17, 81, 49, 35, 240, 80, 15, 5, 113, + 49, 17, 33, 65, 51, 49, 65, 65, 65, 51, 240, 32, + 18, 7, 240, 240, 101, 33, 33, 49, 33, 51, 65, 115, + 34, 49, 17, 65, 36, 32, 20, 8, 130, 113, 113, 113, + 113, 19, 50, 33, 49, 49, 49, 49, 49, 49, 35, 19, + 240, 160, 10, 4, 145, 177, 49, 49, 49, 49, 35, 208, + 14, 4, 161, 177, 49, 49, 49, 49, 49, 49, 17, 17, + 18, 32, 19, 7, 114, 97, 97, 97, 97, 33, 49, 17, + 67, 65, 33, 49, 33, 35, 18, 240, 112, 13, 4, 66, + 49, 49, 49, 49, 49, 49, 49, 49, 35, 208, 24, 11, + 0, 7, 1, 18, 19, 50, 33, 33, 49, 49, 33, 49, + 49, 33, 49, 49, 33, 35, 22, 240, 240, 64, 18, 8, + 240, 240, 177, 19, 50, 33, 49, 49, 49, 49, 49, 49, + 35, 19, 240, 160, 16, 7, 240, 240, 100, 34, 34, 17, + 65, 17, 65, 18, 34, 36, 240, 128, 19, 8, 240, 240, + 162, 19, 50, 34, 33, 65, 33, 65, 33, 50, 37, 49, + 113, 99, 80, 17, 8, 240, 240, 179, 66, 34, 33, 65, + 33, 65, 34, 49, 53, 113, 113, 99, 13, 6, 240, 240, + 17, 18, 34, 65, 81, 81, 67, 240, 96, 16, 6, 240, + 240, 18, 17, 17, 34, 18, 65, 19, 17, 49, 20, 240, + 80, 15, 6, 240, 65, 81, 69, 33, 81, 81, 33, 33, + 33, 50, 240, 80, 17, 8, 240, 240, 162, 34, 49, 49, + 49, 49, 49, 49, 49, 49, 54, 240, 160, 15, 7, 240, + 240, 82, 34, 33, 33, 49, 33, 66, 82, 240, 240, 16, + 23, 10, 0, 6, 34, 19, 18, 33, 33, 33, 49, 33, + 33, 49, 17, 18, 81, 34, 81, 49, 240, 240, 48, 16, + 8, 240, 240, 163, 34, 33, 33, 82, 98, 81, 34, 34, + 50, 240, 160, 19, 7, 240, 240, 82, 49, 33, 33, 49, + 33, 65, 17, 66, 97, 81, 65, 17, 66, 80, 12, 6, + 240, 245, 65, 65, 65, 65, 49, 21, 240, 64, 8, 7, + 240, 240, 198, 0, 6, 32, 8, 14, 0, 10, 77, 0, + 12, 48, 11, 5, 97, 17, 17, 17, 33, 17, 0, 6, + 64, 5, 5, 164, 0, 7, +}; + +//***************************************************************************** +// +// The font definition for the 14 point Cm font. +// +//***************************************************************************** +const tFont g_sFontCm14 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 12, + + // + // The height of the font. + // + 14, + + // + // The baseline of the font. + // + 11, + + // + // The offset to each character in the font. + // + { + 0, 5, 17, 31, 58, 86, 121, 149, + 158, 173, 188, 203, 218, 226, 233, 238, + 255, 275, 288, 303, 319, 336, 353, 374, + 388, 407, 426, 431, 438, 449, 459, 474, + 490, 522, 546, 567, 589, 611, 632, 650, + 671, 694, 707, 722, 747, 764, 798, 827, + 849, 866, 892, 916, 939, 958, 982, 1005, + 1037, 1060, 1080, 1097, 1113, 1126, 1142, 1150, + 1155, 1163, 1179, 1198, 1212, 1231, 1245, 1260, + 1278, 1298, 1308, 1322, 1341, 1354, 1378, 1396, + 1412, 1431, 1448, 1461, 1477, 1492, 1509, 1524, + 1547, 1563, 1582, 1594, 1602, 1610, 1621, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm14Data +}; diff --git a/grlib/fonts/fontcm14b.c b/grlib/fonts/fontcm14b.c new file mode 100644 index 0000000..780678e --- /dev/null +++ b/grlib/fonts/fontcm14b.c @@ -0,0 +1,237 @@ +//***************************************************************************** +// +// fontcm14b.c - Font definition for the 14pt Cm bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 14 point +// Bold: yes +// Italic: no +// Memory usage: 1768 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 14 point Cm bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm14bData[1566] = +{ + 5, 6, 0, 10, 64, 11, 3, 50, 18, 18, 18, 18, + 17, 130, 18, 160, 11, 6, 194, 18, 18, 18, 33, 33, + 0, 6, 112, 24, 11, 240, 240, 113, 33, 113, 33, 113, + 33, 58, 65, 33, 113, 33, 74, 49, 33, 113, 33, 113, + 33, 240, 16, 25, 6, 33, 81, 53, 17, 17, 17, 17, + 17, 17, 20, 67, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 35, 65, 240, 34, 11, 18, 129, 33, 49, 49, 36, + 65, 33, 33, 65, 33, 17, 81, 33, 17, 98, 17, 145, + 36, 65, 33, 33, 49, 49, 33, 33, 65, 33, 33, 82, + 240, 144, 25, 10, 194, 113, 33, 97, 33, 97, 17, 114, + 51, 34, 65, 33, 18, 33, 49, 35, 65, 50, 68, 35, + 240, 240, 16, 7, 3, 98, 18, 33, 240, 208, 16, 4, + 33, 33, 49, 33, 49, 49, 49, 49, 49, 49, 49, 65, + 49, 65, 17, 4, 1, 65, 49, 65, 49, 49, 49, 49, + 49, 49, 49, 33, 49, 33, 48, 16, 6, 33, 81, 49, + 17, 17, 35, 51, 33, 17, 17, 49, 240, 240, 240, 15, + 10, 240, 145, 145, 145, 145, 145, 89, 81, 145, 145, 145, + 240, 160, 9, 3, 240, 194, 18, 33, 33, 17, 32, 7, + 5, 240, 240, 164, 240, 176, 6, 3, 240, 194, 18, 160, + 17, 6, 65, 81, 65, 81, 81, 65, 81, 81, 65, 81, + 81, 65, 81, 81, 80, 20, 6, 211, 33, 49, 17, 49, + 17, 49, 17, 49, 17, 49, 17, 49, 17, 49, 35, 240, + 80, 13, 6, 225, 51, 81, 81, 81, 81, 81, 81, 53, + 240, 64, 15, 5, 178, 33, 33, 17, 33, 65, 49, 49, + 49, 83, 20, 240, 16, 17, 5, 178, 33, 33, 17, 33, + 65, 34, 81, 17, 33, 17, 33, 34, 240, 32, 16, 6, + 241, 81, 66, 49, 17, 33, 33, 33, 33, 37, 65, 67, + 240, 64, 16, 5, 164, 19, 33, 67, 33, 33, 65, 17, + 33, 17, 33, 19, 240, 32, 19, 5, 194, 33, 17, 17, + 33, 19, 33, 33, 17, 33, 17, 33, 17, 33, 34, 240, + 32, 13, 6, 197, 20, 65, 81, 65, 81, 81, 81, 81, + 240, 112, 18, 6, 211, 33, 49, 17, 49, 20, 51, 33, + 34, 17, 49, 17, 49, 35, 240, 80, 19, 5, 178, 33, + 33, 17, 33, 17, 33, 17, 33, 35, 17, 33, 17, 17, + 35, 240, 32, 7, 3, 242, 18, 114, 18, 160, 10, 3, + 242, 18, 114, 18, 33, 33, 17, 32, 11, 3, 194, 18, + 65, 34, 18, 18, 18, 18, 18, 10, 10, 0, 7, 73, + 240, 105, 240, 240, 176, 16, 5, 240, 98, 50, 65, 65, + 65, 49, 49, 65, 33, 17, 33, 34, 32, 15, 5, 98, + 33, 33, 17, 33, 65, 49, 65, 65, 130, 50, 240, 32, + 32, 10, 197, 66, 50, 49, 19, 18, 17, 17, 33, 33, + 17, 17, 49, 17, 17, 17, 49, 17, 17, 17, 49, 17, + 18, 21, 50, 81, 54, 240, 240, 32, 20, 11, 240, 193, + 146, 147, 113, 18, 113, 18, 97, 50, 86, 81, 51, 36, + 36, 240, 240, 64, 20, 8, 240, 22, 49, 65, 33, 65, + 37, 49, 65, 33, 65, 33, 65, 33, 65, 22, 240, 176, + 19, 8, 240, 51, 17, 33, 50, 17, 81, 17, 113, 113, + 113, 81, 33, 65, 52, 240, 176, 21, 9, 240, 54, 65, + 65, 49, 81, 33, 81, 33, 81, 33, 81, 33, 81, 33, + 65, 38, 240, 240, 19, 8, 240, 23, 33, 65, 33, 65, + 33, 33, 68, 65, 33, 65, 113, 65, 23, 240, 160, 18, + 8, 240, 23, 33, 65, 33, 65, 33, 33, 68, 65, 33, + 65, 113, 100, 240, 208, 19, 9, 240, 84, 65, 65, 33, + 81, 33, 129, 129, 52, 17, 81, 49, 65, 68, 240, 240, + 20, 9, 240, 56, 33, 65, 49, 65, 49, 65, 54, 49, + 65, 49, 65, 49, 65, 40, 240, 208, 12, 4, 131, 33, + 49, 49, 49, 49, 49, 49, 35, 208, 15, 7, 245, 81, + 97, 97, 97, 97, 33, 49, 33, 49, 51, 240, 144, 22, + 9, 240, 51, 35, 33, 65, 49, 34, 65, 17, 100, 81, + 34, 65, 34, 65, 50, 35, 20, 240, 208, 17, 7, 228, + 65, 97, 97, 97, 49, 33, 49, 33, 49, 33, 34, 22, + 240, 112, 34, 12, 240, 147, 83, 35, 66, 49, 17, 49, + 17, 49, 18, 33, 17, 49, 18, 33, 17, 49, 35, 33, + 49, 35, 33, 49, 49, 49, 35, 33, 35, 240, 240, 112, + 27, 10, 240, 83, 51, 35, 49, 49, 18, 33, 49, 18, + 33, 49, 34, 17, 49, 51, 49, 51, 49, 66, 35, 65, + 240, 240, 32, 21, 8, 240, 51, 65, 49, 33, 81, 17, + 81, 17, 81, 17, 81, 17, 81, 33, 49, 67, 240, 192, + 17, 8, 240, 22, 49, 65, 33, 65, 33, 65, 37, 49, + 113, 113, 100, 240, 208, 23, 9, 240, 84, 65, 65, 33, + 97, 17, 97, 17, 97, 17, 97, 18, 19, 17, 35, 33, + 69, 130, 114, 114, 23, 10, 240, 86, 81, 65, 65, 65, + 69, 81, 35, 65, 35, 65, 35, 65, 35, 17, 20, 19, + 240, 240, 32, 18, 7, 243, 17, 17, 50, 17, 65, 19, + 84, 98, 17, 65, 17, 65, 21, 240, 128, 18, 8, 240, + 23, 17, 33, 33, 17, 33, 33, 65, 113, 113, 113, 113, + 85, 240, 176, 23, 10, 240, 83, 51, 33, 81, 49, 81, + 49, 81, 49, 81, 49, 81, 49, 81, 50, 50, 68, 240, + 240, 64, 21, 11, 240, 117, 35, 50, 65, 66, 49, 82, + 49, 98, 17, 114, 17, 131, 130, 161, 240, 240, 128, 29, + 15, 240, 244, 20, 35, 34, 50, 65, 66, 50, 33, 82, + 35, 33, 98, 19, 33, 99, 35, 115, 35, 130, 49, 145, + 65, 0, 6, 32, 21, 11, 240, 132, 19, 66, 49, 98, + 17, 130, 146, 147, 113, 34, 81, 50, 52, 36, 240, 240, + 64, 19, 10, 240, 84, 35, 35, 49, 66, 33, 97, 17, + 115, 129, 145, 145, 131, 240, 240, 64, 18, 8, 240, 23, + 17, 50, 33, 50, 82, 82, 98, 82, 49, 18, 65, 23, + 240, 160, 15, 3, 50, 17, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 34, 12, 7, 240, 97, 49, 34, 34, + 18, 34, 0, 7, 16, 15, 3, 50, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 18, 8, 5, 178, 33, + 33, 0, 6, 48, 7, 3, 98, 18, 240, 240, 16, 7, + 3, 145, 34, 18, 240, 160, 15, 7, 240, 240, 84, 49, + 49, 52, 34, 33, 33, 49, 38, 240, 112, 17, 7, 226, + 97, 97, 100, 49, 49, 33, 49, 33, 49, 33, 49, 36, + 240, 128, 13, 5, 240, 179, 17, 33, 17, 65, 65, 33, + 34, 240, 32, 18, 7, 240, 34, 97, 97, 52, 33, 49, + 33, 49, 33, 49, 33, 49, 53, 240, 112, 14, 7, 240, + 240, 100, 33, 65, 22, 17, 98, 49, 36, 240, 128, 16, + 6, 131, 33, 33, 33, 33, 33, 68, 49, 81, 81, 81, + 68, 240, 80, 19, 7, 240, 240, 99, 17, 17, 50, 17, + 49, 36, 49, 101, 33, 65, 17, 65, 36, 32, 20, 8, + 240, 18, 113, 113, 113, 19, 50, 33, 49, 49, 49, 49, + 49, 49, 35, 19, 240, 160, 11, 4, 145, 49, 98, 49, + 49, 49, 49, 35, 208, 15, 5, 194, 50, 115, 65, 65, + 65, 65, 65, 65, 17, 33, 19, 32, 17, 7, 226, 97, + 97, 97, 19, 33, 33, 51, 65, 17, 65, 33, 38, 240, + 112, 12, 4, 130, 49, 49, 49, 49, 49, 49, 49, 35, + 208, 25, 12, 0, 7, 66, 19, 19, 50, 34, 33, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 35, 19, 19, 240, + 240, 112, 18, 8, 240, 240, 162, 19, 50, 33, 49, 49, + 49, 49, 49, 49, 35, 19, 240, 160, 16, 7, 240, 240, + 100, 33, 65, 17, 65, 17, 65, 17, 65, 36, 240, 128, + 18, 7, 240, 240, 85, 49, 49, 33, 49, 33, 49, 33, + 49, 36, 49, 97, 83, 64, 17, 7, 240, 240, 100, 33, + 49, 33, 49, 33, 49, 33, 49, 52, 97, 97, 83, 13, + 6, 240, 242, 18, 34, 17, 33, 81, 81, 68, 240, 80, + 14, 6, 240, 240, 20, 17, 49, 20, 82, 17, 49, 20, + 240, 80, 15, 6, 240, 65, 81, 69, 33, 81, 81, 33, + 33, 33, 35, 240, 80, 17, 8, 240, 240, 162, 34, 49, + 49, 49, 49, 49, 49, 49, 49, 54, 240, 160, 15, 8, + 240, 240, 164, 18, 34, 33, 65, 17, 83, 98, 97, 240, + 208, 21, 11, 0, 6, 115, 18, 19, 34, 18, 33, 65, + 18, 17, 86, 82, 33, 113, 33, 240, 240, 112, 16, 8, + 240, 240, 163, 19, 49, 17, 82, 114, 81, 18, 35, 19, + 240, 160, 18, 7, 240, 240, 83, 18, 33, 33, 50, 17, + 66, 82, 82, 81, 65, 17, 66, 80, 15, 6, 240, 245, + 17, 33, 33, 18, 50, 17, 33, 33, 21, 240, 64, 8, + 8, 0, 6, 7, 0, 7, 16, 8, 15, 0, 11, 46, + 0, 13, 32, 9, 4, 65, 17, 17, 17, 240, 240, 240, + 6, 6, 197, 0, 8, 48, +}; + +//***************************************************************************** +// +// The font definition for the 14 point Cm bold font. +// +//***************************************************************************** +const tFont g_sFontCm14b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 13, + + // + // The height of the font. + // + 14, + + // + // The baseline of the font. + // + 11, + + // + // The offset to each character in the font. + // + { + 0, 5, 16, 27, 51, 76, 110, 135, + 142, 158, 175, 191, 206, 215, 222, 228, + 245, 265, 278, 293, 310, 326, 342, 361, + 374, 392, 411, 418, 428, 439, 449, 465, + 480, 512, 532, 552, 571, 592, 611, 629, + 648, 668, 680, 695, 717, 734, 768, 795, + 816, 833, 856, 879, 897, 915, 938, 959, + 988, 1009, 1028, 1046, 1061, 1073, 1088, 1096, + 1103, 1110, 1125, 1142, 1155, 1173, 1187, 1203, + 1222, 1242, 1253, 1268, 1285, 1297, 1322, 1340, + 1356, 1374, 1391, 1404, 1418, 1433, 1450, 1465, + 1486, 1502, 1520, 1535, 1543, 1551, 1560, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm14bData +}; diff --git a/grlib/fonts/fontcm14i.c b/grlib/fonts/fontcm14i.c new file mode 100644 index 0000000..c9f8953 --- /dev/null +++ b/grlib/fonts/fontcm14i.c @@ -0,0 +1,245 @@ +//***************************************************************************** +// +// fontcm14i.c - Font definition for the 14pt Cm italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 14 point +// Bold: no +// Italic: yes +// Memory usage: 1868 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 14 point Cm italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm14iData[1665] = +{ + 5, 6, 0, 11, 32, 12, 4, 33, 49, 49, 33, 49, + 49, 33, 241, 240, 64, 11, 4, 65, 17, 17, 17, 17, + 17, 240, 240, 240, 29, 11, 240, 33, 33, 97, 33, 113, + 33, 97, 33, 113, 33, 58, 65, 33, 74, 49, 33, 97, + 33, 113, 33, 97, 33, 113, 33, 240, 48, 18, 10, 243, + 113, 33, 81, 34, 81, 131, 113, 145, 145, 100, 99, 19, + 240, 240, 208, 36, 11, 35, 65, 49, 21, 49, 33, 34, + 49, 33, 18, 65, 35, 81, 19, 113, 17, 19, 81, 33, + 17, 65, 33, 33, 50, 33, 33, 34, 49, 17, 49, 67, + 240, 240, 96, 35, 11, 51, 34, 50, 17, 34, 49, 33, + 33, 49, 49, 33, 49, 18, 33, 66, 17, 17, 17, 33, + 18, 18, 17, 33, 66, 17, 33, 97, 50, 66, 69, 0, + 6, 16, 7, 2, 33, 17, 17, 240, 128, 17, 6, 65, + 65, 65, 81, 65, 81, 81, 65, 81, 81, 81, 81, 81, + 97, 160, 17, 6, 49, 81, 97, 81, 81, 81, 81, 65, + 81, 81, 65, 81, 65, 65, 176, 9, 6, 129, 17, 50, + 50, 50, 0, 8, 15, 9, 240, 240, 17, 129, 129, 113, + 88, 65, 129, 129, 240, 240, 176, 7, 2, 240, 81, 17, + 17, 80, 6, 4, 240, 211, 240, 224, 5, 2, 240, 81, + 144, 18, 9, 113, 113, 129, 113, 129, 113, 129, 113, 113, + 129, 113, 129, 113, 129, 240, 32, 22, 7, 240, 34, 65, + 33, 33, 49, 33, 49, 18, 34, 17, 49, 33, 49, 33, + 33, 66, 240, 240, 32, 13, 5, 209, 35, 65, 49, 65, + 65, 49, 65, 52, 240, 96, 19, 7, 240, 35, 49, 33, + 33, 17, 17, 34, 33, 66, 65, 66, 83, 17, 82, 240, + 240, 18, 8, 240, 67, 66, 33, 50, 33, 52, 113, 113, + 113, 34, 34, 52, 240, 240, 80, 18, 6, 240, 17, 81, + 81, 65, 65, 81, 17, 33, 17, 36, 82, 65, 81, 65, + 144, 18, 7, 240, 20, 33, 97, 18, 50, 33, 97, 97, + 17, 50, 66, 36, 240, 240, 16, 21, 7, 240, 35, 49, + 33, 36, 49, 33, 34, 33, 33, 49, 33, 49, 33, 33, + 66, 240, 240, 32, 17, 7, 243, 17, 33, 18, 33, 49, + 81, 97, 81, 97, 97, 97, 240, 240, 32, 21, 8, 240, + 67, 66, 33, 49, 49, 50, 17, 82, 66, 33, 33, 65, + 33, 49, 67, 240, 240, 96, 20, 8, 240, 67, 65, 49, + 34, 49, 33, 65, 33, 50, 52, 98, 33, 34, 51, 240, + 240, 112, 8, 4, 240, 98, 240, 34, 240, 48, 8, 3, + 240, 17, 209, 33, 33, 128, 12, 4, 240, 49, 161, 49, + 49, 49, 33, 49, 49, 112, 9, 10, 0, 7, 88, 184, + 0, 7, 96, 17, 6, 240, 209, 162, 49, 17, 66, 49, + 65, 33, 17, 49, 17, 33, 50, 144, 18, 6, 34, 49, + 33, 33, 33, 17, 49, 33, 17, 50, 66, 66, 240, 17, + 240, 208, 32, 10, 212, 81, 18, 17, 49, 17, 17, 33, + 34, 49, 17, 17, 17, 49, 17, 17, 17, 33, 33, 17, + 17, 33, 17, 33, 36, 65, 164, 240, 240, 224, 24, 9, + 97, 114, 97, 17, 97, 17, 81, 33, 81, 33, 65, 49, + 69, 49, 65, 49, 65, 34, 51, 240, 240, 112, 22, 10, + 198, 81, 65, 65, 65, 65, 49, 69, 81, 65, 65, 65, + 65, 65, 49, 65, 54, 240, 240, 224, 21, 10, 227, 17, + 50, 34, 49, 81, 49, 81, 33, 145, 145, 145, 81, 65, + 49, 84, 240, 240, 240, 23, 10, 198, 81, 50, 65, 65, + 49, 81, 49, 81, 49, 81, 33, 81, 49, 81, 49, 50, + 54, 240, 240, 224, 21, 10, 199, 65, 65, 65, 65, 65, + 132, 97, 33, 97, 33, 97, 65, 49, 65, 55, 240, 240, + 208, 19, 10, 199, 65, 65, 65, 65, 49, 148, 97, 33, + 97, 33, 97, 129, 132, 0, 5, 96, 23, 10, 227, 17, + 50, 49, 50, 65, 49, 129, 145, 67, 33, 81, 49, 81, + 65, 50, 83, 17, 240, 240, 208, 24, 12, 228, 20, 65, + 66, 81, 65, 97, 65, 102, 81, 65, 97, 65, 97, 65, + 82, 65, 68, 20, 0, 6, 48, 15, 7, 148, 65, 97, + 97, 97, 81, 97, 97, 97, 68, 240, 240, 16, 16, 8, + 180, 97, 97, 113, 113, 98, 97, 113, 65, 18, 67, 240, + 240, 112, 24, 12, 228, 35, 65, 65, 97, 34, 113, 17, + 129, 33, 132, 129, 49, 113, 49, 97, 65, 83, 51, 0, + 6, 48, 17, 8, 164, 81, 113, 113, 97, 113, 113, 113, + 49, 33, 65, 22, 240, 240, 64, 36, 13, 243, 82, 66, + 66, 65, 17, 49, 17, 65, 17, 50, 81, 17, 33, 17, + 81, 17, 33, 17, 65, 33, 17, 33, 65, 34, 33, 81, + 34, 33, 67, 67, 0, 6, 112, 28, 11, 211, 50, 66, + 49, 65, 17, 49, 65, 18, 33, 65, 33, 17, 81, 33, + 17, 65, 51, 65, 66, 65, 65, 67, 49, 0, 6, 23, + 9, 196, 66, 34, 33, 81, 33, 81, 17, 97, 17, 97, + 17, 81, 33, 66, 34, 34, 68, 240, 240, 160, 18, 10, + 198, 81, 65, 65, 65, 65, 50, 68, 81, 145, 145, 145, + 116, 0, 5, 96, 26, 9, 211, 66, 49, 34, 65, 33, + 81, 17, 97, 17, 97, 17, 81, 33, 34, 17, 50, 18, + 83, 129, 17, 98, 114, 192, 23, 9, 181, 81, 49, 65, + 49, 49, 50, 52, 81, 49, 65, 49, 65, 49, 49, 65, + 35, 50, 240, 240, 112, 21, 8, 179, 81, 33, 49, 49, + 49, 49, 51, 114, 113, 33, 65, 49, 33, 49, 19, 240, + 240, 80, 19, 10, 184, 33, 33, 49, 17, 49, 49, 81, + 145, 129, 145, 145, 145, 116, 240, 240, 240, 24, 10, 164, + 35, 34, 49, 65, 65, 65, 65, 65, 65, 49, 65, 65, + 65, 65, 65, 65, 49, 99, 0, 5, 96, 21, 10, 163, + 51, 33, 65, 65, 65, 65, 49, 81, 33, 97, 33, 97, + 17, 115, 129, 0, 7, 16, 32, 13, 211, 20, 34, 33, + 49, 65, 49, 49, 49, 65, 49, 49, 65, 33, 17, 17, + 81, 17, 33, 17, 82, 50, 98, 49, 113, 65, 113, 0, + 7, 112, 22, 11, 211, 35, 65, 49, 113, 17, 130, 146, + 146, 129, 17, 113, 49, 81, 65, 66, 51, 0, 5, 112, + 19, 10, 163, 51, 33, 65, 65, 49, 97, 17, 114, 130, + 129, 145, 145, 116, 0, 5, 96, 19, 9, 197, 49, 65, + 49, 49, 113, 113, 113, 113, 129, 49, 49, 49, 54, 240, + 240, 144, 18, 6, 50, 65, 65, 81, 81, 81, 65, 81, + 81, 81, 65, 81, 81, 81, 82, 64, 10, 4, 129, 17, + 33, 33, 17, 240, 240, 176, 18, 6, 50, 81, 65, 81, + 81, 81, 65, 81, 81, 81, 65, 81, 81, 81, 66, 64, + 8, 4, 81, 33, 17, 0, 6, 16, 5, 2, 65, 240, + 160, 6, 2, 65, 49, 240, 96, 18, 7, 240, 240, 115, + 49, 33, 33, 49, 33, 33, 49, 33, 17, 34, 17, 240, + 240, 18, 6, 114, 81, 65, 81, 83, 49, 33, 17, 49, + 17, 49, 17, 33, 50, 240, 192, 14, 6, 240, 240, 35, + 33, 33, 17, 81, 81, 49, 35, 240, 176, 20, 7, 178, + 97, 97, 81, 67, 49, 33, 33, 49, 33, 33, 49, 33, + 17, 34, 17, 240, 240, 14, 7, 240, 240, 116, 33, 49, + 21, 33, 97, 65, 36, 240, 240, 17, 7, 178, 65, 17, + 65, 97, 83, 81, 97, 81, 97, 97, 97, 66, 82, 192, + 19, 7, 240, 240, 131, 49, 33, 33, 49, 33, 49, 33, + 33, 67, 97, 33, 33, 52, 160, 19, 7, 130, 81, 97, + 97, 100, 34, 33, 33, 49, 33, 33, 49, 33, 17, 66, + 240, 240, 11, 4, 146, 146, 49, 49, 33, 49, 50, 240, + 48, 17, 6, 240, 17, 240, 18, 49, 17, 81, 66, 65, + 81, 81, 33, 17, 51, 144, 20, 7, 130, 97, 97, 81, + 97, 34, 35, 65, 17, 49, 33, 49, 33, 17, 17, 34, + 240, 240, 15, 4, 82, 49, 33, 49, 49, 49, 33, 49, + 17, 18, 34, 240, 48, 25, 12, 0, 7, 66, 18, 19, + 66, 33, 49, 49, 33, 65, 49, 33, 49, 49, 49, 33, + 33, 17, 99, 0, 6, 32, 19, 8, 240, 240, 177, 19, + 35, 33, 49, 49, 49, 33, 65, 33, 17, 82, 240, 240, + 64, 17, 7, 240, 240, 115, 49, 49, 17, 65, 17, 65, + 17, 49, 51, 240, 240, 16, 21, 8, 240, 240, 193, 18, + 49, 17, 33, 49, 49, 49, 49, 49, 33, 49, 18, 65, + 113, 99, 208, 18, 6, 240, 240, 34, 49, 33, 17, 49, + 17, 49, 17, 33, 51, 81, 65, 67, 128, 11, 6, 240, + 245, 34, 65, 81, 65, 81, 240, 224, 13, 5, 240, 194, + 33, 17, 33, 82, 17, 33, 19, 240, 112, 15, 5, 113, + 65, 49, 65, 52, 33, 65, 49, 65, 17, 34, 240, 128, + 19, 7, 240, 240, 98, 33, 17, 17, 33, 49, 33, 33, + 33, 49, 33, 51, 17, 240, 224, 18, 6, 240, 240, 18, + 17, 17, 17, 17, 49, 17, 33, 33, 33, 17, 51, 240, + 176, 25, 9, 0, 5, 98, 33, 17, 17, 17, 33, 17, + 49, 17, 33, 33, 33, 33, 33, 33, 17, 66, 18, 240, + 240, 128, 12, 7, 240, 240, 101, 65, 97, 81, 97, 69, + 240, 240, 21, 7, 240, 240, 98, 33, 17, 17, 33, 49, + 33, 33, 33, 49, 33, 52, 82, 33, 33, 51, 176, 13, + 5, 240, 164, 49, 49, 49, 33, 17, 17, 50, 240, 112, + 8, 7, 240, 240, 198, 0, 7, 16, 8, 13, 0, 9, + 108, 0, 13, 16, 11, 5, 97, 17, 17, 17, 33, 17, + 0, 7, 16, 6, 5, 164, 0, 7, 80, +}; + +//***************************************************************************** +// +// The font definition for the 14 point Cm italic font. +// +//***************************************************************************** +const tFont g_sFontCm14i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 11, + + // + // The height of the font. + // + 15, + + // + // The baseline of the font. + // + 11, + + // + // The offset to each character in the font. + // + { + 0, 5, 17, 28, 57, 75, 111, 146, + 153, 170, 187, 196, 211, 218, 224, 229, + 247, 269, 282, 301, 319, 337, 355, 376, + 393, 414, 434, 442, 450, 462, 471, 488, + 506, 538, 562, 584, 605, 628, 649, 668, + 691, 715, 730, 746, 770, 787, 823, 851, + 874, 892, 918, 941, 962, 981, 1005, 1026, + 1058, 1080, 1099, 1118, 1136, 1146, 1164, 1172, + 1177, 1183, 1201, 1219, 1233, 1253, 1267, 1284, + 1303, 1322, 1333, 1350, 1370, 1385, 1410, 1429, + 1446, 1467, 1485, 1496, 1509, 1524, 1543, 1561, + 1586, 1598, 1619, 1632, 1640, 1648, 1659, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm14iData +}; diff --git a/grlib/fonts/fontcm16.c b/grlib/fonts/fontcm16.c new file mode 100644 index 0000000..b6a052b --- /dev/null +++ b/grlib/fonts/fontcm16.c @@ -0,0 +1,263 @@ +//***************************************************************************** +// +// fontcm16.c - Font definition for the 16pt Cm font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 16 point +// Bold: no +// Italic: no +// Memory usage: 2084 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 16 point Cm font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm16Data[1881] = +{ + 5, 6, 0, 12, 96, 13, 2, 33, 17, 17, 17, 17, + 17, 17, 17, 17, 81, 144, 15, 6, 194, 18, 33, 33, + 33, 33, 17, 33, 33, 33, 0, 7, 96, 29, 12, 240, + 225, 161, 49, 113, 49, 113, 33, 129, 33, 75, 65, 49, + 113, 33, 91, 49, 49, 113, 49, 113, 33, 129, 33, 177, + 240, 48, 31, 7, 49, 83, 49, 17, 17, 17, 33, 17, + 17, 33, 17, 17, 33, 65, 17, 83, 83, 65, 17, 18, + 17, 17, 17, 33, 17, 36, 81, 240, 144, 43, 12, 18, + 81, 65, 17, 50, 49, 52, 65, 49, 33, 65, 49, 17, + 81, 49, 17, 82, 17, 17, 115, 17, 19, 97, 17, 34, + 65, 33, 49, 65, 33, 49, 49, 49, 49, 49, 50, 18, + 131, 240, 240, 128, 32, 13, 240, 18, 161, 33, 145, 33, + 145, 33, 145, 17, 162, 68, 65, 81, 68, 49, 65, 49, + 33, 81, 66, 98, 49, 17, 49, 36, 51, 0, 6, 96, + 10, 3, 98, 33, 33, 17, 33, 240, 240, 32, 18, 4, + 97, 33, 49, 33, 49, 49, 49, 49, 49, 49, 49, 49, + 65, 49, 65, 49, 18, 4, 65, 65, 49, 65, 49, 49, + 49, 49, 49, 49, 49, 33, 49, 49, 33, 112, 14, 7, + 145, 65, 17, 33, 36, 66, 51, 18, 49, 0, 9, 32, + 18, 12, 240, 240, 177, 177, 177, 177, 177, 107, 97, 177, + 177, 177, 177, 240, 240, 192, 9, 3, 240, 240, 98, 33, + 33, 17, 80, 8, 5, 240, 240, 244, 240, 240, 96, 5, + 2, 240, 145, 144, 20, 7, 81, 97, 81, 97, 97, 81, + 97, 97, 81, 97, 97, 81, 97, 97, 81, 97, 97, 96, + 25, 7, 240, 18, 65, 33, 33, 65, 17, 65, 17, 65, + 17, 65, 17, 65, 17, 65, 17, 65, 33, 33, 67, 240, + 240, 15, 6, 225, 51, 81, 81, 81, 81, 81, 81, 81, + 81, 53, 240, 160, 18, 6, 211, 33, 34, 81, 17, 49, + 81, 65, 81, 65, 65, 65, 49, 21, 240, 160, 19, 7, + 244, 33, 65, 17, 65, 81, 51, 113, 113, 97, 17, 65, + 17, 50, 36, 240, 240, 21, 8, 240, 81, 113, 83, 81, + 17, 65, 33, 49, 49, 49, 49, 55, 81, 113, 99, 240, + 240, 64, 19, 7, 241, 100, 49, 97, 18, 50, 17, 113, + 97, 97, 18, 49, 17, 65, 36, 240, 240, 24, 7, 240, + 20, 33, 49, 33, 81, 19, 34, 33, 33, 65, 17, 65, + 17, 65, 17, 65, 33, 33, 67, 240, 240, 18, 7, 113, + 102, 17, 65, 81, 81, 97, 81, 97, 97, 97, 97, 97, + 240, 240, 32, 25, 8, 240, 52, 34, 50, 17, 81, 18, + 65, 34, 18, 67, 65, 50, 17, 81, 17, 81, 18, 49, + 67, 240, 240, 80, 23, 7, 243, 50, 33, 33, 65, 17, + 65, 17, 65, 18, 34, 35, 17, 97, 81, 33, 49, 36, + 240, 240, 16, 5, 2, 193, 177, 144, 7, 2, 193, 177, + 17, 17, 80, 13, 2, 161, 49, 17, 17, 17, 17, 17, + 17, 17, 17, 48, 10, 11, 0, 9, 90, 240, 138, 0, + 8, 48, 16, 6, 240, 240, 33, 177, 81, 81, 65, 81, + 65, 81, 81, 49, 35, 128, 17, 6, 115, 33, 49, 17, + 49, 81, 65, 81, 65, 81, 81, 240, 33, 240, 192, 41, + 12, 244, 113, 66, 65, 34, 49, 34, 17, 33, 33, 33, + 17, 65, 33, 17, 17, 65, 33, 17, 17, 65, 33, 17, + 17, 65, 33, 18, 17, 34, 33, 33, 34, 34, 65, 113, + 71, 0, 6, 32, 27, 12, 240, 33, 177, 161, 17, 129, + 33, 129, 33, 129, 49, 97, 65, 117, 97, 66, 65, 97, + 65, 97, 51, 68, 0, 6, 16, 25, 9, 240, 55, 49, + 66, 33, 81, 33, 65, 54, 49, 66, 33, 81, 33, 81, + 33, 81, 33, 65, 39, 240, 240, 128, 25, 11, 240, 164, + 33, 49, 65, 17, 33, 98, 17, 129, 17, 161, 161, 161, + 129, 33, 113, 49, 66, 85, 0, 5, 112, 26, 10, 240, + 86, 81, 66, 49, 81, 49, 97, 33, 97, 33, 97, 33, + 97, 33, 97, 33, 81, 49, 66, 38, 240, 240, 224, 25, + 10, 240, 88, 49, 97, 33, 97, 33, 49, 85, 81, 49, + 81, 49, 81, 97, 33, 97, 33, 82, 25, 240, 240, 176, + 22, 10, 240, 88, 49, 81, 49, 97, 33, 49, 85, 81, + 49, 81, 49, 81, 145, 145, 132, 0, 5, 96, 23, 11, + 240, 164, 82, 66, 49, 97, 33, 161, 161, 161, 84, 17, + 113, 49, 97, 65, 81, 85, 0, 5, 112, 27, 10, 240, + 83, 51, 33, 81, 49, 81, 49, 81, 55, 49, 81, 49, + 81, 49, 81, 49, 81, 49, 81, 35, 51, 240, 240, 176, + 15, 4, 131, 33, 49, 49, 49, 49, 49, 49, 49, 49, + 35, 240, 32, 18, 7, 240, 20, 81, 97, 97, 97, 97, + 97, 97, 97, 33, 49, 51, 240, 240, 16, 27, 11, 240, + 115, 67, 33, 81, 65, 65, 81, 49, 97, 33, 117, 97, + 49, 97, 65, 81, 81, 65, 82, 35, 67, 240, 240, 240, + 19, 8, 240, 20, 81, 113, 113, 113, 113, 113, 113, 113, + 65, 33, 65, 23, 240, 240, 48, 42, 12, 240, 147, 98, + 34, 97, 49, 17, 51, 49, 17, 49, 17, 49, 17, 49, + 17, 49, 33, 17, 33, 49, 33, 17, 33, 49, 33, 17, + 33, 49, 49, 49, 49, 49, 49, 35, 33, 35, 0, 6, + 16, 33, 11, 240, 114, 83, 34, 81, 51, 65, 49, 17, + 65, 49, 18, 49, 49, 34, 33, 49, 49, 33, 49, 65, + 17, 49, 67, 49, 82, 34, 97, 0, 5, 96, 26, 10, + 240, 131, 82, 50, 49, 81, 33, 113, 17, 113, 17, 113, + 17, 113, 17, 113, 33, 81, 50, 50, 83, 240, 240, 224, + 21, 9, 240, 54, 65, 66, 33, 81, 33, 81, 33, 66, + 37, 65, 129, 129, 129, 115, 240, 240, 192, 30, 11, 240, + 165, 81, 66, 49, 97, 33, 129, 17, 129, 17, 129, 17, + 129, 17, 129, 33, 35, 17, 67, 18, 100, 177, 17, 129, + 17, 145, 208, 27, 12, 240, 150, 113, 66, 81, 81, 81, + 66, 85, 113, 50, 97, 65, 97, 66, 81, 66, 81, 66, + 33, 19, 67, 0, 6, 32, 26, 8, 240, 36, 17, 18, + 33, 17, 17, 66, 17, 81, 18, 132, 114, 17, 81, 17, + 81, 18, 50, 17, 20, 240, 240, 64, 21, 11, 240, 137, + 33, 49, 49, 17, 65, 49, 97, 161, 161, 161, 161, 161, + 161, 133, 0, 5, 112, 26, 11, 240, 115, 67, 33, 97, + 49, 97, 49, 97, 49, 97, 49, 97, 49, 97, 49, 97, + 49, 97, 65, 65, 100, 0, 6, 26, 12, 240, 147, 83, + 33, 113, 65, 81, 81, 81, 97, 49, 113, 49, 114, 33, + 129, 17, 145, 17, 161, 177, 0, 6, 96, 42, 16, 240, + 240, 35, 51, 51, 33, 81, 81, 65, 66, 49, 81, 49, + 17, 49, 81, 49, 17, 49, 97, 33, 18, 17, 113, 17, + 49, 17, 113, 17, 49, 17, 130, 50, 145, 81, 145, 81, + 0, 8, 80, 26, 12, 240, 148, 51, 65, 81, 82, 49, + 114, 17, 146, 177, 161, 17, 129, 49, 97, 66, 65, 97, + 51, 68, 0, 6, 16, 22, 12, 240, 147, 83, 49, 97, + 65, 81, 97, 49, 129, 17, 147, 161, 177, 177, 177, 163, + 0, 6, 80, 20, 9, 240, 56, 17, 81, 129, 113, 113, + 113, 129, 113, 113, 81, 17, 97, 24, 240, 240, 112, 18, + 4, 67, 17, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 51, 13, 6, 209, 33, 17, 33, 33, + 33, 34, 18, 0, 8, 48, 18, 4, 67, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 19, + 8, 5, 177, 49, 18, 0, 8, 32, 5, 2, 97, 240, + 192, 9, 3, 113, 17, 33, 34, 240, 240, 64, 20, 8, + 0, 6, 19, 66, 33, 83, 50, 33, 49, 49, 17, 17, + 49, 17, 37, 240, 240, 64, 24, 9, 240, 50, 129, 129, + 129, 129, 19, 66, 49, 49, 81, 33, 81, 33, 81, 34, + 49, 49, 19, 240, 240, 144, 15, 7, 240, 240, 227, 34, + 49, 17, 97, 97, 113, 49, 51, 240, 240, 24, 9, 240, + 145, 129, 129, 129, 67, 17, 49, 50, 33, 81, 33, 81, + 33, 81, 49, 50, 67, 18, 240, 240, 112, 15, 7, 240, + 240, 212, 33, 65, 22, 17, 97, 113, 49, 51, 240, 240, + 15, 5, 179, 33, 65, 65, 51, 49, 65, 65, 65, 65, + 51, 240, 112, 19, 8, 0, 6, 37, 33, 49, 49, 49, + 52, 65, 113, 132, 34, 65, 17, 81, 37, 160, 24, 8, + 240, 18, 113, 113, 113, 113, 19, 50, 33, 49, 49, 49, + 49, 49, 49, 49, 49, 35, 19, 240, 240, 48, 12, 4, + 209, 177, 49, 49, 49, 49, 49, 35, 240, 32, 16, 5, + 240, 34, 210, 65, 65, 65, 65, 65, 65, 65, 17, 33, + 19, 112, 24, 8, 240, 18, 113, 113, 113, 113, 49, 49, + 33, 65, 17, 82, 17, 65, 33, 65, 49, 35, 34, 240, + 240, 48, 15, 4, 130, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 35, 240, 32, 28, 12, 0, 9, 2, 18, 35, + 50, 34, 33, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 35, 19, 19, 0, 6, 16, 21, 8, 0, + 6, 2, 19, 50, 33, 49, 49, 49, 49, 49, 49, 49, + 49, 35, 19, 240, 240, 48, 19, 8, 0, 6, 35, 65, + 49, 33, 81, 17, 81, 17, 81, 33, 49, 67, 240, 240, + 80, 21, 8, 0, 6, 2, 19, 50, 34, 33, 65, 33, + 65, 33, 65, 33, 49, 52, 65, 113, 99, 208, 21, 9, + 0, 7, 3, 81, 50, 33, 81, 33, 81, 33, 81, 49, + 50, 67, 17, 129, 129, 115, 160, 15, 6, 240, 240, 98, + 18, 34, 17, 33, 81, 81, 81, 67, 240, 192, 19, 7, + 240, 240, 211, 17, 17, 50, 17, 65, 36, 33, 65, 18, + 49, 17, 19, 240, 240, 17, 7, 240, 113, 97, 97, 86, + 33, 97, 97, 97, 49, 33, 49, 51, 240, 240, 21, 8, + 0, 6, 2, 34, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 34, 66, 18, 240, 240, 48, 19, 8, 0, 6, 3, + 34, 33, 49, 49, 49, 65, 17, 81, 17, 97, 113, 240, + 240, 96, 28, 12, 0, 9, 3, 19, 34, 33, 49, 49, + 65, 33, 33, 81, 17, 17, 17, 81, 17, 17, 17, 97, + 49, 113, 49, 0, 6, 64, 18, 9, 0, 6, 99, 35, + 49, 33, 98, 129, 99, 81, 49, 50, 51, 240, 240, 112, + 21, 8, 0, 6, 3, 34, 33, 49, 49, 49, 65, 17, + 81, 17, 97, 113, 113, 65, 17, 82, 224, 15, 7, 240, + 240, 198, 17, 49, 81, 81, 81, 81, 65, 22, 240, 224, + 8, 9, 0, 9, 8, 0, 9, 16, 8, 16, 0, 16, + 15, 0, 16, 16, 9, 5, 177, 17, 17, 17, 0, 8, + 48, 8, 6, 240, 51, 17, 0, 9, 112, +}; + +//***************************************************************************** +// +// The font definition for the 16 point Cm font. +// +//***************************************************************************** +const tFont g_sFontCm16 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 14, + + // + // The height of the font. + // + 17, + + // + // The baseline of the font. + // + 13, + + // + // The offset to each character in the font. + // + { + 0, 5, 18, 33, 62, 93, 136, 168, + 178, 196, 214, 228, 246, 255, 263, 268, + 288, 313, 328, 346, 365, 386, 405, 429, + 447, 472, 495, 500, 507, 520, 530, 546, + 563, 604, 631, 656, 681, 707, 732, 754, + 777, 804, 819, 837, 864, 883, 925, 958, + 984, 1005, 1035, 1062, 1088, 1109, 1135, 1161, + 1203, 1229, 1251, 1271, 1289, 1302, 1320, 1328, + 1333, 1342, 1362, 1386, 1401, 1425, 1440, 1455, + 1474, 1498, 1510, 1526, 1550, 1565, 1593, 1614, + 1633, 1654, 1675, 1690, 1709, 1726, 1747, 1766, + 1794, 1812, 1833, 1848, 1856, 1864, 1873, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm16Data +}; diff --git a/grlib/fonts/fontcm16b.c b/grlib/fonts/fontcm16b.c new file mode 100644 index 0000000..cc1c45a --- /dev/null +++ b/grlib/fonts/fontcm16b.c @@ -0,0 +1,263 @@ +//***************************************************************************** +// +// fontcm16b.c - Font definition for the 16pt Cm bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 16 point +// Bold: yes +// Italic: no +// Memory usage: 2080 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 16 point Cm bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm16bData[1877] = +{ + 5, 6, 0, 12, 96, 12, 3, 50, 18, 18, 18, 18, + 18, 17, 178, 18, 208, 16, 8, 240, 19, 19, 19, 19, + 49, 49, 33, 49, 49, 49, 0, 10, 32, 31, 12, 240, + 225, 33, 129, 33, 113, 49, 113, 49, 113, 33, 75, 65, + 49, 113, 33, 91, 65, 33, 113, 49, 113, 33, 129, 33, + 129, 33, 240, 48, 24, 8, 33, 113, 101, 35, 34, 19, + 19, 19, 19, 20, 85, 69, 19, 34, 19, 34, 19, 33, + 52, 81, 240, 224, 40, 12, 210, 97, 34, 18, 49, 50, + 17, 20, 50, 17, 49, 66, 17, 49, 66, 17, 33, 113, + 33, 177, 35, 81, 34, 17, 65, 50, 17, 65, 50, 17, + 49, 66, 17, 49, 82, 240, 240, 128, 29, 13, 240, 227, + 146, 33, 130, 33, 130, 17, 148, 51, 66, 65, 84, 49, + 66, 19, 17, 67, 35, 98, 51, 33, 52, 35, 0, 6, + 96, 10, 4, 131, 19, 49, 33, 49, 240, 240, 192, 19, + 5, 49, 49, 65, 50, 49, 50, 50, 50, 50, 50, 50, + 50, 65, 66, 50, 65, 81, 20, 5, 1, 81, 65, 66, + 65, 66, 50, 50, 50, 50, 50, 50, 49, 50, 49, 65, + 49, 64, 15, 7, 34, 82, 82, 54, 36, 38, 17, 18, + 17, 50, 0, 8, 32, 18, 12, 240, 240, 177, 177, 177, + 177, 177, 177, 107, 97, 177, 177, 177, 240, 240, 192, 10, + 4, 240, 240, 227, 19, 49, 33, 49, 96, 9, 5, 240, + 240, 164, 20, 240, 240, 96, 7, 3, 240, 240, 50, 18, + 208, 20, 7, 81, 97, 81, 97, 97, 81, 97, 97, 81, + 97, 97, 97, 81, 97, 97, 81, 97, 96, 23, 7, 240, + 116, 49, 33, 34, 34, 18, 34, 18, 34, 18, 34, 18, + 34, 18, 34, 33, 33, 52, 240, 240, 15, 7, 240, 145, + 52, 82, 82, 82, 82, 82, 82, 82, 54, 240, 224, 19, + 7, 240, 116, 34, 34, 18, 34, 82, 81, 81, 81, 33, + 33, 49, 37, 22, 240, 224, 19, 7, 240, 116, 34, 34, + 18, 34, 81, 66, 113, 98, 18, 34, 18, 34, 36, 240, + 240, 20, 8, 240, 225, 98, 83, 65, 18, 65, 18, 49, + 34, 33, 50, 39, 82, 69, 240, 240, 48, 20, 8, 240, + 165, 52, 65, 117, 49, 50, 98, 34, 34, 19, 34, 33, + 49, 67, 240, 240, 80, 22, 7, 240, 131, 50, 18, 18, + 34, 21, 34, 34, 18, 34, 18, 34, 18, 34, 33, 34, + 36, 240, 240, 16, 7, 240, 102, 21, 97, 81, 81, 97, + 82, 82, 82, 82, 240, 240, 32, 22, 8, 240, 165, 34, + 50, 18, 50, 19, 33, 52, 70, 18, 35, 18, 50, 18, + 50, 37, 240, 240, 64, 23, 7, 240, 116, 34, 33, 34, + 34, 18, 34, 18, 34, 18, 34, 37, 18, 34, 18, 33, + 51, 240, 240, 16, 8, 3, 240, 50, 18, 162, 18, 208, + 11, 4, 240, 147, 19, 211, 19, 49, 33, 49, 96, 13, + 3, 240, 50, 18, 65, 34, 18, 18, 18, 18, 18, 64, + 10, 11, 0, 9, 90, 240, 138, 0, 8, 48, 17, 6, + 240, 240, 129, 81, 81, 81, 81, 66, 50, 66, 18, 18, + 18, 35, 128, 16, 6, 211, 34, 18, 18, 18, 65, 65, + 81, 81, 240, 33, 81, 240, 192, 38, 11, 240, 164, 82, + 66, 49, 19, 33, 33, 18, 33, 33, 17, 18, 34, 17, + 17, 18, 34, 17, 17, 18, 34, 17, 17, 18, 34, 17, + 33, 19, 18, 50, 97, 70, 0, 5, 96, 23, 11, 240, + 178, 146, 146, 132, 113, 18, 97, 34, 97, 35, 86, 65, + 66, 65, 82, 35, 37, 240, 240, 240, 25, 10, 240, 88, + 50, 66, 34, 66, 34, 66, 34, 50, 54, 66, 66, 34, + 66, 34, 66, 34, 66, 24, 240, 240, 192, 24, 10, 240, + 132, 17, 35, 50, 34, 81, 18, 97, 18, 130, 130, 130, + 97, 34, 81, 35, 49, 84, 240, 240, 208, 25, 11, 240, + 119, 82, 66, 50, 81, 50, 82, 34, 82, 34, 82, 34, + 82, 34, 82, 34, 81, 50, 66, 39, 0, 6, 27, 10, + 240, 88, 50, 65, 50, 65, 50, 33, 33, 34, 33, 85, + 82, 33, 82, 33, 33, 34, 81, 34, 66, 24, 240, 240, + 192, 23, 9, 240, 56, 34, 65, 34, 65, 34, 33, 66, + 33, 69, 66, 33, 66, 33, 66, 114, 101, 240, 240, 160, + 26, 11, 240, 164, 17, 66, 50, 50, 81, 34, 97, 34, + 97, 34, 146, 146, 53, 33, 82, 50, 66, 84, 17, 0, + 5, 96, 25, 11, 240, 122, 34, 66, 50, 66, 50, 66, + 50, 66, 56, 50, 66, 50, 66, 50, 66, 50, 66, 42, + 240, 240, 240, 15, 7, 230, 50, 82, 82, 82, 82, 82, + 82, 82, 82, 54, 240, 224, 19, 8, 240, 53, 82, 98, + 98, 98, 98, 98, 98, 34, 34, 34, 34, 52, 240, 240, + 80, 27, 11, 240, 116, 51, 34, 65, 66, 49, 82, 33, + 98, 18, 101, 98, 34, 82, 35, 66, 50, 66, 66, 36, + 36, 240, 240, 240, 20, 8, 240, 21, 66, 98, 98, 98, + 98, 98, 98, 49, 34, 49, 34, 49, 23, 240, 240, 48, + 43, 14, 240, 212, 99, 35, 83, 49, 17, 65, 18, 49, + 18, 49, 18, 49, 18, 49, 18, 49, 34, 17, 34, 49, + 34, 17, 34, 49, 34, 17, 34, 49, 50, 50, 49, 50, + 50, 35, 33, 52, 0, 7, 16, 32, 11, 240, 116, 51, + 35, 65, 52, 49, 49, 19, 33, 49, 34, 33, 49, 35, + 17, 49, 50, 17, 49, 67, 49, 82, 49, 82, 35, 81, + 0, 5, 96, 25, 11, 240, 164, 82, 66, 49, 97, 34, + 98, 18, 98, 18, 98, 18, 98, 18, 98, 34, 66, 50, + 66, 84, 0, 6, 21, 9, 240, 55, 50, 50, 34, 50, + 34, 50, 34, 50, 38, 50, 114, 114, 114, 100, 240, 240, + 176, 29, 11, 240, 164, 82, 66, 49, 97, 34, 98, 18, + 98, 18, 98, 18, 98, 18, 98, 33, 19, 33, 51, 34, + 101, 146, 17, 131, 131, 192, 27, 12, 240, 151, 98, 66, + 66, 66, 66, 66, 66, 66, 70, 98, 50, 82, 50, 82, + 51, 66, 51, 17, 21, 35, 0, 6, 32, 25, 8, 240, + 35, 33, 18, 35, 18, 65, 18, 65, 21, 69, 84, 17, + 66, 17, 66, 18, 50, 17, 20, 240, 240, 64, 25, 11, + 240, 136, 34, 34, 34, 17, 50, 49, 17, 50, 49, 17, + 50, 49, 82, 146, 146, 146, 146, 118, 0, 5, 112, 26, + 11, 240, 116, 51, 34, 81, 50, 81, 50, 81, 50, 81, + 50, 81, 50, 81, 50, 81, 50, 81, 66, 49, 100, 0, + 6, 25, 13, 240, 181, 52, 50, 81, 82, 81, 98, 49, + 114, 49, 115, 17, 146, 17, 146, 17, 162, 178, 178, 0, + 7, 32, 37, 17, 240, 240, 69, 21, 20, 50, 50, 65, + 82, 66, 49, 83, 50, 49, 98, 36, 17, 114, 33, 18, + 17, 116, 34, 17, 131, 35, 147, 50, 146, 66, 161, 65, + 0, 9, 32, 24, 12, 240, 165, 20, 51, 49, 98, 33, + 131, 147, 162, 148, 129, 18, 113, 50, 81, 67, 37, 21, + 0, 6, 16, 22, 13, 240, 181, 52, 50, 81, 98, 49, + 115, 33, 130, 17, 148, 162, 178, 178, 178, 164, 0, 7, + 16, 24, 9, 240, 56, 18, 51, 17, 66, 33, 50, 99, + 98, 98, 49, 50, 49, 34, 65, 19, 50, 24, 240, 240, + 112, 18, 3, 50, 17, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 34, 14, 7, 241, 33, 49, + 33, 33, 33, 49, 33, 54, 22, 0, 8, 18, 3, 50, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 18, 8, 5, 178, 33, 33, 0, 8, 32, 7, + 3, 98, 18, 240, 240, 160, 11, 4, 145, 49, 33, 49, + 51, 19, 240, 240, 112, 18, 9, 0, 6, 117, 50, 50, + 69, 50, 34, 34, 50, 34, 50, 55, 240, 240, 112, 24, + 9, 240, 51, 114, 114, 114, 114, 19, 51, 34, 34, 50, + 34, 50, 34, 50, 34, 49, 49, 19, 240, 240, 144, 15, + 7, 240, 240, 227, 49, 34, 18, 82, 82, 98, 33, 51, + 240, 240, 23, 10, 240, 163, 130, 130, 130, 67, 18, 50, + 35, 34, 66, 34, 66, 34, 66, 49, 66, 71, 240, 240, + 176, 17, 8, 0, 6, 36, 49, 50, 18, 50, 23, 18, + 98, 65, 52, 240, 240, 64, 18, 7, 240, 19, 50, 18, + 34, 82, 68, 66, 82, 82, 82, 82, 68, 240, 240, 16, + 20, 8, 0, 6, 22, 18, 35, 18, 34, 34, 34, 52, + 54, 54, 17, 81, 18, 50, 37, 160, 24, 10, 240, 83, + 130, 130, 130, 130, 19, 67, 34, 50, 50, 50, 50, 50, + 50, 50, 50, 36, 20, 240, 240, 176, 13, 5, 178, 50, + 195, 50, 50, 50, 50, 50, 36, 240, 96, 17, 6, 227, + 51, 243, 66, 66, 66, 66, 66, 66, 18, 18, 18, 18, + 35, 128, 23, 9, 240, 51, 114, 114, 114, 114, 35, 34, + 33, 66, 17, 84, 82, 18, 66, 34, 36, 19, 240, 240, + 112, 15, 5, 163, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 36, 240, 96, 27, 14, 0, 10, 67, 19, 34, 67, + 35, 18, 50, 50, 34, 50, 50, 34, 50, 50, 34, 50, + 50, 34, 36, 24, 0, 7, 16, 21, 10, 0, 7, 67, + 19, 67, 34, 50, 50, 50, 50, 50, 50, 50, 50, 36, + 20, 240, 240, 176, 19, 8, 0, 6, 35, 65, 49, 34, + 50, 18, 50, 18, 50, 18, 49, 67, 240, 240, 80, 20, + 9, 0, 6, 103, 50, 50, 34, 50, 34, 50, 34, 50, + 34, 34, 53, 66, 114, 100, 224, 22, 10, 0, 7, 99, + 33, 50, 35, 34, 66, 34, 66, 34, 66, 50, 35, 67, + 18, 130, 130, 116, 176, 15, 7, 240, 240, 198, 34, 18, + 34, 82, 82, 82, 68, 240, 240, 16, 16, 7, 240, 240, + 213, 18, 34, 19, 85, 17, 50, 18, 34, 21, 240, 240, + 18, 6, 225, 81, 81, 66, 53, 34, 66, 66, 17, 34, + 17, 34, 17, 50, 240, 176, 21, 10, 0, 7, 67, 35, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 35, 67, 19, + 240, 240, 176, 18, 9, 0, 6, 100, 19, 49, 49, 66, + 17, 82, 17, 99, 98, 129, 240, 240, 160, 24, 12, 0, + 9, 7, 19, 34, 34, 33, 66, 18, 33, 67, 17, 17, + 98, 19, 98, 33, 113, 49, 0, 6, 64, 18, 9, 0, + 6, 100, 19, 50, 17, 98, 114, 115, 81, 34, 35, 20, + 240, 240, 112, 21, 9, 0, 6, 100, 19, 34, 49, 66, + 17, 82, 17, 98, 114, 129, 66, 17, 82, 17, 83, 240, + 17, 7, 240, 240, 198, 17, 49, 33, 34, 66, 66, 33, + 33, 49, 22, 240, 224, 8, 9, 0, 9, 8, 0, 9, + 16, 9, 17, 0, 17, 15, 1, 0, 17, 16, 11, 5, + 84, 20, 17, 17, 33, 17, 0, 7, 96, 8, 6, 210, + 17, 17, 18, 0, 10, +}; + +//***************************************************************************** +// +// The font definition for the 16 point Cm bold font. +// +//***************************************************************************** +const tFont g_sFontCm16b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 15, + + // + // The height of the font. + // + 17, + + // + // The baseline of the font. + // + 13, + + // + // The offset to each character in the font. + // + { + 0, 5, 17, 33, 64, 88, 128, 157, + 167, 186, 206, 221, 239, 249, 258, 265, + 285, 308, 323, 342, 361, 381, 401, 423, + 439, 461, 484, 492, 503, 516, 526, 543, + 559, 597, 620, 645, 669, 694, 721, 744, + 770, 795, 810, 829, 856, 876, 919, 951, + 976, 997, 1026, 1053, 1078, 1103, 1129, 1154, + 1191, 1215, 1237, 1261, 1279, 1293, 1311, 1319, + 1326, 1337, 1355, 1379, 1394, 1417, 1434, 1452, + 1472, 1496, 1509, 1526, 1549, 1564, 1591, 1612, + 1631, 1651, 1673, 1688, 1704, 1722, 1743, 1761, + 1785, 1803, 1824, 1841, 1849, 1858, 1869, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm16bData +}; diff --git a/grlib/fonts/fontcm16i.c b/grlib/fonts/fontcm16i.c new file mode 100644 index 0000000..914f73a --- /dev/null +++ b/grlib/fonts/fontcm16i.c @@ -0,0 +1,267 @@ +//***************************************************************************** +// +// fontcm16i.c - Font definition for the 16pt Cm italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 16 point +// Bold: no +// Italic: yes +// Memory usage: 2132 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 16 point Cm italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm16iData[1931] = +{ + 5, 6, 0, 12, 96, 14, 4, 97, 49, 49, 49, 33, + 49, 49, 33, 177, 49, 240, 64, 11, 6, 194, 18, 18, + 18, 17, 33, 0, 9, 32, 30, 12, 240, 240, 65, 113, + 33, 113, 49, 113, 33, 113, 49, 74, 65, 49, 113, 33, + 90, 65, 33, 113, 49, 113, 33, 113, 49, 113, 240, 128, + 22, 12, 240, 240, 19, 129, 49, 97, 50, 97, 148, 145, + 177, 177, 177, 117, 49, 51, 35, 0, 6, 64, 44, 13, + 50, 97, 49, 33, 66, 49, 38, 49, 49, 49, 65, 49, + 33, 81, 33, 33, 97, 33, 17, 130, 17, 35, 97, 33, + 33, 81, 34, 33, 66, 33, 49, 50, 49, 33, 50, 65, + 33, 49, 98, 240, 240, 208, 37, 12, 240, 19, 34, 65, + 33, 49, 49, 49, 33, 50, 81, 65, 19, 33, 81, 33, + 17, 17, 49, 18, 18, 17, 33, 82, 17, 33, 129, 33, + 113, 65, 81, 101, 0, 6, 80, 8, 3, 98, 18, 17, + 240, 240, 128, 20, 7, 81, 81, 81, 81, 97, 81, 97, + 97, 82, 81, 97, 97, 97, 97, 97, 97, 113, 80, 20, + 7, 65, 97, 113, 97, 97, 97, 97, 97, 82, 81, 97, + 97, 81, 81, 97, 81, 81, 96, 16, 7, 49, 97, 65, + 17, 17, 51, 66, 51, 17, 65, 97, 0, 8, 48, 16, + 11, 0, 6, 17, 161, 161, 161, 90, 81, 161, 161, 145, + 0, 6, 48, 9, 3, 240, 240, 65, 33, 33, 17, 128, + 8, 5, 240, 240, 244, 240, 240, 96, 6, 2, 240, 113, + 17, 144, 20, 10, 129, 129, 145, 129, 145, 129, 145, 129, + 145, 129, 145, 129, 145, 129, 145, 129, 145, 144, 26, 8, + 240, 67, 66, 33, 49, 49, 33, 65, 33, 65, 18, 50, + 17, 65, 33, 65, 33, 50, 33, 34, 67, 240, 240, 96, + 16, 6, 240, 98, 49, 17, 65, 81, 81, 81, 65, 81, + 81, 53, 240, 160, 25, 8, 240, 67, 65, 49, 33, 17, + 33, 33, 17, 33, 34, 33, 97, 97, 82, 81, 65, 35, + 33, 82, 240, 240, 80, 24, 8, 240, 67, 65, 49, 33, + 65, 33, 17, 33, 34, 33, 82, 113, 113, 49, 49, 49, + 33, 82, 240, 240, 112, 21, 7, 240, 65, 97, 97, 81, + 97, 81, 97, 81, 17, 49, 33, 35, 17, 83, 65, 97, + 97, 160, 22, 8, 240, 49, 49, 52, 65, 97, 18, 66, + 33, 49, 49, 113, 113, 33, 50, 82, 52, 240, 240, 96, + 25, 8, 240, 83, 65, 33, 49, 97, 18, 66, 33, 34, + 49, 33, 65, 33, 65, 33, 50, 33, 49, 67, 240, 240, + 96, 20, 8, 240, 35, 33, 33, 34, 33, 65, 97, 113, + 97, 113, 113, 97, 113, 113, 240, 240, 112, 24, 9, 240, + 115, 81, 49, 49, 65, 49, 65, 53, 83, 66, 34, 33, + 81, 33, 81, 33, 65, 68, 240, 240, 160, 23, 8, 240, + 67, 66, 33, 34, 49, 33, 65, 33, 50, 33, 50, 52, + 113, 97, 49, 34, 51, 240, 240, 112, 9, 4, 240, 177, + 34, 210, 33, 240, 64, 11, 4, 240, 177, 49, 225, 49, + 49, 33, 49, 112, 14, 4, 240, 113, 49, 97, 49, 49, + 49, 33, 49, 49, 49, 112, 10, 11, 0, 9, 105, 240, + 137, 0, 8, 64, 19, 6, 240, 240, 65, 81, 66, 66, + 81, 50, 50, 50, 33, 17, 49, 17, 49, 35, 128, 21, + 7, 162, 65, 33, 33, 49, 17, 65, 33, 33, 66, 66, + 81, 17, 66, 193, 97, 240, 240, 48, 32, 11, 240, 180, + 85, 17, 51, 33, 33, 34, 65, 17, 18, 81, 17, 18, + 65, 33, 18, 65, 17, 34, 50, 17, 33, 19, 18, 65, + 81, 70, 0, 6, 26, 11, 240, 49, 161, 131, 129, 17, + 113, 33, 113, 33, 97, 49, 101, 81, 65, 81, 66, 49, + 82, 35, 52, 240, 240, 240, 24, 11, 240, 151, 97, 65, + 65, 81, 65, 65, 85, 97, 50, 65, 81, 65, 81, 65, + 66, 50, 65, 55, 0, 6, 24, 11, 240, 180, 17, 65, + 49, 17, 49, 81, 49, 146, 145, 161, 161, 97, 49, 81, + 81, 50, 99, 0, 6, 32, 26, 12, 240, 198, 113, 65, + 97, 81, 66, 81, 65, 97, 65, 97, 65, 82, 49, 97, + 65, 81, 81, 66, 55, 0, 6, 80, 25, 12, 240, 200, + 81, 81, 81, 161, 49, 116, 129, 33, 114, 33, 33, 65, + 81, 81, 81, 81, 66, 56, 0, 6, 64, 21, 11, 240, + 167, 81, 65, 81, 145, 49, 100, 113, 33, 98, 33, 97, + 161, 161, 132, 0, 6, 48, 23, 11, 240, 180, 97, 66, + 49, 81, 49, 161, 145, 161, 68, 33, 97, 49, 97, 65, + 51, 83, 0, 6, 32, 26, 13, 240, 228, 20, 81, 65, + 98, 65, 97, 66, 103, 97, 65, 97, 81, 97, 81, 97, + 65, 113, 65, 84, 20, 0, 7, 17, 8, 240, 68, 81, + 113, 98, 97, 113, 113, 98, 97, 113, 84, 240, 240, 96, + 18, 9, 240, 116, 97, 129, 129, 114, 113, 129, 114, 113, + 81, 18, 83, 240, 240, 192, 27, 13, 240, 228, 35, 81, + 65, 113, 49, 114, 33, 129, 33, 148, 130, 34, 113, 65, + 113, 66, 97, 81, 68, 51, 0, 6, 112, 20, 10, 240, + 132, 113, 145, 130, 129, 145, 130, 129, 81, 49, 65, 65, + 65, 40, 240, 240, 192, 45, 16, 240, 240, 83, 99, 65, + 17, 82, 97, 17, 65, 17, 97, 17, 49, 17, 113, 17, + 49, 17, 97, 33, 33, 33, 97, 33, 33, 33, 97, 33, + 17, 33, 97, 50, 49, 97, 50, 49, 83, 33, 36, 0, + 8, 64, 31, 13, 240, 226, 67, 82, 65, 81, 17, 49, + 97, 18, 33, 97, 18, 33, 81, 49, 33, 81, 51, 97, + 66, 81, 82, 81, 82, 67, 0, 7, 96, 26, 11, 240, + 180, 97, 65, 65, 97, 33, 113, 33, 113, 17, 129, 17, + 113, 33, 113, 33, 97, 65, 50, 100, 0, 6, 16, 21, + 11, 240, 166, 97, 65, 66, 65, 65, 81, 65, 65, 85, + 82, 145, 161, 161, 132, 0, 6, 48, 32, 11, 240, 195, + 98, 49, 65, 97, 33, 113, 33, 113, 17, 129, 17, 113, + 33, 113, 33, 50, 17, 65, 17, 18, 100, 33, 113, 17, + 129, 17, 130, 240, 27, 11, 240, 166, 97, 65, 65, 81, + 65, 65, 85, 97, 49, 81, 65, 81, 65, 81, 65, 81, + 65, 17, 20, 50, 0, 5, 96, 24, 10, 240, 147, 17, + 65, 34, 65, 65, 65, 65, 66, 147, 161, 145, 49, 81, + 50, 49, 65, 19, 240, 240, 240, 21, 11, 240, 137, 17, + 50, 33, 33, 49, 49, 97, 161, 146, 145, 161, 161, 145, + 133, 0, 6, 32, 27, 11, 240, 116, 51, 49, 65, 65, + 81, 65, 81, 65, 81, 65, 65, 65, 81, 65, 81, 65, + 65, 81, 50, 99, 0, 6, 48, 25, 12, 240, 148, 67, + 34, 81, 81, 65, 97, 65, 97, 49, 113, 33, 129, 33, + 129, 17, 146, 162, 161, 0, 7, 16, 39, 16, 240, 240, + 36, 35, 51, 34, 65, 65, 66, 65, 49, 82, 50, 49, + 82, 33, 17, 33, 113, 17, 33, 33, 113, 17, 33, 17, + 130, 49, 17, 130, 50, 145, 66, 145, 65, 0, 9, 25, + 13, 240, 227, 51, 81, 65, 114, 33, 145, 17, 162, 193, + 163, 145, 34, 113, 65, 97, 82, 67, 52, 0, 6, 112, + 22, 12, 240, 148, 67, 49, 81, 81, 65, 98, 33, 129, + 17, 146, 161, 177, 177, 162, 148, 0, 6, 112, 21, 11, + 240, 167, 65, 65, 65, 65, 81, 49, 145, 161, 145, 145, + 145, 65, 65, 66, 55, 0, 6, 19, 7, 178, 65, 97, + 97, 97, 81, 97, 97, 97, 81, 97, 97, 97, 81, 97, + 98, 80, 14, 6, 240, 50, 18, 17, 33, 34, 18, 18, + 18, 0, 7, 80, 19, 7, 178, 81, 97, 97, 97, 81, + 97, 97, 97, 81, 97, 97, 97, 81, 97, 82, 80, 8, + 5, 193, 34, 17, 0, 8, 32, 6, 2, 65, 17, 240, + 192, 9, 3, 146, 17, 34, 18, 240, 240, 16, 22, 8, + 0, 6, 34, 17, 49, 34, 34, 49, 33, 49, 49, 49, + 17, 17, 35, 50, 18, 240, 240, 64, 20, 6, 210, 81, + 65, 81, 83, 49, 33, 18, 33, 17, 49, 17, 34, 17, + 33, 50, 240, 192, 15, 6, 240, 240, 131, 33, 33, 18, + 65, 81, 81, 49, 35, 240, 176, 25, 8, 240, 98, 113, + 97, 113, 66, 17, 49, 34, 34, 33, 49, 49, 49, 49, + 17, 17, 35, 50, 18, 240, 240, 64, 15, 6, 240, 240, + 131, 33, 33, 20, 33, 81, 81, 49, 35, 240, 176, 18, + 8, 240, 98, 81, 113, 113, 84, 81, 113, 113, 113, 113, + 97, 113, 113, 82, 224, 21, 8, 0, 6, 50, 17, 49, + 34, 34, 49, 33, 49, 49, 49, 49, 34, 67, 113, 98, + 52, 192, 24, 8, 240, 34, 113, 113, 113, 116, 50, 33, + 49, 49, 49, 49, 34, 33, 49, 49, 17, 17, 50, 240, + 240, 64, 17, 6, 240, 98, 227, 33, 33, 33, 33, 65, + 66, 17, 33, 17, 51, 240, 176, 18, 8, 240, 226, 240, + 83, 65, 33, 65, 33, 98, 97, 113, 98, 97, 98, 67, + 208, 23, 7, 242, 97, 97, 81, 97, 34, 33, 17, 17, + 34, 65, 17, 65, 33, 49, 33, 17, 17, 34, 240, 240, + 17, 4, 146, 49, 49, 49, 33, 49, 49, 33, 49, 17, + 17, 17, 18, 240, 48, 31, 13, 0, 9, 114, 19, 19, + 33, 18, 34, 33, 33, 17, 49, 49, 65, 49, 49, 50, + 34, 33, 65, 49, 49, 17, 33, 49, 50, 0, 6, 96, + 24, 9, 0, 6, 114, 19, 33, 18, 33, 33, 17, 49, + 65, 49, 50, 33, 65, 49, 17, 33, 50, 240, 240, 128, + 19, 7, 240, 240, 227, 50, 33, 18, 49, 17, 65, 17, + 50, 17, 34, 51, 240, 240, 16, 24, 9, 0, 7, 2, + 18, 49, 18, 33, 33, 17, 49, 65, 49, 49, 50, 50, + 33, 65, 18, 81, 113, 115, 240, 21, 7, 240, 240, 226, + 17, 33, 34, 18, 33, 33, 49, 33, 49, 33, 34, 51, + 97, 97, 68, 144, 17, 7, 240, 240, 209, 34, 17, 18, + 17, 49, 81, 97, 97, 97, 240, 240, 48, 15, 6, 240, + 240, 131, 33, 33, 33, 98, 97, 17, 49, 20, 240, 176, + 17, 5, 193, 65, 65, 65, 36, 33, 65, 50, 49, 33, + 17, 17, 35, 240, 112, 23, 9, 0, 6, 114, 65, 17, + 33, 33, 66, 33, 65, 49, 49, 49, 65, 49, 17, 51, + 18, 240, 240, 112, 20, 7, 240, 240, 210, 33, 17, 33, + 17, 50, 17, 49, 33, 33, 33, 49, 33, 67, 240, 240, + 28, 11, 0, 8, 50, 49, 33, 17, 33, 33, 33, 50, + 33, 33, 49, 33, 49, 33, 49, 33, 49, 49, 33, 67, + 18, 0, 5, 112, 18, 8, 0, 6, 34, 18, 33, 18, + 17, 17, 33, 113, 113, 98, 70, 240, 240, 64, 23, 9, + 0, 6, 114, 65, 17, 33, 33, 66, 33, 65, 49, 49, + 50, 49, 49, 84, 114, 49, 34, 68, 224, 16, 7, 240, + 240, 228, 81, 81, 81, 81, 49, 34, 17, 33, 19, 240, + 240, 8, 8, 0, 8, 7, 0, 8, 16, 8, 15, 0, + 15, 14, 0, 15, 16, 10, 6, 209, 33, 33, 17, 33, + 0, 9, 80, 8, 6, 210, 17, 17, 18, 0, 10, +}; + +//***************************************************************************** +// +// The font definition for the 16 point Cm italic font. +// +//***************************************************************************** +const tFont g_sFontCm16i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 14, + + // + // The height of the font. + // + 17, + + // + // The baseline of the font. + // + 13, + + // + // The offset to each character in the font. + // + { + 0, 5, 19, 30, 60, 82, 126, 163, + 171, 191, 211, 227, 243, 252, 260, 266, + 286, 312, 328, 353, 377, 398, 420, 445, + 465, 489, 512, 521, 532, 546, 556, 575, + 596, 628, 654, 678, 702, 728, 753, 774, + 797, 823, 840, 858, 885, 905, 950, 981, + 1007, 1028, 1060, 1087, 1111, 1132, 1159, 1184, + 1223, 1248, 1270, 1291, 1310, 1324, 1343, 1351, + 1357, 1366, 1388, 1408, 1423, 1448, 1463, 1481, + 1502, 1526, 1543, 1561, 1584, 1601, 1632, 1656, + 1675, 1699, 1720, 1737, 1752, 1769, 1792, 1812, + 1840, 1858, 1881, 1897, 1905, 1913, 1923, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm16iData +}; diff --git a/grlib/fonts/fontcm18.c b/grlib/fonts/fontcm18.c new file mode 100644 index 0000000..461221b --- /dev/null +++ b/grlib/fonts/fontcm18.c @@ -0,0 +1,286 @@ +//***************************************************************************** +// +// fontcm18.c - Font definition for the 18pt Cm font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 18 point +// Bold: no +// Italic: no +// Memory usage: 2360 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 18 point Cm font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm18Data[2158] = +{ + 5, 7, 0, 17, 64, 16, 2, 33, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 49, 17, 176, 17, 6, 193, + 34, 18, 18, 33, 33, 33, 33, 17, 33, 33, 33, 0, + 9, 32, 36, 13, 240, 240, 81, 129, 49, 129, 49, 129, + 33, 129, 49, 129, 49, 76, 81, 33, 129, 49, 129, 49, + 92, 65, 49, 129, 33, 129, 49, 129, 49, 129, 49, 129, + 240, 128, 37, 8, 49, 113, 100, 49, 17, 33, 17, 33, + 33, 17, 33, 18, 17, 33, 81, 17, 100, 81, 18, 65, + 33, 18, 17, 33, 17, 33, 33, 17, 33, 17, 52, 97, + 240, 240, 96, 50, 14, 18, 113, 65, 18, 66, 49, 33, + 21, 65, 49, 49, 81, 49, 49, 81, 49, 33, 97, 49, + 18, 113, 17, 33, 131, 17, 35, 129, 33, 33, 97, 33, + 65, 66, 33, 65, 65, 49, 65, 49, 65, 65, 49, 81, + 33, 163, 0, 7, 48, 38, 13, 240, 18, 161, 33, 145, + 33, 145, 33, 145, 33, 145, 17, 162, 68, 65, 81, 67, + 65, 65, 49, 49, 65, 65, 17, 81, 81, 65, 18, 49, + 17, 34, 36, 51, 0, 8, 48, 11, 3, 97, 34, 33, + 33, 17, 33, 240, 240, 128, 22, 5, 49, 49, 49, 65, + 65, 49, 65, 65, 65, 65, 65, 65, 65, 65, 81, 65, + 65, 81, 81, 96, 22, 5, 1, 81, 65, 81, 65, 81, + 65, 65, 65, 65, 65, 65, 65, 49, 65, 65, 49, 65, + 49, 144, 16, 7, 145, 65, 17, 33, 34, 17, 66, 68, + 33, 17, 33, 49, 0, 11, 19, 12, 0, 6, 81, 177, + 177, 177, 177, 177, 107, 97, 177, 177, 177, 177, 0, 6, + 96, 11, 3, 240, 240, 146, 18, 33, 33, 17, 33, 80, + 8, 6, 0, 7, 69, 0, 6, 112, 6, 2, 240, 177, + 17, 176, 22, 8, 97, 113, 97, 113, 113, 97, 113, 113, + 97, 113, 113, 97, 113, 97, 113, 113, 97, 113, 113, 240, + 28, 7, 240, 130, 65, 33, 33, 65, 17, 65, 17, 65, + 17, 65, 17, 65, 17, 65, 17, 65, 17, 65, 33, 33, + 66, 240, 240, 128, 18, 6, 240, 81, 51, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 53, 240, 240, 16, 22, 7, + 240, 116, 33, 50, 17, 65, 17, 65, 97, 81, 81, 97, + 81, 81, 81, 65, 22, 240, 240, 96, 23, 7, 240, 116, + 33, 65, 17, 65, 81, 51, 113, 113, 97, 17, 65, 17, + 65, 17, 49, 52, 240, 240, 112, 24, 9, 240, 240, 33, + 129, 99, 97, 17, 81, 33, 65, 49, 65, 49, 49, 65, + 56, 97, 129, 101, 0, 5, 96, 22, 7, 240, 116, 49, + 97, 97, 18, 50, 17, 113, 97, 97, 97, 18, 49, 17, + 65, 36, 240, 240, 112, 27, 7, 240, 132, 34, 33, 33, + 81, 19, 34, 33, 33, 65, 17, 65, 17, 65, 17, 65, + 17, 65, 33, 33, 67, 240, 240, 112, 20, 9, 240, 65, + 135, 17, 81, 113, 129, 113, 129, 113, 129, 129, 129, 129, + 129, 0, 6, 32, 27, 8, 240, 179, 65, 50, 17, 81, + 17, 81, 34, 33, 67, 65, 34, 33, 66, 17, 81, 17, + 81, 33, 49, 67, 240, 240, 208, 26, 7, 240, 115, 65, + 33, 33, 65, 17, 65, 17, 65, 17, 65, 33, 34, 35, + 17, 97, 81, 33, 34, 36, 240, 240, 128, 7, 2, 225, + 17, 145, 17, 176, 10, 2, 225, 17, 145, 17, 17, 17, + 17, 80, 16, 2, 161, 17, 49, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 48, 11, 12, 0, 12, 11, 240, + 240, 123, 0, 10, 80, 20, 7, 240, 240, 114, 82, 209, + 97, 97, 97, 81, 81, 81, 97, 97, 65, 18, 49, 36, + 144, 21, 7, 147, 49, 49, 17, 65, 17, 65, 97, 81, + 97, 81, 97, 97, 97, 194, 82, 240, 240, 128, 45, 13, + 240, 21, 114, 66, 66, 98, 49, 35, 49, 33, 33, 49, + 49, 17, 17, 81, 33, 17, 17, 81, 33, 17, 17, 81, + 33, 17, 17, 81, 33, 17, 33, 50, 33, 33, 35, 34, + 50, 194, 82, 86, 0, 8, 80, 30, 13, 240, 65, 193, + 178, 161, 18, 145, 33, 130, 33, 129, 50, 113, 65, 118, + 97, 82, 81, 97, 81, 97, 81, 98, 35, 84, 0, 8, + 32, 29, 11, 240, 120, 65, 97, 49, 113, 33, 113, 33, + 97, 55, 65, 97, 49, 113, 33, 113, 33, 113, 33, 113, + 33, 97, 40, 0, 7, 32, 28, 12, 240, 212, 33, 50, + 65, 17, 33, 114, 33, 129, 17, 145, 17, 177, 177, 177, + 145, 33, 129, 33, 113, 66, 66, 100, 0, 8, 29, 12, + 240, 152, 81, 82, 65, 113, 49, 113, 49, 129, 33, 129, + 33, 129, 33, 129, 33, 129, 33, 113, 49, 113, 49, 82, + 56, 0, 8, 27, 11, 240, 122, 33, 113, 33, 113, 33, + 65, 81, 65, 86, 81, 65, 81, 65, 81, 161, 113, 33, + 113, 33, 98, 26, 0, 7, 26, 11, 240, 122, 33, 98, + 33, 113, 33, 113, 33, 65, 81, 65, 86, 81, 65, 81, + 65, 81, 161, 161, 148, 0, 7, 96, 26, 12, 240, 196, + 114, 51, 49, 113, 33, 129, 33, 177, 177, 177, 100, 17, + 129, 49, 113, 50, 97, 66, 66, 100, 0, 8, 30, 11, + 240, 116, 36, 33, 97, 49, 97, 49, 97, 49, 97, 56, + 49, 97, 49, 97, 49, 97, 49, 97, 49, 97, 49, 97, + 36, 36, 0, 7, 18, 6, 197, 49, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 53, 240, 240, 16, 21, 7, + 240, 20, 81, 97, 97, 97, 97, 97, 97, 97, 97, 33, + 49, 33, 34, 51, 240, 240, 128, 33, 12, 240, 147, 83, + 33, 97, 65, 81, 81, 65, 97, 49, 113, 33, 129, 17, + 17, 114, 34, 97, 65, 97, 81, 81, 82, 65, 97, 51, + 68, 0, 7, 80, 22, 9, 240, 52, 97, 129, 129, 129, + 129, 129, 129, 129, 129, 81, 33, 81, 33, 66, 24, 0, + 5, 96, 48, 13, 240, 179, 114, 34, 98, 51, 65, 17, + 49, 17, 65, 17, 49, 17, 65, 17, 49, 18, 49, 17, + 49, 33, 33, 33, 49, 33, 33, 33, 49, 34, 17, 33, + 49, 50, 49, 49, 50, 49, 49, 50, 49, 35, 99, 0, + 8, 32, 38, 11, 240, 114, 83, 34, 81, 50, 81, 51, + 65, 49, 17, 65, 49, 33, 49, 49, 34, 33, 49, 49, + 33, 49, 50, 17, 49, 65, 17, 49, 82, 49, 82, 34, + 97, 0, 7, 16, 29, 12, 240, 197, 98, 50, 65, 113, + 49, 113, 33, 145, 17, 145, 17, 145, 17, 145, 17, 145, + 33, 113, 49, 113, 66, 50, 101, 0, 8, 23, 10, 240, + 87, 65, 81, 49, 97, 33, 97, 33, 97, 33, 81, 54, + 65, 145, 145, 145, 145, 132, 0, 7, 38, 12, 240, 212, + 98, 65, 65, 113, 49, 129, 17, 145, 17, 145, 17, 145, + 17, 145, 17, 145, 33, 50, 33, 50, 17, 17, 33, 67, + 34, 116, 177, 33, 129, 33, 145, 17, 146, 224, 31, 13, + 240, 183, 113, 81, 97, 97, 81, 97, 81, 97, 81, 81, + 102, 113, 66, 97, 81, 97, 81, 97, 82, 81, 82, 33, + 20, 67, 0, 8, 48, 30, 8, 240, 51, 17, 33, 33, + 17, 17, 66, 17, 81, 17, 81, 34, 116, 114, 17, 81, + 17, 81, 17, 81, 18, 49, 33, 19, 240, 240, 208, 23, + 12, 240, 155, 17, 65, 65, 17, 65, 65, 97, 65, 97, + 177, 177, 177, 177, 177, 177, 177, 149, 0, 8, 31, 12, + 240, 148, 52, 33, 113, 49, 113, 49, 113, 49, 113, 49, + 113, 49, 113, 49, 113, 49, 113, 49, 113, 49, 98, 65, + 66, 100, 0, 8, 16, 28, 13, 240, 180, 83, 34, 113, + 65, 97, 81, 97, 97, 65, 113, 65, 114, 49, 129, 33, + 145, 33, 146, 17, 162, 178, 0, 10, 64, 46, 18, 240, + 240, 100, 51, 67, 34, 81, 97, 65, 82, 65, 81, 65, + 17, 65, 82, 49, 17, 65, 97, 49, 18, 33, 113, 33, + 49, 33, 113, 33, 49, 33, 129, 17, 49, 17, 146, 82, + 146, 82, 161, 81, 0, 14, 32, 30, 13, 240, 180, 67, + 65, 97, 82, 65, 114, 33, 145, 17, 178, 178, 161, 18, + 129, 49, 129, 65, 97, 82, 65, 113, 51, 84, 0, 8, + 32, 26, 14, 240, 212, 99, 49, 113, 97, 81, 114, 65, + 129, 49, 161, 17, 177, 17, 193, 209, 209, 209, 209, 195, + 0, 9, 64, 24, 10, 240, 89, 18, 81, 33, 82, 129, + 129, 130, 129, 129, 130, 129, 81, 33, 97, 17, 98, 25, + 0, 6, 48, 21, 4, 67, 17, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 51, + 15, 6, 209, 33, 17, 33, 33, 33, 34, 18, 18, 33, + 0, 9, 112, 21, 4, 67, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 19, + 8, 4, 161, 34, 17, 0, 7, 112, 7, 2, 65, 17, + 240, 240, 48, 10, 3, 113, 17, 33, 34, 33, 240, 240, + 160, 23, 9, 0, 8, 4, 65, 50, 54, 65, 49, 49, + 65, 49, 65, 17, 17, 50, 17, 35, 18, 0, 5, 112, + 27, 8, 240, 18, 113, 113, 113, 113, 113, 18, 66, 33, + 49, 65, 33, 65, 33, 65, 33, 65, 34, 33, 49, 18, + 240, 240, 208, 18, 6, 240, 240, 226, 49, 33, 17, 49, + 17, 81, 81, 97, 33, 50, 240, 240, 32, 27, 8, 240, + 82, 113, 113, 113, 113, 66, 17, 49, 34, 33, 65, 33, + 65, 33, 65, 33, 65, 49, 34, 66, 18, 240, 240, 176, + 18, 8, 0, 7, 36, 34, 65, 23, 17, 113, 113, 81, + 33, 49, 67, 240, 240, 208, 20, 5, 114, 33, 17, 33, + 17, 33, 65, 65, 51, 49, 65, 65, 65, 65, 65, 51, + 240, 192, 23, 9, 0, 8, 22, 33, 49, 65, 49, 65, + 49, 68, 81, 129, 149, 34, 81, 17, 97, 18, 66, 52, + 192, 27, 8, 240, 18, 113, 113, 113, 113, 113, 18, 66, + 33, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 35, + 19, 240, 240, 176, 14, 4, 145, 49, 226, 49, 49, 49, + 49, 49, 49, 35, 240, 96, 19, 5, 194, 50, 240, 35, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 17, 33, 19, + 112, 26, 9, 240, 50, 129, 129, 129, 129, 129, 50, 49, + 33, 81, 17, 99, 97, 33, 81, 49, 65, 50, 35, 35, + 0, 5, 96, 17, 4, 130, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 35, 240, 96, 31, 13, 0, 11, + 50, 18, 35, 66, 34, 49, 49, 49, 65, 49, 49, 65, + 49, 49, 65, 49, 49, 65, 49, 49, 65, 35, 19, 35, + 0, 8, 32, 23, 8, 0, 7, 2, 18, 66, 33, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 35, 19, 240, + 240, 176, 20, 9, 0, 8, 20, 65, 65, 33, 97, 17, + 97, 17, 97, 17, 97, 33, 65, 68, 0, 6, 25, 8, + 0, 7, 2, 19, 50, 33, 49, 65, 33, 65, 33, 65, + 33, 65, 34, 33, 49, 18, 65, 113, 113, 99, 208, 24, + 8, 0, 7, 34, 81, 34, 33, 65, 33, 65, 33, 65, + 33, 65, 49, 34, 66, 17, 113, 113, 113, 99, 144, 17, + 6, 240, 240, 194, 18, 34, 17, 33, 81, 81, 81, 81, + 67, 240, 240, 48, 21, 7, 0, 6, 35, 17, 17, 50, + 17, 65, 35, 114, 17, 65, 18, 49, 17, 19, 240, 240, + 112, 20, 7, 240, 241, 97, 97, 70, 49, 97, 97, 97, + 33, 49, 33, 49, 33, 66, 240, 240, 112, 23, 8, 0, + 7, 2, 34, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 34, 66, 18, 240, 240, 176, 19, 9, 0, 7, + 115, 50, 33, 65, 65, 33, 81, 33, 81, 33, 98, 114, + 0, 7, 32, 30, 12, 0, 10, 67, 19, 34, 33, 49, + 49, 49, 49, 49, 65, 17, 17, 17, 81, 17, 17, 17, + 82, 33, 17, 97, 49, 113, 49, 0, 8, 21, 10, 0, + 8, 99, 51, 49, 49, 97, 17, 129, 146, 98, 17, 81, + 65, 51, 51, 0, 6, 48, 23, 9, 0, 7, 115, 50, + 33, 65, 65, 33, 81, 33, 81, 33, 98, 114, 113, 129, + 129, 81, 17, 99, 240, 17, 7, 0, 6, 22, 17, 49, + 81, 97, 81, 81, 81, 65, 22, 240, 240, 96, 8, 9, + 0, 10, 24, 0, 11, 48, 9, 18, 0, 20, 47, 2, + 0, 22, 80, 11, 6, 209, 33, 17, 33, 33, 33, 0, + 11, 64, 8, 6, 210, 49, 34, 0, 12, 16, +}; + +//***************************************************************************** +// +// The font definition for the 18 point Cm font. +// +//***************************************************************************** +const tFont g_sFontCm18 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 16, + + // + // The height of the font. + // + 20, + + // + // The baseline of the font. + // + 15, + + // + // The offset to each character in the font. + // + { + 0, 5, 21, 38, 74, 111, 161, 199, + 210, 232, 254, 270, 289, 300, 308, 314, + 336, 364, 382, 404, 427, 451, 473, 500, + 520, 547, 573, 580, 590, 606, 617, 637, + 658, 703, 733, 762, 790, 819, 846, 872, + 898, 928, 946, 967, 1000, 1022, 1070, 1108, + 1137, 1160, 1198, 1229, 1259, 1282, 1313, 1341, + 1387, 1417, 1443, 1467, 1488, 1503, 1524, 1532, + 1539, 1549, 1572, 1599, 1617, 1644, 1662, 1682, + 1705, 1732, 1746, 1765, 1791, 1808, 1839, 1862, + 1882, 1907, 1931, 1948, 1969, 1989, 2012, 2031, + 2061, 2082, 2105, 2122, 2130, 2139, 2150, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm18Data +}; diff --git a/grlib/fonts/fontcm18b.c b/grlib/fonts/fontcm18b.c new file mode 100644 index 0000000..0793d44 --- /dev/null +++ b/grlib/fonts/fontcm18b.c @@ -0,0 +1,281 @@ +//***************************************************************************** +// +// fontcm18b.c - Font definition for the 18pt Cm bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 18 point +// Bold: yes +// Italic: no +// Memory usage: 2300 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 18 point Cm bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm18bData[2099] = +{ + 5, 7, 0, 16, 80, 17, 4, 3, 19, 19, 19, 19, + 34, 33, 49, 49, 49, 99, 19, 19, 240, 96, 18, 8, + 240, 18, 34, 35, 19, 19, 19, 49, 49, 33, 49, 49, + 49, 0, 11, 32, 35, 14, 240, 240, 65, 49, 145, 49, + 129, 49, 145, 49, 145, 49, 77, 81, 49, 145, 49, 145, + 49, 93, 65, 49, 145, 49, 145, 49, 129, 49, 145, 49, + 240, 240, 80, 32, 9, 49, 129, 102, 34, 17, 34, 18, + 17, 19, 18, 17, 19, 20, 101, 70, 85, 18, 17, 34, + 18, 17, 34, 18, 17, 33, 53, 97, 240, 240, 176, 45, + 14, 19, 97, 65, 18, 66, 50, 39, 50, 33, 65, 66, + 33, 49, 82, 33, 34, 97, 17, 49, 129, 49, 194, 35, + 113, 34, 33, 81, 50, 33, 66, 50, 33, 65, 66, 33, + 49, 97, 18, 49, 99, 0, 7, 32, 32, 13, 240, 18, + 162, 17, 146, 17, 146, 17, 147, 163, 52, 65, 81, 83, + 49, 84, 49, 67, 18, 17, 83, 19, 114, 35, 33, 67, + 36, 0, 8, 48, 11, 4, 130, 35, 19, 49, 33, 49, + 0, 5, 96, 21, 5, 49, 50, 49, 50, 49, 50, 50, + 50, 50, 50, 50, 50, 50, 65, 66, 65, 66, 65, 96, + 21, 5, 1, 66, 65, 66, 65, 66, 50, 50, 50, 50, + 50, 50, 50, 49, 50, 49, 50, 49, 144, 18, 9, 50, + 114, 81, 18, 17, 51, 18, 82, 72, 33, 18, 17, 82, + 0, 12, 112, 19, 12, 240, 240, 177, 177, 177, 177, 177, + 177, 107, 97, 177, 177, 177, 177, 0, 6, 96, 11, 4, + 240, 240, 226, 35, 19, 49, 33, 49, 160, 9, 6, 0, + 6, 101, 21, 0, 6, 16, 9, 4, 240, 240, 227, 19, + 19, 240, 96, 21, 8, 97, 113, 97, 113, 98, 97, 113, + 98, 97, 113, 98, 97, 113, 98, 97, 113, 97, 113, 240, + 28, 8, 240, 51, 65, 49, 34, 50, 18, 50, 18, 50, + 18, 50, 18, 50, 18, 50, 18, 50, 18, 50, 33, 49, + 67, 240, 240, 208, 18, 7, 240, 33, 52, 82, 82, 82, + 82, 82, 82, 82, 82, 82, 54, 240, 240, 96, 23, 8, + 240, 52, 34, 35, 19, 34, 19, 34, 98, 82, 98, 82, + 82, 33, 49, 49, 38, 23, 240, 240, 176, 24, 8, 240, + 37, 34, 35, 19, 19, 19, 19, 82, 66, 130, 99, 19, + 19, 19, 19, 18, 34, 52, 240, 240, 208, 22, 8, 240, + 97, 98, 83, 83, 65, 18, 49, 34, 49, 34, 33, 50, + 39, 82, 98, 69, 240, 240, 176, 23, 8, 240, 33, 49, + 53, 51, 81, 116, 65, 34, 99, 83, 18, 35, 18, 35, + 33, 34, 52, 240, 240, 208, 28, 8, 240, 67, 50, 49, + 33, 50, 18, 50, 18, 19, 35, 33, 34, 50, 18, 50, + 18, 50, 18, 50, 34, 33, 67, 240, 240, 208, 20, 8, + 240, 33, 118, 23, 17, 65, 33, 49, 97, 113, 113, 98, + 98, 98, 98, 240, 240, 224, 24, 9, 240, 84, 65, 51, + 18, 66, 19, 50, 23, 53, 70, 34, 51, 18, 66, 18, + 66, 19, 34, 68, 0, 6, 26, 8, 240, 51, 65, 49, + 34, 50, 18, 50, 18, 50, 18, 50, 33, 35, 38, 98, + 18, 49, 34, 34, 51, 240, 240, 224, 11, 4, 240, 147, + 19, 19, 147, 19, 19, 240, 96, 13, 4, 240, 147, 19, + 19, 146, 35, 19, 49, 33, 49, 160, 17, 4, 240, 83, + 19, 19, 33, 49, 49, 49, 34, 35, 19, 19, 19, 19, + 80, 11, 13, 0, 11, 60, 240, 240, 172, 0, 11, 64, + 20, 7, 240, 240, 114, 67, 82, 97, 97, 97, 81, 97, + 66, 82, 34, 18, 34, 36, 240, 16, 20, 7, 132, 33, + 50, 18, 34, 18, 34, 81, 82, 81, 97, 97, 194, 67, + 82, 240, 240, 128, 44, 13, 240, 36, 114, 66, 65, 114, + 49, 36, 33, 33, 34, 49, 33, 17, 18, 66, 17, 17, + 18, 66, 17, 17, 18, 66, 17, 17, 18, 66, 17, 18, + 18, 50, 17, 33, 36, 18, 66, 98, 71, 0, 8, 64, + 25, 13, 240, 240, 17, 194, 163, 164, 148, 129, 34, 129, + 35, 98, 35, 103, 97, 67, 65, 98, 52, 38, 0, 8, + 32, 27, 13, 240, 186, 82, 83, 50, 83, 50, 83, 50, + 67, 71, 98, 67, 66, 83, 50, 83, 50, 83, 50, 67, + 42, 0, 8, 64, 26, 12, 240, 213, 17, 51, 66, 35, + 97, 19, 113, 19, 113, 19, 147, 147, 147, 113, 35, 97, + 51, 65, 101, 0, 7, 112, 28, 14, 240, 218, 98, 67, + 82, 83, 66, 99, 50, 99, 50, 99, 50, 99, 50, 99, + 50, 99, 50, 83, 66, 67, 58, 0, 9, 32, 28, 12, + 240, 154, 67, 66, 51, 81, 51, 33, 33, 51, 33, 102, + 99, 33, 99, 33, 99, 81, 51, 81, 51, 66, 27, 0, + 7, 80, 25, 12, 240, 154, 67, 65, 67, 81, 51, 33, + 33, 51, 33, 102, 99, 33, 99, 33, 99, 147, 147, 119, + 0, 8, 16, 28, 13, 240, 229, 33, 67, 51, 51, 82, + 35, 113, 35, 113, 35, 163, 163, 54, 19, 83, 51, 67, + 67, 51, 85, 33, 0, 8, 48, 27, 15, 240, 254, 51, + 67, 83, 67, 83, 67, 83, 67, 90, 83, 67, 83, 67, + 83, 67, 83, 67, 83, 67, 62, 0, 9, 64, 18, 8, + 240, 23, 51, 83, 83, 83, 83, 83, 83, 83, 83, 83, + 55, 240, 240, 176, 20, 9, 240, 101, 98, 114, 114, 114, + 114, 114, 114, 35, 34, 35, 34, 34, 50, 53, 0, 6, + 29, 14, 240, 215, 36, 51, 81, 83, 65, 99, 49, 115, + 33, 131, 18, 135, 115, 35, 99, 50, 99, 51, 83, 67, + 39, 21, 0, 8, 112, 22, 11, 240, 119, 99, 131, 131, + 131, 131, 131, 65, 51, 65, 51, 65, 51, 65, 51, 50, + 26, 0, 7, 48, 18, 240, 240, 101, 117, 51, 115, 81, + 18, 81, 18, 81, 18, 81, 18, 81, 19, 65, 18, 81, + 34, 49, 34, 81, 35, 33, 34, 81, 50, 17, 50, 81, + 50, 17, 50, 81, 66, 66, 81, 66, 66, 53, 34, 38, + 0, 11, 48, 35, 15, 240, 245, 69, 52, 81, 81, 19, + 65, 81, 19, 65, 81, 35, 49, 81, 51, 33, 81, 67, + 17, 81, 84, 81, 84, 81, 99, 81, 114, 53, 97, 0, + 9, 96, 28, 13, 240, 230, 98, 66, 67, 67, 35, 99, + 19, 99, 19, 99, 19, 99, 19, 99, 19, 99, 35, 67, + 66, 66, 102, 0, 8, 80, 23, 12, 240, 153, 83, 50, + 67, 51, 51, 51, 51, 51, 51, 50, 71, 83, 147, 147, + 147, 118, 0, 8, 32, 32, 13, 240, 230, 98, 51, 67, + 67, 35, 99, 19, 99, 19, 99, 19, 99, 19, 99, 19, + 98, 50, 19, 19, 67, 35, 102, 33, 148, 148, 147, 240, + 208, 29, 15, 240, 250, 114, 67, 98, 83, 82, 83, 82, + 67, 103, 130, 51, 114, 67, 98, 67, 98, 67, 98, 68, + 17, 22, 53, 0, 9, 64, 25, 9, 240, 83, 33, 33, + 51, 18, 66, 18, 81, 20, 102, 70, 99, 17, 82, 17, + 82, 18, 65, 33, 20, 0, 6, 26, 12, 240, 155, 17, + 51, 34, 17, 51, 49, 17, 51, 49, 17, 51, 49, 83, + 147, 147, 147, 147, 147, 119, 0, 7, 112, 28, 15, 240, + 247, 37, 51, 97, 83, 97, 83, 97, 83, 97, 83, 97, + 83, 97, 83, 97, 83, 97, 83, 97, 99, 65, 149, 0, + 10, 26, 14, 240, 214, 52, 51, 97, 67, 81, 98, 81, + 99, 49, 130, 49, 131, 18, 131, 17, 164, 163, 194, 194, + 0, 9, 64, 41, 19, 240, 240, 134, 21, 36, 50, 67, + 81, 67, 66, 65, 98, 67, 49, 99, 36, 49, 99, 33, + 18, 33, 130, 33, 19, 17, 132, 35, 17, 132, 51, 162, + 67, 162, 66, 178, 81, 0, 12, 80, 27, 13, 240, 181, + 36, 66, 65, 99, 33, 131, 17, 147, 163, 179, 145, 18, + 129, 35, 98, 51, 81, 67, 52, 38, 0, 8, 32, 24, + 13, 240, 181, 52, 50, 81, 83, 65, 98, 49, 115, 33, + 130, 17, 162, 178, 178, 178, 178, 150, 0, 8, 80, 25, + 10, 240, 89, 18, 67, 17, 67, 33, 66, 115, 99, 114, + 115, 49, 50, 65, 35, 65, 19, 66, 25, 0, 6, 48, + 20, 4, 67, 17, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 51, 18, 8, 240, 33, + 49, 33, 49, 49, 49, 51, 19, 19, 19, 34, 34, 0, + 11, 16, 20, 4, 67, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 19, 8, 6, + 225, 50, 18, 0, 11, 48, 8, 4, 131, 19, 19, 0, + 7, 16, 11, 4, 145, 33, 49, 51, 19, 34, 240, 240, + 240, 20, 9, 0, 6, 117, 50, 50, 49, 50, 69, 50, + 34, 34, 50, 34, 50, 55, 0, 5, 96, 25, 9, 240, + 51, 114, 114, 114, 114, 18, 67, 33, 50, 50, 34, 50, + 34, 50, 34, 50, 34, 49, 49, 19, 0, 6, 19, 7, + 240, 240, 227, 49, 34, 18, 34, 18, 82, 82, 49, 34, + 33, 51, 240, 240, 112, 24, 9, 240, 115, 114, 114, 114, + 69, 49, 50, 34, 50, 34, 50, 34, 50, 34, 50, 49, + 50, 70, 0, 5, 96, 18, 9, 0, 7, 4, 65, 51, + 18, 66, 24, 18, 114, 81, 34, 50, 52, 0, 6, 20, + 7, 147, 50, 18, 34, 18, 34, 82, 68, 66, 82, 82, + 82, 82, 82, 68, 240, 240, 128, 23, 9, 0, 6, 116, + 18, 18, 51, 18, 50, 34, 50, 53, 49, 135, 55, 17, + 97, 18, 66, 38, 240, 80, 26, 10, 240, 83, 130, 130, + 130, 130, 19, 67, 34, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 36, 20, 0, 6, 48, 15, 5, 178, 35, + 50, 115, 50, 50, 50, 50, 50, 50, 36, 240, 176, 19, + 6, 242, 51, 66, 147, 66, 66, 66, 66, 66, 66, 66, + 18, 18, 18, 18, 35, 224, 25, 10, 240, 83, 130, 130, + 130, 130, 35, 50, 34, 66, 17, 100, 98, 18, 82, 34, + 66, 34, 52, 20, 0, 6, 48, 16, 5, 163, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 36, 240, 176, 31, + 15, 0, 11, 35, 19, 35, 67, 35, 34, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 36, 20, 20, 0, 9, 64, 23, 10, 0, 7, 67, 19, + 67, 34, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 36, 20, 0, 6, 48, 20, 9, 0, 7, 4, 66, 34, + 34, 66, 18, 66, 18, 66, 18, 66, 34, 34, 68, 0, + 6, 23, 9, 0, 6, 103, 50, 34, 50, 50, 34, 50, + 34, 50, 34, 50, 34, 34, 53, 66, 114, 100, 240, 128, + 25, 9, 0, 7, 3, 17, 50, 19, 34, 50, 34, 50, + 34, 50, 34, 50, 50, 19, 66, 18, 114, 114, 100, 240, + 64, 16, 7, 240, 240, 198, 34, 18, 34, 82, 82, 82, + 82, 68, 240, 240, 128, 19, 6, 240, 240, 116, 17, 49, + 17, 49, 20, 67, 17, 49, 17, 49, 20, 240, 240, 32, + 21, 7, 240, 17, 97, 97, 82, 70, 34, 82, 82, 82, + 33, 34, 33, 34, 33, 51, 240, 240, 112, 23, 10, 0, + 7, 67, 35, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 35, 67, 19, 0, 6, 48, 20, 10, 0, 7, + 69, 19, 50, 49, 66, 33, 98, 17, 98, 17, 99, 130, + 129, 0, 6, 112, 27, 14, 0, 10, 68, 19, 20, 50, + 34, 33, 82, 34, 33, 82, 34, 33, 99, 19, 115, 19, + 114, 50, 129, 49, 0, 9, 48, 20, 10, 0, 7, 68, + 20, 50, 33, 99, 115, 130, 113, 18, 81, 50, 36, 20, + 0, 6, 48, 23, 10, 0, 7, 68, 35, 34, 49, 82, + 33, 82, 33, 99, 115, 129, 145, 82, 17, 98, 17, 114, + 240, 192, 20, 8, 0, 6, 7, 17, 50, 33, 35, 82, + 82, 33, 34, 49, 34, 34, 23, 240, 240, 176, 8, 10, + 0, 11, 41, 0, 11, 48, 9, 19, 0, 21, 63, 3, + 0, 21, 64, 12, 7, 18, 18, 22, 18, 18, 33, 33, + 0, 13, 64, 8, 7, 245, 17, 34, 0, 13, 48, +}; + +//***************************************************************************** +// +// The font definition for the 18 point Cm bold font. +// +//***************************************************************************** +const tFont g_sFontCm18b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 17, + + // + // The height of the font. + // + 19, + + // + // The baseline of the font. + // + 14, + + // + // The offset to each character in the font. + // + { + 0, 5, 22, 40, 75, 107, 152, 184, + 195, 216, 237, 255, 274, 285, 294, 303, + 324, 352, 370, 393, 417, 439, 462, 490, + 510, 534, 560, 571, 584, 601, 612, 632, + 652, 696, 721, 748, 774, 802, 830, 855, + 883, 910, 928, 948, 977, 999, 1047, 1082, + 1110, 1133, 1165, 1194, 1219, 1245, 1273, 1299, + 1340, 1367, 1391, 1416, 1436, 1454, 1474, 1482, + 1490, 1501, 1521, 1546, 1565, 1589, 1607, 1627, + 1650, 1676, 1691, 1710, 1735, 1751, 1782, 1805, + 1825, 1848, 1873, 1889, 1908, 1929, 1952, 1972, + 1999, 2019, 2042, 2062, 2070, 2079, 2091, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm18bData +}; diff --git a/grlib/fonts/fontcm18i.c b/grlib/fonts/fontcm18i.c new file mode 100644 index 0000000..6c8eede --- /dev/null +++ b/grlib/fonts/fontcm18i.c @@ -0,0 +1,293 @@ +//***************************************************************************** +// +// fontcm18i.c - Font definition for the 18pt Cm italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 18 point +// Bold: no +// Italic: yes +// Memory usage: 2436 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 18 point Cm italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm18iData[2234] = +{ + 5, 7, 0, 17, 64, 18, 6, 146, 66, 65, 81, 66, + 65, 81, 81, 65, 81, 240, 18, 66, 240, 240, 64, 13, + 6, 194, 18, 18, 18, 33, 33, 17, 33, 0, 10, 96, + 38, 14, 240, 240, 97, 49, 129, 49, 145, 49, 129, 49, + 145, 49, 129, 49, 92, 81, 49, 145, 49, 145, 33, 108, + 81, 49, 129, 49, 145, 49, 129, 49, 129, 65, 129, 49, + 240, 128, 26, 13, 240, 240, 67, 145, 49, 113, 65, 113, + 50, 98, 177, 165, 161, 178, 177, 148, 129, 35, 49, 51, + 36, 0, 8, 80, 50, 14, 50, 113, 49, 33, 67, 49, + 39, 49, 49, 65, 65, 49, 49, 81, 49, 33, 97, 33, + 33, 113, 33, 18, 130, 18, 34, 114, 18, 33, 97, 33, + 49, 81, 34, 49, 65, 49, 65, 49, 65, 49, 50, 65, + 34, 49, 98, 0, 7, 80, 42, 13, 240, 35, 50, 65, + 49, 34, 50, 49, 49, 49, 50, 33, 50, 97, 65, 19, + 49, 81, 33, 33, 17, 49, 18, 34, 17, 33, 98, 17, + 33, 145, 33, 129, 49, 129, 65, 82, 101, 0, 8, 112, + 9, 3, 98, 18, 33, 17, 240, 240, 224, 21, 7, 178, + 81, 81, 81, 97, 82, 81, 97, 97, 81, 97, 97, 97, + 97, 97, 97, 113, 97, 192, 22, 7, 65, 97, 113, 97, + 97, 97, 97, 97, 97, 82, 81, 97, 97, 81, 97, 81, + 81, 81, 240, 80, 19, 8, 65, 113, 65, 17, 33, 50, + 17, 82, 68, 49, 17, 33, 65, 113, 0, 11, 80, 19, + 12, 0, 6, 97, 177, 177, 161, 177, 177, 107, 97, 161, + 177, 177, 177, 0, 6, 112, 11, 4, 0, 6, 82, 34, + 49, 33, 49, 33, 112, 8, 5, 0, 6, 36, 0, 5, + 96, 8, 3, 240, 240, 146, 18, 240, 16, 23, 12, 161, + 161, 177, 161, 177, 161, 177, 161, 161, 177, 161, 177, 161, + 177, 161, 177, 161, 161, 177, 240, 128, 29, 9, 240, 240, + 19, 81, 49, 49, 65, 34, 65, 33, 81, 33, 66, 18, + 65, 33, 81, 33, 66, 33, 65, 49, 49, 83, 0, 6, + 32, 18, 7, 240, 177, 82, 52, 81, 97, 97, 82, 81, + 97, 97, 81, 69, 240, 240, 112, 27, 9, 240, 240, 19, + 81, 49, 49, 65, 33, 33, 33, 33, 18, 33, 35, 33, + 113, 98, 82, 97, 81, 35, 49, 83, 0, 6, 26, 10, + 240, 240, 83, 97, 49, 65, 65, 65, 17, 33, 66, 33, + 114, 145, 145, 145, 50, 65, 49, 65, 84, 0, 6, 112, + 23, 8, 240, 241, 113, 113, 97, 113, 98, 97, 97, 98, + 17, 50, 33, 34, 49, 39, 81, 113, 113, 113, 176, 22, + 8, 240, 196, 49, 113, 97, 19, 65, 33, 49, 65, 113, + 113, 98, 17, 65, 97, 52, 240, 240, 224, 27, 9, 240, + 240, 35, 66, 33, 49, 117, 66, 49, 49, 65, 34, 65, + 33, 81, 33, 66, 33, 65, 49, 49, 83, 0, 6, 32, + 22, 9, 240, 227, 33, 33, 50, 33, 81, 33, 65, 129, + 113, 129, 113, 129, 129, 114, 113, 0, 6, 48, 28, 9, + 240, 240, 19, 81, 49, 49, 65, 49, 65, 50, 33, 83, + 81, 19, 49, 65, 33, 81, 33, 81, 33, 65, 68, 0, + 6, 16, 27, 9, 240, 240, 19, 81, 49, 49, 65, 34, + 65, 33, 81, 33, 66, 33, 50, 67, 17, 114, 98, 49, + 34, 68, 0, 6, 32, 10, 4, 240, 241, 34, 240, 34, + 33, 240, 128, 13, 5, 240, 240, 114, 50, 240, 113, 65, + 65, 65, 49, 224, 18, 6, 240, 240, 146, 66, 65, 65, + 81, 81, 81, 81, 66, 65, 81, 66, 66, 160, 11, 13, + 0, 13, 27, 240, 240, 171, 0, 11, 80, 24, 8, 0, + 6, 81, 113, 98, 81, 17, 81, 17, 97, 97, 82, 97, + 50, 17, 81, 17, 65, 33, 49, 67, 192, 24, 8, 179, + 65, 49, 33, 65, 33, 65, 17, 66, 18, 34, 66, 82, + 97, 33, 67, 240, 98, 97, 0, 5, 96, 44, 13, 240, + 240, 21, 114, 65, 66, 35, 33, 34, 18, 33, 33, 33, + 33, 65, 17, 17, 33, 81, 17, 17, 33, 65, 33, 17, + 33, 65, 17, 33, 33, 50, 17, 33, 51, 18, 65, 194, + 82, 101, 0, 8, 96, 30, 12, 240, 81, 177, 162, 145, + 17, 145, 17, 129, 33, 129, 33, 113, 49, 113, 50, 87, + 81, 66, 65, 82, 49, 98, 35, 68, 0, 7, 80, 28, + 12, 240, 199, 97, 66, 81, 81, 81, 66, 65, 66, 85, + 113, 66, 81, 81, 66, 81, 65, 97, 65, 81, 81, 66, + 56, 0, 8, 29, 12, 240, 227, 33, 66, 49, 17, 49, + 98, 34, 97, 49, 113, 34, 161, 177, 177, 113, 49, 113, + 49, 97, 81, 65, 116, 0, 8, 32, 30, 13, 240, 231, + 114, 65, 97, 97, 81, 97, 66, 97, 66, 97, 65, 113, + 65, 98, 50, 97, 65, 98, 65, 97, 81, 66, 71, 0, + 8, 112, 29, 13, 240, 233, 97, 81, 82, 81, 81, 97, + 81, 49, 114, 49, 117, 129, 49, 129, 49, 114, 97, 66, + 81, 81, 82, 58, 0, 8, 64, 26, 13, 240, 233, 97, + 81, 82, 81, 81, 97, 81, 49, 114, 33, 133, 129, 49, + 129, 49, 114, 178, 177, 165, 0, 9, 16, 27, 12, 240, + 228, 98, 49, 17, 50, 82, 49, 97, 49, 177, 161, 177, + 177, 84, 33, 113, 49, 98, 65, 67, 84, 0, 8, 32, + 32, 15, 240, 240, 53, 21, 82, 81, 114, 81, 113, 82, + 113, 81, 114, 81, 120, 113, 82, 113, 81, 114, 81, 113, + 97, 113, 82, 85, 21, 0, 9, 112, 19, 9, 240, 101, + 97, 114, 113, 129, 129, 114, 113, 129, 129, 114, 113, 101, + 0, 6, 16, 21, 9, 240, 116, 113, 129, 114, 113, 129, + 114, 114, 113, 129, 65, 34, 65, 18, 83, 0, 6, 48, + 32, 15, 240, 240, 53, 51, 97, 81, 114, 65, 129, 65, + 145, 49, 161, 33, 165, 162, 34, 145, 65, 130, 65, 130, + 66, 113, 97, 85, 51, 0, 9, 112, 23, 11, 240, 165, + 129, 146, 145, 161, 161, 146, 145, 161, 81, 50, 81, 50, + 65, 65, 66, 41, 0, 7, 16, 50, 18, 240, 240, 147, + 116, 97, 97, 17, 115, 83, 115, 65, 17, 113, 33, 65, + 17, 113, 33, 49, 33, 113, 33, 33, 34, 113, 33, 33, + 33, 113, 49, 17, 49, 113, 49, 17, 49, 113, 50, 49, + 129, 50, 49, 100, 33, 37, 0, 11, 96, 37, 15, 240, + 240, 51, 68, 98, 65, 115, 65, 113, 17, 65, 97, 34, + 33, 113, 34, 33, 113, 49, 33, 113, 50, 17, 97, 67, + 113, 82, 113, 82, 113, 82, 84, 0, 10, 96, 30, 12, + 240, 228, 98, 65, 66, 97, 49, 113, 33, 129, 33, 129, + 17, 145, 17, 129, 33, 129, 33, 113, 49, 98, 65, 66, + 100, 0, 8, 32, 24, 12, 240, 199, 97, 81, 81, 81, + 81, 81, 66, 66, 65, 66, 86, 97, 162, 161, 177, 177, + 148, 0, 8, 64, 40, 12, 240, 228, 98, 65, 66, 97, + 34, 113, 33, 129, 18, 129, 17, 145, 17, 129, 33, 129, + 33, 50, 33, 65, 17, 17, 17, 81, 17, 18, 116, 49, + 113, 33, 129, 33, 132, 131, 240, 16, 31, 12, 240, 199, + 98, 65, 81, 81, 81, 81, 81, 66, 66, 50, 85, 113, + 65, 97, 65, 82, 65, 81, 81, 81, 66, 17, 20, 66, + 0, 7, 96, 27, 10, 240, 147, 17, 65, 34, 65, 65, + 65, 65, 65, 65, 66, 147, 161, 145, 49, 81, 49, 81, + 50, 49, 99, 0, 6, 112, 25, 12, 240, 170, 33, 50, + 49, 17, 66, 49, 17, 65, 65, 97, 162, 161, 177, 177, + 162, 161, 177, 134, 0, 8, 32, 31, 12, 240, 149, 36, + 49, 97, 50, 81, 66, 81, 65, 97, 65, 81, 81, 81, + 65, 97, 65, 97, 65, 81, 81, 81, 82, 49, 116, 0, + 8, 48, 29, 12, 240, 148, 67, 33, 113, 49, 97, 66, + 65, 82, 65, 82, 49, 113, 49, 113, 33, 129, 17, 145, + 17, 146, 162, 161, 0, 8, 80, 44, 17, 240, 240, 68, + 36, 36, 33, 81, 81, 65, 81, 81, 65, 81, 65, 81, + 66, 65, 81, 49, 18, 33, 97, 33, 34, 17, 113, 33, + 34, 17, 115, 51, 131, 51, 130, 66, 146, 66, 145, 81, + 0, 11, 96, 31, 15, 240, 240, 52, 52, 97, 81, 129, + 65, 146, 33, 177, 17, 194, 210, 193, 17, 177, 34, 145, + 65, 145, 65, 129, 82, 84, 52, 0, 9, 112, 25, 12, + 240, 148, 67, 34, 81, 66, 81, 81, 65, 98, 33, 114, + 17, 146, 161, 177, 177, 162, 161, 149, 0, 8, 48, 24, + 12, 240, 215, 66, 66, 65, 81, 161, 161, 161, 162, 161, + 161, 65, 81, 65, 81, 81, 65, 82, 56, 0, 8, 22, + 8, 210, 81, 113, 113, 97, 113, 113, 113, 97, 113, 113, + 113, 97, 113, 113, 113, 97, 113, 115, 80, 17, 7, 240, + 65, 33, 33, 33, 33, 49, 33, 50, 18, 34, 18, 0, + 10, 96, 22, 7, 178, 97, 97, 97, 81, 97, 97, 97, + 81, 97, 97, 97, 81, 97, 97, 97, 97, 81, 82, 80, + 9, 5, 193, 50, 33, 33, 0, 9, 64, 7, 3, 146, + 18, 0, 5, 96, 11, 4, 161, 33, 33, 49, 50, 34, + 0, 6, 32, 23, 8, 0, 7, 35, 66, 33, 49, 49, + 34, 49, 33, 50, 33, 49, 49, 34, 17, 34, 33, 240, + 240, 192, 25, 7, 242, 97, 97, 97, 82, 81, 18, 50, + 33, 33, 49, 17, 65, 17, 50, 17, 49, 33, 34, 51, + 240, 240, 128, 18, 7, 0, 6, 67, 34, 33, 33, 81, + 97, 97, 65, 17, 49, 51, 240, 240, 128, 26, 9, 240, + 131, 113, 129, 129, 129, 68, 66, 33, 65, 49, 50, 49, + 49, 49, 65, 49, 65, 34, 17, 50, 33, 0, 6, 18, + 7, 0, 6, 51, 49, 49, 33, 49, 21, 33, 97, 97, + 49, 51, 240, 240, 128, 24, 9, 240, 146, 97, 17, 97, + 114, 113, 101, 97, 129, 114, 113, 129, 129, 129, 114, 113, + 97, 17, 98, 240, 16, 25, 8, 0, 7, 51, 66, 33, + 49, 49, 33, 65, 33, 50, 33, 49, 49, 34, 66, 17, + 98, 97, 49, 34, 52, 192, 28, 8, 240, 34, 113, 113, + 113, 98, 97, 19, 50, 33, 49, 49, 34, 49, 33, 50, + 33, 49, 49, 49, 17, 17, 50, 240, 240, 192, 20, 6, + 240, 98, 240, 83, 49, 17, 33, 33, 65, 81, 65, 33, + 33, 17, 51, 240, 240, 32, 23, 9, 240, 240, 50, 240, + 240, 34, 97, 33, 65, 49, 129, 113, 129, 114, 114, 113, + 114, 65, 18, 83, 240, 29, 9, 240, 82, 129, 129, 113, + 129, 129, 50, 49, 33, 17, 36, 81, 17, 97, 33, 81, + 33, 33, 18, 33, 17, 33, 51, 0, 5, 112, 18, 5, + 179, 49, 65, 65, 65, 49, 65, 65, 65, 49, 65, 65, + 17, 34, 240, 208, 35, 15, 0, 13, 34, 34, 35, 49, + 17, 17, 34, 49, 33, 18, 49, 65, 65, 65, 50, 65, + 49, 65, 66, 49, 49, 81, 65, 49, 33, 33, 65, 66, + 0, 9, 80, 25, 9, 0, 8, 2, 19, 33, 18, 33, + 65, 49, 65, 49, 49, 50, 49, 49, 65, 49, 17, 33, + 50, 0, 5, 112, 21, 8, 0, 7, 51, 50, 49, 33, + 65, 17, 81, 17, 81, 17, 65, 33, 49, 67, 240, 240, + 224, 27, 10, 0, 9, 17, 34, 65, 18, 33, 81, 49, + 81, 49, 65, 50, 65, 49, 81, 34, 65, 19, 81, 145, + 145, 116, 240, 16, 25, 8, 0, 7, 35, 17, 34, 33, + 49, 49, 34, 49, 33, 50, 33, 49, 49, 34, 66, 17, + 98, 97, 113, 84, 176, 19, 8, 0, 7, 18, 19, 17, + 18, 33, 17, 18, 97, 113, 98, 97, 113, 0, 5, 96, + 17, 7, 0, 6, 52, 33, 49, 33, 100, 83, 97, 17, + 65, 21, 240, 240, 112, 19, 5, 240, 33, 65, 65, 65, + 36, 33, 65, 65, 49, 65, 33, 17, 17, 35, 240, 192, + 25, 9, 0, 8, 2, 49, 33, 17, 49, 65, 34, 50, + 33, 65, 49, 65, 49, 17, 33, 35, 66, 18, 0, 5, + 112, 23, 7, 0, 6, 34, 33, 17, 17, 33, 49, 33, + 34, 33, 33, 33, 49, 33, 49, 33, 66, 240, 240, 128, + 31, 11, 0, 9, 98, 49, 33, 17, 17, 49, 33, 49, + 49, 33, 34, 34, 33, 33, 49, 33, 49, 49, 33, 49, + 34, 33, 66, 34, 0, 7, 32, 22, 9, 0, 8, 18, + 34, 33, 34, 17, 17, 49, 114, 113, 129, 49, 17, 18, + 33, 34, 34, 0, 6, 27, 8, 0, 7, 18, 49, 17, + 17, 49, 49, 34, 34, 33, 49, 49, 49, 49, 49, 34, + 68, 97, 49, 34, 49, 33, 82, 208, 17, 8, 0, 7, + 37, 97, 97, 97, 97, 97, 114, 33, 33, 34, 240, 240, + 208, 8, 9, 0, 10, 24, 0, 11, 48, 9, 17, 0, + 19, 31, 1, 0, 21, 48, 10, 6, 209, 33, 33, 17, + 33, 0, 11, 112, 10, 7, 240, 114, 33, 17, 34, 0, + 13, 48, +}; + +//***************************************************************************** +// +// The font definition for the 18 point Cm italic font. +// +//***************************************************************************** +const tFont g_sFontCm18i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 16, + + // + // The height of the font. + // + 20, + + // + // The baseline of the font. + // + 15, + + // + // The offset to each character in the font. + // + { + 0, 5, 23, 36, 74, 100, 150, 192, + 201, 222, 244, 263, 282, 293, 301, 309, + 332, 361, 379, 406, 432, 455, 477, 504, + 526, 554, 581, 591, 604, 622, 633, 657, + 681, 725, 755, 783, 812, 842, 871, 897, + 924, 956, 975, 996, 1028, 1051, 1101, 1138, + 1168, 1192, 1232, 1263, 1290, 1315, 1346, 1375, + 1419, 1450, 1475, 1499, 1521, 1538, 1560, 1569, + 1576, 1587, 1610, 1635, 1653, 1679, 1697, 1721, + 1746, 1774, 1794, 1817, 1846, 1864, 1899, 1924, + 1945, 1972, 1997, 2016, 2033, 2052, 2077, 2100, + 2131, 2153, 2180, 2197, 2205, 2214, 2224, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm18iData +}; diff --git a/grlib/fonts/fontcm20.c b/grlib/fonts/fontcm20.c new file mode 100644 index 0000000..5f8c3e9 --- /dev/null +++ b/grlib/fonts/fontcm20.c @@ -0,0 +1,306 @@ +//***************************************************************************** +// +// fontcm20.c - Font definition for the 20pt Cm font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 20 point +// Bold: no +// Italic: no +// Memory usage: 2600 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 20 point Cm font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm20Data[2398] = +{ + 5, 9, 0, 24, 96, 18, 3, 49, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 129, 33, 240, 32, 16, + 9, 240, 209, 49, 51, 34, 65, 49, 65, 49, 49, 49, + 129, 0, 15, 38, 16, 0, 7, 49, 161, 65, 161, 49, + 161, 65, 161, 65, 161, 49, 110, 97, 65, 161, 65, 161, + 49, 126, 81, 65, 161, 65, 161, 49, 177, 49, 161, 65, + 161, 65, 161, 240, 224, 41, 9, 193, 116, 65, 17, 17, + 49, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 99, + 116, 97, 18, 81, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 17, 68, 113, 240, 240, 176, 55, 16, + 34, 113, 81, 33, 82, 65, 50, 50, 81, 69, 97, 65, + 49, 97, 65, 33, 113, 65, 33, 113, 65, 17, 145, 33, + 33, 162, 33, 50, 145, 49, 33, 129, 33, 65, 97, 49, + 65, 97, 49, 65, 81, 65, 65, 66, 65, 65, 65, 97, + 33, 210, 0, 8, 64, 43, 15, 240, 51, 193, 33, 161, + 49, 161, 49, 161, 49, 161, 33, 177, 17, 195, 68, 81, + 97, 99, 81, 81, 33, 65, 81, 65, 33, 97, 81, 17, + 97, 97, 65, 34, 65, 17, 34, 53, 51, 0, 9, 96, + 11, 5, 240, 17, 51, 65, 65, 49, 0, 9, 16, 23, + 6, 225, 81, 65, 81, 81, 65, 81, 81, 81, 81, 81, + 81, 81, 81, 97, 81, 81, 97, 81, 97, 32, 22, 6, + 193, 97, 97, 81, 81, 97, 81, 81, 81, 81, 81, 81, + 81, 81, 65, 81, 81, 65, 65, 176, 20, 9, 193, 129, + 81, 33, 33, 49, 17, 17, 83, 85, 49, 33, 33, 81, + 129, 0, 14, 16, 21, 15, 0, 8, 33, 225, 225, 225, + 225, 225, 225, 141, 129, 225, 225, 225, 225, 225, 0, 8, + 64, 11, 4, 0, 7, 65, 50, 49, 49, 33, 49, 112, + 8, 7, 0, 10, 69, 0, 8, 16, 8, 3, 240, 240, + 241, 33, 240, 32, 24, 9, 241, 129, 113, 129, 129, 113, + 129, 129, 113, 129, 129, 129, 113, 129, 129, 113, 129, 129, + 113, 129, 129, 128, 32, 9, 240, 227, 81, 49, 49, 65, + 49, 81, 33, 81, 33, 81, 33, 81, 33, 81, 33, 81, + 33, 81, 33, 81, 49, 49, 65, 49, 83, 0, 6, 16, + 20, 7, 240, 129, 67, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 69, 240, 240, 112, 25, 9, 240, 227, + 66, 49, 49, 81, 33, 81, 33, 81, 129, 113, 129, 113, + 113, 113, 113, 113, 81, 39, 0, 5, 112, 26, 9, 240, + 227, 66, 49, 49, 81, 33, 81, 113, 129, 68, 145, 145, + 129, 33, 81, 33, 81, 33, 65, 68, 0, 6, 16, 28, + 10, 240, 240, 81, 145, 130, 113, 17, 97, 33, 97, 33, + 81, 49, 81, 49, 65, 65, 65, 65, 72, 113, 145, 117, + 0, 6, 64, 26, 9, 240, 209, 132, 81, 129, 129, 18, + 82, 33, 145, 129, 129, 34, 65, 34, 65, 33, 81, 49, + 49, 83, 0, 6, 16, 31, 9, 240, 243, 81, 49, 49, + 65, 33, 129, 19, 66, 49, 49, 81, 33, 81, 33, 81, + 33, 81, 33, 81, 33, 81, 49, 49, 83, 0, 6, 16, + 21, 10, 240, 97, 145, 151, 33, 81, 145, 129, 129, 145, + 145, 129, 145, 145, 145, 145, 145, 0, 7, 31, 9, 240, + 227, 81, 49, 49, 81, 33, 81, 49, 65, 50, 33, 83, + 81, 34, 49, 66, 33, 81, 33, 81, 33, 81, 49, 50, + 67, 0, 6, 16, 30, 9, 240, 227, 81, 49, 49, 65, + 49, 81, 33, 81, 33, 81, 33, 81, 49, 35, 67, 17, + 129, 113, 49, 65, 49, 49, 83, 0, 6, 32, 10, 3, + 240, 145, 33, 240, 33, 33, 240, 32, 14, 4, 240, 240, + 34, 34, 240, 114, 34, 49, 49, 33, 49, 112, 18, 3, + 240, 49, 33, 81, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 80, 11, 15, 0, 16, 125, 0, 5, 125, + 0, 15, 32, 22, 8, 0, 6, 34, 98, 241, 113, 113, + 113, 97, 113, 97, 97, 113, 65, 33, 65, 34, 49, 52, + 176, 24, 8, 163, 65, 49, 33, 65, 33, 65, 33, 65, + 113, 97, 113, 97, 113, 113, 113, 240, 114, 98, 240, 240, + 224, 52, 15, 240, 68, 161, 66, 113, 113, 81, 36, 49, + 65, 18, 33, 49, 49, 33, 66, 33, 33, 17, 97, 33, + 33, 17, 97, 33, 33, 17, 97, 33, 33, 17, 97, 33, + 33, 33, 81, 33, 49, 18, 50, 33, 49, 36, 34, 81, + 241, 98, 118, 0, 10, 35, 15, 240, 240, 98, 193, 17, + 193, 17, 193, 18, 161, 34, 161, 49, 161, 50, 129, 66, + 129, 81, 136, 113, 82, 97, 113, 97, 113, 97, 114, 52, + 84, 0, 9, 80, 32, 13, 240, 240, 153, 97, 82, 81, + 98, 65, 98, 65, 97, 81, 81, 103, 97, 97, 81, 113, + 65, 113, 65, 113, 65, 113, 65, 97, 57, 0, 8, 80, + 32, 14, 0, 5, 100, 49, 66, 66, 17, 50, 114, 49, + 130, 33, 161, 33, 161, 33, 209, 209, 209, 161, 49, 145, + 50, 113, 82, 81, 133, 0, 9, 48, 33, 14, 240, 240, + 201, 113, 82, 97, 113, 81, 113, 81, 129, 65, 129, 65, + 129, 65, 129, 65, 129, 65, 129, 65, 113, 81, 113, 81, + 82, 73, 0, 9, 48, 31, 14, 240, 240, 203, 81, 113, + 81, 113, 81, 209, 65, 129, 65, 134, 129, 65, 129, 65, + 129, 129, 65, 129, 65, 129, 65, 113, 59, 0, 9, 16, + 27, 13, 240, 240, 155, 65, 113, 65, 113, 65, 193, 65, + 113, 65, 118, 113, 65, 113, 65, 113, 193, 193, 193, 165, + 0, 9, 16, 31, 14, 0, 5, 100, 130, 65, 17, 66, + 98, 65, 129, 49, 145, 49, 209, 209, 209, 116, 33, 145, + 65, 129, 81, 113, 82, 82, 117, 0, 9, 48, 33, 14, + 240, 240, 197, 37, 65, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 104, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 69, 37, 0, 9, 20, 7, 240, 101, 65, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 69, + 240, 240, 112, 22, 9, 240, 244, 113, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 50, 49, 50, 34, 68, 0, 6, + 16, 36, 15, 240, 240, 245, 68, 65, 113, 97, 97, 113, + 81, 129, 50, 145, 33, 177, 17, 17, 162, 34, 145, 66, + 129, 81, 129, 82, 113, 98, 97, 113, 69, 68, 0, 9, + 80, 25, 12, 240, 240, 101, 145, 177, 177, 177, 177, 177, + 177, 177, 177, 97, 65, 97, 65, 97, 65, 82, 41, 0, + 7, 112, 56, 17, 0, 6, 52, 131, 66, 114, 97, 17, + 81, 17, 97, 17, 81, 17, 97, 17, 81, 17, 97, 33, + 49, 33, 97, 33, 49, 33, 97, 33, 49, 33, 97, 49, + 17, 49, 97, 49, 17, 49, 97, 49, 17, 49, 97, 65, + 65, 97, 65, 65, 68, 49, 52, 0, 10, 112, 43, 15, + 240, 240, 244, 84, 67, 81, 97, 17, 81, 97, 18, 65, + 97, 33, 65, 97, 34, 49, 97, 49, 49, 97, 65, 33, + 97, 66, 17, 97, 81, 17, 97, 83, 97, 98, 97, 98, + 68, 97, 0, 9, 112, 33, 14, 0, 5, 100, 130, 66, + 82, 98, 65, 129, 49, 161, 33, 161, 33, 161, 33, 161, + 33, 161, 33, 161, 49, 129, 66, 98, 82, 66, 132, 0, + 9, 64, 26, 12, 240, 240, 104, 97, 81, 81, 97, 65, + 97, 65, 97, 65, 81, 86, 97, 177, 177, 177, 177, 177, + 149, 0, 8, 48, 41, 14, 0, 5, 101, 129, 81, 97, + 113, 65, 129, 49, 161, 33, 161, 33, 161, 33, 161, 33, + 161, 49, 145, 49, 66, 33, 81, 33, 17, 33, 99, 34, + 133, 209, 33, 177, 17, 179, 178, 240, 32, 34, 15, 240, + 240, 248, 145, 81, 129, 97, 113, 97, 113, 97, 113, 81, + 134, 145, 66, 129, 81, 129, 81, 129, 81, 129, 82, 113, + 82, 33, 37, 67, 0, 9, 96, 29, 10, 240, 240, 35, + 97, 50, 49, 81, 49, 81, 49, 146, 148, 147, 146, 33, + 97, 33, 97, 33, 97, 35, 49, 49, 20, 0, 6, 96, + 27, 14, 240, 240, 219, 49, 65, 65, 33, 81, 65, 33, + 81, 65, 129, 209, 209, 209, 209, 209, 209, 209, 209, 181, + 0, 9, 48, 34, 15, 240, 240, 245, 53, 65, 113, 97, + 113, 97, 113, 97, 113, 97, 113, 97, 113, 97, 113, 97, + 113, 97, 113, 97, 113, 113, 81, 130, 50, 148, 0, 10, + 32, 32, 15, 240, 240, 244, 99, 50, 129, 81, 113, 98, + 97, 113, 81, 129, 81, 130, 65, 145, 49, 162, 33, 177, + 17, 193, 17, 195, 209, 225, 0, 10, 48, 52, 21, 0, + 7, 116, 68, 67, 50, 97, 113, 81, 98, 81, 97, 81, + 17, 81, 98, 65, 17, 81, 113, 65, 18, 49, 129, 49, + 49, 49, 130, 33, 49, 49, 145, 33, 50, 17, 161, 17, + 81, 17, 163, 81, 17, 178, 82, 193, 113, 193, 113, 0, + 14, 32, 15, 240, 240, 244, 83, 81, 97, 129, 81, 130, + 49, 162, 17, 194, 225, 226, 178, 17, 177, 49, 145, 66, + 113, 98, 97, 113, 67, 100, 0, 9, 80, 28, 15, 240, + 240, 244, 99, 65, 129, 82, 97, 113, 81, 130, 49, 162, + 33, 177, 17, 195, 209, 225, 225, 225, 225, 197, 0, 10, + 16, 26, 12, 240, 240, 106, 34, 97, 49, 98, 161, 161, + 162, 161, 161, 161, 177, 161, 97, 49, 113, 49, 98, 42, + 0, 7, 96, 24, 5, 83, 33, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 67, 32, 16, 9, 240, 209, 49, 49, 49, 65, 49, + 66, 35, 49, 49, 0, 16, 16, 24, 5, 83, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 35, 32, 9, 5, 240, 17, 49, + 17, 0, 10, 112, 7, 3, 145, 33, 0, 6, 80, 11, + 5, 240, 17, 49, 65, 67, 49, 0, 9, 16, 25, 11, + 0, 11, 20, 113, 49, 97, 49, 116, 97, 49, 81, 65, + 81, 65, 33, 33, 50, 33, 51, 34, 0, 7, 32, 28, + 10, 240, 242, 145, 145, 145, 145, 145, 19, 82, 49, 65, + 81, 49, 81, 49, 81, 49, 81, 49, 81, 50, 49, 99, + 0, 6, 96, 19, 8, 0, 8, 35, 65, 49, 33, 65, + 33, 113, 113, 114, 113, 49, 67, 240, 240, 208, 30, 10, + 240, 240, 82, 145, 145, 145, 145, 83, 17, 65, 50, 49, + 81, 49, 81, 49, 81, 49, 81, 49, 81, 65, 50, 83, + 18, 0, 6, 64, 20, 9, 0, 9, 35, 81, 49, 49, + 81, 39, 33, 129, 129, 81, 49, 49, 83, 0, 6, 16, + 23, 8, 179, 81, 17, 65, 33, 65, 113, 113, 113, 85, + 81, 113, 113, 113, 113, 113, 113, 100, 240, 240, 208, 25, + 11, 0, 11, 54, 65, 49, 97, 49, 97, 49, 97, 49, + 100, 113, 161, 181, 66, 81, 33, 113, 34, 82, 69, 240, + 29, 10, 240, 242, 145, 145, 145, 145, 145, 19, 82, 49, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 51, 35, 0, 6, 64, 17, 5, 240, 17, 65, 240, 50, + 65, 65, 65, 65, 65, 65, 65, 51, 240, 192, 22, 7, + 240, 146, 82, 240, 163, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 33, 49, 33, 33, 66, 176, 30, 11, 240, 240, + 50, 161, 161, 161, 161, 161, 51, 65, 49, 97, 33, 113, + 17, 130, 17, 113, 49, 97, 49, 97, 65, 67, 36, 0, + 7, 16, 18, 5, 242, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 51, 240, 192, 34, 15, 0, 15, + 2, 19, 35, 82, 50, 49, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 51, 35, 35, 0, 9, 80, 25, 10, 0, 10, 2, 19, + 82, 49, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 51, 35, 0, 6, 64, 23, 9, 0, 9, 35, + 81, 49, 49, 81, 33, 81, 33, 81, 33, 81, 33, 81, + 49, 49, 83, 0, 6, 16, 28, 10, 0, 10, 2, 19, + 82, 49, 65, 81, 49, 81, 49, 81, 49, 81, 49, 66, + 50, 49, 65, 19, 81, 145, 145, 131, 240, 32, 26, 10, + 0, 10, 35, 97, 50, 49, 81, 49, 81, 49, 81, 49, + 81, 49, 81, 65, 50, 83, 17, 145, 145, 145, 131, 192, + 18, 7, 0, 7, 2, 18, 50, 17, 49, 97, 97, 97, + 97, 97, 83, 240, 240, 144, 22, 9, 0, 9, 20, 17, + 33, 66, 33, 81, 34, 148, 49, 81, 33, 81, 34, 50, + 33, 20, 0, 6, 22, 9, 240, 240, 129, 129, 129, 114, + 103, 65, 129, 129, 129, 129, 49, 65, 49, 65, 49, 83, + 0, 6, 25, 10, 0, 10, 2, 50, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 50, 83, 18, + 0, 6, 64, 23, 11, 0, 11, 3, 51, 49, 81, 81, + 49, 97, 49, 113, 17, 129, 17, 129, 17, 145, 161, 0, + 7, 80, 33, 15, 0, 15, 4, 19, 35, 50, 49, 65, + 81, 49, 49, 97, 33, 17, 33, 98, 17, 17, 33, 114, + 33, 17, 130, 50, 145, 50, 145, 49, 0, 10, 16, 23, + 12, 0, 12, 4, 51, 65, 65, 113, 33, 146, 162, 145, + 18, 113, 49, 113, 65, 67, 52, 0, 7, 96, 27, 11, + 0, 11, 3, 51, 49, 81, 81, 49, 97, 49, 97, 33, + 129, 17, 130, 161, 161, 145, 113, 33, 113, 17, 131, 240, + 64, 19, 9, 0, 9, 7, 33, 65, 113, 129, 113, 113, + 113, 65, 33, 81, 39, 0, 5, 112, 8, 11, 0, 13, + 105, 0, 15, 48, 9, 21, 0, 26, 47, 4, 0, 29, + 16, 12, 8, 240, 161, 49, 33, 49, 49, 49, 0, 16, + 48, 9, 8, 240, 162, 81, 35, 0, 17, 32, +}; + +//***************************************************************************** +// +// The font definition for the 20 point Cm font. +// +//***************************************************************************** +const tFont g_sFontCm20 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 18, + + // + // The height of the font. + // + 22, + + // + // The baseline of the font. + // + 17, + + // + // The offset to each character in the font. + // + { + 0, 5, 23, 39, 77, 118, 173, 216, + 227, 250, 272, 292, 313, 324, 332, 340, + 364, 396, 416, 441, 467, 495, 521, 552, + 573, 604, 634, 644, 658, 676, 687, 709, + 733, 785, 820, 852, 884, 917, 948, 975, + 1006, 1039, 1059, 1081, 1117, 1142, 1198, 1241, + 1274, 1300, 1341, 1375, 1404, 1431, 1465, 1497, + 1549, 1581, 1609, 1635, 1659, 1675, 1699, 1708, + 1715, 1726, 1751, 1779, 1798, 1828, 1848, 1871, + 1896, 1925, 1942, 1964, 1994, 2012, 2046, 2071, + 2094, 2122, 2148, 2166, 2188, 2210, 2235, 2258, + 2291, 2314, 2341, 2360, 2368, 2377, 2389, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm20Data +}; diff --git a/grlib/fonts/fontcm20b.c b/grlib/fonts/fontcm20b.c new file mode 100644 index 0000000..6ee0210 --- /dev/null +++ b/grlib/fonts/fontcm20b.c @@ -0,0 +1,305 @@ +//***************************************************************************** +// +// fontcm20b.c - Font definition for the 20pt Cm bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 20 point +// Bold: yes +// Italic: no +// Memory usage: 2584 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 20 point Cm bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm20bData[2381] = +{ + 5, 9, 0, 23, 80, 17, 5, 83, 35, 35, 35, 35, + 50, 49, 65, 65, 65, 211, 35, 35, 240, 192, 20, 9, + 240, 50, 34, 51, 19, 35, 19, 65, 49, 65, 49, 49, + 49, 65, 49, 0, 13, 112, 40, 16, 240, 240, 130, 49, + 161, 50, 161, 49, 177, 49, 162, 49, 161, 50, 94, 113, + 49, 162, 49, 161, 50, 161, 49, 126, 82, 49, 161, 50, + 161, 49, 177, 49, 162, 49, 161, 50, 240, 144, 39, 10, + 49, 145, 118, 50, 17, 34, 34, 17, 19, 34, 17, 19, + 34, 17, 19, 37, 102, 101, 34, 17, 19, 36, 34, 34, + 17, 34, 34, 17, 33, 65, 17, 18, 84, 113, 0, 5, + 96, 49, 17, 240, 67, 113, 81, 34, 67, 66, 55, 82, + 49, 65, 98, 49, 50, 98, 49, 34, 114, 49, 18, 145, + 33, 34, 162, 34, 226, 52, 129, 50, 49, 98, 50, 49, + 82, 66, 49, 81, 82, 49, 66, 97, 34, 65, 131, 0, + 8, 112, 38, 15, 240, 240, 66, 193, 33, 162, 33, 162, + 33, 162, 17, 179, 68, 82, 81, 114, 81, 100, 49, 98, + 19, 33, 83, 34, 17, 99, 35, 65, 35, 36, 49, 68, + 36, 0, 9, 96, 12, 5, 162, 51, 35, 65, 65, 49, + 65, 0, 7, 112, 24, 7, 65, 81, 82, 81, 82, 81, + 82, 82, 82, 82, 82, 82, 82, 82, 82, 97, 98, 82, + 97, 113, 113, 32, 24, 7, 1, 113, 113, 97, 98, 97, + 98, 82, 82, 82, 82, 82, 82, 82, 82, 81, 82, 81, + 97, 81, 81, 96, 21, 10, 50, 130, 130, 82, 18, 18, + 51, 18, 98, 99, 18, 50, 18, 18, 82, 130, 0, 14, + 48, 21, 15, 0, 6, 49, 225, 225, 225, 225, 225, 225, + 225, 141, 129, 225, 225, 225, 225, 0, 8, 64, 12, 5, + 0, 8, 18, 51, 35, 65, 65, 49, 65, 128, 9, 7, + 0, 8, 101, 37, 0, 8, 16, 9, 5, 0, 8, 19, + 35, 35, 240, 192, 24, 10, 113, 130, 129, 145, 130, 129, + 145, 130, 129, 145, 130, 129, 145, 130, 129, 145, 130, 129, + 145, 130, 129, 144, 31, 10, 240, 240, 36, 82, 34, 65, + 65, 50, 66, 34, 66, 34, 66, 34, 66, 34, 66, 34, + 66, 34, 66, 49, 65, 66, 34, 84, 0, 6, 96, 20, + 9, 240, 240, 17, 69, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 86, 0, 5, 112, 24, 9, 240, 228, 50, + 35, 35, 34, 35, 34, 114, 113, 114, 98, 113, 33, 65, + 49, 54, 39, 39, 0, 5, 112, 26, 10, 240, 240, 36, + 81, 50, 66, 34, 66, 34, 130, 83, 147, 131, 115, 35, + 35, 35, 35, 34, 50, 69, 0, 6, 96, 25, 11, 240, + 240, 145, 146, 131, 131, 113, 18, 97, 34, 97, 34, 81, + 50, 65, 66, 73, 114, 146, 118, 0, 7, 16, 25, 10, + 240, 240, 22, 69, 84, 97, 145, 149, 81, 50, 131, 49, + 51, 35, 35, 34, 51, 49, 50, 84, 0, 6, 96, 31, + 10, 240, 240, 52, 81, 49, 65, 50, 50, 50, 50, 19, + 67, 34, 50, 51, 34, 51, 34, 51, 34, 51, 49, 51, + 50, 34, 84, 0, 6, 96, 21, 10, 240, 240, 23, 39, + 55, 49, 65, 65, 49, 145, 129, 145, 130, 130, 130, 130, + 130, 0, 7, 29, 10, 240, 240, 36, 81, 50, 65, 65, + 66, 49, 67, 33, 69, 101, 66, 20, 34, 51, 34, 66, + 34, 66, 50, 34, 84, 0, 6, 96, 30, 9, 240, 227, + 81, 34, 50, 49, 50, 50, 34, 50, 34, 50, 34, 50, + 49, 35, 66, 18, 49, 50, 34, 49, 65, 34, 67, 0, + 6, 32, 13, 5, 240, 240, 83, 35, 35, 240, 35, 35, + 35, 240, 192, 16, 5, 240, 240, 83, 35, 35, 240, 34, + 51, 35, 65, 65, 49, 65, 128, 17, 5, 240, 243, 35, + 35, 129, 65, 65, 65, 50, 51, 35, 35, 35, 35, 112, + 11, 15, 0, 15, 13, 0, 7, 109, 0, 13, 48, 22, + 9, 0, 7, 3, 84, 99, 240, 17, 129, 129, 114, 113, + 113, 114, 50, 34, 50, 34, 65, 53, 192, 22, 9, 240, + 69, 49, 66, 34, 50, 34, 50, 98, 113, 113, 129, 129, + 240, 163, 84, 99, 0, 6, 16, 51, 15, 240, 240, 69, + 130, 82, 82, 36, 33, 65, 34, 34, 17, 49, 34, 66, + 17, 33, 34, 66, 17, 33, 34, 66, 17, 33, 34, 66, + 17, 33, 34, 66, 17, 33, 34, 66, 17, 49, 34, 35, + 17, 50, 36, 18, 82, 114, 103, 0, 9, 112, 30, 15, + 240, 240, 97, 211, 195, 195, 177, 19, 161, 19, 161, 34, + 145, 51, 129, 51, 135, 113, 83, 97, 83, 97, 99, 52, + 54, 0, 9, 80, 31, 15, 240, 250, 114, 67, 98, 83, + 82, 83, 82, 83, 82, 67, 103, 130, 67, 98, 83, 82, + 83, 82, 84, 66, 83, 82, 68, 59, 0, 9, 112, 30, + 14, 240, 240, 37, 33, 67, 67, 51, 98, 50, 129, 35, + 129, 35, 179, 179, 179, 179, 129, 50, 129, 51, 97, 83, + 66, 117, 0, 9, 48, 31, 15, 240, 249, 130, 67, 98, + 83, 82, 98, 82, 99, 66, 99, 66, 99, 66, 99, 66, + 99, 66, 99, 66, 98, 82, 83, 82, 67, 74, 0, 10, + 33, 15, 240, 252, 83, 82, 83, 97, 83, 97, 83, 49, + 33, 83, 49, 135, 131, 49, 131, 49, 49, 67, 113, 67, + 97, 83, 97, 83, 82, 60, 0, 9, 96, 29, 14, 240, + 220, 67, 82, 67, 82, 67, 97, 67, 49, 33, 67, 49, + 115, 34, 119, 115, 49, 115, 49, 115, 179, 179, 152, 0, + 9, 64, 32, 15, 240, 240, 69, 33, 83, 67, 67, 98, + 66, 129, 51, 129, 51, 195, 195, 195, 70, 35, 99, 66, + 99, 67, 83, 83, 52, 117, 33, 0, 9, 96, 34, 17, + 240, 240, 71, 23, 67, 83, 99, 83, 99, 83, 99, 83, + 99, 83, 107, 99, 83, 99, 83, 99, 83, 99, 83, 99, + 83, 99, 83, 71, 23, 0, 10, 112, 20, 9, 240, 55, + 67, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 71, 0, 5, 112, 23, 10, 240, 133, 114, 130, 130, 130, + 130, 130, 130, 130, 130, 51, 34, 51, 34, 50, 35, 69, + 0, 6, 96, 35, 16, 240, 240, 39, 52, 67, 97, 99, + 81, 115, 65, 131, 49, 147, 33, 163, 19, 148, 19, 131, + 35, 131, 51, 115, 51, 115, 67, 99, 83, 55, 37, 0, + 10, 32, 25, 13, 240, 183, 131, 163, 163, 163, 163, 163, + 163, 163, 81, 67, 81, 67, 65, 83, 65, 83, 50, 58, + 0, 8, 64, 54, 19, 240, 240, 133, 117, 67, 115, 100, + 81, 18, 97, 18, 81, 18, 97, 18, 81, 18, 97, 34, + 49, 34, 97, 34, 49, 34, 97, 35, 33, 34, 97, 50, + 17, 50, 97, 50, 17, 50, 97, 52, 50, 97, 66, 66, + 97, 66, 66, 69, 34, 38, 0, 12, 16, 41, 16, 240, + 240, 37, 69, 68, 81, 100, 81, 97, 19, 65, 97, 35, + 49, 97, 35, 49, 97, 51, 33, 97, 67, 17, 97, 67, + 17, 97, 84, 97, 99, 97, 99, 97, 114, 69, 97, 0, + 10, 64, 33, 15, 240, 240, 69, 131, 51, 83, 83, 66, + 114, 51, 115, 35, 115, 35, 115, 35, 115, 35, 115, 35, + 115, 50, 114, 67, 83, 83, 51, 133, 0, 10, 16, 26, + 14, 240, 218, 99, 51, 83, 67, 67, 67, 67, 67, 67, + 67, 67, 51, 88, 99, 179, 179, 179, 179, 151, 0, 9, + 80, 39, 15, 240, 240, 69, 131, 51, 83, 83, 67, 98, + 51, 115, 35, 115, 35, 115, 35, 115, 35, 115, 35, 115, + 50, 114, 67, 19, 19, 84, 34, 150, 33, 162, 33, 180, + 180, 179, 240, 48, 34, 16, 240, 240, 41, 146, 67, 114, + 83, 98, 83, 98, 83, 98, 83, 98, 67, 119, 146, 51, + 130, 67, 114, 67, 114, 67, 114, 68, 17, 38, 53, 0, + 10, 32, 30, 11, 240, 148, 17, 66, 50, 50, 81, 50, + 81, 51, 65, 53, 119, 86, 147, 33, 98, 33, 98, 34, + 82, 35, 50, 49, 36, 0, 7, 48, 31, 15, 240, 240, + 27, 65, 51, 49, 50, 51, 50, 33, 67, 65, 33, 67, + 65, 33, 67, 65, 115, 195, 195, 195, 195, 195, 195, 153, + 0, 9, 112, 34, 17, 240, 240, 71, 53, 67, 113, 99, + 113, 99, 113, 99, 113, 99, 113, 99, 113, 99, 113, 99, + 113, 99, 113, 99, 113, 114, 97, 131, 66, 165, 0, 11, + 64, 31, 17, 240, 240, 71, 53, 67, 113, 115, 81, 131, + 81, 131, 81, 147, 49, 163, 49, 178, 34, 179, 17, 195, + 17, 211, 227, 227, 241, 0, 11, 96, 47, 22, 240, 240, + 230, 23, 36, 67, 67, 97, 83, 67, 81, 115, 67, 65, + 115, 52, 65, 115, 52, 49, 147, 33, 19, 33, 147, 17, + 35, 33, 147, 17, 50, 17, 180, 52, 179, 68, 179, 82, + 210, 82, 209, 98, 0, 14, 80, 30, 16, 240, 240, 38, + 22, 83, 65, 132, 34, 147, 33, 180, 196, 211, 212, 196, + 177, 35, 146, 35, 145, 67, 113, 84, 69, 39, 0, 10, + 32, 27, 16, 240, 240, 38, 53, 67, 97, 115, 65, 131, + 65, 147, 33, 163, 18, 180, 196, 210, 226, 226, 226, 226, + 198, 0, 10, 96, 29, 12, 240, 154, 35, 52, 34, 67, + 49, 67, 65, 67, 131, 147, 131, 147, 49, 67, 65, 66, + 81, 51, 81, 35, 67, 42, 0, 7, 96, 23, 5, 83, + 33, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 67, 32, 20, 10, 240, 97, + 65, 65, 65, 49, 65, 65, 65, 67, 35, 35, 35, 50, + 50, 0, 15, 32, 23, 5, 83, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 35, 32, 10, 8, 240, 49, 99, 66, 34, 0, 16, + 32, 8, 5, 163, 35, 35, 0, 10, 32, 12, 5, 177, + 65, 49, 65, 67, 35, 50, 0, 7, 96, 23, 10, 0, + 8, 117, 66, 50, 65, 50, 85, 66, 34, 50, 50, 50, + 50, 50, 35, 67, 19, 0, 6, 64, 29, 11, 240, 115, + 146, 146, 146, 146, 146, 19, 83, 34, 66, 66, 50, 66, + 50, 66, 50, 66, 50, 66, 51, 34, 65, 35, 0, 7, + 48, 19, 9, 0, 8, 20, 66, 34, 34, 50, 34, 114, + 114, 114, 65, 50, 49, 68, 0, 6, 28, 11, 240, 195, + 146, 146, 146, 146, 83, 18, 66, 35, 50, 66, 50, 66, + 50, 66, 50, 66, 50, 66, 66, 50, 87, 0, 7, 16, + 21, 10, 0, 9, 4, 82, 34, 50, 66, 34, 66, 40, + 34, 130, 81, 50, 50, 68, 0, 6, 96, 22, 9, 240, + 99, 67, 18, 50, 34, 50, 114, 101, 82, 114, 114, 114, + 114, 114, 114, 101, 0, 6, 16, 27, 11, 0, 9, 100, + 18, 50, 52, 34, 50, 66, 50, 81, 50, 65, 20, 81, + 167, 87, 49, 82, 49, 97, 50, 66, 85, 240, 29, 11, + 240, 115, 146, 146, 146, 146, 146, 19, 83, 34, 66, 50, + 66, 50, 66, 50, 66, 50, 66, 50, 66, 50, 52, 20, + 0, 7, 16, 17, 6, 210, 51, 66, 243, 66, 66, 66, + 66, 66, 66, 66, 52, 240, 240, 32, 23, 8, 240, 67, + 83, 83, 240, 84, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 34, 34, 34, 18, 67, 192, 28, 11, 240, 115, 146, + 146, 146, 146, 146, 36, 50, 49, 82, 33, 98, 17, 117, + 98, 19, 82, 34, 82, 50, 52, 20, 0, 7, 16, 19, + 6, 195, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 52, 240, 240, 32, 33, 17, 0, 14, 115, 19, + 36, 83, 35, 50, 66, 50, 66, 66, 50, 66, 66, 50, + 66, 66, 50, 66, 66, 50, 66, 66, 50, 66, 52, 26, + 0, 10, 112, 25, 11, 0, 9, 83, 19, 83, 34, 66, + 50, 66, 50, 66, 50, 66, 50, 66, 50, 66, 50, 52, + 20, 0, 7, 16, 23, 10, 0, 9, 4, 82, 34, 50, + 66, 34, 66, 34, 66, 34, 66, 34, 66, 50, 34, 84, + 0, 6, 96, 28, 11, 0, 9, 83, 19, 83, 34, 66, + 66, 50, 66, 50, 66, 50, 66, 50, 66, 51, 34, 66, + 19, 82, 146, 146, 132, 240, 48, 27, 11, 0, 9, 115, + 33, 66, 35, 50, 66, 50, 66, 50, 66, 50, 66, 50, + 66, 66, 35, 83, 18, 146, 146, 146, 132, 208, 19, 9, + 0, 7, 115, 19, 51, 18, 50, 34, 50, 114, 114, 114, + 114, 101, 0, 6, 16, 20, 8, 0, 7, 21, 33, 65, + 33, 65, 36, 84, 114, 33, 65, 34, 49, 37, 240, 240, + 208, 23, 8, 240, 49, 113, 113, 113, 98, 86, 50, 98, + 98, 98, 98, 33, 50, 33, 50, 33, 67, 240, 240, 208, + 25, 11, 0, 9, 83, 35, 66, 50, 66, 50, 66, 50, + 66, 50, 66, 50, 66, 50, 66, 35, 83, 19, 0, 7, + 16, 21, 12, 0, 10, 69, 35, 66, 65, 83, 33, 114, + 33, 114, 18, 116, 147, 146, 177, 0, 8, 32, 30, 16, + 0, 14, 9, 35, 66, 34, 65, 82, 50, 33, 99, 19, + 33, 114, 19, 33, 114, 17, 19, 146, 35, 146, 35, 146, + 49, 0, 10, 96, 22, 12, 0, 10, 69, 20, 66, 49, + 114, 17, 146, 162, 163, 129, 34, 98, 35, 52, 36, 0, + 7, 96, 26, 11, 0, 9, 84, 35, 51, 49, 82, 49, + 82, 33, 99, 17, 115, 131, 146, 145, 161, 98, 18, 98, + 17, 130, 240, 64, 22, 9, 0, 7, 119, 34, 35, 33, + 50, 49, 34, 99, 98, 33, 50, 49, 35, 34, 39, 0, + 5, 112, 8, 12, 0, 15, 10, 0, 15, 32, 9, 22, + 0, 27, 79, 5, 0, 27, 96, 13, 9, 162, 34, 35, + 19, 34, 34, 49, 49, 0, 18, 64, 9, 9, 240, 67, + 33, 38, 0, 19, 64, +}; + +//***************************************************************************** +// +// The font definition for the 20 point Cm bold font. +// +//***************************************************************************** +const tFont g_sFontCm20b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 19, + + // + // The height of the font. + // + 21, + + // + // The baseline of the font. + // + 16, + + // + // The offset to each character in the font. + // + { + 0, 5, 22, 42, 82, 121, 170, 208, + 220, 244, 268, 289, 310, 322, 331, 340, + 364, 395, 415, 439, 465, 490, 515, 546, + 567, 596, 626, 639, 655, 672, 683, 705, + 727, 778, 808, 839, 869, 900, 933, 962, + 994, 1028, 1048, 1071, 1106, 1131, 1185, 1226, + 1259, 1285, 1324, 1358, 1388, 1419, 1453, 1484, + 1531, 1561, 1588, 1617, 1640, 1660, 1683, 1693, + 1701, 1713, 1736, 1765, 1784, 1812, 1833, 1855, + 1882, 1911, 1928, 1951, 1979, 1998, 2031, 2056, + 2079, 2107, 2134, 2153, 2173, 2196, 2221, 2242, + 2272, 2294, 2320, 2342, 2350, 2359, 2372, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm20bData +}; diff --git a/grlib/fonts/fontcm20i.c b/grlib/fonts/fontcm20i.c new file mode 100644 index 0000000..6a867c5 --- /dev/null +++ b/grlib/fonts/fontcm20i.c @@ -0,0 +1,309 @@ +//***************************************************************************** +// +// fontcm20i.c - Font definition for the 20pt Cm italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 20 point +// Bold: no +// Italic: yes +// Memory usage: 2648 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 20 point Cm italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm20iData[2448] = +{ + 5, 9, 0, 23, 80, 20, 7, 50, 82, 82, 81, 97, + 82, 82, 81, 97, 97, 81, 97, 240, 66, 82, 240, 240, + 160, 15, 8, 240, 18, 34, 34, 34, 49, 49, 33, 49, + 97, 0, 14, 64, 39, 16, 240, 240, 241, 161, 49, 161, + 65, 161, 49, 161, 65, 161, 49, 109, 113, 49, 161, 49, + 177, 49, 125, 97, 49, 161, 65, 161, 49, 161, 65, 161, + 49, 161, 65, 161, 49, 240, 192, 27, 14, 240, 240, 99, + 161, 49, 129, 50, 129, 50, 114, 193, 181, 177, 194, 193, + 209, 164, 145, 35, 49, 67, 36, 0, 9, 48, 53, 16, + 66, 113, 81, 33, 67, 65, 55, 66, 49, 65, 81, 65, + 49, 97, 49, 49, 113, 49, 33, 129, 33, 34, 146, 34, + 34, 146, 33, 33, 114, 33, 49, 113, 34, 49, 97, 49, + 65, 81, 65, 49, 81, 81, 49, 66, 81, 33, 81, 114, + 0, 8, 96, 46, 15, 67, 81, 82, 33, 65, 66, 49, + 65, 65, 50, 49, 81, 50, 49, 66, 113, 81, 19, 50, + 97, 33, 33, 33, 65, 18, 34, 33, 49, 98, 33, 49, + 161, 49, 145, 65, 145, 65, 129, 97, 82, 133, 0, 10, + 48, 9, 4, 130, 34, 49, 33, 0, 7, 112, 24, 9, + 97, 113, 113, 129, 113, 113, 129, 129, 113, 129, 129, 113, + 129, 129, 129, 129, 129, 129, 129, 145, 129, 112, 23, 9, + 225, 129, 145, 129, 129, 129, 129, 129, 129, 113, 129, 129, + 114, 113, 129, 113, 113, 129, 113, 113, 128, 17, 10, 81, + 129, 97, 33, 33, 65, 19, 97, 132, 66, 17, 33, 97, + 0, 17, 20, 14, 0, 7, 113, 209, 193, 209, 209, 209, + 124, 113, 209, 209, 193, 209, 209, 0, 8, 16, 11, 5, + 0, 8, 114, 50, 65, 49, 65, 49, 144, 8, 7, 0, + 9, 85, 0, 8, 16, 8, 4, 0, 7, 2, 34, 240, + 112, 24, 14, 177, 193, 209, 193, 209, 193, 209, 193, 209, + 193, 193, 209, 193, 209, 193, 209, 193, 209, 193, 193, 209, + 208, 32, 11, 240, 180, 98, 49, 66, 65, 65, 81, 50, + 81, 49, 82, 49, 82, 34, 81, 49, 97, 49, 82, 49, + 81, 65, 66, 65, 50, 100, 0, 7, 80, 20, 9, 240, + 145, 129, 99, 81, 17, 129, 129, 114, 113, 129, 129, 114, + 113, 129, 86, 0, 6, 31, 12, 240, 228, 113, 50, 81, + 81, 81, 17, 49, 65, 33, 49, 65, 17, 50, 67, 49, + 161, 146, 130, 145, 161, 97, 67, 65, 49, 52, 0, 8, + 30, 11, 240, 180, 98, 49, 66, 65, 65, 17, 49, 65, + 17, 49, 66, 49, 146, 114, 177, 161, 66, 65, 66, 50, + 65, 50, 100, 0, 7, 80, 27, 10, 240, 193, 145, 145, + 129, 145, 130, 129, 129, 145, 129, 33, 81, 49, 65, 50, + 52, 17, 65, 52, 113, 130, 129, 145, 240, 27, 11, 240, + 161, 65, 85, 81, 161, 161, 19, 83, 49, 65, 81, 161, + 161, 49, 82, 49, 81, 146, 65, 50, 99, 0, 7, 96, + 32, 11, 240, 211, 98, 33, 81, 65, 65, 146, 19, 81, + 17, 34, 66, 65, 50, 81, 49, 97, 49, 82, 49, 82, + 49, 66, 65, 50, 100, 0, 7, 80, 26, 11, 240, 162, + 49, 50, 33, 17, 65, 51, 49, 81, 65, 81, 145, 161, + 145, 161, 146, 145, 161, 146, 146, 0, 7, 96, 31, 11, + 240, 195, 98, 49, 65, 81, 65, 81, 65, 65, 83, 17, + 115, 113, 34, 81, 66, 49, 97, 49, 97, 49, 81, 66, + 49, 100, 0, 7, 80, 30, 12, 240, 228, 114, 49, 81, + 81, 66, 81, 65, 97, 65, 82, 65, 82, 65, 51, 99, + 18, 161, 162, 81, 65, 81, 50, 116, 0, 8, 48, 13, + 6, 240, 240, 226, 66, 240, 240, 34, 66, 240, 240, 64, + 15, 6, 240, 240, 226, 66, 240, 240, 49, 66, 81, 81, + 65, 240, 32, 18, 7, 240, 240, 242, 82, 193, 81, 97, + 97, 97, 82, 81, 97, 82, 82, 82, 192, 11, 15, 0, + 15, 28, 0, 5, 124, 0, 15, 48, 25, 10, 0, 8, + 33, 130, 240, 35, 98, 17, 145, 114, 114, 113, 50, 49, + 66, 33, 81, 49, 81, 49, 65, 84, 240, 27, 9, 51, + 81, 49, 49, 65, 33, 81, 33, 81, 34, 49, 50, 33, + 113, 113, 113, 129, 17, 98, 240, 161, 129, 0, 6, 64, + 49, 15, 240, 240, 101, 133, 18, 97, 17, 33, 49, 65, + 17, 65, 33, 49, 33, 65, 33, 49, 17, 81, 33, 33, + 33, 66, 33, 33, 33, 65, 33, 49, 33, 65, 33, 49, + 34, 34, 18, 49, 51, 19, 81, 226, 82, 133, 0, 10, + 32, 33, 15, 145, 225, 210, 193, 17, 193, 17, 177, 33, + 177, 34, 145, 50, 145, 50, 129, 66, 135, 113, 82, 113, + 82, 97, 98, 97, 98, 68, 69, 0, 9, 80, 32, 14, + 240, 240, 24, 129, 66, 98, 81, 97, 97, 97, 82, 97, + 66, 102, 129, 82, 97, 97, 97, 97, 82, 97, 81, 97, + 97, 82, 72, 0, 9, 64, 31, 14, 240, 240, 52, 145, + 65, 17, 81, 98, 65, 113, 65, 129, 65, 129, 49, 209, + 209, 209, 129, 65, 113, 81, 113, 97, 66, 132, 0, 9, + 96, 33, 15, 240, 240, 56, 130, 81, 114, 97, 97, 113, + 97, 113, 82, 113, 82, 113, 81, 114, 81, 113, 82, 113, + 82, 97, 97, 98, 97, 82, 88, 0, 10, 32, 30, 16, + 240, 240, 106, 114, 81, 129, 97, 129, 226, 49, 161, 65, + 165, 177, 49, 162, 49, 162, 225, 113, 113, 97, 114, 82, + 91, 0, 10, 80, 28, 15, 240, 240, 73, 114, 81, 113, + 97, 113, 97, 98, 49, 145, 65, 149, 161, 49, 146, 49, + 146, 209, 225, 210, 182, 0, 10, 64, 31, 14, 240, 240, + 52, 146, 49, 17, 81, 98, 65, 129, 49, 209, 194, 193, + 209, 85, 49, 114, 65, 114, 66, 98, 82, 66, 117, 17, + 0, 9, 48, 34, 17, 240, 240, 117, 37, 113, 97, 130, + 82, 130, 82, 129, 97, 145, 82, 137, 130, 82, 129, 97, + 145, 97, 130, 82, 130, 82, 129, 97, 117, 37, 0, 11, + 32, 20, 10, 240, 133, 113, 130, 130, 129, 145, 130, 130, + 129, 145, 130, 130, 129, 117, 0, 6, 112, 22, 11, 240, + 181, 130, 146, 145, 146, 146, 145, 161, 146, 146, 145, 97, + 34, 97, 33, 115, 0, 7, 112, 35, 18, 240, 240, 165, + 52, 114, 97, 145, 82, 161, 65, 178, 49, 194, 33, 209, + 34, 211, 18, 178, 50, 178, 65, 177, 82, 161, 97, 146, + 97, 117, 68, 0, 11, 112, 24, 13, 240, 245, 146, 177, + 193, 178, 178, 177, 193, 178, 178, 81, 81, 97, 81, 81, + 82, 66, 58, 0, 8, 64, 56, 21, 0, 5, 99, 132, + 114, 115, 129, 17, 97, 17, 145, 17, 97, 17, 145, 18, + 65, 18, 145, 18, 65, 18, 145, 18, 49, 33, 145, 49, + 33, 49, 145, 49, 33, 34, 145, 49, 17, 49, 161, 49, + 17, 49, 145, 66, 65, 145, 66, 50, 117, 33, 37, 0, + 13, 112, 43, 18, 240, 240, 163, 69, 114, 97, 129, 18, + 65, 145, 18, 65, 145, 33, 65, 145, 34, 49, 129, 50, + 33, 145, 65, 33, 145, 66, 17, 145, 66, 17, 129, 98, + 145, 98, 145, 98, 116, 97, 0, 12, 16, 33, 14, 240, + 240, 68, 130, 65, 97, 113, 65, 129, 49, 145, 49, 145, + 34, 145, 33, 146, 33, 145, 49, 130, 49, 129, 65, 113, + 97, 66, 132, 0, 9, 96, 27, 14, 240, 240, 24, 114, + 66, 98, 81, 97, 97, 97, 97, 82, 81, 98, 66, 102, + 129, 194, 194, 193, 209, 181, 0, 9, 112, 43, 14, 240, + 240, 68, 130, 65, 97, 113, 65, 129, 50, 129, 49, 145, + 34, 145, 33, 146, 33, 145, 49, 145, 49, 51, 33, 81, + 17, 33, 17, 97, 17, 34, 133, 49, 145, 33, 161, 33, + 164, 163, 240, 64, 34, 15, 240, 240, 56, 145, 82, 113, + 97, 98, 97, 97, 97, 113, 81, 134, 130, 65, 130, 65, + 129, 81, 129, 81, 114, 66, 114, 66, 33, 37, 67, 0, + 9, 96, 29, 12, 240, 212, 17, 82, 33, 17, 81, 65, + 81, 81, 81, 81, 82, 180, 163, 177, 177, 65, 97, 65, + 81, 82, 50, 115, 0, 8, 48, 28, 15, 240, 240, 43, + 50, 50, 65, 49, 66, 65, 33, 81, 65, 49, 81, 210, + 210, 209, 225, 210, 210, 209, 225, 182, 0, 10, 48, 33, + 14, 240, 213, 52, 65, 97, 97, 97, 82, 97, 81, 97, + 97, 97, 97, 97, 82, 97, 81, 97, 97, 97, 97, 97, + 97, 81, 129, 49, 148, 0, 9, 112, 31, 15, 240, 245, + 68, 65, 113, 97, 97, 113, 97, 113, 81, 130, 65, 130, + 49, 146, 33, 162, 33, 162, 17, 193, 17, 194, 209, 225, + 0, 10, 96, 51, 20, 240, 240, 165, 36, 52, 50, 82, + 81, 82, 82, 81, 97, 82, 65, 113, 67, 65, 113, 49, + 18, 49, 129, 49, 18, 33, 145, 33, 34, 33, 145, 33, + 49, 17, 161, 17, 65, 17, 161, 17, 66, 178, 82, 177, + 97, 193, 97, 0, 13, 96, 32, 17, 240, 240, 117, 52, + 114, 81, 161, 65, 178, 33, 194, 17, 226, 242, 242, 225, + 18, 193, 34, 177, 65, 161, 82, 129, 98, 100, 69, 0, + 11, 16, 27, 15, 240, 245, 83, 65, 113, 98, 81, 114, + 65, 145, 49, 162, 33, 162, 17, 194, 209, 225, 210, 210, + 209, 197, 0, 10, 64, 29, 14, 240, 240, 25, 82, 81, + 97, 81, 97, 81, 113, 65, 194, 178, 193, 193, 193, 81, + 97, 81, 98, 81, 82, 82, 88, 0, 9, 64, 24, 10, + 83, 113, 145, 129, 145, 145, 145, 129, 145, 145, 145, 129, + 145, 145, 145, 129, 145, 145, 145, 129, 147, 112, 17, 8, + 240, 97, 49, 33, 49, 33, 65, 33, 66, 18, 50, 18, + 0, 13, 48, 24, 9, 82, 129, 129, 113, 129, 129, 129, + 113, 129, 129, 129, 113, 129, 129, 129, 113, 129, 129, 129, + 113, 114, 112, 11, 7, 240, 18, 65, 17, 49, 49, 0, + 14, 32, 7, 4, 130, 34, 0, 8, 96, 11, 5, 193, + 49, 49, 65, 66, 50, 0, 8, 64, 27, 10, 0, 9, + 18, 17, 81, 34, 65, 65, 50, 50, 49, 65, 65, 65, + 65, 50, 17, 33, 34, 33, 50, 34, 0, 6, 80, 27, + 9, 240, 67, 114, 113, 129, 129, 117, 66, 49, 49, 65, + 34, 65, 33, 81, 33, 66, 33, 65, 49, 49, 83, 0, + 6, 32, 20, 9, 0, 8, 36, 66, 33, 49, 65, 34, + 113, 129, 129, 81, 33, 65, 68, 0, 6, 16, 31, 10, + 240, 178, 145, 145, 145, 129, 98, 17, 81, 34, 65, 65, + 50, 49, 65, 65, 65, 65, 65, 50, 17, 33, 34, 33, + 50, 34, 0, 6, 80, 20, 9, 0, 8, 35, 66, 49, + 49, 50, 37, 65, 129, 129, 81, 33, 65, 68, 0, 6, + 16, 24, 10, 240, 178, 113, 145, 130, 129, 117, 113, 145, + 145, 130, 129, 145, 145, 145, 130, 129, 113, 17, 114, 240, + 48, 29, 10, 0, 9, 34, 17, 81, 34, 65, 65, 50, + 50, 49, 65, 65, 65, 65, 50, 65, 35, 82, 17, 145, + 130, 65, 34, 84, 240, 16, 30, 10, 240, 114, 145, 145, + 130, 129, 145, 19, 82, 33, 66, 49, 66, 49, 65, 65, + 65, 49, 66, 49, 65, 65, 17, 33, 66, 0, 6, 80, + 22, 7, 240, 34, 82, 240, 147, 65, 17, 49, 33, 82, + 81, 82, 81, 33, 49, 17, 67, 240, 240, 128, 26, 10, + 240, 178, 130, 240, 240, 98, 113, 33, 81, 49, 81, 49, + 130, 129, 145, 130, 129, 145, 130, 81, 18, 99, 240, 32, + 30, 9, 240, 67, 129, 129, 113, 129, 129, 34, 65, 17, + 17, 49, 17, 98, 113, 18, 66, 33, 65, 49, 17, 33, + 49, 17, 33, 50, 0, 6, 21, 6, 211, 81, 65, 81, + 81, 81, 65, 81, 81, 81, 65, 81, 17, 49, 17, 65, + 240, 240, 64, 37, 16, 0, 14, 18, 35, 35, 49, 34, + 35, 33, 49, 33, 50, 49, 82, 50, 49, 81, 65, 65, + 81, 65, 49, 82, 50, 49, 81, 65, 65, 17, 49, 65, + 66, 0, 10, 48, 28, 11, 0, 9, 98, 35, 49, 34, + 33, 49, 33, 49, 82, 49, 81, 65, 81, 49, 82, 49, + 81, 65, 17, 49, 66, 0, 7, 32, 23, 10, 0, 9, + 20, 82, 49, 49, 81, 34, 81, 33, 97, 33, 81, 49, + 81, 49, 50, 84, 0, 6, 112, 31, 11, 0, 9, 114, + 34, 65, 17, 17, 33, 49, 18, 49, 81, 65, 81, 65, + 81, 50, 65, 65, 82, 33, 97, 18, 113, 145, 161, 148, + 240, 48, 26, 9, 0, 8, 34, 97, 34, 49, 65, 34, + 50, 33, 65, 49, 65, 49, 50, 49, 34, 82, 17, 129, + 114, 113, 101, 192, 19, 9, 0, 8, 2, 19, 33, 18, + 33, 65, 129, 114, 113, 129, 129, 114, 0, 6, 64, 20, + 8, 0, 7, 51, 65, 33, 49, 49, 50, 115, 114, 33, + 65, 33, 49, 52, 240, 240, 224, 22, 8, 240, 66, 97, + 113, 113, 113, 70, 66, 97, 113, 113, 97, 113, 33, 65, + 33, 82, 240, 240, 224, 27, 11, 0, 9, 98, 65, 49, + 33, 49, 97, 49, 81, 65, 81, 50, 65, 65, 81, 65, + 81, 50, 17, 67, 18, 0, 7, 32, 25, 9, 0, 8, + 2, 49, 33, 33, 33, 81, 33, 65, 49, 65, 49, 49, + 49, 65, 49, 65, 49, 83, 0, 6, 16, 34, 13, 0, + 11, 66, 49, 49, 33, 33, 33, 49, 81, 33, 49, 65, + 49, 49, 65, 34, 49, 49, 49, 49, 65, 49, 49, 65, + 49, 33, 99, 19, 0, 8, 80, 22, 11, 0, 9, 115, + 19, 49, 35, 17, 98, 146, 145, 146, 146, 97, 18, 49, + 51, 19, 0, 7, 48, 30, 10, 0, 8, 114, 65, 33, + 33, 49, 81, 49, 65, 50, 65, 50, 49, 65, 65, 65, + 65, 50, 84, 145, 65, 50, 65, 34, 84, 240, 16, 22, + 10, 0, 9, 18, 33, 65, 34, 129, 129, 129, 129, 145, + 49, 65, 17, 33, 49, 50, 0, 6, 96, 8, 11, 0, + 12, 57, 0, 15, 48, 9, 20, 0, 22, 79, 3, 0, + 27, 96, 12, 8, 240, 49, 33, 49, 33, 49, 33, 0, + 16, 64, 10, 8, 240, 34, 33, 33, 34, 0, 17, 48,}; + +//***************************************************************************** +// +// The font definition for the 20 point Cm italic font. +// +//***************************************************************************** +const tFont g_sFontCm20i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 18, + + // + // The height of the font. + // + 21, + + // + // The baseline of the font. + // + 16, + + // + // The offset to each character in the font. + // + { + 0, 5, 25, 40, 79, 106, 159, 205, + 214, 238, 261, 278, 298, 309, 317, 325, + 349, 381, 401, 432, 462, 489, 516, 548, + 574, 605, 635, 648, 663, 681, 692, 717, + 744, 793, 826, 858, 889, 922, 952, 980, + 1011, 1045, 1065, 1087, 1122, 1146, 1202, 1245, + 1278, 1305, 1348, 1382, 1411, 1439, 1472, 1503, + 1554, 1586, 1613, 1642, 1666, 1683, 1707, 1718, + 1725, 1736, 1763, 1790, 1810, 1841, 1861, 1885, + 1914, 1944, 1966, 1992, 2022, 2043, 2080, 2108, + 2131, 2162, 2188, 2207, 2227, 2249, 2276, 2301, + 2335, 2357, 2387, 2409, 2417, 2426, 2438, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm20iData +}; diff --git a/grlib/fonts/fontcm22.c b/grlib/fonts/fontcm22.c new file mode 100644 index 0000000..2df73d3 --- /dev/null +++ b/grlib/fonts/fontcm22.c @@ -0,0 +1,305 @@ +//***************************************************************************** +// +// fontcm22.c - Font definition for the 22pt Cm font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 22 point +// Bold: no +// Italic: no +// Memory usage: 2600 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 22 point Cm font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm22Data[2400] = +{ + 5, 9, 0, 24, 96, 17, 4, 66, 34, 34, 34, 34, + 34, 34, 34, 33, 49, 49, 242, 34, 240, 112, 16, 9, + 240, 194, 49, 51, 34, 65, 49, 65, 49, 49, 49, 129, + 0, 15, 40, 17, 0, 7, 33, 65, 177, 49, 177, 65, + 177, 65, 177, 49, 177, 65, 111, 113, 65, 177, 49, 177, + 65, 127, 97, 65, 177, 49, 177, 65, 177, 65, 177, 49, + 177, 65, 177, 65, 240, 176, 41, 10, 209, 132, 81, 17, + 33, 49, 33, 49, 33, 33, 34, 33, 33, 34, 33, 33, + 115, 132, 113, 18, 97, 34, 33, 33, 49, 33, 33, 49, + 33, 33, 49, 33, 33, 33, 69, 113, 0, 5, 96, 55, + 17, 34, 129, 81, 33, 98, 65, 50, 66, 81, 70, 97, + 65, 65, 97, 65, 49, 113, 65, 33, 129, 65, 33, 145, + 33, 33, 178, 33, 66, 161, 49, 33, 129, 49, 65, 113, + 49, 65, 97, 65, 65, 81, 81, 65, 81, 81, 65, 65, + 113, 33, 81, 130, 0, 9, 43, 16, 240, 67, 209, 33, + 177, 49, 177, 49, 177, 49, 177, 33, 193, 17, 211, 84, + 81, 113, 99, 81, 97, 33, 81, 81, 65, 49, 97, 81, + 17, 113, 97, 81, 34, 65, 17, 50, 53, 52, 0, 10, + 48, 10, 5, 242, 51, 65, 65, 49, 0, 9, 16, 23, + 6, 241, 65, 65, 81, 81, 65, 81, 81, 81, 81, 81, + 81, 81, 81, 97, 81, 81, 97, 97, 81, 32, 22, 6, + 193, 97, 97, 81, 81, 97, 81, 81, 81, 81, 81, 81, + 81, 81, 65, 81, 65, 81, 65, 176, 20, 9, 193, 129, + 81, 33, 33, 49, 17, 17, 83, 85, 49, 33, 33, 81, + 129, 0, 14, 16, 21, 15, 0, 8, 33, 225, 225, 225, + 225, 225, 225, 141, 129, 225, 225, 225, 225, 225, 0, 8, + 64, 10, 5, 0, 9, 65, 51, 65, 65, 49, 208, 8, + 7, 0, 10, 69, 0, 8, 16, 8, 4, 0, 7, 66, + 34, 240, 112, 25, 10, 240, 33, 145, 129, 145, 145, 129, + 145, 129, 145, 145, 129, 145, 145, 129, 145, 145, 129, 145, + 145, 129, 145, 144, 33, 10, 240, 240, 36, 81, 65, 65, + 65, 49, 97, 33, 97, 33, 97, 33, 97, 33, 97, 33, + 97, 33, 97, 33, 97, 49, 65, 65, 65, 84, 0, 6, + 96, 20, 9, 240, 241, 84, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 87, 0, 5, 112, 26, 10, 240, + 240, 36, 66, 50, 49, 97, 33, 97, 33, 97, 145, 129, + 129, 129, 129, 129, 129, 129, 97, 40, 0, 6, 64, 27, + 11, 240, 240, 100, 82, 65, 65, 97, 49, 97, 145, 145, + 100, 178, 162, 161, 49, 97, 34, 97, 49, 81, 85, 0, + 7, 48, 28, 11, 240, 240, 145, 161, 146, 129, 17, 113, + 33, 113, 33, 97, 49, 81, 65, 81, 65, 65, 81, 73, + 129, 161, 133, 0, 7, 16, 28, 10, 240, 240, 17, 65, + 69, 81, 145, 145, 19, 82, 49, 161, 145, 145, 34, 81, + 34, 81, 33, 97, 49, 65, 84, 0, 6, 96, 32, 10, + 240, 240, 52, 81, 65, 49, 66, 33, 145, 35, 67, 49, + 50, 81, 33, 97, 33, 97, 33, 97, 33, 97, 49, 65, + 65, 65, 84, 0, 6, 96, 22, 10, 240, 240, 17, 151, + 33, 97, 33, 81, 129, 145, 129, 145, 129, 145, 145, 145, + 145, 145, 0, 7, 32, 11, 240, 240, 84, 97, 65, 81, + 81, 65, 81, 65, 81, 82, 33, 115, 113, 34, 81, 66, + 49, 98, 33, 113, 33, 97, 65, 66, 84, 0, 7, 64, + 31, 10, 240, 240, 36, 81, 65, 49, 81, 49, 97, 33, + 97, 33, 97, 33, 97, 49, 51, 67, 33, 145, 129, 49, + 81, 49, 65, 84, 0, 6, 112, 11, 4, 240, 240, 34, + 34, 240, 114, 34, 240, 112, 14, 4, 240, 240, 34, 34, + 240, 114, 34, 49, 49, 33, 49, 112, 17, 4, 240, 146, + 34, 161, 49, 49, 50, 34, 34, 34, 34, 34, 34, 34, + 96, 11, 16, 0, 18, 14, 0, 6, 46, 0, 16, 32, + 23, 9, 0, 7, 2, 114, 240, 33, 129, 129, 129, 113, + 129, 113, 113, 129, 81, 33, 81, 34, 65, 53, 192, 24, + 9, 180, 65, 49, 49, 81, 33, 81, 33, 81, 129, 113, + 113, 113, 129, 129, 129, 240, 162, 114, 0, 6, 32, 54, + 16, 240, 100, 162, 66, 113, 129, 81, 52, 49, 65, 34, + 33, 49, 49, 49, 66, 33, 33, 33, 97, 33, 33, 33, + 97, 33, 33, 33, 97, 33, 33, 33, 97, 33, 33, 49, + 81, 33, 49, 34, 50, 33, 49, 52, 34, 81, 240, 18, + 98, 134, 0, 10, 80, 33, 16, 240, 129, 241, 227, 211, + 193, 33, 193, 34, 177, 34, 161, 65, 161, 66, 129, 82, + 151, 129, 98, 113, 98, 97, 129, 97, 130, 52, 100, 0, + 10, 32, 32, 14, 240, 240, 202, 97, 98, 81, 113, 81, + 114, 65, 113, 81, 97, 104, 97, 98, 81, 114, 65, 129, + 65, 129, 65, 129, 65, 98, 58, 0, 9, 32, 31, 15, + 0, 6, 21, 49, 82, 65, 33, 65, 115, 49, 146, 33, + 177, 33, 177, 33, 225, 225, 225, 177, 49, 161, 65, 129, + 98, 81, 134, 0, 10, 33, 15, 240, 240, 249, 129, 98, + 97, 114, 81, 129, 81, 145, 65, 145, 65, 145, 65, 145, + 65, 145, 65, 145, 65, 129, 81, 129, 81, 98, 73, 0, + 10, 16, 31, 15, 240, 240, 252, 81, 129, 81, 129, 81, + 145, 65, 81, 129, 81, 135, 129, 81, 129, 81, 129, 225, + 145, 65, 145, 65, 130, 44, 0, 9, 96, 27, 14, 240, + 240, 204, 65, 129, 65, 129, 65, 209, 81, 113, 81, 119, + 113, 81, 113, 81, 113, 209, 209, 209, 182, 0, 9, 96, + 30, 15, 0, 6, 21, 145, 81, 17, 81, 114, 65, 145, + 49, 161, 49, 225, 225, 225, 117, 49, 145, 65, 145, 81, + 129, 98, 82, 118, 0, 10, 34, 15, 240, 240, 245, 53, + 65, 113, 97, 113, 97, 113, 97, 113, 97, 113, 105, 97, + 113, 97, 113, 97, 113, 97, 113, 97, 113, 97, 113, 69, + 53, 0, 9, 80, 20, 7, 240, 101, 65, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 69, 240, 240, 112, + 22, 9, 240, 244, 113, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 50, 49, 50, 34, 68, 0, 6, 16, 35, 16, + 0, 6, 5, 83, 81, 113, 113, 97, 129, 81, 145, 65, + 161, 49, 177, 34, 179, 33, 161, 66, 145, 82, 129, 97, + 129, 113, 113, 114, 69, 69, 0, 10, 32, 24, 12, 240, + 240, 101, 145, 177, 177, 177, 177, 177, 177, 177, 177, 177, + 97, 65, 97, 65, 82, 42, 0, 7, 96, 54, 18, 0, + 6, 100, 147, 67, 114, 97, 17, 97, 17, 97, 17, 97, + 17, 97, 18, 81, 17, 97, 33, 65, 33, 97, 33, 65, + 33, 97, 34, 49, 33, 97, 49, 33, 49, 97, 50, 17, + 49, 97, 66, 65, 97, 66, 65, 97, 66, 65, 69, 101, + 0, 11, 64, 43, 16, 0, 6, 4, 85, 67, 97, 97, + 18, 81, 97, 18, 81, 97, 34, 65, 97, 49, 65, 97, + 50, 49, 97, 66, 33, 97, 81, 33, 97, 82, 17, 97, + 99, 97, 114, 97, 114, 69, 97, 0, 10, 64, 33, 15, + 0, 6, 21, 130, 82, 97, 113, 81, 145, 49, 177, 33, + 177, 33, 177, 33, 177, 33, 177, 33, 177, 49, 145, 81, + 113, 98, 82, 133, 0, 10, 16, 26, 13, 240, 240, 153, + 97, 97, 81, 113, 65, 113, 65, 113, 65, 97, 87, 97, + 193, 193, 193, 193, 193, 165, 0, 9, 16, 41, 15, 0, + 6, 21, 146, 66, 97, 129, 65, 145, 49, 177, 33, 177, + 33, 177, 33, 177, 33, 177, 49, 161, 49, 66, 49, 81, + 33, 33, 17, 115, 49, 165, 225, 33, 177, 33, 195, 194, + 240, 48, 33, 17, 0, 6, 57, 161, 97, 145, 113, 129, + 113, 129, 113, 129, 97, 151, 161, 67, 145, 82, 145, 97, + 145, 98, 129, 98, 129, 98, 49, 37, 84, 0, 11, 29, + 11, 240, 240, 84, 97, 66, 49, 97, 49, 97, 49, 162, + 180, 163, 162, 33, 113, 33, 113, 33, 113, 35, 65, 49, + 36, 0, 7, 48, 29, 15, 240, 240, 253, 34, 65, 66, + 33, 81, 81, 33, 81, 81, 33, 81, 81, 129, 225, 225, + 225, 225, 225, 225, 225, 197, 0, 10, 16, 34, 16, 0, + 6, 5, 69, 65, 129, 97, 129, 97, 129, 97, 129, 97, + 129, 97, 129, 97, 129, 97, 129, 97, 129, 97, 129, 113, + 97, 130, 66, 164, 0, 10, 112, 30, 16, 0, 6, 4, + 115, 65, 145, 81, 129, 98, 113, 113, 97, 130, 81, 145, + 65, 162, 49, 162, 33, 193, 33, 194, 17, 210, 226, 0, + 13, 48, 22, 0, 8, 36, 68, 83, 50, 98, 113, 81, + 113, 97, 98, 83, 81, 113, 83, 65, 129, 65, 33, 65, + 130, 49, 34, 49, 145, 49, 34, 33, 161, 33, 65, 33, + 162, 17, 66, 17, 178, 98, 194, 98, 194, 98, 0, 17, + 48, 33, 16, 0, 6, 5, 68, 82, 97, 129, 81, 161, + 65, 162, 33, 195, 226, 209, 17, 209, 18, 177, 50, 145, + 82, 113, 113, 113, 114, 68, 85, 0, 10, 32, 32, 17, + 0, 6, 53, 100, 66, 129, 113, 113, 145, 81, 162, 65, + 177, 49, 209, 17, 227, 241, 240, 17, 240, 17, 240, 17, + 240, 17, 229, 0, 11, 64, 27, 12, 240, 240, 106, 34, + 97, 49, 98, 49, 97, 161, 162, 161, 161, 162, 161, 161, + 97, 49, 113, 49, 98, 42, 0, 7, 96, 24, 5, 83, + 33, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 67, 32, 16, 8, 240, + 161, 33, 49, 33, 65, 33, 66, 19, 34, 34, 0, 14, + 32, 24, 5, 83, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 35, + 32, 8, 6, 240, 65, 65, 18, 0, 13, 7, 3, 145, + 33, 0, 6, 80, 10, 5, 240, 17, 49, 65, 67, 50, + 0, 9, 25, 12, 0, 12, 21, 113, 50, 97, 65, 132, + 98, 49, 81, 81, 81, 81, 33, 33, 66, 33, 52, 34, + 0, 7, 112, 29, 11, 240, 240, 50, 161, 161, 161, 161, + 161, 20, 82, 65, 65, 97, 49, 97, 49, 97, 49, 97, + 49, 97, 50, 65, 100, 0, 7, 48, 18, 9, 0, 9, + 36, 65, 65, 33, 81, 33, 129, 129, 145, 130, 33, 84, + 0, 6, 30, 11, 240, 240, 131, 161, 161, 161, 161, 84, + 17, 65, 66, 50, 81, 49, 97, 49, 97, 49, 97, 49, + 97, 65, 66, 84, 18, 0, 7, 16, 20, 9, 0, 9, + 35, 81, 49, 49, 81, 39, 33, 129, 129, 81, 49, 49, + 83, 0, 6, 16, 23, 8, 179, 81, 17, 65, 33, 65, + 113, 113, 113, 85, 81, 113, 113, 113, 113, 113, 113, 100, + 240, 240, 208, 27, 12, 0, 12, 40, 50, 49, 97, 65, + 98, 49, 113, 34, 97, 19, 113, 177, 198, 81, 98, 33, + 129, 34, 98, 70, 240, 16, 30, 11, 240, 240, 50, 161, + 161, 161, 161, 161, 20, 82, 65, 65, 81, 65, 81, 65, + 81, 65, 81, 65, 81, 65, 81, 52, 20, 0, 7, 16, + 16, 5, 242, 50, 240, 50, 65, 65, 65, 65, 65, 65, + 65, 51, 240, 192, 22, 7, 240, 146, 82, 240, 163, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 33, 49, 33, 33, + 66, 176, 30, 11, 240, 240, 50, 161, 161, 161, 161, 161, + 52, 49, 49, 97, 33, 113, 18, 114, 17, 113, 49, 97, + 65, 81, 66, 51, 36, 0, 7, 16, 18, 5, 242, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 51, + 240, 192, 34, 17, 0, 17, 2, 20, 36, 82, 66, 65, + 65, 81, 81, 65, 81, 81, 65, 81, 81, 65, 81, 81, + 65, 81, 81, 65, 81, 81, 52, 21, 20, 0, 10, 112, + 25, 11, 0, 11, 2, 20, 82, 65, 65, 81, 65, 81, + 65, 81, 65, 81, 65, 81, 65, 81, 52, 20, 0, 7, + 16, 23, 10, 0, 10, 36, 81, 65, 49, 97, 33, 97, + 33, 97, 33, 97, 33, 97, 49, 65, 84, 0, 6, 96, + 28, 11, 0, 11, 2, 20, 82, 65, 65, 97, 49, 97, + 49, 97, 49, 97, 49, 82, 50, 50, 65, 20, 81, 161, + 161, 148, 240, 48, 26, 11, 0, 11, 36, 98, 50, 50, + 81, 49, 97, 49, 97, 49, 97, 50, 81, 65, 66, 84, + 17, 161, 161, 161, 132, 208, 18, 8, 0, 8, 2, 19, + 50, 33, 49, 113, 113, 113, 113, 113, 100, 240, 240, 224, + 20, 9, 0, 9, 20, 65, 65, 49, 130, 148, 49, 81, + 33, 81, 34, 50, 33, 20, 0, 6, 22, 9, 240, 240, + 129, 129, 129, 114, 103, 65, 129, 129, 129, 129, 49, 65, + 49, 65, 49, 83, 0, 6, 25, 11, 0, 11, 2, 51, + 65, 81, 65, 81, 65, 81, 65, 81, 65, 81, 65, 81, + 65, 66, 84, 18, 0, 7, 16, 21, 12, 0, 12, 4, + 51, 50, 81, 81, 65, 98, 49, 113, 33, 129, 33, 146, + 162, 0, 9, 96, 31, 15, 0, 15, 3, 35, 35, 49, + 65, 65, 66, 49, 65, 81, 33, 17, 33, 97, 33, 17, + 33, 114, 34, 17, 114, 50, 130, 50, 0, 11, 112, 23, + 12, 0, 12, 4, 51, 65, 65, 113, 33, 146, 162, 145, + 18, 113, 49, 113, 65, 67, 52, 0, 7, 96, 27, 12, + 0, 12, 3, 67, 49, 81, 97, 65, 97, 49, 129, 33, + 129, 17, 147, 161, 177, 177, 113, 33, 129, 33, 131, 240, + 96, 20, 10, 0, 10, 8, 33, 81, 49, 65, 129, 129, + 130, 129, 65, 49, 81, 40, 0, 6, 64, 8, 12, 0, + 15, 10, 0, 16, 96, 9, 22, 0, 27, 79, 5, 0, + 30, 64, 12, 7, 240, 113, 33, 33, 33, 49, 33, 0, + 14, 48, 10, 9, 240, 210, 49, 33, 35, 0, 19, 64,}; + +//***************************************************************************** +// +// The font definition for the 22 point Cm font. +// +//***************************************************************************** +const tFont g_sFontCm22 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 19, + + // + // The height of the font. + // + 22, + + // + // The baseline of the font. + // + 17, + + // + // The offset to each character in the font. + // + { + 0, 5, 22, 38, 78, 119, 174, 217, + 227, 250, 272, 292, 313, 323, 331, 339, + 364, 397, 417, 443, 470, 498, 526, 558, + 580, 612, 643, 654, 668, 685, 696, 719, + 743, 797, 830, 862, 893, 926, 957, 984, + 1014, 1048, 1068, 1090, 1125, 1149, 1203, 1246, + 1279, 1305, 1346, 1379, 1408, 1437, 1471, 1501, + 1549, 1582, 1614, 1641, 1665, 1681, 1705, 1713, + 1720, 1730, 1755, 1784, 1802, 1832, 1852, 1875, + 1902, 1932, 1948, 1970, 2000, 2018, 2052, 2077, + 2100, 2128, 2154, 2172, 2192, 2214, 2239, 2260, + 2291, 2314, 2341, 2361, 2369, 2378, 2390, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm22Data +}; diff --git a/grlib/fonts/fontcm22b.c b/grlib/fonts/fontcm22b.c new file mode 100644 index 0000000..a73efb0 --- /dev/null +++ b/grlib/fonts/fontcm22b.c @@ -0,0 +1,323 @@ +//***************************************************************************** +// +// fontcm22b.c - Font definition for the 22pt Cm bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 22 point +// Bold: yes +// Italic: no +// Memory usage: 2804 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 22 point Cm bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm22bData[2601] = +{ + 4, 9, 0, 27, 21, 5, 83, 35, 35, 35, 35, 35, + 35, 49, 65, 65, 65, 65, 145, 51, 35, 49, 240, 240, + 48, 21, 11, 240, 240, 66, 50, 52, 20, 36, 20, 51, + 35, 81, 65, 65, 65, 65, 65, 0, 19, 96, 45, 18, + 0, 7, 82, 50, 177, 65, 193, 65, 178, 50, 178, 49, + 193, 65, 111, 1, 114, 50, 177, 65, 193, 65, 193, 65, + 178, 50, 127, 1, 97, 65, 193, 50, 178, 50, 177, 65, + 193, 65, 178, 50, 240, 240, 240, 42, 11, 65, 161, 133, + 87, 66, 17, 34, 34, 33, 19, 34, 33, 19, 35, 17, + 19, 37, 118, 102, 117, 35, 17, 34, 35, 17, 34, 35, + 17, 34, 34, 33, 33, 66, 17, 18, 85, 129, 0, 7, + 80, 57, 18, 240, 83, 129, 81, 35, 67, 66, 49, 22, + 82, 49, 82, 82, 49, 66, 98, 49, 50, 114, 49, 49, + 145, 49, 34, 145, 33, 34, 178, 49, 240, 18, 52, 130, + 50, 49, 113, 66, 49, 98, 66, 49, 82, 82, 49, 81, + 98, 49, 66, 113, 33, 81, 147, 0, 11, 80, 42, 17, + 240, 240, 131, 210, 33, 178, 49, 178, 49, 178, 49, 178, + 33, 196, 69, 67, 113, 115, 81, 116, 81, 98, 19, 49, + 99, 35, 18, 99, 37, 115, 52, 65, 35, 53, 34, 68, + 53, 0, 13, 16, 12, 6, 240, 66, 52, 36, 51, 81, + 65, 65, 0, 11, 26, 7, 65, 81, 82, 81, 82, 82, + 81, 82, 82, 82, 82, 82, 82, 82, 82, 82, 97, 98, + 82, 97, 98, 97, 113, 144, 26, 7, 1, 113, 98, 97, + 98, 82, 97, 98, 82, 82, 82, 82, 82, 82, 82, 82, + 81, 82, 82, 81, 82, 81, 81, 208, 20, 10, 50, 130, + 130, 81, 34, 33, 40, 54, 84, 72, 34, 18, 18, 82, + 130, 0, 16, 112, 36, 17, 0, 9, 49, 240, 17, 240, + 17, 240, 17, 240, 17, 240, 17, 240, 17, 240, 17, 159, + 145, 240, 17, 240, 17, 240, 17, 240, 17, 240, 17, 240, + 17, 0, 9, 80, 14, 6, 0, 10, 82, 52, 36, 51, + 81, 65, 81, 65, 240, 16, 9, 8, 0, 12, 6, 38, + 0, 10, 32, 11, 5, 0, 8, 113, 51, 35, 49, 240, + 240, 48, 27, 11, 129, 146, 145, 161, 146, 145, 146, 146, + 145, 146, 146, 145, 146, 146, 145, 146, 146, 145, 146, 145, + 161, 146, 145, 240, 96, 34, 10, 240, 240, 36, 82, 34, + 65, 65, 50, 66, 34, 66, 34, 66, 34, 66, 34, 66, + 34, 66, 34, 66, 34, 66, 34, 66, 49, 65, 66, 34, + 84, 0, 8, 22, 10, 240, 240, 65, 130, 85, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 103, 0, 7, + 96, 28, 11, 240, 240, 85, 81, 51, 51, 51, 35, 51, + 35, 51, 131, 130, 130, 130, 145, 145, 65, 65, 81, 56, + 41, 40, 0, 8, 80, 29, 11, 240, 240, 85, 81, 51, + 66, 50, 66, 50, 66, 50, 146, 130, 100, 163, 147, 131, + 35, 51, 35, 51, 34, 66, 85, 0, 8, 96, 28, 11, + 240, 240, 145, 146, 146, 131, 113, 18, 113, 18, 97, 34, + 81, 50, 81, 50, 65, 66, 73, 114, 146, 146, 118, 0, + 8, 64, 29, 11, 240, 240, 65, 81, 71, 70, 84, 113, + 161, 161, 20, 82, 50, 147, 131, 35, 51, 35, 51, 35, + 51, 49, 51, 84, 0, 8, 112, 35, 11, 240, 240, 115, + 98, 49, 67, 34, 66, 50, 51, 50, 51, 19, 68, 34, + 51, 51, 35, 51, 35, 51, 35, 51, 35, 51, 50, 51, + 51, 34, 100, 0, 8, 96, 23, 10, 240, 248, 40, 39, + 49, 65, 65, 65, 129, 145, 129, 145, 145, 130, 130, 130, + 130, 130, 0, 8, 32, 33, 11, 240, 240, 85, 82, 50, + 65, 81, 65, 81, 67, 49, 68, 18, 70, 102, 66, 21, + 34, 52, 34, 82, 34, 82, 34, 82, 50, 50, 85, 0, + 8, 96, 34, 10, 240, 240, 36, 82, 34, 50, 65, 50, + 66, 34, 66, 34, 66, 34, 66, 34, 66, 49, 51, 67, + 18, 130, 49, 65, 50, 65, 65, 49, 84, 0, 8, 16, + 15, 5, 240, 240, 177, 51, 35, 49, 225, 51, 35, 49, + 240, 240, 48, 19, 6, 0, 6, 18, 52, 36, 50, 240, + 18, 52, 36, 51, 81, 65, 81, 65, 240, 16, 20, 5, + 240, 240, 17, 51, 35, 49, 145, 65, 65, 65, 65, 51, + 35, 35, 35, 35, 35, 192, 11, 17, 0, 19, 31, 0, + 10, 127, 0, 17, 32, 25, 9, 0, 7, 3, 84, 84, + 99, 240, 17, 129, 129, 129, 113, 114, 98, 114, 50, 34, + 50, 34, 65, 53, 240, 96, 26, 9, 240, 69, 65, 50, + 34, 50, 34, 50, 34, 50, 98, 113, 114, 113, 129, 129, + 240, 19, 84, 84, 99, 0, 7, 32, 55, 17, 240, 240, + 134, 162, 82, 113, 145, 81, 52, 65, 65, 34, 34, 49, + 49, 34, 66, 49, 33, 34, 66, 49, 33, 34, 66, 49, + 33, 34, 66, 49, 33, 34, 66, 49, 33, 34, 66, 49, + 49, 34, 35, 33, 65, 52, 19, 97, 240, 34, 99, 120, + 0, 13, 48, 30, 17, 0, 7, 33, 242, 243, 212, 213, + 193, 19, 178, 19, 177, 36, 161, 51, 145, 67, 153, 129, + 83, 113, 99, 113, 115, 69, 55, 0, 13, 34, 16, 0, + 6, 11, 114, 83, 98, 99, 82, 99, 82, 99, 82, 83, + 104, 130, 83, 98, 99, 82, 99, 82, 100, 66, 100, 66, + 99, 82, 84, 59, 0, 12, 80, 32, 15, 0, 6, 22, + 33, 83, 67, 66, 114, 51, 114, 50, 145, 35, 145, 35, + 195, 195, 195, 195, 145, 51, 129, 66, 113, 99, 65, 134, + 0, 11, 112, 35, 16, 0, 6, 10, 130, 83, 98, 99, + 82, 114, 82, 115, 66, 115, 66, 115, 66, 115, 66, 115, + 66, 115, 66, 115, 66, 114, 82, 99, 82, 83, 74, 0, + 12, 96, 37, 15, 240, 240, 252, 83, 82, 83, 97, 83, + 97, 83, 49, 34, 67, 49, 49, 67, 34, 135, 131, 49, + 131, 49, 49, 67, 113, 67, 113, 67, 98, 67, 82, 60, + 0, 11, 80, 32, 13, 240, 240, 155, 67, 66, 67, 81, + 67, 81, 67, 33, 33, 67, 33, 115, 33, 118, 115, 33, + 115, 33, 115, 33, 115, 163, 163, 135, 0, 10, 64, 33, + 18, 0, 7, 54, 33, 115, 68, 98, 130, 83, 130, 82, + 161, 67, 161, 67, 243, 243, 243, 88, 50, 131, 83, 115, + 98, 115, 115, 68, 150, 33, 0, 14, 35, 17, 0, 6, + 55, 23, 67, 83, 99, 83, 99, 83, 99, 83, 99, 83, + 107, 99, 83, 99, 83, 99, 83, 99, 83, 99, 83, 99, + 83, 99, 83, 71, 23, 0, 13, 20, 9, 240, 199, 67, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 71, 0, 7, 25, 12, 240, 240, 151, 130, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 67, 50, 67, 50, 66, 50, + 101, 0, 9, 96, 35, 17, 0, 6, 55, 53, 67, 98, + 99, 82, 115, 66, 131, 50, 147, 34, 163, 19, 168, 148, + 19, 147, 51, 131, 52, 115, 67, 115, 83, 99, 83, 71, + 38, 0, 13, 27, 13, 240, 240, 152, 115, 163, 163, 163, + 163, 163, 163, 163, 81, 67, 81, 67, 81, 67, 81, 67, + 66, 67, 51, 43, 0, 10, 58, 20, 0, 7, 69, 133, + 68, 115, 100, 97, 18, 97, 18, 97, 18, 97, 19, 81, + 18, 97, 34, 65, 34, 97, 34, 65, 34, 97, 35, 49, + 34, 97, 50, 33, 50, 97, 51, 17, 50, 97, 51, 17, + 50, 97, 67, 66, 97, 67, 66, 97, 66, 82, 69, 49, + 54, 0, 15, 32, 43, 17, 0, 6, 53, 85, 68, 97, + 101, 81, 97, 19, 81, 97, 35, 65, 97, 36, 49, 97, + 51, 49, 97, 67, 33, 97, 83, 17, 97, 85, 97, 100, + 97, 115, 97, 115, 97, 130, 69, 113, 0, 13, 32, 35, + 16, 0, 6, 70, 146, 66, 114, 98, 82, 130, 51, 131, + 35, 131, 35, 131, 35, 131, 35, 131, 35, 131, 35, 131, + 51, 99, 67, 98, 99, 67, 134, 0, 12, 96, 28, 14, + 240, 240, 202, 99, 51, 83, 67, 67, 67, 67, 67, 67, + 67, 67, 51, 88, 99, 179, 179, 179, 179, 179, 151, 0, + 11, 48, 44, 16, 0, 6, 70, 146, 67, 98, 99, 67, + 114, 51, 131, 35, 131, 35, 131, 35, 131, 35, 131, 35, + 131, 50, 130, 67, 35, 19, 82, 17, 33, 18, 115, 50, + 151, 33, 178, 33, 181, 196, 195, 240, 240, 80, 36, 18, + 0, 6, 106, 162, 83, 130, 99, 114, 99, 114, 99, 114, + 99, 114, 83, 136, 162, 67, 146, 68, 130, 68, 130, 68, + 130, 68, 130, 84, 18, 39, 53, 0, 13, 112, 32, 12, + 240, 240, 133, 17, 66, 51, 50, 97, 50, 97, 50, 97, + 52, 151, 88, 118, 147, 33, 114, 33, 114, 34, 98, 35, + 66, 49, 37, 0, 9, 64, 32, 15, 240, 240, 253, 34, + 51, 50, 33, 67, 65, 33, 67, 65, 33, 67, 65, 33, + 67, 65, 115, 195, 195, 195, 195, 195, 195, 195, 153, 0, + 11, 96, 36, 17, 0, 6, 55, 53, 67, 113, 99, 113, + 99, 113, 99, 113, 99, 113, 99, 113, 99, 113, 99, 113, + 99, 113, 99, 113, 99, 113, 114, 97, 146, 66, 165, 0, + 13, 80, 33, 18, 0, 6, 103, 69, 68, 113, 115, 113, + 115, 97, 147, 81, 147, 66, 148, 49, 179, 49, 179, 33, + 211, 17, 213, 212, 243, 242, 240, 18, 0, 14, 80, 50, + 24, 0, 9, 7, 23, 37, 67, 83, 97, 115, 68, 81, + 115, 83, 81, 115, 83, 65, 147, 53, 49, 147, 49, 19, + 49, 148, 18, 19, 33, 179, 17, 36, 17, 179, 17, 51, + 17, 181, 52, 211, 68, 211, 83, 211, 82, 241, 113, 0, + 19, 32, 17, 0, 6, 55, 22, 83, 81, 147, 50, 148, + 33, 179, 17, 212, 212, 227, 228, 193, 19, 178, 35, 161, + 52, 129, 83, 114, 84, 69, 55, 0, 13, 29, 16, 0, + 6, 6, 68, 67, 97, 100, 66, 115, 65, 131, 50, 147, + 33, 178, 17, 196, 210, 226, 226, 226, 226, 226, 198, 0, + 12, 96, 30, 13, 240, 240, 155, 35, 68, 34, 83, 49, + 83, 65, 68, 147, 148, 147, 147, 163, 65, 67, 81, 67, + 81, 51, 82, 36, 67, 43, 0, 10, 26, 5, 83, 33, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 67, 32, 21, 11, + 240, 240, 81, 65, 65, 65, 65, 65, 83, 35, 52, 20, + 36, 20, 50, 50, 0, 19, 80, 26, 5, 83, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 35, 32, 10, 8, 240, + 178, 84, 50, 34, 0, 18, 32, 9, 5, 240, 17, 51, + 35, 49, 0, 11, 13, 6, 240, 81, 65, 65, 83, 52, + 36, 50, 0, 10, 112, 24, 11, 0, 11, 21, 97, 50, + 82, 50, 146, 101, 67, 34, 50, 66, 50, 66, 50, 51, + 68, 19, 0, 8, 64, 32, 13, 240, 240, 148, 178, 178, + 178, 178, 178, 20, 99, 50, 82, 82, 66, 82, 66, 82, + 66, 82, 66, 82, 66, 82, 67, 50, 81, 36, 0, 10, + 32, 21, 9, 0, 9, 36, 66, 34, 34, 50, 34, 114, + 114, 114, 114, 65, 50, 49, 68, 0, 7, 16, 31, 13, + 240, 240, 228, 178, 178, 178, 178, 100, 18, 82, 51, 81, + 82, 66, 82, 66, 82, 66, 82, 66, 82, 66, 82, 82, + 51, 100, 20, 0, 10, 22, 11, 0, 11, 37, 82, 50, + 50, 82, 34, 82, 41, 34, 146, 161, 97, 50, 65, 100, + 0, 8, 96, 23, 10, 240, 147, 98, 18, 66, 34, 66, + 130, 130, 117, 98, 130, 130, 130, 130, 130, 130, 130, 102, + 0, 8, 31, 11, 0, 11, 35, 19, 49, 49, 18, 34, + 50, 66, 50, 66, 50, 81, 49, 81, 19, 97, 167, 87, + 49, 83, 33, 98, 34, 66, 85, 240, 176, 31, 14, 240, + 240, 196, 194, 194, 194, 194, 194, 35, 116, 34, 99, 50, + 98, 66, 98, 66, 98, 66, 98, 66, 98, 66, 98, 66, + 76, 0, 10, 96, 20, 7, 240, 130, 67, 67, 82, 179, + 82, 82, 82, 82, 82, 82, 82, 82, 53, 240, 240, 224, + 25, 8, 240, 195, 83, 83, 83, 196, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 34, 34, 34, 18, 67, 240, + 80, 30, 13, 240, 240, 148, 178, 178, 178, 178, 178, 36, + 82, 50, 98, 34, 114, 17, 149, 130, 18, 130, 34, 114, + 35, 98, 50, 69, 21, 0, 10, 21, 8, 240, 148, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 70, 0, 6, 32, 36, 20, 0, 20, 4, 35, 36, 116, + 36, 34, 99, 51, 50, 98, 66, 66, 98, 66, 66, 98, + 66, 66, 98, 66, 66, 98, 66, 66, 98, 66, 66, 79, + 3, 0, 15, 32, 26, 14, 0, 14, 4, 35, 116, 34, + 99, 50, 98, 66, 98, 66, 98, 66, 98, 66, 98, 66, + 98, 66, 76, 0, 10, 96, 25, 11, 0, 11, 37, 82, + 50, 65, 81, 50, 82, 34, 82, 34, 82, 34, 82, 34, + 82, 50, 50, 85, 0, 8, 96, 31, 13, 0, 13, 4, + 20, 99, 50, 82, 82, 66, 82, 66, 82, 66, 82, 66, + 82, 66, 66, 83, 50, 82, 20, 98, 178, 178, 150, 240, + 240, 48, 30, 13, 0, 13, 36, 33, 82, 51, 66, 82, + 66, 82, 66, 82, 66, 82, 66, 82, 66, 82, 82, 51, + 100, 18, 178, 178, 178, 150, 240, 208, 19, 10, 0, 10, + 4, 19, 67, 18, 66, 34, 66, 130, 130, 130, 130, 130, + 102, 0, 8, 23, 9, 0, 9, 21, 50, 49, 50, 49, + 51, 117, 85, 33, 66, 33, 66, 34, 50, 33, 20, 0, + 7, 16, 25, 8, 240, 177, 113, 113, 113, 98, 86, 50, + 98, 98, 98, 98, 33, 50, 33, 50, 33, 50, 33, 67, + 0, 6, 48, 27, 14, 0, 14, 4, 36, 98, 66, 98, + 66, 98, 66, 98, 66, 98, 66, 98, 66, 98, 66, 98, + 51, 116, 20, 0, 10, 96, 24, 13, 0, 13, 6, 20, + 67, 50, 83, 49, 114, 49, 115, 17, 146, 17, 146, 17, + 147, 178, 178, 0, 10, 64, 32, 17, 0, 17, 5, 20, + 35, 66, 50, 65, 83, 34, 65, 98, 35, 33, 114, 35, + 33, 116, 21, 131, 35, 147, 35, 146, 51, 161, 65, 0, + 13, 64, 23, 13, 0, 13, 5, 36, 67, 34, 114, 33, + 147, 163, 178, 161, 18, 130, 19, 113, 50, 69, 21, 0, + 10, 29, 12, 0, 12, 5, 20, 51, 50, 82, 49, 98, + 49, 99, 17, 130, 17, 132, 146, 162, 162, 161, 114, 33, + 114, 17, 146, 240, 240, 48, 24, 10, 0, 10, 8, 34, + 51, 33, 51, 49, 50, 115, 99, 33, 66, 49, 51, 49, + 35, 50, 40, 0, 7, 96, 8, 13, 0, 17, 123, 0, + 19, 96, 9, 24, 0, 33, 15, 7, 0, 36, 32, 13, + 8, 146, 18, 38, 38, 34, 18, 49, 33, 0, 18, 64, + 9, 9, 240, 214, 33, 35, 0, 21, 96, +}; + +//***************************************************************************** +// +// The font definition for the 22 point Cm bold font. +// +//***************************************************************************** +const tFont g_sFontCm22b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 21, + + // + // The height of the font. + // + 24, + + // + // The baseline of the font. + // + 18, + + // + // The offset to each character in the font. + // + { + 0, 4, 25, 46, 91, 133, 190, 232, + 244, 270, 296, 316, 352, 366, 375, 386, + 413, 447, 469, 497, 526, 554, 583, 618, + 641, 674, 708, 723, 742, 762, 773, 798, + 824, 879, 909, 943, 975, 1010, 1047, 1079, + 1112, 1147, 1167, 1192, 1227, 1254, 1312, 1355, + 1390, 1418, 1462, 1498, 1530, 1562, 1598, 1631, + 1681, 1713, 1742, 1772, 1798, 1819, 1845, 1855, + 1864, 1877, 1901, 1933, 1954, 1985, 2007, 2030, + 2061, 2092, 2112, 2137, 2167, 2188, 2224, 2250, + 2275, 2306, 2336, 2355, 2378, 2403, 2430, 2454, + 2486, 2509, 2538, 2562, 2570, 2579, 2592, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm22bData +}; diff --git a/grlib/fonts/fontcm22i.c b/grlib/fonts/fontcm22i.c new file mode 100644 index 0000000..d603704 --- /dev/null +++ b/grlib/fonts/fontcm22i.c @@ -0,0 +1,311 @@ +//***************************************************************************** +// +// fontcm22i.c - Font definition for the 22pt Cm italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 22 point +// Bold: no +// Italic: yes +// Memory usage: 2656 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 22 point Cm italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm22iData[2453] = +{ + 5, 9, 0, 23, 80, 20, 7, 50, 82, 82, 82, 81, + 82, 82, 81, 97, 97, 81, 97, 240, 66, 82, 240, 240, + 160, 13, 7, 226, 18, 34, 18, 49, 33, 33, 33, 0, + 13, 64, 40, 17, 240, 240, 209, 65, 177, 49, 177, 65, + 161, 65, 177, 49, 177, 65, 110, 113, 65, 177, 49, 177, + 65, 126, 97, 65, 177, 49, 177, 65, 177, 49, 177, 65, + 177, 49, 177, 65, 240, 208, 27, 15, 240, 240, 132, 162, + 49, 130, 50, 129, 66, 129, 225, 197, 177, 225, 225, 210, + 164, 161, 35, 49, 83, 51, 0, 10, 16, 54, 17, 66, + 129, 81, 34, 82, 65, 49, 22, 66, 49, 66, 81, 65, + 50, 97, 49, 65, 113, 49, 49, 129, 33, 49, 162, 49, + 50, 161, 49, 33, 129, 49, 49, 113, 50, 49, 97, 65, + 65, 82, 65, 49, 82, 81, 49, 66, 97, 33, 81, 130, + 0, 9, 32, 45, 16, 68, 81, 82, 34, 65, 66, 65, + 65, 65, 66, 65, 65, 66, 49, 66, 129, 81, 19, 66, + 97, 33, 49, 33, 65, 18, 50, 33, 49, 114, 33, 49, + 177, 49, 161, 65, 161, 65, 145, 97, 98, 134, 0, 11, + 9, 4, 130, 34, 49, 33, 0, 7, 112, 24, 10, 113, + 114, 129, 129, 129, 145, 129, 145, 129, 145, 145, 130, 129, + 145, 145, 145, 145, 145, 145, 161, 145, 128, 23, 9, 225, + 129, 145, 129, 129, 129, 129, 129, 129, 113, 129, 129, 113, + 129, 113, 129, 113, 113, 113, 240, 32, 17, 10, 81, 129, + 97, 33, 33, 65, 19, 97, 132, 66, 17, 33, 97, 0, + 17, 18, 15, 0, 10, 33, 225, 225, 209, 225, 141, 129, + 209, 225, 225, 225, 0, 10, 64, 11, 5, 0, 8, 114, + 50, 65, 49, 65, 49, 144, 8, 7, 0, 9, 85, 0, + 8, 16, 8, 4, 0, 7, 2, 34, 240, 112, 24, 15, + 193, 209, 225, 209, 225, 209, 209, 225, 209, 225, 209, 209, + 225, 209, 225, 209, 209, 225, 209, 225, 209, 224, 32, 11, + 240, 180, 98, 49, 66, 65, 65, 81, 50, 81, 49, 82, + 49, 82, 34, 81, 49, 97, 49, 82, 49, 81, 65, 66, + 65, 50, 100, 0, 7, 80, 20, 9, 240, 145, 113, 114, + 82, 17, 114, 113, 129, 129, 114, 113, 129, 114, 114, 86, + 0, 6, 31, 12, 240, 243, 114, 49, 82, 65, 81, 33, + 33, 65, 49, 33, 65, 33, 34, 67, 49, 161, 146, 130, + 145, 161, 97, 68, 49, 49, 67, 0, 8, 30, 12, 240, + 228, 98, 65, 81, 81, 65, 33, 49, 65, 33, 49, 67, + 49, 162, 115, 193, 177, 66, 81, 66, 65, 81, 66, 100, + 0, 8, 48, 28, 11, 240, 241, 146, 145, 161, 146, 145, + 146, 145, 145, 145, 34, 97, 33, 97, 49, 69, 17, 65, + 68, 113, 161, 161, 146, 240, 16, 27, 11, 240, 161, 65, + 85, 81, 161, 161, 19, 83, 49, 65, 81, 161, 161, 49, + 82, 49, 81, 146, 65, 50, 99, 0, 7, 96, 29, 10, + 240, 163, 82, 33, 81, 49, 65, 133, 82, 49, 65, 65, + 50, 65, 49, 81, 49, 66, 49, 66, 49, 65, 65, 49, + 99, 0, 7, 26, 12, 240, 180, 49, 65, 33, 33, 65, + 67, 49, 97, 65, 81, 177, 161, 177, 162, 161, 162, 162, + 161, 177, 0, 8, 64, 31, 12, 240, 228, 113, 50, 81, + 81, 81, 81, 81, 65, 98, 33, 131, 129, 18, 98, 50, + 65, 97, 65, 97, 65, 81, 82, 50, 115, 0, 8, 48, + 30, 11, 240, 195, 113, 49, 81, 65, 66, 65, 65, 81, + 65, 66, 65, 66, 65, 50, 99, 17, 146, 145, 81, 50, + 65, 50, 99, 0, 7, 96, 13, 6, 240, 240, 226, 66, + 240, 240, 34, 66, 240, 240, 64, 15, 6, 240, 240, 226, + 66, 240, 240, 34, 66, 81, 81, 65, 240, 32, 18, 7, + 240, 240, 242, 82, 193, 81, 97, 97, 97, 82, 81, 97, + 82, 82, 82, 192, 11, 16, 0, 16, 29, 0, 6, 45, + 0, 16, 48, 24, 9, 0, 7, 50, 98, 243, 82, 17, + 129, 113, 98, 98, 34, 49, 50, 33, 65, 49, 65, 49, + 49, 83, 224, 27, 10, 67, 82, 49, 49, 81, 49, 81, + 33, 82, 34, 50, 50, 34, 114, 113, 129, 145, 18, 99, + 240, 194, 114, 0, 7, 32, 50, 16, 240, 240, 134, 133, + 34, 97, 18, 33, 49, 65, 18, 65, 33, 49, 33, 81, + 33, 49, 17, 97, 33, 33, 33, 82, 33, 33, 33, 81, + 33, 49, 33, 81, 33, 49, 34, 35, 18, 49, 51, 35, + 81, 240, 17, 98, 134, 0, 10, 112, 33, 16, 161, 241, + 226, 209, 17, 193, 33, 193, 33, 177, 49, 177, 49, 161, + 66, 145, 66, 151, 129, 82, 113, 98, 113, 98, 97, 114, + 68, 85, 0, 10, 32, 32, 15, 240, 240, 72, 130, 66, + 113, 97, 113, 97, 98, 82, 97, 82, 118, 145, 81, 114, + 97, 97, 113, 97, 113, 82, 97, 98, 82, 73, 0, 10, + 16, 31, 15, 240, 240, 100, 33, 98, 65, 17, 81, 113, + 81, 129, 65, 145, 65, 145, 49, 225, 225, 225, 225, 129, + 97, 97, 114, 65, 149, 0, 10, 48, 33, 16, 240, 240, + 89, 145, 97, 129, 113, 98, 113, 98, 113, 97, 129, 97, + 129, 82, 114, 82, 113, 97, 129, 82, 113, 98, 97, 113, + 97, 105, 0, 10, 112, 30, 17, 240, 240, 139, 129, 98, + 114, 97, 130, 241, 65, 162, 65, 166, 178, 49, 177, 65, + 162, 242, 113, 113, 113, 129, 98, 92, 0, 11, 32, 28, + 16, 240, 240, 106, 129, 97, 114, 97, 114, 97, 113, 65, + 146, 49, 166, 161, 65, 161, 65, 146, 226, 225, 241, 198, + 0, 11, 32, 32, 15, 240, 240, 100, 146, 65, 17, 81, + 114, 65, 129, 66, 129, 65, 210, 209, 225, 101, 49, 130, + 65, 129, 97, 98, 98, 65, 17, 117, 33, 0, 10, 34, + 19, 240, 240, 197, 38, 114, 98, 146, 98, 145, 113, 146, + 98, 146, 98, 153, 161, 98, 146, 98, 146, 97, 161, 113, + 146, 98, 146, 98, 118, 37, 0, 12, 80, 20, 11, 240, + 166, 114, 146, 145, 146, 146, 145, 161, 146, 146, 145, 146, + 146, 118, 0, 7, 64, 23, 13, 240, 240, 22, 161, 178, + 178, 177, 193, 178, 178, 177, 178, 178, 98, 49, 114, 34, + 131, 0, 9, 32, 35, 19, 240, 240, 197, 68, 129, 113, + 146, 82, 162, 65, 193, 65, 209, 49, 210, 19, 211, 33, + 210, 50, 178, 66, 178, 82, 161, 98, 161, 113, 118, 53, + 0, 12, 64, 25, 14, 240, 240, 38, 161, 194, 194, 193, + 209, 194, 194, 193, 194, 97, 82, 97, 81, 97, 97, 82, + 59, 0, 9, 16, 55, 21, 240, 240, 244, 132, 114, 130, + 129, 17, 115, 129, 17, 97, 17, 129, 33, 81, 33, 129, + 33, 81, 18, 129, 33, 65, 34, 129, 34, 33, 49, 129, + 50, 33, 34, 129, 50, 17, 50, 129, 50, 17, 49, 145, + 51, 65, 129, 81, 66, 116, 49, 38, 0, 13, 96, 43, + 19, 240, 240, 196, 69, 130, 97, 145, 17, 97, 145, 18, + 65, 145, 34, 65, 145, 49, 65, 145, 50, 33, 161, 50, + 33, 145, 82, 17, 145, 82, 17, 145, 98, 161, 98, 145, + 114, 117, 97, 0, 12, 96, 33, 15, 240, 240, 101, 130, + 66, 97, 113, 81, 145, 50, 145, 49, 161, 34, 161, 33, + 162, 33, 161, 49, 146, 49, 130, 81, 98, 98, 66, 133, + 0, 10, 48, 27, 15, 240, 240, 57, 130, 66, 113, 97, + 98, 97, 98, 97, 97, 97, 113, 81, 119, 130, 209, 210, + 210, 210, 181, 0, 10, 80, 43, 15, 240, 240, 101, 131, + 65, 98, 113, 66, 129, 50, 145, 49, 161, 34, 161, 33, + 162, 33, 161, 49, 161, 49, 67, 33, 81, 33, 33, 17, + 113, 17, 34, 149, 49, 161, 33, 177, 33, 180, 179, 240, + 80, 34, 15, 240, 240, 72, 145, 81, 114, 81, 114, 81, + 113, 82, 98, 66, 118, 145, 66, 129, 81, 114, 81, 114, + 81, 113, 82, 113, 82, 17, 38, 66, 0, 9, 96, 32, + 14, 240, 240, 68, 17, 113, 49, 17, 97, 82, 81, 97, + 97, 97, 98, 212, 211, 209, 81, 113, 81, 113, 81, 97, + 98, 65, 97, 36, 0, 9, 80, 27, 15, 240, 240, 28, + 49, 66, 65, 33, 81, 81, 33, 81, 81, 114, 210, 209, + 210, 210, 209, 225, 210, 210, 167, 0, 10, 48, 33, 15, + 240, 246, 52, 65, 113, 97, 113, 82, 97, 98, 97, 97, + 113, 97, 113, 82, 97, 97, 113, 97, 113, 97, 97, 113, + 97, 129, 50, 163, 0, 10, 80, 31, 16, 240, 240, 37, + 84, 66, 113, 98, 113, 98, 97, 114, 81, 130, 81, 145, + 65, 161, 49, 177, 49, 178, 17, 195, 211, 210, 225, 0, + 11, 64, 50, 22, 240, 240, 229, 53, 52, 66, 82, 97, + 98, 82, 81, 114, 82, 81, 114, 67, 65, 130, 49, 18, + 49, 146, 49, 18, 49, 146, 33, 34, 33, 162, 17, 50, + 33, 162, 17, 65, 17, 179, 82, 195, 82, 194, 97, 209, + 113, 0, 15, 16, 34, 18, 240, 240, 165, 52, 129, 97, + 162, 65, 178, 49, 210, 17, 227, 240, 17, 240, 19, 225, + 33, 209, 50, 177, 66, 161, 98, 130, 98, 100, 85, 0, + 11, 96, 29, 17, 240, 240, 69, 100, 66, 113, 114, 97, + 146, 65, 162, 49, 193, 33, 210, 17, 211, 226, 242, 241, + 240, 17, 242, 214, 0, 11, 112, 29, 15, 240, 240, 73, + 82, 97, 97, 97, 97, 97, 113, 81, 209, 209, 210, 194, + 194, 81, 98, 81, 98, 97, 97, 98, 89, 0, 10, 16, + 24, 9, 82, 97, 129, 129, 129, 113, 129, 129, 113, 129, + 129, 129, 113, 129, 129, 129, 113, 129, 129, 129, 130, 112, + 17, 9, 240, 81, 49, 49, 49, 49, 49, 65, 49, 66, + 34, 50, 34, 0, 15, 24, 10, 83, 129, 145, 145, 145, + 129, 145, 145, 129, 145, 145, 145, 129, 145, 145, 145, 129, + 145, 145, 145, 114, 128, 11, 7, 240, 18, 65, 17, 49, + 49, 0, 14, 32, 7, 4, 130, 34, 0, 8, 96, 11, + 5, 193, 49, 49, 65, 66, 50, 0, 8, 64, 25, 10, + 0, 9, 20, 81, 35, 49, 65, 50, 65, 49, 66, 49, + 65, 65, 65, 65, 35, 17, 50, 34, 0, 6, 80, 28, + 8, 240, 34, 113, 113, 113, 98, 97, 18, 66, 33, 49, + 49, 34, 49, 33, 65, 33, 50, 33, 49, 49, 34, 66, + 240, 240, 240, 20, 9, 0, 8, 36, 66, 33, 49, 65, + 34, 113, 129, 129, 81, 33, 65, 68, 0, 6, 16, 30, + 11, 240, 211, 161, 145, 161, 161, 99, 17, 81, 34, 81, + 65, 66, 65, 65, 66, 65, 65, 81, 65, 81, 35, 17, + 66, 34, 0, 7, 48, 20, 9, 0, 8, 35, 66, 49, + 49, 50, 37, 65, 129, 129, 81, 33, 65, 68, 0, 6, + 16, 25, 12, 240, 240, 19, 130, 161, 177, 162, 134, 129, + 177, 162, 162, 161, 177, 162, 162, 161, 162, 129, 17, 146, + 240, 112, 27, 11, 0, 10, 20, 97, 35, 65, 65, 66, + 65, 65, 66, 65, 65, 81, 65, 81, 50, 101, 145, 146, + 81, 49, 100, 240, 48, 30, 11, 240, 131, 161, 161, 146, + 145, 161, 19, 83, 49, 66, 65, 65, 81, 65, 65, 66, + 65, 65, 65, 81, 65, 33, 33, 82, 0, 7, 32, 22, + 7, 240, 34, 82, 240, 147, 65, 17, 49, 33, 82, 81, + 82, 81, 33, 49, 17, 67, 240, 240, 128, 26, 11, 240, + 226, 146, 240, 240, 162, 114, 33, 97, 49, 81, 65, 145, + 161, 146, 145, 161, 146, 145, 97, 34, 99, 240, 64, 32, + 10, 240, 99, 145, 145, 129, 145, 145, 50, 50, 18, 17, + 49, 17, 114, 114, 18, 81, 49, 33, 33, 49, 33, 33, + 49, 17, 49, 51, 0, 6, 80, 22, 6, 211, 81, 66, + 65, 81, 81, 65, 81, 81, 81, 65, 33, 33, 17, 49, + 17, 66, 240, 240, 48, 38, 17, 0, 15, 3, 35, 35, + 65, 17, 17, 33, 17, 33, 49, 34, 50, 49, 97, 65, + 65, 82, 65, 65, 81, 66, 49, 97, 65, 65, 82, 65, + 65, 17, 49, 81, 66, 0, 11, 28, 12, 0, 10, 82, + 35, 65, 19, 49, 49, 18, 65, 81, 81, 81, 65, 82, + 65, 81, 65, 97, 65, 33, 49, 82, 0, 7, 112, 23, + 10, 0, 9, 20, 82, 49, 49, 81, 34, 81, 33, 97, + 33, 81, 49, 81, 49, 50, 84, 0, 6, 112, 29, 12, + 0, 10, 114, 34, 81, 19, 33, 97, 65, 97, 65, 82, + 65, 81, 66, 81, 65, 97, 49, 97, 19, 113, 177, 162, + 148, 240, 80, 26, 10, 0, 9, 19, 17, 65, 35, 49, + 65, 50, 65, 49, 66, 49, 65, 65, 65, 65, 50, 85, + 129, 145, 130, 101, 224, 20, 10, 0, 8, 115, 19, 33, + 34, 33, 33, 33, 130, 129, 145, 130, 130, 129, 0, 7, + 32, 20, 9, 0, 8, 35, 81, 33, 65, 50, 50, 131, + 130, 49, 65, 49, 49, 68, 0, 6, 32, 23, 8, 240, + 81, 98, 97, 113, 113, 70, 66, 97, 113, 113, 97, 49, + 49, 33, 65, 33, 82, 240, 240, 224, 28, 12, 0, 10, + 82, 81, 49, 33, 50, 97, 49, 97, 65, 97, 50, 81, + 66, 81, 65, 33, 49, 50, 17, 83, 19, 0, 7, 112, + 25, 10, 0, 8, 114, 65, 33, 33, 49, 81, 49, 65, + 65, 65, 49, 65, 65, 65, 65, 65, 49, 99, 0, 6, + 112, 34, 14, 0, 12, 50, 65, 49, 33, 33, 49, 49, + 81, 49, 49, 65, 65, 49, 65, 50, 49, 49, 65, 49, + 65, 65, 49, 65, 50, 33, 99, 35, 0, 9, 32, 22, + 11, 0, 9, 115, 19, 49, 35, 17, 98, 146, 145, 146, + 146, 97, 18, 49, 51, 19, 0, 7, 48, 30, 11, 0, + 9, 98, 81, 33, 33, 50, 81, 49, 81, 65, 81, 50, + 65, 66, 65, 65, 81, 50, 101, 145, 81, 50, 81, 34, + 100, 240, 48, 23, 11, 0, 10, 3, 33, 65, 50, 145, + 130, 129, 145, 65, 82, 49, 65, 17, 33, 65, 50, 0, + 7, 64, 8, 12, 0, 13, 74, 0, 16, 96, 9, 21, + 0, 23, 95, 4, 0, 29, 16, 12, 8, 240, 49, 33, + 49, 33, 49, 33, 0, 16, 64, 10, 9, 240, 67, 33, + 33, 35, 0, 19, 64, +}; + +//***************************************************************************** +// +// The font definition for the 22 point Cm italic font. +// +//***************************************************************************** +const tFont g_sFontCm22i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 19, + + // + // The height of the font. + // + 21, + + // + // The baseline of the font. + // + 16, + + // + // The offset to each character in the font. + // + { + 0, 5, 25, 38, 78, 105, 159, 204, + 213, 237, 260, 277, 295, 306, 314, 322, + 346, 378, 398, 429, 459, 487, 514, 543, + 569, 600, 630, 643, 658, 676, 687, 711, + 738, 788, 821, 853, 884, 917, 947, 975, + 1007, 1041, 1061, 1084, 1119, 1144, 1199, 1242, + 1275, 1302, 1345, 1379, 1411, 1438, 1471, 1502, + 1552, 1586, 1615, 1644, 1668, 1685, 1709, 1720, + 1727, 1738, 1763, 1791, 1811, 1841, 1861, 1886, + 1913, 1943, 1965, 1991, 2023, 2045, 2083, 2111, + 2134, 2163, 2189, 2209, 2229, 2252, 2280, 2305, + 2339, 2361, 2391, 2414, 2422, 2431, 2443, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm22iData +}; diff --git a/grlib/fonts/fontcm24.c b/grlib/fonts/fontcm24.c new file mode 100644 index 0000000..d53297d --- /dev/null +++ b/grlib/fonts/fontcm24.c @@ -0,0 +1,328 @@ +//***************************************************************************** +// +// fontcm24.c - Font definition for the 24pt Cm font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 24 point +// Bold: no +// Italic: no +// Memory usage: 2856 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 24 point Cm font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm24Data[2656] = +{ + 4, 10, 0, 30, 18, 4, 66, 34, 34, 34, 34, 34, + 34, 34, 33, 49, 49, 49, 242, 34, 240, 176, 18, 9, + 240, 50, 49, 51, 34, 65, 49, 65, 49, 65, 49, 49, + 49, 0, 18, 48, 47, 18, 0, 6, 17, 177, 65, 193, + 65, 193, 65, 177, 65, 193, 65, 193, 65, 193, 65, 111, + 1, 113, 65, 193, 65, 193, 65, 127, 1, 97, 65, 193, + 65, 193, 65, 177, 65, 193, 65, 193, 65, 193, 65, 177, + 240, 240, 48, 46, 11, 65, 148, 82, 17, 33, 65, 33, + 49, 33, 49, 49, 33, 49, 34, 33, 49, 34, 34, 33, + 114, 17, 132, 148, 113, 34, 97, 49, 34, 33, 49, 34, + 33, 49, 33, 49, 49, 49, 33, 33, 85, 129, 0, 7, + 80, 60, 19, 35, 129, 97, 50, 82, 81, 65, 23, 81, + 81, 66, 97, 81, 65, 113, 81, 50, 113, 81, 34, 129, + 65, 49, 161, 49, 34, 179, 34, 51, 177, 49, 49, 146, + 33, 66, 114, 49, 81, 113, 65, 81, 98, 65, 81, 82, + 81, 81, 81, 97, 66, 65, 129, 49, 81, 147, 0, 12, + 48, 44, 18, 240, 115, 241, 33, 209, 49, 209, 49, 209, + 49, 209, 33, 225, 17, 243, 85, 97, 129, 115, 97, 98, + 33, 81, 97, 66, 65, 97, 82, 33, 113, 99, 129, 114, + 81, 49, 81, 18, 49, 85, 52, 0, 14, 11, 5, 162, + 51, 65, 65, 65, 49, 0, 10, 48, 27, 7, 65, 81, + 81, 97, 81, 97, 97, 81, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 113, 97, 97, 113, 97, 113, 113, 32, 27, + 7, 1, 113, 113, 97, 113, 97, 97, 113, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 81, 97, 97, 81, 81, 97, + 81, 96, 20, 10, 209, 97, 33, 49, 49, 17, 33, 84, + 114, 99, 18, 49, 33, 49, 81, 0, 19, 64, 34, 17, + 0, 9, 49, 240, 17, 240, 17, 240, 17, 240, 17, 240, + 17, 240, 17, 240, 17, 159, 145, 240, 17, 240, 17, 240, + 17, 240, 17, 240, 17, 0, 11, 96, 11, 5, 0, 10, + 2, 51, 65, 65, 65, 49, 208, 8, 8, 0, 13, 6, + 0, 10, 32, 8, 4, 0, 8, 2, 34, 240, 176, 27, + 11, 129, 161, 145, 161, 161, 145, 161, 161, 145, 161, 145, + 161, 161, 145, 161, 161, 145, 161, 161, 145, 161, 161, 145, + 161, 160, 34, 10, 240, 240, 36, 81, 65, 65, 65, 49, + 97, 33, 97, 33, 97, 33, 97, 33, 97, 33, 97, 33, + 97, 33, 97, 33, 97, 49, 65, 66, 49, 84, 0, 8, + 20, 9, 240, 241, 84, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 87, 0, 7, 27, 10, 240, 240, + 36, 81, 65, 49, 97, 34, 81, 34, 81, 145, 129, 145, + 129, 129, 129, 129, 145, 129, 81, 40, 0, 7, 96, 29, + 11, 240, 240, 100, 82, 65, 65, 97, 49, 97, 145, 145, + 100, 178, 162, 161, 49, 97, 34, 97, 33, 113, 50, 65, + 100, 0, 8, 96, 29, 11, 240, 240, 145, 161, 146, 129, + 17, 113, 33, 98, 33, 97, 49, 81, 65, 65, 81, 65, + 81, 73, 129, 161, 161, 133, 0, 8, 64, 28, 10, 240, + 240, 17, 65, 69, 81, 145, 145, 145, 19, 82, 49, 161, + 145, 145, 34, 81, 34, 81, 33, 97, 49, 65, 84, 0, + 8, 34, 10, 240, 240, 52, 81, 65, 49, 81, 49, 129, + 35, 65, 17, 49, 50, 65, 49, 97, 33, 97, 33, 97, + 33, 97, 33, 97, 49, 65, 66, 49, 84, 0, 8, 24, + 11, 240, 129, 168, 33, 97, 49, 82, 145, 145, 145, 161, + 161, 145, 161, 161, 161, 161, 161, 161, 0, 9, 16, 34, + 11, 240, 240, 99, 98, 49, 81, 81, 65, 81, 65, 81, + 66, 49, 100, 113, 18, 97, 51, 49, 97, 49, 113, 33, + 113, 33, 97, 65, 66, 84, 0, 8, 112, 34, 10, 240, + 240, 36, 81, 65, 49, 81, 49, 97, 33, 97, 33, 97, + 33, 97, 33, 82, 49, 49, 17, 67, 33, 145, 129, 50, + 65, 49, 65, 84, 0, 8, 16, 11, 4, 240, 240, 34, + 34, 240, 178, 34, 240, 176, 15, 4, 240, 240, 34, 34, + 240, 178, 34, 49, 49, 49, 33, 49, 112, 18, 4, 240, + 146, 34, 225, 49, 49, 65, 34, 34, 34, 34, 34, 34, + 34, 34, 96, 11, 17, 0, 21, 47, 0, 6, 95, 0, + 19, 48, 25, 9, 0, 7, 18, 114, 240, 177, 129, 129, + 129, 113, 114, 98, 98, 113, 81, 33, 81, 33, 81, 49, + 49, 84, 192, 25, 10, 197, 65, 65, 49, 97, 33, 97, + 33, 97, 145, 129, 129, 145, 129, 145, 145, 145, 240, 210, + 130, 0, 8, 16, 59, 18, 240, 133, 178, 82, 130, 130, + 82, 51, 65, 81, 34, 49, 65, 65, 33, 82, 34, 33, + 33, 113, 49, 33, 33, 113, 49, 33, 33, 113, 49, 33, + 33, 113, 49, 33, 33, 113, 49, 34, 33, 82, 49, 49, + 34, 49, 17, 33, 66, 51, 51, 82, 240, 34, 115, 135, + 0, 14, 32, 35, 17, 240, 145, 242, 242, 225, 18, 209, + 18, 209, 33, 193, 50, 177, 50, 177, 65, 161, 82, 145, + 82, 152, 129, 114, 113, 114, 97, 146, 81, 146, 67, 117, + 0, 13, 35, 15, 240, 250, 113, 114, 81, 129, 81, 130, + 65, 130, 65, 129, 81, 98, 105, 97, 114, 81, 130, 65, + 145, 65, 145, 65, 145, 65, 130, 65, 114, 58, 0, 11, + 112, 35, 16, 240, 240, 117, 49, 82, 81, 33, 65, 131, + 49, 162, 49, 177, 33, 193, 33, 241, 241, 241, 241, 193, + 49, 177, 49, 161, 81, 145, 98, 82, 149, 0, 12, 96, + 37, 16, 240, 240, 42, 129, 98, 113, 129, 97, 145, 81, + 145, 81, 161, 65, 161, 65, 161, 65, 161, 65, 161, 65, + 161, 65, 145, 81, 145, 81, 129, 97, 98, 90, 0, 12, + 96, 37, 16, 240, 240, 44, 97, 130, 81, 145, 81, 145, + 81, 145, 81, 81, 145, 66, 151, 145, 66, 145, 81, 145, + 81, 65, 65, 145, 81, 145, 81, 145, 81, 130, 61, 0, + 12, 48, 32, 15, 240, 252, 81, 114, 81, 129, 81, 145, + 65, 145, 65, 81, 49, 65, 81, 129, 66, 135, 129, 66, + 129, 81, 129, 225, 225, 225, 198, 0, 12, 48, 38, 17, + 240, 240, 149, 162, 81, 17, 97, 130, 81, 161, 81, 161, + 65, 177, 65, 240, 17, 240, 17, 240, 17, 240, 17, 134, + 49, 161, 81, 161, 97, 145, 114, 98, 150, 0, 13, 64, + 38, 16, 240, 240, 37, 69, 65, 129, 97, 129, 97, 129, + 97, 129, 97, 129, 97, 129, 106, 97, 129, 97, 129, 97, + 129, 97, 129, 97, 129, 97, 129, 97, 129, 69, 69, 0, + 12, 32, 21, 7, 229, 65, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 69, 240, 240, 224, 25, + 10, 240, 133, 129, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 50, 65, 50, 65, 49, 65, 84, 0, 8, 16, + 40, 16, 240, 240, 37, 84, 65, 129, 97, 113, 113, 97, + 129, 81, 145, 65, 161, 49, 177, 35, 161, 17, 34, 146, + 65, 145, 82, 129, 98, 113, 113, 113, 114, 97, 130, 53, + 84, 0, 12, 32, 25, 13, 240, 181, 161, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 113, 65, 113, 65, 113, + 65, 98, 43, 0, 10, 63, 19, 240, 240, 132, 163, 67, + 130, 97, 17, 113, 17, 97, 17, 113, 17, 97, 18, 97, + 17, 97, 33, 81, 33, 97, 33, 81, 33, 97, 34, 65, + 33, 97, 49, 49, 49, 97, 49, 49, 49, 97, 50, 33, + 49, 97, 65, 17, 65, 97, 67, 65, 97, 67, 65, 97, + 81, 81, 69, 49, 53, 0, 14, 64, 49, 17, 240, 240, + 68, 101, 67, 113, 97, 18, 97, 97, 18, 97, 97, 34, + 81, 97, 49, 81, 97, 50, 65, 97, 66, 49, 97, 66, + 49, 97, 82, 33, 97, 98, 17, 97, 98, 17, 97, 115, + 97, 130, 97, 130, 69, 113, 0, 13, 32, 37, 16, 240, + 240, 116, 162, 66, 113, 129, 81, 161, 65, 161, 49, 193, + 33, 193, 33, 193, 33, 193, 33, 193, 33, 193, 49, 161, + 65, 161, 81, 129, 114, 66, 164, 0, 12, 112, 28, 14, + 240, 218, 97, 98, 81, 129, 65, 129, 65, 129, 65, 129, + 65, 113, 87, 113, 209, 209, 209, 209, 209, 209, 181, 0, + 11, 80, 47, 16, 240, 240, 117, 146, 82, 98, 113, 82, + 145, 65, 161, 49, 193, 33, 193, 33, 193, 33, 193, 33, + 193, 33, 193, 49, 161, 66, 66, 49, 82, 33, 33, 17, + 116, 49, 166, 241, 33, 193, 33, 194, 17, 211, 210, 240, + 64, 39, 18, 240, 240, 105, 177, 98, 145, 129, 129, 129, + 129, 129, 129, 129, 129, 98, 151, 177, 82, 161, 98, 145, + 98, 145, 98, 145, 99, 129, 99, 49, 65, 114, 49, 37, + 100, 0, 13, 112, 32, 12, 240, 181, 98, 66, 49, 113, + 49, 113, 49, 113, 50, 178, 181, 164, 178, 177, 33, 129, + 33, 129, 34, 113, 33, 17, 66, 49, 37, 0, 9, 64, + 29, 16, 240, 240, 61, 49, 81, 81, 33, 97, 81, 33, + 97, 81, 145, 241, 241, 241, 241, 241, 241, 241, 241, 241, + 241, 199, 0, 12, 80, 38, 16, 240, 240, 37, 69, 65, + 129, 97, 129, 97, 129, 97, 129, 97, 129, 97, 129, 97, + 129, 97, 129, 97, 129, 97, 129, 97, 129, 97, 129, 113, + 97, 145, 65, 180, 0, 12, 112, 36, 18, 240, 240, 101, + 116, 66, 145, 98, 145, 113, 129, 130, 113, 130, 113, 146, + 81, 162, 81, 177, 65, 194, 49, 194, 49, 210, 17, 226, + 17, 242, 240, 18, 0, 16, 112, 56, 24, 0, 6, 5, + 68, 84, 65, 114, 114, 82, 113, 113, 98, 114, 97, 113, + 99, 81, 130, 65, 33, 81, 130, 65, 34, 65, 145, 65, + 34, 49, 162, 33, 65, 49, 162, 33, 66, 33, 177, 33, + 66, 17, 195, 97, 17, 195, 99, 210, 98, 225, 129, 225, + 129, 0, 19, 38, 18, 240, 240, 101, 100, 82, 129, 130, + 97, 162, 65, 178, 49, 210, 33, 227, 240, 18, 241, 17, + 241, 18, 209, 50, 177, 82, 145, 113, 145, 114, 113, 146, + 68, 117, 0, 13, 96, 36, 17, 240, 240, 69, 100, 66, + 130, 82, 129, 114, 97, 145, 81, 162, 65, 178, 33, 209, + 17, 227, 241, 240, 17, 240, 17, 240, 17, 240, 17, 240, + 17, 229, 0, 13, 80, 29, 13, 240, 187, 34, 114, 33, + 114, 49, 113, 65, 98, 162, 177, 178, 162, 177, 178, 162, + 97, 65, 113, 50, 113, 34, 114, 43, 0, 10, 27, 5, + 3, 33, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 67, + 32, 17, 9, 240, 65, 113, 65, 49, 49, 65, 49, 66, + 35, 49, 50, 0, 18, 32, 27, 5, 3, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 35, 32, 11, 7, 240, + 17, 81, 17, 49, 49, 0, 16, 112, 7, 4, 194, 34, + 0, 9, 96, 11, 5, 240, 17, 49, 65, 67, 50, 0, + 10, 32, 29, 13, 0, 13, 35, 130, 50, 113, 65, 113, + 20, 114, 49, 98, 65, 97, 81, 49, 33, 81, 49, 34, + 50, 49, 52, 35, 0, 10, 16, 31, 13, 240, 179, 193, + 193, 193, 193, 193, 193, 36, 99, 50, 81, 97, 81, 113, + 65, 113, 65, 113, 65, 113, 65, 97, 82, 66, 116, 0, + 10, 48, 21, 9, 0, 9, 36, 66, 49, 49, 65, 33, + 81, 33, 129, 129, 145, 130, 49, 68, 0, 7, 16, 32, + 13, 240, 240, 35, 193, 193, 193, 193, 193, 116, 17, 82, + 66, 81, 97, 65, 113, 65, 113, 65, 113, 65, 113, 81, + 97, 82, 66, 101, 19, 0, 10, 20, 10, 0, 10, 36, + 81, 65, 49, 97, 40, 33, 145, 145, 161, 81, 50, 49, + 99, 0, 8, 24, 9, 211, 81, 33, 65, 49, 65, 129, + 129, 129, 102, 81, 129, 129, 129, 129, 129, 129, 129, 102, + 0, 7, 16, 30, 12, 0, 12, 55, 50, 65, 82, 65, + 82, 65, 97, 50, 81, 19, 113, 177, 178, 183, 65, 98, + 33, 129, 33, 129, 50, 81, 86, 240, 16, 33, 14, 240, + 211, 209, 209, 209, 209, 209, 209, 36, 113, 17, 50, 98, + 81, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 69, 37, 0, 10, 96, 19, 6, 240, 66, 66, 240, + 99, 81, 81, 81, 81, 81, 81, 81, 81, 52, 240, 240, + 128, 24, 7, 240, 146, 82, 240, 163, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 33, 49, 33, 33, 66, + 176, 30, 13, 240, 179, 193, 193, 193, 193, 193, 193, 52, + 81, 65, 113, 34, 129, 33, 148, 145, 49, 129, 50, 113, + 65, 113, 66, 69, 36, 0, 10, 21, 7, 227, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 69, 240, 240, 224, 38, 20, 0, 20, 18, 36, 36, 98, + 17, 51, 50, 98, 81, 81, 97, 97, 81, 97, 97, 81, + 97, 97, 81, 97, 97, 81, 97, 97, 81, 97, 97, 81, + 69, 37, 21, 0, 15, 32, 28, 14, 0, 14, 18, 36, + 98, 17, 50, 98, 81, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 69, 37, 0, 10, 96, 25, 11, + 0, 11, 51, 98, 50, 65, 81, 49, 113, 33, 113, 33, + 113, 33, 113, 49, 81, 66, 50, 99, 0, 8, 112, 31, + 13, 0, 13, 18, 21, 98, 66, 81, 98, 65, 113, 65, + 113, 65, 113, 65, 113, 65, 97, 82, 66, 81, 20, 113, + 193, 193, 193, 165, 240, 96, 29, 12, 0, 12, 36, 114, + 50, 81, 81, 65, 97, 65, 97, 65, 97, 65, 97, 81, + 81, 82, 50, 100, 17, 177, 177, 177, 177, 149, 224, 19, + 9, 0, 9, 18, 34, 51, 33, 66, 113, 129, 129, 129, + 129, 129, 101, 0, 7, 32, 23, 9, 0, 9, 20, 66, + 49, 49, 65, 50, 132, 131, 33, 81, 34, 65, 34, 50, + 33, 20, 0, 7, 16, 24, 10, 240, 240, 193, 145, 145, + 130, 120, 65, 145, 145, 145, 145, 145, 65, 65, 65, 66, + 34, 84, 0, 7, 112, 27, 14, 0, 14, 3, 67, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 98, 51, 116, 35, 0, 10, 96, 24, 13, 0, 13, + 4, 67, 65, 97, 81, 81, 98, 65, 113, 49, 130, 33, + 145, 17, 163, 177, 193, 0, 10, 80, 37, 17, 0, 17, + 4, 35, 51, 65, 65, 81, 81, 65, 65, 98, 33, 17, + 49, 113, 33, 17, 33, 129, 33, 17, 33, 131, 49, 17, + 146, 50, 162, 50, 161, 81, 0, 13, 64, 24, 13, 0, + 13, 4, 52, 65, 81, 113, 49, 145, 17, 162, 194, 146, + 17, 129, 65, 113, 81, 67, 68, 0, 10, 30, 12, 0, + 12, 4, 51, 49, 97, 81, 65, 97, 65, 113, 49, 113, + 33, 130, 17, 146, 162, 161, 177, 177, 113, 33, 129, 33, + 146, 240, 96, 21, 10, 0, 10, 8, 33, 81, 49, 66, + 129, 129, 129, 129, 129, 81, 49, 81, 40, 0, 7, 96, + 8, 13, 0, 17, 123, 0, 19, 96, 9, 24, 0, 33, + 15, 7, 0, 36, 32, 14, 8, 240, 49, 33, 49, 33, + 65, 33, 49, 33, 0, 18, 64, 9, 9, 240, 211, 81, + 51, 0, 21, 80, +}; + +//***************************************************************************** +// +// The font definition for the 24 point Cm font. +// +//***************************************************************************** +const tFont g_sFontCm24 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 21, + + // + // The height of the font. + // + 24, + + // + // The baseline of the font. + // + 18, + + // + // The offset to each character in the font. + // + { + 0, 4, 22, 40, 87, 133, 193, 237, + 248, 275, 302, 322, 356, 367, 375, 383, + 410, 444, 464, 491, 520, 549, 577, 611, + 635, 669, 703, 714, 729, 747, 758, 783, + 808, 867, 902, 937, 972, 1009, 1046, 1078, + 1116, 1154, 1175, 1200, 1240, 1265, 1328, 1377, + 1414, 1442, 1489, 1528, 1560, 1589, 1627, 1663, + 1719, 1757, 1793, 1822, 1849, 1866, 1893, 1904, + 1911, 1922, 1951, 1982, 2003, 2035, 2055, 2079, + 2109, 2142, 2161, 2185, 2215, 2236, 2274, 2302, + 2327, 2358, 2387, 2406, 2429, 2453, 2480, 2504, + 2541, 2565, 2595, 2616, 2624, 2633, 2647, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm24Data +}; diff --git a/grlib/fonts/fontcm24b.c b/grlib/fonts/fontcm24b.c new file mode 100644 index 0000000..7734e0b --- /dev/null +++ b/grlib/fonts/fontcm24b.c @@ -0,0 +1,343 @@ +//***************************************************************************** +// +// fontcm24b.c - Font definition for the 24pt Cm bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 24 point +// Bold: yes +// Italic: no +// Memory usage: 3044 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 24 point Cm bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm24bData[2841] = +{ + 5, 10, 0, 31, 32, 22, 6, 114, 52, 36, 36, 36, + 36, 50, 66, 66, 66, 66, 66, 66, 162, 52, 36, 50, + 240, 240, 144, 24, 12, 240, 162, 66, 52, 36, 36, 36, + 51, 51, 81, 81, 81, 81, 65, 81, 81, 81, 65, 81, + 0, 21, 64, 50, 19, 0, 5, 97, 65, 209, 65, 194, + 65, 194, 50, 193, 66, 193, 65, 194, 65, 194, 50, 111, + 2, 129, 65, 194, 50, 194, 50, 193, 65, 143, 2, 98, + 50, 193, 66, 193, 65, 194, 65, 194, 50, 193, 66, 193, + 65, 209, 65, 240, 224, 47, 12, 65, 177, 150, 82, 17, + 34, 50, 33, 50, 34, 33, 35, 34, 33, 35, 35, 17, + 34, 53, 134, 104, 102, 113, 20, 35, 17, 35, 35, 17, + 50, 35, 17, 50, 34, 33, 49, 66, 17, 34, 86, 129, + 177, 0, 6, 112, 62, 20, 35, 161, 82, 34, 114, 82, + 50, 67, 83, 49, 23, 83, 49, 82, 99, 49, 81, 115, + 49, 66, 115, 49, 50, 146, 49, 34, 162, 33, 50, 194, + 50, 240, 34, 53, 162, 50, 49, 130, 51, 49, 114, 67, + 49, 114, 67, 49, 98, 83, 49, 82, 99, 49, 82, 114, + 33, 82, 148, 0, 12, 112, 46, 19, 240, 147, 227, 33, + 210, 49, 195, 49, 195, 49, 195, 33, 211, 33, 213, 70, + 83, 113, 132, 97, 117, 81, 114, 20, 50, 99, 36, 33, + 115, 51, 17, 131, 68, 131, 83, 65, 51, 69, 49, 85, + 68, 0, 14, 96, 13, 6, 210, 52, 36, 51, 81, 81, + 65, 81, 65, 0, 11, 28, 8, 81, 98, 82, 83, 82, + 83, 83, 82, 83, 83, 83, 83, 83, 83, 83, 83, 83, + 98, 99, 83, 98, 99, 98, 114, 113, 32, 28, 8, 1, + 114, 114, 99, 98, 99, 83, 98, 99, 83, 83, 83, 83, + 83, 83, 83, 83, 82, 83, 83, 82, 83, 82, 82, 97, + 112, 27, 11, 51, 131, 131, 82, 19, 18, 35, 17, 19, + 55, 85, 67, 17, 19, 34, 33, 34, 33, 35, 33, 83, + 131, 0, 18, 64, 38, 17, 0, 9, 49, 240, 17, 240, + 17, 240, 17, 240, 17, 240, 17, 240, 17, 240, 17, 159, + 145, 240, 17, 240, 17, 240, 17, 240, 17, 240, 17, 240, + 17, 240, 17, 0, 9, 80, 14, 6, 0, 11, 50, 52, + 36, 51, 81, 81, 65, 81, 65, 160, 9, 8, 0, 13, + 6, 38, 0, 10, 32, 11, 6, 0, 11, 50, 52, 36, + 50, 240, 240, 144, 28, 11, 129, 146, 145, 161, 146, 146, + 145, 146, 146, 145, 146, 146, 145, 146, 146, 145, 146, 146, + 145, 146, 146, 145, 161, 146, 145, 160, 37, 12, 240, 240, + 148, 114, 35, 66, 66, 66, 67, 35, 67, 35, 67, 35, + 67, 35, 67, 35, 67, 35, 67, 35, 67, 35, 67, 35, + 67, 50, 66, 82, 34, 116, 0, 9, 80, 23, 11, 240, + 240, 114, 86, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 89, 0, 8, 64, 30, 11, 240, 240, + 85, 81, 51, 51, 51, 35, 51, 35, 51, 131, 130, 131, + 130, 130, 130, 49, 81, 65, 65, 81, 56, 41, 40, 0, + 8, 80, 32, 12, 240, 240, 148, 98, 51, 67, 35, 67, + 35, 67, 35, 147, 131, 115, 195, 148, 50, 52, 36, 36, + 36, 36, 35, 51, 66, 36, 85, 0, 9, 80, 28, 13, + 0, 5, 98, 178, 163, 148, 148, 129, 19, 113, 35, 113, + 35, 97, 51, 81, 67, 81, 67, 75, 131, 163, 163, 135, + 0, 10, 31, 11, 240, 240, 65, 81, 71, 70, 84, 113, + 161, 161, 20, 82, 50, 65, 66, 147, 131, 35, 51, 35, + 51, 35, 51, 49, 51, 84, 0, 8, 112, 35, 12, 240, + 240, 165, 98, 49, 82, 50, 66, 66, 66, 147, 147, 20, + 68, 35, 51, 67, 35, 67, 35, 67, 35, 67, 50, 67, + 50, 66, 82, 50, 100, 0, 9, 80, 25, 12, 240, 240, + 106, 41, 56, 65, 82, 65, 81, 161, 162, 161, 162, 162, + 162, 147, 147, 147, 147, 147, 0, 9, 112, 34, 13, 240, + 240, 197, 114, 50, 82, 82, 66, 82, 67, 66, 69, 18, + 102, 134, 104, 67, 22, 35, 68, 35, 83, 35, 83, 35, + 82, 67, 51, 101, 0, 10, 48, 35, 12, 240, 240, 148, + 99, 35, 66, 66, 51, 67, 35, 67, 35, 67, 35, 67, + 35, 67, 51, 36, 68, 19, 147, 146, 66, 66, 66, 65, + 81, 50, 116, 0, 9, 96, 16, 6, 0, 6, 18, 52, + 36, 50, 240, 114, 52, 36, 50, 240, 240, 144, 19, 6, + 0, 6, 18, 52, 36, 50, 240, 114, 52, 36, 51, 81, + 81, 65, 81, 65, 160, 22, 6, 240, 240, 114, 52, 36, + 50, 240, 18, 66, 66, 66, 66, 66, 52, 36, 36, 36, + 36, 50, 144, 13, 18, 0, 22, 79, 1, 0, 9, 47, + 1, 0, 20, 64, 27, 11, 0, 8, 83, 116, 116, 131, + 240, 240, 17, 161, 161, 161, 145, 146, 131, 115, 51, 35, + 51, 35, 51, 35, 65, 85, 240, 26, 11, 240, 149, 66, + 67, 35, 51, 35, 51, 131, 115, 130, 130, 145, 161, 161, + 161, 240, 83, 116, 116, 131, 0, 8, 112, 59, 18, 240, + 240, 182, 162, 98, 113, 146, 82, 52, 50, 65, 35, 34, + 49, 49, 50, 67, 33, 33, 35, 67, 33, 33, 35, 67, + 33, 33, 35, 67, 33, 33, 35, 67, 33, 33, 35, 67, + 33, 34, 35, 51, 33, 49, 35, 36, 17, 66, 52, 20, + 82, 240, 34, 115, 136, 0, 14, 16, 36, 18, 240, 240, + 210, 240, 18, 240, 19, 228, 228, 229, 193, 35, 193, 35, + 178, 36, 161, 67, 161, 67, 154, 129, 99, 129, 99, 114, + 100, 97, 131, 69, 71, 0, 13, 96, 38, 17, 240, 240, + 76, 115, 83, 99, 99, 83, 99, 83, 99, 83, 99, 83, + 98, 99, 83, 105, 131, 83, 99, 99, 83, 100, 67, 100, + 67, 100, 67, 99, 83, 84, 60, 0, 13, 48, 35, 17, + 240, 240, 165, 49, 99, 68, 68, 99, 52, 130, 51, 146, + 36, 161, 36, 212, 212, 212, 212, 212, 161, 51, 161, 52, + 129, 84, 113, 100, 66, 165, 0, 13, 64, 39, 19, 240, + 240, 140, 147, 84, 115, 115, 99, 116, 83, 131, 83, 132, + 67, 132, 67, 132, 67, 132, 67, 132, 67, 132, 67, 132, + 67, 131, 83, 116, 83, 115, 99, 84, 92, 0, 15, 16, + 41, 16, 240, 240, 44, 99, 82, 99, 98, 83, 98, 83, + 113, 83, 49, 49, 83, 49, 147, 34, 151, 147, 34, 147, + 49, 50, 67, 49, 49, 83, 113, 83, 113, 83, 98, 83, + 83, 61, 0, 12, 48, 34, 15, 240, 252, 83, 82, 83, + 97, 83, 97, 83, 98, 67, 49, 49, 67, 49, 131, 34, + 135, 131, 34, 131, 49, 131, 49, 131, 195, 195, 195, 168, + 0, 12, 16, 37, 19, 240, 240, 230, 33, 131, 68, 100, + 99, 84, 130, 83, 161, 68, 161, 68, 244, 244, 244, 244, + 88, 36, 131, 83, 131, 99, 115, 100, 99, 131, 68, 165, + 49, 0, 14, 96, 40, 18, 240, 240, 103, 39, 67, 99, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 108, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 71, 39, 0, 13, 96, 22, 9, 240, 55, + 67, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 71, 0, 7, 27, 13, 240, 232, 131, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 82, 51, 68, + 35, 68, 35, 82, 35, 117, 0, 10, 64, 40, 18, 240, + 240, 103, 69, 67, 114, 99, 98, 115, 82, 131, 66, 147, + 50, 163, 34, 179, 19, 184, 164, 20, 147, 51, 147, 52, + 131, 67, 131, 68, 115, 84, 99, 99, 71, 39, 0, 13, + 96, 29, 14, 240, 216, 131, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 97, 67, 97, 67, 82, 67, 82, 67, 81, + 83, 51, 59, 0, 10, 112, 66, 23, 0, 5, 102, 150, + 68, 148, 100, 129, 19, 97, 19, 113, 19, 97, 19, 113, + 19, 97, 34, 97, 35, 97, 35, 81, 35, 97, 35, 81, + 35, 97, 51, 49, 51, 97, 51, 49, 51, 97, 51, 33, + 67, 97, 67, 17, 67, 97, 67, 17, 67, 97, 83, 83, + 97, 83, 83, 97, 82, 99, 69, 65, 71, 0, 17, 64, + 48, 18, 240, 240, 101, 101, 68, 113, 101, 97, 97, 19, + 97, 97, 35, 81, 97, 36, 65, 97, 52, 49, 97, 67, + 49, 97, 68, 33, 97, 84, 17, 97, 99, 17, 97, 101, + 97, 116, 97, 131, 97, 131, 97, 146, 69, 129, 0, 14, + 39, 18, 240, 240, 182, 163, 67, 115, 99, 84, 100, 67, + 131, 52, 132, 36, 132, 36, 132, 36, 132, 36, 132, 36, + 132, 36, 132, 51, 131, 68, 100, 83, 99, 115, 67, 166, + 0, 14, 48, 31, 16, 240, 240, 43, 115, 68, 83, 84, + 67, 84, 67, 84, 67, 84, 67, 83, 83, 68, 89, 115, + 211, 211, 211, 211, 211, 211, 183, 0, 13, 16, 48, 18, + 240, 240, 182, 163, 67, 115, 99, 84, 100, 67, 131, 52, + 132, 36, 132, 36, 132, 36, 132, 36, 132, 36, 132, 36, + 132, 51, 131, 68, 35, 20, 83, 17, 33, 19, 116, 50, + 183, 49, 194, 49, 198, 198, 212, 227, 240, 112, 41, 20, + 240, 240, 171, 179, 83, 147, 99, 131, 100, 115, 100, 115, + 100, 115, 99, 131, 83, 153, 179, 68, 147, 83, 147, 84, + 131, 84, 131, 84, 131, 84, 49, 67, 85, 33, 40, 69, + 0, 15, 48, 36, 14, 240, 240, 21, 33, 67, 67, 66, + 98, 51, 98, 51, 113, 52, 97, 55, 137, 105, 119, 165, + 33, 131, 34, 115, 34, 115, 35, 98, 52, 67, 50, 37, + 0, 11, 16, 36, 17, 240, 240, 93, 66, 51, 50, 65, + 67, 65, 50, 67, 66, 34, 67, 66, 34, 67, 81, 33, + 83, 81, 131, 227, 227, 227, 227, 227, 227, 227, 227, 185, + 0, 13, 48, 40, 18, 240, 240, 103, 69, 67, 129, 99, + 129, 99, 129, 99, 129, 99, 129, 99, 129, 99, 129, 99, + 129, 99, 129, 99, 129, 99, 129, 99, 129, 99, 129, 115, + 97, 147, 65, 197, 0, 14, 48, 37, 19, 240, 240, 135, + 70, 67, 130, 100, 113, 116, 98, 131, 97, 148, 81, 148, + 66, 163, 65, 180, 49, 195, 33, 212, 17, 214, 228, 244, + 244, 240, 18, 240, 34, 0, 15, 64, 57, 26, 0, 6, + 72, 23, 53, 68, 83, 113, 115, 84, 97, 116, 83, 82, + 116, 83, 81, 147, 69, 65, 148, 49, 19, 50, 148, 49, + 19, 49, 179, 34, 20, 33, 180, 17, 51, 33, 180, 17, + 51, 17, 213, 53, 212, 84, 212, 83, 243, 83, 242, 114, + 242, 113, 0, 20, 80, 37, 18, 240, 240, 104, 22, 84, + 82, 132, 50, 148, 49, 180, 18, 195, 17, 213, 228, 228, + 229, 209, 19, 193, 36, 162, 51, 161, 68, 130, 84, 113, + 100, 70, 55, 0, 13, 96, 38, 19, 240, 240, 136, 69, + 68, 114, 116, 97, 132, 82, 148, 65, 164, 50, 180, 33, + 196, 17, 229, 243, 240, 19, 240, 19, 240, 19, 240, 19, + 240, 19, 240, 19, 231, 0, 15, 16, 34, 14, 240, 220, + 35, 84, 34, 84, 50, 84, 49, 84, 65, 83, 164, 163, + 164, 163, 164, 65, 83, 81, 68, 81, 52, 97, 51, 98, + 36, 83, 44, 0, 10, 96, 27, 5, 83, 33, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 67, 32, 22, 12, 240, + 177, 81, 65, 81, 65, 81, 81, 81, 83, 51, 52, 36, + 36, 36, 50, 66, 0, 22, 112, 27, 5, 83, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 35, 32, 12, 8, + 240, 65, 99, 66, 18, 33, 65, 0, 19, 32, 9, 6, + 210, 52, 36, 50, 0, 14, 80, 13, 6, 225, 65, 65, + 81, 83, 52, 36, 50, 0, 11, 80, 25, 13, 0, 13, + 37, 114, 35, 98, 51, 163, 118, 83, 35, 67, 51, 67, + 51, 67, 51, 67, 36, 99, 36, 0, 10, 34, 14, 240, + 213, 179, 179, 179, 179, 179, 179, 19, 116, 35, 83, 66, + 83, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 66, + 84, 35, 82, 35, 0, 11, 16, 23, 11, 0, 11, 53, + 67, 35, 50, 51, 35, 65, 51, 131, 131, 131, 146, 81, + 51, 49, 100, 0, 8, 96, 34, 14, 240, 240, 68, 179, + 179, 179, 179, 179, 119, 83, 36, 82, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 82, 67, 83, 36, 115, + 21, 0, 10, 96, 24, 12, 0, 12, 53, 83, 35, 66, + 67, 35, 67, 35, 67, 42, 35, 147, 162, 97, 51, 50, + 101, 0, 9, 64, 26, 11, 240, 180, 98, 19, 67, 19, + 67, 33, 83, 131, 118, 99, 131, 131, 131, 131, 131, 131, + 131, 131, 102, 0, 8, 112, 33, 13, 0, 13, 37, 19, + 50, 50, 18, 35, 51, 67, 51, 67, 51, 82, 50, 102, + 113, 178, 200, 104, 50, 99, 34, 114, 34, 99, 50, 67, + 86, 240, 48, 35, 16, 240, 240, 37, 211, 211, 211, 211, + 211, 211, 36, 115, 17, 35, 100, 51, 99, 67, 99, 67, + 99, 67, 99, 67, 99, 67, 99, 67, 99, 67, 78, 0, + 12, 32, 22, 8, 240, 50, 84, 68, 82, 240, 85, 83, + 83, 83, 83, 83, 83, 83, 83, 83, 54, 0, 6, 32, + 28, 10, 240, 147, 116, 100, 99, 240, 181, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 115, 115, 35, 35, 35, 35, + 35, 19, 69, 224, 31, 15, 240, 245, 195, 195, 195, 195, + 195, 195, 37, 83, 50, 115, 34, 131, 18, 150, 150, 147, + 19, 131, 35, 115, 35, 115, 51, 77, 0, 11, 64, 22, + 9, 240, 53, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 71, 0, 7, 39, 22, 0, + 22, 5, 36, 36, 117, 36, 35, 100, 52, 35, 99, 67, + 51, 99, 67, 51, 99, 67, 51, 99, 67, 51, 99, 67, + 51, 99, 67, 51, 99, 67, 51, 77, 22, 0, 16, 96, + 28, 16, 0, 16, 5, 36, 117, 35, 100, 51, 99, 67, + 99, 67, 99, 67, 99, 67, 99, 67, 99, 67, 99, 67, + 78, 0, 12, 32, 27, 12, 0, 12, 52, 99, 35, 66, + 66, 51, 67, 35, 67, 35, 67, 35, 67, 35, 67, 50, + 66, 67, 35, 100, 0, 9, 80, 33, 14, 0, 14, 5, + 20, 100, 35, 83, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 66, 84, 35, 83, 19, 115, 179, 179, + 179, 150, 240, 112, 34, 15, 0, 15, 52, 34, 98, 49, + 18, 83, 67, 67, 83, 67, 83, 67, 83, 67, 83, 67, + 83, 83, 67, 83, 52, 116, 19, 195, 195, 195, 195, 167, + 240, 32, 21, 12, 0, 12, 5, 19, 84, 19, 67, 35, + 67, 147, 147, 147, 147, 147, 147, 119, 0, 9, 80, 22, + 10, 0, 10, 37, 65, 50, 50, 65, 51, 118, 86, 116, + 33, 82, 34, 66, 35, 49, 54, 0, 8, 27, 10, 240, + 240, 65, 145, 130, 130, 115, 88, 67, 115, 115, 115, 115, + 115, 33, 67, 33, 67, 33, 67, 33, 84, 0, 7, 112, + 29, 16, 0, 16, 5, 37, 99, 67, 99, 67, 99, 67, + 99, 67, 99, 67, 99, 67, 99, 67, 99, 67, 99, 52, + 117, 21, 0, 12, 32, 24, 13, 0, 13, 5, 36, 51, + 65, 98, 65, 99, 34, 99, 33, 130, 33, 133, 132, 163, + 162, 193, 0, 10, 80, 35, 19, 0, 19, 11, 36, 67, + 50, 65, 99, 50, 65, 115, 35, 34, 115, 20, 33, 131, + 17, 18, 33, 148, 21, 148, 35, 163, 51, 178, 51, 178, + 65, 0, 15, 16, 26, 14, 0, 14, 21, 21, 67, 50, + 115, 18, 146, 17, 164, 179, 179, 161, 19, 130, 35, 113, + 66, 69, 37, 0, 10, 96, 31, 14, 0, 14, 6, 36, + 67, 65, 99, 65, 115, 33, 131, 33, 131, 33, 148, 164, + 179, 178, 194, 193, 145, 49, 131, 18, 131, 17, 163, 240, + 144, 25, 11, 0, 11, 9, 34, 67, 34, 51, 49, 51, + 131, 115, 115, 49, 67, 49, 51, 50, 35, 66, 41, 0, + 8, 64, 8, 14, 0, 21, 12, 0, 21, 32, 9, 26, + 0, 39, 15, 9, 0, 39, 32, 15, 9, 162, 34, 35, + 19, 35, 19, 34, 34, 49, 49, 0, 21, 112, 11, 10, + 240, 100, 33, 54, 49, 51, 0, 25, 48, +}; + +//***************************************************************************** +// +// The font definition for the 24 point Cm bold font. +// +//***************************************************************************** +const tFont g_sFontCm24b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 23, + + // + // The height of the font. + // + 25, + + // + // The baseline of the font. + // + 19, + + // + // The offset to each character in the font. + // + { + 0, 5, 27, 51, 101, 148, 210, 256, + 269, 297, 325, 352, 390, 404, 413, 424, + 452, 489, 512, 542, 574, 602, 633, 668, + 693, 727, 762, 778, 797, 819, 832, 859, + 885, 944, 980, 1018, 1053, 1092, 1133, 1167, + 1204, 1244, 1266, 1293, 1333, 1362, 1428, 1476, + 1515, 1546, 1594, 1635, 1671, 1707, 1747, 1784, + 1841, 1878, 1916, 1950, 1977, 1999, 2026, 2038, + 2047, 2060, 2085, 2119, 2142, 2176, 2200, 2226, + 2259, 2294, 2316, 2344, 2375, 2397, 2436, 2464, + 2491, 2524, 2558, 2579, 2601, 2628, 2657, 2681, + 2716, 2742, 2773, 2798, 2806, 2815, 2830, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm24bData +}; diff --git a/grlib/fonts/fontcm24i.c b/grlib/fonts/fontcm24i.c new file mode 100644 index 0000000..c1a7fba --- /dev/null +++ b/grlib/fonts/fontcm24i.c @@ -0,0 +1,334 @@ +//***************************************************************************** +// +// fontcm24i.c - Font definition for the 24pt Cm italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 24 point +// Bold: no +// Italic: yes +// Memory usage: 2936 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 24 point Cm italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm24iData[2735] = +{ + 4, 10, 0, 30, 21, 8, 194, 83, 82, 98, 98, 97, + 98, 98, 97, 113, 113, 97, 113, 240, 114, 98, 0, 6, + 96, 18, 9, 240, 66, 34, 50, 34, 65, 49, 49, 49, + 65, 49, 49, 49, 0, 18, 64, 44, 18, 0, 5, 97, + 65, 177, 65, 193, 65, 193, 49, 193, 65, 193, 49, 193, + 65, 193, 49, 127, 129, 49, 193, 65, 193, 49, 143, 113, + 49, 193, 65, 177, 65, 193, 65, 177, 65, 193, 65, 177, + 65, 0, 6, 31, 16, 240, 240, 180, 178, 49, 146, 65, + 145, 66, 130, 66, 130, 225, 213, 209, 226, 225, 241, 241, + 181, 81, 65, 51, 49, 83, 52, 0, 12, 96, 60, 17, + 66, 129, 81, 34, 67, 65, 49, 22, 81, 49, 66, 81, + 65, 51, 81, 65, 50, 97, 49, 50, 113, 49, 34, 129, + 33, 34, 162, 34, 50, 161, 49, 33, 130, 33, 49, 114, + 49, 49, 98, 49, 65, 82, 65, 65, 66, 81, 49, 81, + 97, 49, 65, 113, 33, 81, 130, 0, 11, 48, 51, 18, + 240, 132, 82, 97, 50, 66, 81, 81, 65, 82, 66, 65, + 81, 82, 49, 82, 145, 98, 19, 66, 99, 33, 49, 18, + 82, 49, 34, 33, 81, 19, 50, 33, 66, 114, 33, 65, + 193, 65, 177, 81, 177, 82, 145, 114, 98, 166, 0, 14, + 80, 11, 5, 178, 50, 65, 49, 65, 49, 0, 10, 64, + 27, 10, 113, 129, 129, 145, 129, 129, 145, 129, 145, 130, + 129, 145, 145, 130, 129, 145, 145, 145, 145, 145, 145, 161, + 145, 145, 128, 27, 10, 240, 17, 145, 161, 145, 145, 145, + 145, 145, 145, 145, 130, 129, 145, 145, 129, 145, 129, 145, + 129, 145, 129, 129, 129, 144, 22, 11, 81, 161, 97, 49, + 33, 65, 17, 18, 99, 131, 99, 33, 65, 33, 49, 97, + 161, 0, 20, 16, 22, 16, 0, 9, 1, 241, 241, 225, + 241, 241, 241, 241, 142, 129, 241, 241, 225, 241, 241, 0, + 11, 32, 11, 5, 0, 10, 18, 50, 65, 49, 65, 49, + 224, 8, 8, 0, 13, 6, 0, 10, 32, 8, 4, 0, + 8, 2, 34, 240, 176, 27, 16, 209, 225, 241, 225, 241, + 225, 241, 225, 225, 241, 225, 241, 225, 241, 225, 241, 225, + 225, 241, 225, 241, 225, 241, 225, 240, 35, 12, 240, 240, + 180, 113, 50, 81, 81, 66, 81, 65, 97, 50, 97, 49, + 98, 49, 97, 50, 97, 49, 98, 49, 97, 65, 82, 65, + 81, 82, 49, 116, 0, 9, 112, 22, 10, 240, 240, 113, + 114, 100, 130, 130, 129, 130, 130, 129, 145, 130, 130, 129, + 145, 103, 0, 7, 112, 34, 12, 240, 240, 195, 114, 49, + 82, 65, 81, 33, 33, 65, 49, 33, 65, 33, 49, 67, + 49, 161, 161, 146, 145, 161, 161, 97, 68, 49, 49, 67, + 0, 9, 64, 32, 13, 240, 240, 244, 114, 65, 81, 97, + 65, 49, 49, 65, 49, 49, 83, 49, 178, 131, 209, 193, + 193, 66, 82, 66, 81, 81, 66, 116, 0, 10, 96, 31, + 12, 240, 240, 241, 162, 161, 177, 162, 161, 162, 161, 161, + 177, 18, 113, 33, 113, 49, 97, 65, 69, 18, 65, 69, + 129, 162, 162, 161, 240, 240, 28, 11, 240, 240, 102, 85, + 81, 161, 161, 145, 35, 83, 49, 65, 81, 161, 161, 49, + 82, 49, 81, 146, 65, 50, 99, 0, 9, 16, 35, 11, + 240, 240, 147, 98, 33, 81, 65, 66, 145, 19, 81, 17, + 34, 66, 65, 50, 81, 50, 81, 49, 82, 49, 82, 49, + 81, 65, 66, 66, 34, 99, 0, 9, 16, 29, 13, 240, + 240, 177, 19, 49, 66, 33, 33, 65, 82, 81, 97, 65, + 97, 193, 177, 178, 178, 177, 178, 177, 178, 178, 177, 0, + 10, 112, 33, 13, 240, 240, 244, 114, 50, 81, 97, 81, + 97, 81, 81, 98, 49, 132, 148, 114, 35, 81, 97, 65, + 113, 65, 113, 65, 97, 97, 65, 132, 0, 10, 80, 34, + 12, 240, 240, 195, 114, 49, 82, 65, 81, 81, 66, 81, + 65, 97, 65, 82, 65, 67, 65, 49, 17, 99, 18, 161, + 162, 81, 65, 81, 50, 116, 0, 9, 112, 13, 6, 0, + 6, 34, 66, 240, 240, 130, 66, 240, 240, 160, 16, 7, + 0, 7, 50, 82, 240, 240, 242, 82, 97, 97, 81, 81, + 240, 80, 20, 8, 0, 7, 66, 98, 225, 97, 113, 113, + 113, 98, 98, 97, 98, 98, 98, 83, 82, 224, 11, 17, + 0, 21, 62, 0, 6, 94, 0, 19, 64, 30, 10, 0, + 9, 66, 114, 240, 35, 98, 17, 97, 33, 130, 114, 114, + 98, 50, 49, 66, 33, 97, 33, 81, 49, 81, 50, 34, + 83, 240, 16, 29, 10, 227, 82, 49, 49, 81, 49, 81, + 33, 97, 34, 65, 50, 50, 98, 114, 114, 129, 33, 97, + 18, 99, 240, 194, 114, 0, 8, 64, 57, 17, 240, 240, + 181, 162, 82, 113, 50, 49, 97, 34, 33, 49, 65, 34, + 65, 33, 49, 49, 81, 33, 49, 34, 81, 33, 33, 49, + 82, 33, 33, 49, 82, 33, 33, 49, 81, 33, 49, 49, + 66, 33, 49, 65, 35, 17, 81, 51, 35, 81, 240, 34, + 98, 135, 0, 13, 80, 36, 16, 240, 177, 241, 226, 209, + 17, 209, 17, 193, 33, 177, 50, 161, 50, 145, 66, 145, + 66, 129, 82, 136, 113, 98, 113, 98, 97, 114, 82, 114, + 68, 70, 0, 12, 32, 36, 16, 240, 240, 105, 145, 82, + 114, 97, 114, 97, 113, 98, 113, 98, 98, 82, 119, 145, + 97, 129, 113, 98, 113, 98, 113, 97, 129, 97, 113, 98, + 97, 90, 0, 12, 96, 34, 16, 240, 240, 133, 33, 113, + 81, 17, 82, 114, 66, 129, 81, 145, 65, 161, 65, 225, + 241, 241, 241, 241, 145, 81, 129, 113, 113, 114, 66, 164, + 0, 13, 16, 37, 17, 240, 240, 122, 146, 82, 130, 97, + 129, 129, 98, 129, 98, 129, 98, 129, 97, 145, 82, 130, + 82, 129, 98, 129, 97, 129, 98, 129, 98, 113, 114, 82, + 105, 0, 13, 96, 36, 17, 240, 240, 124, 114, 98, 114, + 113, 113, 129, 98, 129, 98, 65, 162, 49, 182, 162, 65, + 162, 65, 162, 129, 97, 129, 98, 129, 98, 114, 98, 98, + 92, 0, 13, 48, 31, 17, 240, 240, 124, 114, 98, 114, + 113, 113, 113, 114, 113, 114, 65, 162, 49, 178, 49, 167, + 162, 65, 162, 241, 242, 242, 242, 214, 0, 14, 16, 34, + 16, 240, 240, 148, 162, 65, 17, 97, 114, 81, 130, 65, + 145, 66, 145, 65, 161, 65, 225, 241, 241, 102, 49, 146, + 65, 145, 97, 114, 98, 83, 133, 0, 13, 38, 20, 240, + 240, 230, 38, 130, 98, 146, 113, 162, 98, 162, 98, 161, + 114, 146, 113, 170, 162, 98, 161, 114, 146, 113, 162, 98, + 162, 98, 161, 114, 146, 113, 134, 38, 0, 15, 96, 22, + 12, 240, 214, 130, 161, 162, 162, 162, 161, 162, 162, 161, + 162, 162, 162, 161, 162, 134, 0, 9, 96, 26, 14, 240, + 240, 70, 162, 194, 193, 194, 194, 194, 193, 194, 194, 194, + 193, 114, 50, 114, 50, 113, 50, 147, 0, 11, 96, 40, + 20, 240, 240, 214, 69, 114, 113, 162, 97, 177, 97, 178, + 81, 194, 50, 210, 34, 225, 35, 210, 17, 18, 211, 50, + 194, 66, 193, 98, 162, 98, 162, 98, 162, 114, 117, 69, + 0, 15, 96, 27, 14, 240, 240, 23, 146, 194, 193, 194, + 194, 194, 193, 194, 194, 194, 193, 113, 66, 113, 66, 97, + 82, 82, 59, 0, 10, 112, 61, 23, 0, 6, 36, 148, + 115, 131, 147, 113, 17, 145, 18, 113, 17, 145, 18, 97, + 18, 145, 33, 81, 34, 145, 33, 81, 33, 145, 49, 65, + 34, 145, 49, 65, 34, 145, 49, 49, 50, 145, 50, 17, + 65, 145, 66, 17, 50, 145, 67, 66, 145, 67, 66, 145, + 66, 81, 133, 33, 54, 0, 18, 47, 20, 240, 240, 212, + 101, 115, 98, 147, 97, 145, 33, 97, 145, 34, 65, 161, + 34, 65, 161, 49, 65, 145, 66, 49, 145, 66, 33, 161, + 82, 17, 161, 82, 17, 145, 98, 17, 145, 114, 161, 114, + 161, 114, 132, 113, 0, 16, 37, 15, 240, 240, 101, 145, + 66, 98, 97, 97, 129, 65, 145, 49, 161, 49, 161, 34, + 161, 33, 162, 33, 161, 49, 161, 49, 145, 65, 130, 81, + 98, 98, 65, 149, 0, 12, 32, 30, 16, 240, 240, 90, + 130, 82, 114, 97, 114, 97, 113, 113, 98, 98, 98, 97, + 113, 97, 135, 130, 226, 226, 210, 226, 226, 198, 0, 13, + 32, 48, 15, 240, 240, 116, 146, 65, 113, 97, 97, 129, + 65, 145, 50, 145, 49, 161, 34, 161, 33, 177, 33, 161, + 49, 161, 49, 145, 65, 67, 33, 81, 33, 33, 17, 113, + 17, 34, 149, 49, 161, 33, 177, 33, 180, 179, 240, 240, + 80, 38, 16, 240, 240, 89, 146, 81, 130, 97, 113, 113, + 98, 113, 98, 97, 113, 82, 134, 146, 66, 130, 81, 130, + 81, 129, 97, 114, 97, 114, 82, 114, 82, 33, 37, 83, + 0, 12, 48, 35, 14, 240, 240, 68, 145, 49, 17, 97, + 82, 81, 97, 97, 97, 97, 97, 98, 213, 180, 209, 209, + 81, 113, 81, 97, 97, 97, 81, 17, 65, 97, 36, 0, + 11, 48, 31, 17, 240, 240, 109, 50, 66, 65, 65, 82, + 65, 49, 97, 81, 49, 82, 81, 146, 241, 242, 242, 242, + 241, 242, 242, 242, 241, 215, 0, 13, 112, 38, 16, 240, + 240, 38, 53, 66, 113, 97, 129, 97, 113, 98, 113, 98, + 113, 97, 129, 97, 113, 98, 113, 98, 113, 97, 129, 97, + 113, 113, 113, 113, 97, 145, 50, 180, 0, 13, 32, 35, + 17, 240, 240, 69, 100, 65, 145, 97, 129, 114, 113, 114, + 97, 130, 81, 146, 81, 146, 65, 162, 49, 178, 49, 178, + 33, 209, 33, 211, 226, 242, 241, 0, 14, 48, 56, 23, + 0, 5, 101, 53, 68, 50, 98, 113, 82, 98, 97, 98, + 98, 97, 98, 98, 81, 129, 81, 17, 81, 129, 65, 33, + 65, 145, 65, 33, 49, 161, 49, 49, 49, 162, 17, 65, + 33, 178, 17, 66, 17, 179, 83, 195, 83, 194, 98, 210, + 98, 209, 113, 0, 18, 96, 40, 20, 240, 240, 230, 53, + 130, 98, 178, 65, 210, 65, 210, 49, 242, 17, 240, 19, + 240, 49, 240, 51, 240, 17, 18, 241, 50, 209, 66, 193, + 82, 193, 98, 161, 114, 117, 85, 0, 15, 80, 31, 17, + 240, 240, 69, 100, 66, 129, 98, 113, 114, 97, 146, 65, + 162, 49, 178, 33, 210, 17, 211, 226, 242, 241, 240, 17, + 242, 242, 214, 0, 14, 32, 16, 240, 240, 106, 98, 97, + 113, 98, 97, 98, 113, 82, 210, 210, 225, 225, 226, 210, + 81, 114, 81, 114, 97, 113, 113, 97, 99, 90, 0, 12, + 96, 26, 10, 243, 113, 145, 129, 145, 145, 145, 129, 145, + 145, 145, 129, 145, 145, 145, 129, 145, 145, 145, 129, 145, + 145, 147, 112, 20, 9, 240, 81, 49, 49, 49, 49, 49, + 65, 49, 65, 49, 66, 34, 50, 34, 0, 17, 32, 26, + 10, 243, 145, 145, 129, 145, 145, 145, 129, 145, 145, 145, + 129, 145, 145, 145, 129, 145, 145, 145, 129, 145, 145, 115, + 112, 11, 8, 240, 65, 97, 17, 50, 49, 0, 19, 32, + 7, 4, 194, 34, 0, 9, 96, 12, 5, 193, 49, 49, + 65, 65, 66, 50, 0, 9, 96, 29, 11, 0, 11, 51, + 17, 82, 34, 66, 50, 65, 66, 50, 65, 65, 81, 65, + 66, 65, 65, 33, 33, 50, 33, 51, 34, 0, 8, 80, + 30, 9, 240, 67, 114, 114, 113, 129, 114, 117, 66, 49, + 49, 65, 49, 65, 34, 65, 33, 66, 33, 65, 49, 65, + 49, 49, 83, 0, 7, 48, 21, 9, 0, 9, 52, 66, + 33, 50, 49, 49, 114, 113, 129, 129, 81, 49, 49, 68, + 0, 7, 32, 34, 12, 240, 244, 161, 177, 177, 162, 161, + 115, 17, 98, 34, 82, 50, 81, 65, 82, 65, 81, 81, + 81, 66, 81, 65, 33, 49, 50, 33, 67, 34, 0, 9, + 64, 21, 10, 0, 10, 52, 81, 65, 49, 66, 38, 65, + 145, 145, 145, 97, 49, 50, 68, 0, 8, 16, 30, 13, + 240, 240, 67, 146, 17, 145, 33, 130, 178, 178, 135, 130, + 178, 178, 177, 178, 178, 178, 177, 178, 178, 177, 145, 18, + 147, 240, 240, 96, 30, 11, 0, 11, 67, 17, 81, 50, + 66, 50, 65, 66, 50, 65, 65, 81, 65, 66, 65, 65, + 81, 50, 101, 146, 145, 81, 50, 84, 240, 224, 35, 12, + 240, 179, 177, 162, 162, 161, 177, 162, 19, 99, 33, 98, + 49, 97, 65, 82, 65, 82, 65, 81, 65, 33, 34, 65, + 17, 50, 65, 17, 49, 82, 0, 9, 64, 25, 7, 240, + 146, 82, 240, 147, 65, 17, 49, 33, 49, 18, 81, 97, + 82, 17, 49, 33, 49, 17, 67, 240, 240, 240, 28, 11, + 240, 240, 162, 146, 240, 240, 162, 129, 33, 97, 49, 81, + 65, 146, 145, 161, 146, 145, 161, 146, 145, 97, 34, 99, + 240, 240, 35, 11, 240, 147, 161, 146, 145, 161, 161, 146, + 50, 65, 34, 17, 65, 17, 130, 130, 17, 113, 49, 97, + 49, 33, 34, 49, 17, 50, 49, 17, 49, 81, 0, 8, + 96, 24, 6, 211, 81, 81, 66, 65, 81, 81, 66, 65, + 81, 81, 66, 65, 33, 33, 33, 33, 17, 66, 240, 240, + 144, 45, 20, 0, 20, 34, 35, 51, 97, 17, 17, 49, + 17, 49, 65, 34, 66, 65, 65, 33, 81, 81, 113, 66, + 66, 98, 66, 65, 113, 81, 81, 33, 65, 81, 65, 33, + 66, 66, 65, 33, 66, 65, 98, 0, 15, 64, 33, 14, + 0, 14, 19, 35, 97, 17, 17, 49, 65, 34, 65, 65, + 33, 81, 98, 66, 98, 65, 113, 81, 33, 50, 65, 33, + 66, 65, 33, 65, 98, 0, 11, 25, 10, 0, 10, 52, + 82, 34, 50, 65, 49, 81, 34, 81, 33, 97, 33, 81, + 49, 66, 50, 34, 84, 0, 8, 16, 33, 13, 0, 13, + 50, 35, 81, 34, 49, 65, 33, 65, 98, 65, 97, 81, + 97, 66, 82, 65, 98, 50, 98, 49, 113, 19, 114, 177, + 193, 165, 240, 240, 64, 29, 10, 0, 10, 51, 98, 34, + 50, 50, 49, 66, 34, 65, 49, 81, 49, 66, 49, 65, + 65, 50, 83, 17, 130, 129, 145, 102, 240, 128, 20, 10, + 0, 10, 18, 35, 33, 19, 33, 66, 130, 129, 130, 130, + 129, 145, 130, 0, 8, 64, 22, 10, 0, 10, 52, 81, + 65, 49, 66, 50, 148, 146, 49, 81, 49, 81, 49, 65, + 84, 0, 8, 16, 25, 9, 240, 240, 17, 114, 114, 113, + 129, 87, 66, 114, 113, 129, 114, 113, 49, 65, 49, 65, + 33, 98, 0, 7, 48, 32, 12, 0, 12, 34, 65, 65, + 17, 65, 49, 33, 50, 49, 33, 50, 82, 49, 97, 65, + 97, 50, 97, 49, 33, 65, 34, 33, 82, 34, 0, 9, + 48, 28, 11, 0, 11, 34, 65, 49, 17, 65, 33, 33, + 65, 33, 33, 65, 66, 49, 81, 65, 81, 65, 81, 49, + 97, 34, 114, 0, 9, 39, 15, 0, 15, 34, 65, 49, + 49, 17, 66, 33, 33, 33, 65, 49, 33, 33, 65, 49, + 65, 66, 49, 65, 65, 49, 81, 65, 49, 81, 65, 49, + 81, 50, 33, 115, 35, 0, 11, 96, 26, 12, 0, 12, + 36, 19, 49, 50, 33, 114, 146, 162, 162, 161, 113, 34, + 49, 49, 17, 17, 49, 51, 35, 0, 9, 64, 34, 11, + 0, 11, 34, 65, 49, 17, 65, 33, 33, 50, 33, 33, + 50, 66, 49, 81, 65, 81, 50, 81, 50, 81, 34, 116, + 146, 81, 49, 97, 34, 99, 240, 224, 23, 11, 0, 11, + 50, 49, 65, 35, 145, 145, 130, 129, 145, 81, 66, 49, + 65, 33, 33, 115, 0, 8, 112, 8, 13, 0, 17, 123, + 0, 19, 96, 9, 23, 0, 31, 95, 6, 0, 34, 96, + 13, 9, 240, 82, 33, 50, 33, 65, 33, 65, 0, 21, + 32, 10, 9, 240, 211, 33, 33, 35, 0, 21, 96, +}; + +//***************************************************************************** +// +// The font definition for the 24 point Cm italic font. +// +//***************************************************************************** +const tFont g_sFontCm24i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 20, + + // + // The height of the font. + // + 24, + + // + // The baseline of the font. + // + 18, + + // + // The offset to each character in the font. + // + { + 0, 4, 25, 43, 87, 118, 178, 229, + 240, 267, 294, 316, 338, 349, 357, 365, + 392, 427, 449, 483, 515, 546, 574, 609, + 638, 671, 705, 718, 734, 754, 765, 795, + 824, 881, 917, 953, 987, 1024, 1060, 1091, + 1125, 1163, 1185, 1211, 1251, 1278, 1339, 1386, + 1423, 1453, 1501, 1539, 1574, 1605, 1643, 1678, + 1734, 1774, 1805, 1837, 1863, 1883, 1909, 1920, + 1927, 1939, 1968, 1998, 2019, 2053, 2074, 2104, + 2134, 2169, 2194, 2222, 2257, 2281, 2326, 2359, + 2384, 2417, 2446, 2466, 2488, 2513, 2545, 2573, + 2612, 2638, 2672, 2695, 2703, 2712, 2725, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm24iData +}; diff --git a/grlib/fonts/fontcm26.c b/grlib/fonts/fontcm26.c new file mode 100644 index 0000000..42b1b07 --- /dev/null +++ b/grlib/fonts/fontcm26.c @@ -0,0 +1,349 @@ +//***************************************************************************** +// +// fontcm26.c - Font definition for the 26pt Cm font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 26 point +// Bold: no +// Italic: no +// Memory usage: 3112 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 26 point Cm font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm26Data[2912] = +{ + 5, 10, 0, 33, 96, 19, 4, 130, 34, 34, 34, 34, + 34, 34, 34, 34, 33, 49, 49, 49, 242, 34, 240, 240, + 20, 10, 240, 242, 50, 51, 35, 65, 65, 65, 65, 65, + 65, 49, 65, 49, 65, 0, 21, 96, 50, 19, 0, 8, + 17, 65, 209, 65, 193, 81, 193, 81, 193, 65, 209, 65, + 193, 81, 193, 65, 127, 2, 129, 65, 193, 81, 193, 65, + 143, 2, 97, 81, 193, 81, 193, 65, 209, 65, 193, 81, + 193, 81, 193, 65, 209, 65, 209, 65, 0, 6, 51, 12, + 240, 17, 164, 98, 17, 34, 65, 33, 65, 33, 49, 65, + 33, 49, 50, 33, 49, 50, 34, 33, 130, 17, 148, 165, + 113, 34, 113, 50, 34, 33, 65, 34, 33, 65, 33, 49, + 65, 33, 49, 49, 65, 33, 33, 101, 145, 177, 0, 8, + 48, 67, 20, 35, 145, 97, 49, 129, 97, 66, 67, 81, + 81, 20, 17, 97, 97, 65, 113, 97, 50, 113, 97, 49, + 129, 97, 33, 145, 97, 18, 161, 65, 33, 178, 34, 17, + 211, 34, 67, 177, 65, 49, 146, 49, 66, 129, 65, 81, + 113, 81, 81, 98, 81, 81, 97, 97, 81, 81, 113, 66, + 66, 129, 49, 81, 163, 0, 15, 64, 51, 18, 240, 131, + 225, 34, 193, 65, 193, 65, 193, 65, 193, 49, 209, 49, + 210, 17, 227, 100, 97, 129, 115, 113, 97, 33, 97, 97, + 50, 65, 97, 82, 49, 97, 98, 17, 113, 115, 65, 34, + 114, 65, 50, 66, 18, 33, 85, 67, 0, 16, 32, 12, + 5, 242, 51, 65, 65, 65, 49, 49, 0, 11, 16, 29, + 7, 177, 81, 97, 81, 97, 81, 97, 97, 81, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 113, 97, 97, 113, 97, + 113, 97, 113, 32, 28, 7, 113, 113, 97, 113, 97, 113, + 97, 98, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 81, 97, 97, 81, 97, 81, 81, 208, 22, 11, 241, 161, + 161, 98, 33, 34, 65, 17, 17, 115, 117, 66, 33, 34, + 97, 161, 161, 0, 21, 48, 39, 19, 0, 12, 113, 240, + 49, 240, 49, 240, 49, 240, 49, 240, 49, 240, 49, 240, + 49, 175, 2, 161, 240, 49, 240, 49, 240, 49, 240, 49, + 240, 49, 240, 49, 240, 49, 0, 13, 16, 12, 5, 0, + 11, 34, 51, 65, 65, 65, 49, 49, 224, 8, 8, 0, + 14, 6, 0, 12, 32, 8, 4, 0, 9, 2, 34, 240, + 240, 30, 11, 240, 65, 161, 145, 161, 161, 145, 161, 161, + 145, 161, 161, 145, 161, 161, 145, 161, 161, 145, 161, 161, + 161, 145, 161, 161, 145, 161, 160, 39, 11, 240, 240, 99, + 113, 50, 65, 81, 49, 97, 49, 113, 33, 113, 33, 113, + 33, 113, 33, 113, 33, 113, 33, 113, 33, 113, 33, 113, + 33, 113, 49, 81, 81, 50, 99, 0, 10, 32, 24, 9, + 240, 241, 114, 82, 17, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 87, 0, 8, 16, 31, 11, + 240, 240, 85, 81, 66, 49, 98, 33, 113, 34, 97, 34, + 97, 161, 145, 161, 145, 145, 145, 145, 145, 161, 81, 49, + 97, 41, 0, 9, 112, 31, 12, 240, 240, 149, 97, 66, + 65, 97, 66, 82, 50, 82, 161, 161, 116, 193, 193, 193, + 177, 50, 97, 35, 97, 33, 129, 50, 66, 101, 0, 11, + 33, 13, 0, 5, 97, 193, 178, 161, 17, 161, 17, 145, + 33, 129, 49, 129, 49, 113, 65, 98, 65, 97, 81, 81, + 97, 91, 145, 193, 193, 165, 0, 11, 96, 32, 11, 240, + 240, 66, 65, 71, 69, 97, 161, 161, 161, 20, 82, 65, + 65, 81, 177, 161, 161, 34, 97, 34, 97, 33, 97, 65, + 66, 84, 0, 10, 32, 39, 11, 240, 240, 116, 97, 65, + 65, 66, 49, 82, 33, 161, 36, 65, 17, 50, 50, 81, + 49, 113, 33, 113, 33, 113, 33, 113, 33, 113, 33, 113, + 49, 81, 81, 50, 99, 0, 10, 32, 26, 11, 240, 240, + 50, 153, 33, 113, 33, 97, 145, 161, 145, 145, 161, 161, + 145, 161, 161, 161, 161, 161, 161, 0, 10, 64, 37, 12, + 240, 240, 148, 113, 65, 81, 97, 65, 97, 65, 97, 66, + 81, 82, 49, 116, 132, 98, 51, 65, 82, 49, 114, 33, + 129, 33, 129, 34, 97, 66, 65, 116, 0, 11, 16, 37, + 11, 240, 240, 99, 98, 49, 81, 81, 49, 97, 49, 113, + 33, 113, 33, 113, 33, 113, 49, 82, 50, 49, 17, 68, + 33, 161, 145, 161, 50, 65, 66, 50, 84, 0, 10, 48, + 11, 4, 240, 240, 98, 34, 240, 242, 34, 240, 240, 15, + 4, 240, 240, 98, 34, 240, 242, 34, 49, 49, 49, 33, + 49, 176, 20, 4, 240, 210, 34, 225, 49, 49, 65, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 96, 12, 18, + 0, 24, 111, 1, 0, 7, 15, 1, 0, 25, 26, 10, + 0, 9, 18, 130, 240, 225, 145, 145, 145, 129, 145, 129, + 129, 129, 145, 145, 97, 33, 97, 34, 81, 69, 240, 128, + 28, 10, 211, 82, 49, 49, 97, 33, 97, 33, 97, 33, + 97, 145, 129, 129, 145, 129, 145, 145, 145, 145, 240, 210, + 130, 0, 9, 48, 63, 19, 240, 165, 194, 82, 145, 130, + 113, 177, 81, 68, 66, 65, 49, 65, 65, 49, 49, 98, + 34, 33, 33, 129, 49, 33, 33, 129, 49, 33, 33, 129, + 49, 33, 33, 129, 49, 33, 33, 129, 49, 33, 49, 98, + 49, 49, 49, 65, 17, 33, 65, 68, 51, 81, 240, 65, + 178, 98, 99, 151, 0, 17, 64, 40, 18, 240, 240, 209, + 240, 34, 240, 18, 241, 17, 225, 34, 209, 34, 209, 49, + 193, 66, 177, 66, 177, 82, 145, 98, 153, 145, 114, 113, + 130, 113, 145, 113, 146, 82, 146, 68, 117, 0, 16, 38, + 16, 0, 6, 11, 113, 115, 81, 145, 81, 146, 65, 146, + 65, 145, 81, 114, 106, 97, 130, 81, 145, 81, 161, 65, + 161, 65, 161, 65, 161, 65, 145, 81, 130, 59, 0, 14, + 80, 41, 17, 0, 7, 5, 65, 83, 66, 33, 66, 131, + 65, 162, 49, 178, 33, 209, 33, 209, 33, 240, 17, 240, + 17, 240, 17, 240, 17, 209, 49, 193, 50, 161, 82, 130, + 99, 81, 166, 0, 15, 80, 39, 17, 0, 6, 58, 145, + 114, 113, 145, 97, 161, 81, 161, 81, 177, 65, 177, 65, + 177, 65, 177, 65, 177, 65, 177, 65, 177, 65, 161, 81, + 161, 81, 145, 97, 114, 90, 0, 15, 96, 39, 17, 0, + 6, 62, 81, 146, 81, 161, 81, 161, 81, 240, 17, 97, + 145, 82, 152, 145, 82, 145, 97, 145, 97, 65, 65, 177, + 65, 177, 65, 177, 65, 161, 81, 146, 62, 0, 15, 32, + 34, 16, 0, 6, 14, 65, 146, 65, 161, 65, 161, 65, + 161, 65, 97, 129, 97, 129, 82, 136, 129, 82, 129, 97, + 129, 97, 129, 241, 241, 241, 214, 0, 15, 32, 40, 18, + 0, 7, 53, 179, 66, 17, 98, 130, 97, 146, 81, 177, + 65, 193, 65, 240, 33, 240, 33, 240, 33, 240, 33, 150, + 49, 177, 81, 177, 97, 161, 98, 145, 115, 83, 150, 0, + 16, 80, 40, 17, 0, 6, 53, 85, 65, 145, 97, 145, + 97, 145, 97, 145, 97, 145, 97, 145, 107, 97, 145, 97, + 145, 97, 145, 97, 145, 97, 145, 97, 145, 97, 145, 97, + 145, 69, 85, 0, 15, 16, 23, 7, 240, 101, 65, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 69, 0, 6, 48, 27, 12, 240, 240, 166, 145, 177, + 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 66, 81, + 66, 81, 65, 81, 101, 0, 11, 32, 42, 17, 0, 6, + 53, 100, 65, 145, 97, 129, 113, 113, 129, 97, 145, 81, + 161, 65, 177, 50, 177, 18, 18, 162, 65, 161, 82, 145, + 98, 129, 114, 113, 114, 113, 130, 97, 131, 53, 85, 0, + 15, 16, 29, 14, 240, 240, 198, 161, 209, 209, 209, 209, + 209, 209, 209, 209, 209, 209, 129, 65, 129, 65, 129, 65, + 113, 81, 98, 59, 0, 12, 80, 67, 21, 0, 7, 117, + 164, 67, 162, 97, 17, 145, 17, 97, 18, 129, 17, 97, + 18, 129, 17, 97, 33, 113, 33, 97, 34, 97, 33, 97, + 49, 81, 49, 97, 50, 65, 49, 97, 50, 65, 49, 97, + 65, 49, 65, 97, 66, 33, 65, 97, 66, 17, 81, 97, + 83, 81, 97, 83, 81, 97, 97, 97, 69, 65, 69, 0, + 18, 80, 52, 18, 0, 6, 101, 101, 67, 129, 97, 18, + 113, 97, 18, 113, 97, 34, 97, 97, 50, 81, 97, 50, + 81, 97, 66, 65, 97, 82, 49, 97, 82, 49, 97, 98, + 33, 97, 114, 17, 97, 114, 17, 97, 131, 97, 146, 97, + 146, 69, 129, 0, 16, 32, 39, 17, 0, 7, 5, 162, + 82, 113, 145, 81, 177, 65, 177, 49, 209, 33, 209, 33, + 209, 33, 209, 33, 209, 33, 209, 34, 193, 49, 177, 66, + 146, 82, 129, 114, 82, 165, 0, 15, 96, 31, 15, 240, + 240, 250, 113, 114, 81, 129, 81, 145, 65, 145, 65, 145, + 65, 129, 81, 114, 88, 113, 225, 225, 225, 225, 225, 225, + 197, 0, 14, 48, 51, 17, 0, 7, 21, 162, 66, 114, + 129, 97, 161, 65, 177, 65, 193, 33, 209, 33, 209, 33, + 209, 33, 209, 33, 209, 49, 193, 49, 177, 81, 67, 49, + 82, 33, 33, 33, 131, 50, 181, 240, 17, 49, 209, 33, + 209, 33, 212, 226, 240, 240, 112, 40, 19, 0, 7, 26, + 177, 114, 145, 130, 129, 145, 129, 145, 129, 145, 129, 114, + 152, 177, 83, 161, 99, 145, 114, 145, 114, 145, 114, 145, + 115, 129, 115, 49, 65, 130, 49, 37, 116, 0, 17, 34, + 13, 240, 240, 196, 114, 67, 65, 113, 49, 129, 49, 129, + 49, 209, 197, 166, 194, 194, 33, 145, 33, 145, 33, 145, + 34, 113, 49, 18, 66, 49, 37, 0, 12, 43, 17, 0, + 6, 63, 34, 81, 82, 33, 97, 97, 33, 97, 97, 33, + 97, 97, 33, 97, 97, 145, 240, 17, 240, 17, 240, 17, + 240, 17, 240, 17, 240, 17, 240, 17, 240, 17, 240, 17, + 215, 0, 15, 80, 40, 18, 0, 6, 101, 101, 65, 161, + 97, 161, 97, 161, 97, 161, 97, 161, 97, 161, 97, 161, + 97, 161, 97, 161, 97, 161, 97, 161, 97, 161, 97, 146, + 113, 129, 145, 82, 181, 0, 16, 96, 40, 19, 0, 7, + 21, 132, 66, 161, 98, 161, 114, 129, 130, 129, 145, 113, + 162, 97, 162, 97, 178, 65, 194, 65, 209, 49, 226, 33, + 226, 33, 243, 240, 19, 240, 33, 240, 49, 0, 17, 112, + 63, 26, 0, 9, 101, 70, 84, 66, 114, 129, 98, 129, + 129, 98, 130, 113, 114, 99, 97, 130, 81, 33, 97, 130, + 81, 34, 81, 146, 65, 34, 65, 162, 49, 65, 65, 162, + 49, 66, 49, 178, 33, 66, 33, 194, 17, 97, 33, 194, + 17, 98, 17, 211, 99, 226, 130, 226, 129, 240, 17, 129, + 0, 23, 112, 41, 19, 0, 7, 22, 85, 83, 114, 130, + 113, 162, 81, 194, 49, 210, 49, 226, 17, 240, 18, 240, + 50, 240, 19, 241, 34, 209, 66, 177, 98, 161, 98, 145, + 130, 114, 146, 69, 117, 0, 16, 112, 41, 19, 0, 7, + 22, 116, 66, 161, 114, 129, 145, 113, 162, 97, 178, 65, + 209, 49, 226, 33, 241, 17, 240, 33, 240, 49, 240, 49, + 240, 49, 240, 49, 240, 49, 240, 49, 240, 21, 0, 17, + 80, 33, 14, 240, 240, 204, 35, 113, 49, 130, 49, 114, + 65, 113, 194, 178, 193, 194, 178, 193, 194, 97, 66, 113, + 65, 129, 50, 129, 49, 115, 44, 0, 12, 64, 28, 5, + 83, 33, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 67, 112, 18, 10, 240, 240, 113, 49, 65, 49, 65, 65, + 65, 67, 35, 50, 50, 0, 22, 96, 28, 5, 83, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 35, 112, + 11, 8, 240, 193, 82, 17, 49, 65, 0, 21, 32, 7, + 4, 194, 34, 0, 11, 32, 12, 5, 240, 33, 49, 49, + 65, 67, 50, 0, 11, 64, 30, 13, 0, 14, 116, 129, + 65, 113, 81, 97, 81, 133, 98, 65, 97, 81, 81, 97, + 33, 33, 97, 33, 34, 51, 33, 52, 50, 0, 11, 96, + 33, 13, 240, 240, 147, 193, 193, 193, 193, 193, 193, 35, + 115, 50, 81, 97, 81, 113, 65, 113, 65, 113, 65, 113, + 65, 113, 65, 97, 82, 66, 116, 0, 12, 23, 10, 0, + 11, 84, 81, 65, 49, 81, 33, 97, 33, 145, 145, 145, + 161, 81, 65, 49, 99, 0, 9, 32, 35, 13, 240, 240, + 243, 193, 193, 193, 193, 193, 115, 33, 97, 51, 81, 97, + 65, 113, 65, 113, 65, 113, 65, 113, 65, 113, 81, 97, + 82, 51, 115, 35, 0, 11, 80, 23, 11, 0, 12, 100, + 82, 65, 49, 113, 33, 113, 41, 33, 161, 161, 177, 97, + 65, 65, 100, 0, 10, 16, 27, 8, 194, 81, 17, 65, + 33, 65, 33, 65, 113, 113, 113, 85, 81, 113, 113, 113, + 113, 113, 113, 113, 113, 85, 0, 7, 48, 36, 12, 0, + 12, 50, 35, 65, 34, 33, 50, 49, 97, 65, 98, 49, + 98, 49, 113, 33, 113, 19, 113, 177, 178, 182, 81, 98, + 33, 129, 33, 129, 49, 82, 86, 240, 208, 35, 13, 240, + 240, 147, 193, 193, 193, 193, 193, 193, 35, 115, 34, 98, + 65, 97, 81, 97, 81, 97, 81, 97, 81, 97, 81, 97, + 81, 97, 81, 69, 21, 0, 11, 80, 21, 7, 240, 114, + 82, 240, 240, 35, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 69, 0, 6, 48, 27, 7, 240, 146, 82, 240, 240, + 35, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 33, 49, 33, 33, 66, 240, 48, 35, 13, 240, 240, + 147, 193, 193, 193, 193, 193, 193, 68, 65, 65, 113, 49, + 129, 33, 145, 18, 146, 18, 129, 50, 113, 65, 113, 66, + 97, 82, 53, 36, 0, 11, 80, 23, 7, 240, 99, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 69, 0, 6, 48, 41, 20, 0, 22, 82, 35, + 52, 85, 34, 17, 50, 98, 66, 81, 97, 81, 97, 97, + 81, 97, 97, 81, 97, 97, 81, 97, 97, 81, 97, 97, + 81, 97, 97, 81, 97, 69, 21, 37, 0, 17, 96, 29, + 13, 0, 14, 98, 35, 85, 34, 98, 65, 97, 81, 97, + 81, 97, 81, 97, 81, 97, 81, 97, 81, 97, 81, 69, + 21, 0, 11, 80, 27, 11, 0, 12, 99, 98, 50, 65, + 81, 49, 113, 33, 113, 33, 113, 33, 113, 33, 113, 49, + 81, 66, 50, 99, 0, 10, 32, 34, 13, 0, 14, 98, + 21, 98, 66, 81, 97, 81, 113, 65, 113, 65, 113, 65, + 113, 65, 113, 65, 97, 82, 65, 97, 20, 113, 193, 193, + 193, 165, 240, 240, 64, 34, 13, 0, 15, 3, 130, 49, + 17, 81, 82, 65, 113, 65, 113, 65, 113, 65, 113, 65, + 113, 81, 82, 82, 49, 17, 115, 33, 193, 193, 193, 193, + 165, 240, 208, 22, 9, 0, 10, 34, 34, 35, 17, 17, + 66, 33, 65, 129, 129, 129, 129, 129, 129, 101, 0, 8, + 48, 25, 10, 0, 11, 68, 81, 65, 49, 81, 49, 163, + 133, 49, 82, 33, 97, 34, 81, 35, 49, 49, 20, 0, + 9, 32, 26, 10, 0, 6, 65, 145, 145, 130, 120, 65, + 145, 145, 145, 145, 145, 65, 65, 65, 65, 65, 66, 34, + 84, 0, 9, 16, 29, 13, 0, 14, 83, 51, 97, 81, + 97, 81, 97, 81, 97, 81, 97, 81, 97, 81, 97, 81, + 97, 81, 98, 50, 116, 19, 0, 11, 80, 25, 14, 0, + 15, 100, 68, 65, 98, 82, 81, 113, 65, 129, 65, 130, + 49, 145, 33, 162, 17, 178, 194, 0, 14, 112, 41, 18, + 0, 20, 36, 35, 52, 50, 65, 81, 82, 65, 81, 97, + 49, 17, 49, 114, 33, 17, 49, 129, 33, 17, 49, 129, + 17, 49, 17, 147, 49, 17, 162, 50, 177, 81, 177, 81, + 0, 16, 80, 27, 14, 0, 15, 100, 68, 66, 66, 113, + 65, 145, 33, 163, 194, 177, 18, 145, 49, 145, 65, 113, + 97, 68, 68, 0, 12, 64, 33, 13, 0, 14, 84, 67, + 50, 97, 81, 81, 97, 81, 113, 49, 129, 49, 130, 17, + 161, 17, 162, 193, 193, 177, 193, 129, 33, 145, 33, 162, + 240, 240, 96, 24, 11, 0, 12, 57, 34, 81, 49, 82, + 49, 66, 145, 145, 145, 145, 81, 50, 81, 49, 97, 41, + 0, 9, 112, 8, 14, 0, 21, 12, 0, 24, 96, 9, + 26, 0, 39, 15, 9, 0, 45, 96, 13, 9, 240, 225, + 49, 49, 49, 65, 49, 49, 49, 0, 23, 11, 10, 240, + 240, 19, 49, 33, 51, 0, 27, 112, +}; + +//***************************************************************************** +// +// The font definition for the 26 point Cm font. +// +//***************************************************************************** +const tFont g_sFontCm26 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 23, + + // + // The height of the font. + // + 27, + + // + // The baseline of the font. + // + 20, + + // + // The offset to each character in the font. + // + { + 0, 5, 24, 44, 94, 145, 212, 263, + 275, 304, 332, 354, 393, 405, 413, 421, + 451, 490, 514, 545, 576, 609, 641, 680, + 706, 743, 780, 791, 806, 826, 838, 864, + 892, 955, 995, 1033, 1074, 1113, 1152, 1186, + 1226, 1266, 1289, 1316, 1358, 1387, 1454, 1506, + 1545, 1576, 1627, 1667, 1701, 1744, 1784, 1824, + 1887, 1928, 1969, 2002, 2030, 2048, 2076, 2087, + 2094, 2106, 2136, 2169, 2192, 2227, 2250, 2277, + 2313, 2348, 2369, 2396, 2431, 2454, 2495, 2524, + 2551, 2585, 2619, 2641, 2666, 2692, 2721, 2746, + 2787, 2814, 2847, 2871, 2879, 2888, 2901, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm26Data +}; diff --git a/grlib/fonts/fontcm26b.c b/grlib/fonts/fontcm26b.c new file mode 100644 index 0000000..f8d0073 --- /dev/null +++ b/grlib/fonts/fontcm26b.c @@ -0,0 +1,362 @@ +//***************************************************************************** +// +// fontcm26b.c - Font definition for the 26pt Cm bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 26 point +// Bold: yes +// Italic: no +// Memory usage: 3264 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 26 point Cm bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm26bData[3064] = +{ + 5, 10, 0, 33, 96, 23, 6, 114, 52, 36, 36, 36, + 36, 50, 66, 66, 66, 66, 66, 66, 240, 18, 52, 36, + 50, 240, 240, 240, 25, 12, 210, 66, 52, 36, 36, 36, + 51, 51, 81, 81, 81, 81, 65, 81, 81, 81, 66, 66, + 65, 81, 0, 24, 64, 54, 21, 240, 241, 81, 225, 66, + 210, 66, 210, 65, 225, 81, 225, 66, 210, 66, 210, 66, + 210, 65, 127, 4, 130, 66, 210, 65, 225, 81, 225, 66, + 210, 66, 143, 4, 113, 66, 210, 66, 210, 66, 210, 65, + 225, 66, 210, 66, 210, 66, 209, 81, 0, 6, 80, 50, + 12, 81, 149, 98, 17, 18, 66, 33, 33, 50, 49, 34, + 34, 49, 19, 34, 49, 19, 35, 33, 19, 38, 119, 88, + 87, 118, 113, 19, 35, 33, 34, 35, 33, 34, 35, 33, + 34, 34, 49, 34, 50, 33, 18, 86, 145, 177, 0, 8, + 32, 68, 21, 51, 161, 83, 33, 130, 82, 51, 67, 83, + 65, 23, 83, 65, 82, 99, 65, 81, 115, 65, 66, 115, + 65, 50, 146, 65, 49, 163, 33, 50, 180, 50, 240, 65, + 67, 194, 50, 33, 162, 66, 49, 146, 51, 49, 130, 67, + 49, 114, 83, 49, 114, 83, 49, 98, 99, 49, 82, 130, + 49, 82, 131, 17, 97, 163, 0, 13, 80, 48, 19, 240, + 147, 242, 33, 226, 33, 211, 33, 211, 33, 211, 17, 227, + 17, 228, 85, 99, 113, 131, 97, 148, 66, 129, 19, 65, + 130, 20, 34, 115, 35, 33, 116, 37, 132, 52, 147, 67, + 81, 52, 37, 50, 84, 68, 0, 17, 16, 15, 6, 114, + 52, 36, 51, 81, 81, 65, 81, 66, 65, 0, 12, 64, + 30, 9, 82, 98, 98, 114, 98, 114, 99, 99, 98, 99, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 115, 99, 99, + 114, 130, 114, 130, 130, 32, 30, 9, 2, 130, 130, 114, + 130, 114, 115, 99, 114, 115, 99, 99, 99, 99, 99, 99, + 99, 99, 98, 99, 99, 98, 114, 98, 114, 98, 98, 112, + 29, 13, 67, 163, 113, 35, 33, 51, 18, 35, 51, 17, + 19, 101, 133, 99, 17, 19, 51, 19, 19, 49, 35, 33, + 115, 163, 0, 25, 16, 41, 20, 0, 11, 2, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 175, 3, 162, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 0, 13, 96, 15, 6, + 0, 12, 18, 52, 36, 51, 81, 81, 65, 81, 65, 240, + 16, 10, 9, 0, 13, 71, 39, 39, 0, 13, 96, 11, + 6, 0, 12, 18, 52, 36, 50, 240, 240, 240, 30, 12, + 145, 162, 161, 162, 162, 161, 162, 162, 161, 177, 162, 161, + 177, 162, 162, 161, 162, 162, 161, 162, 162, 161, 162, 162, + 161, 162, 162, 160, 39, 13, 240, 229, 114, 50, 82, 82, + 66, 82, 51, 83, 35, 83, 35, 83, 35, 83, 35, 83, + 35, 83, 35, 83, 35, 83, 35, 83, 35, 83, 50, 82, + 66, 82, 82, 50, 117, 0, 12, 24, 11, 240, 193, 131, + 86, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 89, 0, 9, 112, 32, 13, 240, 229, 98, + 51, 67, 67, 52, 52, 36, 52, 50, 68, 148, 147, 148, + 147, 147, 147, 147, 65, 82, 66, 66, 82, 57, 58, 58, + 0, 11, 96, 33, 13, 240, 229, 113, 51, 83, 51, 67, + 51, 67, 51, 67, 51, 162, 162, 132, 195, 179, 164, 50, + 68, 36, 52, 36, 52, 35, 67, 66, 51, 102, 0, 12, + 33, 13, 240, 240, 50, 178, 163, 163, 148, 129, 19, 129, + 19, 113, 35, 98, 35, 97, 51, 81, 67, 81, 67, 65, + 83, 75, 131, 163, 163, 120, 0, 11, 80, 34, 13, 240, + 193, 113, 66, 67, 72, 87, 101, 129, 193, 193, 21, 98, + 52, 163, 164, 50, 68, 35, 68, 35, 68, 35, 67, 65, + 83, 66, 51, 101, 0, 12, 16, 38, 13, 240, 240, 20, + 115, 34, 83, 35, 67, 51, 67, 51, 67, 148, 148, 19, + 85, 35, 52, 51, 52, 52, 36, 52, 36, 52, 36, 52, + 51, 52, 51, 51, 83, 35, 101, 0, 12, 27, 13, 240, + 194, 186, 58, 57, 65, 82, 66, 81, 82, 66, 162, 178, + 162, 178, 178, 163, 163, 163, 163, 163, 163, 0, 12, 32, + 38, 14, 240, 240, 37, 114, 66, 97, 98, 66, 98, 67, + 82, 68, 66, 70, 18, 103, 135, 105, 67, 38, 35, 69, + 35, 84, 35, 99, 35, 99, 36, 82, 67, 66, 118, 0, + 12, 112, 38, 13, 240, 229, 115, 19, 83, 51, 52, 51, + 52, 52, 36, 52, 36, 52, 36, 52, 36, 52, 51, 52, + 66, 37, 83, 20, 148, 147, 67, 51, 67, 50, 82, 50, + 117, 0, 12, 16, 16, 6, 0, 6, 18, 52, 36, 50, + 240, 210, 52, 36, 50, 240, 240, 240, 20, 6, 0, 6, + 18, 52, 36, 50, 240, 210, 52, 36, 51, 81, 81, 65, + 81, 65, 240, 16, 23, 6, 240, 240, 210, 52, 36, 50, + 162, 66, 66, 66, 66, 66, 66, 66, 52, 36, 36, 36, + 36, 50, 144, 12, 19, 0, 23, 111, 2, 0, 12, 31, + 2, 0, 24, 27, 11, 0, 10, 3, 116, 116, 131, 240, + 81, 161, 161, 161, 161, 145, 146, 130, 131, 131, 51, 35, + 51, 35, 66, 54, 240, 176, 28, 11, 213, 81, 66, 51, + 51, 35, 51, 35, 51, 130, 130, 145, 146, 145, 161, 161, + 161, 240, 240, 19, 116, 116, 131, 0, 10, 32, 64, 19, + 240, 150, 193, 98, 130, 145, 113, 177, 81, 68, 81, 65, + 50, 34, 65, 49, 51, 51, 34, 33, 35, 67, 49, 33, + 35, 67, 49, 33, 35, 67, 49, 33, 35, 67, 49, 33, + 35, 67, 49, 33, 35, 67, 49, 49, 35, 51, 49, 49, + 35, 36, 33, 66, 52, 20, 98, 240, 50, 131, 136, 0, + 17, 48, 41, 20, 240, 210, 240, 50, 240, 35, 240, 36, + 240, 20, 245, 241, 20, 225, 20, 210, 35, 209, 52, 193, + 52, 178, 67, 177, 84, 170, 146, 99, 145, 116, 129, 116, + 114, 131, 86, 72, 0, 17, 96, 41, 19, 240, 77, 131, + 100, 99, 115, 99, 116, 83, 116, 83, 116, 83, 116, 83, + 100, 99, 84, 122, 147, 100, 99, 116, 83, 116, 83, 132, + 67, 132, 67, 132, 67, 116, 83, 100, 78, 0, 17, 32, + 38, 18, 240, 150, 49, 99, 69, 83, 115, 67, 131, 52, + 146, 51, 162, 36, 162, 36, 228, 228, 228, 228, 228, 177, + 51, 177, 52, 146, 67, 145, 99, 113, 131, 81, 182, 0, + 16, 64, 42, 20, 240, 93, 148, 84, 116, 100, 100, 115, + 100, 131, 84, 131, 84, 132, 68, 132, 68, 132, 68, 132, + 68, 132, 68, 132, 68, 132, 68, 131, 84, 131, 84, 115, + 100, 115, 100, 84, 93, 0, 18, 48, 44, 17, 240, 46, + 84, 83, 84, 98, 84, 98, 84, 113, 84, 49, 49, 84, + 49, 49, 84, 49, 148, 34, 152, 148, 34, 148, 49, 148, + 49, 65, 68, 129, 68, 114, 68, 113, 84, 98, 84, 83, + 62, 0, 15, 32, 37, 16, 240, 29, 84, 82, 84, 98, + 68, 98, 68, 113, 68, 113, 68, 49, 49, 68, 49, 132, + 34, 136, 132, 34, 132, 49, 132, 49, 132, 196, 196, 196, + 196, 169, 0, 14, 112, 44, 21, 240, 199, 49, 132, 69, + 115, 131, 99, 147, 84, 162, 83, 178, 83, 178, 68, 193, + 68, 240, 36, 240, 36, 240, 36, 240, 36, 90, 51, 148, + 84, 132, 99, 132, 115, 116, 132, 69, 166, 50, 0, 18, + 112, 43, 20, 240, 88, 40, 68, 100, 100, 100, 100, 100, + 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 110, 100, + 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, + 100, 100, 100, 72, 40, 0, 17, 96, 24, 12, 202, 84, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 90, 0, 10, 96, 28, 15, 240, 58, + 148, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, + 180, 82, 68, 68, 52, 68, 52, 82, 52, 118, 0, 14, + 43, 20, 240, 88, 70, 68, 129, 116, 113, 132, 98, 132, + 82, 148, 66, 164, 50, 180, 34, 196, 20, 185, 181, 20, + 164, 52, 148, 52, 148, 68, 132, 68, 132, 84, 116, 100, + 100, 100, 72, 55, 0, 17, 96, 31, 15, 249, 132, 180, + 180, 180, 180, 180, 180, 180, 180, 180, 180, 97, 68, 97, + 68, 97, 68, 97, 68, 82, 68, 82, 68, 67, 45, 0, + 13, 48, 71, 24, 240, 150, 166, 68, 164, 100, 145, 19, + 97, 19, 129, 19, 97, 19, 129, 19, 97, 20, 97, 35, + 97, 35, 97, 35, 97, 35, 97, 35, 97, 51, 65, 51, + 97, 51, 65, 51, 97, 51, 65, 51, 97, 67, 33, 67, + 97, 67, 33, 67, 97, 69, 83, 97, 84, 83, 97, 84, + 83, 97, 83, 99, 97, 98, 99, 70, 50, 56, 0, 21, + 32, 52, 20, 240, 86, 102, 69, 129, 101, 129, 97, 20, + 113, 97, 21, 97, 97, 37, 81, 97, 52, 81, 97, 68, + 65, 97, 69, 49, 97, 85, 33, 97, 100, 33, 97, 116, + 17, 97, 118, 97, 133, 97, 148, 97, 163, 97, 163, 97, + 178, 70, 145, 0, 18, 42, 19, 240, 165, 195, 51, 132, + 84, 99, 115, 83, 147, 67, 147, 52, 148, 36, 148, 36, + 148, 36, 148, 36, 148, 36, 148, 36, 148, 51, 147, 68, + 116, 83, 115, 100, 84, 131, 51, 182, 0, 17, 80, 33, + 17, 240, 44, 116, 67, 100, 83, 84, 84, 68, 84, 68, + 84, 68, 84, 68, 84, 68, 83, 84, 67, 106, 116, 212, + 212, 212, 212, 212, 212, 184, 0, 16, 52, 19, 240, 165, + 195, 51, 132, 83, 115, 115, 84, 116, 67, 147, 52, 148, + 36, 148, 36, 148, 36, 148, 36, 148, 36, 148, 36, 148, + 51, 147, 67, 147, 68, 35, 35, 99, 17, 49, 18, 132, + 51, 183, 65, 210, 49, 214, 214, 213, 243, 240, 240, 192, + 44, 21, 240, 108, 180, 83, 148, 99, 132, 100, 116, 100, + 116, 100, 116, 100, 116, 99, 132, 83, 154, 180, 68, 148, + 83, 148, 84, 132, 84, 132, 84, 132, 84, 132, 84, 49, + 68, 100, 33, 41, 69, 0, 18, 96, 37, 14, 240, 37, + 33, 67, 52, 66, 98, 51, 98, 51, 113, 51, 113, 52, + 168, 121, 105, 104, 165, 164, 33, 131, 34, 115, 34, 115, + 35, 98, 52, 66, 66, 37, 0, 12, 112, 39, 18, 240, + 63, 1, 47, 1, 35, 52, 51, 34, 68, 66, 33, 84, + 81, 33, 84, 81, 33, 84, 81, 33, 84, 81, 132, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 186, 0, 16, 48, + 43, 19, 240, 72, 69, 68, 129, 100, 129, 100, 129, 100, + 129, 100, 129, 100, 129, 100, 129, 100, 129, 100, 129, 100, + 129, 100, 129, 100, 129, 100, 129, 100, 129, 115, 113, 132, + 97, 148, 65, 198, 0, 17, 64, 41, 20, 240, 88, 70, + 68, 130, 100, 129, 131, 129, 132, 98, 132, 97, 163, 97, + 164, 66, 164, 65, 196, 34, 196, 34, 196, 33, 230, 230, + 229, 240, 20, 240, 19, 240, 50, 240, 50, 0, 18, 96, + 63, 27, 240, 199, 40, 53, 67, 100, 113, 100, 84, 113, + 100, 84, 98, 115, 100, 81, 132, 69, 81, 132, 69, 66, + 147, 65, 19, 65, 164, 49, 20, 49, 164, 33, 36, 34, + 164, 33, 51, 33, 196, 17, 52, 17, 198, 54, 197, 84, + 228, 84, 228, 84, 227, 114, 240, 18, 114, 240, 18, 114, + 0, 24, 96, 41, 20, 240, 88, 39, 100, 82, 148, 81, + 180, 50, 180, 34, 212, 17, 230, 244, 240, 20, 240, 36, + 240, 21, 230, 225, 36, 194, 36, 193, 68, 162, 68, 146, + 100, 129, 116, 87, 56, 0, 17, 96, 43, 22, 240, 121, + 86, 84, 145, 133, 114, 148, 113, 165, 82, 180, 66, 197, + 50, 212, 34, 229, 18, 246, 240, 22, 240, 36, 240, 52, + 240, 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, 24, + 0, 20, 32, 36, 15, 253, 36, 84, 35, 84, 50, 100, + 50, 84, 65, 100, 65, 84, 164, 180, 164, 180, 164, 180, + 81, 68, 97, 68, 97, 52, 98, 52, 98, 36, 84, 45, + 0, 13, 48, 30, 6, 4, 34, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 68, 32, 25, 12, 225, + 81, 66, 66, 65, 81, 81, 81, 65, 81, 81, 81, 83, + 51, 52, 36, 36, 36, 50, 66, 0, 24, 48, 30, 6, + 4, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 36, 32, 13, 9, 193, 115, 82, 18, 50, 50, + 33, 81, 0, 23, 112, 9, 6, 114, 52, 36, 50, 0, + 16, 112, 15, 6, 129, 66, 65, 81, 65, 81, 83, 52, + 36, 50, 0, 12, 48, 28, 14, 0, 14, 38, 114, 51, + 99, 51, 82, 67, 179, 134, 99, 35, 83, 51, 67, 67, + 67, 67, 67, 52, 100, 36, 0, 12, 64, 36, 15, 245, + 195, 195, 195, 195, 195, 195, 195, 20, 116, 51, 83, 82, + 83, 83, 67, 83, 67, 83, 67, 83, 67, 83, 67, 83, + 67, 82, 84, 50, 98, 36, 0, 13, 96, 25, 11, 0, + 11, 53, 82, 35, 50, 51, 35, 51, 35, 131, 131, 131, + 131, 81, 51, 65, 66, 49, 100, 0, 10, 16, 37, 15, + 240, 101, 195, 195, 195, 195, 195, 195, 116, 19, 98, 52, + 82, 83, 67, 83, 67, 83, 67, 83, 67, 83, 67, 83, + 67, 83, 82, 83, 83, 52, 116, 21, 0, 13, 48, 25, + 13, 0, 13, 53, 114, 51, 66, 82, 51, 83, 35, 83, + 43, 35, 163, 163, 113, 51, 82, 66, 66, 101, 0, 12, + 28, 12, 240, 36, 99, 19, 67, 35, 67, 35, 67, 147, + 147, 120, 99, 147, 147, 147, 147, 147, 147, 147, 147, 147, + 119, 0, 11, 16, 36, 13, 0, 13, 37, 19, 50, 50, + 18, 35, 51, 67, 51, 67, 51, 67, 51, 82, 50, 102, + 98, 199, 105, 74, 34, 99, 34, 114, 34, 99, 50, 67, + 86, 240, 240, 16, 38, 17, 240, 37, 227, 227, 227, 227, + 227, 227, 227, 37, 115, 17, 51, 100, 67, 99, 83, 99, + 83, 99, 83, 99, 83, 99, 83, 99, 83, 99, 83, 99, + 83, 71, 23, 0, 15, 16, 22, 8, 162, 84, 68, 82, + 240, 213, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, + 54, 0, 7, 32, 30, 10, 227, 116, 100, 99, 240, 240, + 101, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, + 115, 35, 35, 35, 35, 35, 19, 68, 240, 160, 34, 15, + 245, 195, 195, 195, 195, 195, 195, 195, 53, 67, 66, 99, + 50, 115, 34, 131, 18, 150, 151, 131, 35, 115, 35, 115, + 51, 99, 51, 71, 21, 0, 13, 48, 24, 9, 149, 99, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 71, 0, 8, 16, 43, 24, 0, 24, + 5, 37, 52, 115, 17, 53, 35, 100, 68, 51, 99, 83, + 67, 99, 83, 67, 99, 83, 67, 99, 83, 67, 99, 83, + 67, 99, 83, 67, 99, 83, 67, 99, 83, 67, 71, 30, + 0, 21, 32, 32, 17, 0, 17, 5, 37, 85, 17, 51, + 100, 67, 99, 83, 99, 83, 99, 83, 99, 83, 99, 83, + 99, 83, 99, 83, 99, 83, 71, 23, 0, 15, 16, 28, + 13, 0, 13, 53, 114, 50, 82, 82, 51, 83, 35, 83, + 35, 83, 35, 83, 35, 83, 35, 83, 50, 82, 82, 50, + 117, 0, 12, 36, 15, 0, 15, 5, 20, 116, 51, 83, + 67, 83, 83, 67, 83, 67, 83, 67, 83, 67, 83, 67, + 83, 67, 67, 84, 50, 99, 20, 115, 195, 195, 195, 167, + 240, 240, 128, 37, 15, 0, 15, 52, 34, 98, 49, 18, + 83, 67, 67, 83, 67, 83, 67, 83, 67, 83, 67, 83, + 67, 83, 83, 67, 98, 52, 116, 19, 195, 195, 195, 195, + 167, 240, 240, 32, 23, 12, 0, 12, 5, 19, 54, 19, + 68, 19, 67, 34, 83, 147, 147, 147, 147, 147, 147, 119, + 0, 11, 16, 25, 10, 0, 10, 37, 65, 50, 50, 65, + 50, 65, 53, 102, 86, 115, 33, 82, 34, 66, 35, 49, + 54, 0, 9, 32, 27, 11, 240, 240, 113, 161, 146, 146, + 131, 105, 67, 131, 131, 131, 131, 131, 131, 49, 67, 49, + 67, 49, 67, 49, 100, 0, 10, 31, 17, 0, 17, 5, + 53, 99, 83, 99, 83, 99, 83, 99, 83, 99, 83, 99, + 83, 99, 83, 99, 83, 99, 83, 99, 68, 133, 21, 0, + 15, 16, 26, 14, 0, 14, 6, 36, 51, 81, 99, 65, + 99, 50, 99, 49, 131, 33, 131, 18, 148, 164, 163, 194, + 194, 0, 13, 16, 40, 19, 0, 19, 5, 21, 36, 51, + 51, 66, 83, 50, 65, 99, 50, 65, 99, 36, 34, 115, + 17, 18, 33, 131, 17, 18, 33, 132, 37, 147, 51, 163, + 51, 163, 51, 177, 81, 0, 17, 64, 27, 15, 0, 15, + 21, 37, 83, 49, 131, 34, 147, 17, 164, 195, 211, 180, + 162, 19, 145, 51, 113, 67, 69, 38, 0, 13, 48, 34, + 15, 0, 15, 6, 37, 67, 81, 99, 65, 131, 49, 131, + 34, 131, 33, 163, 17, 165, 179, 195, 194, 225, 210, 131, + 33, 147, 33, 147, 17, 179, 240, 240, 176, 27, 12, 0, + 12, 10, 35, 52, 34, 67, 50, 51, 65, 52, 131, 131, + 132, 49, 67, 65, 51, 66, 36, 51, 42, 0, 10, 96, + 8, 15, 0, 22, 77, 0, 26, 64, 9, 28, 0, 42, + 15, 11, 0, 49, 32, 14, 10, 178, 34, 67, 19, 40, + 35, 19, 50, 34, 0, 26, 96, 9, 11, 210, 65, 56, + 34, 21, 0, 32, +}; + +//***************************************************************************** +// +// The font definition for the 26 point Cm bold font. +// +//***************************************************************************** +const tFont g_sFontCm26b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 25, + + // + // The height of the font. + // + 27, + + // + // The baseline of the font. + // + 20, + + // + // The offset to each character in the font. + // + { + 0, 5, 28, 53, 107, 157, 225, 273, + 288, 318, 348, 377, 418, 433, 443, 454, + 484, 523, 547, 579, 612, 645, 679, 717, + 744, 782, 820, 836, 856, 879, 891, 918, + 946, 1010, 1051, 1092, 1130, 1172, 1216, 1253, + 1297, 1340, 1364, 1392, 1435, 1466, 1537, 1589, + 1631, 1664, 1716, 1760, 1797, 1836, 1879, 1920, + 1983, 2024, 2067, 2103, 2133, 2158, 2188, 2201, + 2210, 2225, 2253, 2289, 2314, 2351, 2376, 2404, + 2440, 2478, 2500, 2530, 2564, 2588, 2631, 2663, + 2691, 2727, 2764, 2787, 2812, 2839, 2870, 2896, + 2936, 2963, 2997, 3024, 3032, 3041, 3055, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm26bData +}; diff --git a/grlib/fonts/fontcm26i.c b/grlib/fonts/fontcm26i.c new file mode 100644 index 0000000..45fc089 --- /dev/null +++ b/grlib/fonts/fontcm26i.c @@ -0,0 +1,358 @@ +//***************************************************************************** +// +// fontcm26i.c - Font definition for the 26pt Cm italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 26 point +// Bold: no +// Italic: yes +// Memory usage: 3220 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 26 point Cm italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm26iData[3017] = +{ + 5, 10, 0, 32, 64, 23, 9, 82, 99, 99, 98, 114, + 114, 113, 114, 114, 113, 129, 129, 129, 113, 129, 240, 147, + 99, 0, 8, 80, 19, 11, 240, 131, 35, 51, 35, 81, + 65, 65, 65, 81, 65, 65, 65, 65, 65, 0, 24, 51, + 20, 0, 6, 49, 81, 209, 65, 209, 81, 209, 65, 209, + 81, 209, 65, 209, 66, 209, 65, 127, 2, 145, 65, 209, + 65, 225, 65, 209, 66, 143, 2, 113, 65, 225, 65, 209, + 65, 209, 81, 209, 65, 209, 81, 209, 65, 209, 81, 0, + 6, 80, 40, 18, 0, 5, 116, 194, 50, 177, 81, 162, + 66, 161, 82, 146, 240, 18, 240, 17, 231, 210, 240, 17, + 240, 33, 240, 18, 212, 113, 81, 35, 81, 81, 34, 18, + 50, 84, 67, 0, 16, 80, 65, 21, 83, 146, 98, 34, + 83, 98, 49, 23, 114, 49, 82, 115, 49, 67, 114, 65, + 66, 130, 49, 66, 146, 49, 50, 162, 33, 50, 193, 33, + 34, 226, 34, 65, 210, 65, 18, 178, 49, 49, 162, 50, + 49, 146, 66, 49, 130, 66, 65, 114, 82, 65, 98, 98, + 49, 113, 114, 49, 97, 130, 33, 98, 147, 0, 14, 53, + 19, 99, 241, 49, 209, 81, 66, 82, 81, 65, 98, 66, + 65, 97, 82, 49, 98, 145, 114, 19, 66, 115, 33, 49, + 18, 98, 49, 34, 33, 82, 19, 50, 33, 82, 114, 33, + 66, 193, 66, 177, 82, 177, 82, 161, 114, 130, 130, 97, + 182, 0, 17, 112, 12, 6, 211, 51, 81, 65, 81, 65, + 65, 0, 13, 48, 29, 12, 145, 161, 161, 161, 161, 162, + 161, 162, 146, 162, 162, 146, 162, 162, 147, 146, 162, 162, + 162, 162, 162, 162, 177, 178, 177, 193, 128, 29, 12, 240, + 65, 178, 177, 178, 162, 162, 162, 162, 162, 162, 162, 146, + 162, 162, 146, 162, 162, 146, 162, 146, 161, 161, 161, 161, + 161, 176, 23, 12, 97, 162, 161, 49, 50, 33, 34, 81, + 19, 130, 131, 17, 82, 33, 34, 113, 162, 161, 0, 23, + 64, 31, 17, 0, 11, 97, 241, 240, 17, 240, 17, 240, + 17, 241, 240, 17, 159, 145, 240, 17, 241, 240, 17, 240, + 17, 240, 17, 241, 240, 17, 0, 12, 13, 6, 0, 12, + 115, 51, 81, 65, 81, 65, 65, 240, 32, 8, 8, 0, + 13, 6, 0, 12, 32, 9, 5, 0, 10, 83, 35, 240, + 240, 112, 37, 17, 225, 242, 241, 241, 240, 17, 241, 240, + 17, 241, 242, 241, 241, 240, 17, 241, 240, 17, 241, 240, + 17, 241, 242, 241, 241, 240, 17, 241, 240, 17, 241, 242, + 241, 240, 16, 39, 13, 240, 240, 35, 130, 34, 98, 66, + 81, 82, 66, 82, 66, 82, 50, 98, 50, 83, 50, 82, + 51, 82, 51, 82, 50, 82, 66, 82, 66, 82, 66, 66, + 98, 34, 132, 0, 12, 32, 24, 11, 240, 241, 145, 131, + 98, 18, 145, 161, 146, 146, 145, 161, 146, 146, 145, 161, + 146, 146, 103, 0, 10, 16, 39, 14, 240, 240, 68, 145, + 50, 113, 82, 81, 98, 81, 33, 50, 65, 49, 50, 65, + 34, 35, 65, 33, 50, 83, 50, 178, 162, 178, 177, 193, + 113, 65, 113, 74, 65, 68, 0, 12, 112, 36, 15, 240, + 240, 101, 145, 66, 113, 98, 81, 114, 81, 33, 66, 81, + 33, 65, 99, 66, 193, 164, 225, 226, 210, 82, 98, 82, + 83, 81, 98, 113, 66, 148, 0, 14, 32, 35, 13, 240, + 240, 82, 178, 177, 178, 178, 177, 178, 177, 178, 177, 177, + 193, 33, 129, 49, 113, 50, 97, 66, 70, 17, 81, 84, + 146, 178, 177, 193, 178, 240, 240, 32, 32, 14, 240, 240, + 34, 66, 103, 117, 129, 209, 209, 209, 19, 146, 34, 113, + 82, 194, 194, 194, 66, 83, 66, 82, 81, 82, 97, 66, + 132, 0, 13, 48, 38, 13, 240, 240, 51, 130, 49, 98, + 50, 82, 66, 66, 178, 163, 19, 98, 17, 34, 83, 65, + 67, 81, 67, 81, 66, 82, 66, 82, 66, 82, 66, 66, + 98, 34, 132, 0, 12, 32, 31, 14, 240, 241, 34, 65, + 69, 49, 82, 33, 34, 66, 67, 81, 97, 81, 113, 193, + 209, 194, 193, 194, 193, 194, 194, 194, 178, 194, 0, 13, + 48, 37, 15, 240, 240, 101, 146, 50, 114, 82, 82, 98, + 82, 98, 83, 66, 100, 33, 164, 180, 146, 35, 113, 83, + 82, 98, 66, 114, 66, 113, 82, 98, 98, 66, 133, 0, + 14, 16, 38, 14, 240, 240, 83, 146, 49, 114, 66, 82, + 82, 82, 82, 67, 82, 66, 98, 66, 83, 66, 82, 82, + 67, 98, 33, 18, 115, 18, 194, 178, 98, 50, 97, 66, + 132, 0, 13, 48, 13, 7, 0, 7, 50, 67, 0, 6, + 51, 66, 0, 6, 96, 17, 8, 0, 8, 51, 83, 0, + 7, 50, 98, 113, 113, 97, 113, 97, 240, 128, 23, 9, + 0, 8, 51, 99, 240, 145, 129, 113, 129, 129, 114, 114, + 114, 98, 114, 114, 99, 99, 98, 240, 16, 11, 18, 0, + 22, 95, 0, 9, 47, 0, 22, 112, 32, 11, 0, 10, + 51, 130, 240, 242, 129, 33, 97, 49, 146, 130, 114, 130, + 50, 50, 66, 34, 97, 33, 97, 49, 97, 49, 81, 66, + 49, 100, 240, 32, 32, 11, 68, 97, 50, 65, 81, 49, + 97, 33, 113, 33, 98, 34, 81, 50, 50, 130, 130, 130, + 130, 145, 49, 97, 33, 130, 240, 242, 131, 0, 10, 80, + 61, 18, 240, 240, 214, 163, 66, 130, 20, 49, 97, 34, + 49, 49, 65, 34, 65, 49, 65, 18, 97, 33, 49, 34, + 97, 33, 49, 18, 98, 33, 33, 34, 98, 33, 33, 34, + 97, 33, 49, 34, 97, 33, 49, 34, 82, 33, 49, 50, + 36, 17, 81, 51, 51, 81, 240, 50, 99, 135, 0, 16, + 96, 38, 17, 240, 209, 240, 17, 242, 227, 209, 33, 209, + 34, 177, 50, 177, 50, 161, 66, 161, 66, 145, 82, 152, + 129, 98, 113, 114, 113, 114, 97, 130, 97, 130, 68, 86, + 0, 15, 16, 38, 18, 240, 240, 171, 146, 98, 130, 98, + 129, 114, 114, 114, 114, 98, 129, 98, 151, 162, 98, 130, + 114, 113, 130, 113, 130, 98, 130, 98, 114, 113, 130, 98, + 99, 91, 0, 16, 80, 39, 18, 240, 240, 228, 49, 130, + 66, 17, 98, 115, 82, 145, 82, 161, 81, 177, 66, 240, + 18, 242, 240, 18, 240, 18, 240, 18, 161, 82, 161, 97, + 145, 114, 113, 146, 66, 181, 0, 17, 39, 20, 240, 240, + 235, 178, 98, 162, 114, 146, 130, 130, 130, 114, 146, 114, + 146, 114, 146, 113, 162, 98, 146, 114, 146, 114, 131, 113, + 146, 114, 130, 130, 114, 146, 83, 123, 0, 18, 80, 39, + 19, 240, 240, 205, 130, 113, 145, 129, 130, 129, 130, 129, + 130, 65, 193, 66, 183, 194, 65, 194, 65, 178, 81, 49, + 114, 145, 114, 129, 130, 129, 114, 130, 114, 114, 109, 0, + 17, 48, 36, 18, 240, 240, 172, 130, 98, 129, 129, 114, + 129, 114, 129, 114, 65, 177, 81, 162, 65, 183, 178, 65, + 162, 81, 162, 240, 18, 240, 18, 242, 240, 18, 231, 0, + 17, 16, 39, 18, 240, 240, 229, 178, 81, 17, 98, 130, + 82, 146, 66, 161, 82, 161, 66, 177, 66, 243, 242, 240, + 18, 118, 50, 162, 66, 146, 82, 146, 98, 115, 114, 81, + 17, 150, 0, 16, 112, 39, 22, 0, 6, 7, 39, 130, + 114, 178, 114, 178, 114, 177, 130, 162, 114, 178, 114, 187, + 162, 115, 162, 114, 178, 114, 177, 130, 162, 114, 178, 114, + 178, 114, 178, 114, 135, 39, 0, 20, 23, 13, 240, 247, + 130, 178, 178, 178, 162, 178, 178, 177, 178, 178, 178, 162, + 178, 178, 178, 135, 0, 12, 16, 27, 15, 240, 240, 103, + 178, 209, 210, 210, 210, 194, 210, 210, 210, 194, 210, 210, + 114, 50, 130, 50, 129, 50, 164, 0, 14, 48, 41, 21, + 0, 5, 102, 84, 130, 114, 161, 129, 162, 98, 178, 81, + 210, 65, 225, 65, 226, 35, 226, 17, 18, 227, 50, 210, + 66, 194, 82, 194, 98, 178, 98, 162, 130, 146, 130, 118, + 70, 0, 19, 28, 15, 240, 240, 71, 162, 209, 210, 210, + 210, 209, 210, 210, 210, 209, 210, 210, 113, 82, 113, 66, + 113, 82, 83, 60, 0, 13, 64, 67, 25, 0, 6, 100, + 165, 131, 129, 17, 161, 18, 131, 161, 18, 113, 18, 161, + 18, 113, 18, 161, 18, 97, 33, 161, 34, 81, 34, 161, + 34, 81, 34, 161, 34, 65, 50, 161, 49, 65, 49, 161, + 65, 49, 50, 161, 65, 33, 66, 161, 66, 17, 65, 177, + 67, 81, 161, 83, 66, 161, 82, 82, 133, 49, 70, 0, + 22, 80, 52, 21, 0, 5, 100, 101, 131, 113, 145, 18, + 97, 161, 18, 97, 161, 34, 81, 161, 34, 81, 145, 50, + 65, 161, 66, 49, 161, 66, 49, 161, 66, 49, 145, 98, + 17, 161, 98, 17, 161, 98, 17, 145, 131, 145, 130, 161, + 130, 133, 113, 0, 19, 48, 38, 18, 240, 240, 229, 178, + 66, 130, 114, 98, 146, 66, 162, 66, 162, 50, 178, 50, + 178, 34, 194, 34, 178, 50, 178, 50, 162, 66, 162, 66, + 146, 98, 114, 130, 66, 181, 0, 17, 37, 18, 240, 240, + 170, 162, 82, 130, 114, 114, 114, 114, 114, 113, 115, 98, + 114, 114, 83, 136, 161, 240, 18, 240, 18, 240, 18, 240, + 17, 240, 18, 240, 18, 230, 0, 17, 32, 51, 18, 240, + 240, 213, 179, 66, 130, 114, 98, 146, 66, 162, 66, 162, + 50, 178, 50, 178, 35, 178, 34, 178, 50, 178, 50, 162, + 66, 161, 82, 51, 49, 114, 17, 33, 33, 147, 35, 181, + 240, 33, 65, 193, 65, 194, 33, 213, 227, 240, 240, 208, + 41, 18, 240, 240, 170, 162, 82, 145, 114, 114, 114, 114, + 114, 114, 113, 129, 114, 114, 82, 151, 178, 66, 161, 98, + 130, 98, 130, 98, 130, 83, 114, 99, 33, 66, 99, 33, + 38, 84, 0, 16, 16, 36, 16, 240, 240, 148, 162, 65, + 17, 98, 98, 97, 114, 82, 113, 98, 113, 99, 229, 198, + 227, 226, 81, 130, 81, 130, 81, 129, 82, 114, 81, 17, + 82, 97, 37, 0, 15, 42, 18, 240, 240, 142, 65, 82, + 66, 49, 98, 81, 49, 82, 97, 49, 82, 81, 49, 98, + 240, 18, 242, 240, 18, 240, 18, 240, 17, 240, 18, 240, + 18, 240, 18, 240, 17, 240, 18, 216, 0, 16, 112, 40, + 18, 240, 240, 118, 69, 82, 129, 114, 129, 98, 129, 114, + 129, 114, 129, 114, 129, 98, 129, 114, 129, 114, 129, 98, + 129, 114, 129, 114, 129, 114, 113, 130, 97, 162, 65, 197, + 0, 17, 16, 40, 19, 240, 240, 134, 101, 66, 146, 98, + 145, 114, 129, 130, 113, 161, 113, 162, 81, 178, 65, 194, + 65, 194, 49, 210, 49, 210, 33, 226, 17, 242, 17, 243, + 240, 33, 240, 49, 0, 18, 48, 62, 25, 0, 6, 38, + 54, 53, 66, 114, 113, 98, 114, 97, 114, 99, 97, 114, + 99, 81, 130, 81, 18, 81, 130, 65, 34, 65, 146, 65, + 34, 49, 162, 49, 50, 49, 162, 49, 50, 33, 178, 33, + 66, 33, 178, 33, 66, 17, 194, 17, 82, 17, 195, 99, + 211, 98, 241, 114, 241, 113, 0, 23, 64, 43, 22, 0, + 6, 22, 54, 146, 98, 194, 97, 226, 65, 242, 49, 240, + 18, 33, 240, 51, 240, 66, 240, 98, 240, 52, 240, 49, + 18, 240, 33, 50, 241, 66, 225, 83, 193, 114, 177, 130, + 133, 101, 0, 20, 38, 19, 240, 240, 134, 101, 66, 145, + 115, 113, 146, 113, 146, 97, 163, 65, 194, 49, 210, 33, + 243, 240, 18, 240, 34, 240, 34, 240, 18, 240, 34, 240, + 34, 240, 34, 231, 0, 18, 37, 18, 240, 240, 187, 99, + 98, 113, 114, 129, 98, 129, 98, 145, 82, 240, 17, 240, + 18, 242, 242, 242, 81, 146, 97, 130, 113, 129, 113, 130, + 113, 114, 99, 107, 0, 16, 80, 29, 11, 99, 129, 145, + 161, 161, 161, 145, 161, 161, 161, 145, 161, 161, 161, 145, + 161, 161, 161, 145, 161, 161, 161, 145, 161, 163, 240, 64, + 19, 10, 240, 193, 50, 49, 65, 49, 65, 49, 81, 49, + 83, 19, 51, 19, 0, 21, 80, 29, 11, 99, 161, 145, + 161, 161, 161, 145, 161, 161, 161, 145, 161, 161, 161, 145, + 161, 161, 161, 145, 161, 161, 161, 145, 161, 131, 240, 64, + 11, 8, 240, 65, 97, 17, 50, 49, 0, 21, 32, 6, + 5, 163, 35, 0, 14, 12, 6, 241, 65, 65, 65, 81, + 83, 51, 0, 13, 16, 32, 13, 0, 13, 67, 33, 98, + 35, 82, 66, 66, 81, 82, 66, 67, 66, 66, 81, 82, + 81, 33, 34, 66, 33, 49, 51, 17, 83, 35, 0, 11, + 96, 33, 11, 240, 147, 146, 146, 145, 146, 146, 146, 18, + 99, 33, 67, 50, 50, 66, 50, 66, 34, 82, 34, 67, + 34, 66, 50, 50, 81, 50, 99, 0, 10, 48, 23, 11, + 0, 11, 68, 98, 34, 66, 50, 50, 131, 130, 146, 146, + 97, 34, 82, 50, 50, 84, 0, 10, 32, 38, 14, 240, + 240, 100, 193, 209, 194, 193, 209, 131, 33, 114, 35, 98, + 65, 98, 81, 98, 66, 83, 66, 82, 81, 98, 81, 33, + 50, 66, 33, 65, 51, 17, 99, 35, 0, 12, 96, 23, + 11, 0, 11, 68, 98, 49, 50, 81, 50, 65, 55, 66, + 146, 146, 146, 97, 50, 50, 84, 0, 10, 32, 32, 14, + 240, 240, 100, 161, 18, 146, 193, 209, 194, 166, 161, 209, + 209, 194, 194, 193, 209, 209, 194, 194, 193, 209, 146, 18, + 145, 33, 178, 240, 240, 144, 36, 13, 0, 13, 83, 18, + 98, 35, 82, 66, 66, 81, 82, 66, 66, 82, 66, 81, + 82, 81, 82, 66, 97, 51, 115, 17, 178, 178, 82, 65, + 97, 66, 101, 240, 240, 64, 37, 14, 240, 243, 194, 194, + 193, 209, 194, 194, 20, 115, 50, 98, 66, 82, 82, 82, + 82, 82, 66, 97, 82, 82, 67, 33, 34, 66, 33, 49, + 82, 18, 49, 99, 0, 12, 96, 27, 9, 240, 130, 99, + 240, 240, 163, 81, 34, 49, 50, 49, 35, 98, 99, 98, + 99, 33, 50, 49, 50, 33, 83, 0, 8, 48, 32, 13, + 240, 240, 82, 163, 0, 7, 67, 145, 34, 113, 50, 97, + 66, 97, 51, 162, 178, 178, 162, 178, 178, 163, 162, 178, + 98, 34, 116, 240, 240, 80, 37, 13, 240, 211, 193, 178, + 178, 177, 193, 178, 67, 66, 34, 33, 65, 33, 50, 50, + 17, 147, 161, 34, 129, 50, 98, 50, 98, 50, 33, 49, + 66, 33, 49, 83, 0, 11, 112, 26, 8, 240, 52, 97, + 113, 98, 98, 97, 98, 98, 98, 82, 98, 98, 98, 82, + 33, 50, 33, 50, 17, 83, 0, 7, 64, 47, 22, 0, + 22, 34, 51, 52, 97, 20, 34, 17, 50, 65, 35, 66, + 66, 65, 34, 66, 82, 113, 82, 82, 98, 82, 66, 114, + 81, 82, 114, 66, 67, 33, 65, 82, 66, 33, 66, 81, + 82, 18, 66, 81, 99, 0, 19, 96, 34, 14, 0, 14, + 18, 51, 81, 33, 17, 34, 65, 34, 50, 98, 66, 98, + 66, 98, 66, 97, 67, 82, 66, 33, 50, 66, 17, 65, + 84, 65, 83, 0, 12, 96, 27, 12, 0, 12, 68, 114, + 34, 82, 66, 50, 82, 50, 82, 34, 98, 34, 82, 50, + 82, 50, 66, 82, 34, 116, 0, 11, 32, 37, 15, 0, + 15, 51, 35, 113, 19, 49, 81, 34, 66, 65, 33, 82, + 113, 82, 98, 82, 98, 66, 113, 82, 113, 66, 115, 34, + 130, 19, 145, 225, 210, 210, 181, 240, 240, 160, 34, 12, + 0, 12, 67, 33, 82, 33, 17, 66, 66, 50, 81, 66, + 66, 51, 66, 50, 81, 66, 81, 66, 66, 81, 51, 99, + 17, 177, 162, 162, 161, 149, 240, 208, 25, 12, 0, 12, + 19, 35, 65, 17, 17, 34, 33, 34, 50, 33, 33, 162, + 162, 161, 177, 162, 162, 161, 0, 11, 96, 23, 11, 0, + 11, 68, 97, 65, 65, 51, 66, 148, 148, 146, 50, 66, + 50, 66, 49, 66, 84, 0, 10, 48, 25, 10, 240, 240, + 81, 145, 130, 130, 129, 88, 82, 130, 129, 130, 130, 130, + 114, 130, 49, 66, 33, 99, 0, 9, 48, 35, 15, 0, + 15, 35, 82, 66, 18, 66, 65, 34, 65, 65, 35, 50, + 114, 66, 114, 65, 114, 81, 114, 66, 33, 66, 66, 17, + 82, 51, 17, 100, 34, 0, 13, 80, 31, 12, 0, 12, + 35, 50, 50, 18, 34, 49, 34, 49, 33, 35, 49, 82, + 65, 82, 49, 82, 65, 82, 65, 82, 49, 99, 33, 116, + 0, 11, 16, 43, 17, 0, 17, 35, 65, 50, 49, 34, + 50, 34, 49, 34, 34, 65, 33, 35, 34, 65, 82, 50, + 65, 82, 35, 49, 82, 50, 65, 82, 50, 65, 82, 50, + 49, 99, 17, 17, 49, 131, 20, 0, 15, 64, 32, 14, + 0, 14, 51, 35, 81, 49, 17, 33, 49, 66, 34, 49, + 65, 194, 194, 193, 209, 65, 50, 34, 50, 49, 33, 17, + 49, 83, 35, 0, 12, 112, 40, 14, 0, 14, 35, 82, + 50, 18, 66, 49, 34, 65, 49, 35, 50, 98, 66, 98, + 66, 82, 81, 98, 66, 98, 66, 98, 50, 132, 17, 194, + 98, 65, 114, 50, 113, 50, 147, 240, 240, 112, 23, 12, + 0, 12, 51, 34, 71, 81, 65, 161, 161, 161, 161, 161, + 81, 65, 81, 72, 65, 51, 0, 11, 16, 8, 13, 0, + 19, 75, 0, 21, 48, 9, 25, 0, 37, 79, 8, 0, + 40, 112, 14, 10, 240, 114, 34, 65, 49, 65, 49, 65, + 49, 0, 25, 80, 13, 10, 240, 114, 49, 49, 18, 17, + 49, 50, 0, 26, 96, +}; + +//***************************************************************************** +// +// The font definition for the 26 point Cm italic font. +// +//***************************************************************************** +const tFont g_sFontCm26i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 22, + + // + // The height of the font. + // + 26, + + // + // The baseline of the font. + // + 19, + + // + // The offset to each character in the font. + // + { + 0, 5, 28, 47, 98, 138, 203, 256, + 268, 297, 326, 349, 380, 393, 401, 410, + 447, 486, 510, 549, 585, 620, 652, 690, + 721, 758, 796, 809, 826, 849, 860, 892, + 924, 985, 1023, 1061, 1100, 1139, 1178, 1214, + 1253, 1292, 1315, 1342, 1383, 1411, 1478, 1530, + 1568, 1605, 1656, 1697, 1733, 1775, 1815, 1855, + 1917, 1960, 1998, 2035, 2064, 2083, 2112, 2123, + 2129, 2141, 2173, 2206, 2229, 2267, 2290, 2322, + 2358, 2395, 2422, 2454, 2491, 2517, 2564, 2598, + 2625, 2662, 2696, 2721, 2744, 2769, 2804, 2835, + 2878, 2910, 2950, 2973, 2981, 2990, 3004, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm26iData +}; diff --git a/grlib/fonts/fontcm28.c b/grlib/fonts/fontcm28.c new file mode 100644 index 0000000..a0ee664 --- /dev/null +++ b/grlib/fonts/fontcm28.c @@ -0,0 +1,370 @@ +//***************************************************************************** +// +// fontcm28.c - Font definition for the 28pt Cm font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 28 point +// Bold: no +// Italic: no +// Memory usage: 3360 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 28 point Cm font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm28Data[3158] = +{ + 5, 11, 0, 39, 112, 21, 4, 130, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 33, 49, 49, 49, 240, 66, 34, + 240, 240, 21, 10, 240, 242, 50, 51, 35, 65, 65, 65, + 65, 65, 65, 49, 65, 65, 65, 49, 65, 0, 23, 55, + 21, 0, 9, 1, 81, 225, 81, 209, 97, 209, 81, 225, + 81, 225, 81, 209, 81, 225, 81, 225, 81, 127, 4, 129, + 81, 225, 81, 225, 81, 225, 81, 143, 4, 113, 81, 225, + 81, 225, 81, 209, 81, 225, 81, 225, 81, 209, 97, 209, + 81, 225, 81, 0, 6, 80, 55, 12, 240, 33, 149, 97, + 33, 33, 65, 49, 49, 33, 65, 49, 33, 65, 34, 33, + 65, 34, 34, 49, 98, 49, 115, 17, 134, 133, 129, 18, + 129, 34, 113, 49, 34, 49, 49, 34, 49, 49, 33, 65, + 49, 33, 65, 33, 66, 33, 18, 101, 145, 177, 0, 8, + 32, 73, 21, 35, 161, 98, 34, 129, 97, 66, 83, 81, + 81, 21, 17, 97, 97, 81, 113, 97, 66, 113, 97, 65, + 129, 97, 49, 145, 97, 49, 145, 81, 49, 177, 65, 34, + 178, 33, 49, 211, 49, 83, 178, 65, 49, 161, 81, 49, + 145, 81, 81, 114, 81, 81, 113, 97, 81, 98, 97, 81, + 82, 113, 81, 81, 145, 49, 82, 145, 49, 81, 179, 0, + 16, 32, 57, 20, 240, 163, 240, 17, 33, 241, 65, 225, + 65, 225, 65, 225, 65, 225, 49, 241, 49, 242, 17, 240, + 19, 117, 97, 146, 115, 129, 113, 18, 113, 113, 50, 97, + 97, 82, 65, 113, 98, 33, 129, 113, 33, 129, 115, 97, + 34, 114, 97, 50, 66, 34, 49, 85, 84, 0, 18, 13, + 5, 242, 51, 65, 65, 65, 49, 65, 49, 0, 11, 96, + 31, 8, 209, 97, 97, 97, 113, 97, 113, 113, 113, 97, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 129, 113, 113, + 113, 129, 113, 129, 129, 129, 32, 31, 8, 240, 33, 129, + 129, 113, 129, 113, 113, 114, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 97, 113, 113, 97, 113, 97, 113, 97, + 97, 112, 25, 12, 240, 18, 162, 161, 114, 33, 50, 65, + 17, 33, 116, 146, 131, 18, 66, 33, 50, 97, 178, 162, + 0, 24, 96, 41, 19, 0, 15, 33, 240, 49, 240, 49, + 240, 49, 240, 49, 240, 49, 240, 49, 240, 49, 240, 49, + 175, 2, 161, 240, 49, 240, 49, 240, 49, 240, 49, 240, + 49, 240, 49, 240, 49, 0, 13, 16, 12, 5, 0, 12, + 66, 51, 65, 65, 65, 49, 49, 224, 8, 9, 0, 18, + 7, 0, 13, 96, 8, 4, 0, 10, 2, 34, 240, 240, + 32, 12, 240, 97, 177, 161, 177, 177, 161, 177, 177, 161, + 177, 177, 161, 177, 177, 161, 177, 177, 161, 177, 177, 161, + 177, 177, 161, 177, 177, 161, 177, 176, 41, 12, 0, 6, + 52, 113, 65, 81, 97, 65, 97, 49, 129, 33, 129, 33, + 129, 33, 129, 33, 129, 33, 129, 33, 129, 33, 129, 33, + 129, 33, 129, 49, 97, 65, 97, 81, 65, 116, 0, 11, + 16, 25, 9, 240, 240, 145, 84, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 87, 0, + 8, 16, 32, 12, 0, 6, 52, 98, 66, 49, 113, 49, + 129, 34, 113, 34, 113, 177, 161, 177, 161, 161, 161, 161, + 161, 161, 97, 49, 113, 57, 42, 0, 10, 96, 31, 13, + 0, 6, 117, 98, 82, 66, 82, 66, 82, 178, 178, 177, + 177, 132, 210, 194, 194, 178, 34, 114, 34, 114, 33, 129, + 66, 67, 101, 0, 12, 34, 13, 0, 7, 49, 193, 178, + 161, 17, 145, 33, 145, 33, 129, 49, 113, 65, 113, 65, + 97, 81, 81, 97, 81, 97, 91, 145, 193, 193, 193, 151, + 0, 11, 80, 32, 13, 0, 6, 104, 86, 113, 193, 193, + 193, 193, 35, 115, 50, 81, 97, 209, 193, 193, 50, 113, + 50, 113, 33, 145, 49, 113, 82, 65, 132, 0, 12, 40, + 12, 0, 6, 69, 97, 66, 65, 82, 49, 177, 161, 36, + 81, 17, 65, 66, 97, 50, 113, 33, 129, 33, 129, 33, + 129, 33, 129, 33, 129, 49, 97, 65, 97, 81, 65, 116, + 0, 11, 16, 28, 13, 240, 240, 161, 202, 57, 65, 113, + 49, 113, 177, 193, 177, 177, 193, 193, 177, 193, 193, 193, + 193, 193, 193, 193, 0, 12, 48, 39, 13, 0, 6, 117, + 113, 66, 81, 98, 65, 113, 65, 113, 66, 97, 67, 65, + 100, 17, 147, 130, 35, 81, 83, 65, 113, 49, 130, 33, + 145, 33, 145, 49, 113, 66, 81, 117, 0, 12, 39, 12, + 0, 6, 52, 113, 65, 81, 97, 49, 113, 49, 129, 33, + 129, 33, 129, 33, 129, 33, 129, 49, 98, 65, 65, 17, + 84, 33, 177, 161, 177, 50, 81, 66, 65, 101, 0, 11, + 32, 12, 4, 240, 240, 162, 34, 240, 240, 66, 34, 240, + 240, 16, 4, 240, 240, 162, 34, 240, 240, 66, 34, 49, + 49, 49, 33, 49, 176, 22, 4, 240, 240, 34, 34, 240, + 49, 49, 49, 65, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 96, 13, 19, 0, 28, 79, 2, 0, 9, 111, + 2, 0, 26, 48, 27, 11, 0, 11, 51, 131, 240, 240, + 193, 161, 161, 161, 145, 161, 145, 145, 145, 161, 161, 113, + 33, 113, 34, 81, 85, 240, 176, 29, 11, 240, 149, 81, + 81, 49, 113, 33, 113, 33, 113, 161, 145, 145, 145, 161, + 145, 161, 161, 161, 161, 240, 240, 195, 131, 0, 10, 32, + 68, 20, 0, 5, 102, 194, 83, 146, 130, 113, 193, 97, + 68, 66, 65, 65, 65, 65, 65, 49, 97, 50, 33, 50, + 113, 49, 33, 49, 129, 49, 33, 49, 129, 49, 33, 49, + 129, 49, 33, 49, 129, 49, 33, 50, 113, 49, 49, 49, + 98, 49, 49, 65, 65, 17, 33, 66, 68, 51, 82, 240, + 66, 178, 99, 99, 167, 0, 18, 48, 45, 19, 0, 5, + 97, 240, 49, 240, 35, 240, 19, 241, 33, 241, 34, 209, + 50, 209, 65, 209, 66, 177, 82, 177, 97, 177, 98, 169, + 145, 130, 129, 130, 113, 146, 113, 162, 97, 162, 82, 162, + 68, 133, 0, 16, 112, 42, 16, 0, 6, 11, 113, 114, + 97, 145, 81, 146, 65, 146, 65, 145, 81, 130, 81, 113, + 121, 113, 130, 81, 145, 81, 146, 65, 161, 65, 161, 65, + 161, 65, 161, 65, 145, 81, 114, 75, 0, 14, 80, 45, + 18, 0, 7, 69, 65, 99, 66, 33, 82, 131, 66, 162, + 50, 178, 50, 193, 34, 209, 34, 240, 18, 240, 18, 240, + 18, 240, 18, 240, 18, 209, 50, 193, 50, 193, 66, 161, + 98, 129, 131, 81, 182, 0, 16, 64, 43, 17, 0, 6, + 58, 145, 114, 113, 130, 97, 145, 97, 161, 81, 161, 81, + 177, 65, 177, 65, 177, 65, 177, 65, 177, 65, 177, 65, + 177, 65, 161, 81, 161, 81, 145, 97, 145, 97, 114, 90, + 0, 15, 96, 42, 17, 0, 6, 62, 81, 146, 81, 161, + 81, 161, 81, 161, 81, 177, 65, 97, 145, 97, 145, 82, + 152, 145, 82, 145, 97, 145, 97, 145, 177, 65, 177, 65, + 177, 65, 162, 65, 147, 46, 0, 15, 32, 36, 15, 240, + 240, 253, 65, 130, 65, 145, 65, 145, 65, 145, 65, 225, + 81, 129, 81, 129, 66, 135, 129, 66, 129, 81, 129, 81, + 129, 225, 225, 225, 225, 198, 0, 14, 32, 44, 19, 0, + 7, 117, 195, 66, 17, 114, 130, 98, 146, 82, 177, 82, + 177, 66, 193, 66, 240, 34, 240, 34, 240, 34, 240, 34, + 150, 49, 193, 82, 177, 82, 177, 98, 161, 114, 145, 131, + 83, 166, 0, 17, 64, 44, 17, 0, 6, 53, 85, 65, + 145, 97, 145, 97, 145, 97, 145, 97, 145, 97, 145, 97, + 145, 97, 145, 107, 97, 145, 97, 145, 97, 145, 97, 145, + 97, 145, 97, 145, 97, 145, 97, 145, 69, 85, 0, 15, + 16, 25, 7, 240, 101, 65, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 69, 0, + 6, 48, 29, 11, 240, 240, 102, 129, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 66, 65, 66, + 65, 65, 65, 100, 0, 10, 48, 46, 18, 0, 6, 101, + 101, 65, 146, 97, 145, 113, 129, 129, 113, 145, 97, 161, + 81, 177, 65, 193, 50, 193, 33, 18, 177, 17, 50, 162, + 66, 161, 98, 145, 114, 129, 114, 129, 130, 113, 146, 97, + 147, 53, 101, 0, 16, 31, 14, 240, 240, 198, 161, 209, + 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 129, + 65, 129, 65, 129, 65, 129, 65, 99, 44, 0, 12, 64, + 75, 22, 0, 8, 37, 180, 67, 178, 97, 17, 161, 17, + 97, 18, 145, 17, 97, 18, 145, 17, 97, 33, 129, 33, + 97, 34, 113, 33, 97, 34, 113, 33, 97, 50, 81, 49, + 97, 50, 81, 49, 97, 65, 65, 65, 97, 66, 49, 65, + 97, 66, 49, 65, 97, 81, 33, 81, 97, 82, 17, 81, + 97, 82, 17, 81, 97, 98, 97, 98, 82, 97, 69, 165, + 0, 19, 64, 58, 19, 0, 7, 21, 117, 67, 130, 97, + 18, 129, 97, 19, 113, 97, 34, 113, 97, 50, 97, 97, + 50, 97, 97, 66, 81, 97, 67, 65, 97, 82, 65, 97, + 98, 49, 97, 99, 33, 97, 114, 33, 97, 130, 17, 97, + 130, 17, 97, 147, 97, 162, 98, 146, 69, 145, 0, 17, + 16, 43, 19, 0, 7, 117, 194, 82, 146, 114, 114, 146, + 82, 178, 66, 178, 50, 210, 34, 210, 34, 210, 34, 210, + 34, 210, 34, 210, 34, 210, 50, 178, 66, 178, 82, 146, + 114, 114, 146, 82, 197, 0, 17, 80, 34, 16, 0, 6, + 10, 129, 114, 97, 130, 81, 146, 65, 146, 65, 146, 65, + 146, 65, 130, 81, 114, 104, 129, 241, 241, 241, 241, 241, + 241, 241, 213, 0, 15, 48, 58, 19, 0, 8, 5, 179, + 82, 129, 146, 97, 177, 81, 209, 65, 209, 49, 241, 33, + 241, 33, 241, 33, 241, 33, 241, 33, 241, 49, 225, 49, + 209, 81, 83, 65, 82, 49, 49, 33, 114, 33, 49, 17, + 148, 65, 214, 240, 49, 49, 225, 49, 241, 33, 244, 240, + 18, 240, 240, 176, 44, 19, 0, 7, 26, 177, 114, 145, + 130, 129, 146, 113, 146, 113, 146, 113, 130, 129, 114, 152, + 177, 98, 161, 114, 145, 114, 145, 130, 129, 130, 129, 130, + 129, 130, 129, 130, 49, 65, 131, 33, 37, 116, 0, 17, + 37, 13, 240, 240, 196, 114, 67, 65, 98, 49, 129, 49, + 129, 49, 129, 50, 194, 196, 166, 179, 194, 193, 33, 145, + 33, 145, 33, 145, 34, 113, 49, 18, 66, 49, 37, 0, + 12, 46, 18, 0, 6, 127, 50, 81, 82, 49, 97, 97, + 33, 113, 97, 33, 113, 97, 161, 240, 33, 240, 33, 240, + 33, 240, 33, 240, 33, 240, 33, 240, 33, 240, 33, 240, + 33, 240, 33, 240, 33, 240, 33, 231, 0, 16, 64, 44, + 18, 0, 6, 101, 101, 65, 146, 97, 161, 97, 161, 97, + 161, 97, 161, 97, 161, 97, 161, 97, 161, 97, 161, 97, + 161, 97, 161, 97, 161, 97, 161, 97, 161, 113, 129, 129, + 114, 146, 66, 181, 0, 16, 96, 45, 20, 0, 7, 70, + 132, 66, 177, 98, 177, 114, 145, 130, 145, 145, 129, 162, + 113, 162, 113, 178, 81, 194, 81, 194, 81, 210, 49, 226, + 49, 241, 33, 240, 18, 17, 240, 18, 17, 240, 34, 240, + 50, 0, 21, 32, 71, 28, 0, 10, 70, 70, 85, 66, + 130, 145, 98, 145, 145, 113, 146, 113, 130, 115, 113, 130, + 115, 113, 145, 97, 34, 81, 162, 81, 34, 81, 162, 81, + 34, 81, 162, 65, 66, 49, 194, 49, 66, 49, 194, 49, + 66, 49, 194, 33, 98, 33, 210, 17, 98, 17, 226, 17, + 98, 17, 227, 131, 242, 130, 240, 18, 130, 240, 17, 161, + 0, 25, 80, 46, 20, 0, 7, 70, 101, 83, 130, 130, + 129, 162, 97, 194, 65, 210, 65, 226, 33, 240, 19, 240, + 35, 240, 50, 240, 33, 18, 241, 35, 225, 50, 209, 82, + 177, 114, 161, 114, 145, 146, 114, 147, 69, 118, 0, 17, + 96, 47, 21, 0, 7, 118, 133, 82, 162, 114, 161, 146, + 129, 178, 97, 194, 97, 210, 65, 241, 49, 240, 18, 33, + 240, 33, 17, 240, 51, 240, 65, 240, 81, 240, 81, 240, + 81, 240, 81, 240, 81, 240, 81, 240, 53, 0, 19, 64, + 36, 15, 240, 240, 253, 35, 115, 34, 130, 49, 130, 65, + 130, 65, 114, 194, 210, 194, 194, 210, 194, 209, 210, 113, + 66, 129, 65, 145, 50, 145, 34, 131, 45, 0, 13, 48, + 31, 6, 100, 33, 81, 81, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 84, 32, 20, 10, 240, 240, 33, + 65, 49, 65, 49, 65, 65, 65, 65, 65, 67, 35, 50, + 50, 0, 24, 31, 6, 100, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 81, 81, 36, 32, 12, 9, + 240, 241, 113, 17, 81, 49, 49, 81, 0, 25, 8, 4, + 240, 18, 34, 0, 11, 96, 13, 5, 240, 33, 49, 49, + 65, 65, 67, 50, 0, 12, 16, 34, 14, 0, 17, 100, + 145, 65, 129, 81, 113, 81, 164, 130, 49, 113, 81, 97, + 97, 49, 33, 97, 49, 33, 82, 49, 34, 49, 17, 49, + 52, 51, 0, 12, 80, 37, 13, 240, 240, 147, 193, 193, + 193, 193, 193, 193, 193, 35, 113, 17, 50, 82, 81, 81, + 113, 65, 113, 65, 113, 65, 113, 65, 113, 65, 113, 65, + 97, 83, 49, 147, 0, 12, 24, 10, 0, 12, 116, 81, + 65, 49, 81, 33, 97, 33, 145, 145, 145, 161, 145, 81, + 65, 49, 99, 0, 9, 32, 40, 14, 0, 6, 19, 209, + 209, 209, 209, 209, 209, 116, 33, 97, 65, 17, 81, 98, + 65, 129, 65, 129, 65, 129, 65, 129, 65, 129, 65, 129, + 81, 98, 97, 65, 18, 100, 35, 0, 12, 64, 25, 11, + 0, 14, 20, 82, 65, 49, 113, 33, 113, 41, 33, 161, + 161, 177, 97, 49, 97, 65, 65, 100, 0, 10, 16, 28, + 9, 240, 115, 81, 33, 66, 33, 65, 129, 129, 129, 129, + 102, 81, 129, 129, 129, 129, 129, 129, 129, 129, 129, 102, + 0, 8, 32, 39, 13, 0, 15, 3, 35, 66, 34, 33, + 50, 65, 98, 65, 98, 65, 98, 65, 113, 65, 114, 33, + 113, 19, 129, 193, 194, 199, 81, 114, 33, 145, 33, 145, + 50, 82, 86, 240, 240, 16, 39, 14, 240, 240, 195, 209, + 209, 209, 209, 209, 209, 209, 36, 113, 17, 50, 98, 81, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 69, 37, 0, 12, 64, 22, 7, 240, + 226, 82, 240, 240, 35, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 69, 0, 6, 48, 29, 8, 240, 240, 98, + 98, 240, 240, 100, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 33, 65, 33, 49, 67, 240, 80, + 37, 14, 240, 240, 195, 209, 209, 209, 209, 209, 209, 209, + 68, 81, 81, 113, 65, 129, 49, 145, 33, 165, 145, 49, + 145, 50, 129, 66, 113, 81, 113, 82, 69, 37, 0, 12, + 64, 25, 7, 240, 99, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 69, 0, + 6, 48, 45, 21, 0, 26, 50, 36, 52, 83, 17, 50, + 17, 50, 98, 82, 81, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 69, 37, 37, 0, 18, 80, 32, + 14, 0, 17, 82, 36, 83, 17, 50, 98, 81, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 69, 37, 0, 12, 64, 29, 12, 0, 15, 52, + 113, 65, 81, 97, 49, 129, 33, 129, 33, 129, 33, 129, + 33, 129, 33, 129, 49, 97, 81, 65, 116, 0, 11, 16, + 37, 13, 0, 16, 50, 35, 83, 17, 50, 82, 81, 81, + 113, 65, 113, 65, 113, 65, 113, 65, 113, 65, 113, 65, + 97, 83, 49, 97, 35, 113, 193, 193, 193, 165, 240, 240, + 64, 36, 14, 0, 17, 116, 145, 65, 17, 81, 98, 66, + 113, 65, 129, 65, 129, 65, 129, 65, 129, 66, 113, 81, + 98, 97, 65, 17, 116, 33, 209, 209, 209, 209, 181, 240, + 240, 23, 9, 0, 11, 50, 34, 35, 17, 17, 66, 33, + 65, 129, 129, 129, 129, 129, 129, 129, 101, 0, 8, 48, + 26, 10, 0, 12, 100, 81, 65, 49, 81, 49, 146, 149, + 146, 49, 97, 33, 97, 33, 97, 34, 65, 49, 20, 0, + 9, 32, 27, 10, 0, 7, 97, 145, 145, 130, 120, 65, + 145, 145, 145, 145, 145, 145, 65, 65, 65, 65, 65, 81, + 34, 84, 0, 9, 16, 32, 14, 0, 17, 67, 67, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 82, 98, 49, 19, 84, 35, 0, 12, + 64, 28, 15, 0, 18, 101, 68, 66, 97, 98, 97, 113, + 81, 130, 65, 130, 49, 162, 33, 162, 33, 177, 17, 195, + 209, 225, 0, 14, 16, 45, 19, 0, 23, 101, 20, 52, + 65, 81, 82, 82, 65, 81, 98, 49, 17, 65, 113, 49, + 17, 49, 130, 33, 17, 49, 130, 33, 18, 33, 145, 17, + 49, 17, 163, 49, 17, 163, 51, 177, 81, 193, 81, 0, + 17, 64, 29, 15, 0, 18, 101, 68, 66, 82, 114, 65, + 145, 49, 177, 17, 194, 226, 178, 18, 161, 49, 145, 81, + 113, 98, 68, 69, 0, 13, 48, 34, 14, 0, 17, 68, + 68, 65, 97, 97, 97, 97, 81, 129, 65, 129, 49, 146, + 33, 161, 33, 163, 194, 193, 209, 193, 209, 145, 49, 145, + 33, 178, 240, 240, 144, 26, 12, 0, 15, 10, 34, 97, + 49, 98, 49, 82, 65, 66, 161, 161, 161, 162, 81, 50, + 97, 49, 98, 42, 0, 10, 96, 8, 15, 0, 26, 45, + 0, 26, 64, 9, 28, 0, 49, 15, 11, 0, 49, 32, + 17, 10, 240, 240, 33, 65, 50, 50, 49, 65, 49, 65, + 65, 65, 0, 26, 96, 9, 10, 240, 240, 179, 97, 52, + 0, 29, +}; + +//***************************************************************************** +// +// The font definition for the 28 point Cm font. +// +//***************************************************************************** +const tFont g_sFontCm28 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 25, + + // + // The height of the font. + // + 29, + + // + // The baseline of the font. + // + 22, + + // + // The offset to each character in the font. + // + { + 0, 5, 26, 47, 102, 157, 230, 287, + 300, 331, 362, 387, 428, 440, 448, 456, + 488, 529, 554, 586, 617, 651, 683, 723, + 751, 790, 829, 841, 857, 879, 892, 919, + 948, 1016, 1061, 1103, 1148, 1191, 1233, 1269, + 1313, 1357, 1382, 1411, 1457, 1488, 1563, 1621, + 1664, 1698, 1756, 1800, 1837, 1883, 1927, 1972, + 2043, 2089, 2136, 2172, 2203, 2223, 2254, 2266, + 2274, 2287, 2321, 2358, 2382, 2422, 2447, 2475, + 2514, 2553, 2575, 2604, 2641, 2666, 2711, 2743, + 2772, 2809, 2845, 2868, 2894, 2921, 2953, 2981, + 3026, 3055, 3089, 3115, 3123, 3132, 3149, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm28Data +}; diff --git a/grlib/fonts/fontcm28b.c b/grlib/fonts/fontcm28b.c new file mode 100644 index 0000000..c9b8624 --- /dev/null +++ b/grlib/fonts/fontcm28b.c @@ -0,0 +1,364 @@ +//***************************************************************************** +// +// fontcm28b.c - Font definition for the 28pt Cm bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 28 point +// Bold: yes +// Italic: no +// Memory usage: 3288 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 28 point Cm bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm28bData[3087] = +{ + 5, 11, 0, 37, 16, 23, 6, 114, 52, 36, 36, 36, + 36, 50, 66, 66, 66, 66, 66, 66, 240, 18, 52, 36, + 50, 240, 240, 240, 25, 13, 227, 51, 53, 21, 37, 21, + 52, 36, 97, 81, 97, 81, 81, 81, 97, 81, 81, 81, + 81, 81, 0, 26, 80, 55, 22, 240, 240, 18, 66, 226, + 66, 225, 82, 210, 81, 226, 66, 226, 66, 225, 82, 225, + 81, 226, 66, 127, 5, 145, 81, 226, 66, 226, 66, 226, + 66, 225, 81, 159, 5, 114, 66, 225, 81, 226, 66, 226, + 66, 226, 66, 225, 81, 226, 66, 226, 66, 0, 6, 112, + 50, 12, 65, 164, 98, 17, 19, 65, 33, 49, 50, 33, + 50, 34, 33, 35, 34, 33, 35, 35, 17, 35, 37, 119, + 103, 103, 103, 97, 20, 35, 17, 35, 35, 17, 50, 35, + 17, 50, 34, 33, 49, 66, 17, 34, 86, 129, 177, 0, + 8, 48, 68, 21, 36, 161, 82, 34, 130, 82, 51, 67, + 83, 49, 24, 83, 49, 98, 99, 49, 97, 115, 49, 82, + 115, 49, 66, 146, 49, 65, 162, 33, 66, 179, 66, 240, + 65, 67, 194, 50, 33, 162, 66, 49, 146, 51, 49, 130, + 67, 49, 114, 83, 49, 114, 83, 49, 98, 99, 49, 82, + 130, 49, 82, 131, 17, 82, 163, 0, 13, 80, 49, 21, + 240, 195, 240, 19, 33, 242, 49, 227, 49, 227, 49, 227, + 33, 243, 33, 245, 86, 99, 129, 148, 98, 133, 97, 130, + 20, 65, 131, 35, 50, 131, 36, 33, 132, 54, 132, 68, + 163, 83, 81, 68, 54, 34, 101, 69, 0, 18, 112, 15, + 7, 131, 53, 37, 52, 97, 97, 81, 97, 81, 81, 0, + 14, 80, 30, 9, 97, 98, 113, 114, 98, 114, 99, 99, + 98, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 115, + 99, 114, 114, 130, 114, 130, 130, 32, 30, 9, 2, 130, + 130, 114, 130, 114, 115, 99, 114, 115, 99, 99, 99, 99, + 99, 99, 99, 99, 98, 99, 99, 98, 114, 98, 113, 114, + 97, 128, 29, 13, 67, 163, 113, 35, 33, 51, 18, 35, + 51, 17, 19, 101, 133, 84, 17, 20, 35, 19, 19, 49, + 35, 33, 115, 163, 0, 25, 16, 41, 20, 0, 11, 2, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 175, 3, 162, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 0, 13, 96, + 15, 7, 0, 14, 19, 53, 37, 52, 97, 82, 81, 81, + 81, 240, 64, 10, 9, 0, 13, 71, 39, 39, 0, 13, + 96, 11, 6, 0, 12, 18, 52, 36, 50, 240, 240, 240, + 30, 13, 146, 178, 177, 178, 178, 177, 178, 178, 162, 178, + 178, 162, 178, 177, 178, 178, 162, 178, 178, 162, 178, 178, + 162, 178, 177, 178, 178, 176, 39, 13, 240, 229, 114, 50, + 82, 82, 66, 82, 51, 83, 35, 83, 35, 83, 35, 83, + 35, 83, 35, 83, 35, 83, 35, 83, 35, 83, 35, 83, + 50, 82, 66, 82, 82, 50, 117, 0, 12, 24, 11, 240, + 193, 131, 86, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 89, 0, 9, 112, 33, 14, 240, + 240, 21, 114, 52, 67, 68, 52, 68, 36, 68, 50, 84, + 164, 163, 164, 148, 162, 178, 178, 81, 82, 82, 66, 98, + 58, 74, 59, 0, 12, 80, 33, 13, 240, 229, 113, 51, + 83, 51, 67, 51, 67, 51, 67, 51, 162, 162, 132, 195, + 179, 164, 50, 68, 36, 52, 36, 52, 35, 67, 66, 51, + 102, 0, 12, 33, 14, 240, 240, 98, 194, 179, 164, 164, + 145, 19, 145, 19, 129, 35, 114, 35, 113, 51, 97, 67, + 82, 67, 81, 83, 76, 147, 179, 179, 136, 0, 12, 64, + 34, 12, 240, 161, 97, 66, 66, 71, 86, 101, 113, 177, + 177, 20, 98, 36, 147, 148, 35, 52, 35, 52, 35, 52, + 35, 52, 34, 67, 66, 35, 100, 0, 11, 32, 39, 14, + 240, 240, 53, 115, 50, 83, 51, 83, 51, 67, 67, 67, + 164, 164, 20, 85, 36, 52, 67, 52, 68, 36, 68, 36, + 68, 36, 68, 51, 68, 51, 67, 83, 35, 133, 0, 12, + 112, 27, 13, 240, 194, 186, 58, 57, 50, 82, 66, 81, + 81, 82, 177, 178, 177, 178, 178, 163, 163, 163, 163, 163, + 163, 0, 12, 32, 38, 14, 240, 240, 37, 114, 66, 97, + 98, 66, 98, 67, 82, 68, 66, 70, 18, 103, 135, 105, + 67, 38, 35, 69, 35, 84, 35, 99, 35, 99, 36, 82, + 67, 66, 118, 0, 12, 112, 39, 14, 240, 240, 22, 115, + 35, 83, 67, 52, 67, 52, 68, 36, 68, 36, 68, 36, + 68, 36, 68, 51, 68, 67, 37, 84, 20, 164, 163, 67, + 67, 67, 66, 82, 51, 117, 0, 13, 16, 16, 6, 0, + 6, 18, 52, 36, 50, 240, 210, 52, 36, 50, 240, 240, + 240, 20, 6, 0, 6, 18, 52, 36, 50, 240, 210, 52, + 36, 51, 81, 81, 65, 81, 65, 240, 16, 23, 6, 240, + 240, 210, 52, 36, 50, 162, 66, 66, 66, 66, 66, 66, + 66, 52, 36, 36, 36, 36, 50, 144, 13, 20, 0, 25, + 15, 3, 0, 12, 111, 3, 0, 25, 32, 27, 11, 0, + 10, 3, 116, 116, 131, 240, 81, 161, 161, 161, 161, 145, + 146, 130, 131, 131, 51, 35, 51, 35, 66, 54, 240, 176, + 28, 11, 213, 81, 66, 51, 51, 35, 51, 35, 51, 130, + 130, 145, 146, 145, 161, 161, 161, 240, 240, 19, 116, 116, + 131, 0, 10, 32, 64, 20, 240, 182, 194, 83, 145, 161, + 113, 193, 81, 69, 66, 65, 50, 50, 65, 49, 51, 67, + 34, 33, 35, 83, 49, 33, 35, 83, 49, 33, 35, 83, + 49, 33, 35, 83, 49, 33, 35, 83, 49, 33, 35, 83, + 49, 49, 35, 67, 49, 49, 50, 52, 33, 81, 52, 36, + 98, 240, 67, 116, 137, 0, 18, 32, 41, 21, 240, 226, + 240, 67, 240, 51, 240, 36, 240, 37, 240, 21, 246, 242, + 20, 225, 36, 210, 36, 209, 68, 193, 68, 178, 69, 171, + 161, 100, 146, 116, 129, 132, 114, 132, 86, 73, 0, 18, + 80, 41, 19, 240, 77, 148, 68, 116, 83, 116, 84, 100, + 84, 100, 84, 100, 84, 100, 83, 116, 67, 137, 164, 83, + 116, 84, 100, 84, 100, 100, 84, 100, 84, 100, 84, 84, + 100, 83, 78, 0, 17, 32, 38, 19, 240, 166, 50, 100, + 69, 83, 116, 67, 147, 52, 147, 51, 178, 36, 178, 36, + 244, 244, 244, 244, 244, 178, 51, 177, 68, 161, 83, 146, + 99, 129, 132, 66, 182, 0, 17, 64, 42, 20, 240, 93, + 164, 68, 132, 99, 116, 100, 100, 115, 100, 115, 100, 116, + 84, 116, 84, 116, 84, 116, 84, 116, 84, 116, 84, 116, + 84, 115, 100, 115, 100, 100, 100, 99, 116, 68, 93, 0, + 18, 48, 44, 18, 240, 63, 100, 83, 100, 98, 100, 113, + 100, 113, 100, 49, 49, 100, 49, 49, 100, 49, 164, 34, + 168, 164, 34, 164, 49, 164, 49, 65, 84, 129, 84, 114, + 84, 114, 84, 113, 100, 83, 63, 0, 16, 16, 37, 17, + 240, 47, 84, 83, 84, 98, 84, 98, 84, 113, 84, 113, + 84, 49, 49, 84, 49, 148, 34, 152, 148, 34, 148, 49, + 148, 49, 148, 212, 212, 212, 212, 170, 0, 15, 96, 43, + 20, 240, 182, 49, 131, 69, 115, 115, 99, 131, 84, 146, + 83, 162, 83, 162, 68, 177, 68, 240, 20, 240, 20, 240, + 20, 240, 20, 89, 51, 132, 83, 132, 99, 116, 100, 100, + 131, 69, 166, 34, 0, 18, 43, 22, 240, 121, 41, 84, + 100, 132, 100, 132, 100, 132, 100, 132, 100, 132, 100, 132, + 100, 132, 100, 142, 132, 100, 132, 100, 132, 100, 132, 100, + 132, 100, 132, 100, 132, 100, 132, 100, 89, 41, 0, 19, + 64, 24, 12, 202, 84, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 90, 0, 10, + 96, 28, 15, 240, 58, 148, 180, 180, 180, 180, 180, 180, + 180, 180, 180, 180, 180, 180, 82, 68, 68, 52, 68, 52, + 82, 52, 118, 0, 14, 43, 22, 240, 122, 55, 84, 130, + 132, 114, 148, 98, 164, 82, 180, 66, 196, 50, 212, 35, + 212, 20, 218, 197, 20, 196, 52, 180, 53, 164, 68, 164, + 84, 148, 84, 148, 100, 132, 116, 74, 40, 0, 19, 64, + 32, 17, 240, 42, 164, 212, 212, 212, 212, 212, 212, 212, + 212, 212, 212, 113, 84, 98, 84, 98, 84, 98, 84, 97, + 100, 82, 100, 67, 62, 0, 15, 32, 70, 26, 240, 183, + 167, 84, 164, 132, 145, 19, 129, 19, 129, 19, 129, 19, + 129, 19, 129, 20, 97, 35, 129, 35, 97, 35, 129, 35, + 97, 35, 129, 51, 65, 51, 129, 51, 65, 51, 129, 51, + 65, 51, 129, 67, 33, 67, 129, 67, 33, 67, 129, 69, + 83, 129, 84, 83, 129, 84, 83, 129, 83, 99, 129, 98, + 99, 87, 50, 57, 0, 23, 53, 22, 240, 119, 103, 85, + 129, 133, 129, 129, 20, 113, 129, 21, 97, 129, 37, 81, + 129, 52, 81, 129, 68, 65, 129, 69, 49, 129, 85, 33, + 129, 100, 33, 129, 116, 17, 129, 118, 129, 133, 129, 148, + 129, 163, 129, 163, 129, 178, 87, 145, 0, 19, 112, 42, + 19, 240, 165, 195, 51, 132, 84, 99, 115, 83, 147, 67, + 147, 52, 148, 36, 148, 36, 148, 36, 148, 36, 148, 36, + 148, 36, 148, 51, 147, 68, 116, 83, 115, 100, 84, 131, + 51, 182, 0, 17, 80, 34, 18, 240, 61, 132, 67, 116, + 83, 100, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 83, 100, 67, 122, 132, 228, 228, 228, 228, 228, 228, 185, + 0, 16, 112, 52, 19, 240, 165, 195, 51, 132, 83, 115, + 115, 84, 116, 67, 147, 52, 148, 36, 148, 36, 148, 36, + 148, 36, 148, 36, 148, 36, 148, 51, 147, 67, 147, 68, + 35, 35, 99, 17, 49, 18, 132, 51, 183, 65, 210, 49, + 214, 214, 213, 243, 240, 240, 192, 44, 21, 240, 109, 180, + 67, 164, 83, 148, 84, 132, 84, 132, 84, 132, 84, 132, + 83, 148, 67, 169, 196, 67, 164, 67, 164, 68, 148, 68, + 148, 68, 148, 68, 148, 83, 49, 84, 84, 33, 41, 69, + 0, 18, 96, 37, 14, 240, 37, 33, 67, 52, 66, 98, + 51, 98, 51, 113, 51, 113, 52, 168, 121, 105, 104, 165, + 164, 33, 131, 34, 115, 34, 115, 35, 98, 52, 66, 66, + 37, 0, 12, 112, 48, 20, 240, 111, 1, 79, 1, 67, + 52, 51, 66, 68, 66, 65, 84, 81, 65, 84, 81, 65, + 84, 81, 50, 84, 82, 148, 240, 20, 240, 20, 240, 20, + 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, + 204, 0, 18, 16, 43, 21, 240, 105, 70, 84, 129, 132, + 129, 132, 129, 132, 129, 132, 129, 132, 129, 132, 129, 132, + 129, 132, 129, 132, 129, 132, 129, 132, 129, 132, 129, 132, + 129, 147, 113, 164, 97, 180, 65, 230, 0, 19, 48, 43, + 21, 240, 104, 86, 68, 146, 100, 145, 132, 114, 132, 114, + 148, 97, 164, 82, 164, 81, 196, 65, 196, 50, 196, 49, + 228, 18, 228, 18, 245, 240, 21, 240, 20, 240, 51, 240, + 51, 240, 50, 0, 19, 96, 65, 29, 240, 232, 25, 54, + 68, 84, 130, 100, 100, 113, 116, 100, 98, 132, 84, 98, + 132, 85, 81, 148, 85, 81, 164, 54, 66, 164, 49, 36, + 49, 180, 49, 36, 49, 196, 18, 36, 34, 196, 17, 68, + 17, 212, 17, 68, 17, 229, 70, 228, 100, 244, 100, 240, + 19, 100, 240, 19, 114, 240, 34, 130, 0, 26, 80, 44, + 21, 240, 105, 39, 100, 98, 149, 66, 180, 65, 197, 34, + 212, 18, 245, 240, 21, 240, 36, 240, 37, 240, 21, 240, + 17, 20, 226, 20, 210, 52, 194, 53, 162, 84, 161, 101, + 130, 116, 87, 57, 0, 18, 80, 42, 22, 240, 121, 86, + 84, 146, 116, 130, 148, 113, 165, 82, 180, 81, 197, 50, + 212, 34, 229, 18, 246, 240, 22, 240, 36, 240, 52, 240, + 52, 240, 52, 240, 52, 240, 52, 240, 52, 250, 0, 20, + 16, 37, 16, 240, 30, 36, 85, 35, 100, 50, 100, 66, + 100, 66, 84, 81, 85, 180, 181, 180, 180, 196, 180, 97, + 84, 97, 68, 98, 53, 98, 52, 99, 36, 100, 46, 0, + 14, 32, 30, 6, 4, 34, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 68, 32, 26, 13, 240, 17, + 81, 81, 81, 81, 81, 97, 81, 81, 81, 97, 81, 100, + 36, 53, 21, 37, 21, 51, 51, 0, 26, 48, 30, 6, + 4, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 36, 32, 12, 9, 193, 115, 82, 18, 50, 50, + 129, 0, 23, 112, 9, 6, 114, 52, 36, 50, 0, 16, + 112, 15, 7, 161, 81, 81, 97, 81, 97, 100, 53, 37, + 51, 0, 14, 48, 28, 14, 0, 14, 38, 114, 51, 99, + 51, 82, 67, 179, 134, 99, 35, 83, 51, 67, 67, 67, + 67, 67, 52, 100, 36, 0, 12, 64, 37, 16, 240, 21, + 211, 211, 211, 211, 211, 211, 211, 21, 116, 66, 99, 98, + 83, 99, 67, 99, 67, 99, 67, 99, 67, 99, 67, 99, + 67, 98, 84, 66, 98, 37, 0, 14, 80, 24, 12, 0, + 12, 54, 82, 51, 51, 51, 35, 67, 35, 147, 147, 147, + 147, 97, 51, 81, 67, 49, 101, 0, 11, 37, 16, 240, + 133, 211, 211, 211, 211, 211, 211, 117, 19, 98, 68, 83, + 83, 82, 99, 67, 99, 67, 99, 67, 99, 67, 99, 67, + 99, 82, 99, 98, 68, 117, 21, 0, 14, 32, 25, 13, + 0, 13, 53, 114, 51, 66, 82, 51, 83, 35, 83, 43, + 35, 163, 163, 113, 51, 82, 66, 66, 101, 0, 12, 26, + 11, 244, 102, 67, 19, 67, 19, 67, 131, 131, 103, 99, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 102, 0, 10, + 32, 37, 14, 0, 14, 38, 19, 51, 35, 18, 35, 67, + 67, 67, 67, 67, 67, 67, 83, 35, 97, 21, 98, 216, + 106, 75, 34, 115, 34, 130, 34, 115, 50, 83, 87, 240, + 240, 48, 37, 16, 240, 21, 211, 211, 211, 211, 211, 211, + 211, 36, 115, 17, 35, 100, 51, 99, 67, 99, 67, 99, + 67, 99, 67, 99, 67, 99, 67, 99, 67, 99, 67, 78, + 0, 14, 32, 22, 8, 162, 84, 68, 82, 240, 213, 83, + 83, 83, 83, 83, 83, 83, 83, 83, 83, 54, 0, 7, + 32, 31, 11, 240, 19, 117, 101, 115, 240, 240, 150, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 35, + 51, 35, 51, 35, 35, 69, 240, 192, 35, 16, 240, 21, + 211, 211, 211, 211, 211, 211, 211, 53, 83, 66, 115, 50, + 131, 34, 147, 18, 167, 151, 147, 35, 131, 36, 115, 51, + 115, 67, 71, 22, 0, 14, 32, 24, 9, 149, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 71, 0, 8, 16, 43, 24, 0, 24, 5, + 36, 53, 115, 17, 37, 51, 100, 52, 67, 99, 67, 83, + 99, 67, 83, 99, 67, 83, 99, 67, 83, 99, 67, 83, + 99, 67, 83, 99, 67, 83, 99, 67, 83, 78, 23, 0, + 21, 32, 31, 16, 0, 16, 5, 36, 85, 17, 35, 100, + 51, 99, 67, 99, 67, 99, 67, 99, 67, 99, 67, 99, + 67, 99, 67, 99, 67, 78, 0, 14, 32, 28, 13, 0, + 13, 53, 114, 50, 82, 82, 51, 83, 35, 83, 35, 83, + 35, 83, 35, 83, 35, 83, 50, 82, 82, 50, 117, 0, + 12, 36, 16, 0, 16, 5, 21, 116, 66, 99, 83, 83, + 99, 67, 99, 67, 99, 67, 99, 67, 99, 67, 99, 67, + 83, 84, 51, 99, 21, 115, 211, 211, 211, 183, 240, 240, + 176, 37, 16, 0, 16, 53, 34, 99, 49, 18, 83, 68, + 67, 99, 67, 99, 67, 99, 67, 99, 67, 99, 67, 99, + 83, 83, 99, 52, 117, 19, 211, 211, 211, 211, 183, 240, + 240, 64, 23, 13, 0, 13, 5, 35, 53, 17, 19, 68, + 35, 67, 50, 83, 163, 163, 163, 163, 163, 163, 136, 0, + 12, 25, 11, 0, 11, 38, 66, 50, 50, 81, 51, 65, + 54, 103, 87, 131, 34, 82, 34, 82, 35, 50, 55, 0, + 10, 16, 27, 11, 240, 240, 113, 161, 146, 146, 131, 105, + 67, 131, 131, 131, 131, 131, 131, 49, 67, 49, 67, 49, + 67, 49, 100, 0, 10, 31, 16, 0, 16, 5, 37, 99, + 67, 99, 67, 99, 67, 99, 67, 99, 67, 99, 67, 99, + 67, 99, 67, 99, 67, 99, 52, 117, 21, 0, 14, 32, + 26, 15, 0, 15, 6, 37, 52, 81, 99, 66, 99, 65, + 131, 34, 131, 33, 148, 17, 165, 164, 195, 194, 210, 0, + 14, 16, 40, 20, 0, 20, 5, 22, 21, 52, 50, 81, + 99, 51, 65, 99, 51, 50, 100, 35, 49, 131, 21, 33, + 131, 17, 19, 18, 133, 34, 17, 164, 36, 163, 52, 163, + 66, 194, 66, 0, 18, 48, 27, 16, 0, 16, 22, 22, + 83, 50, 132, 33, 163, 18, 180, 196, 211, 197, 162, 20, + 145, 51, 130, 67, 70, 38, 0, 14, 32, 35, 15, 0, + 15, 6, 52, 67, 81, 99, 66, 115, 49, 131, 49, 132, + 18, 147, 17, 163, 17, 179, 195, 195, 209, 225, 131, 34, + 131, 33, 147, 17, 179, 240, 240, 176, 27, 12, 0, 12, + 10, 35, 52, 34, 67, 50, 51, 65, 52, 131, 131, 132, + 49, 67, 65, 51, 66, 36, 51, 42, 0, 10, 96, 8, + 16, 0, 24, 14, 0, 28, 32, 8, 29, 0, 43, 79, + 12, 0, 51, 15, 11, 194, 50, 67, 35, 36, 20, 35, + 35, 50, 50, 0, 29, 48, 9, 11, 210, 65, 56, 34, + 21, 0, 32, +}; + +//***************************************************************************** +// +// The font definition for the 28 point Cm bold font. +// +//***************************************************************************** +const tFont g_sFontCm28b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 26, + + // + // The height of the font. + // + 27, + + // + // The baseline of the font. + // + 20, + + // + // The offset to each character in the font. + // + { + 0, 5, 28, 53, 108, 158, 226, 275, + 290, 320, 350, 379, 420, 435, 445, 456, + 486, 525, 549, 582, 615, 648, 682, 721, + 748, 786, 825, 841, 861, 884, 897, 924, + 952, 1016, 1057, 1098, 1136, 1178, 1222, 1259, + 1302, 1345, 1369, 1397, 1440, 1472, 1542, 1595, + 1637, 1671, 1723, 1767, 1804, 1852, 1895, 1938, + 2003, 2047, 2089, 2126, 2156, 2182, 2212, 2224, + 2233, 2248, 2276, 2313, 2337, 2374, 2399, 2425, + 2462, 2499, 2521, 2552, 2587, 2611, 2654, 2685, + 2713, 2749, 2786, 2809, 2834, 2861, 2892, 2918, + 2958, 2985, 3020, 3047, 3055, 3063, 3078, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm28bData +}; diff --git a/grlib/fonts/fontcm28i.c b/grlib/fonts/fontcm28i.c new file mode 100644 index 0000000..dedf106 --- /dev/null +++ b/grlib/fonts/fontcm28i.c @@ -0,0 +1,383 @@ +//***************************************************************************** +// +// fontcm28i.c - Font definition for the 28pt Cm italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 28 point +// Bold: no +// Italic: yes +// Memory usage: 3536 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 28 point Cm italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm28iData[3336] = +{ + 5, 11, 0, 38, 64, 24, 9, 226, 99, 99, 99, 98, + 114, 114, 98, 114, 114, 113, 129, 129, 113, 129, 240, 162, + 99, 98, 0, 8, 96, 22, 11, 240, 146, 50, 51, 35, + 51, 35, 81, 65, 65, 65, 81, 65, 65, 65, 65, 65, + 0, 25, 48, 54, 21, 0, 6, 97, 81, 209, 81, 225, + 81, 209, 81, 225, 81, 209, 81, 225, 81, 210, 65, 225, + 81, 127, 3, 145, 66, 210, 65, 225, 81, 210, 65, 159, + 3, 113, 81, 225, 81, 209, 81, 225, 81, 209, 81, 225, + 81, 209, 81, 225, 81, 209, 81, 0, 7, 44, 19, 0, + 6, 36, 210, 50, 178, 81, 177, 97, 162, 82, 162, 82, + 161, 240, 34, 240, 34, 246, 241, 240, 34, 240, 34, 240, + 34, 240, 18, 229, 113, 81, 50, 97, 81, 49, 19, 49, + 100, 68, 0, 17, 64, 71, 21, 98, 161, 98, 33, 129, + 113, 51, 67, 98, 49, 38, 114, 49, 82, 114, 65, 66, + 130, 65, 65, 146, 49, 66, 146, 49, 50, 162, 33, 50, + 193, 33, 34, 226, 49, 65, 225, 65, 17, 194, 49, 49, + 162, 50, 49, 146, 66, 49, 145, 66, 65, 129, 82, 65, + 114, 82, 49, 114, 98, 49, 98, 114, 49, 97, 145, 33, + 97, 163, 0, 14, 59, 21, 240, 212, 242, 50, 82, 98, + 81, 97, 97, 82, 81, 98, 82, 81, 98, 177, 113, 177, + 114, 19, 98, 131, 33, 65, 17, 129, 65, 49, 49, 99, + 34, 33, 65, 82, 20, 49, 65, 82, 130, 49, 66, 161, + 49, 66, 209, 82, 209, 82, 193, 114, 161, 146, 114, 199, + 0, 19, 80, 13, 6, 226, 51, 51, 81, 65, 81, 65, + 65, 0, 14, 16, 31, 12, 145, 161, 161, 162, 161, 161, + 162, 146, 162, 146, 162, 162, 146, 162, 162, 162, 146, 162, + 162, 162, 162, 162, 162, 177, 177, 178, 177, 193, 128, 31, + 12, 97, 193, 178, 177, 178, 162, 162, 162, 162, 162, 162, + 162, 147, 146, 162, 162, 146, 162, 162, 146, 162, 146, 161, + 162, 161, 161, 161, 161, 176, 24, 12, 97, 177, 161, 114, + 33, 34, 66, 17, 17, 131, 131, 129, 17, 18, 66, 33, + 34, 113, 161, 177, 0, 25, 41, 18, 0, 12, 49, 240, + 33, 240, 33, 240, 33, 240, 33, 240, 17, 240, 33, 240, + 33, 240, 33, 159, 1, 145, 240, 33, 240, 33, 240, 33, + 240, 17, 240, 33, 240, 33, 240, 33, 0, 12, 80, 14, + 6, 0, 13, 98, 51, 51, 81, 65, 81, 65, 65, 240, + 32, 8, 9, 0, 16, 119, 0, 13, 96, 10, 5, 0, + 11, 50, 35, 34, 240, 240, 128, 59, 18, 241, 240, 18, + 240, 17, 240, 17, 240, 33, 240, 17, 240, 33, 240, 17, + 240, 18, 240, 17, 240, 18, 240, 17, 240, 17, 240, 33, + 240, 17, 240, 33, 240, 17, 240, 18, 240, 17, 240, 18, + 240, 17, 240, 17, 240, 33, 240, 17, 240, 33, 240, 17, + 240, 18, 240, 17, 240, 32, 43, 14, 240, 240, 68, 146, + 34, 114, 66, 82, 82, 82, 82, 66, 98, 66, 98, 51, + 83, 50, 99, 50, 98, 66, 98, 51, 83, 50, 98, 66, + 98, 66, 83, 66, 82, 82, 66, 114, 34, 148, 0, 13, + 32, 25, 11, 240, 240, 177, 146, 131, 98, 17, 146, 146, + 146, 145, 161, 146, 146, 145, 161, 146, 146, 146, 130, 104, + 0, 10, 44, 15, 240, 240, 116, 146, 50, 114, 82, 97, + 98, 81, 33, 66, 81, 33, 66, 65, 49, 66, 65, 33, + 67, 65, 33, 66, 83, 66, 194, 178, 194, 178, 194, 113, + 66, 113, 81, 114, 74, 81, 68, 0, 13, 112, 40, 16, + 240, 240, 149, 146, 66, 114, 98, 97, 114, 81, 33, 82, + 81, 33, 82, 81, 33, 66, 114, 81, 210, 164, 242, 242, + 226, 226, 82, 114, 82, 98, 97, 99, 113, 66, 165, 0, + 15, 16, 38, 14, 240, 240, 130, 194, 193, 194, 194, 193, + 194, 193, 194, 193, 194, 193, 194, 33, 145, 34, 129, 50, + 113, 65, 113, 81, 101, 18, 81, 85, 161, 209, 194, 194, + 193, 240, 240, 80, 36, 15, 240, 240, 81, 82, 104, 118, + 145, 225, 209, 225, 225, 20, 129, 17, 50, 114, 82, 210, + 210, 210, 66, 99, 66, 98, 81, 99, 81, 98, 113, 51, + 133, 0, 14, 32, 40, 14, 240, 240, 84, 146, 49, 114, + 50, 98, 66, 82, 179, 178, 179, 20, 100, 50, 83, 81, + 82, 97, 67, 97, 67, 82, 66, 98, 66, 98, 66, 82, + 82, 81, 114, 49, 148, 0, 13, 32, 38, 15, 240, 240, + 49, 19, 65, 65, 20, 49, 83, 33, 49, 81, 65, 33, + 81, 99, 81, 113, 81, 129, 81, 113, 225, 209, 210, 209, + 210, 210, 209, 210, 210, 195, 194, 0, 14, 48, 41, 15, + 240, 240, 116, 146, 50, 114, 82, 97, 98, 82, 98, 82, + 82, 99, 65, 131, 33, 164, 180, 146, 35, 114, 67, 82, + 98, 66, 114, 66, 114, 66, 113, 82, 97, 114, 65, 149, + 0, 14, 16, 40, 15, 240, 240, 116, 146, 50, 114, 82, + 98, 82, 82, 98, 82, 98, 67, 98, 66, 99, 66, 99, + 66, 83, 82, 83, 98, 52, 116, 18, 210, 194, 209, 114, + 65, 113, 66, 149, 0, 14, 32, 15, 7, 0, 8, 34, + 67, 66, 0, 5, 98, 67, 66, 0, 6, 96, 19, 8, + 0, 9, 66, 83, 82, 0, 6, 66, 98, 98, 113, 113, + 97, 97, 113, 240, 128, 25, 9, 0, 8, 66, 99, 98, + 240, 161, 129, 113, 129, 129, 114, 114, 114, 98, 114, 114, + 99, 99, 99, 98, 240, 16, 13, 20, 0, 27, 95, 2, + 0, 10, 47, 2, 0, 27, 112, 35, 12, 0, 11, 66, + 147, 146, 240, 240, 50, 145, 33, 113, 49, 162, 146, 131, + 130, 146, 66, 50, 82, 34, 113, 33, 113, 49, 113, 49, + 97, 81, 65, 116, 240, 48, 33, 11, 243, 113, 49, 81, + 81, 49, 97, 33, 113, 33, 98, 34, 81, 50, 50, 130, + 130, 130, 130, 145, 33, 113, 17, 146, 240, 242, 131, 130, + 0, 10, 96, 68, 19, 0, 5, 117, 178, 82, 146, 129, + 113, 52, 49, 97, 35, 49, 49, 65, 34, 81, 49, 65, + 34, 97, 33, 49, 34, 113, 33, 49, 34, 113, 33, 33, + 34, 114, 33, 33, 34, 114, 33, 33, 34, 113, 33, 49, + 34, 98, 33, 49, 34, 83, 33, 49, 50, 49, 18, 17, + 81, 52, 51, 82, 240, 50, 115, 151, 0, 17, 80, 45, + 19, 240, 240, 17, 240, 49, 240, 34, 240, 34, 240, 20, + 225, 34, 225, 34, 209, 50, 209, 50, 193, 66, 193, 66, + 177, 82, 161, 98, 169, 145, 114, 145, 114, 129, 130, 129, + 130, 113, 147, 69, 87, 0, 16, 112, 42, 20, 240, 240, + 236, 178, 98, 146, 114, 146, 115, 130, 115, 130, 114, 130, + 130, 130, 114, 146, 83, 168, 178, 114, 146, 130, 130, 130, + 130, 130, 114, 146, 114, 130, 130, 115, 130, 99, 108, 0, + 18, 64, 44, 19, 0, 5, 101, 195, 65, 33, 114, 115, + 98, 146, 82, 161, 82, 177, 81, 193, 66, 240, 34, 240, + 18, 240, 34, 240, 34, 240, 34, 177, 82, 177, 82, 161, + 114, 145, 114, 114, 146, 81, 213, 0, 17, 112, 43, 21, + 0, 5, 123, 194, 98, 162, 130, 146, 145, 146, 146, 130, + 146, 114, 162, 114, 162, 114, 162, 114, 147, 98, 162, 114, + 162, 114, 162, 114, 146, 114, 146, 130, 146, 130, 130, 146, + 98, 139, 0, 19, 80, 42, 20, 240, 240, 238, 131, 114, + 130, 145, 130, 145, 130, 145, 115, 240, 34, 81, 194, 81, + 194, 65, 200, 194, 81, 194, 81, 194, 240, 35, 145, 114, + 161, 114, 145, 130, 130, 115, 114, 110, 0, 18, 32, 41, + 20, 240, 240, 238, 131, 99, 130, 129, 146, 129, 146, 129, + 131, 129, 130, 81, 194, 65, 210, 65, 200, 194, 81, 194, + 81, 194, 240, 35, 240, 34, 240, 50, 240, 50, 240, 35, + 247, 0, 19, 16, 47, 20, 0, 6, 5, 65, 131, 66, + 17, 130, 115, 114, 146, 98, 162, 82, 177, 98, 177, 82, + 240, 50, 240, 35, 240, 34, 240, 50, 134, 66, 162, 98, + 162, 98, 162, 114, 146, 114, 130, 147, 66, 17, 181, 49, + 0, 18, 48, 43, 23, 0, 6, 54, 55, 146, 114, 178, + 130, 178, 130, 178, 130, 178, 114, 179, 114, 178, 130, 178, + 130, 187, 179, 114, 178, 130, 178, 130, 178, 114, 178, 130, + 178, 130, 178, 130, 178, 114, 151, 54, 0, 21, 26, 14, + 240, 240, 55, 146, 194, 194, 178, 194, 194, 179, 178, 194, + 194, 179, 178, 194, 194, 178, 194, 194, 151, 0, 13, 16, + 29, 16, 240, 240, 151, 194, 226, 226, 226, 210, 226, 226, + 226, 210, 226, 226, 211, 210, 226, 115, 66, 115, 50, 129, + 66, 165, 0, 15, 32, 48, 23, 0, 6, 39, 85, 131, + 130, 162, 129, 194, 113, 210, 97, 211, 81, 226, 66, 242, + 49, 240, 34, 35, 243, 17, 18, 242, 17, 35, 227, 66, + 226, 82, 211, 98, 194, 114, 194, 114, 194, 130, 163, 130, + 135, 70, 0, 20, 112, 32, 17, 240, 240, 136, 179, 226, + 242, 242, 227, 226, 242, 242, 227, 226, 242, 242, 129, 82, + 129, 98, 129, 98, 114, 98, 113, 99, 83, 77, 0, 15, + 48, 74, 27, 0, 7, 37, 181, 146, 163, 177, 17, 145, + 18, 177, 17, 145, 18, 177, 18, 113, 18, 177, 34, 113, + 18, 177, 34, 97, 34, 177, 34, 97, 34, 177, 34, 81, + 49, 177, 50, 65, 50, 177, 50, 65, 50, 177, 50, 49, + 66, 177, 50, 49, 65, 177, 81, 33, 66, 177, 83, 82, + 177, 83, 82, 177, 82, 97, 178, 82, 82, 150, 49, 70, + 0, 24, 64, 56, 23, 0, 6, 37, 102, 131, 130, 164, + 113, 177, 18, 113, 177, 18, 97, 177, 35, 81, 177, 50, + 81, 177, 50, 81, 177, 51, 49, 177, 82, 49, 177, 82, + 49, 177, 98, 33, 177, 98, 17, 177, 114, 17, 177, 131, + 177, 131, 177, 130, 178, 145, 149, 129, 0, 21, 32, 43, + 19, 0, 5, 102, 178, 82, 146, 114, 114, 145, 98, 162, + 66, 178, 66, 178, 50, 194, 50, 194, 35, 179, 34, 194, + 50, 194, 50, 178, 66, 178, 66, 162, 98, 130, 114, 114, + 146, 67, 182, 0, 17, 112, 41, 20, 240, 240, 251, 178, + 98, 162, 114, 146, 114, 130, 130, 130, 130, 130, 114, 145, + 130, 130, 98, 169, 178, 240, 50, 240, 34, 240, 50, 240, + 50, 240, 50, 240, 34, 240, 50, 247, 0, 19, 16, 55, + 19, 0, 5, 101, 195, 66, 146, 114, 114, 130, 98, 162, + 66, 178, 66, 178, 50, 194, 50, 194, 50, 194, 34, 194, + 50, 194, 50, 178, 66, 178, 66, 162, 97, 51, 65, 114, + 18, 33, 18, 147, 50, 198, 240, 49, 65, 209, 65, 210, + 33, 229, 243, 240, 240, 240, 44, 19, 240, 240, 202, 179, + 82, 146, 114, 130, 114, 130, 114, 114, 130, 114, 114, 130, + 113, 146, 82, 152, 178, 82, 162, 98, 146, 98, 130, 114, + 130, 114, 130, 99, 130, 99, 33, 66, 115, 33, 39, 84, + 0, 17, 42, 18, 240, 240, 213, 49, 130, 65, 17, 129, + 114, 114, 114, 98, 130, 98, 129, 114, 240, 19, 240, 22, + 215, 244, 240, 18, 97, 146, 97, 146, 97, 146, 82, 130, + 98, 114, 113, 18, 66, 181, 0, 17, 47, 19, 240, 240, + 175, 50, 82, 82, 49, 98, 81, 65, 82, 97, 49, 98, + 97, 49, 98, 97, 162, 240, 18, 240, 34, 240, 34, 240, + 34, 240, 18, 240, 34, 240, 34, 240, 34, 240, 18, 240, + 34, 240, 34, 217, 0, 17, 112, 44, 19, 240, 240, 151, + 69, 82, 145, 114, 145, 114, 129, 114, 145, 114, 145, 114, + 129, 115, 129, 114, 145, 114, 145, 114, 129, 115, 129, 114, + 145, 114, 145, 114, 129, 130, 129, 145, 113, 162, 66, 212, + 0, 18, 16, 44, 19, 240, 240, 134, 101, 66, 161, 98, + 145, 114, 145, 114, 129, 130, 113, 146, 113, 146, 97, 162, + 97, 163, 65, 194, 49, 210, 49, 210, 33, 226, 33, 226, + 17, 243, 240, 19, 240, 18, 240, 33, 0, 18, 64, 69, + 26, 0, 6, 70, 54, 69, 51, 114, 129, 83, 114, 113, + 114, 114, 113, 114, 99, 97, 130, 81, 18, 97, 130, 81, + 18, 81, 146, 65, 34, 81, 146, 65, 34, 65, 162, 49, + 50, 65, 162, 49, 50, 49, 178, 33, 66, 33, 194, 33, + 66, 33, 194, 17, 82, 17, 211, 98, 17, 211, 99, 226, + 115, 226, 114, 241, 130, 0, 24, 48, 51, 23, 0, 6, + 55, 69, 147, 114, 194, 97, 226, 81, 243, 65, 240, 18, + 49, 240, 35, 17, 240, 67, 240, 82, 240, 99, 240, 65, + 18, 240, 49, 34, 240, 49, 35, 240, 17, 66, 241, 83, + 209, 114, 193, 130, 178, 131, 118, 87, 0, 20, 96, 44, + 20, 240, 240, 166, 117, 66, 161, 114, 145, 131, 113, 162, + 97, 178, 97, 179, 65, 210, 49, 226, 33, 244, 240, 34, + 240, 50, 240, 49, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 34, 240, 22, 0, 19, 16, 44, 19, 240, 240, 220, + 115, 98, 129, 114, 129, 130, 129, 114, 145, 98, 240, 18, + 240, 18, 240, 18, 240, 34, 240, 18, 240, 18, 240, 18, + 97, 146, 113, 130, 113, 146, 113, 130, 114, 114, 115, 108, + 0, 17, 64, 31, 12, 115, 129, 177, 177, 177, 161, 177, + 177, 177, 161, 177, 177, 177, 161, 177, 177, 177, 161, 177, + 177, 177, 161, 177, 177, 177, 161, 177, 179, 144, 20, 10, + 240, 193, 65, 49, 65, 49, 65, 49, 81, 49, 83, 19, + 51, 19, 50, 34, 0, 23, 31, 12, 100, 161, 177, 177, + 177, 161, 177, 177, 177, 161, 177, 177, 177, 161, 177, 177, + 177, 161, 177, 177, 177, 161, 177, 177, 177, 177, 161, 147, + 144, 12, 9, 240, 113, 98, 17, 65, 49, 49, 81, 0, + 25, 8, 5, 178, 35, 34, 0, 14, 96, 12, 6, 241, + 65, 65, 65, 81, 83, 51, 50, 0, 14, 34, 13, 0, + 15, 20, 130, 33, 17, 82, 66, 66, 82, 66, 82, 51, + 81, 66, 82, 66, 82, 66, 81, 82, 66, 33, 49, 49, + 17, 33, 67, 50, 0, 11, 96, 36, 12, 240, 180, 161, + 162, 162, 162, 161, 162, 162, 19, 99, 34, 67, 66, 50, + 82, 50, 82, 35, 82, 34, 83, 34, 82, 50, 82, 50, + 66, 82, 34, 116, 0, 11, 32, 25, 11, 0, 12, 116, + 98, 49, 66, 50, 50, 66, 50, 131, 130, 146, 146, 97, + 34, 82, 50, 50, 84, 0, 10, 32, 42, 14, 240, 240, + 100, 194, 194, 193, 209, 194, 194, 116, 17, 114, 33, 17, + 98, 66, 82, 82, 82, 81, 83, 81, 82, 82, 82, 82, + 82, 81, 98, 66, 33, 65, 49, 17, 33, 83, 50, 0, + 12, 96, 25, 11, 0, 12, 116, 98, 49, 66, 65, 50, + 81, 50, 50, 55, 66, 146, 146, 146, 97, 50, 50, 84, + 0, 10, 32, 33, 15, 240, 240, 148, 162, 18, 162, 209, + 210, 210, 210, 167, 162, 210, 210, 210, 209, 210, 210, 210, + 210, 209, 210, 210, 209, 210, 162, 17, 179, 240, 240, 192, + 37, 14, 0, 16, 68, 146, 33, 17, 98, 66, 82, 82, + 82, 82, 67, 81, 82, 82, 82, 82, 82, 82, 82, 66, + 114, 35, 131, 18, 193, 194, 194, 83, 50, 117, 240, 240, + 96, 42, 15, 240, 240, 36, 210, 210, 209, 225, 210, 210, + 210, 20, 129, 17, 50, 99, 66, 98, 82, 98, 82, 82, + 83, 82, 82, 98, 82, 98, 66, 49, 34, 82, 33, 50, + 82, 18, 50, 99, 0, 13, 80, 29, 9, 240, 240, 34, + 99, 240, 240, 163, 81, 34, 49, 50, 49, 35, 98, 114, + 98, 114, 99, 33, 50, 49, 50, 33, 83, 0, 8, 48, + 33, 13, 0, 6, 2, 163, 0, 7, 67, 145, 34, 113, + 50, 97, 66, 97, 66, 162, 178, 178, 163, 162, 178, 178, + 162, 178, 163, 98, 19, 116, 240, 240, 80, 41, 13, 240, + 227, 178, 178, 178, 177, 193, 178, 178, 51, 81, 49, 33, + 66, 33, 34, 66, 17, 147, 161, 18, 130, 50, 98, 50, + 98, 50, 17, 65, 66, 17, 50, 66, 17, 50, 82, 0, + 11, 112, 28, 8, 240, 52, 98, 98, 97, 98, 98, 98, + 82, 98, 98, 98, 82, 98, 98, 82, 98, 33, 50, 33, + 50, 33, 67, 0, 7, 64, 51, 23, 0, 26, 18, 52, + 52, 97, 18, 17, 50, 17, 50, 65, 50, 67, 66, 65, + 34, 82, 82, 114, 82, 82, 113, 97, 83, 98, 82, 82, + 114, 82, 82, 114, 82, 66, 49, 65, 82, 82, 33, 66, + 82, 82, 18, 66, 82, 99, 0, 20, 80, 38, 16, 0, + 18, 34, 52, 97, 18, 17, 50, 65, 35, 66, 65, 34, + 82, 114, 82, 113, 83, 98, 82, 114, 82, 114, 66, 49, + 50, 82, 33, 66, 82, 18, 66, 99, 0, 14, 64, 29, + 13, 0, 15, 36, 114, 50, 82, 82, 50, 98, 50, 98, + 35, 98, 34, 99, 34, 98, 50, 98, 50, 82, 82, 50, + 116, 0, 12, 32, 40, 16, 0, 18, 66, 51, 113, 33, + 17, 34, 97, 34, 66, 65, 49, 82, 114, 82, 114, 82, + 113, 83, 98, 82, 114, 82, 114, 66, 130, 50, 130, 20, + 146, 225, 241, 226, 198, 240, 240, 192, 36, 13, 0, 15, + 20, 33, 82, 33, 17, 82, 66, 66, 82, 66, 82, 51, + 81, 66, 82, 66, 82, 66, 82, 66, 66, 97, 51, 115, + 18, 177, 193, 178, 178, 150, 240, 240, 26, 13, 0, 14, + 114, 51, 65, 33, 17, 34, 49, 34, 50, 33, 34, 178, + 178, 177, 178, 178, 177, 193, 178, 0, 12, 80, 25, 12, + 0, 14, 4, 113, 65, 82, 66, 65, 66, 82, 165, 149, + 162, 50, 82, 50, 81, 65, 82, 85, 0, 11, 32, 29, + 10, 240, 240, 82, 129, 145, 130, 130, 130, 72, 82, 130, + 130, 114, 130, 130, 115, 49, 50, 49, 66, 49, 66, 33, + 99, 0, 9, 48, 38, 15, 0, 17, 19, 97, 66, 18, + 66, 65, 34, 66, 49, 50, 66, 98, 81, 114, 66, 99, + 66, 98, 81, 114, 66, 33, 66, 66, 33, 66, 49, 17, + 17, 100, 35, 0, 13, 64, 33, 13, 0, 14, 115, 66, + 50, 18, 50, 49, 34, 65, 33, 50, 65, 82, 81, 82, + 65, 83, 65, 82, 81, 82, 65, 98, 65, 99, 33, 147, + 0, 12, 16, 46, 18, 0, 20, 67, 81, 50, 50, 18, + 66, 34, 49, 34, 50, 65, 33, 50, 50, 65, 82, 66, + 65, 82, 66, 49, 83, 50, 65, 82, 66, 65, 82, 66, + 65, 82, 66, 49, 114, 33, 17, 49, 131, 36, 0, 16, + 48, 31, 15, 0, 17, 36, 35, 82, 35, 49, 65, 51, + 34, 49, 66, 210, 210, 194, 210, 210, 65, 50, 34, 65, + 65, 51, 34, 83, 36, 0, 13, 96, 41, 14, 0, 16, + 3, 97, 50, 18, 66, 49, 34, 66, 33, 50, 66, 82, + 66, 98, 66, 83, 66, 82, 81, 98, 66, 98, 66, 98, + 51, 116, 17, 194, 194, 98, 50, 114, 34, 132, 240, 240, + 112, 25, 12, 0, 14, 2, 148, 33, 65, 51, 161, 161, + 161, 161, 161, 161, 81, 67, 50, 49, 52, 65, 51, 0, + 11, 16, 8, 14, 0, 22, 108, 0, 24, 96, 9, 27, + 0, 43, 127, 10, 0, 47, 64, 16, 10, 240, 114, 34, + 66, 34, 50, 34, 65, 49, 65, 49, 0, 26, 112, 13, + 11, 240, 147, 49, 49, 33, 33, 49, 66, 0, 32, 16,}; + +//***************************************************************************** +// +// The font definition for the 28 point Cm italic font. +// +//***************************************************************************** +const tFont g_sFontCm28i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 24, + + // + // The height of the font. + // + 28, + + // + // The baseline of the font. + // + 21, + + // + // The offset to each character in the font. + // + { + 0, 5, 29, 51, 105, 149, 220, 279, + 292, 323, 354, 378, 419, 433, 441, 451, + 510, 553, 578, 622, 662, 700, 736, 776, + 814, 855, 895, 910, 929, 954, 967, 1002, + 1035, 1103, 1148, 1190, 1234, 1277, 1319, 1360, + 1407, 1450, 1476, 1505, 1553, 1585, 1659, 1715, + 1758, 1799, 1854, 1898, 1940, 1987, 2031, 2075, + 2144, 2195, 2239, 2283, 2314, 2334, 2365, 2377, + 2385, 2397, 2431, 2467, 2492, 2534, 2559, 2592, + 2629, 2671, 2700, 2733, 2774, 2802, 2853, 2891, + 2920, 2960, 2996, 3022, 3047, 3076, 3114, 3147, + 3193, 3224, 3265, 3290, 3298, 3307, 3323, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm28iData +}; diff --git a/grlib/fonts/fontcm30.c b/grlib/fonts/fontcm30.c new file mode 100644 index 0000000..0b674c2 --- /dev/null +++ b/grlib/fonts/fontcm30.c @@ -0,0 +1,398 @@ +//***************************************************************************** +// +// fontcm30.c - Font definition for the 30pt Cm font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 30 point +// Bold: no +// Italic: no +// Memory usage: 3700 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 30 point Cm font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm30Data[3500] = +{ + 5, 13, 0, 50, 48, 24, 5, 82, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 49, 65, 65, 65, 65, 240, + 146, 50, 240, 240, 208, 24, 12, 240, 146, 66, 67, 51, + 81, 81, 81, 81, 81, 81, 81, 81, 65, 81, 81, 81, + 65, 81, 0, 30, 80, 66, 23, 0, 6, 114, 81, 241, + 97, 241, 81, 240, 17, 81, 242, 81, 241, 97, 241, 81, + 240, 17, 81, 242, 81, 241, 97, 143, 5, 161, 81, 241, + 97, 241, 97, 241, 81, 240, 17, 81, 175, 5, 129, 97, + 241, 82, 241, 81, 240, 17, 81, 241, 97, 241, 82, 241, + 81, 240, 17, 81, 241, 97, 241, 81, 0, 7, 48, 57, + 15, 81, 225, 198, 130, 17, 50, 82, 33, 65, 66, 49, + 81, 50, 49, 51, 50, 49, 51, 50, 49, 147, 33, 165, + 182, 182, 161, 35, 145, 51, 129, 66, 51, 33, 66, 51, + 33, 66, 49, 65, 66, 49, 65, 65, 81, 49, 50, 82, + 33, 34, 133, 193, 225, 0, 12, 48, 76, 24, 51, 177, + 129, 34, 146, 114, 51, 99, 113, 65, 38, 17, 114, 81, + 113, 130, 81, 98, 130, 81, 97, 146, 81, 81, 162, 81, + 66, 177, 81, 65, 194, 49, 65, 225, 34, 50, 243, 65, + 83, 225, 66, 34, 194, 66, 49, 193, 66, 81, 161, 82, + 81, 146, 82, 81, 145, 98, 81, 129, 114, 81, 114, 114, + 81, 113, 146, 49, 114, 146, 49, 113, 195, 0, 21, 80, + 67, 22, 240, 211, 240, 50, 18, 240, 33, 49, 240, 18, + 49, 240, 18, 49, 240, 18, 49, 240, 18, 33, 240, 34, + 33, 240, 49, 17, 240, 67, 101, 130, 130, 162, 129, 161, + 18, 97, 161, 49, 97, 145, 66, 65, 145, 97, 65, 130, + 98, 33, 146, 115, 162, 130, 97, 66, 114, 97, 67, 66, + 34, 49, 117, 84, 0, 22, 80, 14, 6, 194, 67, 81, + 81, 81, 81, 65, 81, 65, 0, 15, 80, 34, 10, 97, + 129, 129, 130, 129, 130, 129, 130, 130, 130, 129, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 146, 130, 130, 145, + 146, 145, 146, 145, 161, 161, 48, 34, 10, 1, 161, 161, + 146, 145, 146, 145, 146, 130, 130, 146, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 114, 130, 130, 129, 130, 129, + 130, 129, 129, 129, 144, 29, 13, 66, 178, 177, 129, 49, + 65, 50, 33, 50, 83, 18, 146, 178, 147, 18, 82, 33, + 50, 49, 49, 65, 113, 194, 178, 0, 28, 64, 43, 23, + 0, 18, 50, 240, 98, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 98, 207, 5, 194, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 0, 18, 96, 14, 6, 0, 15, 98, 67, 81, + 81, 81, 65, 81, 65, 240, 32, 8, 11, 0, 22, 8, + 0, 19, 80, 9, 5, 0, 13, 18, 50, 240, 240, 208, + 34, 14, 161, 209, 193, 209, 209, 193, 209, 209, 193, 209, + 209, 193, 209, 209, 193, 209, 209, 193, 209, 209, 193, 209, + 209, 193, 209, 209, 193, 209, 209, 193, 209, 208, 45, 15, + 0, 6, 20, 146, 66, 113, 98, 82, 98, 81, 129, 66, + 130, 50, 130, 50, 130, 50, 130, 50, 130, 50, 130, 50, + 130, 50, 130, 50, 130, 50, 130, 65, 130, 66, 98, 97, + 98, 98, 66, 148, 0, 15, 112, 28, 13, 240, 240, 225, + 163, 115, 18, 178, 178, 178, 178, 178, 178, 178, 178, 178, + 178, 178, 178, 178, 178, 178, 178, 122, 0, 13, 48, 36, + 14, 240, 240, 245, 129, 66, 97, 98, 65, 115, 49, 130, + 50, 114, 50, 114, 194, 193, 194, 178, 193, 193, 193, 193, + 193, 97, 81, 113, 65, 129, 74, 58, 0, 14, 64, 36, + 15, 0, 6, 6, 129, 82, 97, 114, 82, 98, 82, 98, + 210, 210, 194, 194, 149, 242, 226, 226, 210, 65, 130, 51, + 114, 50, 130, 65, 114, 97, 82, 134, 0, 15, 96, 37, + 16, 0, 7, 17, 226, 226, 196, 193, 18, 177, 34, 177, + 34, 161, 50, 145, 66, 145, 66, 129, 82, 113, 98, 113, + 98, 97, 114, 109, 178, 226, 226, 226, 184, 0, 16, 48, + 36, 14, 240, 240, 226, 81, 103, 117, 145, 209, 209, 209, + 209, 20, 130, 50, 113, 82, 209, 210, 194, 194, 66, 98, + 51, 98, 49, 130, 65, 98, 97, 66, 133, 0, 14, 96, + 43, 14, 0, 5, 116, 130, 65, 98, 66, 97, 82, 82, + 193, 209, 194, 36, 98, 17, 50, 83, 82, 66, 113, 66, + 114, 50, 114, 50, 114, 50, 114, 65, 114, 66, 97, 82, + 82, 98, 50, 133, 0, 14, 96, 31, 15, 240, 240, 17, + 235, 75, 49, 145, 65, 145, 65, 129, 209, 225, 209, 209, + 225, 225, 210, 209, 225, 225, 210, 210, 210, 210, 210, 0, + 16, 16, 43, 16, 0, 6, 69, 161, 67, 113, 99, 97, + 114, 82, 114, 82, 114, 98, 82, 115, 65, 165, 195, 178, + 35, 129, 84, 82, 114, 66, 146, 50, 146, 50, 146, 50, + 145, 82, 114, 98, 82, 149, 0, 16, 112, 41, 14, 0, + 5, 100, 130, 50, 98, 82, 81, 113, 66, 113, 66, 114, + 50, 114, 50, 114, 50, 114, 65, 114, 66, 83, 82, 49, + 18, 100, 34, 194, 193, 194, 193, 98, 66, 97, 66, 132, + 0, 15, 13, 5, 0, 6, 34, 50, 0, 6, 2, 50, + 240, 240, 208, 18, 6, 0, 7, 67, 51, 0, 7, 19, + 51, 81, 81, 81, 65, 81, 65, 240, 32, 24, 5, 240, + 240, 162, 50, 240, 129, 65, 65, 65, 81, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 128, 13, 22, 0, + 33, 15, 4, 0, 14, 31, 4, 0, 33, 48, 31, 13, + 0, 13, 66, 178, 0, 6, 49, 193, 193, 193, 193, 177, + 193, 177, 177, 177, 178, 178, 98, 50, 98, 50, 113, 66, + 81, 102, 240, 240, 16, 32, 14, 240, 37, 129, 82, 81, + 114, 49, 130, 50, 114, 50, 114, 194, 178, 178, 193, 193, + 209, 193, 209, 209, 209, 209, 0, 6, 99, 179, 0, 14, + 112, 74, 22, 240, 230, 226, 83, 177, 146, 145, 178, 113, + 84, 65, 98, 50, 65, 65, 81, 50, 97, 49, 81, 50, + 114, 18, 49, 50, 130, 33, 49, 50, 130, 33, 49, 50, + 130, 33, 49, 50, 130, 33, 49, 50, 130, 33, 49, 50, + 130, 33, 65, 50, 114, 33, 65, 50, 99, 33, 66, 50, + 65, 18, 17, 97, 84, 51, 113, 240, 113, 194, 130, 115, + 199, 0, 23, 54, 22, 240, 240, 17, 240, 97, 240, 83, + 240, 67, 240, 49, 18, 240, 49, 19, 240, 33, 34, 240, + 17, 50, 240, 17, 51, 241, 66, 225, 82, 225, 83, 209, + 98, 193, 114, 203, 177, 130, 161, 146, 161, 162, 129, 178, + 129, 178, 114, 179, 85, 134, 0, 22, 48, 46, 19, 240, + 240, 140, 146, 115, 114, 131, 98, 146, 98, 146, 98, 146, + 98, 146, 98, 130, 114, 113, 155, 130, 115, 114, 146, 98, + 147, 82, 162, 82, 162, 82, 162, 82, 162, 82, 146, 98, + 146, 98, 115, 92, 0, 19, 112, 49, 21, 0, 6, 22, + 65, 131, 81, 49, 114, 129, 18, 97, 179, 82, 194, 66, + 210, 66, 225, 50, 241, 50, 240, 66, 240, 66, 240, 66, + 240, 66, 240, 66, 241, 66, 225, 66, 225, 82, 193, 114, + 177, 115, 145, 163, 82, 214, 0, 22, 47, 21, 240, 240, + 204, 178, 115, 146, 146, 130, 162, 114, 177, 114, 178, 98, + 193, 98, 194, 82, 194, 82, 194, 82, 194, 82, 194, 82, + 194, 82, 194, 82, 193, 98, 178, 98, 178, 98, 162, 114, + 146, 130, 115, 124, 0, 22, 16, 48, 20, 240, 240, 175, + 114, 147, 98, 162, 98, 177, 98, 177, 98, 177, 98, 97, + 65, 98, 97, 178, 97, 178, 82, 185, 178, 82, 178, 97, + 178, 97, 178, 193, 82, 193, 82, 177, 98, 177, 98, 177, + 98, 147, 79, 1, 0, 20, 64, 46, 18, 240, 240, 110, + 98, 130, 98, 145, 98, 145, 98, 161, 82, 161, 82, 81, + 65, 82, 81, 162, 81, 162, 66, 168, 162, 66, 162, 81, + 162, 81, 162, 240, 18, 240, 18, 240, 18, 240, 18, 240, + 18, 231, 0, 19, 48, 51, 23, 0, 6, 86, 65, 163, + 82, 33, 146, 132, 130, 163, 114, 194, 98, 225, 98, 225, + 97, 241, 82, 240, 98, 240, 98, 240, 98, 240, 98, 240, + 98, 168, 66, 210, 98, 210, 114, 194, 115, 178, 131, 162, + 163, 97, 33, 199, 49, 0, 23, 80, 48, 20, 240, 240, + 166, 86, 82, 146, 114, 146, 114, 146, 114, 146, 114, 146, + 114, 146, 114, 146, 114, 146, 114, 146, 125, 114, 146, 114, + 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, + 146, 114, 146, 86, 86, 0, 20, 48, 27, 11, 240, 120, + 98, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 104, 0, 11, 48, 31, + 14, 240, 240, 39, 162, 194, 194, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 83, 66, 83, 66, 83, + 65, 113, 66, 132, 0, 15, 51, 22, 240, 240, 230, 117, + 98, 162, 130, 161, 146, 145, 162, 129, 178, 113, 194, 97, + 210, 81, 226, 65, 242, 51, 226, 33, 19, 210, 17, 50, + 211, 82, 194, 99, 178, 114, 178, 130, 162, 131, 146, 146, + 146, 162, 130, 163, 86, 118, 0, 22, 48, 34, 17, 240, + 240, 71, 194, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 145, 82, 145, 82, 145, 82, 145, 82, + 130, 82, 115, 62, 0, 17, 48, 83, 25, 0, 6, 37, + 212, 83, 195, 113, 17, 177, 18, 113, 18, 161, 18, 113, + 18, 161, 18, 113, 34, 129, 34, 113, 34, 129, 34, 113, + 34, 129, 34, 113, 50, 97, 50, 113, 50, 97, 50, 113, + 50, 97, 50, 113, 66, 65, 66, 113, 66, 65, 66, 113, + 81, 49, 82, 113, 82, 33, 82, 113, 82, 33, 82, 113, + 97, 17, 98, 113, 99, 98, 113, 99, 98, 99, 97, 114, + 85, 81, 86, 0, 25, 48, 63, 20, 240, 240, 165, 117, + 83, 131, 97, 18, 129, 113, 18, 129, 113, 34, 113, 113, + 34, 113, 113, 50, 97, 113, 51, 81, 113, 66, 81, 113, + 82, 65, 113, 82, 65, 113, 98, 49, 113, 98, 49, 113, + 114, 33, 113, 115, 17, 113, 130, 17, 113, 147, 113, 147, + 113, 162, 99, 146, 85, 145, 0, 20, 80, 47, 22, 0, + 6, 53, 242, 82, 178, 146, 130, 178, 113, 209, 98, 210, + 82, 210, 66, 242, 50, 242, 50, 242, 50, 242, 50, 242, + 50, 242, 50, 242, 66, 210, 82, 210, 98, 178, 114, 178, + 130, 146, 178, 82, 245, 0, 23, 32, 45, 18, 240, 240, + 107, 146, 114, 114, 130, 98, 146, 82, 146, 82, 146, 82, + 146, 82, 146, 82, 130, 98, 114, 121, 146, 240, 18, 240, + 18, 240, 18, 240, 18, 240, 18, 240, 18, 240, 18, 240, + 18, 230, 0, 19, 64, 67, 22, 0, 6, 54, 227, 82, + 178, 130, 146, 162, 114, 194, 82, 210, 82, 210, 66, 242, + 50, 242, 50, 242, 50, 242, 50, 242, 50, 242, 50, 242, + 66, 225, 82, 210, 98, 83, 65, 130, 49, 49, 34, 146, + 33, 49, 18, 180, 65, 247, 240, 97, 65, 240, 17, 65, + 240, 18, 49, 240, 33, 49, 240, 36, 240, 67, 0, 6, + 49, 22, 240, 240, 235, 210, 99, 178, 130, 162, 146, 146, + 146, 146, 146, 146, 146, 146, 145, 162, 130, 162, 99, 184, + 226, 98, 194, 114, 178, 130, 162, 130, 162, 130, 162, 130, + 162, 130, 162, 130, 65, 82, 131, 49, 54, 132, 0, 22, + 64, 44, 16, 240, 240, 85, 49, 98, 65, 33, 82, 99, + 66, 130, 66, 145, 66, 145, 66, 145, 67, 228, 214, 199, + 197, 226, 227, 49, 162, 49, 162, 49, 162, 50, 146, 51, + 114, 65, 33, 82, 81, 54, 0, 16, 96, 52, 22, 240, + 240, 255, 3, 66, 98, 98, 65, 114, 113, 65, 114, 113, + 65, 114, 113, 49, 130, 113, 194, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 40, 0, + 23, 48, 20, 240, 240, 166, 101, 82, 147, 98, 161, 114, + 161, 114, 161, 114, 161, 114, 161, 114, 161, 114, 161, 114, + 161, 114, 161, 114, 161, 114, 161, 114, 161, 114, 161, 114, + 161, 129, 146, 130, 129, 161, 113, 194, 66, 213, 0, 21, + 16, 54, 23, 0, 5, 102, 149, 83, 178, 130, 177, 146, + 177, 146, 177, 162, 145, 178, 145, 179, 129, 194, 113, 210, + 113, 226, 81, 242, 81, 243, 65, 240, 18, 49, 240, 34, + 49, 240, 50, 17, 240, 66, 17, 240, 66, 17, 240, 82, + 240, 98, 240, 98, 0, 24, 64, 79, 31, 0, 7, 102, + 86, 101, 82, 146, 161, 114, 146, 161, 130, 146, 129, 146, + 131, 129, 146, 131, 129, 162, 97, 34, 97, 178, 97, 34, + 97, 178, 97, 34, 97, 194, 65, 66, 65, 210, 65, 66, + 65, 210, 65, 66, 65, 211, 33, 98, 33, 242, 33, 98, + 33, 242, 33, 98, 33, 244, 115, 17, 240, 19, 131, 240, + 35, 131, 240, 35, 131, 240, 49, 161, 240, 65, 161, 0, + 32, 48, 55, 23, 0, 5, 103, 102, 114, 147, 147, 129, + 194, 129, 210, 97, 227, 65, 240, 19, 49, 240, 34, 33, + 240, 67, 240, 83, 240, 98, 240, 81, 18, 240, 49, 35, + 240, 33, 50, 240, 17, 82, 225, 99, 209, 114, 193, 146, + 161, 163, 130, 179, 85, 150, 0, 23, 48, 51, 23, 0, + 5, 102, 149, 83, 178, 130, 177, 147, 161, 162, 145, 194, + 113, 211, 97, 226, 81, 243, 65, 240, 18, 49, 240, 50, + 17, 240, 68, 240, 82, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 98, 240, 70, 0, 24, 32, + 40, 17, 240, 240, 78, 51, 131, 50, 146, 65, 146, 81, + 146, 81, 130, 97, 114, 242, 226, 227, 226, 226, 242, 226, + 226, 129, 98, 129, 82, 145, 81, 161, 66, 146, 50, 147, + 62, 0, 17, 48, 34, 8, 5, 50, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 101, 48, 22, 11, 240, 145, 65, 65, 65, 81, 65, 65, + 65, 81, 65, 81, 65, 83, 35, 66, 50, 0, 29, 32, + 34, 8, 5, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 53, 48, 14, 10, + 240, 129, 129, 17, 97, 49, 81, 65, 49, 0, 31, 16, + 7, 5, 240, 82, 50, 0, 16, 13, 6, 225, 65, 81, + 65, 81, 81, 83, 66, 0, 16, 16, 36, 16, 0, 20, + 52, 177, 66, 129, 98, 114, 82, 114, 82, 166, 131, 50, + 114, 82, 98, 98, 33, 50, 98, 33, 50, 83, 33, 51, + 49, 18, 33, 84, 51, 0, 16, 64, 43, 16, 240, 240, + 36, 226, 226, 226, 226, 226, 226, 226, 226, 36, 130, 17, + 50, 115, 82, 98, 113, 98, 114, 82, 114, 82, 114, 82, + 114, 82, 114, 82, 113, 99, 82, 97, 33, 50, 113, 51, + 0, 16, 112, 25, 13, 0, 16, 100, 114, 66, 66, 82, + 65, 98, 50, 178, 178, 178, 178, 194, 178, 81, 98, 65, + 132, 0, 13, 80, 43, 17, 240, 240, 196, 242, 242, 242, + 242, 242, 242, 242, 148, 34, 114, 65, 18, 98, 99, 98, + 114, 82, 130, 82, 130, 82, 130, 82, 130, 82, 130, 98, + 114, 98, 99, 114, 65, 20, 116, 36, 0, 17, 48, 27, + 14, 0, 18, 4, 130, 51, 82, 82, 81, 114, 50, 114, + 59, 50, 194, 194, 210, 113, 66, 97, 98, 66, 132, 0, + 14, 96, 30, 11, 243, 114, 33, 97, 34, 82, 34, 82, + 146, 146, 146, 146, 119, 98, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 118, 0, 11, 80, 43, 16, 0, 18, + 67, 36, 82, 50, 34, 81, 66, 130, 82, 114, 82, 114, + 82, 114, 82, 129, 81, 146, 50, 129, 35, 161, 241, 242, + 248, 114, 114, 66, 146, 50, 146, 50, 146, 67, 83, 119, + 240, 240, 128, 42, 17, 240, 240, 68, 242, 242, 242, 242, + 242, 242, 242, 242, 36, 146, 17, 50, 131, 82, 114, 98, + 114, 98, 114, 98, 114, 98, 114, 98, 114, 98, 114, 98, + 114, 98, 114, 98, 86, 38, 0, 17, 48, 24, 9, 240, + 240, 115, 99, 240, 240, 180, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 86, 0, 9, 48, 31, 10, 240, + 240, 227, 115, 0, 5, 100, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 50, 50, 49, + 50, 84, 240, 160, 41, 17, 240, 240, 68, 242, 242, 242, + 242, 242, 242, 242, 242, 69, 98, 82, 130, 65, 162, 49, + 178, 33, 194, 19, 179, 33, 178, 50, 162, 66, 146, 81, + 146, 82, 130, 98, 86, 53, 0, 17, 48, 27, 9, 240, + 52, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 86, 0, 9, 48, + 48, 25, 0, 31, 51, 36, 68, 116, 17, 50, 33, 50, + 131, 83, 82, 114, 98, 98, 114, 98, 98, 114, 98, 98, + 114, 98, 98, 114, 98, 98, 114, 98, 98, 114, 98, 98, + 114, 98, 98, 114, 98, 98, 86, 38, 38, 0, 25, 48, + 34, 17, 0, 21, 51, 36, 116, 17, 50, 131, 82, 114, + 98, 114, 98, 114, 98, 114, 98, 114, 98, 114, 98, 114, + 98, 114, 98, 114, 98, 86, 38, 0, 17, 48, 31, 15, + 0, 19, 36, 146, 66, 98, 98, 81, 129, 66, 130, 50, + 130, 50, 130, 50, 130, 50, 130, 65, 129, 82, 98, 98, + 66, 148, 0, 15, 112, 41, 16, 0, 20, 19, 36, 100, + 17, 50, 115, 82, 98, 98, 98, 114, 82, 114, 82, 114, + 82, 114, 82, 114, 82, 98, 99, 82, 98, 17, 50, 114, + 35, 146, 226, 226, 226, 226, 198, 240, 240, 192, 41, 17, + 0, 21, 100, 49, 115, 49, 33, 98, 99, 98, 114, 82, + 130, 82, 130, 82, 130, 82, 130, 82, 130, 98, 114, 98, + 99, 114, 65, 18, 148, 34, 242, 242, 242, 242, 242, 214, + 240, 240, 112, 24, 12, 0, 15, 19, 34, 68, 17, 18, + 83, 34, 82, 162, 162, 162, 162, 162, 162, 162, 162, 134, + 0, 12, 96, 30, 13, 0, 16, 69, 17, 82, 66, 66, + 97, 66, 97, 67, 81, 85, 166, 179, 49, 114, 49, 114, + 50, 98, 51, 66, 65, 37, 0, 13, 80, 31, 12, 0, + 6, 65, 177, 177, 177, 162, 147, 121, 98, 162, 162, 162, + 162, 162, 162, 49, 98, 49, 98, 49, 98, 49, 114, 17, + 147, 0, 12, 64, 34, 17, 0, 21, 36, 68, 114, 98, + 114, 98, 114, 98, 114, 98, 114, 98, 114, 98, 114, 98, + 114, 98, 114, 98, 114, 83, 130, 49, 20, 116, 36, 0, + 17, 48, 29, 17, 0, 21, 37, 84, 82, 113, 114, 113, + 130, 81, 146, 81, 161, 65, 178, 49, 178, 49, 194, 17, + 210, 17, 226, 242, 0, 20, 32, 47, 23, 0, 28, 101, + 38, 52, 82, 82, 97, 114, 97, 97, 129, 83, 65, 146, + 67, 65, 146, 49, 33, 65, 161, 49, 34, 33, 178, 33, + 34, 33, 178, 17, 65, 33, 193, 17, 67, 211, 82, 210, + 98, 225, 97, 0, 24, 16, 31, 17, 0, 21, 37, 69, + 82, 98, 130, 65, 178, 49, 193, 33, 211, 242, 225, 18, + 194, 33, 193, 65, 161, 82, 130, 98, 84, 85, 0, 17, + 48, 40, 17, 0, 21, 37, 84, 82, 113, 114, 113, 129, + 97, 146, 81, 161, 65, 178, 49, 178, 33, 210, 17, 210, + 17, 226, 242, 241, 240, 17, 240, 17, 241, 178, 49, 177, + 49, 211, 0, 5, 112, 28, 14, 0, 17, 75, 50, 113, + 65, 114, 65, 98, 81, 82, 178, 193, 193, 194, 81, 82, + 97, 66, 113, 65, 114, 59, 0, 14, 48, 8, 17, 0, + 29, 110, 0, 34, 48, 9, 31, 0, 54, 47, 13, 0, + 62, 48, 18, 10, 240, 113, 49, 66, 34, 65, 49, 81, + 49, 65, 49, 81, 49, 0, 29, 48, 12, 12, 240, 240, + 130, 145, 34, 18, 49, 67, 0, 38, +}; + +//***************************************************************************** +// +// The font definition for the 30 point Cm font. +// +//***************************************************************************** +const tFont g_sFontCm30 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 27, + + // + // The height of the font. + // + 31, + + // + // The baseline of the font. + // + 23, + + // + // The offset to each character in the font. + // + { + 0, 5, 29, 53, 119, 176, 252, 319, + 333, 367, 401, 430, 473, 487, 495, 504, + 538, 583, 611, 647, 683, 720, 756, 799, + 830, 873, 914, 927, 945, 969, 982, 1013, + 1045, 1119, 1173, 1219, 1268, 1315, 1363, 1409, + 1460, 1508, 1535, 1566, 1617, 1651, 1734, 1797, + 1844, 1889, 1956, 2005, 2049, 2101, 2149, 2203, + 2282, 2337, 2388, 2428, 2462, 2484, 2518, 2532, + 2539, 2552, 2588, 2631, 2656, 2699, 2726, 2756, + 2799, 2841, 2865, 2896, 2937, 2964, 3012, 3046, + 3077, 3118, 3159, 3183, 3213, 3244, 3278, 3307, + 3354, 3385, 3425, 3453, 3461, 3470, 3488, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm30Data +}; diff --git a/grlib/fonts/fontcm30b.c b/grlib/fonts/fontcm30b.c new file mode 100644 index 0000000..e892633 --- /dev/null +++ b/grlib/fonts/fontcm30b.c @@ -0,0 +1,386 @@ +//***************************************************************************** +// +// fontcm30b.c - Font definition for the 30pt Cm bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 30 point +// Bold: yes +// Italic: no +// Memory usage: 3572 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 30 point Cm bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm30bData[3372] = +{ + 5, 13, 0, 48, 96, 25, 8, 147, 69, 53, 53, 53, + 53, 67, 83, 83, 83, 83, 83, 83, 97, 113, 227, 69, + 53, 53, 67, 0, 8, 64, 27, 15, 240, 240, 19, 67, + 69, 37, 53, 37, 53, 37, 68, 52, 113, 97, 98, 82, + 97, 97, 97, 97, 97, 97, 0, 34, 64, 69, 24, 0, + 7, 33, 82, 242, 82, 242, 81, 240, 18, 66, 240, 17, + 82, 242, 82, 242, 81, 240, 18, 66, 240, 17, 82, 143, + 6, 162, 66, 240, 18, 66, 242, 82, 242, 82, 242, 66, + 240, 18, 66, 175, 6, 130, 81, 240, 18, 66, 240, 17, + 82, 242, 82, 242, 81, 240, 18, 66, 240, 17, 82, 242, + 82, 242, 81, 0, 7, 80, 56, 14, 81, 209, 167, 99, + 17, 34, 81, 49, 50, 50, 49, 35, 50, 49, 35, 50, + 49, 35, 51, 33, 34, 70, 151, 136, 119, 145, 20, 66, + 33, 35, 51, 33, 50, 51, 33, 50, 51, 33, 50, 50, + 49, 50, 65, 49, 34, 83, 17, 18, 118, 177, 209, 0, + 11, 64, 74, 24, 36, 178, 98, 34, 147, 98, 51, 84, + 99, 49, 25, 115, 49, 115, 115, 49, 114, 131, 49, 98, + 147, 49, 83, 147, 49, 82, 178, 49, 66, 195, 17, 67, + 211, 82, 240, 98, 83, 211, 51, 33, 194, 66, 50, 162, + 67, 65, 162, 67, 65, 146, 83, 65, 130, 99, 65, 130, + 99, 65, 114, 115, 65, 98, 146, 49, 114, 147, 33, 98, + 195, 0, 18, 80, 58, 23, 240, 228, 240, 50, 33, 240, + 34, 65, 243, 65, 243, 65, 243, 65, 243, 49, 240, 20, + 17, 240, 37, 102, 115, 146, 148, 129, 164, 114, 145, 20, + 82, 146, 21, 65, 147, 36, 50, 132, 52, 33, 148, 69, + 164, 84, 97, 52, 100, 81, 68, 55, 50, 101, 85, 0, + 23, 80, 16, 8, 240, 35, 69, 53, 53, 68, 113, 98, + 97, 97, 97, 0, 18, 96, 32, 10, 97, 129, 130, 114, + 115, 114, 130, 115, 115, 114, 115, 115, 115, 115, 115, 115, + 115, 115, 115, 115, 131, 115, 115, 130, 131, 130, 146, 145, + 161, 208, 33, 10, 1, 161, 146, 146, 131, 130, 131, 115, + 130, 131, 115, 115, 115, 115, 115, 115, 115, 115, 115, 114, + 130, 115, 115, 114, 115, 114, 114, 129, 129, 240, 64, 26, + 14, 67, 179, 179, 114, 35, 34, 51, 33, 35, 73, 131, + 151, 84, 17, 20, 51, 19, 19, 115, 179, 179, 0, 30, + 80, 45, 23, 0, 15, 66, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 207, 5, + 194, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 98, 0, 15, 112, 17, 8, + 0, 17, 19, 69, 53, 53, 68, 113, 113, 97, 113, 97, + 97, 240, 112, 10, 11, 0, 19, 40, 56, 56, 0, 18, + 32, 12, 8, 0, 17, 19, 69, 53, 53, 67, 0, 8, + 64, 33, 14, 146, 194, 194, 178, 194, 194, 178, 194, 194, + 178, 194, 194, 178, 194, 194, 178, 194, 194, 178, 194, 194, + 178, 194, 194, 178, 194, 194, 178, 194, 194, 192, 43, 15, + 0, 6, 21, 130, 66, 98, 98, 82, 98, 82, 99, 51, + 99, 51, 99, 51, 99, 51, 99, 51, 99, 51, 99, 51, + 99, 51, 99, 51, 99, 51, 99, 66, 98, 82, 98, 98, + 66, 133, 0, 15, 112, 26, 13, 240, 240, 241, 163, 103, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 121, 0, 13, 48, 34, 15, 0, 6, 5, + 130, 52, 83, 68, 68, 68, 52, 68, 66, 84, 180, 179, + 180, 179, 178, 194, 194, 81, 113, 82, 97, 98, 90, 74, + 75, 75, 0, 15, 64, 36, 16, 0, 6, 69, 146, 52, + 99, 68, 84, 52, 84, 52, 98, 68, 195, 195, 164, 244, + 212, 196, 197, 67, 69, 53, 53, 53, 53, 52, 68, 83, + 52, 134, 0, 16, 112, 34, 15, 0, 6, 82, 210, 195, + 180, 180, 161, 19, 146, 19, 145, 35, 129, 51, 114, 51, + 113, 67, 97, 83, 82, 83, 92, 163, 195, 195, 195, 152, + 0, 15, 48, 35, 14, 240, 240, 217, 88, 103, 118, 130, + 194, 194, 194, 20, 114, 51, 97, 83, 180, 164, 66, 68, + 52, 52, 52, 52, 51, 68, 50, 83, 82, 51, 132, 0, + 14, 112, 41, 15, 0, 6, 37, 131, 50, 99, 51, 99, + 51, 83, 67, 83, 180, 180, 20, 101, 35, 84, 67, 68, + 68, 52, 68, 52, 68, 52, 68, 67, 68, 67, 68, 67, + 67, 99, 35, 149, 0, 15, 96, 29, 15, 0, 5, 107, + 74, 90, 74, 82, 97, 98, 81, 113, 82, 209, 210, 209, + 210, 210, 210, 195, 195, 195, 195, 195, 195, 0, 16, 16, + 40, 16, 0, 6, 69, 146, 67, 113, 114, 82, 114, 83, + 98, 84, 82, 86, 34, 120, 136, 152, 114, 23, 83, 54, + 51, 85, 51, 100, 51, 115, 51, 115, 67, 98, 99, 66, + 134, 0, 16, 112, 41, 15, 0, 6, 6, 131, 35, 99, + 67, 68, 67, 68, 68, 52, 68, 52, 68, 52, 68, 52, + 68, 67, 68, 83, 37, 100, 20, 180, 67, 67, 83, 67, + 83, 67, 83, 51, 98, 51, 133, 0, 16, 18, 8, 0, + 9, 19, 69, 53, 53, 67, 240, 227, 69, 53, 53, 67, + 0, 8, 64, 23, 8, 0, 9, 19, 69, 53, 53, 67, + 240, 227, 69, 53, 53, 68, 113, 98, 97, 113, 97, 97, + 240, 112, 26, 8, 0, 7, 19, 69, 53, 53, 67, 240, + 113, 113, 99, 83, 83, 83, 83, 83, 69, 53, 53, 53, + 53, 67, 240, 80, 12, 23, 0, 31, 95, 5, 0, 17, + 95, 5, 0, 32, 33, 13, 0, 11, 99, 149, 133, 133, + 147, 240, 240, 113, 193, 193, 193, 178, 177, 178, 163, 147, + 82, 51, 67, 51, 67, 51, 67, 66, 66, 101, 240, 240, + 32, 31, 12, 229, 97, 66, 67, 51, 51, 51, 51, 51, + 50, 67, 131, 146, 162, 146, 161, 177, 177, 177, 177, 240, + 115, 132, 132, 132, 147, 0, 12, 96, 69, 22, 240, 215, + 211, 83, 162, 146, 129, 209, 98, 69, 66, 81, 66, 50, + 65, 81, 51, 67, 33, 65, 66, 83, 49, 49, 51, 83, + 49, 49, 51, 83, 49, 49, 51, 83, 49, 49, 51, 83, + 49, 49, 51, 83, 49, 49, 66, 83, 49, 65, 51, 67, + 49, 65, 66, 52, 33, 82, 68, 36, 113, 240, 114, 179, + 115, 116, 168, 0, 23, 46, 23, 0, 6, 114, 240, 98, + 240, 84, 240, 68, 240, 69, 240, 38, 240, 38, 240, 33, + 21, 242, 36, 242, 36, 241, 53, 210, 68, 210, 68, 194, + 85, 188, 177, 116, 162, 132, 146, 132, 145, 149, 87, 73, + 0, 23, 48, 44, 21, 240, 240, 206, 164, 84, 132, 99, + 132, 100, 116, 100, 116, 100, 116, 100, 116, 99, 132, 83, + 154, 180, 84, 132, 100, 116, 100, 116, 116, 100, 116, 100, + 116, 100, 101, 100, 100, 116, 84, 95, 0, 21, 96, 46, + 21, 0, 6, 23, 49, 132, 69, 100, 131, 84, 162, 84, + 162, 68, 193, 68, 193, 53, 193, 53, 240, 21, 240, 21, + 240, 21, 240, 21, 240, 36, 193, 68, 193, 84, 177, 84, + 161, 116, 130, 148, 82, 199, 0, 21, 112, 45, 23, 0, + 5, 110, 196, 99, 164, 115, 148, 131, 132, 132, 116, 147, + 116, 148, 100, 148, 100, 148, 100, 148, 100, 148, 100, 148, + 100, 148, 100, 148, 100, 147, 116, 132, 116, 131, 132, 115, + 148, 99, 126, 0, 24, 16, 46, 20, 240, 240, 175, 95, + 132, 83, 132, 98, 132, 114, 116, 114, 116, 49, 50, 116, + 49, 196, 34, 200, 196, 34, 196, 49, 196, 49, 66, 100, + 49, 65, 116, 129, 116, 129, 116, 114, 116, 114, 116, 84, + 79, 0, 20, 80, 39, 19, 240, 240, 143, 79, 116, 83, + 116, 98, 116, 113, 116, 113, 116, 113, 116, 49, 50, 100, + 49, 180, 34, 184, 180, 34, 180, 49, 180, 49, 180, 244, + 244, 244, 244, 202, 0, 20, 16, 47, 22, 0, 6, 54, + 49, 148, 69, 132, 115, 116, 131, 101, 146, 100, 162, 100, + 162, 85, 177, 85, 240, 37, 240, 37, 240, 37, 240, 37, + 89, 68, 132, 100, 132, 101, 116, 116, 116, 132, 100, 148, + 69, 197, 50, 0, 22, 80, 46, 24, 0, 6, 10, 26, + 100, 116, 148, 116, 148, 116, 148, 116, 148, 116, 148, 116, + 148, 116, 148, 116, 159, 148, 116, 148, 116, 148, 116, 148, + 116, 148, 116, 148, 116, 148, 116, 148, 116, 148, 116, 106, + 26, 0, 24, 48, 26, 13, 240, 186, 100, 148, 148, 148, + 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, + 148, 148, 106, 0, 13, 48, 30, 16, 240, 240, 105, 164, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 99, 52, 85, 36, 85, 35, 115, 36, 134, 0, 17, + 46, 24, 0, 6, 10, 70, 116, 146, 148, 130, 164, 114, + 180, 98, 196, 82, 212, 66, 228, 50, 244, 35, 244, 21, + 235, 213, 36, 212, 53, 196, 68, 196, 84, 180, 85, 164, + 100, 164, 101, 148, 116, 106, 41, 0, 24, 48, 34, 18, + 240, 240, 106, 180, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 113, 100, 113, 100, 113, 100, 98, 100, 98, + 100, 83, 100, 68, 63, 0, 18, 48, 76, 28, 0, 7, + 8, 167, 101, 164, 149, 145, 19, 146, 19, 129, 19, 146, + 19, 129, 19, 146, 19, 113, 35, 146, 35, 97, 35, 146, + 35, 97, 35, 146, 36, 65, 51, 146, 51, 65, 51, 146, + 51, 65, 51, 146, 52, 33, 67, 146, 67, 33, 67, 146, + 67, 33, 67, 146, 69, 83, 146, 84, 83, 146, 84, 83, + 146, 98, 99, 146, 98, 99, 104, 50, 57, 0, 28, 48, + 57, 25, 0, 6, 40, 104, 102, 130, 150, 130, 146, 20, + 114, 146, 21, 98, 146, 36, 98, 146, 52, 82, 146, 53, + 66, 146, 68, 66, 146, 84, 50, 146, 100, 34, 146, 101, + 18, 146, 116, 18, 146, 134, 146, 134, 146, 149, 146, 164, + 146, 179, 146, 179, 104, 146, 0, 25, 96, 45, 22, 0, + 6, 39, 212, 52, 164, 84, 132, 116, 101, 117, 84, 148, + 84, 149, 53, 149, 53, 149, 53, 149, 53, 149, 53, 149, + 53, 149, 53, 149, 68, 148, 85, 117, 100, 116, 132, 84, + 164, 52, 215, 0, 23, 16, 43, 21, 240, 240, 206, 164, + 84, 132, 100, 116, 101, 100, 101, 100, 101, 100, 101, 100, + 101, 100, 100, 116, 84, 139, 164, 240, 36, 240, 36, 240, + 36, 240, 36, 240, 36, 240, 36, 240, 36, 234, 0, 22, + 48, 58, 21, 0, 6, 6, 211, 67, 163, 99, 131, 131, + 100, 132, 83, 163, 68, 164, 52, 164, 52, 164, 52, 164, + 52, 164, 52, 164, 52, 164, 52, 164, 67, 163, 84, 35, + 52, 99, 17, 49, 35, 132, 68, 163, 67, 215, 65, 227, + 49, 227, 49, 246, 246, 245, 240, 35, 0, 5, 112, 47, + 25, 0, 6, 46, 228, 84, 196, 100, 180, 101, 164, 101, + 164, 101, 164, 101, 164, 100, 180, 84, 202, 244, 68, 212, + 84, 196, 84, 196, 84, 196, 85, 180, 85, 180, 85, 180, + 100, 50, 100, 101, 33, 74, 85, 0, 25, 80, 41, 16, + 240, 240, 86, 33, 98, 68, 82, 99, 67, 114, 67, 114, + 67, 129, 68, 113, 71, 169, 122, 122, 152, 181, 49, 132, + 50, 131, 50, 131, 50, 131, 51, 114, 69, 66, 82, 38, + 0, 16, 96, 51, 21, 240, 240, 223, 1, 79, 3, 51, + 68, 67, 50, 84, 82, 50, 84, 82, 50, 84, 82, 49, + 100, 97, 49, 100, 97, 164, 240, 36, 240, 36, 240, 36, + 240, 36, 240, 36, 240, 36, 240, 36, 240, 36, 240, 36, + 240, 36, 220, 0, 21, 96, 47, 24, 0, 6, 10, 56, + 100, 146, 148, 146, 148, 146, 148, 146, 148, 146, 148, 146, + 148, 146, 148, 146, 148, 146, 148, 146, 148, 146, 148, 146, + 148, 146, 148, 146, 148, 146, 163, 130, 195, 114, 211, 67, + 240, 22, 0, 25, 32, 49, 24, 0, 6, 9, 87, 85, + 146, 148, 146, 148, 145, 165, 114, 180, 113, 196, 98, 197, + 82, 212, 81, 229, 50, 244, 50, 244, 49, 240, 21, 18, + 240, 36, 17, 240, 54, 240, 69, 240, 68, 240, 84, 240, + 98, 240, 114, 0, 25, 80, 71, 32, 0, 8, 9, 25, + 55, 84, 101, 129, 133, 100, 129, 148, 100, 114, 148, 101, + 97, 165, 85, 97, 180, 85, 82, 180, 71, 65, 197, 50, + 20, 65, 212, 49, 36, 50, 212, 34, 37, 33, 229, 18, + 52, 33, 244, 17, 68, 18, 246, 70, 240, 22, 85, 240, + 36, 101, 240, 36, 100, 240, 52, 115, 240, 66, 131, 240, + 66, 130, 0, 33, 64, 49, 23, 0, 5, 105, 40, 117, + 98, 180, 82, 197, 65, 228, 50, 229, 18, 240, 20, 18, + 240, 37, 240, 53, 240, 68, 240, 69, 240, 53, 240, 34, + 20, 242, 37, 226, 52, 210, 69, 193, 100, 178, 101, 146, + 133, 88, 57, 0, 23, 48, 49, 25, 0, 6, 42, 87, + 101, 146, 164, 145, 181, 114, 196, 98, 213, 82, 229, 50, + 245, 50, 240, 21, 18, 240, 52, 17, 240, 70, 240, 84, + 240, 100, 240, 100, 240, 100, 240, 100, 240, 100, 240, 100, + 240, 100, 240, 58, 0, 26, 16, 40, 18, 240, 240, 111, + 53, 85, 51, 101, 66, 116, 82, 101, 82, 100, 98, 85, + 197, 212, 213, 212, 212, 97, 101, 97, 100, 113, 85, 98, + 84, 114, 68, 115, 68, 100, 63, 63, 0, 18, 48, 31, + 8, 133, 50, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 101, 176, 27, 15, 240, 240, 49, 97, + 97, 97, 97, 97, 113, 97, 97, 97, 116, 52, 69, 37, + 53, 37, 68, 52, 67, 67, 0, 34, 32, 31, 8, 133, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 53, 176, 12, 11, 240, 177, 132, 99, 18, 66, + 66, 161, 0, 32, 11, 8, 240, 35, 69, 53, 53, 67, + 0, 23, 64, 16, 8, 240, 65, 97, 97, 113, 97, 116, + 69, 53, 68, 67, 0, 18, 64, 31, 16, 0, 18, 38, + 146, 67, 115, 67, 99, 67, 211, 151, 115, 51, 99, 67, + 83, 83, 83, 83, 83, 83, 99, 49, 19, 100, 52, 0, + 16, 48, 40, 17, 240, 240, 69, 197, 227, 227, 227, 227, + 227, 227, 21, 132, 66, 115, 98, 99, 99, 83, 99, 83, + 99, 83, 99, 83, 99, 83, 99, 83, 98, 99, 83, 100, + 66, 114, 37, 0, 17, 96, 26, 13, 0, 15, 21, 98, + 51, 67, 51, 66, 67, 51, 163, 163, 163, 163, 178, 97, + 67, 81, 83, 49, 117, 0, 13, 80, 40, 17, 240, 240, + 181, 197, 227, 227, 227, 227, 227, 133, 19, 114, 68, 99, + 83, 98, 99, 83, 99, 83, 99, 83, 99, 83, 99, 83, + 99, 98, 99, 99, 83, 114, 70, 101, 21, 0, 17, 48, + 28, 15, 0, 17, 38, 130, 51, 99, 67, 82, 99, 51, + 99, 51, 99, 60, 51, 195, 210, 129, 67, 98, 83, 66, + 133, 0, 15, 96, 31, 13, 240, 52, 115, 19, 98, 35, + 83, 35, 83, 49, 99, 163, 163, 136, 115, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 135, 0, 13, 96, 40, + 16, 0, 18, 54, 19, 67, 51, 18, 51, 83, 83, 83, + 83, 83, 83, 83, 99, 51, 113, 21, 145, 226, 249, 123, + 92, 50, 131, 50, 146, 50, 146, 51, 115, 67, 83, 119, + 240, 240, 128, 41, 18, 240, 240, 101, 213, 243, 243, 243, + 243, 243, 243, 37, 131, 17, 51, 116, 67, 115, 83, 115, + 83, 115, 83, 115, 83, 115, 83, 115, 83, 115, 83, 115, + 83, 115, 83, 87, 23, 0, 18, 48, 25, 10, 240, 114, + 116, 100, 100, 114, 240, 181, 85, 115, 115, 115, 115, 115, + 115, 115, 115, 115, 115, 87, 0, 10, 48, 34, 12, 240, + 227, 133, 117, 117, 131, 240, 240, 22, 102, 147, 147, 147, + 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 51, 51, + 51, 50, 67, 35, 85, 240, 240, 38, 17, 240, 240, 69, + 197, 227, 227, 227, 227, 227, 227, 54, 83, 66, 131, 50, + 147, 34, 163, 18, 183, 167, 163, 20, 147, 35, 147, 51, + 131, 52, 115, 67, 87, 22, 0, 17, 48, 26, 10, 240, + 85, 85, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 115, 87, 0, 10, 48, 47, + 26, 0, 29, 37, 37, 53, 131, 17, 53, 51, 116, 68, + 67, 115, 83, 83, 115, 83, 83, 115, 83, 83, 115, 83, + 83, 115, 83, 83, 115, 83, 83, 115, 83, 83, 115, 83, + 83, 115, 83, 83, 87, 23, 23, 0, 26, 48, 34, 18, + 0, 20, 37, 37, 101, 17, 51, 116, 67, 115, 83, 115, + 83, 115, 83, 115, 83, 115, 83, 115, 83, 115, 83, 115, + 83, 115, 83, 87, 23, 0, 18, 48, 31, 15, 0, 17, + 53, 130, 66, 98, 98, 82, 98, 67, 99, 51, 99, 51, + 99, 51, 99, 51, 99, 51, 99, 66, 98, 98, 66, 134, + 0, 15, 96, 39, 17, 0, 19, 21, 21, 132, 51, 115, + 83, 99, 99, 83, 99, 83, 99, 83, 99, 83, 99, 83, + 99, 83, 98, 99, 83, 100, 51, 115, 21, 131, 227, 227, + 227, 227, 199, 240, 240, 224, 40, 18, 0, 20, 101, 34, + 115, 50, 18, 99, 84, 98, 115, 83, 115, 83, 115, 83, + 115, 83, 115, 83, 115, 99, 99, 99, 84, 115, 53, 134, + 19, 243, 243, 243, 243, 243, 215, 240, 240, 144, 24, 13, + 0, 14, 85, 19, 70, 19, 84, 19, 83, 35, 83, 163, + 163, 163, 163, 163, 163, 163, 135, 0, 13, 96, 28, 13, + 0, 14, 119, 82, 66, 66, 97, 66, 97, 68, 167, 119, + 134, 49, 99, 50, 98, 50, 98, 51, 66, 66, 21, 0, + 13, 80, 30, 12, 240, 240, 161, 177, 177, 162, 162, 147, + 121, 83, 147, 147, 147, 147, 147, 147, 147, 49, 83, 49, + 83, 49, 84, 33, 116, 0, 12, 64, 33, 18, 0, 20, + 37, 53, 85, 53, 115, 83, 115, 83, 115, 83, 115, 83, + 115, 83, 115, 83, 115, 83, 115, 83, 115, 83, 115, 70, + 117, 21, 0, 18, 48, 28, 17, 0, 19, 23, 37, 83, + 82, 115, 81, 132, 65, 147, 50, 148, 33, 179, 18, 179, + 18, 181, 212, 211, 227, 242, 0, 18, 16, 43, 23, 0, + 25, 118, 22, 22, 68, 51, 82, 115, 67, 65, 132, 51, + 65, 132, 36, 50, 147, 33, 19, 33, 164, 17, 19, 33, + 181, 19, 18, 180, 52, 196, 52, 211, 52, 210, 82, 226, + 82, 0, 24, 16, 28, 17, 0, 19, 22, 38, 83, 66, + 147, 34, 164, 17, 197, 211, 227, 228, 198, 177, 35, 162, + 51, 130, 68, 85, 39, 0, 17, 48, 38, 17, 0, 19, + 23, 37, 83, 82, 116, 66, 131, 65, 147, 50, 148, 33, + 179, 33, 179, 18, 181, 212, 212, 226, 242, 241, 240, 17, + 163, 34, 163, 33, 179, 17, 211, 0, 5, 112, 29, 14, + 0, 15, 107, 51, 68, 50, 68, 66, 67, 82, 52, 148, + 163, 164, 49, 84, 65, 83, 66, 68, 66, 52, 67, 59, + 0, 14, 48, 8, 18, 0, 29, 47, 0, 36, 48, 9, + 32, 0, 52, 15, 14, 0, 64, 48, 17, 12, 210, 50, + 83, 35, 52, 20, 51, 35, 66, 50, 82, 50, 0, 35, + 16, 11, 13, 240, 212, 49, 72, 65, 52, 0, 41, 32,}; + +//***************************************************************************** +// +// The font definition for the 30 point Cm bold font. +// +//***************************************************************************** +const tFont g_sFontCm30b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 28, + + // + // The height of the font. + // + 30, + + // + // The baseline of the font. + // + 22, + + // + // The offset to each character in the font. + // + { + 0, 5, 30, 57, 126, 182, 256, 314, + 330, 362, 395, 421, 466, 483, 493, 505, + 538, 581, 607, 641, 677, 711, 746, 787, + 816, 856, 897, 915, 938, 964, 976, 1009, + 1040, 1109, 1155, 1199, 1245, 1290, 1336, 1375, + 1422, 1468, 1494, 1524, 1570, 1604, 1680, 1737, + 1782, 1825, 1883, 1930, 1971, 2022, 2069, 2118, + 2189, 2238, 2287, 2327, 2358, 2385, 2416, 2428, + 2439, 2455, 2486, 2526, 2552, 2592, 2620, 2651, + 2691, 2732, 2757, 2791, 2829, 2855, 2902, 2936, + 2967, 3006, 3046, 3070, 3098, 3128, 3161, 3189, + 3232, 3260, 3298, 3327, 3335, 3344, 3361, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm30bData +}; diff --git a/grlib/fonts/fontcm30i.c b/grlib/fonts/fontcm30i.c new file mode 100644 index 0000000..7946652 --- /dev/null +++ b/grlib/fonts/fontcm30i.c @@ -0,0 +1,417 @@ +//***************************************************************************** +// +// fontcm30i.c - Font definition for the 30pt Cm italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 30 point +// Bold: no +// Italic: yes +// Memory usage: 3924 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 30 point Cm italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm30iData[3722] = +{ + 5, 13, 0, 50, 48, 28, 11, 240, 19, 131, 130, 131, + 131, 130, 146, 146, 145, 146, 146, 146, 145, 161, 161, 145, + 161, 240, 240, 18, 131, 130, 0, 12, 16, 24, 13, 240, + 210, 66, 67, 51, 67, 51, 97, 81, 81, 81, 97, 81, + 81, 81, 97, 65, 97, 65, 0, 33, 48, 81, 24, 0, + 7, 81, 97, 240, 17, 82, 241, 97, 240, 17, 81, 240, + 17, 97, 240, 17, 81, 240, 17, 97, 240, 17, 81, 240, + 17, 82, 240, 17, 81, 159, 5, 177, 81, 240, 17, 82, + 240, 17, 81, 240, 18, 81, 240, 17, 81, 191, 5, 145, + 81, 240, 18, 81, 240, 17, 81, 240, 18, 81, 240, 17, + 81, 240, 18, 81, 240, 17, 81, 240, 18, 81, 240, 17, + 81, 240, 33, 81, 0, 8, 49, 21, 0, 6, 116, 242, + 50, 210, 81, 194, 97, 194, 82, 193, 83, 178, 240, 66, + 240, 66, 240, 65, 240, 39, 240, 18, 240, 66, 240, 65, + 240, 66, 240, 66, 240, 66, 245, 129, 97, 51, 97, 97, + 50, 18, 65, 116, 69, 0, 22, 79, 24, 99, 177, 130, + 18, 146, 114, 51, 83, 114, 65, 39, 130, 65, 98, 146, + 65, 82, 146, 81, 66, 162, 65, 82, 162, 65, 66, 178, + 65, 50, 194, 49, 50, 225, 33, 50, 240, 18, 50, 81, + 240, 18, 50, 17, 226, 50, 49, 194, 65, 65, 178, 66, + 65, 162, 82, 65, 146, 82, 81, 146, 82, 66, 130, 98, + 65, 130, 114, 65, 114, 130, 49, 114, 161, 34, 113, 195, + 0, 19, 65, 23, 240, 243, 240, 65, 49, 240, 33, 81, + 98, 114, 81, 113, 98, 82, 97, 114, 82, 97, 114, 193, + 129, 193, 130, 19, 99, 147, 33, 66, 17, 145, 65, 49, + 65, 115, 34, 33, 81, 98, 20, 49, 81, 98, 131, 49, + 82, 161, 65, 82, 241, 82, 225, 98, 210, 98, 209, 130, + 162, 163, 98, 231, 0, 24, 64, 15, 7, 240, 18, 67, + 67, 97, 81, 97, 81, 97, 81, 0, 18, 32, 34, 14, + 161, 193, 193, 194, 178, 193, 194, 178, 193, 194, 194, 178, + 194, 179, 178, 194, 194, 179, 178, 194, 194, 194, 194, 194, + 194, 194, 209, 210, 209, 209, 225, 160, 34, 14, 113, 225, + 210, 209, 209, 210, 194, 194, 194, 194, 194, 194, 194, 179, + 178, 194, 194, 179, 178, 194, 193, 194, 194, 178, 193, 194, + 178, 193, 193, 193, 193, 208, 29, 14, 98, 193, 209, 145, + 49, 49, 82, 17, 35, 99, 18, 147, 179, 146, 19, 99, + 17, 35, 65, 49, 49, 145, 209, 194, 0, 30, 112, 43, + 21, 0, 17, 17, 240, 65, 240, 81, 240, 81, 240, 81, + 240, 66, 240, 65, 240, 81, 240, 81, 191, 3, 177, 240, + 81, 240, 81, 240, 66, 240, 65, 240, 81, 240, 81, 240, + 81, 240, 65, 0, 17, 64, 15, 7, 0, 17, 98, 67, + 67, 97, 81, 97, 81, 97, 81, 240, 80, 9, 10, 0, + 18, 103, 55, 0, 17, 112, 10, 6, 0, 15, 18, 51, + 50, 0, 6, 64, 66, 21, 240, 33, 240, 66, 240, 65, + 240, 65, 240, 81, 240, 65, 240, 66, 240, 65, 240, 66, + 240, 65, 240, 65, 240, 81, 240, 65, 240, 66, 240, 65, + 240, 66, 240, 65, 240, 66, 240, 65, 240, 65, 240, 81, + 240, 65, 240, 66, 240, 65, 240, 66, 240, 65, 240, 65, + 240, 81, 240, 65, 240, 66, 240, 65, 240, 80, 45, 17, + 0, 7, 37, 178, 50, 145, 98, 114, 98, 98, 114, 98, + 114, 82, 130, 82, 115, 67, 115, 66, 130, 82, 130, 82, + 115, 67, 114, 82, 130, 82, 115, 82, 114, 98, 98, 114, + 82, 146, 50, 181, 0, 18, 32, 28, 13, 0, 6, 1, + 177, 178, 148, 114, 34, 162, 178, 178, 178, 162, 178, 178, + 178, 162, 178, 178, 178, 162, 178, 136, 0, 13, 80, 45, + 16, 0, 6, 116, 162, 50, 130, 82, 113, 98, 97, 33, + 66, 97, 33, 66, 81, 49, 66, 81, 33, 67, 81, 33, + 66, 99, 66, 210, 210, 195, 194, 210, 209, 129, 82, 113, + 82, 114, 90, 97, 68, 0, 16, 112, 44, 17, 0, 7, + 37, 162, 66, 130, 98, 113, 114, 97, 33, 82, 97, 33, + 82, 97, 33, 66, 130, 81, 226, 180, 240, 18, 240, 17, + 240, 18, 242, 242, 98, 99, 98, 98, 113, 99, 129, 66, + 181, 0, 18, 32, 40, 16, 0, 7, 50, 226, 226, 210, + 226, 225, 226, 226, 225, 226, 210, 225, 226, 225, 34, 161, + 50, 146, 50, 130, 65, 130, 66, 118, 18, 98, 85, 193, + 226, 226, 226, 226, 225, 240, 240, 160, 40, 17, 0, 7, + 17, 97, 136, 150, 177, 240, 17, 241, 240, 17, 240, 17, + 20, 161, 17, 50, 146, 82, 242, 242, 242, 242, 98, 99, + 83, 98, 97, 114, 113, 114, 129, 66, 181, 0, 18, 32, + 42, 16, 0, 7, 4, 163, 49, 130, 66, 114, 82, 99, + 210, 211, 210, 35, 133, 50, 99, 82, 99, 82, 83, 98, + 83, 98, 82, 114, 82, 114, 82, 98, 98, 98, 98, 82, + 130, 50, 164, 0, 17, 32, 37, 17, 0, 6, 97, 19, + 81, 81, 21, 49, 99, 49, 34, 97, 84, 97, 129, 113, + 129, 97, 129, 242, 242, 226, 242, 226, 242, 227, 226, 242, + 227, 226, 242, 242, 0, 18, 48, 43, 16, 0, 6, 116, + 162, 65, 130, 97, 113, 113, 98, 113, 98, 113, 99, 81, + 116, 49, 150, 196, 162, 20, 129, 68, 82, 99, 82, 114, + 66, 130, 66, 129, 82, 114, 82, 98, 114, 66, 149, 0, + 17, 16, 43, 16, 0, 6, 116, 178, 34, 145, 82, 114, + 82, 98, 98, 98, 98, 83, 98, 82, 99, 82, 99, 82, + 99, 82, 83, 113, 65, 18, 114, 52, 132, 18, 226, 210, + 210, 115, 65, 129, 66, 164, 0, 17, 48, 15, 8, 0, + 10, 50, 83, 82, 0, 7, 82, 83, 82, 0, 8, 96, + 20, 10, 0, 13, 18, 115, 114, 0, 9, 66, 130, 130, + 145, 145, 129, 145, 129, 129, 240, 224, 28, 11, 0, 11, + 98, 131, 130, 240, 240, 17, 161, 145, 161, 161, 146, 146, + 146, 145, 146, 146, 146, 131, 131, 130, 131, 146, 240, 64, + 13, 22, 0, 33, 31, 3, 0, 14, 31, 3, 0, 33, + 64, 39, 14, 0, 15, 3, 179, 178, 240, 240, 131, 162, + 33, 130, 49, 129, 65, 178, 178, 178, 163, 162, 82, 66, + 98, 65, 129, 49, 145, 49, 129, 65, 113, 81, 98, 97, + 65, 148, 240, 112, 39, 13, 240, 51, 130, 49, 97, 97, + 66, 97, 65, 113, 49, 129, 49, 114, 50, 82, 66, 66, + 162, 162, 147, 161, 177, 49, 129, 49, 129, 33, 162, 240, + 240, 98, 163, 163, 0, 14, 32, 72, 22, 0, 6, 86, + 226, 97, 193, 145, 161, 177, 129, 68, 66, 97, 51, 49, + 65, 81, 50, 81, 65, 81, 50, 98, 33, 65, 50, 114, + 33, 65, 50, 113, 49, 49, 50, 114, 49, 49, 50, 114, + 33, 65, 50, 114, 33, 65, 50, 98, 49, 65, 50, 83, + 33, 81, 66, 49, 18, 33, 97, 68, 51, 113, 240, 113, + 193, 146, 115, 184, 0, 23, 32, 53, 21, 240, 240, 81, + 240, 66, 240, 51, 240, 51, 240, 33, 18, 240, 33, 18, + 240, 17, 34, 240, 17, 34, 241, 50, 225, 66, 225, 66, + 209, 82, 209, 83, 177, 99, 186, 161, 115, 161, 130, 145, + 146, 129, 162, 129, 162, 114, 162, 85, 103, 0, 21, 48, + 46, 22, 0, 6, 27, 210, 99, 178, 114, 178, 115, 146, + 131, 146, 131, 146, 130, 162, 115, 146, 130, 162, 99, 185, + 210, 114, 162, 146, 146, 146, 146, 146, 146, 146, 130, 162, + 130, 146, 146, 130, 147, 114, 140, 0, 23, 32, 49, 22, + 0, 6, 85, 65, 162, 81, 33, 146, 131, 130, 162, 114, + 178, 113, 193, 114, 193, 98, 209, 98, 240, 82, 240, 66, + 240, 82, 240, 82, 240, 82, 193, 114, 193, 114, 193, 114, + 177, 146, 145, 162, 129, 195, 66, 245, 0, 23, 80, 47, + 23, 0, 6, 44, 226, 99, 194, 130, 162, 146, 162, 162, + 146, 162, 146, 162, 130, 178, 130, 178, 130, 178, 130, 163, + 115, 162, 130, 178, 130, 178, 130, 162, 131, 162, 130, 162, + 146, 146, 162, 130, 163, 99, 156, 0, 24, 48, 46, 23, + 0, 6, 63, 163, 115, 162, 146, 162, 146, 162, 145, 163, + 145, 162, 161, 162, 81, 242, 81, 227, 66, 233, 226, 81, + 242, 81, 227, 81, 65, 146, 177, 146, 161, 162, 161, 147, + 161, 146, 161, 162, 131, 127, 0, 24, 46, 23, 0, 6, + 63, 163, 114, 178, 145, 178, 145, 178, 145, 163, 145, 162, + 161, 162, 81, 242, 81, 227, 66, 232, 242, 81, 242, 81, + 227, 81, 226, 240, 98, 240, 98, 240, 83, 240, 82, 240, + 98, 240, 56, 0, 24, 112, 51, 22, 0, 6, 85, 65, + 163, 66, 18, 146, 113, 18, 130, 146, 130, 162, 114, 178, + 98, 194, 98, 193, 98, 240, 82, 240, 82, 240, 66, 240, + 82, 240, 82, 136, 66, 179, 98, 178, 114, 178, 130, 147, + 130, 147, 147, 82, 17, 198, 49, 0, 23, 47, 26, 0, + 7, 23, 56, 163, 130, 210, 146, 210, 131, 210, 130, 211, + 130, 210, 146, 210, 131, 210, 130, 211, 130, 221, 210, 146, + 210, 130, 211, 130, 210, 146, 210, 131, 210, 130, 211, 130, + 210, 146, 210, 131, 168, 55, 0, 27, 27, 16, 240, 240, + 120, 178, 211, 210, 226, 226, 211, 210, 226, 226, 211, 210, + 226, 226, 211, 210, 226, 226, 211, 210, 184, 0, 17, 41, + 18, 240, 240, 231, 226, 240, 18, 240, 18, 242, 240, 18, + 240, 18, 240, 18, 242, 240, 18, 240, 18, 243, 242, 240, + 18, 240, 18, 243, 146, 66, 147, 66, 146, 66, 161, 66, + 197, 0, 19, 64, 59, 26, 0, 7, 23, 101, 163, 146, + 194, 145, 226, 129, 242, 113, 243, 97, 240, 18, 97, 240, + 34, 66, 240, 50, 50, 240, 51, 35, 240, 50, 33, 19, + 240, 34, 17, 50, 240, 35, 66, 240, 19, 83, 242, 114, + 242, 114, 242, 115, 211, 130, 210, 146, 210, 147, 151, 87, + 0, 26, 112, 47, 19, 240, 240, 216, 211, 240, 18, 240, + 34, 240, 34, 240, 19, 240, 18, 240, 34, 240, 34, 240, + 19, 240, 18, 240, 34, 240, 34, 240, 19, 129, 114, 145, + 114, 145, 114, 129, 115, 129, 114, 130, 114, 99, 94, 0, + 19, 80, 80, 30, 0, 8, 21, 197, 163, 180, 195, 179, + 209, 18, 145, 18, 209, 18, 129, 34, 193, 34, 129, 18, + 209, 34, 113, 34, 209, 34, 113, 34, 209, 34, 97, 50, + 193, 50, 97, 34, 209, 50, 81, 50, 209, 50, 65, 66, + 209, 50, 65, 66, 193, 66, 49, 66, 209, 82, 33, 66, + 209, 82, 17, 82, 209, 82, 17, 82, 193, 99, 82, 209, + 98, 98, 209, 98, 98, 166, 65, 71, 0, 31, 62, 26, + 0, 7, 21, 118, 163, 146, 196, 129, 209, 18, 129, 193, + 34, 113, 209, 35, 97, 209, 50, 97, 209, 50, 97, 193, + 67, 65, 209, 82, 65, 209, 82, 65, 209, 83, 49, 209, + 98, 33, 209, 114, 33, 209, 115, 17, 209, 130, 17, 209, + 131, 209, 147, 209, 162, 194, 162, 166, 129, 0, 27, 48, + 47, 22, 0, 6, 101, 227, 67, 178, 130, 146, 146, 130, + 178, 98, 194, 82, 210, 82, 210, 66, 226, 66, 226, 51, + 211, 50, 226, 66, 226, 66, 210, 82, 210, 82, 194, 98, + 178, 130, 146, 146, 130, 179, 67, 229, 0, 23, 80, 46, + 22, 0, 6, 28, 195, 98, 178, 130, 162, 130, 162, 130, + 147, 130, 146, 146, 146, 130, 162, 130, 147, 114, 162, 114, + 185, 210, 240, 67, 240, 66, 240, 82, 240, 82, 240, 67, + 240, 66, 240, 82, 240, 39, 0, 23, 112, 68, 22, 0, + 6, 101, 242, 82, 178, 130, 146, 146, 130, 178, 98, 194, + 82, 210, 82, 210, 66, 226, 66, 226, 51, 226, 50, 226, + 66, 226, 66, 226, 66, 210, 82, 209, 113, 83, 66, 114, + 49, 49, 34, 145, 33, 65, 17, 193, 17, 66, 231, 240, + 97, 65, 240, 17, 65, 240, 18, 34, 240, 21, 240, 37, + 240, 51, 0, 6, 64, 49, 22, 0, 6, 27, 210, 99, + 178, 129, 178, 130, 146, 146, 146, 146, 146, 146, 146, 130, + 146, 130, 162, 98, 200, 226, 82, 194, 114, 178, 114, 178, + 114, 178, 114, 162, 115, 162, 115, 162, 115, 49, 83, 115, + 33, 71, 100, 0, 22, 80, 49, 20, 0, 6, 20, 49, + 162, 65, 18, 146, 98, 146, 114, 145, 145, 130, 145, 130, + 129, 146, 240, 52, 240, 38, 247, 240, 21, 240, 35, 240, + 50, 129, 146, 129, 146, 114, 145, 130, 130, 130, 114, 145, + 18, 66, 145, 53, 0, 21, 48, 54, 22, 0, 5, 111, + 2, 82, 82, 98, 81, 98, 97, 81, 114, 97, 81, 99, + 97, 65, 114, 113, 65, 114, 113, 194, 240, 67, 240, 66, + 240, 82, 240, 82, 240, 67, 240, 66, 240, 82, 240, 82, + 240, 67, 240, 66, 240, 82, 240, 67, 240, 25, 0, 23, + 64, 49, 22, 240, 240, 247, 86, 99, 146, 130, 161, 146, + 145, 147, 145, 146, 161, 146, 161, 146, 145, 147, 145, 146, + 161, 146, 161, 146, 145, 147, 145, 146, 161, 146, 161, 146, + 145, 162, 145, 162, 129, 194, 97, 211, 50, 240, 20, 0, + 23, 112, 53, 23, 0, 5, 103, 118, 83, 162, 131, 161, + 162, 161, 162, 145, 178, 145, 178, 129, 194, 113, 210, 113, + 210, 97, 227, 65, 243, 65, 243, 49, 240, 34, 49, 240, + 34, 33, 240, 50, 17, 240, 66, 17, 240, 67, 240, 83, + 240, 82, 240, 97, 0, 25, 32, 79, 30, 0, 7, 71, + 55, 70, 83, 115, 130, 114, 131, 129, 131, 115, 129, 131, + 115, 113, 147, 100, 97, 163, 97, 18, 97, 163, 81, 34, + 81, 179, 81, 34, 81, 179, 65, 50, 65, 195, 65, 50, + 65, 210, 49, 66, 49, 226, 33, 82, 49, 226, 33, 82, + 33, 242, 17, 98, 33, 242, 17, 98, 17, 240, 19, 115, + 240, 35, 115, 240, 34, 130, 240, 50, 130, 240, 49, 145, + 0, 32, 59, 26, 0, 7, 39, 70, 179, 115, 211, 113, + 240, 18, 97, 240, 35, 65, 240, 66, 65, 240, 66, 49, + 240, 83, 17, 240, 115, 240, 131, 240, 131, 240, 131, 240, + 113, 19, 240, 81, 35, 240, 65, 66, 240, 49, 83, 240, + 17, 114, 241, 130, 241, 131, 194, 147, 151, 103, 0, 26, + 96, 52, 23, 0, 5, 103, 118, 83, 162, 146, 161, 163, + 129, 179, 113, 210, 113, 210, 97, 227, 65, 240, 18, 49, + 240, 34, 33, 240, 51, 17, 240, 67, 240, 82, 240, 98, + 240, 83, 240, 82, 240, 98, 240, 98, 240, 83, 240, 82, + 240, 56, 0, 24, 96, 47, 22, 0, 6, 45, 147, 114, + 146, 130, 161, 130, 177, 115, 161, 115, 177, 114, 240, 66, + 240, 66, 240, 67, 240, 51, 240, 66, 240, 66, 240, 66, + 113, 178, 113, 179, 113, 163, 129, 162, 129, 162, 130, 146, + 131, 142, 0, 23, 34, 14, 240, 100, 161, 209, 209, 193, + 209, 209, 209, 194, 193, 209, 209, 194, 193, 209, 209, 194, + 193, 209, 209, 194, 193, 209, 209, 194, 193, 209, 209, 194, + 196, 160, 24, 13, 240, 241, 65, 97, 65, 97, 65, 97, + 81, 81, 81, 97, 81, 99, 51, 67, 51, 66, 66, 0, + 33, 16, 34, 14, 240, 100, 193, 209, 209, 194, 193, 209, + 209, 194, 193, 209, 209, 194, 193, 209, 209, 194, 193, 209, + 209, 194, 193, 209, 209, 193, 209, 209, 209, 194, 163, 176, + 14, 10, 240, 145, 130, 113, 33, 81, 65, 49, 81, 0, + 30, 48, 9, 6, 240, 66, 51, 50, 0, 19, 32, 15, + 7, 240, 33, 81, 81, 97, 81, 97, 99, 67, 66, 0, + 18, 16, 37, 16, 0, 20, 83, 178, 51, 114, 82, 114, + 82, 98, 97, 114, 82, 99, 82, 98, 98, 98, 82, 49, + 50, 82, 33, 66, 67, 33, 82, 33, 18, 33, 99, 51, + 0, 16, 80, 38, 14, 240, 244, 194, 194, 178, 194, 194, + 194, 179, 178, 35, 116, 34, 83, 82, 67, 82, 66, 98, + 66, 98, 51, 83, 50, 98, 66, 98, 66, 82, 82, 82, + 98, 35, 132, 0, 15, 26, 13, 0, 16, 116, 115, 49, + 82, 66, 82, 66, 66, 163, 162, 178, 178, 178, 113, 50, + 97, 82, 50, 117, 0, 13, 96, 46, 16, 240, 240, 180, + 226, 226, 225, 241, 226, 226, 225, 163, 33, 130, 51, 114, + 82, 114, 81, 114, 97, 114, 82, 99, 82, 98, 97, 114, + 82, 49, 50, 82, 33, 66, 67, 33, 82, 33, 18, 33, + 99, 51, 0, 16, 80, 27, 14, 0, 18, 21, 130, 65, + 82, 97, 67, 97, 66, 82, 72, 98, 194, 194, 194, 129, + 65, 113, 82, 66, 117, 0, 14, 112, 37, 17, 240, 240, + 227, 210, 33, 193, 34, 178, 242, 242, 241, 242, 200, 194, + 242, 241, 242, 242, 242, 242, 226, 242, 242, 242, 242, 226, + 242, 242, 178, 33, 193, 34, 210, 0, 6, 41, 16, 0, + 20, 115, 178, 51, 114, 82, 114, 82, 98, 97, 114, 82, + 99, 82, 98, 98, 98, 82, 114, 82, 114, 67, 130, 33, + 18, 147, 18, 226, 226, 226, 114, 66, 114, 66, 149, 240, + 240, 192, 46, 16, 240, 240, 68, 226, 226, 225, 226, 226, + 226, 226, 210, 36, 130, 17, 50, 115, 66, 114, 82, 99, + 82, 98, 98, 98, 82, 114, 82, 98, 98, 33, 50, 82, + 49, 50, 82, 33, 65, 98, 18, 65, 115, 0, 16, 80, + 30, 10, 240, 240, 82, 115, 0, 6, 115, 97, 34, 65, + 50, 65, 50, 114, 130, 115, 114, 130, 114, 49, 66, 49, + 66, 33, 99, 0, 10, 80, 36, 15, 0, 6, 114, 210, + 0, 10, 83, 162, 34, 145, 50, 129, 66, 113, 82, 195, + 194, 210, 195, 194, 210, 210, 195, 194, 210, 195, 114, 50, + 130, 34, 163, 240, 240, 176, 43, 14, 240, 244, 194, 194, + 194, 193, 194, 194, 194, 193, 67, 82, 49, 33, 82, 33, + 34, 82, 17, 163, 164, 162, 34, 130, 50, 113, 66, 98, + 66, 17, 66, 66, 17, 66, 66, 17, 65, 98, 0, 14, + 80, 31, 9, 240, 84, 114, 114, 114, 113, 114, 114, 114, + 113, 114, 114, 114, 98, 114, 114, 114, 98, 49, 50, 33, + 66, 33, 66, 33, 83, 0, 9, 80, 57, 25, 0, 31, + 66, 52, 68, 113, 18, 18, 34, 33, 50, 81, 35, 81, + 17, 66, 81, 35, 82, 82, 81, 34, 83, 82, 130, 82, + 98, 114, 98, 82, 130, 98, 82, 130, 82, 98, 33, 82, + 82, 82, 49, 66, 98, 82, 33, 82, 98, 82, 18, 82, + 97, 115, 0, 25, 80, 42, 18, 0, 22, 99, 52, 113, + 33, 33, 50, 97, 35, 66, 81, 50, 82, 81, 35, 82, + 130, 98, 130, 82, 146, 82, 130, 98, 33, 82, 82, 49, + 82, 82, 33, 98, 82, 18, 97, 115, 0, 18, 80, 30, + 15, 0, 19, 53, 146, 50, 99, 82, 82, 98, 66, 114, + 66, 114, 50, 130, 50, 114, 66, 114, 66, 98, 82, 82, + 114, 50, 149, 0, 16, 47, 18, 0, 23, 3, 51, 130, + 18, 17, 34, 113, 35, 66, 97, 34, 82, 81, 49, 98, + 130, 98, 130, 83, 130, 82, 145, 98, 130, 82, 146, 82, + 147, 50, 161, 35, 178, 240, 18, 240, 18, 240, 17, 240, + 18, 230, 0, 6, 39, 14, 0, 18, 19, 146, 49, 17, + 82, 82, 82, 82, 66, 97, 82, 82, 67, 82, 66, 98, + 66, 82, 82, 82, 82, 67, 98, 36, 115, 18, 194, 194, + 194, 193, 194, 166, 240, 240, 48, 26, 15, 0, 19, 3, + 36, 81, 36, 34, 65, 35, 50, 49, 50, 210, 194, 210, + 210, 209, 210, 210, 210, 209, 0, 16, 64, 26, 14, 0, + 18, 20, 130, 66, 97, 82, 82, 67, 82, 197, 166, 180, + 194, 66, 98, 66, 97, 81, 82, 118, 0, 14, 112, 30, + 12, 0, 6, 82, 162, 162, 146, 162, 162, 105, 113, 162, + 162, 162, 146, 162, 162, 146, 65, 82, 65, 82, 49, 98, + 34, 115, 0, 12, 112, 42, 17, 0, 21, 67, 98, 82, + 18, 82, 81, 34, 66, 81, 50, 66, 81, 34, 82, 130, + 82, 130, 66, 130, 82, 130, 82, 33, 82, 81, 49, 82, + 66, 33, 98, 49, 17, 33, 116, 50, 0, 17, 80, 36, + 14, 0, 17, 99, 66, 66, 18, 50, 65, 34, 50, 49, + 50, 65, 49, 34, 81, 98, 65, 114, 65, 98, 81, 98, + 81, 98, 65, 114, 65, 130, 33, 163, 0, 14, 112, 50, + 20, 0, 25, 35, 82, 50, 65, 34, 66, 50, 65, 34, + 66, 50, 49, 50, 50, 81, 49, 34, 66, 81, 98, 66, + 81, 98, 66, 65, 98, 66, 81, 98, 66, 81, 98, 66, + 65, 114, 66, 65, 130, 33, 18, 33, 163, 51, 0, 20, + 112, 34, 17, 0, 21, 99, 51, 98, 49, 17, 49, 81, + 66, 50, 65, 82, 242, 226, 242, 242, 226, 242, 81, 66, + 50, 65, 81, 49, 17, 50, 99, 51, 0, 17, 112, 46, + 16, 0, 20, 35, 98, 66, 18, 82, 65, 34, 66, 65, + 50, 66, 65, 34, 82, 114, 82, 114, 66, 114, 82, 114, + 82, 114, 82, 114, 66, 130, 51, 148, 18, 226, 210, 130, + 66, 115, 50, 145, 50, 164, 240, 240, 208, 29, 15, 0, + 19, 35, 65, 101, 33, 113, 51, 113, 81, 209, 209, 209, + 209, 209, 97, 97, 97, 100, 50, 97, 37, 97, 67, 0, + 15, 112, 8, 16, 0, 28, 13, 0, 32, 48, 9, 30, + 0, 52, 79, 12, 0, 60, 48, 17, 12, 240, 193, 50, + 82, 50, 81, 50, 82, 49, 97, 49, 97, 0, 35, 112, + 14, 13, 240, 240, 179, 65, 65, 34, 33, 65, 67, 0, + 41, 32, +}; + +//***************************************************************************** +// +// The font definition for the 30 point Cm italic font. +// +//***************************************************************************** +const tFont g_sFontCm30i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 26, + + // + // The height of the font. + // + 31, + + // + // The baseline of the font. + // + 23, + + // + // The offset to each character in the font. + // + { + 0, 5, 33, 57, 138, 187, 266, 331, + 346, 380, 414, 443, 486, 501, 510, 520, + 586, 631, 659, 704, 748, 788, 828, 870, + 907, 950, 993, 1008, 1028, 1056, 1069, 1108, + 1147, 1219, 1272, 1318, 1367, 1414, 1460, 1506, + 1557, 1604, 1631, 1672, 1731, 1778, 1858, 1920, + 1967, 2013, 2081, 2130, 2179, 2233, 2282, 2335, + 2414, 2473, 2525, 2572, 2606, 2630, 2664, 2678, + 2687, 2702, 2739, 2777, 2803, 2849, 2876, 2913, + 2954, 3000, 3030, 3066, 3109, 3140, 3197, 3239, + 3269, 3316, 3355, 3381, 3407, 3437, 3479, 3515, + 3565, 3599, 3645, 3674, 3682, 3691, 3708, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm30iData +}; diff --git a/grlib/fonts/fontcm32.c b/grlib/fonts/fontcm32.c new file mode 100644 index 0000000..fff98bf --- /dev/null +++ b/grlib/fonts/fontcm32.c @@ -0,0 +1,421 @@ +//***************************************************************************** +// +// fontcm32.c - Font definition for the 32pt Cm font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 32 point +// Bold: no +// Italic: no +// Memory usage: 3972 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 32 point Cm font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm32Data[3769] = +{ + 5, 13, 0, 53, 80, 27, 6, 195, 51, 51, 51, 51, + 51, 51, 51, 50, 81, 81, 81, 81, 81, 81, 81, 81, + 81, 240, 19, 51, 51, 0, 6, 48, 25, 13, 240, 240, + 162, 66, 68, 51, 67, 51, 97, 81, 97, 81, 97, 81, + 81, 81, 97, 81, 81, 81, 0, 34, 96, 86, 25, 0, + 10, 82, 82, 240, 17, 97, 240, 33, 97, 240, 33, 97, + 240, 18, 82, 240, 17, 97, 240, 33, 97, 240, 33, 97, + 240, 18, 82, 240, 17, 97, 240, 33, 97, 159, 7, 161, + 97, 240, 33, 97, 240, 33, 97, 240, 33, 97, 175, 7, + 145, 97, 240, 33, 97, 240, 18, 82, 240, 17, 97, 240, + 33, 97, 240, 33, 97, 240, 18, 82, 240, 17, 97, 240, + 33, 97, 240, 33, 97, 240, 18, 82, 0, 7, 112, 62, + 16, 97, 241, 214, 130, 33, 34, 98, 49, 65, 82, 49, + 66, 50, 65, 81, 50, 65, 51, 50, 65, 51, 50, 65, + 147, 49, 163, 33, 182, 183, 197, 177, 35, 161, 51, 145, + 66, 51, 49, 66, 51, 49, 66, 49, 81, 66, 50, 65, + 65, 81, 65, 50, 98, 33, 34, 134, 209, 241, 0, 13, + 16, 85, 25, 51, 193, 130, 33, 177, 114, 66, 130, 113, + 83, 83, 114, 97, 21, 17, 130, 97, 113, 130, 97, 97, + 146, 97, 97, 146, 97, 81, 162, 97, 65, 193, 81, 81, + 194, 65, 65, 226, 33, 66, 240, 18, 81, 240, 129, 84, + 241, 66, 49, 209, 81, 65, 194, 66, 81, 177, 82, 81, + 161, 98, 81, 146, 98, 81, 145, 114, 81, 130, 114, 81, + 114, 145, 81, 113, 162, 49, 114, 177, 34, 113, 211, 0, + 19, 48, 72, 24, 0, 6, 99, 240, 82, 18, 240, 65, + 49, 240, 50, 49, 240, 50, 49, 240, 50, 49, 240, 50, + 33, 240, 66, 33, 240, 81, 17, 240, 99, 118, 130, 147, + 162, 161, 161, 18, 129, 161, 49, 113, 161, 66, 97, 145, + 97, 81, 161, 98, 49, 162, 114, 33, 162, 114, 17, 178, + 130, 129, 66, 115, 98, 82, 66, 35, 50, 117, 100, 0, + 24, 96, 14, 7, 240, 114, 68, 67, 97, 97, 97, 81, + 97, 81, 0, 19, 36, 10, 97, 129, 145, 129, 129, 145, + 130, 129, 130, 130, 130, 114, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 146, 130, 130, 130, 146, 130, 146, 145, + 146, 145, 161, 48, 36, 10, 1, 161, 146, 145, 161, 146, + 130, 146, 130, 130, 131, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 129, 130, 130, 129, 130, 129, 145, 129, + 129, 145, 129, 144, 30, 14, 81, 209, 209, 209, 65, 50, + 49, 50, 81, 33, 33, 133, 177, 181, 129, 33, 33, 82, + 49, 50, 49, 65, 209, 209, 209, 0, 32, 64, 47, 23, + 0, 18, 50, 240, 98, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 207, + 5, 194, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 0, 18, 96, 15, 6, 0, + 16, 66, 67, 51, 81, 81, 81, 65, 81, 65, 240, 32, + 8, 11, 0, 24, 104, 0, 19, 80, 10, 6, 0, 16, + 67, 51, 51, 0, 6, 48, 36, 15, 177, 210, 209, 225, + 210, 209, 225, 210, 209, 225, 210, 209, 225, 210, 209, 225, + 210, 209, 225, 210, 209, 225, 210, 209, 225, 210, 209, 225, + 210, 209, 225, 210, 209, 224, 49, 15, 0, 6, 20, 146, + 66, 113, 97, 98, 98, 81, 129, 66, 130, 50, 130, 50, + 130, 50, 130, 50, 130, 50, 130, 50, 130, 50, 130, 50, + 130, 50, 130, 50, 130, 50, 130, 66, 113, 82, 98, 97, + 97, 114, 66, 148, 0, 15, 112, 30, 13, 240, 240, 225, + 178, 163, 115, 18, 178, 178, 178, 178, 178, 178, 178, 178, + 178, 178, 178, 178, 178, 178, 178, 178, 178, 122, 0, 13, + 48, 39, 15, 0, 6, 21, 130, 51, 97, 114, 81, 114, + 65, 146, 51, 114, 51, 114, 51, 114, 210, 194, 210, 194, + 209, 209, 209, 209, 209, 209, 113, 81, 129, 65, 145, 74, + 75, 0, 15, 64, 39, 15, 0, 6, 21, 130, 66, 97, + 114, 83, 82, 83, 82, 83, 82, 210, 210, 194, 209, 164, + 242, 226, 210, 226, 210, 66, 114, 51, 114, 51, 114, 65, + 114, 97, 82, 134, 0, 15, 96, 41, 16, 0, 7, 17, + 226, 226, 211, 193, 18, 193, 18, 177, 34, 161, 50, 161, + 50, 145, 66, 145, 66, 129, 82, 113, 98, 113, 98, 97, + 114, 97, 114, 109, 178, 226, 226, 226, 184, 0, 16, 48, + 40, 15, 0, 5, 113, 113, 99, 65, 119, 134, 145, 225, + 225, 225, 225, 36, 129, 17, 50, 114, 82, 210, 226, 210, + 210, 210, 66, 114, 51, 114, 49, 145, 81, 114, 98, 66, + 133, 0, 15, 112, 47, 15, 0, 6, 52, 146, 65, 113, + 97, 98, 82, 97, 98, 82, 209, 225, 210, 36, 114, 17, + 66, 83, 98, 67, 113, 66, 130, 50, 130, 50, 130, 50, + 130, 65, 130, 65, 130, 66, 113, 97, 98, 98, 66, 148, + 0, 15, 112, 32, 16, 0, 6, 17, 252, 75, 65, 161, + 65, 145, 81, 129, 241, 225, 225, 241, 225, 241, 241, 225, + 241, 241, 226, 226, 226, 226, 226, 226, 0, 17, 32, 47, + 17, 0, 7, 5, 162, 66, 129, 114, 113, 130, 82, 130, + 82, 130, 98, 114, 99, 82, 131, 50, 165, 212, 193, 36, + 130, 83, 98, 115, 81, 147, 50, 162, 50, 162, 50, 162, + 51, 145, 82, 130, 99, 81, 166, 0, 17, 112, 47, 15, + 0, 6, 20, 146, 65, 129, 97, 98, 98, 81, 129, 66, + 129, 66, 130, 50, 130, 50, 130, 50, 130, 50, 130, 66, + 99, 66, 81, 18, 82, 65, 18, 116, 34, 209, 210, 210, + 82, 97, 98, 81, 113, 81, 149, 0, 16, 15, 6, 0, + 8, 35, 51, 51, 0, 6, 51, 51, 51, 0, 6, 48, + 20, 6, 0, 8, 35, 51, 51, 0, 6, 50, 67, 51, + 81, 81, 81, 65, 81, 65, 240, 32, 27, 6, 0, 6, + 3, 51, 51, 240, 113, 81, 81, 81, 81, 81, 81, 81, + 81, 82, 51, 51, 51, 51, 51, 51, 51, 51, 144, 13, + 23, 0, 40, 47, 5, 0, 11, 127, 5, 0, 37, 96, + 33, 14, 0, 14, 67, 179, 179, 0, 6, 97, 209, 209, + 209, 209, 193, 209, 193, 209, 193, 193, 194, 194, 114, 50, + 114, 50, 129, 66, 82, 102, 240, 240, 64, 35, 14, 240, + 240, 21, 129, 82, 81, 114, 49, 130, 50, 114, 50, 114, + 194, 178, 193, 193, 194, 193, 209, 193, 209, 209, 209, 209, + 240, 240, 163, 179, 179, 0, 14, 112, 80, 24, 0, 7, + 6, 243, 83, 194, 146, 161, 209, 129, 85, 81, 113, 66, + 50, 66, 81, 66, 97, 65, 81, 50, 130, 33, 65, 66, + 130, 49, 49, 50, 146, 49, 49, 50, 146, 49, 49, 50, + 146, 49, 49, 50, 146, 49, 49, 50, 146, 49, 49, 66, + 130, 49, 65, 50, 115, 49, 65, 66, 99, 49, 81, 66, + 50, 18, 33, 97, 84, 67, 129, 240, 146, 210, 131, 116, + 200, 0, 25, 16, 57, 23, 0, 7, 1, 240, 98, 240, + 98, 240, 84, 240, 65, 18, 240, 49, 34, 240, 49, 50, + 240, 33, 50, 240, 17, 66, 240, 17, 82, 241, 82, 225, + 98, 225, 114, 209, 114, 219, 177, 146, 177, 146, 161, 163, + 145, 178, 145, 178, 129, 195, 114, 194, 85, 150, 0, 23, + 48, 48, 21, 0, 7, 126, 162, 130, 146, 146, 130, 162, + 114, 162, 114, 162, 114, 162, 114, 162, 114, 146, 130, 114, + 172, 146, 131, 130, 162, 114, 162, 114, 178, 98, 178, 98, + 178, 98, 178, 98, 162, 114, 162, 114, 131, 94, 0, 21, + 112, 51, 21, 0, 8, 102, 65, 131, 81, 49, 114, 129, + 18, 98, 163, 82, 194, 66, 210, 66, 225, 65, 241, 50, + 241, 50, 240, 66, 240, 66, 240, 66, 240, 66, 240, 81, + 241, 66, 225, 66, 225, 82, 193, 114, 177, 130, 145, 163, + 82, 214, 0, 22, 49, 23, 0, 8, 94, 194, 130, 178, + 162, 146, 178, 130, 178, 130, 194, 114, 194, 114, 210, 98, + 210, 98, 210, 98, 210, 98, 210, 98, 210, 98, 210, 98, + 210, 98, 194, 114, 194, 114, 193, 130, 178, 130, 162, 146, + 130, 141, 0, 24, 32, 50, 21, 0, 7, 127, 2, 114, + 147, 114, 162, 114, 177, 114, 177, 114, 177, 114, 97, 194, + 97, 194, 97, 194, 82, 201, 194, 82, 194, 97, 194, 97, + 194, 97, 194, 193, 98, 193, 98, 193, 98, 178, 98, 177, + 114, 147, 79, 2, 0, 21, 64, 48, 20, 0, 7, 79, + 1, 114, 147, 98, 162, 98, 177, 98, 177, 98, 177, 98, + 97, 178, 97, 178, 97, 178, 82, 185, 178, 82, 178, 97, + 178, 97, 178, 97, 178, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 248, 0, 21, 64, 53, 23, 0, 9, 70, + 65, 163, 82, 33, 146, 132, 130, 163, 114, 194, 98, 225, + 98, 225, 97, 241, 82, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 168, 66, 210, 98, 210, 98, 210, 114, 194, + 130, 178, 146, 147, 163, 97, 33, 199, 49, 0, 23, 80, + 50, 23, 0, 8, 88, 72, 98, 162, 146, 162, 146, 162, + 146, 162, 146, 162, 146, 162, 146, 162, 146, 162, 146, 162, + 158, 146, 162, 146, 162, 146, 162, 146, 162, 146, 162, 146, + 162, 146, 162, 146, 162, 146, 162, 146, 162, 104, 72, 0, + 23, 48, 29, 11, 240, 240, 56, 98, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 104, 0, 11, 48, 32, 14, 0, 5, 103, + 162, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 83, 66, 83, 66, 83, 65, 113, 66, + 132, 0, 15, 54, 24, 0, 9, 8, 117, 114, 178, 146, + 177, 162, 161, 178, 145, 194, 129, 210, 113, 226, 97, 242, + 81, 240, 18, 66, 240, 18, 37, 242, 17, 50, 243, 82, + 226, 99, 210, 114, 210, 130, 194, 131, 178, 146, 178, 162, + 162, 163, 146, 179, 88, 103, 0, 24, 48, 49, 19, 0, + 7, 24, 226, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 161, 98, 161, 98, 161, 98, 161, + 98, 146, 98, 146, 98, 115, 79, 0, 19, 64, 87, 28, + 0, 10, 70, 229, 99, 211, 145, 18, 177, 18, 145, 18, + 177, 18, 145, 18, 177, 18, 145, 34, 145, 34, 145, 34, + 145, 34, 145, 34, 145, 34, 145, 50, 113, 50, 145, 50, + 113, 50, 145, 50, 97, 66, 145, 66, 81, 66, 145, 66, + 81, 66, 145, 82, 49, 82, 145, 82, 49, 82, 145, 82, + 49, 82, 145, 98, 17, 98, 145, 98, 17, 98, 145, 98, + 17, 98, 145, 114, 114, 131, 98, 114, 103, 168, 0, 28, + 48, 66, 23, 0, 8, 86, 134, 99, 147, 129, 18, 145, + 145, 19, 129, 145, 34, 129, 145, 35, 113, 145, 50, 113, + 145, 66, 97, 145, 66, 97, 145, 82, 81, 145, 83, 65, + 145, 98, 65, 145, 114, 49, 145, 114, 49, 145, 130, 33, + 145, 131, 17, 145, 146, 17, 145, 148, 145, 163, 145, 178, + 131, 162, 102, 161, 0, 23, 96, 49, 22, 0, 9, 21, + 242, 82, 193, 146, 145, 177, 130, 178, 98, 210, 82, 210, + 81, 242, 50, 242, 50, 242, 50, 242, 50, 242, 50, 242, + 50, 242, 51, 226, 66, 210, 82, 210, 98, 178, 130, 161, + 147, 130, 178, 82, 245, 0, 23, 32, 47, 20, 0, 7, + 77, 162, 115, 130, 146, 114, 161, 114, 162, 98, 162, 98, + 162, 98, 162, 98, 161, 114, 146, 114, 115, 138, 162, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 248, 0, 21, 64, 70, 22, 0, 9, 22, + 226, 82, 194, 130, 146, 162, 114, 178, 98, 210, 82, 210, + 81, 242, 50, 242, 50, 242, 50, 242, 50, 242, 50, 242, + 50, 242, 50, 242, 66, 210, 82, 210, 98, 67, 81, 129, + 49, 49, 49, 161, 33, 65, 17, 195, 66, 246, 240, 113, + 65, 240, 17, 65, 240, 17, 65, 240, 18, 34, 240, 36, + 240, 51, 0, 6, 16, 51, 24, 0, 9, 13, 226, 115, + 194, 146, 178, 161, 178, 162, 162, 162, 162, 162, 162, 161, + 178, 146, 178, 114, 217, 242, 99, 210, 115, 194, 130, 194, + 131, 178, 131, 178, 131, 178, 131, 178, 131, 178, 146, 65, + 98, 147, 34, 56, 117, 0, 24, 64, 47, 17, 0, 6, + 117, 49, 98, 81, 33, 82, 115, 81, 146, 66, 161, 66, + 161, 66, 161, 67, 145, 83, 230, 216, 198, 243, 243, 49, + 178, 49, 178, 49, 178, 49, 178, 50, 161, 67, 130, 65, + 34, 82, 81, 69, 0, 17, 112, 55, 23, 0, 8, 111, + 3, 82, 98, 98, 81, 114, 113, 65, 130, 113, 65, 130, + 129, 49, 130, 129, 49, 130, 129, 194, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 42, + 0, 24, 51, 23, 0, 8, 87, 103, 98, 163, 130, 177, + 146, 177, 146, 177, 146, 177, 146, 177, 146, 177, 146, 177, + 146, 177, 146, 177, 146, 177, 146, 177, 146, 177, 146, 177, + 146, 177, 146, 177, 161, 161, 178, 145, 194, 113, 226, 66, + 240, 36, 0, 24, 48, 58, 25, 0, 9, 55, 165, 83, + 210, 130, 209, 147, 193, 162, 177, 178, 177, 179, 161, 194, + 145, 211, 129, 226, 113, 242, 113, 243, 97, 240, 18, 81, + 240, 35, 65, 240, 50, 49, 240, 66, 49, 240, 67, 33, + 240, 82, 17, 240, 98, 17, 240, 114, 240, 130, 240, 130, + 0, 26, 80, 87, 33, 0, 12, 55, 86, 117, 83, 147, + 146, 115, 147, 161, 130, 162, 145, 146, 147, 145, 147, 131, + 145, 162, 113, 34, 113, 178, 113, 34, 113, 179, 97, 34, + 113, 194, 81, 66, 81, 210, 81, 66, 81, 211, 65, 66, + 81, 226, 49, 98, 49, 242, 49, 98, 49, 243, 33, 98, + 49, 240, 18, 17, 115, 17, 240, 34, 17, 130, 17, 240, + 36, 130, 17, 240, 51, 131, 240, 66, 162, 240, 66, 162, + 240, 81, 161, 0, 34, 64, 58, 24, 0, 9, 7, 118, + 115, 146, 163, 145, 195, 113, 226, 113, 242, 81, 240, 19, + 49, 240, 50, 49, 240, 66, 17, 240, 83, 240, 115, 240, + 99, 240, 81, 34, 240, 65, 35, 240, 33, 66, 240, 17, + 98, 225, 115, 209, 130, 193, 162, 161, 179, 131, 179, 86, + 135, 0, 24, 48, 55, 25, 0, 9, 55, 165, 83, 210, + 131, 193, 162, 177, 179, 145, 211, 129, 226, 113, 243, 97, + 240, 18, 81, 240, 50, 49, 240, 67, 33, 240, 82, 17, + 240, 114, 240, 130, 240, 130, 240, 130, 240, 130, 240, 130, + 240, 130, 240, 130, 240, 130, 240, 88, 0, 26, 32, 44, + 18, 0, 6, 111, 52, 131, 50, 162, 65, 162, 81, 147, + 81, 146, 97, 130, 243, 242, 242, 240, 18, 242, 242, 240, + 18, 242, 240, 18, 129, 98, 145, 82, 161, 82, 161, 66, + 162, 50, 148, 63, 0, 18, 48, 35, 8, 133, 50, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 101, 48, 23, 13, 240, 240, 177, 81, + 81, 81, 81, 97, 81, 81, 97, 81, 99, 51, 67, 52, + 66, 66, 0, 36, 32, 35, 8, 133, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 53, 48, 14, 11, 240, 240, 97, 145, 18, 97, + 65, 65, 97, 0, 36, 16, 9, 6, 240, 51, 51, 51, + 0, 20, 80, 14, 7, 240, 129, 81, 97, 81, 97, 99, + 68, 66, 0, 19, 96, 38, 17, 0, 23, 101, 177, 67, + 129, 99, 114, 98, 114, 98, 182, 146, 66, 115, 82, 114, + 98, 98, 114, 33, 50, 114, 33, 50, 99, 33, 66, 65, + 18, 33, 85, 51, 0, 17, 64, 45, 17, 0, 6, 52, + 242, 242, 242, 242, 242, 242, 242, 242, 36, 146, 17, 66, + 115, 98, 98, 114, 98, 130, 82, 130, 82, 130, 82, 130, + 82, 130, 82, 130, 82, 114, 99, 98, 97, 33, 66, 113, + 52, 0, 17, 112, 28, 14, 0, 19, 101, 130, 65, 97, + 113, 66, 98, 50, 114, 50, 194, 194, 194, 194, 210, 113, + 82, 81, 99, 65, 133, 0, 14, 80, 45, 17, 0, 7, + 52, 242, 242, 242, 242, 242, 242, 242, 148, 34, 114, 65, + 18, 113, 99, 98, 114, 82, 130, 82, 130, 82, 130, 82, + 130, 82, 130, 82, 130, 98, 114, 98, 99, 114, 65, 20, + 116, 36, 0, 17, 48, 28, 15, 0, 21, 21, 130, 66, + 98, 98, 81, 130, 50, 130, 60, 50, 210, 210, 225, 226, + 129, 82, 97, 114, 65, 149, 0, 15, 96, 32, 13, 240, + 240, 35, 130, 34, 114, 34, 98, 178, 178, 178, 178, 178, + 137, 114, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, + 178, 151, 0, 13, 80, 48, 17, 0, 21, 99, 52, 82, + 51, 34, 81, 66, 146, 82, 130, 82, 130, 82, 130, 82, + 145, 81, 162, 50, 145, 35, 177, 240, 17, 240, 17, 240, + 18, 240, 25, 114, 115, 66, 162, 50, 162, 50, 147, 67, + 98, 135, 240, 240, 176, 52, 18, 0, 6, 100, 240, 18, + 240, 18, 240, 18, 240, 18, 240, 18, 240, 18, 240, 18, + 240, 18, 37, 146, 17, 66, 131, 98, 115, 98, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 86, 54, 0, 18, 48, 25, 9, 240, + 211, 99, 99, 0, 6, 36, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 86, 0, 9, 48, 33, 10, + 240, 240, 67, 115, 115, 0, 7, 4, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 50, 49, 65, 50, 84, 240, 160, 43, 17, 0, 6, 52, + 242, 242, 242, 242, 242, 242, 242, 242, 85, 82, 82, 130, + 81, 146, 65, 162, 49, 178, 34, 178, 19, 179, 34, 162, + 66, 146, 66, 146, 82, 130, 98, 114, 99, 70, 53, 0, + 17, 48, 28, 9, 240, 196, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 86, 0, 9, 48, 51, 26, 0, 35, 115, 37, + 68, 116, 17, 66, 33, 50, 131, 99, 82, 115, 98, 98, + 114, 114, 98, 114, 114, 98, 114, 114, 98, 114, 114, 98, + 114, 114, 98, 114, 114, 98, 114, 114, 98, 114, 114, 98, + 114, 114, 98, 86, 54, 38, 0, 26, 48, 36, 18, 0, + 24, 115, 37, 116, 17, 66, 131, 98, 115, 98, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 86, 54, 0, 18, 48, 33, 16, 0, + 22, 69, 161, 67, 113, 114, 82, 114, 66, 146, 50, 146, + 50, 146, 50, 146, 50, 146, 50, 146, 66, 114, 82, 114, + 99, 66, 149, 0, 16, 112, 43, 17, 0, 23, 67, 36, + 116, 17, 66, 115, 98, 98, 114, 98, 130, 82, 130, 82, + 130, 82, 130, 82, 130, 82, 130, 82, 114, 99, 98, 98, + 17, 51, 114, 36, 146, 242, 242, 242, 242, 214, 240, 240, + 240, 44, 17, 0, 23, 116, 49, 115, 49, 33, 99, 81, + 17, 98, 114, 82, 130, 82, 130, 82, 130, 82, 130, 82, + 130, 82, 130, 98, 114, 98, 99, 115, 49, 18, 148, 34, + 242, 242, 242, 242, 242, 214, 240, 240, 112, 25, 12, 0, + 16, 83, 34, 68, 17, 18, 83, 34, 82, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 134, 0, 12, 96, 32, 13, + 0, 18, 21, 17, 82, 66, 66, 97, 66, 97, 67, 81, + 68, 182, 164, 65, 99, 49, 114, 49, 114, 50, 98, 51, + 66, 65, 37, 0, 13, 80, 32, 13, 0, 8, 81, 193, + 193, 193, 178, 163, 137, 114, 178, 178, 178, 178, 178, 178, + 178, 65, 98, 65, 98, 65, 98, 65, 114, 33, 147, 0, + 13, 80, 36, 18, 0, 24, 100, 84, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 99, 130, 65, 20, 117, 36, 0, + 18, 48, 33, 18, 0, 24, 102, 84, 82, 129, 114, 129, + 130, 97, 146, 97, 162, 65, 178, 65, 193, 49, 210, 33, + 210, 33, 227, 243, 240, 17, 240, 33, 0, 19, 32, 51, + 23, 0, 31, 85, 38, 52, 67, 82, 98, 98, 97, 97, + 114, 98, 81, 129, 83, 65, 146, 49, 33, 65, 146, 49, + 34, 49, 161, 49, 34, 33, 178, 17, 65, 33, 178, 17, + 66, 17, 193, 17, 67, 210, 98, 210, 98, 225, 97, 0, + 24, 16, 34, 18, 0, 24, 101, 85, 83, 82, 146, 81, + 178, 49, 210, 33, 210, 17, 242, 240, 19, 225, 34, 209, + 49, 193, 66, 161, 98, 130, 99, 85, 85, 0, 18, 48, + 44, 18, 0, 24, 101, 85, 82, 114, 114, 113, 146, 97, + 146, 81, 177, 81, 178, 65, 193, 49, 210, 33, 210, 17, + 243, 242, 240, 33, 240, 33, 240, 17, 240, 33, 240, 17, + 194, 49, 193, 49, 227, 0, 6, 32, 29, 14, 0, 19, + 43, 50, 113, 65, 114, 65, 98, 81, 82, 193, 194, 178, + 178, 193, 97, 82, 97, 66, 113, 65, 114, 59, 0, 14, + 48, 8, 18, 0, 36, 15, 0, 36, 48, 9, 33, 0, + 66, 15, 15, 0, 66, 48, 17, 12, 240, 240, 130, 50, + 82, 50, 66, 50, 81, 65, 81, 65, 0, 38, 32, 14, + 13, 0, 6, 99, 65, 65, 34, 33, 65, 67, 0, 42, + 112, +}; + +//***************************************************************************** +// +// The font definition for the 32 point Cm font. +// +//***************************************************************************** +const tFont g_sFontCm32 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 29, + + // + // The height of the font. + // + 33, + + // + // The baseline of the font. + // + 25, + + // + // The offset to each character in the font. + // + { + 0, 5, 32, 57, 143, 205, 290, 362, + 376, 412, 448, 478, 525, 540, 548, 558, + 594, 643, 673, 712, 751, 792, 832, 879, + 911, 958, 1005, 1020, 1040, 1067, 1080, 1113, + 1148, 1228, 1285, 1333, 1384, 1433, 1483, 1531, + 1584, 1634, 1663, 1695, 1749, 1798, 1885, 1951, + 2000, 2047, 2117, 2168, 2215, 2270, 2321, 2379, + 2466, 2524, 2579, 2623, 2658, 2681, 2716, 2730, + 2739, 2753, 2791, 2836, 2864, 2909, 2937, 2969, + 3017, 3069, 3094, 3127, 3170, 3198, 3249, 3285, + 3318, 3361, 3405, 3430, 3462, 3494, 3530, 3563, + 3614, 3648, 3692, 3721, 3729, 3738, 3755, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm32Data +}; diff --git a/grlib/fonts/fontcm32b.c b/grlib/fonts/fontcm32b.c new file mode 100644 index 0000000..89081ad --- /dev/null +++ b/grlib/fonts/fontcm32b.c @@ -0,0 +1,413 @@ +//***************************************************************************** +// +// fontcm32b.c - Font definition for the 32pt Cm bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 32 point +// Bold: yes +// Italic: no +// Memory usage: 3884 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 32 point Cm bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm32bData[3681] = +{ + 4, 13, 0, 52, 27, 8, 240, 35, 69, 53, 53, 53, + 53, 67, 83, 83, 83, 83, 83, 83, 97, 113, 240, 115, + 69, 53, 53, 67, 0, 8, 64, 29, 16, 240, 240, 51, + 83, 69, 53, 53, 53, 53, 53, 68, 68, 113, 113, 113, + 113, 97, 113, 113, 113, 97, 113, 97, 113, 0, 38, 96, + 86, 26, 0, 7, 113, 97, 240, 34, 82, 240, 34, 82, + 240, 34, 82, 240, 34, 82, 240, 18, 82, 240, 34, 82, + 240, 34, 82, 240, 34, 82, 240, 18, 82, 159, 8, 178, + 82, 240, 18, 82, 240, 34, 82, 240, 34, 82, 240, 34, + 82, 240, 34, 82, 240, 18, 82, 191, 8, 146, 82, 240, + 18, 82, 240, 34, 82, 240, 34, 82, 240, 34, 82, 240, + 18, 82, 240, 34, 82, 240, 34, 82, 240, 33, 97, 0, + 8, 32, 60, 15, 81, 225, 198, 130, 17, 34, 98, 33, + 50, 82, 33, 66, 51, 33, 36, 51, 33, 36, 51, 33, + 36, 52, 17, 35, 70, 167, 137, 121, 135, 145, 21, 67, + 17, 36, 52, 17, 51, 52, 17, 51, 51, 33, 51, 50, + 49, 50, 82, 33, 35, 83, 17, 19, 119, 177, 225, 0, + 12, 48, 80, 25, 51, 194, 114, 33, 178, 98, 50, 146, + 114, 67, 83, 115, 65, 25, 115, 65, 114, 131, 65, 113, + 147, 65, 98, 147, 65, 82, 163, 65, 81, 194, 49, 82, + 195, 33, 66, 243, 82, 240, 114, 83, 226, 67, 33, 210, + 66, 49, 194, 67, 65, 162, 83, 65, 162, 83, 65, 146, + 99, 65, 130, 115, 65, 130, 115, 65, 114, 131, 65, 98, + 162, 49, 114, 163, 33, 113, 211, 0, 19, 48, 65, 24, + 0, 6, 100, 240, 66, 33, 240, 50, 65, 240, 19, 65, + 240, 19, 65, 240, 19, 65, 240, 19, 49, 240, 36, 17, + 240, 53, 103, 115, 146, 164, 130, 164, 114, 166, 98, 146, + 20, 82, 147, 36, 65, 148, 37, 34, 148, 52, 18, 164, + 69, 180, 84, 98, 52, 100, 82, 68, 55, 50, 117, 86, + 0, 24, 80, 17, 8, 240, 35, 69, 53, 53, 68, 113, + 113, 97, 113, 97, 97, 0, 19, 96, 35, 10, 97, 130, + 114, 115, 114, 115, 114, 115, 115, 115, 114, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 115, 115, 131, 115, 115, 130, + 131, 130, 131, 130, 146, 145, 48, 35, 10, 1, 146, 146, + 146, 130, 131, 130, 131, 115, 115, 130, 131, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 114, 130, 115, 115, 114, 115, + 114, 130, 114, 114, 129, 144, 30, 14, 67, 179, 179, 179, + 115, 19, 19, 52, 17, 20, 73, 117, 135, 84, 17, 20, + 51, 33, 35, 50, 35, 34, 115, 179, 179, 0, 30, 80, + 49, 23, 0, 15, 66, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, + 98, 207, 5, 194, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 0, 15, + 112, 17, 8, 0, 19, 19, 69, 53, 53, 68, 113, 113, + 97, 113, 97, 97, 240, 112, 10, 11, 0, 22, 8, 56, + 56, 0, 18, 32, 12, 8, 0, 19, 19, 69, 53, 53, + 67, 0, 8, 64, 35, 15, 162, 210, 210, 194, 210, 210, + 194, 210, 210, 194, 210, 210, 194, 210, 210, 194, 210, 194, + 210, 210, 194, 210, 210, 194, 210, 210, 194, 210, 210, 194, + 210, 210, 208, 47, 16, 0, 6, 69, 162, 51, 114, 82, + 99, 83, 83, 83, 68, 84, 52, 84, 52, 84, 52, 84, + 52, 84, 52, 84, 52, 84, 52, 84, 52, 84, 52, 84, + 52, 84, 67, 83, 83, 83, 98, 82, 115, 51, 149, 0, + 16, 112, 28, 14, 0, 6, 1, 194, 164, 119, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 123, 0, 14, 48, 37, 15, 0, 6, 6, 130, + 51, 99, 52, 69, 52, 53, 52, 53, 52, 67, 68, 180, + 179, 180, 179, 179, 179, 194, 194, 81, 98, 82, 83, 82, + 90, 74, 75, 75, 0, 15, 64, 41, 17, 0, 6, 118, + 146, 68, 114, 84, 84, 68, 84, 68, 84, 68, 98, 84, + 211, 212, 196, 165, 240, 20, 228, 213, 67, 85, 53, 69, + 53, 69, 53, 68, 83, 84, 98, 68, 135, 0, 17, 112, + 37, 16, 0, 7, 18, 226, 211, 211, 196, 181, 177, 19, + 162, 19, 146, 35, 145, 51, 130, 51, 129, 67, 114, 67, + 98, 83, 97, 99, 93, 179, 211, 211, 211, 168, 0, 16, + 48, 38, 15, 0, 5, 98, 98, 90, 89, 104, 118, 146, + 210, 210, 210, 21, 115, 51, 98, 83, 195, 196, 180, 67, + 68, 52, 68, 52, 68, 52, 67, 66, 99, 82, 67, 133, + 0, 15, 112, 45, 16, 0, 6, 101, 147, 50, 115, 51, + 99, 67, 84, 67, 83, 98, 83, 196, 196, 21, 101, 51, + 85, 67, 68, 84, 52, 84, 52, 84, 52, 84, 52, 84, + 67, 84, 67, 83, 98, 83, 114, 51, 149, 0, 16, 112, + 31, 15, 0, 5, 98, 219, 75, 59, 74, 82, 97, 97, + 98, 97, 82, 209, 210, 210, 209, 210, 210, 210, 195, 195, + 195, 195, 195, 195, 0, 16, 16, 43, 17, 0, 6, 118, + 162, 67, 114, 99, 83, 99, 83, 99, 84, 83, 85, 67, + 87, 19, 121, 152, 168, 123, 83, 55, 66, 101, 51, 116, + 51, 131, 51, 131, 51, 130, 83, 114, 99, 67, 150, 0, + 17, 112, 46, 16, 0, 6, 69, 147, 50, 115, 82, 99, + 83, 68, 83, 68, 84, 52, 84, 52, 84, 52, 84, 52, + 84, 67, 84, 67, 69, 83, 53, 101, 20, 196, 67, 83, + 83, 83, 83, 82, 99, 67, 98, 66, 164, 0, 17, 16, + 19, 8, 0, 10, 19, 69, 53, 53, 67, 240, 240, 115, + 69, 53, 53, 67, 0, 8, 64, 24, 8, 0, 10, 19, + 69, 53, 53, 67, 240, 240, 115, 69, 53, 53, 68, 113, + 98, 97, 113, 97, 97, 240, 112, 27, 8, 0, 8, 19, + 69, 53, 53, 67, 240, 113, 113, 99, 83, 83, 83, 83, + 83, 83, 83, 69, 53, 53, 53, 53, 67, 192, 13, 24, + 0, 36, 15, 6, 0, 21, 63, 6, 0, 33, 48, 34, + 13, 0, 13, 51, 164, 148, 148, 147, 240, 240, 113, 193, + 193, 193, 193, 178, 178, 162, 163, 148, 66, 52, 51, 52, + 51, 52, 51, 67, 50, 101, 240, 240, 32, 32, 14, 240, + 247, 97, 68, 67, 68, 51, 68, 51, 68, 50, 84, 148, + 148, 162, 193, 194, 193, 209, 209, 209, 240, 240, 163, 165, + 149, 149, 163, 0, 15, 74, 23, 0, 6, 86, 242, 99, + 162, 162, 130, 194, 113, 84, 81, 97, 67, 50, 65, 81, + 51, 81, 65, 65, 66, 99, 49, 49, 51, 99, 49, 49, + 51, 99, 49, 49, 51, 99, 49, 49, 51, 99, 49, 49, + 51, 99, 49, 49, 51, 99, 49, 49, 67, 83, 49, 65, + 51, 83, 49, 65, 67, 52, 33, 97, 84, 36, 114, 240, + 114, 195, 130, 117, 184, 0, 24, 54, 25, 0, 7, 66, + 240, 115, 240, 116, 240, 100, 240, 85, 240, 86, 240, 70, + 240, 50, 20, 240, 50, 21, 240, 33, 37, 240, 18, 52, + 240, 18, 53, 241, 69, 226, 84, 226, 85, 220, 194, 116, + 194, 117, 177, 148, 162, 148, 162, 149, 103, 90, 0, 25, + 48, 48, 22, 240, 240, 239, 164, 99, 148, 115, 132, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 100, 132, 84, + 155, 180, 100, 132, 116, 116, 116, 116, 132, 100, 132, 100, + 132, 100, 132, 100, 116, 116, 116, 116, 100, 95, 0, 22, + 112, 49, 22, 0, 6, 70, 65, 132, 85, 116, 116, 100, + 147, 84, 178, 69, 178, 68, 194, 53, 209, 53, 240, 37, + 240, 37, 240, 37, 240, 37, 240, 37, 240, 37, 209, 68, + 209, 69, 193, 84, 178, 100, 161, 132, 129, 164, 82, 230, + 0, 23, 49, 25, 0, 6, 47, 212, 100, 180, 132, 148, + 148, 132, 148, 132, 164, 116, 164, 116, 165, 100, 165, 100, + 165, 100, 165, 100, 165, 100, 165, 100, 165, 100, 165, 100, + 164, 116, 164, 116, 148, 132, 148, 132, 132, 148, 101, 127, + 0, 26, 32, 54, 21, 240, 240, 207, 1, 95, 1, 132, + 99, 132, 115, 116, 130, 116, 130, 116, 130, 116, 65, 65, + 116, 65, 65, 116, 65, 196, 50, 201, 196, 50, 196, 65, + 196, 65, 66, 100, 65, 66, 100, 146, 100, 145, 116, 130, + 116, 130, 116, 100, 79, 2, 0, 21, 64, 49, 20, 240, + 240, 175, 1, 79, 1, 116, 99, 116, 114, 116, 129, 116, + 130, 100, 130, 100, 65, 50, 100, 65, 180, 65, 180, 50, + 185, 180, 50, 180, 65, 180, 65, 180, 65, 180, 240, 20, + 240, 20, 240, 20, 240, 20, 219, 0, 21, 16, 51, 23, + 0, 6, 86, 65, 164, 69, 147, 116, 132, 131, 116, 162, + 101, 162, 100, 178, 100, 178, 85, 193, 85, 240, 53, 240, + 53, 240, 53, 240, 53, 240, 53, 90, 68, 148, 100, 148, + 116, 132, 116, 132, 132, 116, 164, 69, 198, 50, 0, 23, + 80, 51, 25, 0, 6, 42, 42, 100, 132, 148, 132, 148, + 132, 148, 132, 148, 132, 148, 132, 148, 132, 148, 132, 148, + 132, 159, 1, 148, 132, 148, 132, 148, 132, 148, 132, 148, + 132, 148, 132, 148, 132, 148, 132, 148, 132, 148, 132, 106, + 42, 0, 25, 48, 28, 13, 240, 186, 100, 148, 148, 148, + 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, + 148, 148, 148, 148, 106, 0, 13, 48, 33, 17, 240, 240, + 138, 180, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, + 212, 212, 212, 212, 99, 68, 85, 52, 85, 52, 85, 51, + 114, 67, 166, 0, 18, 51, 25, 0, 6, 42, 71, 116, + 146, 164, 130, 180, 115, 180, 99, 196, 98, 212, 82, 228, + 66, 244, 50, 240, 20, 36, 244, 21, 251, 229, 37, 212, + 53, 212, 69, 196, 84, 196, 85, 180, 100, 180, 101, 164, + 117, 148, 132, 106, 57, 0, 25, 48, 37, 19, 240, 240, + 139, 180, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, + 244, 244, 129, 100, 114, 100, 114, 100, 114, 100, 114, 100, + 98, 116, 98, 116, 68, 79, 0, 19, 64, 84, 30, 0, + 7, 72, 199, 101, 181, 150, 161, 19, 146, 19, 161, 19, + 146, 20, 130, 19, 146, 20, 129, 35, 146, 35, 129, 35, + 146, 36, 98, 35, 146, 36, 97, 51, 146, 51, 97, 51, + 146, 52, 66, 51, 146, 67, 65, 67, 146, 67, 65, 67, + 146, 68, 34, 67, 146, 83, 33, 83, 146, 84, 17, 83, + 146, 85, 99, 146, 100, 99, 146, 100, 99, 146, 99, 115, + 146, 114, 115, 104, 66, 73, 0, 30, 48, 62, 26, 0, + 6, 72, 120, 102, 146, 150, 146, 146, 20, 130, 146, 21, + 114, 146, 36, 114, 146, 52, 98, 146, 53, 82, 146, 69, + 66, 146, 84, 66, 146, 85, 50, 146, 101, 34, 146, 116, + 34, 146, 117, 18, 146, 135, 146, 150, 146, 165, 146, 165, + 146, 180, 146, 195, 146, 195, 104, 162, 0, 26, 96, 49, + 23, 0, 6, 86, 243, 68, 164, 100, 132, 132, 116, 132, + 100, 164, 84, 164, 69, 165, 53, 165, 53, 165, 53, 165, + 53, 165, 53, 165, 53, 165, 53, 165, 68, 164, 85, 148, + 100, 132, 116, 132, 132, 100, 164, 67, 246, 0, 24, 32, + 47, 22, 240, 240, 239, 164, 85, 132, 116, 116, 116, 116, + 117, 100, 117, 100, 117, 100, 117, 100, 116, 116, 116, 116, + 100, 140, 164, 240, 52, 240, 52, 240, 52, 240, 52, 240, + 52, 240, 52, 240, 52, 240, 52, 250, 0, 23, 64, 64, + 23, 0, 6, 86, 228, 67, 180, 100, 132, 132, 116, 132, + 100, 164, 84, 164, 69, 165, 53, 165, 53, 165, 53, 165, + 53, 165, 53, 165, 53, 165, 53, 165, 68, 164, 84, 164, + 100, 35, 52, 116, 17, 49, 36, 133, 69, 164, 67, 232, + 81, 243, 50, 248, 240, 23, 240, 22, 240, 38, 240, 52, + 0, 6, 48, 51, 26, 0, 6, 78, 244, 84, 212, 101, + 180, 116, 180, 117, 164, 117, 164, 117, 164, 117, 164, 116, + 180, 101, 180, 84, 219, 244, 84, 212, 85, 196, 100, 196, + 100, 196, 101, 180, 101, 180, 101, 180, 101, 50, 100, 117, + 34, 58, 102, 0, 26, 64, 43, 17, 240, 240, 133, 49, + 98, 84, 82, 115, 82, 130, 67, 130, 67, 130, 68, 129, + 69, 200, 170, 138, 138, 152, 213, 212, 49, 163, 50, 147, + 50, 147, 50, 146, 67, 130, 69, 82, 82, 38, 0, 17, + 112, 56, 21, 240, 240, 207, 3, 63, 3, 51, 68, 67, + 50, 84, 82, 50, 84, 82, 49, 100, 97, 49, 100, 97, + 49, 100, 97, 49, 100, 97, 164, 240, 36, 240, 36, 240, + 36, 240, 36, 240, 36, 240, 36, 240, 36, 240, 36, 240, + 36, 240, 36, 240, 36, 220, 0, 21, 96, 51, 25, 0, + 6, 42, 72, 100, 162, 148, 162, 148, 162, 148, 162, 148, + 162, 148, 162, 148, 162, 148, 162, 148, 162, 148, 162, 148, + 162, 148, 162, 148, 162, 148, 162, 148, 162, 148, 162, 163, + 161, 180, 130, 195, 114, 227, 82, 240, 38, 0, 26, 48, + 53, 25, 0, 6, 41, 103, 85, 162, 148, 162, 149, 146, + 149, 130, 180, 130, 181, 113, 212, 98, 213, 82, 213, 81, + 244, 66, 245, 50, 245, 34, 240, 36, 34, 240, 37, 17, + 240, 70, 240, 70, 240, 69, 240, 100, 240, 100, 240, 99, + 240, 130, 0, 26, 80, 79, 34, 0, 8, 73, 41, 71, + 85, 101, 145, 133, 116, 130, 148, 116, 130, 149, 101, 113, + 165, 101, 98, 180, 101, 98, 181, 86, 81, 197, 66, 20, + 66, 212, 66, 20, 66, 213, 49, 37, 49, 229, 34, 37, + 34, 244, 34, 52, 34, 245, 17, 69, 17, 240, 23, 71, + 240, 38, 86, 240, 37, 101, 240, 53, 101, 240, 68, 116, + 240, 67, 131, 240, 83, 131, 240, 98, 146, 0, 35, 64, + 55, 25, 0, 6, 42, 40, 133, 114, 197, 82, 213, 82, + 229, 50, 240, 20, 49, 240, 37, 18, 240, 54, 240, 70, + 240, 85, 240, 85, 240, 101, 240, 70, 240, 71, 240, 34, + 36, 240, 33, 53, 242, 69, 210, 85, 210, 101, 178, 117, + 177, 149, 104, 74, 0, 25, 48, 53, 25, 0, 6, 42, + 87, 101, 146, 149, 146, 165, 114, 181, 114, 197, 82, 213, + 82, 229, 50, 245, 50, 240, 21, 18, 240, 37, 17, 240, + 70, 240, 84, 240, 100, 240, 100, 240, 100, 240, 100, 240, + 100, 240, 100, 240, 100, 240, 100, 240, 58, 0, 26, 16, + 46, 19, 240, 240, 143, 1, 53, 101, 51, 117, 67, 101, + 82, 117, 82, 101, 98, 101, 98, 85, 229, 213, 228, 229, + 213, 229, 97, 101, 113, 100, 114, 85, 114, 84, 130, 69, + 115, 68, 101, 63, 1, 63, 1, 0, 19, 48, 34, 8, + 133, 50, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 101, 48, 29, 16, 240, 240, + 81, 113, 97, 113, 97, 113, 113, 113, 97, 113, 113, 113, + 116, 68, 69, 53, 53, 53, 68, 68, 67, 83, 0, 38, + 64, 34, 8, 133, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 53, 48, 13, + 11, 240, 177, 147, 117, 83, 19, 50, 81, 0, 34, 96, + 11, 8, 240, 35, 69, 53, 53, 67, 0, 25, 64, 17, + 8, 240, 65, 97, 97, 113, 97, 113, 116, 69, 53, 68, + 67, 0, 19, 64, 33, 17, 0, 21, 71, 146, 68, 115, + 67, 115, 83, 98, 99, 227, 167, 116, 51, 99, 83, 83, + 99, 83, 99, 83, 99, 99, 50, 19, 101, 52, 0, 17, + 48, 43, 18, 240, 240, 101, 213, 243, 243, 243, 243, 243, + 243, 243, 21, 148, 67, 115, 84, 99, 99, 99, 100, 83, + 100, 83, 100, 83, 100, 83, 100, 83, 100, 83, 99, 99, + 84, 100, 52, 114, 37, 0, 18, 112, 28, 14, 0, 18, + 6, 99, 51, 68, 51, 67, 67, 52, 81, 68, 164, 164, + 164, 164, 179, 97, 68, 81, 84, 49, 133, 0, 14, 80, + 43, 18, 240, 240, 229, 213, 243, 243, 243, 243, 243, 243, + 149, 19, 116, 52, 100, 83, 99, 99, 84, 99, 84, 99, + 84, 99, 84, 99, 84, 99, 84, 99, 99, 99, 100, 83, + 115, 55, 117, 21, 0, 18, 48, 29, 16, 0, 20, 70, + 131, 51, 100, 67, 83, 99, 52, 99, 52, 99, 61, 52, + 196, 196, 211, 114, 83, 97, 115, 66, 134, 0, 16, 96, + 33, 14, 240, 240, 53, 131, 19, 99, 35, 83, 51, 83, + 65, 99, 179, 179, 153, 115, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 152, 0, 14, 96, 44, 17, 0, + 21, 86, 19, 98, 51, 19, 66, 85, 82, 83, 99, 83, + 99, 83, 114, 83, 115, 51, 129, 21, 161, 240, 17, 240, + 25, 139, 108, 66, 131, 66, 146, 66, 146, 67, 115, 83, + 83, 135, 240, 240, 176, 51, 19, 240, 240, 133, 229, 240, + 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, + 19, 52, 147, 18, 50, 132, 83, 116, 83, 115, 99, 115, + 99, 115, 99, 115, 99, 115, 99, 115, 99, 115, 99, 115, + 99, 115, 99, 88, 23, 0, 19, 48, 27, 10, 240, 114, + 116, 100, 100, 114, 240, 240, 101, 85, 115, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 115, 87, 0, 10, 48, 36, + 12, 240, 227, 133, 117, 117, 131, 240, 240, 214, 102, 147, + 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, + 65, 67, 51, 51, 51, 50, 67, 35, 85, 240, 240, 41, + 18, 240, 240, 101, 213, 243, 243, 243, 243, 243, 243, 243, + 54, 99, 82, 131, 66, 147, 50, 163, 34, 179, 19, 183, + 184, 163, 35, 163, 36, 147, 52, 131, 67, 131, 68, 87, + 23, 0, 18, 48, 28, 10, 240, 85, 85, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, + 115, 115, 115, 115, 87, 0, 10, 48, 51, 27, 0, 33, + 101, 53, 53, 131, 18, 51, 17, 51, 116, 84, 67, 116, + 84, 67, 115, 99, 83, 115, 99, 83, 115, 99, 83, 115, + 99, 83, 115, 99, 83, 115, 99, 83, 115, 99, 83, 115, + 99, 83, 115, 99, 83, 88, 23, 23, 0, 27, 48, 36, + 19, 0, 23, 101, 52, 117, 18, 50, 132, 83, 116, 83, + 115, 99, 115, 99, 115, 99, 115, 99, 115, 99, 115, 99, + 115, 99, 115, 99, 115, 99, 88, 23, 0, 19, 48, 33, + 17, 0, 21, 102, 147, 67, 114, 99, 83, 99, 68, 100, + 52, 100, 52, 100, 52, 100, 52, 100, 52, 100, 67, 99, + 84, 83, 99, 67, 150, 0, 17, 112, 41, 18, 0, 22, + 69, 21, 148, 52, 115, 84, 99, 99, 99, 100, 83, 100, + 83, 100, 83, 100, 83, 100, 83, 100, 83, 99, 99, 84, + 100, 52, 115, 21, 147, 243, 243, 243, 243, 215, 0, 5, + 112, 42, 18, 0, 23, 5, 34, 116, 34, 18, 100, 68, + 99, 99, 84, 99, 84, 99, 84, 99, 84, 99, 84, 99, + 84, 99, 99, 99, 100, 68, 116, 37, 149, 19, 243, 243, + 243, 243, 243, 215, 240, 240, 144, 27, 14, 0, 17, 69, + 35, 69, 17, 19, 84, 35, 84, 35, 83, 65, 99, 179, + 179, 179, 179, 179, 179, 179, 152, 0, 14, 96, 29, 13, + 0, 16, 71, 82, 66, 66, 97, 66, 97, 67, 167, 120, + 103, 164, 49, 114, 50, 98, 50, 98, 51, 66, 66, 21, + 0, 13, 80, 32, 12, 0, 6, 65, 177, 177, 162, 162, + 147, 121, 83, 147, 147, 147, 147, 147, 147, 147, 49, 83, + 49, 83, 49, 83, 49, 99, 17, 132, 0, 12, 64, 35, + 19, 0, 23, 101, 54, 85, 54, 115, 99, 115, 99, 115, + 99, 115, 99, 115, 99, 115, 99, 115, 99, 115, 99, 115, + 99, 115, 84, 130, 71, 117, 37, 0, 19, 48, 30, 18, + 0, 22, 71, 53, 83, 98, 116, 81, 147, 66, 148, 50, + 148, 49, 179, 34, 180, 17, 196, 17, 213, 212, 243, 243, + 242, 0, 19, 32, 46, 24, 0, 30, 6, 23, 37, 83, + 67, 82, 116, 51, 82, 116, 52, 65, 147, 52, 50, 148, + 36, 50, 148, 18, 19, 33, 179, 18, 19, 18, 181, 35, + 18, 181, 52, 212, 52, 211, 68, 211, 82, 242, 82, 0, + 25, 16, 30, 18, 0, 22, 71, 22, 100, 66, 147, 50, + 164, 18, 198, 212, 228, 243, 229, 194, 20, 178, 35, 162, + 52, 130, 84, 86, 39, 0, 18, 48, 41, 18, 0, 22, + 71, 38, 83, 98, 116, 81, 147, 66, 147, 65, 164, 34, + 179, 34, 180, 17, 198, 212, 228, 243, 242, 240, 18, 240, + 18, 177, 65, 179, 34, 179, 33, 195, 18, 211, 0, 6, + 32, 31, 15, 0, 18, 108, 51, 69, 50, 84, 66, 68, + 82, 68, 82, 52, 164, 180, 164, 50, 84, 66, 84, 66, + 68, 82, 52, 83, 60, 0, 15, 48, 9, 19, 0, 35, + 95, 1, 0, 38, 48, 10, 34, 0, 63, 111, 15, 1, + 0, 68, 48, 19, 12, 210, 50, 83, 35, 67, 35, 52, + 20, 51, 35, 66, 50, 82, 50, 0, 36, 80, 11, 13, + 240, 211, 65, 72, 66, 36, 0, 44, 64, +}; + +//***************************************************************************** +// +// The font definition for the 32 point Cm bold font. +// +//***************************************************************************** +const tFont g_sFontCm32b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 30, + + // + // The height of the font. + // + 32, + + // + // The baseline of the font. + // + 24, + + // + // The offset to each character in the font. + // + { + 0, 4, 31, 60, 146, 206, 286, 351, + 368, 403, 438, 468, 517, 534, 544, 556, + 591, 638, 666, 703, 744, 781, 819, 864, + 895, 938, 984, 1003, 1027, 1054, 1067, 1101, + 1133, 1207, 1261, 1309, 1358, 1407, 1461, 1510, + 1561, 1612, 1640, 1673, 1724, 1761, 1845, 1907, + 1956, 2003, 2067, 2118, 2161, 2217, 2268, 2321, + 2400, 2455, 2508, 2554, 2588, 2617, 2651, 2664, + 2675, 2692, 2725, 2768, 2796, 2839, 2868, 2901, + 2945, 2996, 3023, 3059, 3100, 3128, 3179, 3215, + 3248, 3289, 3331, 3358, 3387, 3419, 3454, 3484, + 3530, 3560, 3601, 3632, 3641, 3651, 3670, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm32bData +}; diff --git a/grlib/fonts/fontcm32i.c b/grlib/fonts/fontcm32i.c new file mode 100644 index 0000000..ba7e439 --- /dev/null +++ b/grlib/fonts/fontcm32i.c @@ -0,0 +1,437 @@ +//***************************************************************************** +// +// fontcm32i.c - Font definition for the 32pt Cm italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 32 point +// Bold: no +// Italic: yes +// Memory usage: 4164 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 32 point Cm italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm32iData[3964] = +{ + 5, 13, 0, 53, 80, 28, 11, 240, 195, 131, 131, 115, + 131, 131, 130, 146, 146, 130, 146, 146, 145, 161, 161, 145, + 161, 240, 240, 194, 131, 130, 0, 12, 16, 25, 12, 240, + 240, 130, 50, 67, 35, 67, 35, 97, 65, 81, 65, 97, + 65, 81, 65, 97, 65, 81, 65, 0, 32, 32, 86, 25, + 0, 11, 17, 81, 240, 34, 81, 240, 33, 82, 240, 18, + 81, 240, 33, 82, 240, 18, 81, 240, 33, 97, 240, 33, + 81, 240, 33, 97, 240, 33, 81, 240, 33, 97, 159, 6, + 177, 97, 240, 33, 81, 240, 33, 97, 240, 33, 81, 240, + 33, 97, 191, 6, 145, 97, 240, 33, 81, 240, 33, 97, + 240, 33, 81, 240, 33, 97, 240, 33, 81, 240, 33, 97, + 240, 18, 81, 240, 33, 97, 240, 33, 81, 0, 8, 48, + 53, 22, 0, 9, 116, 240, 34, 49, 241, 97, 210, 97, + 194, 98, 194, 83, 194, 240, 66, 240, 82, 240, 82, 240, + 40, 240, 18, 240, 82, 240, 82, 240, 82, 240, 81, 240, + 82, 240, 82, 240, 22, 129, 97, 51, 113, 97, 50, 19, + 65, 116, 85, 0, 23, 85, 25, 99, 193, 130, 18, 162, + 114, 50, 130, 129, 67, 83, 130, 65, 37, 17, 146, 65, + 113, 147, 65, 98, 146, 81, 82, 162, 65, 82, 178, 65, + 66, 194, 65, 65, 210, 49, 66, 225, 33, 66, 240, 18, + 66, 240, 114, 68, 241, 65, 65, 209, 66, 65, 194, 50, + 81, 178, 66, 81, 162, 82, 81, 146, 82, 97, 145, 98, + 81, 146, 98, 81, 130, 114, 65, 130, 130, 65, 114, 162, + 33, 129, 195, 0, 19, 112, 69, 24, 0, 7, 3, 240, + 66, 49, 114, 130, 81, 98, 114, 97, 113, 114, 82, 97, + 114, 98, 97, 114, 209, 130, 193, 145, 35, 99, 147, 49, + 66, 17, 146, 65, 49, 65, 115, 50, 33, 81, 98, 35, + 65, 81, 98, 147, 49, 98, 147, 49, 82, 240, 17, 82, + 241, 98, 241, 98, 225, 130, 193, 146, 177, 194, 114, 247, + 0, 25, 64, 15, 7, 240, 130, 67, 67, 97, 81, 97, + 81, 97, 81, 0, 19, 16, 36, 15, 177, 209, 209, 209, + 209, 210, 194, 209, 210, 209, 210, 210, 194, 210, 210, 194, + 210, 210, 210, 195, 194, 210, 210, 210, 210, 210, 210, 225, + 225, 226, 225, 226, 225, 176, 36, 15, 129, 241, 225, 226, + 225, 226, 210, 210, 210, 210, 210, 210, 210, 210, 195, 194, + 210, 210, 195, 194, 210, 194, 210, 210, 194, 209, 210, 209, + 209, 209, 210, 194, 193, 224, 31, 15, 113, 225, 225, 145, + 49, 65, 67, 33, 50, 98, 17, 18, 148, 194, 196, 146, + 17, 18, 98, 49, 35, 65, 65, 49, 145, 225, 225, 0, + 35, 45, 22, 0, 20, 81, 240, 97, 240, 97, 240, 82, + 240, 81, 240, 97, 240, 97, 240, 97, 240, 82, 240, 81, + 207, 4, 193, 240, 82, 240, 81, 240, 97, 240, 97, 240, + 82, 240, 81, 240, 97, 240, 97, 0, 18, 32, 15, 7, + 0, 19, 66, 67, 67, 97, 81, 97, 81, 97, 81, 240, + 80, 9, 11, 0, 23, 56, 56, 0, 19, 80, 10, 6, + 0, 16, 82, 51, 50, 0, 6, 64, 70, 22, 240, 49, + 240, 82, 240, 81, 240, 81, 240, 97, 240, 81, 240, 82, + 240, 81, 240, 82, 240, 81, 240, 82, 240, 81, 240, 81, + 240, 97, 240, 81, 240, 82, 240, 81, 240, 82, 240, 81, + 240, 81, 240, 97, 240, 81, 240, 82, 240, 81, 240, 82, + 240, 81, 240, 82, 240, 81, 240, 81, 240, 97, 240, 81, + 240, 82, 240, 81, 240, 96, 49, 17, 0, 7, 52, 178, + 50, 146, 82, 114, 98, 98, 114, 98, 114, 83, 114, 82, + 130, 82, 115, 67, 115, 66, 130, 82, 130, 82, 115, 67, + 114, 83, 114, 82, 115, 82, 114, 98, 114, 98, 98, 129, + 82, 146, 50, 181, 0, 18, 32, 29, 13, 0, 7, 81, + 178, 163, 148, 114, 18, 178, 178, 178, 162, 178, 178, 178, + 162, 178, 178, 178, 162, 178, 178, 163, 121, 0, 13, 64, + 51, 18, 0, 7, 101, 193, 66, 161, 97, 145, 114, 114, + 33, 66, 113, 49, 66, 113, 49, 66, 97, 65, 66, 97, + 49, 66, 113, 33, 82, 130, 82, 242, 241, 242, 241, 242, + 241, 145, 98, 129, 113, 145, 102, 66, 97, 55, 97, 100, + 0, 18, 112, 49, 18, 0, 7, 101, 178, 66, 145, 114, + 113, 130, 113, 130, 97, 49, 82, 97, 49, 82, 97, 34, + 66, 131, 82, 242, 242, 196, 240, 34, 240, 34, 240, 18, + 240, 18, 113, 130, 98, 115, 97, 130, 113, 114, 145, 67, + 181, 0, 19, 48, 43, 17, 0, 7, 114, 242, 242, 226, + 242, 242, 226, 242, 241, 242, 241, 242, 241, 242, 226, 34, + 177, 50, 162, 50, 146, 65, 146, 66, 130, 82, 118, 34, + 98, 86, 194, 242, 242, 226, 242, 242, 240, 240, 192, 48, + 18, 0, 7, 65, 113, 147, 66, 136, 166, 193, 240, 33, + 240, 18, 240, 17, 240, 33, 36, 179, 50, 146, 98, 240, + 18, 240, 18, 240, 18, 240, 18, 98, 115, 83, 114, 98, + 115, 97, 130, 113, 114, 145, 67, 181, 0, 19, 48, 47, + 16, 0, 7, 4, 178, 49, 130, 81, 129, 82, 114, 82, + 98, 226, 210, 226, 35, 131, 17, 49, 115, 82, 99, 82, + 83, 98, 83, 98, 83, 98, 82, 114, 82, 114, 82, 98, + 98, 98, 98, 82, 130, 50, 164, 0, 17, 32, 49, 18, + 0, 7, 17, 35, 81, 102, 65, 99, 49, 65, 98, 65, + 34, 98, 98, 17, 97, 145, 113, 129, 113, 145, 240, 18, + 240, 17, 240, 18, 242, 240, 18, 240, 18, 242, 240, 18, + 243, 242, 240, 18, 243, 242, 240, 18, 0, 19, 64, 47, + 17, 0, 7, 52, 194, 49, 161, 97, 129, 113, 114, 113, + 114, 113, 114, 97, 131, 81, 147, 34, 165, 228, 178, 20, + 130, 68, 98, 99, 82, 130, 82, 130, 66, 146, 66, 145, + 82, 130, 83, 98, 115, 66, 165, 0, 18, 16, 46, 17, + 0, 7, 52, 178, 50, 146, 82, 114, 98, 99, 98, 98, + 114, 98, 114, 83, 114, 82, 115, 82, 115, 82, 114, 98, + 99, 113, 84, 114, 49, 18, 148, 34, 227, 226, 226, 242, + 115, 66, 129, 66, 181, 0, 18, 48, 15, 9, 0, 12, + 99, 99, 98, 0, 9, 82, 99, 99, 0, 9, 96, 20, + 10, 0, 14, 50, 115, 114, 0, 10, 98, 115, 130, 145, + 145, 129, 145, 129, 129, 240, 224, 29, 11, 0, 13, 18, + 131, 130, 240, 240, 17, 161, 145, 161, 161, 146, 146, 146, + 130, 146, 146, 146, 131, 131, 130, 131, 131, 131, 240, 64, + 13, 24, 0, 42, 47, 4, 0, 15, 63, 5, 0, 36, + 64, 40, 14, 0, 16, 98, 179, 178, 240, 240, 146, 177, + 33, 145, 49, 145, 49, 194, 178, 178, 178, 163, 178, 67, + 66, 82, 66, 113, 65, 129, 65, 113, 81, 113, 81, 97, + 113, 50, 148, 240, 112, 40, 14, 240, 240, 67, 146, 49, + 113, 97, 82, 97, 81, 113, 65, 129, 65, 114, 66, 82, + 67, 66, 178, 178, 163, 177, 193, 49, 145, 49, 145, 33, + 178, 0, 6, 82, 179, 179, 0, 15, 32, 78, 23, 0, + 9, 102, 242, 98, 193, 161, 161, 52, 81, 129, 50, 49, + 66, 97, 50, 66, 65, 81, 50, 98, 49, 81, 34, 114, + 49, 65, 50, 114, 49, 65, 50, 114, 49, 49, 50, 114, + 65, 49, 50, 114, 49, 65, 50, 114, 49, 65, 50, 114, + 49, 65, 50, 98, 49, 81, 65, 83, 49, 81, 66, 49, + 18, 33, 113, 68, 51, 129, 240, 129, 194, 146, 115, 215, + 0, 24, 48, 58, 23, 0, 7, 81, 240, 98, 240, 83, + 240, 83, 240, 65, 18, 240, 65, 18, 240, 49, 34, 240, + 33, 50, 240, 33, 50, 240, 17, 66, 240, 17, 67, 225, + 83, 209, 99, 209, 99, 218, 193, 115, 177, 146, 177, 146, + 161, 162, 161, 162, 145, 178, 130, 178, 102, 104, 0, 23, + 48, 48, 23, 0, 9, 44, 211, 99, 178, 131, 162, 131, + 162, 131, 147, 131, 146, 146, 162, 131, 162, 115, 163, 98, + 202, 210, 130, 178, 145, 163, 146, 146, 162, 146, 162, 146, + 162, 131, 146, 146, 162, 146, 146, 162, 115, 141, 0, 24, + 32, 51, 23, 0, 9, 117, 65, 163, 81, 34, 146, 131, + 146, 162, 130, 178, 114, 194, 98, 209, 114, 209, 98, 225, + 98, 240, 98, 240, 82, 240, 98, 240, 98, 240, 98, 209, + 114, 209, 114, 193, 145, 193, 146, 161, 178, 129, 210, 82, + 246, 0, 24, 80, 49, 25, 0, 10, 28, 242, 115, 210, + 146, 194, 146, 179, 162, 162, 178, 162, 178, 162, 178, 147, + 178, 146, 194, 146, 194, 146, 179, 131, 178, 146, 194, 146, + 178, 162, 178, 147, 162, 162, 177, 178, 162, 178, 145, 195, + 114, 173, 0, 26, 64, 51, 24, 0, 9, 95, 1, 178, + 146, 178, 161, 163, 161, 163, 161, 162, 177, 162, 177, 147, + 81, 243, 81, 242, 82, 249, 227, 81, 243, 81, 242, 97, + 242, 97, 65, 147, 177, 147, 177, 146, 177, 162, 162, 147, + 161, 163, 131, 127, 2, 0, 24, 112, 49, 24, 0, 9, + 95, 1, 178, 131, 178, 146, 163, 146, 162, 161, 178, 161, + 178, 161, 163, 81, 242, 97, 242, 82, 248, 243, 81, 242, + 97, 242, 97, 242, 240, 99, 240, 99, 240, 98, 240, 114, + 240, 99, 240, 99, 240, 57, 0, 25, 112, 53, 23, 0, + 9, 117, 65, 178, 82, 18, 146, 129, 18, 130, 162, 130, + 178, 114, 194, 98, 210, 98, 209, 98, 240, 98, 240, 98, + 240, 82, 240, 98, 240, 98, 152, 66, 195, 98, 194, 114, + 194, 129, 179, 130, 163, 146, 131, 178, 82, 33, 198, 65, + 0, 24, 49, 27, 0, 10, 104, 56, 178, 146, 211, 131, + 210, 146, 226, 146, 226, 146, 211, 131, 211, 130, 226, 146, + 226, 146, 222, 211, 131, 210, 146, 226, 146, 211, 131, 211, + 131, 210, 146, 226, 146, 226, 146, 211, 131, 210, 146, 184, + 56, 0, 28, 28, 17, 0, 7, 9, 179, 226, 242, 227, + 227, 226, 242, 227, 227, 226, 242, 227, 227, 226, 242, 227, + 227, 226, 242, 227, 185, 0, 18, 48, 19, 0, 8, 24, + 227, 240, 19, 240, 18, 240, 34, 240, 34, 240, 19, 240, + 18, 240, 34, 240, 34, 240, 19, 240, 18, 240, 34, 240, + 19, 240, 19, 240, 18, 240, 34, 162, 67, 147, 66, 162, + 67, 161, 67, 197, 0, 20, 80, 64, 28, 0, 11, 24, + 102, 178, 163, 210, 161, 227, 130, 243, 113, 240, 34, 113, + 240, 50, 97, 240, 51, 81, 240, 67, 65, 240, 82, 51, + 240, 82, 33, 18, 240, 67, 17, 35, 240, 52, 66, 240, + 51, 83, 240, 34, 99, 240, 19, 114, 240, 19, 115, 242, + 131, 242, 146, 227, 147, 211, 147, 168, 87, 0, 29, 49, + 20, 0, 8, 25, 227, 240, 34, 240, 35, 240, 35, 240, + 34, 240, 50, 240, 35, 240, 35, 240, 34, 240, 50, 240, + 35, 240, 35, 240, 34, 240, 50, 145, 115, 145, 115, 145, + 114, 145, 130, 145, 115, 130, 115, 99, 95, 0, 20, 80, + 83, 32, 0, 12, 86, 213, 179, 195, 227, 177, 18, 209, + 18, 180, 209, 18, 161, 18, 225, 19, 129, 34, 225, 34, + 129, 34, 209, 50, 113, 35, 209, 50, 113, 34, 225, 50, + 97, 50, 225, 50, 81, 66, 225, 50, 81, 51, 209, 66, + 65, 66, 225, 66, 65, 66, 225, 66, 49, 82, 225, 66, + 49, 82, 209, 83, 17, 82, 225, 99, 98, 225, 99, 98, + 225, 98, 114, 210, 98, 99, 167, 65, 72, 0, 33, 66, + 28, 0, 11, 22, 119, 179, 146, 227, 145, 225, 19, 129, + 225, 34, 129, 225, 34, 129, 225, 35, 97, 225, 66, 97, + 225, 66, 97, 225, 67, 81, 225, 82, 65, 225, 98, 65, + 225, 99, 49, 225, 114, 49, 225, 114, 33, 225, 131, 17, + 225, 146, 17, 225, 146, 17, 225, 147, 225, 178, 226, 162, + 183, 130, 0, 29, 48, 49, 22, 0, 9, 69, 227, 67, + 178, 129, 162, 146, 130, 178, 98, 194, 82, 210, 82, 210, + 66, 226, 66, 226, 66, 226, 51, 210, 66, 226, 66, 211, + 66, 210, 82, 195, 82, 194, 113, 178, 130, 146, 161, 130, + 179, 67, 229, 0, 23, 80, 48, 23, 0, 9, 44, 226, + 114, 179, 130, 162, 146, 162, 146, 162, 146, 147, 146, 146, + 146, 162, 146, 162, 130, 163, 99, 186, 210, 240, 98, 240, + 83, 240, 83, 240, 82, 240, 98, 240, 83, 240, 83, 240, + 82, 240, 56, 0, 24, 112, 68, 22, 0, 9, 54, 227, + 66, 194, 114, 162, 146, 130, 177, 114, 194, 83, 194, 82, + 210, 67, 210, 66, 226, 66, 226, 51, 210, 66, 226, 66, + 226, 66, 210, 82, 210, 82, 194, 113, 82, 66, 130, 49, + 33, 34, 161, 33, 49, 18, 193, 17, 50, 246, 240, 97, + 81, 241, 81, 242, 49, 240, 22, 240, 21, 240, 51, 0, + 6, 80, 51, 23, 0, 9, 44, 226, 99, 179, 129, 178, + 146, 162, 146, 162, 146, 147, 131, 146, 146, 162, 130, 178, + 98, 201, 226, 98, 210, 114, 194, 114, 179, 114, 178, 130, + 178, 130, 178, 115, 163, 115, 162, 131, 49, 98, 131, 33, + 72, 100, 0, 23, 80, 52, 21, 0, 9, 5, 49, 162, + 81, 18, 146, 115, 130, 130, 145, 161, 130, 161, 130, 145, + 146, 240, 67, 240, 69, 240, 24, 240, 22, 240, 52, 240, + 66, 240, 66, 129, 162, 113, 178, 114, 146, 130, 145, 146, + 130, 130, 18, 66, 161, 54, 0, 22, 48, 55, 22, 0, + 8, 79, 2, 67, 83, 82, 65, 114, 113, 65, 114, 113, + 49, 115, 113, 49, 114, 113, 65, 114, 113, 194, 240, 67, + 240, 66, 240, 82, 240, 82, 240, 67, 240, 66, 240, 82, + 240, 82, 240, 67, 240, 66, 240, 82, 240, 82, 240, 67, + 250, 0, 23, 64, 51, 23, 0, 8, 104, 71, 99, 147, + 130, 177, 146, 161, 162, 161, 147, 161, 146, 177, 146, 161, + 162, 161, 147, 161, 146, 177, 146, 161, 162, 161, 147, 161, + 146, 177, 146, 161, 162, 161, 162, 145, 178, 130, 194, 98, + 226, 65, 240, 37, 0, 24, 112, 55, 23, 0, 8, 87, + 118, 83, 178, 114, 193, 131, 161, 147, 161, 147, 145, 163, + 129, 194, 129, 194, 113, 210, 113, 210, 97, 226, 81, 242, + 81, 243, 49, 240, 19, 33, 240, 35, 33, 240, 35, 17, + 240, 66, 17, 240, 67, 240, 82, 240, 98, 240, 97, 0, + 25, 32, 82, 31, 0, 11, 87, 71, 70, 82, 131, 146, + 114, 146, 145, 130, 146, 145, 130, 131, 129, 146, 131, 113, + 162, 113, 18, 113, 162, 113, 18, 97, 178, 97, 34, 97, + 178, 81, 50, 81, 194, 81, 50, 81, 195, 49, 66, 65, + 211, 49, 66, 65, 211, 33, 82, 49, 227, 33, 82, 33, + 243, 17, 99, 17, 243, 17, 100, 240, 20, 116, 240, 19, + 131, 240, 35, 131, 240, 34, 146, 240, 65, 146, 0, 33, + 62, 27, 0, 10, 104, 71, 179, 130, 227, 129, 243, 113, + 240, 35, 81, 240, 51, 65, 240, 82, 49, 240, 99, 17, + 240, 116, 240, 147, 240, 147, 240, 147, 240, 129, 18, 240, + 113, 35, 240, 81, 51, 240, 65, 83, 240, 49, 83, 240, + 33, 114, 240, 17, 131, 225, 147, 195, 148, 150, 119, 0, + 27, 112, 53, 24, 0, 9, 8, 133, 99, 178, 131, 177, + 162, 161, 179, 129, 195, 113, 226, 97, 243, 81, 243, 65, + 240, 19, 49, 240, 50, 33, 240, 68, 240, 83, 240, 114, + 240, 99, 240, 98, 240, 114, 240, 114, 240, 99, 240, 98, + 240, 114, 240, 72, 0, 25, 96, 49, 22, 0, 8, 126, + 132, 114, 146, 131, 145, 131, 145, 131, 161, 130, 177, 114, + 240, 66, 240, 67, 240, 51, 240, 51, 240, 66, 240, 66, + 240, 67, 240, 51, 113, 163, 113, 178, 129, 162, 145, 146, + 146, 131, 130, 131, 116, 142, 0, 23, 36, 15, 240, 132, + 177, 225, 209, 225, 225, 225, 209, 225, 225, 225, 209, 225, + 225, 225, 209, 225, 225, 225, 210, 209, 225, 225, 210, 209, + 225, 225, 210, 209, 225, 225, 212, 176, 25, 13, 240, 240, + 209, 65, 97, 65, 97, 65, 97, 81, 81, 81, 97, 81, + 99, 51, 67, 51, 66, 66, 0, 34, 96, 36, 14, 240, + 100, 209, 209, 193, 209, 209, 209, 193, 209, 209, 209, 193, + 209, 209, 209, 193, 209, 209, 209, 193, 209, 209, 209, 193, + 209, 209, 209, 193, 209, 209, 209, 163, 176, 15, 11, 240, + 240, 114, 131, 114, 18, 82, 49, 65, 97, 0, 34, 96, + 9, 6, 240, 66, 51, 50, 0, 20, 96, 14, 7, 240, + 145, 81, 81, 97, 81, 97, 99, 67, 66, 0, 19, 40, + 16, 0, 22, 84, 178, 33, 18, 114, 67, 98, 82, 98, + 98, 98, 98, 83, 97, 99, 82, 98, 98, 98, 98, 33, + 50, 82, 49, 50, 82, 49, 66, 34, 17, 33, 99, 66, + 0, 16, 80, 41, 13, 240, 240, 180, 177, 178, 178, 178, + 178, 162, 178, 178, 19, 115, 34, 83, 66, 66, 82, 66, + 82, 66, 82, 51, 82, 50, 83, 50, 82, 66, 82, 66, + 66, 82, 66, 98, 34, 131, 0, 14, 27, 13, 0, 18, + 68, 130, 49, 82, 66, 82, 66, 66, 178, 163, 162, 178, + 178, 178, 113, 65, 97, 82, 50, 116, 0, 13, 112, 49, + 17, 0, 7, 69, 242, 241, 242, 242, 242, 241, 242, 164, + 18, 146, 33, 18, 130, 66, 130, 82, 114, 98, 114, 98, + 99, 97, 115, 82, 114, 98, 114, 98, 33, 66, 82, 49, + 66, 67, 49, 82, 34, 17, 33, 115, 66, 0, 17, 96, + 29, 13, 0, 18, 68, 115, 34, 82, 81, 82, 81, 66, + 82, 66, 66, 71, 98, 178, 178, 178, 113, 50, 97, 82, + 50, 117, 0, 13, 96, 52, 18, 0, 8, 20, 210, 18, + 194, 240, 18, 240, 18, 242, 240, 18, 240, 18, 216, 195, + 242, 240, 18, 240, 18, 240, 18, 242, 240, 18, 240, 18, + 240, 18, 243, 242, 240, 18, 240, 18, 240, 18, 242, 240, + 18, 194, 33, 209, 34, 227, 0, 6, 32, 42, 17, 0, + 24, 36, 194, 33, 18, 130, 67, 114, 82, 114, 98, 114, + 98, 99, 98, 98, 98, 114, 98, 114, 98, 114, 82, 130, + 82, 146, 36, 163, 34, 226, 242, 242, 226, 130, 66, 165, + 240, 240, 240, 54, 18, 0, 7, 20, 240, 18, 240, 18, + 242, 240, 18, 240, 18, 240, 18, 242, 240, 18, 37, 146, + 17, 66, 131, 82, 115, 98, 114, 114, 114, 99, 114, 98, + 114, 114, 114, 98, 130, 98, 49, 66, 82, 65, 50, 98, + 49, 66, 98, 34, 66, 116, 0, 18, 80, 33, 10, 240, + 240, 242, 130, 0, 6, 115, 97, 34, 65, 50, 65, 50, + 65, 35, 114, 130, 114, 130, 115, 33, 66, 49, 66, 49, + 66, 33, 99, 0, 10, 80, 36, 15, 0, 8, 98, 210, + 0, 10, 83, 162, 34, 145, 50, 129, 66, 129, 66, 195, + 194, 210, 210, 195, 194, 210, 195, 194, 210, 210, 195, 194, + 130, 34, 148, 240, 240, 176, 47, 16, 0, 6, 52, 226, + 226, 226, 225, 226, 226, 226, 225, 83, 98, 50, 33, 98, + 33, 50, 98, 17, 178, 17, 195, 210, 19, 162, 50, 130, + 66, 130, 66, 130, 66, 33, 82, 66, 33, 66, 82, 17, + 82, 99, 0, 16, 80, 33, 10, 240, 240, 37, 115, 114, + 130, 130, 129, 130, 130, 130, 114, 130, 130, 130, 114, 130, + 130, 130, 114, 49, 66, 49, 66, 33, 82, 33, 99, 0, + 10, 96, 61, 26, 0, 36, 2, 68, 68, 113, 33, 33, + 50, 33, 50, 81, 49, 17, 66, 17, 66, 81, 35, 83, + 82, 81, 34, 98, 98, 130, 98, 98, 130, 98, 82, 130, + 98, 98, 130, 98, 98, 130, 98, 83, 33, 82, 98, 82, + 49, 66, 98, 98, 33, 82, 98, 98, 18, 82, 98, 115, + 0, 26, 80, 45, 18, 0, 25, 2, 68, 113, 33, 33, + 50, 81, 49, 17, 66, 81, 35, 82, 81, 34, 98, 130, + 98, 130, 82, 130, 98, 130, 98, 130, 83, 33, 82, 82, + 49, 66, 98, 33, 82, 98, 18, 82, 115, 0, 18, 80, + 32, 15, 0, 21, 52, 146, 50, 114, 82, 82, 98, 66, + 114, 66, 114, 51, 114, 50, 115, 50, 114, 66, 114, 66, + 98, 97, 82, 114, 50, 149, 0, 16, 49, 18, 0, 25, + 34, 67, 129, 33, 18, 34, 97, 51, 66, 81, 50, 82, + 81, 34, 98, 130, 98, 130, 98, 129, 99, 114, 98, 130, + 98, 130, 82, 146, 66, 146, 17, 34, 162, 20, 178, 242, + 240, 18, 240, 18, 240, 18, 230, 0, 6, 42, 15, 0, + 21, 36, 33, 114, 33, 18, 98, 67, 82, 82, 82, 98, + 82, 98, 67, 98, 67, 82, 82, 98, 82, 98, 82, 82, + 98, 67, 114, 36, 131, 34, 209, 210, 210, 210, 195, 167, + 240, 240, 80, 29, 15, 0, 20, 115, 36, 81, 33, 18, + 34, 49, 51, 50, 49, 35, 145, 34, 210, 210, 194, 210, + 210, 210, 194, 210, 210, 0, 16, 64, 26, 15, 0, 21, + 37, 130, 82, 97, 98, 82, 83, 82, 212, 198, 166, 211, + 210, 66, 114, 66, 113, 81, 98, 118, 0, 16, 31, 12, + 0, 8, 18, 162, 162, 162, 146, 162, 105, 114, 146, 162, + 162, 146, 162, 162, 162, 146, 65, 82, 65, 82, 49, 98, + 34, 116, 0, 12, 96, 43, 17, 0, 23, 83, 98, 82, + 18, 82, 81, 34, 82, 65, 50, 82, 65, 35, 66, 130, + 82, 130, 82, 115, 82, 114, 82, 130, 82, 130, 82, 33, + 82, 67, 33, 82, 49, 18, 17, 116, 51, 0, 17, 64, + 37, 15, 0, 20, 115, 82, 66, 18, 66, 65, 34, 66, + 49, 50, 81, 49, 35, 81, 98, 81, 114, 81, 99, 81, + 98, 97, 98, 81, 114, 81, 114, 65, 146, 34, 163, 0, + 16, 53, 21, 0, 29, 19, 98, 50, 66, 18, 82, 50, + 65, 34, 82, 50, 49, 50, 67, 65, 49, 35, 66, 81, + 98, 82, 81, 98, 82, 65, 99, 67, 65, 98, 82, 81, + 98, 82, 81, 98, 82, 65, 114, 67, 65, 130, 34, 18, + 33, 164, 51, 0, 21, 112, 37, 17, 0, 23, 115, 51, + 98, 49, 17, 49, 81, 67, 34, 65, 82, 145, 82, 226, + 242, 242, 242, 226, 81, 146, 81, 66, 35, 65, 81, 49, + 17, 50, 99, 51, 0, 17, 112, 48, 16, 0, 22, 35, + 98, 66, 18, 82, 65, 34, 82, 49, 50, 82, 49, 35, + 66, 114, 82, 114, 82, 99, 67, 98, 82, 114, 82, 114, + 82, 114, 67, 114, 51, 148, 18, 226, 210, 130, 66, 115, + 50, 130, 50, 164, 240, 240, 208, 29, 16, 0, 22, 83, + 65, 117, 33, 113, 67, 225, 225, 225, 225, 225, 225, 225, + 113, 97, 113, 100, 66, 97, 38, 97, 68, 0, 16, 112, + 8, 17, 0, 34, 14, 0, 34, 48, 9, 32, 0, 64, + 15, 14, 0, 64, 48, 19, 13, 240, 240, 194, 50, 98, + 50, 82, 50, 82, 50, 97, 65, 97, 65, 0, 39, 112, + 16, 13, 240, 240, 194, 65, 81, 17, 49, 81, 49, 17, + 81, 66, 0, 43, +}; + +//***************************************************************************** +// +// The font definition for the 32 point Cm italic font. +// +//***************************************************************************** +const tFont g_sFontCm32i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 28, + + // + // The height of the font. + // + 33, + + // + // The baseline of the font. + // + 25, + + // + // The offset to each character in the font. + // + { + 0, 5, 33, 58, 144, 197, 282, 351, + 366, 402, 438, 469, 514, 529, 538, 548, + 618, 667, 696, 747, 796, 839, 887, 934, + 983, 1030, 1076, 1091, 1111, 1140, 1153, 1193, + 1233, 1311, 1369, 1417, 1468, 1517, 1568, 1617, + 1670, 1719, 1747, 1795, 1859, 1908, 1991, 2057, + 2106, 2154, 2222, 2273, 2325, 2380, 2431, 2486, + 2568, 2630, 2683, 2732, 2768, 2793, 2829, 2844, + 2853, 2867, 2907, 2948, 2975, 3024, 3053, 3105, + 3147, 3201, 3234, 3270, 3317, 3350, 3411, 3456, + 3488, 3537, 3579, 3608, 3634, 3665, 3708, 3745, + 3798, 3835, 3883, 3912, 3920, 3929, 3948, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm32iData +}; diff --git a/grlib/fonts/fontcm34.c b/grlib/fonts/fontcm34.c new file mode 100644 index 0000000..a36e6ba --- /dev/null +++ b/grlib/fonts/fontcm34.c @@ -0,0 +1,449 @@ +//***************************************************************************** +// +// fontcm34.c - Font definition for the 34pt Cm font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 34 point +// Bold: no +// Italic: no +// Memory usage: 4316 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 34 point Cm font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm34Data[4113] = +{ + 5, 14, 0, 61, 32, 28, 6, 99, 51, 51, 51, 51, + 51, 51, 51, 51, 65, 81, 81, 81, 81, 81, 81, 81, + 81, 81, 240, 115, 51, 51, 0, 7, 16, 25, 14, 240, + 226, 82, 68, 52, 67, 67, 97, 97, 97, 97, 97, 97, + 81, 97, 97, 97, 81, 97, 97, 0, 41, 96, 95, 26, + 0, 7, 113, 97, 240, 49, 97, 240, 34, 97, 240, 33, + 113, 240, 33, 98, 240, 33, 97, 240, 34, 97, 240, 33, + 113, 240, 33, 98, 240, 33, 97, 240, 34, 97, 240, 33, + 113, 159, 8, 177, 97, 240, 34, 97, 240, 33, 113, 240, + 33, 98, 240, 33, 97, 191, 8, 145, 113, 240, 33, 98, + 240, 33, 97, 240, 34, 97, 240, 33, 113, 240, 33, 98, + 240, 33, 97, 240, 34, 97, 240, 33, 113, 240, 33, 98, + 240, 33, 97, 240, 49, 97, 0, 8, 32, 68, 17, 97, + 230, 146, 33, 50, 113, 49, 66, 82, 49, 81, 66, 65, + 97, 50, 65, 67, 50, 65, 67, 50, 65, 67, 51, 49, + 178, 49, 180, 17, 198, 200, 198, 177, 51, 161, 67, 145, + 67, 51, 49, 82, 51, 49, 82, 51, 49, 82, 49, 81, + 82, 65, 65, 66, 81, 65, 50, 114, 33, 34, 150, 225, + 240, 17, 0, 16, 16, 90, 27, 52, 209, 130, 50, 162, + 114, 83, 99, 129, 97, 38, 18, 114, 113, 114, 130, 113, + 113, 146, 113, 98, 146, 113, 82, 162, 113, 81, 178, 113, + 66, 194, 81, 81, 225, 81, 66, 241, 49, 66, 240, 35, + 81, 97, 240, 50, 66, 18, 242, 66, 65, 225, 81, 81, + 210, 66, 97, 178, 82, 97, 177, 98, 97, 162, 98, 97, + 161, 114, 97, 146, 114, 97, 130, 130, 97, 129, 162, 65, + 130, 162, 65, 114, 194, 33, 129, 227, 0, 24, 48, 77, + 25, 240, 240, 35, 240, 82, 33, 240, 81, 65, 240, 50, + 65, 240, 50, 65, 240, 50, 65, 240, 50, 65, 240, 50, + 49, 240, 66, 33, 240, 98, 17, 240, 99, 134, 130, 163, + 178, 161, 164, 145, 161, 50, 113, 161, 66, 113, 161, 82, + 81, 161, 98, 81, 146, 114, 49, 162, 130, 17, 178, 132, + 113, 51, 130, 129, 66, 131, 98, 82, 82, 35, 50, 118, + 100, 0, 28, 112, 15, 7, 242, 68, 67, 97, 97, 97, + 81, 97, 81, 97, 0, 20, 96, 38, 11, 113, 145, 145, + 145, 146, 145, 146, 146, 145, 146, 146, 146, 130, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 162, 146, 146, 146, + 162, 146, 161, 162, 161, 177, 177, 177, 48, 38, 11, 1, + 177, 177, 177, 162, 161, 162, 161, 162, 146, 146, 162, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 145, 146, + 146, 146, 145, 146, 145, 146, 145, 145, 145, 145, 160, 32, + 15, 82, 210, 210, 209, 81, 50, 49, 66, 82, 17, 34, + 146, 17, 193, 210, 17, 146, 17, 34, 82, 49, 66, 49, + 65, 226, 210, 210, 0, 38, 64, 49, 25, 0, 20, 2, + 240, 130, 240, 130, 240, 130, 240, 130, 240, 130, 240, 130, + 240, 130, 240, 130, 240, 130, 240, 130, 223, 7, 210, 240, + 130, 240, 130, 240, 130, 240, 130, 240, 130, 240, 130, 240, + 130, 240, 130, 240, 130, 0, 23, 64, 16, 7, 0, 20, + 34, 68, 67, 97, 97, 97, 81, 97, 81, 97, 240, 64, + 9, 12, 0, 25, 73, 57, 0, 24, 48, 10, 6, 0, + 17, 35, 51, 51, 0, 7, 16, 38, 15, 177, 225, 209, + 225, 225, 209, 225, 225, 210, 209, 225, 210, 209, 225, 210, + 209, 225, 210, 209, 225, 210, 209, 225, 210, 209, 225, 210, + 209, 225, 225, 209, 225, 225, 209, 225, 224, 51, 16, 0, + 6, 69, 162, 50, 129, 113, 98, 114, 82, 129, 81, 145, + 66, 146, 50, 146, 50, 146, 50, 146, 50, 146, 50, 146, + 50, 146, 50, 146, 50, 146, 50, 146, 50, 146, 65, 146, + 66, 114, 82, 114, 98, 97, 130, 50, 165, 0, 18, 112, + 30, 13, 240, 240, 225, 163, 115, 18, 178, 178, 178, 178, + 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, + 178, 178, 178, 122, 0, 15, 40, 16, 0, 6, 69, 146, + 67, 97, 130, 81, 130, 65, 162, 51, 130, 51, 130, 51, + 130, 226, 210, 226, 210, 225, 225, 225, 225, 225, 225, 225, + 129, 81, 145, 65, 161, 75, 76, 0, 18, 64, 42, 17, + 0, 6, 118, 161, 83, 97, 130, 99, 99, 83, 99, 83, + 99, 227, 226, 226, 226, 181, 240, 34, 240, 18, 243, 243, + 227, 51, 131, 51, 131, 51, 131, 49, 162, 81, 131, 98, + 83, 150, 0, 20, 42, 17, 0, 7, 81, 242, 242, 227, + 209, 18, 193, 34, 193, 34, 177, 50, 177, 50, 161, 66, + 145, 82, 145, 82, 129, 98, 113, 114, 113, 114, 97, 130, + 110, 194, 242, 242, 242, 242, 200, 0, 19, 64, 42, 16, + 0, 6, 34, 98, 105, 119, 145, 241, 241, 241, 241, 241, + 36, 145, 17, 66, 114, 97, 113, 114, 241, 242, 226, 226, + 66, 130, 51, 130, 51, 130, 49, 146, 81, 129, 114, 66, + 165, 0, 18, 112, 49, 16, 0, 6, 101, 146, 81, 114, + 97, 98, 98, 97, 114, 82, 226, 225, 226, 52, 114, 33, + 66, 83, 114, 67, 114, 66, 146, 50, 146, 50, 146, 50, + 146, 50, 146, 65, 146, 66, 130, 66, 114, 97, 113, 130, + 65, 165, 0, 18, 112, 34, 16, 240, 240, 49, 241, 252, + 61, 49, 161, 65, 145, 81, 145, 225, 225, 241, 225, 241, + 225, 241, 241, 225, 241, 241, 226, 226, 226, 226, 226, 226, + 0, 19, 32, 49, 16, 0, 6, 84, 162, 66, 113, 113, + 113, 129, 97, 129, 82, 129, 97, 129, 98, 97, 116, 50, + 132, 17, 195, 198, 145, 67, 113, 99, 82, 114, 66, 146, + 50, 146, 50, 161, 50, 161, 66, 129, 82, 129, 99, 66, + 149, 0, 18, 112, 50, 16, 0, 6, 69, 162, 65, 129, + 113, 98, 114, 81, 145, 66, 145, 66, 146, 50, 146, 50, + 146, 50, 146, 50, 146, 66, 115, 81, 97, 18, 82, 66, + 18, 116, 50, 226, 225, 226, 82, 113, 98, 98, 97, 113, + 113, 82, 149, 0, 19, 16, 15, 6, 0, 8, 35, 51, + 51, 0, 7, 19, 51, 51, 0, 7, 16, 21, 6, 0, + 8, 35, 51, 51, 0, 7, 18, 67, 51, 81, 81, 81, + 81, 65, 81, 65, 240, 32, 28, 6, 0, 6, 3, 51, + 51, 240, 113, 81, 81, 81, 81, 81, 81, 81, 81, 82, + 51, 51, 51, 51, 51, 51, 51, 51, 51, 240, 13, 24, + 0, 42, 15, 6, 0, 15, 63, 6, 0, 42, 48, 36, + 15, 0, 15, 67, 195, 195, 0, 7, 33, 225, 225, 225, + 225, 225, 209, 225, 209, 225, 209, 209, 210, 210, 130, 50, + 130, 50, 130, 50, 129, 82, 97, 134, 240, 240, 96, 36, + 14, 240, 37, 114, 66, 81, 114, 65, 130, 50, 114, 50, + 114, 50, 114, 194, 178, 178, 178, 193, 193, 209, 193, 209, + 209, 209, 209, 0, 6, 114, 179, 179, 0, 16, 96, 87, + 25, 240, 240, 69, 240, 35, 82, 225, 162, 177, 194, 145, + 226, 113, 100, 97, 113, 82, 50, 66, 81, 82, 97, 65, + 81, 66, 115, 33, 65, 82, 130, 49, 49, 66, 146, 49, + 49, 66, 146, 49, 49, 66, 146, 49, 49, 66, 146, 49, + 49, 66, 146, 49, 49, 66, 146, 49, 50, 66, 130, 49, + 65, 66, 115, 49, 65, 82, 99, 49, 81, 82, 50, 18, + 33, 98, 84, 67, 130, 240, 146, 226, 147, 116, 216, 0, + 29, 32, 64, 25, 240, 240, 81, 240, 146, 240, 130, 240, + 115, 240, 116, 240, 81, 34, 240, 81, 34, 240, 81, 35, + 240, 49, 66, 240, 49, 66, 240, 49, 67, 240, 17, 98, + 240, 17, 98, 240, 17, 99, 225, 130, 225, 130, 236, 193, + 162, 193, 162, 193, 163, 161, 194, 161, 195, 145, 195, 130, + 210, 101, 167, 0, 28, 64, 52, 23, 0, 5, 110, 194, + 131, 162, 163, 130, 163, 130, 179, 114, 179, 114, 179, 114, + 179, 114, 163, 130, 147, 146, 130, 188, 178, 147, 146, 163, + 130, 179, 114, 195, 98, 195, 98, 195, 98, 195, 98, 195, + 98, 179, 114, 163, 130, 147, 111, 0, 26, 112, 57, 23, + 0, 6, 102, 81, 147, 82, 49, 130, 145, 18, 99, 179, + 98, 195, 82, 226, 67, 226, 67, 241, 66, 240, 17, 51, + 240, 83, 240, 83, 240, 83, 240, 83, 240, 83, 240, 98, + 240, 17, 67, 241, 67, 241, 83, 209, 99, 209, 115, 177, + 147, 145, 195, 82, 246, 0, 27, 53, 25, 0, 6, 46, + 226, 132, 178, 163, 162, 179, 146, 195, 130, 210, 130, 211, + 114, 211, 114, 227, 98, 227, 98, 227, 98, 227, 98, 227, + 98, 227, 98, 227, 98, 227, 98, 226, 114, 211, 114, 210, + 130, 195, 130, 179, 146, 163, 162, 132, 143, 0, 29, 48, + 56, 23, 0, 5, 111, 3, 130, 163, 130, 193, 130, 193, + 130, 193, 130, 209, 114, 209, 114, 113, 81, 114, 113, 210, + 113, 210, 98, 218, 210, 98, 210, 113, 210, 113, 210, 113, + 97, 98, 209, 114, 209, 114, 209, 114, 209, 114, 209, 114, + 194, 114, 164, 79, 3, 0, 26, 64, 53, 21, 240, 240, + 207, 3, 98, 163, 98, 178, 98, 193, 98, 193, 98, 193, + 98, 193, 98, 240, 66, 113, 178, 113, 178, 113, 178, 98, + 186, 178, 98, 178, 113, 178, 113, 178, 113, 178, 240, 66, + 240, 66, 240, 66, 240, 66, 240, 66, 240, 25, 0, 25, + 16, 60, 25, 0, 7, 53, 81, 179, 82, 49, 162, 145, + 33, 146, 179, 130, 210, 115, 210, 99, 241, 99, 241, 98, + 240, 17, 83, 240, 17, 83, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 184, 67, 226, 99, 226, 115, 210, 115, + 210, 131, 194, 147, 163, 179, 113, 33, 216, 49, 0, 28, + 96, 54, 24, 0, 6, 8, 88, 98, 178, 146, 178, 146, + 178, 146, 178, 146, 178, 146, 178, 146, 178, 146, 178, 146, + 178, 146, 178, 159, 146, 178, 146, 178, 146, 178, 146, 178, + 146, 178, 146, 178, 146, 178, 146, 178, 146, 178, 146, 178, + 146, 178, 104, 88, 0, 27, 48, 30, 11, 240, 120, 98, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 104, 0, 12, + 96, 35, 15, 240, 240, 87, 178, 210, 210, 210, 210, 210, + 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, + 83, 82, 83, 82, 83, 66, 113, 66, 149, 0, 17, 112, + 62, 25, 0, 6, 40, 133, 114, 179, 146, 177, 178, 161, + 194, 145, 210, 130, 210, 129, 226, 113, 242, 97, 240, 18, + 81, 240, 34, 67, 240, 18, 49, 18, 240, 18, 33, 35, + 242, 17, 67, 227, 98, 226, 115, 210, 130, 210, 146, 194, + 147, 178, 162, 178, 163, 162, 179, 146, 180, 88, 119, 0, + 28, 64, 53, 20, 240, 240, 168, 242, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 177, 98, 177, 98, 177, 98, 161, 114, 161, 114, 161, 114, + 146, 114, 131, 79, 1, 0, 23, 93, 29, 0, 7, 38, + 245, 99, 227, 145, 18, 193, 18, 145, 18, 193, 18, 145, + 18, 193, 18, 145, 34, 161, 34, 145, 34, 161, 34, 145, + 34, 161, 34, 145, 50, 129, 50, 145, 50, 129, 50, 145, + 50, 129, 50, 145, 66, 97, 66, 145, 66, 97, 66, 145, + 67, 65, 82, 145, 82, 65, 82, 145, 82, 65, 82, 145, + 98, 33, 98, 145, 98, 33, 98, 145, 98, 33, 98, 145, + 115, 114, 145, 115, 114, 145, 115, 114, 131, 113, 130, 103, + 81, 88, 0, 33, 72, 24, 0, 6, 6, 135, 99, 163, + 129, 18, 161, 145, 19, 145, 145, 34, 145, 145, 35, 129, + 145, 50, 129, 145, 51, 113, 145, 67, 97, 145, 82, 97, + 145, 83, 81, 145, 98, 81, 145, 99, 65, 145, 114, 65, + 145, 130, 49, 145, 131, 33, 145, 146, 33, 145, 147, 17, + 145, 162, 17, 145, 179, 145, 179, 145, 194, 131, 178, 103, + 161, 0, 27, 96, 63, 25, 0, 7, 38, 240, 35, 67, + 211, 131, 163, 163, 131, 195, 114, 226, 99, 227, 83, 227, + 82, 240, 19, 51, 240, 19, 51, 240, 19, 51, 240, 19, + 51, 240, 19, 51, 240, 19, 51, 240, 19, 51, 240, 19, + 67, 227, 83, 227, 99, 210, 115, 195, 131, 163, 163, 131, + 211, 67, 240, 38, 0, 29, 64, 52, 22, 240, 240, 238, + 178, 131, 146, 162, 130, 163, 114, 179, 98, 179, 98, 179, + 98, 179, 98, 179, 98, 163, 114, 162, 130, 131, 155, 178, + 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 82, 240, 82, 240, 40, 0, 26, 64, 86, + 25, 0, 7, 38, 240, 35, 67, 211, 131, 163, 163, 146, + 195, 114, 211, 99, 227, 83, 227, 82, 240, 18, 67, 240, + 19, 51, 240, 19, 51, 240, 19, 51, 240, 19, 51, 240, + 19, 51, 240, 19, 51, 240, 19, 67, 242, 83, 227, 98, + 226, 115, 68, 67, 131, 34, 49, 50, 163, 17, 65, 33, + 227, 82, 240, 39, 240, 145, 97, 240, 34, 81, 240, 49, + 81, 240, 50, 50, 240, 54, 240, 70, 240, 84, 0, 6, + 112, 55, 25, 0, 6, 45, 242, 116, 194, 147, 178, 163, + 162, 179, 146, 179, 146, 179, 146, 179, 146, 179, 146, 163, + 162, 147, 178, 130, 218, 242, 115, 210, 146, 194, 147, 178, + 162, 178, 162, 178, 162, 178, 162, 178, 163, 162, 163, 49, + 98, 178, 49, 56, 148, 0, 28, 80, 52, 18, 240, 240, + 165, 65, 99, 66, 33, 82, 131, 82, 146, 66, 162, 66, + 177, 66, 177, 67, 161, 67, 240, 20, 246, 216, 215, 244, + 240, 18, 240, 19, 49, 194, 49, 194, 49, 194, 50, 178, + 50, 162, 67, 146, 65, 34, 83, 81, 70, 0, 21, 16, + 59, 24, 0, 6, 31, 5, 67, 98, 99, 65, 130, 129, + 65, 130, 129, 65, 130, 129, 65, 130, 129, 49, 146, 129, + 210, 240, 114, 240, 114, 240, 114, 240, 114, 240, 114, 240, + 114, 240, 114, 240, 114, 240, 114, 240, 114, 240, 114, 240, + 114, 240, 114, 240, 114, 240, 114, 240, 58, 0, 28, 55, + 24, 0, 6, 8, 103, 98, 179, 130, 193, 146, 193, 146, + 193, 146, 193, 146, 193, 146, 193, 146, 193, 146, 193, 146, + 193, 146, 193, 146, 193, 146, 193, 146, 193, 146, 193, 146, + 193, 146, 193, 146, 193, 162, 161, 178, 146, 194, 129, 226, + 82, 240, 37, 0, 28, 48, 62, 26, 0, 6, 71, 166, + 83, 226, 130, 225, 147, 209, 162, 193, 178, 193, 179, 177, + 194, 161, 211, 145, 226, 129, 242, 129, 243, 113, 240, 18, + 97, 240, 34, 97, 240, 35, 81, 240, 50, 65, 240, 67, + 49, 240, 82, 33, 240, 98, 33, 240, 99, 17, 240, 115, + 240, 131, 240, 145, 240, 161, 0, 31, 95, 35, 0, 8, + 103, 103, 102, 83, 163, 162, 130, 163, 161, 146, 178, 161, + 147, 147, 161, 162, 148, 129, 178, 129, 19, 129, 179, 113, + 34, 129, 179, 113, 34, 129, 194, 113, 35, 97, 210, 97, + 66, 97, 211, 81, 66, 97, 226, 81, 67, 65, 242, 65, + 98, 65, 243, 49, 98, 65, 240, 18, 49, 99, 33, 240, + 34, 33, 130, 33, 240, 35, 17, 130, 33, 240, 50, 17, + 132, 240, 67, 163, 240, 67, 163, 240, 82, 162, 240, 97, + 178, 240, 97, 193, 0, 40, 112, 65, 26, 0, 6, 72, + 119, 115, 163, 178, 177, 195, 145, 227, 113, 240, 19, 97, + 240, 19, 81, 240, 51, 49, 240, 83, 33, 240, 98, 17, + 240, 115, 240, 147, 240, 131, 240, 113, 19, 240, 97, 35, + 240, 65, 66, 240, 49, 83, 240, 17, 115, 241, 131, 209, + 147, 193, 179, 177, 195, 146, 195, 102, 167, 0, 29, 80, + 61, 27, 0, 6, 104, 166, 99, 210, 162, 209, 179, 193, + 195, 161, 226, 145, 243, 129, 240, 18, 113, 240, 35, 97, + 240, 51, 65, 240, 82, 49, 240, 99, 33, 240, 114, 17, + 240, 132, 240, 146, 240, 162, 240, 162, 240, 162, 240, 162, + 240, 162, 240, 162, 240, 162, 240, 162, 240, 120, 0, 31, + 96, 56, 19, 240, 240, 143, 1, 52, 147, 50, 163, 66, + 162, 81, 163, 81, 162, 97, 146, 113, 131, 240, 18, 240, + 19, 240, 18, 240, 18, 240, 19, 240, 18, 240, 18, 240, + 34, 240, 18, 145, 99, 145, 98, 161, 82, 177, 82, 177, + 66, 178, 50, 164, 63, 1, 0, 21, 96, 38, 8, 5, + 50, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 101, 48, 25, + 13, 240, 209, 177, 97, 81, 81, 81, 97, 81, 81, 97, + 81, 97, 81, 99, 51, 67, 52, 66, 66, 0, 37, 112, + 38, 8, 5, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 53, 48, 15, 11, 240, 177, 145, 17, 113, 33, 97, 65, + 65, 97, 0, 38, 112, 9, 6, 240, 51, 51, 51, 0, + 22, 16, 15, 7, 240, 129, 81, 97, 81, 97, 97, 99, + 68, 66, 0, 20, 80, 40, 18, 0, 25, 21, 193, 67, + 146, 98, 130, 98, 130, 98, 240, 18, 198, 162, 66, 131, + 82, 130, 98, 114, 114, 49, 50, 114, 49, 50, 99, 49, + 66, 65, 19, 33, 85, 52, 0, 20, 96, 57, 18, 240, + 240, 100, 240, 18, 240, 18, 240, 18, 240, 18, 240, 18, + 240, 18, 240, 18, 240, 18, 240, 18, 37, 146, 17, 67, + 115, 113, 114, 130, 98, 146, 82, 146, 82, 146, 82, 146, + 82, 146, 82, 146, 82, 145, 98, 130, 99, 98, 113, 33, + 66, 129, 53, 0, 21, 16, 29, 14, 0, 19, 101, 130, + 65, 97, 113, 66, 98, 50, 114, 50, 194, 194, 194, 194, + 210, 194, 113, 82, 81, 114, 65, 133, 0, 16, 48, 56, + 18, 240, 240, 244, 240, 18, 240, 18, 240, 18, 240, 18, + 240, 18, 240, 18, 240, 18, 240, 18, 149, 34, 130, 65, + 18, 114, 99, 98, 130, 97, 146, 82, 146, 82, 146, 82, + 146, 82, 146, 82, 146, 97, 146, 98, 130, 113, 115, 130, + 65, 20, 117, 36, 0, 20, 80, 30, 15, 0, 21, 21, + 145, 66, 113, 98, 81, 130, 65, 130, 50, 130, 60, 50, + 210, 210, 225, 226, 129, 82, 97, 114, 65, 149, 0, 17, + 80, 34, 13, 240, 67, 146, 33, 114, 34, 98, 50, 98, + 178, 178, 178, 178, 178, 137, 114, 178, 178, 178, 178, 178, + 178, 178, 178, 178, 178, 178, 178, 151, 0, 15, 32, 49, + 17, 0, 23, 116, 36, 82, 66, 34, 81, 97, 130, 98, + 114, 98, 114, 98, 114, 98, 129, 82, 146, 66, 129, 36, + 161, 240, 17, 240, 18, 240, 25, 154, 82, 116, 50, 162, + 50, 162, 50, 162, 66, 130, 98, 98, 150, 240, 240, 176, + 56, 18, 240, 240, 100, 240, 18, 240, 18, 240, 18, 240, + 18, 240, 18, 240, 18, 240, 18, 240, 18, 240, 18, 52, + 146, 17, 66, 131, 98, 115, 98, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 86, 54, 0, 20, 80, 26, 9, 240, 211, + 99, 99, 0, 6, 36, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 86, 0, 10, 64, 36, 10, + 240, 240, 67, 115, 115, 0, 7, 4, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 50, 50, 50, 49, 65, 50, 84, 240, 160, 55, 18, + 240, 240, 100, 240, 18, 240, 18, 240, 18, 240, 18, 240, + 18, 240, 18, 240, 18, 240, 18, 240, 18, 85, 98, 98, + 130, 97, 146, 66, 162, 49, 194, 34, 194, 19, 195, 34, + 178, 66, 162, 66, 162, 82, 146, 98, 130, 98, 130, 99, + 86, 54, 0, 20, 80, 30, 9, 240, 52, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 86, 0, 10, 64, 54, + 27, 0, 37, 35, 37, 84, 116, 17, 66, 33, 66, 131, + 99, 98, 115, 99, 98, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 86, + 54, 54, 0, 30, 96, 38, 18, 0, 24, 115, 37, 116, + 17, 66, 131, 98, 115, 98, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 86, 54, 0, 20, 80, 35, 16, 0, 22, 69, + 162, 50, 129, 113, 98, 114, 81, 145, 66, 146, 50, 146, + 50, 146, 50, 146, 50, 146, 65, 145, 82, 114, 97, 113, + 130, 50, 165, 0, 18, 112, 50, 18, 0, 24, 100, 37, + 116, 17, 67, 115, 98, 114, 130, 98, 131, 82, 146, 82, + 146, 82, 146, 82, 146, 82, 146, 82, 130, 98, 130, 99, + 98, 114, 17, 66, 130, 37, 146, 240, 18, 240, 18, 240, + 18, 240, 18, 240, 18, 230, 0, 6, 53, 18, 0, 25, + 37, 49, 130, 65, 33, 114, 97, 17, 98, 115, 98, 130, + 82, 146, 82, 146, 82, 146, 82, 146, 82, 146, 98, 130, + 98, 130, 114, 99, 130, 65, 18, 148, 50, 240, 18, 240, + 18, 240, 18, 240, 18, 240, 18, 240, 18, 230, 240, 240, + 144, 26, 13, 0, 18, 3, 35, 68, 17, 34, 83, 50, + 83, 162, 178, 178, 178, 178, 178, 178, 178, 178, 178, 151, + 0, 15, 48, 33, 14, 0, 19, 84, 33, 82, 67, 66, + 98, 66, 113, 66, 113, 68, 183, 151, 180, 49, 115, 49, + 130, 50, 114, 50, 114, 52, 66, 65, 52, 0, 16, 64, + 35, 14, 0, 7, 65, 209, 209, 209, 209, 194, 179, 154, + 114, 194, 194, 194, 194, 194, 194, 194, 81, 98, 81, 98, + 81, 98, 81, 98, 81, 114, 49, 148, 0, 16, 48, 38, + 18, 0, 24, 100, 84, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 99, 114, 99, 130, 65, 20, 117, 36, 0, 20, + 80, 37, 19, 0, 26, 22, 85, 82, 130, 130, 113, 146, + 113, 146, 113, 162, 81, 178, 81, 194, 49, 210, 49, 210, + 49, 226, 17, 242, 17, 240, 18, 240, 34, 240, 33, 0, + 22, 96, 55, 25, 0, 34, 54, 38, 53, 82, 98, 113, + 114, 113, 113, 130, 98, 81, 146, 83, 81, 146, 83, 81, + 162, 49, 34, 49, 178, 49, 34, 49, 178, 49, 49, 49, + 194, 17, 66, 17, 210, 17, 66, 17, 210, 17, 81, 17, + 226, 98, 242, 98, 241, 129, 0, 29, 32, 37, 19, 0, + 26, 22, 69, 99, 98, 146, 97, 178, 65, 210, 33, 242, + 17, 243, 240, 34, 240, 17, 18, 241, 34, 209, 50, 193, + 82, 161, 114, 130, 115, 85, 86, 0, 21, 96, 49, 19, + 0, 26, 22, 85, 82, 130, 114, 129, 146, 97, 162, 97, + 177, 97, 178, 65, 194, 65, 210, 33, 226, 33, 241, 33, + 243, 240, 19, 240, 34, 240, 33, 240, 49, 240, 33, 240, + 49, 194, 65, 194, 49, 209, 49, 243, 0, 6, 80, 31, + 15, 0, 20, 92, 50, 114, 65, 130, 65, 114, 81, 98, + 97, 82, 210, 194, 194, 194, 209, 113, 82, 113, 66, 129, + 65, 130, 60, 0, 17, 32, 9, 19, 0, 38, 15, 1, + 0, 43, 16, 10, 35, 0, 70, 15, 15, 2, 0, 79, + 16, 18, 12, 240, 178, 50, 82, 50, 66, 50, 81, 65, + 82, 50, 81, 65, 0, 41, 32, 14, 14, 240, 240, 227, + 81, 65, 34, 34, 65, 83, 0, 51, 48, +}; + +//***************************************************************************** +// +// The font definition for the 34 point Cm font. +// +//***************************************************************************** +const tFont g_sFontCm34 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 31, + + // + // The height of the font. + // + 35, + + // + // The baseline of the font. + // + 26, + + // + // The offset to each character in the font. + // + { + 0, 5, 33, 58, 153, 221, 311, 388, + 403, 441, 479, 511, 560, 576, 585, 595, + 633, 684, 714, 754, 796, 838, 880, 929, + 963, 1012, 1062, 1077, 1098, 1126, 1139, 1175, + 1211, 1298, 1362, 1414, 1471, 1524, 1580, 1633, + 1693, 1747, 1777, 1812, 1874, 1927, 2020, 2092, + 2155, 2207, 2293, 2348, 2400, 2459, 2514, 2576, + 2671, 2736, 2797, 2853, 2891, 2916, 2954, 2969, + 2978, 2993, 3033, 3090, 3119, 3175, 3205, 3239, + 3288, 3344, 3370, 3406, 3461, 3491, 3545, 3583, + 3618, 3668, 3721, 3747, 3780, 3815, 3853, 3890, + 3945, 3982, 4031, 4062, 4071, 4081, 4099, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm34Data +}; diff --git a/grlib/fonts/fontcm34b.c b/grlib/fonts/fontcm34b.c new file mode 100644 index 0000000..7766937 --- /dev/null +++ b/grlib/fonts/fontcm34b.c @@ -0,0 +1,432 @@ +//***************************************************************************** +// +// fontcm34b.c - Font definition for the 34pt Cm bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 34 point +// Bold: yes +// Italic: no +// Memory usage: 4104 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 34 point Cm bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm34bData[3903] = +{ + 5, 14, 0, 61, 32, 29, 8, 240, 35, 69, 53, 53, + 53, 53, 53, 67, 83, 83, 83, 83, 83, 83, 83, 97, + 113, 240, 115, 69, 53, 53, 67, 0, 9, 64, 33, 17, + 0, 6, 67, 83, 85, 53, 70, 38, 54, 38, 67, 17, + 51, 17, 129, 113, 114, 98, 113, 113, 114, 98, 113, 113, + 114, 98, 98, 98, 0, 43, 32, 90, 27, 0, 11, 66, + 82, 240, 50, 82, 240, 50, 82, 240, 34, 98, 240, 34, + 82, 240, 50, 82, 240, 35, 82, 240, 34, 98, 240, 34, + 82, 240, 50, 82, 159, 9, 63, 9, 178, 82, 240, 50, + 82, 240, 34, 98, 240, 34, 82, 240, 50, 82, 191, 9, + 63, 9, 146, 82, 240, 50, 82, 240, 35, 82, 240, 34, + 98, 240, 34, 82, 240, 50, 82, 240, 35, 82, 240, 34, + 98, 240, 34, 82, 240, 50, 82, 240, 50, 82, 0, 8, + 64, 58, 16, 82, 226, 226, 199, 137, 99, 18, 35, 82, + 34, 51, 51, 34, 36, 51, 34, 36, 51, 34, 36, 52, + 18, 35, 71, 168, 137, 138, 121, 152, 130, 21, 67, 18, + 36, 52, 18, 51, 52, 18, 51, 51, 34, 51, 50, 50, + 50, 82, 34, 35, 105, 134, 194, 226, 0, 15, 16, 84, + 27, 52, 194, 135, 147, 115, 37, 100, 115, 61, 116, 50, + 37, 19, 116, 50, 115, 132, 50, 114, 148, 50, 99, 148, + 50, 98, 164, 50, 82, 195, 50, 67, 195, 34, 82, 227, + 18, 67, 244, 67, 240, 146, 84, 243, 67, 18, 211, 67, + 34, 210, 68, 50, 179, 68, 50, 163, 84, 50, 163, 84, + 50, 147, 100, 50, 131, 116, 50, 131, 116, 50, 115, 147, + 50, 114, 164, 18, 115, 182, 129, 212, 0, 24, 32, 70, + 26, 240, 240, 51, 240, 102, 240, 68, 19, 240, 51, 50, + 240, 36, 50, 240, 36, 50, 240, 36, 50, 240, 36, 49, + 240, 52, 34, 240, 52, 33, 240, 71, 88, 117, 104, 116, + 162, 165, 130, 181, 129, 183, 98, 162, 37, 66, 163, 52, + 65, 164, 53, 34, 164, 71, 180, 85, 113, 68, 101, 97, + 84, 71, 66, 89, 56, 134, 101, 0, 30, 19, 9, 240, + 211, 85, 70, 54, 67, 17, 129, 114, 113, 114, 113, 114, + 98, 0, 23, 32, 38, 12, 114, 146, 146, 147, 146, 147, + 132, 131, 147, 132, 132, 131, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 147, 148, 132, 132, 147, 148, 147, + 147, 163, 162, 178, 178, 48, 38, 12, 2, 178, 178, 163, + 162, 163, 148, 147, 148, 132, 132, 147, 148, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 131, 147, 132, 131, 147, + 147, 131, 146, 147, 146, 146, 146, 160, 32, 16, 83, 211, + 211, 211, 146, 35, 34, 68, 33, 36, 68, 17, 20, 119, + 179, 183, 116, 17, 21, 52, 34, 20, 66, 35, 34, 147, + 211, 211, 0, 39, 51, 25, 0, 20, 2, 240, 130, 240, + 130, 240, 130, 240, 130, 240, 130, 240, 130, 240, 130, 240, + 130, 240, 130, 240, 130, 223, 7, 63, 7, 210, 240, 130, + 240, 130, 240, 130, 240, 130, 240, 130, 240, 130, 240, 130, + 240, 130, 240, 130, 0, 20, 48, 18, 9, 0, 23, 99, + 85, 70, 54, 69, 129, 114, 113, 114, 113, 114, 98, 240, + 144, 10, 12, 0, 25, 73, 57, 57, 0, 22, 112, 12, + 8, 0, 21, 19, 69, 53, 53, 67, 0, 9, 64, 38, + 16, 178, 226, 211, 210, 226, 211, 210, 226, 211, 210, 226, + 211, 210, 226, 211, 210, 226, 211, 210, 226, 211, 210, 226, + 211, 210, 226, 211, 210, 226, 211, 210, 226, 211, 210, 226, + 224, 48, 17, 0, 9, 6, 162, 66, 130, 98, 99, 99, + 83, 99, 83, 100, 52, 100, 52, 100, 52, 100, 52, 100, + 52, 100, 52, 100, 52, 100, 52, 100, 52, 100, 52, 100, + 52, 100, 67, 99, 83, 99, 99, 82, 130, 66, 166, 0, + 20, 30, 15, 0, 8, 34, 180, 120, 115, 20, 180, 180, + 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, + 180, 180, 124, 60, 0, 17, 32, 38, 16, 0, 8, 54, + 153, 99, 53, 68, 68, 69, 53, 53, 53, 67, 69, 181, + 181, 165, 180, 180, 195, 195, 195, 66, 114, 82, 99, 82, + 83, 98, 90, 91, 76, 76, 0, 18, 64, 40, 17, 0, + 9, 6, 146, 68, 114, 84, 84, 68, 84, 68, 84, 68, + 98, 84, 196, 211, 166, 183, 228, 213, 213, 197, 67, 85, + 53, 69, 53, 69, 53, 68, 83, 84, 98, 68, 135, 0, + 20, 38, 18, 0, 10, 34, 243, 243, 228, 213, 198, 193, + 20, 178, 20, 162, 36, 161, 52, 146, 52, 130, 68, 129, + 84, 114, 84, 98, 100, 111, 63, 180, 228, 228, 186, 138, + 0, 20, 80, 39, 16, 0, 8, 18, 114, 90, 105, 120, + 134, 162, 226, 226, 21, 138, 99, 52, 98, 84, 196, 197, + 181, 66, 85, 52, 69, 52, 69, 52, 69, 51, 84, 81, + 99, 98, 67, 149, 0, 19, 48, 18, 0, 9, 117, 179, + 50, 132, 52, 100, 68, 100, 68, 84, 98, 100, 213, 36, + 117, 23, 86, 52, 86, 68, 69, 84, 69, 85, 53, 85, + 53, 85, 53, 85, 68, 85, 68, 85, 68, 84, 100, 68, + 115, 51, 182, 0, 21, 16, 32, 16, 0, 8, 28, 61, + 60, 76, 66, 114, 81, 114, 97, 99, 210, 210, 226, 211, + 210, 211, 211, 211, 211, 196, 196, 196, 196, 196, 210, 0, + 19, 32, 44, 17, 0, 9, 6, 162, 67, 114, 99, 83, + 99, 83, 99, 83, 99, 85, 67, 86, 50, 121, 136, 169, + 138, 98, 39, 83, 70, 51, 101, 51, 116, 51, 131, 51, + 131, 51, 130, 83, 99, 99, 67, 150, 0, 20, 46, 18, + 0, 9, 70, 179, 51, 116, 83, 100, 84, 69, 84, 69, + 85, 53, 85, 53, 85, 53, 85, 53, 85, 68, 70, 69, + 54, 93, 117, 21, 212, 228, 98, 100, 84, 83, 100, 83, + 100, 67, 130, 67, 166, 0, 21, 48, 19, 8, 0, 11, + 19, 69, 53, 53, 67, 240, 240, 243, 69, 53, 53, 67, + 0, 9, 64, 25, 8, 0, 11, 19, 69, 53, 53, 67, + 240, 240, 243, 69, 53, 53, 68, 113, 113, 97, 113, 98, + 97, 97, 240, 112, 28, 8, 0, 9, 19, 69, 53, 53, + 67, 240, 241, 113, 99, 83, 83, 83, 83, 83, 83, 83, + 69, 53, 53, 53, 53, 67, 240, 80, 16, 25, 0, 40, + 95, 7, 63, 7, 0, 16, 15, 7, 63, 7, 0, 41, + 35, 15, 0, 17, 51, 181, 165, 165, 179, 0, 7, 34, + 210, 210, 210, 210, 194, 210, 195, 179, 179, 180, 82, 68, + 68, 52, 68, 52, 83, 67, 82, 103, 240, 240, 96, 36, + 15, 240, 240, 54, 137, 82, 83, 67, 84, 52, 68, 52, + 68, 66, 84, 164, 179, 179, 194, 195, 194, 210, 210, 210, + 210, 240, 240, 195, 181, 165, 165, 179, 0, 17, 112, 80, + 25, 0, 7, 39, 252, 196, 100, 163, 163, 131, 53, 67, + 114, 55, 67, 82, 52, 50, 66, 82, 36, 82, 50, 66, + 51, 100, 34, 50, 36, 100, 34, 50, 36, 100, 34, 50, + 36, 100, 34, 50, 36, 100, 34, 50, 36, 100, 34, 50, + 36, 100, 34, 50, 52, 84, 34, 66, 36, 84, 34, 66, + 52, 53, 18, 83, 55, 22, 98, 69, 52, 130, 240, 146, + 211, 131, 132, 202, 0, 29, 16, 54, 26, 0, 11, 18, + 240, 131, 240, 131, 240, 117, 240, 101, 240, 102, 240, 71, + 240, 71, 240, 65, 37, 240, 34, 37, 240, 34, 52, 240, + 18, 69, 242, 69, 242, 84, 226, 101, 221, 222, 178, 133, + 178, 133, 177, 165, 146, 165, 104, 90, 56, 90, 0, 29, + 80, 51, 24, 0, 9, 15, 1, 143, 3, 148, 117, 132, + 133, 116, 133, 116, 133, 116, 133, 116, 133, 116, 117, 132, + 101, 157, 190, 164, 117, 132, 133, 116, 133, 116, 149, 100, + 149, 100, 149, 100, 149, 100, 133, 116, 118, 79, 4, 95, + 2, 0, 27, 112, 51, 23, 0, 9, 86, 81, 154, 34, + 117, 86, 101, 132, 85, 163, 69, 194, 69, 194, 68, 210, + 53, 210, 53, 240, 53, 240, 53, 240, 53, 240, 53, 240, + 53, 225, 68, 225, 69, 194, 69, 194, 85, 162, 117, 146, + 134, 83, 172, 231, 0, 26, 112, 53, 26, 0, 9, 111, + 1, 175, 3, 181, 102, 149, 133, 133, 148, 133, 149, 117, + 164, 117, 165, 101, 165, 101, 165, 101, 165, 101, 165, 101, + 165, 101, 165, 101, 165, 101, 165, 101, 164, 117, 149, 117, + 148, 133, 133, 133, 102, 111, 3, 143, 1, 0, 30, 64, + 55, 23, 0, 8, 95, 4, 79, 4, 117, 116, 117, 131, + 117, 146, 117, 146, 117, 66, 65, 117, 66, 65, 117, 66, + 197, 51, 203, 203, 197, 51, 197, 66, 197, 66, 81, 101, + 66, 81, 101, 162, 101, 162, 101, 147, 101, 146, 117, 116, + 79, 4, 79, 4, 0, 26, 48, 48, 22, 0, 8, 47, + 3, 79, 3, 117, 116, 101, 131, 101, 146, 101, 146, 101, + 146, 101, 66, 65, 101, 66, 181, 51, 187, 187, 181, 51, + 181, 66, 181, 66, 181, 66, 181, 240, 37, 240, 37, 240, + 37, 240, 37, 236, 172, 0, 26, 53, 25, 0, 10, 54, + 81, 171, 34, 149, 86, 132, 148, 116, 179, 101, 179, 100, + 210, 100, 210, 85, 225, 85, 240, 85, 240, 85, 240, 85, + 240, 85, 107, 53, 107, 68, 165, 101, 149, 101, 149, 117, + 133, 133, 117, 149, 86, 170, 35, 214, 66, 0, 28, 96, + 53, 27, 0, 10, 27, 43, 59, 43, 101, 133, 149, 133, + 149, 133, 149, 133, 149, 133, 149, 133, 149, 133, 149, 133, + 159, 3, 159, 3, 149, 133, 149, 133, 149, 133, 149, 133, + 149, 133, 149, 133, 149, 133, 149, 133, 149, 133, 107, 43, + 59, 43, 0, 30, 96, 30, 14, 240, 240, 203, 59, 101, + 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, + 149, 149, 149, 149, 149, 149, 107, 59, 0, 16, 16, 35, + 18, 0, 7, 43, 123, 181, 213, 213, 213, 213, 213, 213, + 213, 213, 213, 213, 213, 213, 213, 213, 99, 69, 85, 53, + 85, 53, 85, 52, 114, 68, 166, 0, 21, 48, 55, 27, + 0, 10, 27, 87, 75, 87, 117, 162, 165, 146, 181, 130, + 197, 114, 213, 98, 229, 82, 245, 66, 240, 21, 51, 240, + 21, 21, 240, 28, 247, 21, 229, 53, 229, 69, 213, 85, + 197, 85, 197, 101, 181, 117, 165, 117, 165, 133, 107, 58, + 59, 58, 0, 30, 96, 51, 21, 0, 7, 124, 156, 197, + 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, + 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, + 130, 101, 129, 117, 129, 117, 114, 117, 114, 117, 99, 117, + 84, 79, 2, 79, 2, 0, 24, 16, 86, 32, 0, 12, + 8, 216, 57, 200, 102, 182, 150, 177, 20, 146, 20, 161, + 20, 146, 20, 146, 20, 146, 36, 129, 36, 146, 36, 114, + 36, 146, 36, 114, 36, 146, 52, 97, 52, 146, 52, 82, + 52, 146, 52, 81, 68, 146, 68, 65, 68, 146, 68, 50, + 68, 146, 84, 33, 84, 146, 84, 18, 84, 146, 84, 18, + 84, 146, 101, 100, 146, 101, 100, 146, 100, 116, 146, 115, + 116, 104, 67, 74, 56, 81, 90, 0, 36, 48, 64, 27, + 0, 10, 24, 136, 57, 120, 103, 146, 151, 146, 146, 21, + 130, 146, 22, 114, 146, 38, 98, 146, 53, 98, 146, 69, + 82, 146, 70, 66, 146, 86, 50, 146, 101, 50, 146, 117, + 34, 146, 118, 18, 146, 133, 18, 146, 151, 146, 166, 146, + 166, 146, 181, 146, 196, 146, 196, 104, 163, 104, 178, 0, + 31, 16, 51, 24, 0, 9, 119, 243, 68, 195, 116, 147, + 147, 132, 148, 101, 149, 84, 180, 84, 181, 53, 181, 53, + 181, 53, 181, 53, 181, 53, 181, 53, 181, 53, 181, 53, + 181, 68, 180, 85, 149, 100, 148, 117, 131, 148, 115, 196, + 67, 247, 0, 28, 32, 48, 23, 0, 8, 95, 1, 127, + 3, 133, 101, 117, 116, 117, 117, 101, 117, 101, 117, 101, + 117, 101, 117, 101, 116, 117, 101, 127, 141, 165, 240, 53, + 240, 53, 240, 53, 240, 53, 240, 53, 240, 53, 240, 53, + 251, 203, 0, 27, 48, 72, 24, 0, 9, 119, 244, 67, + 195, 116, 147, 148, 116, 148, 101, 164, 84, 180, 69, 181, + 53, 181, 53, 181, 53, 181, 53, 181, 53, 181, 53, 181, + 53, 181, 68, 180, 84, 180, 85, 51, 53, 100, 52, 36, + 132, 17, 50, 19, 165, 68, 196, 67, 248, 81, 240, 19, + 65, 240, 19, 50, 240, 39, 240, 39, 240, 38, 240, 69, + 240, 68, 0, 6, 80, 52, 27, 0, 10, 31, 207, 2, + 213, 86, 181, 116, 181, 117, 165, 117, 165, 117, 165, 117, + 165, 116, 181, 85, 206, 221, 229, 84, 213, 85, 197, 100, + 197, 100, 197, 101, 181, 101, 181, 101, 181, 101, 50, 101, + 101, 50, 59, 69, 33, 75, 101, 0, 31, 45, 18, 0, + 7, 38, 34, 99, 69, 83, 100, 83, 115, 68, 130, 68, + 130, 69, 114, 70, 201, 171, 139, 139, 153, 214, 213, 50, + 148, 50, 148, 50, 148, 51, 132, 52, 115, 69, 84, 67, + 25, 82, 69, 0, 21, 16, 57, 24, 0, 9, 31, 4, + 95, 4, 68, 69, 67, 67, 85, 83, 50, 101, 98, 50, + 101, 98, 50, 101, 98, 50, 101, 98, 50, 101, 98, 181, + 240, 69, 240, 69, 240, 69, 240, 69, 240, 69, 240, 69, + 240, 69, 240, 69, 240, 69, 240, 69, 240, 69, 253, 189, + 0, 27, 112, 52, 26, 0, 9, 107, 72, 59, 72, 101, + 162, 149, 162, 149, 162, 149, 162, 149, 162, 149, 162, 149, + 162, 149, 162, 149, 162, 149, 162, 149, 162, 149, 162, 149, + 162, 149, 162, 149, 162, 149, 162, 164, 146, 181, 115, 197, + 83, 235, 240, 54, 0, 30, 80, 57, 26, 0, 9, 106, + 103, 58, 103, 101, 178, 133, 162, 149, 162, 165, 130, 181, + 130, 196, 130, 197, 98, 213, 98, 229, 81, 245, 66, 240, + 20, 66, 240, 21, 34, 240, 37, 34, 240, 53, 17, 240, + 71, 240, 71, 240, 85, 240, 101, 240, 115, 240, 131, 240, + 131, 0, 30, 112, 84, 36, 0, 13, 74, 27, 56, 58, + 27, 56, 85, 117, 146, 149, 101, 146, 149, 117, 129, 165, + 117, 114, 181, 101, 114, 181, 102, 97, 197, 102, 82, 213, + 66, 20, 82, 213, 65, 37, 65, 229, 50, 37, 50, 245, + 34, 52, 50, 245, 33, 69, 33, 240, 36, 18, 69, 18, + 240, 39, 84, 18, 240, 38, 102, 240, 69, 102, 240, 69, + 116, 240, 84, 132, 240, 99, 132, 240, 99, 146, 240, 114, + 162, 0, 42, 16, 57, 26, 0, 9, 107, 41, 75, 41, + 133, 114, 197, 98, 229, 82, 230, 50, 240, 21, 34, 240, + 53, 18, 240, 55, 240, 85, 240, 117, 240, 101, 240, 102, + 240, 87, 240, 50, 21, 240, 34, 53, 243, 54, 226, 85, + 210, 117, 179, 117, 178, 149, 105, 74, 57, 74, 0, 29, + 80, 56, 28, 0, 10, 75, 104, 59, 104, 102, 178, 165, + 162, 197, 130, 214, 114, 229, 98, 246, 82, 240, 21, 66, + 240, 38, 35, 240, 54, 18, 240, 87, 240, 103, 240, 117, + 240, 133, 240, 133, 240, 133, 240, 133, 240, 133, 240, 133, + 240, 133, 240, 91, 240, 43, 0, 32, 96, 48, 20, 0, + 7, 79, 2, 63, 2, 53, 101, 67, 133, 67, 117, 82, + 118, 82, 117, 98, 101, 245, 229, 229, 245, 229, 245, 97, + 117, 113, 116, 114, 101, 114, 85, 130, 85, 115, 69, 131, + 68, 117, 63, 2, 63, 2, 0, 22, 112, 37, 8, 133, + 53, 50, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 101, 53, 48, 31, 17, + 0, 6, 98, 98, 98, 98, 98, 98, 113, 113, 114, 98, + 113, 113, 129, 19, 49, 19, 70, 38, 54, 38, 69, 53, + 83, 83, 0, 45, 16, 37, 8, 133, 53, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 53, 53, 48, 14, 12, 240, 240, 161, 163, + 133, 99, 35, 50, 82, 0, 40, 112, 11, 8, 240, 163, + 69, 53, 53, 67, 0, 27, 64, 18, 9, 240, 242, 98, + 98, 113, 114, 113, 129, 19, 70, 54, 69, 83, 0, 24, + 16, 34, 18, 0, 25, 23, 147, 67, 132, 67, 115, 84, + 228, 168, 138, 117, 36, 100, 68, 84, 84, 84, 84, 84, + 84, 84, 69, 100, 34, 21, 101, 52, 0, 20, 80, 46, + 19, 0, 7, 22, 214, 244, 244, 244, 244, 244, 244, 244, + 21, 149, 67, 116, 84, 100, 99, 100, 100, 84, 100, 84, + 100, 84, 100, 84, 100, 84, 100, 84, 100, 84, 99, 100, + 83, 115, 17, 52, 114, 53, 0, 22, 32, 29, 15, 0, + 21, 22, 131, 36, 83, 52, 67, 68, 67, 82, 68, 180, + 180, 180, 180, 180, 195, 98, 83, 82, 84, 50, 133, 0, + 17, 80, 51, 20, 0, 8, 86, 230, 240, 20, 240, 20, + 240, 20, 240, 20, 240, 20, 240, 20, 150, 20, 131, 54, + 115, 100, 99, 116, 99, 116, 84, 116, 84, 116, 84, 116, + 84, 116, 84, 116, 84, 116, 99, 116, 115, 85, 131, 56, + 118, 22, 0, 22, 112, 29, 17, 0, 23, 118, 162, 52, + 115, 68, 83, 100, 67, 100, 52, 100, 62, 62, 52, 212, + 212, 227, 130, 83, 98, 115, 66, 150, 0, 20, 34, 15, + 240, 240, 100, 151, 116, 20, 84, 36, 84, 36, 84, 180, + 180, 180, 153, 105, 132, 180, 180, 180, 180, 180, 180, 180, + 180, 180, 180, 153, 105, 0, 17, 80, 48, 19, 0, 26, + 86, 35, 99, 52, 19, 67, 83, 18, 83, 84, 100, 84, + 115, 84, 115, 84, 131, 52, 153, 146, 21, 178, 240, 34, + 240, 43, 156, 125, 82, 132, 67, 147, 67, 147, 67, 147, + 83, 131, 99, 84, 151, 0, 5, 96, 53, 20, 0, 7, + 70, 230, 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, + 240, 20, 240, 20, 37, 148, 17, 51, 133, 68, 117, 68, + 116, 84, 116, 84, 116, 84, 116, 84, 116, 84, 116, 84, + 116, 84, 116, 84, 116, 84, 88, 24, 56, 24, 0, 22, + 112, 29, 11, 240, 240, 83, 117, 101, 101, 115, 240, 240, + 150, 86, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 88, 56, 0, 12, 96, 40, 13, 240, 240, 243, 149, + 133, 133, 147, 0, 5, 118, 118, 148, 148, 148, 148, 148, + 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 66, 52, + 52, 36, 52, 35, 68, 19, 117, 240, 240, 32, 50, 20, + 0, 7, 70, 230, 240, 20, 240, 20, 240, 20, 240, 20, + 240, 20, 240, 20, 240, 20, 55, 100, 55, 100, 82, 148, + 66, 164, 50, 180, 19, 200, 201, 180, 35, 180, 36, 164, + 52, 148, 68, 132, 68, 104, 24, 56, 24, 0, 22, 112, + 30, 11, 240, 240, 54, 86, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 88, 56, 0, 12, 96, 54, 30, 0, 41, 38, 37, + 85, 118, 17, 51, 34, 51, 133, 69, 84, 117, 69, 84, + 116, 84, 100, 116, 84, 100, 116, 84, 100, 116, 84, 100, + 116, 84, 100, 116, 84, 100, 116, 84, 100, 116, 84, 100, + 116, 84, 100, 88, 25, 24, 56, 25, 24, 0, 34, 16, + 38, 20, 0, 27, 70, 37, 118, 17, 51, 133, 68, 117, + 68, 116, 84, 116, 84, 116, 84, 116, 84, 116, 84, 116, + 84, 116, 84, 116, 84, 116, 84, 88, 24, 56, 24, 0, + 22, 112, 34, 17, 0, 23, 118, 162, 67, 115, 67, 99, + 99, 83, 100, 52, 100, 52, 100, 52, 100, 52, 100, 52, + 100, 52, 100, 67, 99, 84, 68, 99, 67, 150, 0, 20, + 44, 19, 0, 26, 22, 21, 119, 52, 116, 84, 100, 99, + 100, 100, 84, 100, 84, 100, 84, 100, 84, 100, 84, 100, + 84, 100, 84, 84, 100, 83, 117, 52, 116, 21, 148, 244, + 244, 244, 244, 216, 184, 0, 6, 16, 50, 20, 0, 28, + 6, 50, 131, 50, 19, 115, 85, 100, 100, 99, 116, 84, + 116, 84, 116, 84, 116, 84, 116, 84, 116, 84, 116, 100, + 100, 115, 85, 131, 54, 150, 20, 240, 20, 240, 20, 240, + 20, 240, 20, 240, 20, 232, 200, 240, 240, 208, 26, 15, + 0, 20, 86, 20, 71, 20, 85, 20, 84, 36, 84, 180, + 180, 180, 180, 180, 180, 180, 180, 152, 120, 0, 17, 96, + 30, 14, 0, 19, 87, 82, 82, 66, 113, 66, 113, 67, + 182, 152, 120, 135, 179, 50, 114, 50, 114, 51, 98, 52, + 66, 66, 21, 0, 16, 64, 34, 13, 0, 7, 2, 178, + 178, 178, 163, 163, 148, 121, 73, 100, 148, 148, 148, 148, + 148, 148, 148, 34, 84, 34, 84, 34, 84, 34, 99, 33, + 132, 0, 15, 32, 37, 20, 0, 27, 70, 54, 86, 54, + 116, 84, 116, 84, 116, 84, 116, 84, 116, 84, 116, 84, + 116, 84, 116, 84, 116, 84, 116, 84, 116, 69, 131, 56, + 118, 22, 0, 22, 112, 32, 19, 0, 26, 24, 38, 56, + 38, 84, 98, 116, 82, 148, 66, 148, 65, 179, 50, 180, + 34, 180, 33, 214, 213, 244, 244, 243, 240, 34, 0, 22, + 80, 48, 25, 0, 34, 55, 23, 37, 55, 23, 37, 84, + 67, 97, 116, 67, 82, 131, 68, 65, 148, 52, 50, 148, + 37, 50, 163, 38, 33, 180, 17, 35, 18, 182, 35, 18, + 197, 37, 212, 68, 212, 68, 227, 67, 242, 98, 0, 29, + 32, 33, 19, 0, 26, 23, 38, 71, 38, 100, 66, 164, + 50, 180, 18, 213, 228, 240, 20, 244, 230, 194, 36, 162, + 68, 146, 83, 102, 40, 54, 40, 0, 21, 96, 47, 19, + 0, 26, 24, 53, 56, 53, 84, 98, 132, 82, 132, 81, + 164, 50, 164, 50, 164, 49, 196, 18, 196, 17, 229, 229, + 228, 240, 19, 240, 18, 240, 34, 240, 34, 178, 65, 180, + 34, 180, 33, 195, 34, 212, 0, 6, 64, 33, 15, 0, + 20, 92, 51, 84, 50, 84, 66, 68, 82, 68, 82, 52, + 180, 164, 164, 65, 100, 50, 84, 66, 84, 66, 68, 82, + 52, 68, 60, 0, 17, 32, 11, 20, 0, 37, 79, 2, + 63, 2, 0, 45, 48, 13, 36, 0, 67, 79, 15, 3, + 63, 15, 3, 0, 81, 48, 20, 14, 240, 227, 51, 84, + 36, 68, 36, 52, 36, 68, 36, 67, 51, 82, 66, 0, + 46, 32, 13, 14, 240, 240, 228, 65, 73, 74, 65, 83, + 0, 49, 80, +}; + +//***************************************************************************** +// +// The font definition for the 34 point Cm bold font. +// +//***************************************************************************** +const tFont g_sFontCm34b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 32, + + // + // The height of the font. + // + 35, + + // + // The baseline of the font. + // + 26, + + // + // The offset to each character in the font. + // + { + 0, 5, 34, 67, 157, 215, 299, 369, + 388, 426, 464, 496, 547, 565, 575, 587, + 625, 673, 703, 741, 781, 819, 858, 906, + 938, 982, 1028, 1047, 1072, 1100, 1116, 1151, + 1187, 1267, 1321, 1372, 1423, 1476, 1531, 1579, + 1632, 1685, 1715, 1750, 1805, 1856, 1942, 2006, + 2057, 2105, 2177, 2229, 2274, 2331, 2383, 2440, + 2524, 2581, 2637, 2685, 2722, 2753, 2790, 2804, + 2815, 2833, 2867, 2913, 2942, 2993, 3022, 3056, + 3104, 3157, 3186, 3226, 3276, 3306, 3360, 3398, + 3432, 3476, 3526, 3552, 3582, 3616, 3653, 3685, + 3733, 3766, 3813, 3846, 3857, 3870, 3890, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm34bData +}; diff --git a/grlib/fonts/fontcm34i.c b/grlib/fonts/fontcm34i.c new file mode 100644 index 0000000..fad298b --- /dev/null +++ b/grlib/fonts/fontcm34i.c @@ -0,0 +1,464 @@ +//***************************************************************************** +// +// fontcm34i.c - Font definition for the 34pt Cm italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 34 point +// Bold: no +// Italic: yes +// Memory usage: 4492 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 34 point Cm italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm34iData[4290] = +{ + 5, 14, 0, 61, 32, 30, 11, 240, 34, 131, 131, 131, + 115, 131, 131, 130, 146, 146, 131, 130, 146, 146, 145, 161, + 146, 145, 161, 240, 240, 194, 131, 130, 0, 13, 64, 26, + 14, 240, 243, 51, 68, 36, 68, 36, 113, 81, 97, 81, + 113, 81, 97, 81, 113, 81, 97, 81, 97, 81, 0, 41, + 16, 94, 27, 0, 8, 81, 97, 240, 65, 97, 240, 50, + 82, 240, 49, 97, 240, 50, 82, 240, 49, 97, 240, 50, + 82, 240, 49, 97, 240, 50, 82, 240, 49, 97, 240, 50, + 82, 240, 49, 97, 191, 7, 193, 97, 240, 50, 82, 240, + 49, 97, 240, 50, 82, 240, 49, 97, 207, 7, 177, 97, + 240, 50, 82, 240, 49, 97, 240, 50, 82, 240, 49, 97, + 240, 50, 82, 240, 49, 97, 240, 50, 82, 240, 49, 97, + 240, 50, 97, 240, 49, 97, 240, 65, 97, 0, 9, 58, + 23, 0, 7, 68, 240, 35, 49, 242, 97, 226, 97, 210, + 98, 210, 83, 194, 98, 210, 240, 98, 240, 98, 240, 82, + 240, 57, 240, 34, 240, 98, 240, 82, 240, 98, 240, 98, + 240, 98, 240, 82, 240, 38, 145, 97, 51, 129, 97, 68, + 113, 97, 50, 35, 50, 116, 100, 0, 27, 88, 26, 115, + 193, 130, 34, 147, 129, 67, 84, 130, 65, 37, 18, 130, + 81, 114, 146, 81, 98, 162, 81, 83, 146, 97, 67, 162, + 81, 82, 178, 81, 66, 194, 65, 66, 210, 65, 50, 241, + 49, 51, 242, 17, 66, 240, 49, 66, 240, 130, 84, 226, + 81, 65, 194, 82, 65, 194, 66, 81, 178, 82, 81, 162, + 98, 81, 146, 98, 97, 130, 114, 81, 145, 130, 81, 130, + 130, 65, 130, 146, 65, 114, 178, 33, 129, 211, 0, 23, + 112, 77, 25, 240, 240, 52, 240, 66, 65, 129, 130, 97, + 98, 129, 113, 113, 114, 83, 113, 98, 99, 97, 114, 98, + 97, 130, 210, 130, 194, 145, 35, 115, 147, 49, 82, 17, + 146, 65, 65, 65, 115, 50, 49, 81, 113, 35, 81, 81, + 98, 163, 49, 98, 163, 49, 82, 240, 33, 82, 240, 17, + 98, 240, 17, 98, 241, 114, 241, 130, 209, 162, 162, 194, + 114, 240, 23, 0, 29, 96, 16, 8, 240, 51, 68, 68, + 113, 97, 113, 97, 113, 97, 97, 0, 23, 112, 39, 16, + 193, 210, 210, 210, 210, 225, 226, 210, 225, 226, 226, 210, + 226, 210, 226, 226, 210, 226, 226, 226, 211, 210, 226, 226, + 226, 226, 226, 226, 226, 241, 242, 226, 241, 240, 17, 241, + 192, 38, 15, 129, 241, 225, 226, 225, 225, 226, 210, 210, + 210, 210, 210, 210, 210, 195, 195, 194, 210, 210, 195, 194, + 210, 194, 210, 210, 194, 210, 194, 209, 210, 194, 209, 209, + 209, 209, 224, 33, 16, 129, 226, 225, 161, 65, 65, 82, + 49, 35, 98, 17, 34, 147, 17, 210, 197, 146, 17, 34, + 98, 49, 50, 81, 65, 65, 161, 226, 226, 0, 41, 32, + 46, 23, 0, 21, 81, 240, 98, 240, 98, 240, 97, 240, + 113, 240, 113, 240, 98, 240, 97, 240, 113, 240, 113, 207, + 5, 193, 240, 113, 240, 113, 240, 98, 240, 97, 240, 113, + 240, 113, 240, 98, 240, 97, 240, 113, 0, 22, 16, 7, + 0, 20, 50, 67, 67, 97, 97, 81, 97, 81, 81, 97, + 240, 80, 9, 11, 0, 23, 56, 56, 0, 22, 48, 10, + 6, 0, 17, 50, 51, 50, 0, 7, 32, 74, 23, 240, + 65, 240, 98, 240, 97, 240, 98, 240, 97, 240, 97, 240, + 98, 240, 97, 240, 98, 240, 97, 240, 98, 240, 97, 240, + 98, 240, 97, 240, 97, 240, 98, 240, 97, 240, 98, 240, + 97, 240, 98, 240, 97, 240, 97, 240, 98, 240, 97, 240, + 98, 240, 97, 240, 98, 240, 97, 240, 98, 240, 97, 240, + 97, 240, 98, 240, 97, 240, 98, 240, 97, 240, 112, 51, + 18, 0, 7, 101, 179, 50, 146, 97, 130, 114, 114, 114, + 98, 130, 98, 130, 83, 130, 82, 131, 82, 131, 67, 130, + 82, 146, 82, 131, 82, 131, 67, 130, 83, 115, 82, 130, + 98, 130, 98, 114, 114, 114, 129, 98, 146, 66, 181, 0, + 21, 80, 31, 14, 0, 6, 65, 209, 179, 164, 115, 18, + 194, 194, 179, 178, 194, 194, 179, 178, 194, 194, 179, 178, + 194, 194, 194, 178, 194, 138, 0, 16, 32, 53, 18, 0, + 7, 100, 209, 66, 161, 97, 145, 114, 113, 33, 82, 113, + 33, 82, 98, 33, 82, 97, 49, 82, 97, 33, 82, 113, + 33, 82, 130, 82, 242, 242, 242, 226, 242, 241, 240, 17, + 145, 97, 145, 113, 145, 101, 81, 113, 55, 97, 99, 0, + 21, 32, 53, 19, 0, 8, 37, 194, 66, 161, 114, 129, + 130, 129, 130, 113, 33, 98, 113, 33, 98, 113, 18, 82, + 146, 98, 240, 18, 240, 18, 197, 240, 50, 240, 50, 240, + 34, 240, 34, 114, 130, 99, 115, 98, 130, 113, 146, 113, + 130, 146, 66, 198, 0, 22, 96, 45, 17, 0, 7, 114, + 242, 226, 242, 242, 226, 242, 242, 226, 242, 226, 242, 226, + 242, 226, 241, 50, 162, 50, 146, 50, 146, 66, 130, 82, + 114, 98, 103, 18, 113, 102, 194, 242, 226, 242, 242, 242, + 241, 240, 240, 208, 46, 17, 0, 7, 17, 97, 136, 150, + 177, 240, 17, 241, 240, 17, 240, 17, 240, 17, 20, 161, + 17, 50, 146, 81, 145, 98, 242, 242, 242, 242, 98, 99, + 83, 98, 98, 114, 97, 114, 113, 98, 145, 66, 180, 0, + 20, 64, 49, 17, 0, 7, 68, 178, 65, 146, 66, 130, + 82, 114, 98, 99, 226, 227, 226, 36, 146, 17, 50, 116, + 82, 99, 98, 99, 98, 83, 114, 83, 114, 82, 130, 82, + 115, 82, 114, 98, 114, 98, 98, 129, 97, 146, 50, 181, + 0, 20, 48, 55, 19, 0, 7, 65, 35, 97, 103, 65, + 115, 49, 50, 98, 81, 34, 113, 115, 114, 145, 113, 145, + 113, 146, 240, 33, 240, 34, 240, 33, 240, 34, 240, 34, + 240, 18, 240, 34, 240, 19, 240, 18, 240, 19, 240, 19, + 240, 18, 240, 19, 240, 19, 240, 18, 0, 23, 48, 18, + 0, 7, 116, 194, 65, 162, 97, 130, 113, 129, 129, 114, + 129, 114, 113, 131, 97, 132, 65, 167, 197, 214, 162, 52, + 130, 84, 98, 115, 82, 146, 66, 162, 66, 162, 66, 161, + 82, 145, 114, 113, 131, 66, 181, 0, 21, 64, 49, 17, + 0, 7, 52, 178, 50, 146, 81, 130, 98, 114, 98, 98, + 114, 98, 114, 83, 114, 83, 99, 82, 115, 82, 115, 82, + 99, 98, 99, 113, 84, 114, 49, 18, 148, 34, 226, 242, + 226, 114, 97, 130, 81, 145, 66, 181, 0, 20, 64, 15, + 9, 0, 12, 99, 99, 98, 0, 10, 98, 99, 99, 0, + 10, 112, 21, 10, 0, 14, 50, 115, 114, 0, 12, 2, + 115, 115, 145, 145, 129, 145, 129, 145, 129, 240, 224, 30, + 11, 0, 13, 18, 131, 130, 240, 240, 193, 161, 146, 145, + 161, 146, 146, 146, 131, 130, 146, 146, 131, 131, 131, 115, + 131, 131, 130, 240, 80, 13, 25, 0, 44, 15, 5, 0, + 16, 15, 5, 0, 44, 48, 43, 15, 0, 17, 115, 195, + 194, 0, 7, 3, 178, 33, 146, 49, 145, 65, 209, 210, + 179, 179, 178, 82, 82, 83, 66, 98, 81, 129, 66, 129, + 65, 129, 81, 129, 81, 113, 97, 97, 129, 65, 164, 240, + 144, 42, 15, 240, 100, 161, 65, 129, 97, 97, 113, 81, + 129, 65, 145, 65, 130, 66, 113, 67, 98, 66, 83, 179, + 179, 178, 194, 194, 209, 65, 145, 50, 145, 34, 179, 0, + 7, 2, 195, 195, 0, 18, 32, 85, 24, 0, 7, 54, + 240, 18, 82, 210, 145, 177, 193, 145, 84, 65, 129, 66, + 50, 65, 97, 51, 81, 65, 82, 50, 114, 33, 81, 50, + 130, 33, 65, 50, 146, 33, 65, 50, 145, 49, 65, 35, + 130, 49, 49, 50, 146, 49, 49, 50, 146, 33, 65, 50, + 131, 33, 65, 50, 130, 49, 65, 50, 115, 49, 65, 66, + 84, 33, 82, 51, 50, 18, 18, 97, 84, 67, 114, 240, + 130, 209, 146, 131, 216, 0, 28, 48, 63, 24, 240, 240, + 161, 240, 114, 240, 114, 240, 99, 240, 81, 18, 240, 81, + 18, 240, 65, 34, 240, 65, 34, 240, 49, 50, 240, 49, + 51, 240, 17, 67, 240, 17, 67, 241, 83, 225, 99, 225, + 99, 209, 115, 219, 193, 131, 193, 146, 177, 162, 177, 162, + 161, 178, 146, 178, 131, 179, 86, 120, 0, 27, 48, 52, + 25, 0, 6, 126, 226, 131, 194, 146, 179, 147, 163, 147, + 162, 163, 162, 163, 147, 147, 163, 146, 178, 146, 194, 115, + 218, 227, 115, 194, 147, 178, 163, 162, 163, 147, 163, 146, + 179, 146, 179, 146, 163, 147, 147, 162, 147, 178, 131, 158, + 0, 29, 64, 56, 24, 0, 7, 38, 65, 179, 66, 34, + 162, 131, 146, 163, 130, 194, 129, 210, 114, 209, 114, 225, + 114, 225, 98, 240, 114, 240, 114, 240, 98, 240, 114, 240, + 114, 240, 114, 225, 114, 225, 114, 209, 130, 209, 146, 177, + 162, 161, 194, 129, 226, 82, 240, 37, 0, 28, 96, 53, + 26, 0, 7, 45, 243, 114, 227, 130, 210, 162, 194, 177, + 179, 178, 163, 178, 162, 194, 162, 194, 147, 194, 147, 194, + 146, 195, 146, 195, 131, 194, 147, 194, 146, 194, 162, 194, + 147, 178, 163, 178, 162, 178, 178, 162, 194, 146, 195, 114, + 189, 0, 30, 112, 63, 26, 0, 7, 47, 2, 179, 147, + 179, 162, 179, 161, 194, 177, 194, 177, 179, 177, 179, 97, + 65, 178, 97, 240, 34, 97, 240, 19, 82, 240, 26, 240, + 18, 97, 240, 34, 97, 240, 19, 97, 240, 19, 97, 81, + 162, 193, 178, 193, 163, 193, 163, 177, 179, 162, 178, 177, + 179, 147, 143, 3, 0, 30, 32, 55, 25, 0, 7, 15, + 1, 179, 131, 179, 146, 179, 161, 178, 177, 178, 177, 163, + 177, 163, 177, 162, 97, 240, 18, 97, 243, 97, 243, 82, + 249, 240, 18, 82, 243, 97, 243, 97, 243, 81, 240, 18, + 240, 115, 240, 115, 240, 115, 240, 114, 240, 115, 240, 74, + 0, 30, 57, 24, 0, 7, 53, 65, 179, 81, 49, 162, + 129, 18, 146, 163, 130, 178, 130, 194, 114, 210, 98, 226, + 98, 225, 99, 225, 98, 240, 114, 240, 99, 240, 98, 240, + 114, 240, 114, 153, 66, 210, 114, 210, 114, 195, 130, 179, + 130, 178, 162, 147, 179, 82, 18, 214, 65, 0, 28, 54, + 29, 0, 8, 8, 57, 179, 147, 227, 146, 242, 162, 242, + 147, 227, 147, 227, 147, 226, 162, 242, 162, 227, 147, 227, + 147, 238, 242, 162, 227, 147, 227, 147, 226, 162, 242, 162, + 227, 147, 227, 147, 226, 162, 242, 162, 227, 147, 227, 147, + 185, 56, 0, 33, 96, 31, 17, 240, 240, 153, 179, 226, + 242, 242, 227, 226, 242, 242, 227, 227, 226, 242, 227, 227, + 226, 242, 227, 227, 226, 242, 242, 227, 185, 0, 20, 16, + 52, 20, 0, 6, 9, 243, 240, 34, 240, 50, 240, 35, + 240, 35, 240, 34, 240, 50, 240, 35, 240, 35, 240, 34, + 240, 50, 240, 35, 240, 35, 240, 34, 240, 50, 240, 35, + 240, 35, 240, 34, 178, 67, 163, 66, 178, 67, 177, 67, + 213, 0, 24, 32, 75, 30, 0, 8, 40, 103, 179, 163, + 227, 162, 243, 145, 240, 34, 145, 240, 50, 129, 240, 51, + 113, 240, 67, 82, 240, 82, 82, 240, 98, 66, 240, 99, + 51, 240, 99, 33, 18, 240, 98, 33, 35, 240, 82, 17, + 51, 240, 68, 83, 240, 51, 99, 240, 51, 114, 240, 50, + 131, 240, 19, 131, 240, 19, 146, 240, 19, 147, 242, 163, + 227, 164, 169, 88, 0, 34, 96, 54, 22, 0, 6, 41, + 243, 240, 67, 240, 67, 240, 66, 240, 82, 240, 67, 240, + 67, 240, 66, 240, 82, 240, 67, 240, 67, 240, 66, 240, + 82, 240, 67, 240, 67, 161, 130, 161, 146, 161, 131, 161, + 131, 145, 146, 146, 146, 131, 131, 115, 111, 1, 0, 25, + 64, 94, 34, 0, 9, 38, 214, 195, 193, 18, 225, 18, + 196, 225, 18, 177, 18, 241, 18, 177, 18, 241, 18, 161, + 34, 225, 34, 161, 19, 225, 35, 129, 34, 241, 35, 113, + 50, 241, 35, 113, 50, 241, 50, 97, 51, 225, 66, 97, + 51, 225, 66, 81, 66, 241, 66, 81, 66, 241, 66, 65, + 67, 225, 82, 49, 83, 225, 82, 49, 82, 241, 82, 33, + 98, 241, 83, 17, 98, 225, 100, 99, 225, 100, 98, 241, + 114, 114, 226, 114, 99, 183, 81, 73, 0, 39, 32, 71, + 29, 0, 8, 5, 135, 195, 147, 209, 18, 161, 225, 18, + 145, 241, 19, 129, 241, 34, 129, 225, 50, 129, 225, 51, + 113, 225, 66, 97, 241, 66, 97, 225, 83, 81, 225, 98, + 81, 225, 98, 65, 241, 99, 49, 225, 130, 49, 225, 130, + 49, 225, 131, 17, 241, 146, 17, 225, 162, 17, 225, 164, + 225, 178, 241, 178, 226, 178, 183, 161, 0, 34, 55, 24, + 0, 7, 54, 240, 18, 82, 211, 114, 178, 162, 146, 193, + 130, 210, 99, 210, 83, 226, 83, 226, 67, 242, 67, 242, + 67, 227, 52, 226, 67, 242, 67, 227, 67, 226, 83, 226, + 83, 210, 99, 194, 131, 163, 131, 162, 163, 114, 211, 82, + 240, 22, 0, 28, 80, 51, 24, 0, 6, 93, 227, 99, + 194, 145, 194, 146, 163, 146, 162, 162, 162, 162, 162, 147, + 147, 146, 163, 145, 178, 146, 178, 114, 202, 227, 240, 98, + 240, 114, 240, 99, 240, 99, 240, 98, 240, 114, 240, 99, + 240, 99, 240, 99, 240, 56, 0, 29, 82, 24, 0, 7, + 53, 240, 19, 82, 210, 130, 178, 162, 146, 178, 130, 210, + 98, 226, 98, 226, 82, 242, 82, 242, 66, 240, 18, 66, + 240, 18, 51, 242, 67, 242, 66, 240, 18, 66, 242, 82, + 242, 82, 226, 98, 210, 129, 98, 81, 146, 65, 33, 49, + 178, 33, 49, 18, 210, 17, 50, 240, 38, 240, 129, 97, + 240, 17, 97, 240, 17, 81, 240, 34, 50, 240, 38, 240, + 54, 240, 67, 0, 7, 32, 55, 25, 0, 6, 125, 243, + 99, 210, 131, 194, 147, 163, 147, 163, 147, 163, 147, 162, + 163, 162, 147, 163, 146, 179, 130, 194, 114, 233, 243, 98, + 227, 114, 210, 130, 210, 130, 195, 130, 195, 115, 194, 131, + 194, 131, 179, 131, 65, 99, 131, 49, 72, 117, 0, 28, + 96, 55, 21, 0, 6, 53, 49, 162, 81, 33, 146, 115, + 145, 130, 146, 130, 130, 161, 130, 161, 130, 145, 146, 240, + 68, 240, 54, 240, 23, 240, 22, 240, 52, 240, 51, 240, + 66, 129, 162, 113, 178, 113, 177, 129, 162, 130, 145, 131, + 129, 145, 34, 66, 161, 54, 0, 25, 61, 24, 0, 6, + 47, 4, 82, 99, 83, 66, 114, 114, 65, 130, 113, 81, + 115, 113, 81, 115, 113, 65, 130, 129, 65, 130, 129, 195, + 240, 99, 240, 98, 240, 114, 240, 99, 240, 99, 240, 98, + 240, 114, 240, 99, 240, 99, 240, 98, 240, 114, 240, 99, + 240, 99, 240, 99, 240, 43, 0, 28, 64, 54, 24, 0, + 6, 24, 87, 99, 163, 131, 177, 146, 177, 162, 177, 162, + 177, 147, 177, 146, 177, 162, 177, 162, 177, 147, 177, 146, + 177, 162, 177, 162, 177, 147, 177, 146, 177, 162, 177, 162, + 177, 162, 161, 178, 161, 178, 145, 210, 113, 242, 66, 240, + 37, 0, 29, 62, 25, 0, 6, 40, 134, 83, 195, 130, + 194, 146, 193, 162, 177, 178, 177, 179, 145, 195, 129, 211, + 129, 211, 113, 227, 113, 227, 97, 240, 18, 81, 240, 34, + 81, 240, 34, 65, 240, 50, 65, 240, 51, 33, 240, 67, + 33, 240, 67, 17, 240, 84, 240, 100, 240, 99, 240, 115, + 240, 129, 0, 30, 64, 94, 33, 0, 8, 40, 71, 86, + 83, 147, 146, 115, 146, 161, 131, 146, 161, 131, 146, 145, + 147, 131, 145, 147, 132, 113, 163, 113, 19, 113, 163, 97, + 35, 97, 194, 97, 35, 81, 210, 81, 51, 81, 210, 81, + 51, 65, 226, 65, 67, 65, 226, 65, 67, 49, 242, 49, + 83, 49, 242, 49, 83, 33, 240, 18, 33, 99, 33, 240, + 18, 33, 99, 17, 240, 34, 17, 115, 17, 240, 36, 116, + 240, 51, 147, 240, 50, 162, 240, 66, 161, 240, 81, 177, + 0, 39, 32, 69, 29, 0, 8, 8, 87, 180, 131, 243, + 129, 240, 35, 113, 240, 51, 97, 240, 83, 65, 240, 99, + 65, 240, 99, 49, 240, 131, 17, 240, 148, 240, 178, 240, + 195, 240, 179, 240, 161, 18, 240, 145, 35, 240, 113, 51, + 240, 97, 83, 240, 66, 83, 240, 65, 99, 240, 49, 131, + 240, 17, 147, 241, 163, 226, 164, 167, 104, 0, 33, 80, + 58, 25, 0, 6, 40, 134, 84, 179, 131, 177, 163, 162, + 163, 161, 195, 129, 211, 113, 227, 97, 240, 18, 82, 240, + 19, 65, 240, 35, 49, 240, 66, 33, 240, 84, 240, 100, + 240, 99, 240, 115, 240, 114, 240, 130, 240, 130, 240, 115, + 240, 114, 240, 130, 240, 115, 240, 73, 0, 30, 54, 23, + 0, 6, 78, 147, 131, 131, 131, 146, 146, 161, 146, 177, + 131, 161, 131, 177, 115, 240, 82, 240, 82, 240, 83, 240, + 67, 240, 67, 240, 82, 240, 82, 240, 83, 113, 179, 129, + 163, 129, 178, 145, 162, 161, 147, 146, 131, 146, 131, 132, + 143, 0, 26, 112, 38, 16, 148, 178, 225, 241, 241, 226, + 225, 241, 241, 241, 225, 241, 241, 241, 226, 225, 241, 241, + 226, 225, 241, 241, 226, 225, 241, 241, 226, 225, 241, 241, + 226, 225, 241, 241, 229, 176, 27, 14, 240, 240, 33, 81, + 97, 81, 97, 81, 97, 97, 97, 81, 97, 81, 113, 81, + 116, 36, 68, 36, 67, 51, 0, 40, 112, 38, 15, 132, + 210, 209, 225, 225, 210, 210, 209, 225, 210, 210, 209, 225, + 225, 210, 209, 225, 225, 210, 209, 225, 225, 210, 209, 225, + 225, 210, 209, 225, 225, 210, 209, 225, 225, 180, 176, 14, + 11, 240, 178, 131, 114, 18, 82, 49, 65, 97, 0, 38, + 112, 9, 6, 240, 66, 51, 50, 0, 22, 32, 16, 8, + 240, 81, 97, 97, 113, 97, 97, 113, 116, 68, 67, 0, + 23, 80, 42, 17, 0, 24, 19, 194, 49, 17, 130, 67, + 114, 98, 114, 98, 98, 98, 114, 98, 99, 98, 98, 114, + 98, 98, 114, 98, 49, 50, 98, 49, 50, 83, 33, 82, + 34, 18, 33, 99, 67, 0, 19, 96, 45, 14, 240, 244, + 194, 194, 194, 178, 194, 194, 194, 178, 194, 35, 114, 17, + 34, 99, 66, 67, 82, 66, 98, 66, 98, 66, 98, 51, + 83, 50, 98, 66, 98, 66, 83, 66, 82, 82, 66, 114, + 34, 148, 0, 16, 96, 29, 14, 0, 20, 4, 130, 65, + 98, 66, 82, 82, 82, 82, 66, 194, 179, 178, 194, 194, + 194, 129, 65, 113, 82, 66, 132, 0, 16, 80, 57, 18, + 0, 5, 101, 242, 240, 18, 240, 18, 240, 18, 240, 17, + 240, 18, 240, 18, 240, 18, 179, 33, 162, 51, 146, 67, + 130, 98, 130, 98, 114, 98, 130, 98, 115, 98, 114, 114, + 114, 98, 130, 98, 49, 66, 83, 49, 66, 83, 33, 98, + 34, 18, 33, 115, 67, 0, 21, 30, 14, 0, 20, 4, + 130, 50, 98, 81, 82, 97, 66, 98, 66, 67, 72, 98, + 194, 194, 194, 194, 129, 65, 113, 82, 66, 117, 0, 16, + 80, 64, 19, 0, 6, 35, 242, 33, 210, 34, 210, 240, + 19, 240, 18, 240, 34, 240, 34, 240, 19, 217, 210, 240, + 34, 240, 34, 240, 19, 240, 18, 240, 34, 240, 34, 240, + 19, 240, 19, 240, 18, 240, 34, 240, 34, 240, 19, 240, + 18, 240, 34, 240, 34, 240, 18, 210, 34, 210, 34, 209, + 34, 243, 0, 6, 80, 46, 17, 0, 24, 36, 194, 51, + 130, 67, 114, 98, 99, 98, 98, 98, 114, 98, 99, 98, + 98, 114, 98, 98, 114, 98, 114, 98, 114, 83, 130, 36, + 163, 34, 242, 227, 226, 129, 98, 115, 66, 130, 66, 166, + 240, 240, 224, 57, 18, 240, 240, 133, 240, 18, 243, 242, + 240, 18, 240, 18, 240, 18, 242, 240, 18, 240, 18, 36, + 162, 17, 51, 116, 82, 115, 98, 114, 114, 114, 114, 99, + 98, 114, 114, 114, 99, 114, 98, 114, 114, 49, 50, 98, + 65, 50, 98, 49, 66, 98, 34, 65, 132, 0, 20, 112, + 34, 11, 240, 240, 146, 146, 146, 0, 7, 83, 98, 34, + 81, 50, 65, 66, 65, 51, 130, 131, 130, 131, 130, 131, + 49, 66, 65, 66, 49, 82, 34, 100, 0, 13, 42, 16, + 0, 7, 50, 226, 226, 0, 11, 36, 177, 50, 145, 66, + 130, 66, 129, 82, 129, 67, 210, 226, 226, 211, 210, 226, + 211, 210, 226, 226, 211, 210, 130, 66, 130, 50, 145, 50, + 179, 240, 240, 224, 50, 16, 240, 240, 84, 226, 226, 226, + 210, 226, 226, 226, 210, 226, 83, 98, 50, 33, 98, 33, + 50, 83, 33, 162, 18, 179, 213, 162, 50, 146, 66, 130, + 66, 130, 66, 33, 82, 66, 33, 66, 82, 33, 66, 82, + 17, 82, 99, 0, 18, 80, 34, 10, 240, 117, 130, 130, + 114, 130, 130, 130, 114, 130, 130, 115, 114, 130, 130, 115, + 114, 130, 130, 115, 33, 66, 49, 66, 49, 66, 33, 82, + 33, 99, 0, 12, 63, 28, 0, 38, 99, 53, 68, 129, + 33, 34, 50, 33, 51, 81, 51, 82, 17, 82, 81, 50, + 99, 98, 81, 35, 98, 114, 130, 114, 114, 130, 99, 98, + 146, 98, 114, 130, 114, 99, 130, 114, 98, 146, 98, 114, + 49, 82, 98, 98, 65, 66, 114, 98, 49, 82, 114, 98, + 34, 82, 113, 132, 0, 32, 16, 46, 19, 0, 26, 51, + 68, 114, 18, 33, 50, 97, 34, 17, 66, 81, 51, 82, + 81, 50, 98, 146, 98, 131, 83, 130, 98, 146, 98, 146, + 98, 130, 99, 33, 82, 98, 49, 82, 98, 33, 98, 98, + 18, 97, 131, 0, 22, 35, 16, 0, 22, 100, 163, 50, + 114, 97, 98, 114, 82, 114, 66, 130, 66, 130, 51, 115, + 50, 130, 66, 130, 66, 114, 82, 114, 97, 98, 114, 66, + 164, 0, 19, 16, 54, 19, 0, 26, 83, 67, 129, 34, + 18, 34, 113, 35, 82, 81, 51, 82, 81, 50, 98, 146, + 98, 130, 114, 130, 99, 130, 98, 146, 98, 130, 99, 130, + 98, 147, 66, 163, 50, 162, 36, 178, 240, 34, 240, 34, + 240, 18, 240, 34, 240, 34, 247, 0, 6, 32, 45, 16, + 0, 22, 99, 49, 114, 49, 17, 114, 67, 98, 98, 98, + 98, 82, 98, 98, 98, 83, 98, 82, 114, 82, 98, 98, + 98, 98, 83, 98, 83, 114, 36, 148, 18, 226, 226, 210, + 226, 226, 226, 183, 240, 240, 128, 29, 16, 0, 22, 35, + 52, 81, 37, 34, 65, 35, 66, 49, 51, 145, 50, 226, + 211, 210, 226, 226, 210, 226, 226, 226, 225, 0, 19, 80, + 29, 14, 0, 19, 116, 130, 66, 97, 82, 82, 67, 82, + 196, 181, 166, 179, 194, 66, 98, 66, 98, 66, 82, 81, + 82, 117, 0, 16, 96, 34, 13, 0, 7, 33, 178, 178, + 178, 178, 162, 178, 122, 114, 162, 178, 178, 178, 162, 178, + 178, 163, 65, 82, 81, 82, 65, 98, 50, 98, 34, 132, + 0, 15, 64, 45, 19, 0, 26, 52, 113, 98, 34, 83, + 81, 50, 82, 81, 66, 82, 81, 51, 82, 146, 83, 131, + 82, 146, 98, 146, 98, 130, 98, 146, 98, 49, 82, 98, + 49, 82, 83, 33, 114, 49, 18, 33, 132, 51, 0, 22, + 40, 17, 0, 23, 84, 98, 66, 34, 67, 65, 50, 67, + 49, 66, 82, 49, 51, 82, 114, 97, 115, 97, 114, 113, + 114, 113, 98, 113, 114, 113, 114, 97, 130, 97, 146, 50, + 181, 0, 20, 16, 56, 23, 0, 31, 116, 98, 66, 65, + 50, 82, 51, 65, 50, 82, 51, 49, 66, 67, 66, 49, + 50, 82, 82, 114, 82, 82, 99, 82, 81, 114, 98, 81, + 114, 82, 97, 98, 98, 82, 98, 98, 81, 114, 98, 81, + 114, 83, 65, 146, 50, 18, 34, 165, 52, 0, 26, 96, + 41, 18, 0, 25, 36, 52, 97, 52, 34, 81, 67, 50, + 65, 83, 145, 82, 240, 18, 243, 243, 242, 240, 18, 81, + 147, 81, 66, 51, 65, 82, 51, 65, 81, 49, 18, 49, + 115, 52, 0, 21, 16, 52, 18, 0, 25, 4, 113, 82, + 34, 83, 65, 50, 82, 65, 66, 82, 65, 51, 82, 130, + 83, 115, 82, 130, 98, 130, 98, 114, 98, 130, 98, 130, + 98, 130, 83, 146, 51, 180, 18, 240, 18, 243, 130, 82, + 131, 66, 146, 67, 146, 50, 197, 0, 6, 31, 16, 0, + 22, 83, 65, 117, 34, 98, 52, 113, 97, 226, 210, 210, + 210, 209, 225, 226, 97, 98, 113, 100, 50, 97, 53, 97, + 83, 0, 18, 112, 8, 18, 0, 36, 15, 0, 40, 112, + 10, 34, 0, 68, 15, 15, 1, 0, 76, 112, 18, 13, + 240, 226, 50, 98, 50, 82, 50, 82, 50, 97, 65, 97, + 65, 0, 44, 96, 14, 14, 240, 240, 243, 65, 66, 33, + 34, 65, 82, 0, 51, 64, +}; + +//***************************************************************************** +// +// The font definition for the 34 point Cm italic font. +// +//***************************************************************************** +const tFont g_sFontCm34i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 30, + + // + // The height of the font. + // + 35, + + // + // The baseline of the font. + // + 26, + + // + // The offset to each character in the font. + // + { + 0, 5, 35, 61, 155, 213, 301, 378, + 394, 433, 471, 504, 550, 566, 575, 585, + 659, 710, 741, 794, 847, 892, 938, 987, + 1042, 1090, 1139, 1154, 1175, 1205, 1218, 1261, + 1303, 1388, 1451, 1503, 1559, 1612, 1675, 1730, + 1787, 1841, 1872, 1924, 1999, 2053, 2147, 2218, + 2273, 2324, 2406, 2461, 2516, 2577, 2631, 2693, + 2787, 2856, 2914, 2968, 3006, 3033, 3071, 3085, + 3094, 3110, 3152, 3197, 3226, 3283, 3313, 3377, + 3423, 3480, 3514, 3556, 3606, 3640, 3703, 3749, + 3784, 3838, 3883, 3912, 3941, 3975, 4020, 4060, + 4116, 4157, 4209, 4240, 4248, 4258, 4276, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm34iData +}; diff --git a/grlib/fonts/fontcm36.c b/grlib/fonts/fontcm36.c new file mode 100644 index 0000000..76f5ddc --- /dev/null +++ b/grlib/fonts/fontcm36.c @@ -0,0 +1,450 @@ +//***************************************************************************** +// +// fontcm36.c - Font definition for the 36pt Cm font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 36 point +// Bold: no +// Italic: no +// Memory usage: 4328 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 36 point Cm font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm36Data[4127] = +{ + 5, 14, 0, 61, 32, 28, 6, 99, 51, 51, 51, 51, + 51, 51, 51, 51, 65, 81, 81, 81, 81, 81, 81, 81, + 81, 81, 240, 115, 51, 51, 0, 7, 16, 24, 14, 240, + 226, 82, 68, 52, 67, 67, 97, 97, 97, 97, 97, 97, + 81, 97, 97, 97, 81, 97, 0, 42, 80, 95, 27, 0, + 8, 18, 97, 240, 49, 113, 240, 49, 113, 240, 49, 98, + 240, 34, 97, 240, 49, 113, 240, 49, 113, 240, 49, 98, + 240, 34, 97, 240, 49, 113, 240, 49, 113, 240, 49, 98, + 159, 9, 177, 113, 240, 49, 98, 240, 49, 97, 240, 50, + 97, 240, 49, 113, 191, 9, 146, 97, 240, 49, 113, 240, + 49, 113, 240, 49, 98, 240, 34, 97, 240, 49, 113, 240, + 49, 113, 240, 49, 98, 240, 34, 97, 240, 49, 113, 240, + 49, 113, 240, 49, 98, 0, 8, 64, 67, 16, 97, 214, + 130, 33, 34, 113, 49, 65, 82, 49, 66, 50, 65, 81, + 50, 65, 51, 50, 65, 51, 50, 65, 51, 51, 49, 162, + 49, 164, 17, 182, 183, 197, 177, 35, 161, 51, 145, 51, + 51, 49, 66, 51, 49, 66, 51, 49, 66, 49, 81, 66, + 65, 65, 50, 81, 65, 50, 98, 33, 34, 134, 209, 241, + 0, 15, 16, 88, 27, 51, 210, 130, 34, 163, 114, 67, + 100, 129, 81, 38, 18, 130, 97, 130, 130, 97, 114, 146, + 97, 98, 162, 97, 98, 162, 97, 82, 178, 97, 82, 194, + 65, 82, 210, 65, 66, 242, 33, 82, 240, 34, 82, 240, + 161, 85, 242, 65, 81, 210, 66, 81, 209, 81, 113, 178, + 66, 113, 162, 82, 113, 162, 82, 113, 146, 98, 113, 145, + 114, 113, 130, 114, 113, 114, 146, 81, 129, 162, 81, 114, + 178, 49, 129, 212, 0, 24, 48, 76, 26, 240, 240, 51, + 240, 98, 49, 240, 82, 65, 240, 50, 81, 240, 50, 81, + 240, 50, 81, 240, 50, 65, 240, 66, 65, 240, 66, 49, + 240, 98, 17, 240, 115, 150, 130, 179, 178, 177, 164, 161, + 161, 50, 129, 161, 67, 113, 161, 82, 97, 161, 114, 81, + 146, 115, 49, 162, 131, 17, 178, 148, 113, 51, 146, 129, + 66, 132, 98, 82, 82, 51, 50, 118, 116, 0, 30, 14, + 7, 242, 68, 67, 97, 97, 97, 81, 97, 81, 0, 21, + 80, 38, 11, 113, 145, 145, 145, 161, 145, 146, 146, 145, + 146, 146, 146, 130, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 162, 146, 146, 146, 162, 146, 161, 162, 162, 161, + 177, 177, 48, 38, 11, 1, 177, 177, 177, 162, 161, 162, + 146, 162, 146, 146, 162, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 145, 146, 146, 145, 161, 146, 145, 146, + 145, 145, 145, 145, 160, 32, 15, 82, 210, 210, 209, 81, + 50, 49, 66, 82, 17, 34, 146, 17, 193, 210, 17, 146, + 17, 34, 82, 49, 66, 49, 65, 226, 210, 210, 0, 38, + 64, 49, 24, 0, 19, 33, 240, 129, 240, 129, 240, 129, + 240, 129, 240, 129, 240, 129, 240, 129, 240, 129, 240, 129, + 240, 129, 223, 6, 209, 240, 129, 240, 129, 240, 129, 240, + 129, 240, 129, 240, 129, 240, 129, 240, 129, 240, 129, 0, + 22, 80, 16, 7, 0, 20, 34, 68, 67, 97, 97, 97, + 81, 97, 81, 97, 240, 64, 9, 12, 0, 25, 73, 57, + 0, 24, 48, 10, 6, 0, 17, 35, 51, 51, 0, 7, + 16, 38, 16, 193, 226, 225, 241, 226, 225, 241, 226, 225, + 241, 226, 225, 241, 226, 225, 241, 225, 241, 241, 225, 241, + 226, 225, 241, 226, 225, 241, 226, 225, 241, 226, 225, 241, + 226, 225, 240, 51, 17, 0, 7, 5, 162, 66, 130, 98, + 98, 130, 82, 130, 81, 161, 66, 162, 50, 162, 50, 162, + 50, 162, 50, 162, 50, 162, 50, 162, 50, 162, 50, 162, + 50, 162, 50, 162, 65, 161, 82, 130, 82, 130, 98, 98, + 130, 66, 180, 0, 20, 16, 30, 13, 240, 240, 225, 163, + 115, 18, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, + 178, 178, 178, 178, 178, 178, 178, 178, 178, 122, 0, 15, + 40, 16, 0, 6, 69, 146, 67, 97, 130, 81, 130, 65, + 162, 51, 130, 51, 130, 51, 130, 226, 210, 226, 210, 225, + 225, 225, 225, 225, 225, 225, 129, 81, 145, 65, 161, 75, + 76, 0, 18, 64, 42, 17, 0, 6, 118, 161, 83, 97, + 130, 99, 99, 83, 99, 83, 99, 227, 226, 226, 226, 181, + 240, 34, 240, 18, 243, 243, 227, 51, 131, 51, 131, 51, + 131, 49, 162, 81, 131, 98, 83, 150, 0, 20, 48, 18, + 0, 8, 1, 240, 18, 240, 18, 243, 225, 18, 209, 34, + 209, 34, 193, 50, 177, 66, 177, 66, 161, 82, 161, 82, + 145, 98, 129, 114, 129, 114, 113, 130, 127, 194, 240, 18, + 240, 18, 240, 18, 240, 18, 216, 0, 20, 96, 42, 16, + 0, 6, 34, 98, 105, 119, 145, 241, 241, 241, 241, 241, + 36, 145, 17, 66, 114, 97, 113, 114, 241, 242, 226, 226, + 66, 130, 51, 130, 51, 130, 49, 146, 81, 129, 114, 66, + 165, 0, 18, 112, 49, 16, 0, 6, 101, 146, 81, 114, + 97, 98, 98, 97, 114, 82, 226, 225, 226, 52, 114, 33, + 66, 83, 114, 67, 114, 66, 146, 50, 146, 50, 146, 50, + 146, 50, 146, 65, 146, 66, 130, 66, 114, 97, 113, 130, + 65, 165, 0, 18, 112, 35, 17, 240, 240, 81, 240, 17, + 254, 62, 49, 177, 65, 177, 241, 241, 241, 240, 17, 241, + 242, 241, 242, 242, 226, 242, 242, 242, 227, 227, 227, 227, + 227, 0, 20, 48, 49, 17, 0, 7, 5, 162, 81, 130, + 113, 113, 145, 97, 145, 82, 145, 98, 129, 99, 97, 131, + 65, 164, 17, 196, 209, 20, 146, 52, 113, 115, 82, 130, + 66, 162, 50, 162, 50, 177, 50, 177, 66, 145, 83, 114, + 99, 82, 150, 0, 20, 50, 16, 0, 6, 69, 162, 65, + 129, 113, 98, 114, 81, 145, 66, 145, 66, 146, 50, 146, + 50, 146, 50, 146, 50, 146, 66, 115, 81, 97, 18, 82, + 66, 18, 116, 50, 226, 225, 226, 82, 113, 98, 98, 97, + 113, 113, 82, 149, 0, 19, 16, 15, 6, 0, 8, 35, + 51, 51, 0, 7, 19, 51, 51, 0, 7, 16, 21, 6, + 0, 8, 35, 51, 51, 0, 7, 18, 67, 51, 81, 81, + 81, 81, 65, 81, 65, 240, 32, 28, 6, 0, 6, 3, + 51, 51, 240, 113, 81, 81, 81, 81, 81, 81, 81, 81, + 82, 51, 51, 51, 51, 51, 51, 51, 51, 51, 240, 13, + 25, 0, 43, 111, 7, 0, 16, 15, 7, 0, 44, 16, + 36, 15, 0, 15, 67, 195, 195, 0, 7, 33, 225, 225, + 225, 225, 225, 209, 225, 209, 225, 209, 209, 210, 210, 115, + 50, 115, 50, 115, 50, 129, 82, 97, 134, 240, 240, 96, + 36, 14, 240, 37, 129, 82, 81, 113, 65, 130, 51, 98, + 51, 98, 51, 98, 194, 178, 178, 193, 194, 193, 194, 193, + 209, 209, 209, 209, 0, 6, 114, 179, 179, 0, 16, 80, + 87, 26, 240, 240, 86, 240, 35, 83, 225, 177, 193, 209, + 161, 241, 129, 100, 113, 113, 82, 50, 82, 81, 82, 97, + 81, 81, 66, 115, 49, 65, 82, 130, 65, 49, 66, 146, + 65, 49, 66, 146, 65, 49, 66, 146, 65, 49, 66, 146, + 65, 49, 66, 146, 65, 49, 66, 146, 65, 50, 66, 130, + 65, 65, 66, 115, 65, 65, 82, 99, 49, 97, 82, 50, + 18, 49, 98, 84, 68, 130, 240, 162, 242, 147, 132, 217, + 0, 30, 48, 66, 26, 240, 240, 113, 240, 146, 240, 147, + 240, 131, 240, 113, 18, 240, 113, 19, 240, 81, 35, 240, + 81, 50, 240, 81, 51, 240, 49, 67, 240, 49, 82, 240, + 49, 83, 240, 17, 99, 240, 17, 114, 240, 17, 115, 225, + 146, 236, 225, 147, 193, 178, 193, 179, 161, 195, 161, 210, + 161, 211, 130, 211, 102, 152, 0, 29, 80, 52, 23, 0, + 5, 110, 194, 131, 162, 163, 130, 163, 130, 179, 114, 179, + 114, 179, 114, 179, 114, 163, 130, 147, 146, 130, 188, 178, + 147, 146, 163, 130, 179, 114, 195, 98, 195, 98, 195, 98, + 195, 98, 195, 98, 179, 114, 163, 130, 147, 111, 0, 26, + 112, 57, 23, 0, 6, 102, 81, 147, 82, 49, 130, 145, + 18, 99, 179, 98, 195, 82, 226, 67, 226, 67, 241, 66, + 240, 17, 51, 240, 83, 240, 83, 240, 83, 240, 83, 240, + 83, 240, 98, 240, 17, 67, 241, 67, 241, 83, 209, 99, + 209, 115, 177, 147, 145, 195, 82, 246, 0, 27, 53, 25, + 0, 6, 46, 226, 132, 178, 163, 162, 179, 146, 195, 130, + 210, 130, 211, 114, 211, 114, 227, 98, 227, 98, 227, 98, + 227, 98, 227, 98, 227, 98, 227, 98, 227, 98, 226, 114, + 211, 114, 210, 130, 195, 130, 179, 146, 163, 162, 132, 143, + 0, 29, 48, 56, 23, 0, 5, 111, 3, 130, 163, 130, + 193, 130, 194, 114, 209, 114, 209, 114, 209, 114, 113, 81, + 114, 113, 210, 113, 210, 98, 218, 210, 98, 210, 113, 210, + 113, 210, 113, 97, 98, 225, 98, 225, 98, 209, 114, 209, + 114, 209, 114, 194, 114, 164, 79, 4, 0, 26, 48, 53, + 22, 240, 240, 239, 3, 114, 163, 114, 178, 114, 193, 114, + 193, 114, 193, 114, 209, 98, 209, 98, 113, 194, 113, 194, + 113, 194, 98, 202, 194, 98, 194, 113, 194, 113, 194, 113, + 194, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, + 41, 0, 26, 48, 60, 25, 0, 7, 53, 81, 179, 82, + 49, 162, 145, 33, 146, 179, 130, 210, 115, 210, 99, 241, + 99, 241, 98, 240, 17, 83, 240, 17, 83, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 184, 67, 226, 99, 226, + 115, 210, 115, 210, 131, 194, 147, 163, 179, 113, 33, 216, + 49, 0, 28, 96, 54, 23, 0, 5, 104, 72, 98, 162, + 146, 162, 146, 162, 146, 162, 146, 162, 146, 162, 146, 162, + 146, 162, 146, 162, 146, 162, 158, 146, 162, 146, 162, 146, + 162, 146, 162, 146, 162, 146, 162, 146, 162, 146, 162, 146, + 162, 146, 162, 146, 162, 104, 72, 0, 26, 32, 30, 11, + 240, 120, 98, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 104, 0, 12, 96, 35, 15, 240, 240, 87, 178, 210, 210, + 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 210, 83, 82, 83, 82, 83, 66, 113, 66, 149, + 0, 17, 112, 61, 25, 0, 6, 40, 134, 98, 195, 130, + 193, 162, 177, 178, 161, 194, 145, 210, 129, 226, 113, 242, + 97, 240, 18, 81, 240, 34, 67, 240, 18, 49, 19, 242, + 33, 50, 242, 17, 67, 227, 99, 210, 130, 210, 131, 194, + 147, 178, 162, 178, 163, 162, 178, 162, 179, 146, 195, 88, + 119, 0, 28, 64, 53, 20, 240, 240, 169, 226, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 177, 98, 177, 98, 177, 98, 177, 98, + 162, 98, 147, 98, 131, 79, 1, 0, 23, 93, 29, 0, + 7, 38, 245, 99, 227, 145, 18, 193, 18, 145, 18, 193, + 18, 145, 18, 193, 18, 145, 34, 161, 34, 145, 34, 161, + 34, 145, 34, 161, 34, 145, 50, 129, 50, 145, 50, 129, + 50, 145, 50, 129, 50, 145, 66, 97, 66, 145, 66, 97, + 66, 145, 67, 65, 82, 145, 82, 65, 82, 145, 82, 65, + 82, 145, 98, 33, 98, 145, 98, 33, 98, 145, 98, 33, + 98, 145, 115, 114, 145, 115, 114, 145, 115, 114, 131, 113, + 130, 103, 81, 88, 0, 33, 72, 25, 0, 6, 38, 151, + 100, 163, 129, 18, 177, 145, 19, 161, 145, 35, 145, 145, + 35, 145, 145, 51, 129, 145, 66, 129, 145, 67, 113, 145, + 83, 97, 145, 98, 97, 145, 99, 81, 145, 115, 65, 145, + 130, 65, 145, 131, 49, 145, 146, 49, 145, 147, 33, 145, + 163, 17, 145, 178, 17, 145, 180, 145, 195, 145, 210, 131, + 194, 103, 177, 0, 28, 112, 63, 25, 0, 7, 38, 240, + 35, 67, 211, 131, 163, 163, 131, 195, 114, 226, 99, 227, + 83, 227, 82, 240, 19, 51, 240, 19, 51, 240, 19, 51, + 240, 19, 51, 240, 19, 51, 240, 19, 51, 240, 19, 51, + 240, 19, 67, 227, 83, 227, 99, 210, 115, 195, 131, 163, + 163, 131, 211, 67, 240, 38, 0, 29, 64, 52, 22, 240, + 240, 238, 178, 131, 146, 162, 130, 163, 114, 179, 98, 179, + 98, 179, 98, 179, 98, 179, 98, 163, 114, 162, 130, 131, + 155, 178, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 82, 240, 82, 240, 82, 240, 40, 0, 26, + 64, 86, 25, 0, 7, 38, 240, 35, 67, 211, 131, 163, + 163, 146, 195, 114, 211, 99, 227, 83, 227, 82, 240, 18, + 67, 240, 19, 51, 240, 19, 51, 240, 19, 51, 240, 19, + 51, 240, 19, 51, 240, 19, 51, 240, 19, 67, 242, 83, + 227, 98, 226, 115, 68, 67, 131, 34, 49, 50, 163, 17, + 65, 33, 227, 82, 240, 39, 240, 145, 97, 240, 34, 81, + 240, 49, 81, 240, 50, 50, 240, 54, 240, 70, 240, 84, + 0, 6, 112, 56, 25, 0, 6, 45, 242, 115, 210, 146, + 194, 147, 178, 163, 162, 163, 162, 163, 162, 163, 162, 163, + 162, 147, 178, 146, 194, 115, 217, 240, 18, 114, 226, 130, + 210, 146, 194, 146, 194, 146, 194, 147, 178, 147, 178, 147, + 178, 147, 65, 98, 163, 34, 56, 133, 0, 28, 80, 52, + 18, 240, 240, 165, 65, 99, 66, 33, 82, 131, 82, 146, + 66, 162, 66, 177, 66, 177, 67, 161, 67, 240, 20, 246, + 216, 215, 244, 240, 18, 240, 19, 49, 194, 49, 194, 49, + 194, 50, 178, 50, 162, 67, 146, 65, 34, 83, 81, 70, + 0, 21, 16, 61, 25, 0, 6, 63, 5, 82, 114, 99, + 81, 130, 129, 81, 130, 129, 65, 146, 129, 65, 146, 129, + 65, 146, 145, 49, 146, 145, 210, 240, 130, 240, 130, 240, + 130, 240, 130, 240, 130, 240, 130, 240, 130, 240, 130, 240, + 130, 240, 130, 240, 130, 240, 130, 240, 130, 240, 130, 240, + 74, 0, 29, 32, 55, 24, 0, 6, 8, 103, 98, 179, + 130, 193, 146, 193, 146, 193, 146, 193, 146, 193, 146, 193, + 146, 193, 146, 193, 146, 193, 146, 193, 146, 193, 146, 193, + 146, 193, 146, 193, 146, 193, 146, 193, 146, 193, 162, 161, + 178, 146, 194, 129, 226, 82, 240, 37, 0, 28, 48, 64, + 27, 0, 6, 103, 182, 83, 242, 131, 225, 147, 225, 162, + 209, 179, 193, 194, 177, 211, 161, 211, 161, 226, 145, 243, + 129, 240, 18, 113, 240, 34, 113, 240, 35, 97, 240, 50, + 81, 240, 67, 65, 240, 82, 49, 240, 98, 49, 240, 99, + 33, 240, 114, 17, 240, 132, 240, 146, 240, 162, 240, 162, + 0, 32, 16, 98, 36, 0, 9, 7, 103, 118, 83, 163, + 178, 130, 178, 177, 146, 178, 177, 147, 163, 161, 162, 145, + 18, 145, 178, 145, 18, 145, 179, 129, 19, 129, 194, 113, + 50, 113, 210, 113, 50, 113, 211, 97, 51, 97, 226, 81, + 82, 81, 242, 81, 82, 81, 243, 65, 83, 65, 240, 18, + 49, 114, 49, 240, 34, 49, 114, 49, 240, 35, 33, 115, + 33, 240, 50, 17, 146, 17, 240, 66, 17, 146, 17, 240, + 68, 148, 240, 82, 178, 240, 98, 178, 240, 98, 178, 240, + 240, 65, 0, 42, 16, 65, 27, 0, 6, 104, 135, 116, + 163, 179, 162, 210, 161, 227, 129, 240, 19, 97, 240, 51, + 81, 240, 66, 65, 240, 83, 33, 240, 115, 17, 240, 131, + 240, 147, 240, 148, 240, 129, 19, 240, 97, 50, 240, 81, + 67, 240, 49, 99, 240, 33, 115, 241, 131, 225, 163, 194, + 179, 177, 210, 162, 211, 102, 168, 0, 30, 96, 61, 27, + 0, 6, 104, 166, 99, 211, 131, 225, 163, 193, 194, 177, + 211, 161, 227, 129, 240, 18, 113, 240, 35, 97, 240, 50, + 81, 240, 82, 49, 240, 99, 33, 240, 114, 17, 240, 132, + 240, 146, 240, 162, 240, 162, 240, 162, 240, 162, 240, 162, + 240, 162, 240, 162, 240, 162, 240, 120, 0, 31, 96, 56, + 20, 240, 240, 175, 2, 52, 163, 51, 163, 66, 178, 81, + 179, 81, 163, 97, 162, 113, 147, 240, 19, 240, 34, 240, + 35, 240, 19, 240, 34, 240, 35, 240, 34, 240, 34, 145, + 115, 145, 114, 161, 98, 177, 83, 177, 82, 178, 66, 179, + 51, 164, 63, 2, 0, 22, 112, 38, 7, 4, 49, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 100, 48, 25, 14, 240, + 240, 225, 97, 81, 97, 97, 97, 81, 97, 97, 97, 97, + 97, 100, 51, 68, 52, 66, 82, 0, 40, 96, 38, 7, + 4, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 52, 48, + 15, 12, 240, 209, 161, 17, 129, 49, 97, 81, 65, 113, + 0, 42, 48, 9, 6, 240, 51, 51, 51, 0, 22, 16, + 15, 7, 240, 129, 81, 97, 81, 97, 97, 99, 68, 66, + 0, 20, 80, 40, 18, 0, 25, 22, 177, 83, 130, 99, + 115, 98, 114, 114, 240, 18, 198, 147, 66, 115, 98, 114, + 114, 98, 130, 33, 50, 130, 33, 50, 115, 33, 66, 81, + 18, 33, 86, 51, 0, 20, 96, 57, 19, 240, 240, 132, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 53, 146, 18, 66, 131, 114, + 114, 146, 98, 161, 98, 162, 82, 162, 82, 162, 82, 162, + 82, 162, 82, 161, 98, 146, 99, 114, 113, 33, 82, 129, + 53, 0, 22, 48, 29, 16, 0, 22, 85, 146, 82, 98, + 129, 66, 115, 65, 131, 50, 226, 226, 226, 226, 242, 226, + 145, 82, 113, 114, 81, 165, 0, 18, 96, 56, 19, 0, + 5, 117, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 165, 34, 130, 81, 18, 114, + 115, 98, 146, 97, 162, 82, 162, 82, 162, 82, 162, 82, + 162, 82, 162, 97, 162, 98, 146, 114, 115, 130, 66, 20, + 117, 52, 0, 21, 96, 30, 16, 0, 22, 69, 161, 82, + 113, 114, 81, 145, 81, 146, 50, 146, 61, 50, 226, 226, + 241, 242, 145, 82, 113, 114, 81, 165, 0, 18, 96, 34, + 13, 240, 67, 146, 33, 114, 34, 98, 50, 98, 178, 178, + 178, 178, 178, 137, 114, 178, 178, 178, 178, 178, 178, 178, + 178, 178, 178, 178, 178, 151, 0, 15, 32, 49, 18, 0, + 25, 36, 37, 82, 66, 50, 81, 97, 146, 98, 130, 98, + 130, 98, 130, 98, 145, 82, 162, 66, 145, 36, 177, 240, + 33, 240, 34, 240, 41, 171, 82, 131, 66, 178, 50, 178, + 50, 178, 66, 146, 98, 99, 151, 240, 240, 208, 56, 18, + 240, 240, 100, 240, 18, 240, 18, 240, 18, 240, 18, 240, + 18, 240, 18, 240, 18, 240, 18, 240, 18, 52, 146, 17, + 66, 131, 98, 115, 98, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 86, 54, 0, 20, 80, 26, 9, 240, 211, 99, 99, + 0, 6, 36, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 86, 0, 10, 64, 36, 11, 240, 240, + 131, 131, 131, 0, 7, 100, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 51, + 50, 51, 49, 66, 50, 85, 240, 192, 55, 18, 240, 240, + 100, 240, 18, 240, 18, 240, 18, 240, 18, 240, 18, 240, + 18, 240, 18, 240, 18, 240, 18, 86, 82, 98, 130, 97, + 146, 81, 162, 65, 178, 49, 194, 19, 195, 34, 178, 66, + 162, 67, 146, 82, 146, 98, 130, 99, 114, 115, 70, 69, + 0, 20, 80, 30, 9, 240, 52, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 86, 0, 10, 64, 54, 27, 0, + 37, 35, 37, 84, 116, 17, 66, 33, 66, 131, 99, 98, + 115, 99, 98, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 86, 54, 54, + 0, 30, 96, 38, 18, 0, 24, 115, 37, 116, 17, 66, + 131, 98, 115, 98, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 86, 54, 0, 20, 80, 35, 17, 0, 24, 4, 178, 66, + 129, 129, 98, 130, 81, 161, 66, 162, 50, 162, 50, 162, + 50, 162, 50, 162, 65, 161, 82, 130, 97, 129, 130, 66, + 165, 0, 20, 16, 51, 19, 0, 26, 20, 53, 116, 18, + 66, 131, 114, 114, 146, 98, 146, 98, 162, 82, 162, 82, + 162, 82, 162, 82, 162, 82, 146, 98, 146, 99, 114, 114, + 17, 82, 130, 37, 162, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 247, 0, 6, 32, 53, 19, 0, 26, 100, + 65, 130, 66, 33, 114, 113, 17, 98, 131, 98, 146, 82, + 162, 82, 162, 82, 162, 82, 162, 82, 162, 98, 146, 98, + 146, 114, 115, 130, 66, 18, 149, 50, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 231, 240, 240, 176, + 26, 13, 0, 18, 3, 35, 68, 17, 34, 83, 50, 83, + 162, 178, 178, 178, 178, 178, 178, 178, 178, 178, 151, 0, + 15, 48, 33, 14, 0, 19, 84, 33, 82, 67, 66, 98, + 66, 113, 66, 113, 68, 183, 151, 180, 49, 115, 49, 130, + 50, 114, 50, 114, 51, 82, 65, 37, 0, 16, 64, 35, + 14, 0, 7, 65, 209, 209, 209, 194, 194, 179, 154, 114, + 194, 194, 194, 194, 194, 194, 194, 81, 98, 81, 98, 81, + 98, 81, 98, 81, 114, 49, 148, 0, 16, 48, 38, 18, + 0, 24, 100, 84, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 99, 114, 99, 130, 65, 20, 117, 36, 0, 20, 80, + 37, 19, 0, 26, 22, 85, 82, 130, 130, 113, 146, 113, + 146, 113, 162, 81, 178, 81, 194, 49, 210, 49, 210, 49, + 226, 17, 242, 17, 240, 18, 240, 34, 240, 33, 0, 22, + 96, 55, 25, 0, 34, 54, 38, 68, 82, 98, 114, 98, + 113, 113, 114, 114, 97, 130, 83, 81, 146, 81, 17, 81, + 146, 65, 34, 65, 162, 49, 34, 49, 178, 33, 65, 49, + 194, 17, 66, 33, 194, 17, 66, 17, 211, 97, 17, 226, + 98, 242, 98, 241, 129, 0, 29, 32, 38, 20, 0, 27, + 70, 85, 114, 114, 147, 97, 178, 81, 210, 49, 242, 17, + 240, 34, 240, 51, 240, 35, 240, 17, 34, 225, 66, 193, + 98, 177, 99, 131, 115, 85, 102, 0, 22, 112, 50, 19, + 0, 26, 22, 85, 82, 130, 129, 129, 146, 113, 146, 97, + 178, 81, 178, 81, 193, 65, 210, 49, 210, 33, 242, 17, + 242, 17, 240, 18, 240, 34, 240, 33, 240, 49, 240, 49, + 240, 33, 194, 65, 194, 49, 209, 50, 227, 0, 6, 80, + 32, 15, 0, 20, 92, 50, 114, 65, 130, 65, 114, 81, + 98, 97, 82, 210, 194, 194, 194, 97, 97, 113, 82, 113, + 66, 129, 65, 115, 60, 0, 17, 32, 9, 20, 0, 40, + 15, 2, 0, 45, 48, 10, 36, 0, 72, 15, 15, 3, + 0, 81, 48, 18, 13, 240, 210, 66, 82, 66, 66, 66, + 81, 81, 82, 66, 81, 81, 0, 44, 80, 14, 14, 240, + 240, 227, 81, 65, 35, 33, 65, 83, 0, 51, 48, +}; + +//***************************************************************************** +// +// The font definition for the 36 point Cm font. +// +//***************************************************************************** +const tFont g_sFontCm36 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 32, + + // + // The height of the font. + // + 35, + + // + // The baseline of the font. + // + 26, + + // + // The offset to each character in the font. + // + { + 0, 5, 33, 57, 152, 219, 307, 383, + 397, 435, 473, 505, 554, 570, 579, 589, + 627, 678, 708, 748, 790, 838, 880, 929, + 964, 1013, 1063, 1078, 1099, 1127, 1140, 1176, + 1212, 1299, 1365, 1417, 1474, 1527, 1583, 1636, + 1696, 1750, 1780, 1815, 1876, 1929, 2022, 2094, + 2157, 2209, 2295, 2351, 2403, 2464, 2519, 2583, + 2681, 2746, 2807, 2863, 2901, 2926, 2964, 2979, + 2988, 3003, 3043, 3100, 3129, 3185, 3215, 3249, + 3298, 3354, 3380, 3416, 3471, 3501, 3555, 3593, + 3628, 3679, 3732, 3758, 3791, 3826, 3864, 3901, + 3956, 3994, 4044, 4076, 4085, 4095, 4113, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm36Data +}; diff --git a/grlib/fonts/fontcm36b.c b/grlib/fonts/fontcm36b.c new file mode 100644 index 0000000..db454de --- /dev/null +++ b/grlib/fonts/fontcm36b.c @@ -0,0 +1,457 @@ +//***************************************************************************** +// +// fontcm36b.c - Font definition for the 36pt Cm bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 36 point +// Bold: yes +// Italic: no +// Memory usage: 4408 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 36 point Cm bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm36bData[4207] = +{ + 5, 14, 0, 64, 96, 31, 9, 240, 68, 70, 54, 54, + 54, 54, 69, 68, 84, 84, 84, 84, 84, 99, 98, 114, + 114, 114, 240, 148, 70, 54, 54, 54, 68, 0, 10, 80, + 34, 18, 0, 6, 115, 99, 85, 69, 70, 54, 54, 54, + 54, 54, 67, 17, 67, 17, 129, 129, 114, 114, 113, 129, + 114, 114, 113, 129, 114, 114, 98, 114, 0, 48, 96, 29, + 0, 12, 50, 98, 240, 66, 98, 240, 51, 83, 240, 51, + 82, 240, 66, 98, 240, 66, 98, 240, 51, 83, 240, 50, + 98, 240, 66, 98, 240, 66, 98, 240, 51, 83, 159, 11, + 63, 11, 194, 83, 240, 51, 82, 240, 66, 98, 240, 66, + 98, 240, 66, 83, 240, 51, 82, 207, 11, 63, 11, 147, + 83, 240, 50, 98, 240, 66, 98, 240, 66, 98, 240, 51, + 83, 240, 50, 98, 240, 66, 98, 240, 66, 98, 240, 51, + 83, 240, 50, 98, 240, 66, 98, 0, 9, 16, 65, 17, + 240, 130, 242, 214, 154, 100, 18, 35, 83, 34, 50, 67, + 50, 36, 51, 50, 36, 51, 50, 36, 52, 34, 36, 52, + 34, 35, 72, 169, 154, 138, 152, 162, 21, 67, 34, 36, + 52, 34, 51, 53, 18, 51, 52, 34, 51, 52, 34, 51, + 50, 66, 50, 82, 50, 35, 83, 34, 19, 121, 166, 210, + 242, 0, 16, 90, 29, 67, 226, 135, 179, 116, 35, 148, + 115, 53, 85, 131, 77, 132, 66, 37, 19, 132, 66, 115, + 148, 66, 114, 164, 66, 99, 164, 66, 83, 180, 66, 82, + 196, 66, 67, 211, 50, 67, 243, 34, 67, 240, 21, 67, + 240, 163, 240, 179, 85, 243, 83, 34, 226, 83, 50, 211, + 68, 66, 179, 84, 66, 178, 100, 66, 163, 100, 66, 147, + 116, 66, 146, 132, 66, 131, 132, 66, 115, 163, 51, 114, + 180, 34, 115, 198, 145, 228, 0, 26, 16, 75, 28, 0, + 8, 4, 240, 119, 240, 99, 35, 240, 67, 66, 240, 52, + 66, 240, 52, 66, 240, 52, 66, 240, 52, 50, 240, 68, + 50, 240, 69, 18, 240, 87, 119, 133, 135, 132, 178, 181, + 162, 182, 130, 183, 114, 179, 21, 98, 163, 38, 66, 164, + 54, 34, 180, 70, 18, 165, 87, 181, 101, 129, 69, 101, + 98, 69, 67, 21, 51, 90, 57, 134, 117, 0, 32, 32, + 20, 9, 240, 211, 85, 70, 54, 54, 67, 17, 129, 114, + 113, 114, 113, 114, 98, 0, 24, 48, 40, 12, 240, 81, + 146, 147, 146, 147, 131, 147, 131, 147, 132, 132, 132, 131, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 148, + 132, 132, 147, 147, 148, 147, 163, 147, 163, 163, 162, 48, + 39, 12, 194, 178, 163, 163, 147, 163, 147, 163, 147, 148, + 132, 147, 148, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 131, 147, 132, 132, 131, 147, 131, 147, 131, 146, 147, + 146, 145, 176, 35, 16, 240, 99, 211, 211, 145, 51, 49, + 67, 35, 35, 52, 33, 36, 68, 17, 20, 119, 165, 153, + 85, 17, 21, 52, 19, 20, 65, 51, 49, 147, 211, 211, + 0, 41, 52, 27, 0, 25, 2, 240, 162, 240, 162, 240, + 162, 240, 162, 240, 162, 240, 162, 240, 162, 240, 162, 240, + 162, 240, 162, 239, 9, 63, 9, 226, 240, 162, 240, 162, + 240, 162, 240, 162, 240, 162, 240, 162, 240, 162, 240, 162, + 240, 162, 240, 162, 0, 22, 20, 9, 0, 24, 115, 85, + 70, 54, 54, 67, 17, 129, 114, 113, 114, 113, 114, 98, + 240, 144, 11, 13, 0, 29, 42, 58, 58, 58, 0, 24, + 96, 13, 9, 0, 24, 116, 70, 54, 54, 54, 68, 0, + 10, 80, 40, 17, 240, 226, 242, 227, 226, 242, 227, 226, + 242, 226, 242, 227, 226, 242, 227, 226, 242, 227, 226, 242, + 227, 226, 242, 227, 226, 242, 227, 226, 242, 226, 242, 227, + 226, 242, 227, 226, 242, 240, 53, 19, 0, 10, 22, 179, + 67, 132, 83, 115, 99, 100, 100, 84, 100, 84, 101, 53, + 101, 53, 101, 53, 101, 53, 101, 53, 101, 53, 101, 53, + 101, 53, 101, 53, 101, 53, 101, 53, 101, 68, 100, 84, + 100, 99, 99, 116, 83, 132, 51, 182, 0, 22, 48, 32, + 16, 0, 8, 114, 196, 121, 116, 20, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 140, 76, 0, 18, 48, 41, 17, 0, 9, 5, + 169, 115, 53, 98, 85, 69, 68, 69, 69, 53, 69, 53, + 69, 67, 85, 197, 196, 196, 212, 195, 211, 226, 226, 82, + 114, 98, 98, 114, 91, 107, 92, 77, 77, 0, 19, 80, + 44, 18, 0, 9, 70, 178, 52, 130, 84, 101, 53, 85, + 53, 85, 53, 85, 53, 99, 68, 213, 211, 197, 214, 245, + 229, 213, 214, 68, 70, 54, 54, 54, 54, 54, 54, 53, + 69, 84, 53, 122, 166, 0, 21, 32, 45, 19, 0, 10, + 114, 240, 19, 240, 19, 244, 229, 229, 209, 20, 194, 20, + 178, 36, 177, 52, 162, 52, 146, 68, 145, 84, 130, 84, + 114, 100, 113, 116, 111, 1, 63, 1, 196, 244, 244, 244, + 202, 154, 0, 21, 96, 42, 17, 0, 8, 81, 146, 83, + 99, 91, 106, 121, 135, 162, 242, 242, 242, 37, 138, 115, + 68, 98, 100, 212, 213, 197, 67, 85, 52, 85, 53, 69, + 52, 85, 52, 69, 82, 84, 106, 150, 0, 20, 16, 49, + 17, 0, 9, 37, 163, 50, 131, 67, 100, 52, 100, 52, + 84, 68, 84, 82, 100, 197, 20, 124, 86, 37, 70, 52, + 69, 69, 53, 69, 53, 69, 53, 69, 53, 69, 53, 69, + 68, 69, 68, 68, 99, 68, 100, 36, 136, 181, 0, 20, + 36, 18, 0, 9, 30, 78, 77, 92, 108, 98, 114, 113, + 114, 114, 114, 242, 242, 240, 18, 243, 242, 240, 18, 243, + 243, 243, 228, 228, 228, 228, 228, 228, 242, 0, 21, 80, + 47, 17, 0, 9, 6, 162, 67, 114, 98, 99, 99, 83, + 99, 83, 99, 84, 83, 86, 50, 103, 19, 121, 152, 168, + 123, 83, 55, 67, 70, 51, 116, 51, 116, 51, 131, 51, + 131, 51, 131, 67, 99, 84, 67, 121, 166, 0, 20, 49, + 18, 0, 9, 85, 179, 51, 131, 83, 100, 84, 69, 84, + 69, 84, 69, 85, 53, 85, 53, 85, 53, 85, 53, 85, + 68, 85, 68, 70, 84, 54, 108, 117, 21, 212, 228, 99, + 84, 85, 67, 100, 68, 99, 68, 137, 166, 0, 21, 48, + 21, 9, 0, 13, 84, 70, 54, 54, 54, 68, 240, 240, + 180, 70, 54, 54, 54, 68, 0, 10, 80, 27, 9, 0, + 13, 84, 70, 54, 54, 54, 68, 240, 240, 179, 85, 70, + 54, 54, 69, 129, 114, 113, 114, 113, 114, 98, 240, 144, + 30, 9, 0, 11, 52, 70, 54, 54, 54, 68, 240, 146, + 114, 114, 114, 114, 100, 84, 84, 84, 84, 84, 69, 70, + 54, 54, 54, 54, 68, 208, 17, 27, 0, 47, 47, 9, + 63, 9, 0, 20, 95, 9, 63, 9, 0, 44, 32, 38, + 15, 0, 19, 50, 196, 180, 165, 180, 194, 240, 240, 210, + 210, 210, 210, 210, 195, 195, 179, 180, 165, 149, 66, 69, + 52, 53, 52, 53, 52, 53, 66, 84, 66, 118, 240, 240, + 96, 39, 16, 240, 240, 102, 137, 98, 69, 67, 85, 52, + 69, 52, 69, 52, 69, 66, 85, 165, 165, 179, 211, 195, + 210, 226, 226, 226, 226, 240, 240, 243, 197, 182, 165, 181, + 195, 0, 19, 16, 86, 27, 0, 7, 104, 240, 44, 228, + 101, 164, 164, 146, 227, 114, 85, 98, 99, 71, 83, 82, + 68, 50, 82, 82, 52, 82, 66, 66, 67, 100, 50, 50, + 52, 100, 50, 50, 52, 100, 50, 50, 52, 100, 50, 50, + 52, 100, 50, 50, 52, 100, 50, 50, 52, 100, 50, 50, + 68, 84, 50, 66, 52, 84, 50, 66, 68, 53, 34, 82, + 87, 23, 98, 85, 53, 130, 240, 163, 240, 18, 115, 197, + 147, 117, 234, 0, 31, 64, 60, 28, 0, 11, 115, 240, + 163, 240, 164, 240, 133, 240, 133, 240, 134, 240, 103, 240, + 103, 240, 104, 240, 66, 37, 240, 66, 37, 240, 51, 38, + 240, 34, 69, 240, 34, 69, 240, 19, 70, 242, 101, 242, + 102, 223, 223, 210, 134, 178, 165, 178, 165, 178, 166, 104, + 107, 56, 107, 0, 31, 112, 55, 24, 0, 9, 15, 1, + 143, 3, 149, 101, 133, 116, 133, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 101, 133, 85, 157, 190, 165, 101, + 133, 117, 117, 117, 117, 133, 101, 133, 101, 133, 101, 133, + 101, 118, 101, 117, 117, 102, 79, 4, 95, 2, 0, 27, + 112, 56, 25, 0, 10, 71, 81, 171, 34, 134, 86, 117, + 148, 101, 179, 85, 195, 70, 210, 69, 226, 69, 226, 54, + 241, 54, 240, 70, 240, 70, 240, 70, 240, 70, 240, 70, + 240, 85, 241, 70, 225, 70, 210, 85, 210, 101, 178, 133, + 147, 150, 99, 188, 240, 23, 0, 29, 32, 57, 26, 0, + 9, 111, 1, 175, 3, 181, 101, 165, 132, 149, 148, 133, + 149, 117, 149, 117, 164, 117, 165, 101, 165, 101, 165, 101, + 165, 101, 165, 101, 165, 101, 165, 101, 165, 101, 165, 101, + 164, 117, 164, 117, 149, 117, 148, 133, 132, 149, 101, 127, + 3, 143, 1, 0, 30, 64, 59, 24, 0, 9, 15, 4, + 95, 4, 133, 116, 133, 131, 133, 146, 133, 162, 117, 162, + 117, 66, 66, 117, 66, 66, 117, 66, 213, 51, 219, 219, + 213, 51, 213, 66, 213, 66, 82, 101, 66, 82, 101, 178, + 101, 177, 117, 162, 117, 162, 117, 147, 117, 117, 79, 5, + 79, 4, 0, 27, 80, 53, 23, 0, 8, 95, 4, 79, + 4, 117, 101, 117, 131, 117, 146, 117, 146, 117, 161, 117, + 161, 117, 66, 66, 101, 66, 197, 66, 197, 51, 203, 203, + 197, 51, 197, 66, 197, 66, 197, 66, 197, 240, 53, 240, + 53, 240, 53, 240, 53, 252, 188, 0, 27, 32, 56, 27, + 0, 11, 39, 81, 188, 34, 166, 86, 149, 133, 133, 164, + 117, 195, 102, 195, 102, 210, 101, 226, 86, 226, 86, 240, + 102, 240, 102, 240, 102, 240, 102, 240, 102, 123, 69, 123, + 69, 181, 102, 165, 117, 165, 133, 149, 134, 133, 166, 86, + 187, 35, 231, 66, 0, 31, 57, 27, 0, 10, 27, 43, + 59, 43, 101, 133, 149, 133, 149, 133, 149, 133, 149, 133, + 149, 133, 149, 133, 149, 133, 149, 133, 159, 3, 159, 3, + 149, 133, 149, 133, 149, 133, 149, 133, 149, 133, 149, 133, + 149, 133, 149, 133, 149, 133, 149, 133, 107, 43, 59, 43, + 0, 30, 96, 32, 16, 0, 6, 13, 61, 117, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 125, 61, 0, 18, 48, 38, + 20, 0, 8, 28, 140, 197, 245, 245, 245, 245, 245, 245, + 245, 245, 245, 245, 245, 245, 245, 245, 245, 116, 69, 102, + 53, 102, 53, 102, 53, 101, 68, 131, 68, 183, 0, 23, + 96, 60, 28, 0, 10, 75, 88, 75, 88, 117, 178, 165, + 162, 181, 146, 197, 130, 213, 114, 229, 98, 245, 82, 240, + 21, 51, 240, 37, 36, 240, 37, 22, 240, 29, 247, 21, + 246, 38, 229, 70, 213, 85, 213, 86, 197, 101, 197, 117, + 181, 118, 165, 133, 165, 149, 107, 59, 59, 59, 0, 31, + 112, 55, 21, 0, 7, 124, 156, 197, 240, 21, 240, 21, + 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, + 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, 145, 101, + 130, 101, 130, 101, 130, 101, 130, 101, 115, 101, 100, 101, + 85, 63, 2, 79, 2, 0, 24, 16, 93, 33, 0, 12, + 56, 232, 57, 216, 102, 198, 151, 177, 20, 146, 20, 177, + 20, 146, 20, 162, 20, 146, 21, 145, 36, 146, 36, 130, + 36, 146, 36, 130, 36, 146, 52, 113, 52, 146, 52, 98, + 52, 146, 53, 81, 68, 146, 68, 81, 68, 146, 68, 66, + 68, 146, 69, 49, 84, 146, 84, 49, 84, 146, 84, 34, + 84, 146, 85, 17, 100, 146, 102, 100, 146, 102, 100, 146, + 116, 116, 146, 116, 116, 146, 115, 132, 104, 82, 90, 56, + 82, 90, 0, 37, 64, 69, 28, 0, 10, 72, 152, 57, + 136, 103, 162, 152, 146, 146, 21, 146, 146, 22, 130, 146, + 38, 114, 146, 53, 114, 146, 54, 98, 146, 70, 82, 146, + 86, 66, 146, 101, 66, 146, 102, 50, 146, 118, 34, 146, + 133, 34, 146, 134, 18, 146, 152, 146, 167, 146, 182, 146, + 182, 146, 197, 146, 212, 146, 212, 104, 179, 104, 194, 0, + 32, 32, 56, 26, 0, 10, 103, 240, 36, 53, 196, 116, + 164, 148, 133, 149, 117, 149, 101, 181, 85, 181, 70, 182, + 54, 182, 54, 182, 54, 182, 54, 182, 54, 182, 54, 182, + 54, 182, 69, 182, 69, 181, 86, 150, 101, 149, 118, 133, + 133, 117, 166, 54, 219, 240, 39, 0, 30, 80, 53, 24, + 0, 9, 15, 1, 143, 3, 149, 86, 133, 117, 117, 118, + 101, 118, 101, 118, 101, 118, 101, 118, 101, 118, 101, 117, + 117, 101, 143, 157, 181, 240, 69, 240, 69, 240, 69, 240, + 69, 240, 69, 240, 69, 240, 69, 240, 69, 240, 27, 219, + 0, 28, 80, 77, 26, 0, 10, 103, 240, 20, 68, 212, + 116, 164, 148, 132, 180, 116, 180, 101, 196, 84, 212, 69, + 213, 53, 213, 53, 213, 53, 213, 53, 213, 53, 213, 53, + 213, 53, 213, 53, 213, 68, 212, 85, 181, 100, 67, 68, + 116, 53, 52, 132, 18, 50, 20, 165, 85, 197, 68, 240, + 25, 81, 240, 36, 50, 240, 56, 240, 56, 240, 56, 240, + 55, 240, 86, 240, 100, 0, 7, 16, 57, 28, 0, 10, + 79, 223, 3, 213, 86, 197, 117, 181, 118, 165, 118, 165, + 118, 165, 118, 165, 118, 165, 117, 181, 86, 206, 237, 245, + 84, 229, 100, 213, 101, 197, 101, 197, 101, 197, 101, 197, + 101, 197, 102, 65, 101, 117, 65, 101, 117, 65, 59, 85, + 34, 59, 118, 0, 32, 49, 19, 0, 7, 86, 50, 120, + 19, 99, 85, 84, 100, 68, 131, 68, 131, 68, 146, 69, + 130, 69, 130, 72, 203, 141, 124, 155, 185, 214, 229, 50, + 164, 50, 164, 50, 164, 51, 147, 68, 116, 70, 83, 83, + 25, 98, 70, 0, 22, 32, 63, 26, 0, 9, 127, 6, + 95, 6, 84, 69, 68, 83, 85, 83, 82, 101, 98, 82, + 101, 98, 81, 117, 113, 81, 117, 113, 66, 117, 114, 50, + 117, 114, 197, 240, 101, 240, 101, 240, 101, 240, 101, 240, + 101, 240, 101, 240, 101, 240, 101, 240, 101, 240, 101, 240, + 101, 240, 101, 240, 31, 191, 0, 30, 16, 56, 27, 0, + 10, 27, 88, 59, 88, 101, 178, 149, 178, 149, 178, 149, + 178, 149, 178, 149, 178, 149, 178, 149, 178, 149, 178, 149, + 178, 149, 178, 149, 178, 149, 178, 149, 178, 149, 178, 149, + 178, 149, 178, 164, 163, 165, 146, 196, 131, 212, 84, 251, + 240, 55, 0, 31, 96, 62, 28, 0, 10, 75, 104, 59, + 104, 101, 194, 150, 178, 165, 163, 165, 162, 182, 146, 197, + 130, 213, 130, 229, 114, 229, 98, 246, 82, 240, 21, 66, + 240, 37, 66, 240, 53, 50, 240, 53, 34, 240, 70, 18, + 240, 87, 240, 103, 240, 103, 240, 117, 240, 133, 240, 148, + 240, 147, 240, 163, 0, 33, 32, 92, 38, 0, 14, 43, + 27, 87, 59, 27, 87, 101, 118, 162, 133, 133, 146, 150, + 117, 146, 165, 118, 129, 181, 133, 114, 182, 102, 114, 197, + 103, 97, 213, 97, 21, 82, 214, 66, 21, 82, 229, 66, + 22, 65, 245, 65, 53, 50, 246, 34, 53, 50, 240, 21, + 34, 54, 33, 240, 37, 33, 85, 18, 240, 40, 85, 18, + 240, 55, 87, 240, 70, 118, 240, 70, 118, 240, 85, 117, + 240, 100, 148, 240, 100, 148, 240, 115, 162, 240, 130, 178, + 0, 44, 48, 64, 28, 0, 10, 91, 42, 91, 42, 133, + 131, 198, 114, 230, 82, 240, 21, 67, 240, 22, 50, 240, + 54, 18, 240, 88, 240, 87, 240, 117, 240, 134, 240, 134, + 240, 118, 240, 104, 240, 82, 22, 240, 50, 53, 240, 35, + 54, 240, 18, 85, 242, 102, 211, 118, 194, 149, 178, 166, + 105, 91, 57, 91, 0, 31, 112, 62, 30, 0, 11, 44, + 120, 60, 120, 117, 194, 182, 163, 198, 146, 229, 130, 246, + 114, 240, 21, 98, 240, 38, 82, 240, 54, 50, 240, 70, + 35, 240, 86, 18, 240, 119, 240, 135, 240, 149, 240, 165, + 240, 165, 240, 165, 240, 165, 240, 165, 240, 165, 240, 165, + 240, 165, 240, 123, 240, 75, 0, 35, 16, 51, 21, 0, + 7, 127, 3, 63, 3, 54, 101, 68, 118, 67, 133, 82, + 134, 82, 133, 98, 117, 114, 102, 245, 246, 245, 246, 245, + 245, 240, 21, 98, 117, 114, 102, 114, 101, 130, 85, 146, + 85, 131, 69, 132, 69, 117, 63, 3, 63, 3, 0, 24, + 39, 8, 133, 53, 50, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 101, 53, 48, 35, 17, 0, 6, 98, 98, 98, 98, 113, + 113, 114, 98, 113, 113, 114, 98, 113, 113, 129, 19, 49, + 19, 70, 38, 54, 38, 54, 38, 69, 53, 83, 83, 0, + 45, 16, 39, 8, 133, 53, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 53, 53, 48, 15, 13, 240, 240, 210, 164, 134, + 99, 35, 67, 67, 65, 97, 0, 46, 11, 9, 240, 212, + 70, 54, 54, 54, 68, 0, 32, 20, 9, 240, 242, 98, + 113, 114, 113, 114, 113, 129, 19, 70, 54, 54, 69, 83, + 0, 24, 16, 36, 19, 0, 28, 119, 163, 68, 132, 68, + 116, 84, 114, 100, 244, 184, 139, 117, 52, 100, 84, 84, + 100, 84, 100, 84, 100, 84, 85, 100, 50, 21, 101, 68, + 0, 21, 96, 57, 21, 0, 7, 118, 246, 240, 36, 240, + 36, 240, 36, 240, 36, 240, 36, 240, 36, 240, 36, 240, + 36, 22, 166, 52, 132, 100, 116, 116, 100, 116, 100, 117, + 84, 117, 84, 117, 84, 117, 84, 117, 84, 117, 84, 116, + 100, 116, 101, 84, 115, 18, 52, 130, 54, 0, 24, 80, + 31, 16, 0, 24, 86, 132, 36, 84, 52, 68, 68, 68, + 67, 69, 181, 181, 181, 181, 181, 196, 113, 69, 82, 84, + 81, 116, 50, 149, 0, 18, 96, 54, 21, 0, 9, 22, + 246, 240, 36, 240, 36, 240, 36, 240, 36, 240, 36, 240, + 36, 240, 36, 166, 20, 132, 54, 116, 100, 100, 116, 100, + 116, 85, 116, 85, 116, 85, 116, 85, 116, 85, 116, 85, + 116, 100, 116, 100, 116, 116, 85, 132, 56, 134, 22, 0, + 24, 32, 18, 0, 27, 86, 163, 52, 116, 68, 84, 100, + 68, 100, 53, 100, 63, 63, 53, 213, 213, 228, 130, 69, + 114, 84, 98, 116, 66, 166, 0, 21, 16, 36, 17, 240, + 240, 166, 153, 117, 36, 100, 37, 84, 53, 84, 67, 100, + 212, 212, 212, 186, 122, 148, 212, 212, 212, 212, 212, 212, + 212, 212, 212, 212, 212, 186, 122, 0, 20, 50, 19, 0, + 29, 6, 35, 100, 36, 19, 68, 67, 19, 68, 68, 116, + 68, 116, 68, 116, 68, 116, 68, 132, 36, 153, 161, 37, + 162, 240, 35, 240, 27, 156, 125, 83, 116, 68, 132, 51, + 148, 52, 131, 83, 131, 99, 84, 152, 240, 240, 240, 56, + 21, 0, 7, 118, 246, 240, 36, 240, 36, 240, 36, 240, + 36, 240, 36, 240, 36, 240, 36, 240, 36, 53, 148, 18, + 51, 133, 84, 117, 84, 116, 100, 116, 100, 116, 100, 116, + 100, 116, 100, 116, 100, 116, 100, 116, 100, 116, 100, 116, + 100, 89, 24, 57, 24, 0, 24, 31, 11, 240, 240, 83, + 117, 101, 101, 101, 115, 240, 240, 150, 86, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 88, 56, 0, + 12, 96, 42, 14, 0, 6, 4, 150, 134, 134, 134, 148, + 0, 6, 39, 119, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 67, 52, 52, 52, + 52, 36, 68, 35, 117, 240, 240, 80, 54, 20, 0, 7, + 70, 230, 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, + 240, 20, 240, 20, 240, 20, 71, 84, 71, 84, 83, 132, + 67, 148, 50, 180, 34, 196, 19, 201, 185, 180, 36, 164, + 52, 148, 53, 132, 68, 132, 84, 88, 24, 56, 24, 0, + 22, 112, 32, 11, 240, 240, 54, 86, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 88, 56, 0, 12, 96, 57, 31, + 0, 46, 70, 53, 85, 118, 18, 51, 34, 51, 133, 85, + 84, 117, 85, 84, 116, 100, 100, 116, 100, 100, 116, 100, + 100, 116, 100, 100, 116, 100, 100, 116, 100, 100, 116, 100, + 100, 116, 100, 100, 116, 100, 100, 116, 100, 100, 89, 25, + 24, 57, 25, 24, 0, 35, 32, 39, 21, 0, 31, 70, + 53, 118, 18, 51, 133, 84, 117, 84, 116, 100, 116, 100, + 116, 100, 116, 100, 116, 100, 116, 100, 116, 100, 116, 100, + 116, 100, 116, 100, 89, 24, 57, 24, 0, 24, 37, 19, + 0, 29, 22, 179, 52, 132, 68, 100, 100, 84, 100, 69, + 101, 53, 101, 53, 101, 53, 101, 53, 101, 53, 101, 68, + 100, 84, 100, 100, 68, 132, 51, 182, 0, 22, 48, 50, + 21, 0, 31, 70, 22, 136, 52, 132, 100, 116, 101, 100, + 116, 100, 117, 84, 117, 84, 117, 84, 117, 84, 117, 84, + 117, 84, 116, 100, 101, 101, 84, 118, 52, 132, 22, 164, + 240, 36, 240, 36, 240, 36, 240, 36, 248, 216, 0, 6, + 112, 52, 21, 0, 32, 22, 50, 132, 50, 19, 116, 85, + 101, 100, 100, 116, 85, 116, 85, 116, 85, 116, 85, 116, + 85, 116, 85, 116, 100, 116, 101, 100, 116, 85, 132, 54, + 165, 36, 240, 36, 240, 36, 240, 36, 240, 36, 240, 36, + 248, 216, 240, 240, 240, 29, 16, 0, 24, 6, 36, 70, + 17, 20, 85, 36, 85, 36, 84, 66, 100, 196, 196, 196, + 196, 196, 196, 196, 196, 169, 121, 0, 18, 112, 33, 15, + 0, 22, 120, 83, 67, 67, 98, 67, 98, 68, 82, 70, + 153, 122, 120, 166, 50, 100, 50, 115, 50, 115, 51, 98, + 68, 67, 66, 37, 0, 17, 80, 36, 14, 0, 9, 34, + 194, 194, 194, 179, 179, 164, 138, 74, 100, 164, 164, 164, + 164, 164, 164, 164, 50, 84, 50, 84, 50, 84, 50, 84, + 50, 100, 18, 133, 0, 16, 48, 38, 21, 0, 31, 70, + 55, 86, 55, 116, 100, 116, 100, 116, 100, 116, 100, 116, + 100, 116, 100, 116, 100, 116, 100, 116, 100, 116, 100, 116, + 100, 116, 85, 132, 56, 118, 38, 0, 24, 36, 20, 0, + 30, 8, 54, 56, 54, 84, 114, 132, 97, 148, 82, 149, + 66, 164, 50, 180, 50, 196, 33, 212, 18, 215, 229, 245, + 240, 19, 240, 35, 240, 35, 0, 23, 96, 51, 27, 0, + 40, 72, 23, 38, 56, 23, 38, 84, 68, 98, 117, 67, + 98, 132, 68, 66, 148, 68, 66, 149, 37, 65, 180, 38, + 34, 180, 33, 35, 34, 198, 35, 33, 214, 38, 213, 69, + 228, 68, 244, 68, 243, 99, 240, 18, 98, 0, 31, 80, + 36, 20, 0, 30, 8, 39, 56, 39, 100, 67, 148, 66, + 180, 34, 214, 229, 240, 20, 240, 36, 246, 210, 20, 195, + 36, 178, 68, 146, 100, 87, 40, 55, 40, 0, 22, 112, + 49, 20, 0, 30, 8, 54, 56, 54, 85, 98, 132, 97, + 148, 82, 164, 66, 164, 65, 181, 34, 196, 34, 196, 18, + 230, 229, 245, 240, 20, 240, 19, 240, 35, 240, 49, 240, + 50, 194, 66, 180, 34, 196, 34, 195, 34, 228, 0, 6, + 112, 34, 16, 0, 24, 28, 67, 69, 66, 84, 82, 68, + 97, 69, 97, 68, 181, 180, 180, 181, 50, 100, 66, 85, + 66, 84, 82, 68, 83, 53, 68, 60, 0, 18, 64, 11, + 21, 0, 44, 95, 3, 63, 3, 0, 47, 80, 13, 39, + 0, 82, 127, 15, 6, 63, 15, 6, 0, 88, 16, 20, + 14, 240, 227, 51, 84, 36, 68, 36, 52, 36, 68, 36, + 67, 51, 82, 66, 0, 49, 96, 12, 15, 0, 5, 116, + 171, 74, 66, 68, 0, 56, 112, +}; + +//***************************************************************************** +// +// The font definition for the 36 point Cm bold font. +// +//***************************************************************************** +const tFont g_sFontCm36b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 35, + + // + // The height of the font. + // + 37, + + // + // The baseline of the font. + // + 28, + + // + // The offset to each character in the font. + // + { + 0, 5, 36, 70, 166, 231, 321, 396, + 416, 456, 495, 530, 582, 602, 613, 626, + 666, 719, 751, 792, 836, 881, 923, 972, + 1008, 1055, 1104, 1125, 1152, 1182, 1199, 1237, + 1276, 1362, 1422, 1477, 1533, 1590, 1649, 1702, + 1758, 1815, 1847, 1885, 1945, 2000, 2093, 2162, + 2218, 2271, 2348, 2405, 2454, 2517, 2573, 2635, + 2727, 2791, 2853, 2904, 2943, 2978, 3017, 3032, + 3043, 3063, 3099, 3156, 3187, 3241, 3273, 3309, + 3359, 3415, 3446, 3488, 3542, 3574, 3631, 3670, + 3707, 3757, 3809, 3838, 3871, 3907, 3945, 3981, + 4032, 4068, 4117, 4151, 4162, 4175, 4195, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm36bData +}; diff --git a/grlib/fonts/fontcm36i.c b/grlib/fonts/fontcm36i.c new file mode 100644 index 0000000..2a76f67 --- /dev/null +++ b/grlib/fonts/fontcm36i.c @@ -0,0 +1,491 @@ +//***************************************************************************** +// +// fontcm36i.c - Font definition for the 36pt Cm italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 36 point +// Bold: no +// Italic: yes +// Memory usage: 4820 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 36 point Cm italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm36iData[4619] = +{ + 5, 14, 0, 64, 96, 32, 13, 240, 82, 164, 147, 163, + 148, 147, 163, 163, 162, 178, 163, 162, 178, 178, 178, 177, + 178, 178, 177, 193, 0, 6, 19, 148, 148, 147, 0, 15, + 112, 27, 14, 240, 240, 227, 51, 68, 36, 68, 36, 68, + 36, 113, 81, 97, 81, 97, 97, 97, 81, 97, 81, 97, + 81, 0, 42, 112, 98, 28, 0, 12, 65, 97, 240, 66, + 97, 240, 65, 98, 240, 50, 97, 240, 65, 98, 240, 50, + 97, 240, 65, 98, 240, 50, 97, 240, 65, 98, 240, 50, + 97, 240, 65, 98, 240, 50, 97, 191, 8, 194, 97, 240, + 65, 98, 240, 50, 97, 240, 65, 98, 240, 50, 97, 240, + 65, 98, 207, 8, 177, 98, 240, 50, 97, 240, 65, 98, + 240, 50, 97, 240, 65, 98, 240, 50, 97, 240, 65, 98, + 240, 50, 97, 240, 65, 98, 240, 50, 97, 240, 65, 98, + 240, 65, 97, 0, 9, 48, 62, 25, 0, 11, 52, 240, + 66, 65, 240, 34, 97, 242, 113, 226, 114, 226, 99, 211, + 98, 226, 240, 130, 240, 130, 240, 115, 240, 114, 240, 89, + 240, 66, 240, 115, 240, 114, 240, 130, 240, 115, 240, 114, + 240, 130, 240, 55, 161, 97, 67, 145, 97, 69, 113, 113, + 50, 51, 65, 132, 117, 0, 29, 32, 95, 28, 116, 209, + 146, 33, 194, 130, 65, 162, 130, 83, 99, 146, 81, 37, + 18, 146, 97, 130, 146, 97, 114, 147, 97, 98, 162, 97, + 98, 178, 97, 82, 194, 97, 66, 210, 81, 66, 226, 81, + 66, 241, 65, 66, 240, 18, 33, 66, 240, 66, 66, 240, + 162, 85, 242, 82, 65, 225, 82, 81, 210, 82, 81, 194, + 82, 97, 178, 98, 97, 162, 99, 97, 146, 114, 97, 146, + 130, 97, 146, 130, 82, 130, 146, 81, 130, 162, 65, 130, + 194, 34, 129, 227, 0, 25, 96, 85, 27, 240, 240, 84, + 240, 98, 50, 240, 81, 82, 115, 130, 97, 114, 130, 113, + 129, 130, 83, 129, 114, 99, 113, 130, 98, 113, 146, 225, + 162, 209, 177, 35, 130, 179, 49, 97, 33, 162, 65, 81, + 49, 147, 65, 65, 81, 131, 49, 65, 97, 114, 35, 81, + 97, 114, 163, 65, 114, 163, 65, 98, 240, 49, 98, 240, + 33, 114, 240, 33, 114, 240, 17, 130, 242, 146, 210, 178, + 178, 210, 115, 240, 39, 0, 32, 32, 16, 8, 240, 179, + 68, 68, 68, 113, 97, 97, 113, 97, 97, 0, 24, 112, + 41, 16, 193, 225, 225, 225, 226, 210, 210, 226, 210, 225, + 226, 226, 210, 226, 210, 226, 226, 211, 210, 226, 226, 211, + 210, 226, 226, 226, 226, 226, 226, 226, 226, 241, 242, 241, + 241, 240, 17, 241, 192, 40, 16, 145, 242, 241, 242, 241, + 241, 242, 226, 226, 226, 226, 226, 226, 226, 226, 211, 210, + 226, 226, 226, 211, 210, 226, 210, 226, 226, 210, 226, 210, + 225, 226, 210, 225, 225, 225, 225, 225, 240, 34, 17, 130, + 241, 240, 17, 242, 162, 49, 66, 83, 33, 35, 130, 17, + 18, 195, 211, 194, 17, 18, 131, 33, 35, 82, 65, 50, + 162, 241, 240, 17, 242, 0, 46, 51, 25, 0, 23, 65, + 240, 145, 240, 130, 240, 130, 240, 129, 240, 145, 240, 145, + 240, 130, 240, 129, 240, 145, 240, 145, 223, 7, 209, 240, + 145, 240, 145, 240, 130, 240, 129, 240, 145, 240, 145, 240, + 130, 240, 130, 240, 129, 240, 145, 0, 23, 112, 17, 8, + 0, 24, 35, 68, 68, 68, 113, 97, 113, 97, 97, 113, + 97, 240, 128, 9, 12, 0, 28, 73, 57, 0, 24, 48, + 11, 7, 0, 21, 19, 52, 52, 51, 0, 8, 48, 78, + 24, 240, 81, 240, 114, 240, 113, 240, 114, 240, 98, 240, + 113, 240, 114, 240, 113, 240, 114, 240, 113, 240, 114, 240, + 113, 240, 114, 240, 113, 240, 113, 240, 114, 240, 113, 240, + 114, 240, 113, 240, 114, 240, 113, 240, 114, 240, 113, 240, + 113, 240, 114, 240, 113, 240, 114, 240, 113, 240, 114, 240, + 113, 240, 114, 240, 113, 240, 114, 240, 98, 240, 113, 240, + 114, 240, 113, 240, 128, 55, 19, 0, 8, 37, 194, 66, + 162, 97, 146, 114, 114, 130, 114, 130, 98, 146, 98, 146, + 83, 131, 82, 147, 82, 146, 83, 146, 83, 131, 82, 147, + 82, 146, 83, 146, 83, 131, 82, 146, 98, 146, 98, 130, + 114, 130, 114, 114, 145, 98, 162, 66, 212, 0, 22, 112, + 33, 15, 0, 7, 1, 225, 210, 195, 164, 146, 34, 210, + 195, 194, 210, 210, 195, 194, 210, 210, 195, 194, 210, 210, + 195, 195, 194, 210, 195, 139, 0, 17, 48, 62, 19, 0, + 8, 36, 210, 50, 178, 82, 161, 114, 129, 130, 114, 33, + 82, 113, 49, 82, 113, 49, 82, 97, 65, 82, 97, 49, + 83, 97, 49, 82, 113, 33, 82, 146, 83, 242, 240, 18, + 240, 18, 242, 240, 17, 240, 33, 240, 33, 161, 97, 161, + 98, 161, 102, 81, 98, 56, 97, 100, 0, 22, 48, 57, + 20, 0, 8, 100, 226, 66, 162, 113, 161, 130, 129, 146, + 114, 33, 98, 113, 49, 98, 113, 49, 98, 113, 33, 98, + 146, 114, 240, 34, 240, 19, 213, 240, 66, 240, 65, 240, + 66, 240, 50, 240, 50, 114, 146, 99, 131, 98, 146, 113, + 146, 129, 130, 162, 67, 198, 0, 24, 58, 18, 0, 8, + 50, 243, 242, 240, 18, 240, 18, 243, 242, 240, 18, 242, + 240, 18, 243, 242, 240, 18, 242, 240, 17, 240, 18, 242, + 49, 194, 35, 162, 50, 162, 66, 146, 82, 130, 98, 115, + 82, 119, 34, 113, 103, 195, 242, 240, 18, 240, 18, 243, + 242, 240, 18, 240, 240, 240, 54, 18, 0, 7, 66, 97, + 153, 151, 161, 21, 177, 240, 33, 240, 33, 240, 17, 240, + 33, 240, 33, 36, 179, 50, 146, 97, 145, 114, 240, 18, + 240, 18, 240, 18, 240, 18, 98, 115, 83, 114, 98, 130, + 97, 130, 113, 130, 114, 98, 146, 51, 181, 0, 21, 80, + 53, 18, 0, 8, 4, 194, 65, 162, 81, 146, 82, 130, + 98, 114, 114, 99, 242, 243, 243, 36, 146, 18, 50, 116, + 98, 99, 114, 99, 114, 98, 130, 83, 130, 83, 130, 82, + 131, 82, 131, 82, 130, 98, 115, 98, 114, 129, 98, 146, + 66, 181, 0, 21, 80, 62, 20, 0, 8, 1, 20, 97, + 97, 21, 81, 115, 49, 81, 99, 81, 49, 114, 97, 33, + 129, 116, 113, 161, 129, 161, 113, 161, 129, 161, 240, 50, + 240, 34, 240, 50, 240, 34, 240, 50, 240, 35, 240, 34, + 240, 50, 240, 35, 240, 34, 240, 35, 240, 35, 240, 34, + 240, 35, 240, 35, 0, 24, 16, 53, 19, 0, 8, 36, + 210, 51, 161, 114, 130, 114, 129, 130, 114, 130, 114, 130, + 114, 114, 131, 82, 148, 50, 180, 17, 228, 245, 194, 36, + 162, 68, 130, 99, 114, 130, 114, 130, 98, 146, 98, 145, + 114, 130, 114, 129, 146, 98, 147, 66, 197, 0, 22, 96, + 54, 18, 0, 7, 101, 194, 50, 161, 97, 146, 98, 114, + 114, 99, 114, 98, 130, 98, 130, 83, 115, 83, 115, 82, + 131, 82, 130, 98, 115, 98, 115, 113, 100, 114, 50, 18, + 163, 50, 242, 240, 18, 242, 114, 113, 130, 98, 129, 98, + 146, 50, 197, 0, 21, 96, 17, 10, 0, 15, 67, 100, + 100, 114, 0, 10, 82, 116, 100, 99, 0, 12, 16, 24, + 11, 0, 17, 19, 116, 116, 115, 0, 11, 98, 132, 116, + 115, 161, 161, 145, 161, 145, 145, 161, 240, 240, 32, 32, + 13, 0, 15, 67, 148, 148, 147, 0, 6, 17, 193, 178, + 178, 177, 178, 178, 178, 178, 163, 162, 178, 163, 163, 163, + 148, 147, 163, 148, 162, 240, 128, 13, 26, 0, 49, 15, + 6, 0, 19, 127, 6, 0, 46, 16, 45, 16, 0, 19, + 19, 211, 211, 210, 0, 7, 67, 194, 33, 162, 49, 161, + 65, 226, 210, 195, 195, 195, 194, 98, 82, 99, 66, 115, + 65, 145, 66, 145, 65, 145, 81, 145, 81, 129, 98, 97, + 130, 50, 165, 240, 160, 45, 15, 240, 100, 161, 65, 129, + 97, 97, 113, 81, 129, 81, 129, 65, 145, 65, 129, 82, + 98, 67, 82, 82, 83, 178, 194, 194, 194, 194, 209, 65, + 145, 50, 145, 34, 179, 0, 7, 2, 195, 195, 195, 0, + 18, 32, 87, 26, 0, 11, 38, 240, 35, 98, 226, 146, + 178, 194, 146, 84, 81, 130, 66, 50, 81, 98, 51, 81, + 81, 97, 66, 114, 49, 81, 66, 130, 49, 66, 50, 146, + 49, 65, 66, 146, 49, 65, 51, 130, 65, 49, 66, 146, + 49, 65, 66, 146, 49, 65, 66, 131, 49, 65, 66, 130, + 65, 65, 66, 115, 49, 81, 82, 84, 49, 81, 83, 50, + 18, 33, 113, 100, 67, 129, 240, 177, 240, 177, 210, 178, + 116, 248, 0, 30, 96, 68, 25, 240, 240, 193, 240, 130, + 240, 130, 240, 115, 240, 115, 240, 97, 18, 240, 81, 34, + 240, 81, 35, 240, 49, 51, 240, 49, 51, 240, 33, 67, + 240, 33, 67, 240, 17, 83, 240, 17, 83, 241, 99, 241, + 99, 225, 115, 235, 209, 146, 193, 162, 193, 162, 177, 178, + 177, 179, 145, 195, 145, 195, 115, 195, 87, 120, 0, 28, + 64, 54, 26, 0, 10, 78, 227, 131, 195, 147, 178, 163, + 178, 163, 163, 163, 163, 163, 162, 163, 178, 162, 179, 146, + 195, 115, 219, 242, 131, 195, 147, 179, 163, 162, 179, 162, + 179, 162, 179, 147, 179, 146, 179, 162, 179, 162, 163, 163, + 147, 179, 116, 159, 0, 30, 80, 58, 25, 0, 10, 101, + 81, 179, 82, 34, 162, 133, 146, 163, 145, 210, 130, 210, + 114, 226, 98, 241, 114, 241, 98, 240, 17, 98, 240, 130, + 240, 114, 240, 130, 240, 130, 240, 130, 240, 130, 241, 114, + 241, 114, 225, 145, 210, 146, 193, 162, 177, 194, 130, 227, + 66, 240, 53, 0, 30, 54, 27, 0, 10, 126, 243, 130, + 227, 146, 211, 162, 194, 193, 194, 194, 163, 194, 163, 194, + 162, 210, 162, 210, 147, 210, 147, 210, 147, 195, 146, 210, + 147, 210, 147, 195, 147, 194, 162, 210, 147, 194, 163, 178, + 179, 178, 178, 178, 179, 146, 211, 115, 190, 0, 32, 65, + 27, 0, 10, 127, 3, 195, 147, 195, 162, 194, 193, 179, + 193, 179, 193, 179, 177, 194, 113, 65, 179, 97, 240, 35, + 97, 240, 35, 82, 240, 42, 240, 19, 98, 240, 19, 97, + 240, 35, 97, 240, 34, 113, 81, 178, 209, 163, 209, 163, + 193, 178, 209, 178, 193, 179, 178, 179, 163, 179, 147, 143, + 4, 0, 31, 48, 64, 27, 0, 10, 127, 3, 195, 147, + 195, 162, 194, 177, 195, 177, 195, 177, 195, 177, 194, 193, + 179, 97, 240, 35, 97, 240, 35, 97, 240, 34, 98, 240, + 26, 240, 35, 82, 240, 35, 97, 240, 34, 113, 240, 34, + 97, 240, 35, 240, 147, 240, 146, 240, 162, 240, 147, 240, + 147, 240, 147, 240, 90, 0, 32, 64, 60, 25, 0, 10, + 102, 240, 34, 97, 49, 162, 145, 18, 146, 164, 130, 194, + 130, 210, 114, 226, 114, 226, 98, 241, 114, 241, 98, 240, + 130, 240, 115, 240, 114, 240, 130, 240, 130, 169, 66, 211, + 114, 211, 114, 211, 129, 211, 130, 194, 146, 179, 162, 145, + 18, 179, 82, 34, 214, 0, 29, 112, 61, 31, 0, 12, + 57, 73, 195, 163, 242, 163, 243, 163, 243, 163, 243, 162, + 240, 18, 163, 243, 163, 243, 163, 243, 162, 240, 18, 163, + 255, 1, 243, 163, 243, 162, 240, 18, 163, 243, 163, 243, + 163, 243, 162, 240, 18, 163, 243, 163, 243, 163, 243, 162, + 240, 18, 178, 243, 163, 201, 73, 0, 36, 34, 18, 0, + 7, 73, 195, 242, 243, 243, 242, 240, 18, 243, 243, 243, + 242, 243, 243, 243, 242, 243, 243, 243, 242, 240, 18, 243, + 243, 242, 243, 201, 0, 21, 48, 54, 21, 0, 9, 9, + 243, 240, 51, 240, 51, 240, 51, 240, 50, 240, 51, 240, + 51, 240, 50, 240, 66, 240, 51, 240, 51, 240, 50, 240, + 66, 240, 51, 240, 51, 240, 50, 240, 66, 240, 51, 178, + 83, 163, 82, 178, 83, 177, 83, 209, 51, 244, 0, 25, + 64, 77, 31, 0, 12, 57, 118, 195, 179, 227, 162, 240, + 18, 162, 240, 19, 146, 240, 35, 130, 240, 51, 113, 240, + 82, 113, 240, 83, 97, 240, 99, 81, 240, 115, 51, 240, + 114, 52, 240, 114, 33, 35, 240, 83, 17, 51, 240, 84, + 82, 240, 83, 99, 240, 66, 115, 240, 51, 130, 240, 51, + 131, 240, 34, 147, 240, 34, 163, 243, 163, 243, 163, 243, + 164, 169, 104, 0, 35, 112, 57, 23, 0, 9, 58, 240, + 19, 240, 83, 240, 82, 240, 83, 240, 83, 240, 83, 240, + 82, 240, 83, 240, 83, 240, 83, 240, 82, 240, 98, 240, + 83, 240, 83, 240, 82, 240, 98, 177, 131, 161, 147, 161, + 146, 177, 146, 161, 147, 146, 147, 131, 147, 115, 111, 2, + 0, 26, 80, 98, 35, 0, 13, 103, 230, 180, 212, 225, + 18, 193, 18, 241, 18, 193, 18, 241, 18, 177, 19, 225, + 34, 177, 19, 225, 34, 161, 34, 241, 34, 161, 34, 241, + 34, 145, 50, 225, 51, 113, 51, 225, 51, 113, 51, 225, + 51, 97, 66, 241, 51, 97, 66, 225, 82, 81, 67, 225, + 82, 81, 67, 225, 82, 65, 82, 241, 82, 49, 98, 225, + 98, 49, 83, 225, 98, 33, 99, 225, 98, 33, 98, 241, + 100, 114, 226, 100, 99, 225, 115, 115, 211, 98, 131, 183, + 81, 88, 0, 40, 64, 84, 31, 0, 12, 54, 136, 196, + 162, 244, 161, 240, 17, 18, 161, 242, 19, 145, 241, 35, + 129, 240, 17, 50, 129, 240, 17, 51, 113, 242, 51, 113, + 241, 82, 97, 240, 17, 83, 81, 240, 17, 83, 81, 240, + 17, 98, 81, 241, 115, 50, 241, 115, 49, 240, 17, 130, + 49, 240, 17, 131, 33, 241, 147, 17, 240, 17, 162, 17, + 240, 17, 164, 240, 17, 164, 241, 195, 241, 194, 243, 178, + 200, 161, 0, 36, 48, 61, 25, 0, 10, 117, 240, 35, + 82, 226, 130, 179, 162, 147, 178, 131, 210, 114, 226, 99, + 226, 83, 242, 83, 242, 67, 240, 18, 67, 240, 18, 67, + 243, 51, 240, 18, 67, 240, 18, 67, 243, 67, 242, 83, + 226, 99, 226, 114, 210, 131, 178, 162, 162, 179, 130, 211, + 82, 240, 38, 0, 29, 112, 54, 26, 0, 10, 63, 227, + 115, 211, 146, 194, 163, 178, 163, 163, 163, 163, 163, 162, + 164, 162, 163, 163, 147, 179, 146, 194, 131, 219, 227, 240, + 131, 240, 131, 240, 130, 240, 131, 240, 131, 240, 131, 240, + 130, 240, 131, 240, 131, 240, 131, 240, 89, 0, 31, 48, + 92, 25, 0, 10, 102, 240, 35, 82, 211, 130, 178, 178, + 146, 194, 130, 226, 99, 226, 98, 242, 82, 240, 18, 82, + 240, 18, 66, 240, 34, 66, 240, 34, 66, 240, 19, 51, + 240, 18, 66, 240, 34, 66, 240, 18, 82, 240, 18, 82, + 242, 98, 242, 113, 99, 82, 130, 65, 49, 50, 161, 49, + 65, 34, 178, 33, 65, 18, 210, 17, 66, 240, 39, 240, + 145, 97, 240, 33, 97, 240, 33, 81, 240, 50, 50, 240, + 54, 240, 70, 240, 83, 0, 7, 64, 60, 26, 0, 10, + 77, 240, 19, 99, 226, 131, 195, 147, 179, 147, 178, 163, + 178, 163, 163, 163, 163, 147, 178, 147, 194, 146, 195, 114, + 234, 240, 19, 98, 242, 130, 211, 130, 211, 130, 211, 130, + 210, 146, 195, 131, 195, 131, 195, 131, 65, 114, 147, 65, + 99, 147, 49, 73, 117, 0, 29, 112, 56, 22, 0, 9, + 69, 242, 81, 33, 161, 131, 145, 147, 130, 161, 145, 177, + 130, 177, 130, 162, 130, 240, 83, 240, 70, 240, 40, 240, + 24, 240, 37, 240, 83, 240, 82, 240, 82, 113, 194, 113, + 194, 113, 193, 129, 178, 115, 146, 131, 130, 145, 34, 82, + 230, 0, 26, 32, 63, 25, 0, 9, 111, 4, 83, 99, + 98, 82, 114, 129, 81, 130, 129, 65, 131, 129, 65, 131, + 129, 65, 130, 145, 49, 146, 129, 211, 240, 115, 240, 114, + 240, 130, 240, 115, 240, 115, 240, 114, 240, 130, 240, 115, + 240, 115, 240, 115, 240, 114, 240, 115, 240, 115, 240, 115, + 240, 100, 240, 44, 0, 29, 80, 58, 25, 0, 9, 73, + 87, 99, 179, 131, 178, 147, 177, 162, 193, 162, 193, 147, + 193, 147, 177, 162, 193, 162, 193, 162, 193, 147, 177, 162, + 193, 162, 193, 162, 193, 147, 177, 162, 193, 162, 193, 162, + 177, 178, 177, 178, 161, 209, 145, 226, 113, 240, 18, 66, + 240, 53, 0, 30, 32, 64, 26, 0, 9, 104, 135, 83, + 210, 131, 209, 147, 193, 163, 193, 163, 177, 194, 177, 194, + 161, 210, 145, 227, 129, 227, 113, 243, 113, 243, 97, 240, + 19, 81, 240, 35, 81, 240, 35, 65, 240, 51, 65, 240, + 66, 49, 240, 82, 33, 240, 99, 17, 240, 100, 240, 115, + 240, 131, 240, 130, 240, 146, 0, 31, 96, 101, 36, 0, + 13, 73, 72, 87, 99, 147, 163, 131, 147, 161, 163, 147, + 161, 163, 147, 145, 179, 132, 145, 179, 132, 129, 195, 113, + 19, 114, 195, 113, 19, 113, 211, 97, 35, 97, 227, 97, + 35, 97, 227, 81, 51, 81, 243, 81, 51, 81, 243, 65, + 67, 65, 240, 19, 49, 98, 65, 240, 19, 49, 98, 49, + 240, 35, 33, 114, 49, 240, 35, 33, 114, 33, 240, 51, + 17, 130, 33, 240, 66, 17, 130, 17, 240, 83, 147, 240, + 99, 147, 240, 98, 162, 240, 114, 162, 240, 113, 177, 0, + 42, 112, 71, 30, 0, 12, 8, 103, 195, 147, 243, 146, + 240, 35, 114, 240, 51, 113, 240, 67, 97, 240, 99, 65, + 240, 115, 49, 240, 131, 33, 240, 165, 240, 164, 240, 195, + 240, 195, 240, 180, 240, 161, 35, 240, 130, 35, 240, 129, + 51, 240, 113, 83, 240, 81, 99, 240, 65, 115, 240, 49, + 147, 240, 17, 163, 242, 164, 211, 164, 167, 121, 0, 34, + 80, 62, 27, 0, 10, 25, 135, 99, 210, 147, 209, 179, + 177, 195, 161, 211, 145, 243, 114, 243, 113, 240, 19, 97, + 240, 51, 65, 240, 67, 49, 240, 83, 49, 240, 83, 33, + 240, 116, 240, 131, 240, 147, 240, 146, 240, 162, 240, 147, + 240, 147, 240, 146, 240, 162, 240, 147, 240, 147, 240, 105, + 0, 32, 48, 57, 25, 0, 10, 47, 148, 131, 162, 162, + 177, 163, 162, 147, 177, 147, 193, 131, 193, 131, 240, 115, + 240, 99, 240, 99, 240, 99, 240, 99, 240, 114, 240, 115, + 240, 99, 240, 99, 129, 195, 145, 194, 146, 179, 145, 179, + 161, 163, 162, 147, 162, 147, 148, 159, 1, 0, 29, 32, + 40, 16, 133, 177, 241, 241, 226, 225, 241, 241, 226, 225, + 241, 241, 226, 225, 241, 241, 226, 226, 225, 241, 226, 226, + 225, 241, 241, 226, 225, 241, 241, 226, 225, 241, 241, 226, + 225, 241, 244, 192, 27, 14, 0, 5, 97, 81, 97, 81, + 97, 81, 97, 81, 113, 81, 97, 81, 116, 36, 68, 36, + 68, 36, 82, 66, 0, 42, 80, 57, 17, 149, 241, 240, + 17, 240, 17, 242, 241, 240, 17, 240, 17, 242, 241, 240, + 17, 240, 17, 242, 241, 240, 17, 240, 17, 242, 242, 241, + 240, 17, 240, 17, 242, 241, 240, 17, 240, 17, 242, 241, + 240, 17, 240, 17, 242, 241, 240, 17, 240, 17, 242, 241, + 240, 17, 197, 192, 15, 12, 240, 240, 177, 163, 115, 18, + 82, 65, 65, 113, 0, 43, 112, 10, 7, 240, 115, 52, + 52, 51, 0, 26, 96, 16, 8, 240, 209, 97, 97, 97, + 113, 97, 116, 68, 68, 82, 0, 24, 80, 44, 18, 0, + 27, 99, 210, 49, 18, 130, 83, 114, 99, 114, 98, 114, + 114, 114, 114, 99, 99, 99, 98, 114, 114, 114, 114, 49, + 50, 98, 49, 66, 98, 49, 81, 83, 49, 82, 49, 33, + 33, 116, 51, 0, 21, 47, 15, 0, 5, 117, 195, 194, + 210, 210, 195, 194, 210, 210, 195, 20, 114, 17, 50, 99, + 81, 98, 98, 67, 98, 66, 114, 66, 114, 51, 99, 51, + 99, 50, 114, 66, 114, 66, 98, 82, 98, 97, 82, 114, + 50, 148, 0, 18, 31, 15, 0, 23, 52, 146, 65, 114, + 66, 98, 82, 82, 98, 67, 194, 195, 194, 210, 210, 210, + 145, 50, 130, 66, 98, 82, 66, 148, 0, 17, 112, 60, + 18, 0, 8, 5, 240, 18, 240, 18, 240, 18, 242, 240, + 18, 240, 18, 240, 18, 242, 179, 34, 146, 49, 18, 130, + 83, 114, 98, 130, 98, 114, 114, 114, 114, 99, 98, 115, + 98, 114, 114, 114, 114, 49, 50, 98, 49, 66, 98, 49, + 81, 83, 49, 82, 49, 33, 33, 116, 51, 0, 21, 32, + 15, 0, 23, 37, 131, 50, 98, 97, 82, 113, 82, 113, + 66, 113, 82, 82, 88, 114, 210, 210, 210, 210, 145, 65, + 114, 82, 67, 132, 0, 17, 112, 66, 19, 0, 8, 83, + 242, 33, 210, 34, 210, 240, 19, 240, 18, 240, 34, 240, + 34, 240, 19, 217, 210, 240, 34, 240, 34, 240, 19, 240, + 18, 240, 34, 240, 34, 240, 34, 240, 19, 240, 18, 240, + 34, 240, 34, 240, 34, 240, 19, 240, 18, 240, 34, 240, + 34, 240, 18, 210, 34, 210, 33, 225, 34, 243, 0, 6, + 80, 50, 18, 0, 28, 3, 210, 49, 18, 130, 83, 114, + 99, 114, 98, 114, 114, 114, 114, 99, 99, 99, 98, 114, + 114, 114, 114, 114, 99, 114, 98, 145, 83, 146, 52, 164, + 19, 242, 240, 18, 243, 114, 98, 131, 67, 130, 67, 166, + 0, 5, 112, 60, 18, 0, 7, 21, 243, 242, 240, 18, + 240, 18, 240, 18, 243, 242, 240, 18, 240, 18, 36, 147, + 17, 50, 130, 17, 66, 131, 82, 130, 98, 115, 98, 114, + 114, 114, 98, 130, 98, 115, 98, 114, 114, 33, 66, 98, + 49, 51, 98, 49, 51, 98, 33, 66, 114, 18, 66, 131, + 0, 20, 112, 38, 12, 0, 6, 98, 162, 162, 0, 8, + 51, 129, 34, 97, 50, 97, 50, 97, 35, 81, 50, 162, + 162, 146, 162, 162, 49, 83, 33, 98, 49, 98, 49, 98, + 33, 131, 0, 14, 32, 42, 16, 0, 9, 50, 226, 226, + 0, 11, 36, 178, 34, 145, 66, 145, 66, 129, 82, 129, + 67, 211, 210, 226, 211, 210, 226, 226, 211, 210, 226, 226, + 211, 210, 211, 130, 50, 146, 34, 179, 240, 240, 224, 54, + 17, 0, 6, 85, 242, 242, 242, 226, 242, 242, 242, 226, + 242, 98, 114, 66, 33, 98, 49, 50, 83, 33, 66, 82, + 33, 194, 17, 211, 210, 19, 178, 50, 162, 66, 146, 66, + 130, 82, 49, 66, 82, 49, 66, 82, 49, 66, 82, 33, + 81, 115, 0, 19, 112, 36, 10, 240, 240, 37, 130, 130, + 115, 114, 130, 130, 115, 114, 130, 130, 115, 114, 130, 130, + 115, 114, 130, 130, 115, 33, 66, 49, 66, 49, 66, 49, + 66, 33, 99, 0, 12, 67, 29, 0, 43, 115, 68, 84, + 129, 34, 18, 50, 34, 50, 97, 52, 84, 66, 97, 51, + 99, 82, 97, 50, 114, 98, 81, 51, 99, 98, 146, 114, + 114, 146, 114, 98, 162, 114, 98, 147, 99, 98, 146, 114, + 114, 33, 98, 114, 98, 49, 98, 114, 98, 49, 83, 99, + 98, 33, 98, 114, 114, 18, 98, 114, 131, 0, 33, 32, + 50, 20, 0, 30, 51, 68, 129, 34, 18, 50, 97, 52, + 66, 97, 51, 82, 97, 50, 98, 81, 51, 98, 146, 114, + 146, 98, 162, 98, 147, 98, 146, 114, 33, 98, 98, 49, + 98, 98, 49, 83, 98, 33, 98, 114, 18, 98, 131, 0, + 23, 16, 37, 17, 0, 26, 52, 178, 66, 130, 97, 114, + 114, 82, 130, 67, 130, 66, 146, 51, 146, 51, 131, 50, + 146, 66, 146, 66, 130, 82, 114, 114, 82, 130, 66, 180, + 0, 20, 48, 58, 20, 0, 30, 83, 52, 145, 33, 33, + 50, 113, 51, 81, 113, 50, 98, 97, 50, 98, 81, 50, + 114, 146, 114, 146, 99, 146, 99, 130, 114, 146, 114, 146, + 98, 162, 98, 147, 82, 162, 17, 50, 178, 35, 210, 240, + 34, 240, 50, 240, 50, 240, 50, 240, 35, 247, 0, 6, + 80, 48, 16, 0, 24, 99, 49, 114, 49, 18, 98, 83, + 82, 99, 82, 98, 82, 114, 82, 114, 67, 99, 67, 98, + 82, 114, 82, 114, 82, 99, 82, 98, 113, 83, 114, 49, + 18, 132, 19, 210, 226, 226, 211, 210, 226, 184, 240, 240, + 112, 33, 17, 0, 25, 115, 52, 97, 34, 18, 49, 65, + 51, 66, 65, 51, 66, 65, 50, 161, 51, 226, 242, 242, + 226, 242, 242, 242, 226, 242, 242, 0, 20, 96, 32, 15, + 0, 23, 21, 146, 65, 114, 97, 82, 83, 82, 83, 83, + 198, 167, 181, 195, 66, 114, 66, 114, 66, 113, 81, 114, + 97, 67, 133, 0, 17, 112, 35, 13, 0, 8, 114, 163, + 162, 178, 178, 163, 162, 122, 114, 163, 162, 178, 178, 163, + 162, 178, 178, 163, 65, 82, 81, 82, 65, 98, 65, 98, + 49, 132, 0, 15, 64, 50, 20, 0, 30, 51, 114, 114, + 18, 98, 113, 34, 83, 97, 50, 83, 97, 50, 82, 97, + 50, 98, 162, 83, 162, 82, 163, 82, 162, 98, 162, 98, + 49, 98, 82, 49, 114, 82, 49, 114, 67, 49, 130, 33, + 33, 33, 148, 51, 0, 23, 32, 43, 17, 0, 25, 115, + 98, 82, 18, 67, 81, 34, 67, 65, 50, 82, 65, 50, + 82, 49, 50, 98, 114, 97, 130, 97, 115, 97, 114, 97, + 130, 97, 130, 97, 130, 81, 146, 81, 162, 34, 195, 0, + 20, 32, 60, 25, 0, 37, 115, 114, 82, 81, 34, 83, + 67, 81, 34, 83, 67, 65, 50, 82, 98, 65, 50, 82, + 98, 49, 50, 83, 98, 114, 82, 113, 130, 82, 113, 115, + 82, 113, 114, 83, 97, 130, 82, 113, 130, 82, 113, 130, + 82, 97, 146, 67, 82, 162, 34, 18, 50, 196, 52, 0, + 29, 32, 48, 19, 0, 29, 4, 67, 114, 34, 33, 49, + 81, 83, 50, 81, 83, 50, 65, 98, 161, 83, 240, 19, + 240, 18, 240, 34, 240, 19, 240, 18, 97, 162, 97, 66, + 51, 81, 82, 51, 81, 81, 49, 34, 34, 115, 68, 0, + 22, 32, 55, 18, 0, 27, 51, 114, 82, 18, 98, 81, + 34, 83, 65, 50, 83, 65, 50, 82, 65, 50, 98, 130, + 83, 130, 83, 115, 82, 130, 98, 130, 83, 130, 83, 130, + 82, 146, 67, 162, 36, 164, 19, 242, 240, 18, 146, 67, + 131, 66, 146, 66, 162, 50, 196, 0, 6, 31, 17, 0, + 26, 35, 65, 118, 34, 113, 68, 113, 113, 242, 226, 226, + 226, 226, 226, 226, 226, 113, 98, 114, 100, 66, 98, 38, + 97, 84, 0, 20, 9, 19, 0, 42, 111, 1, 0, 43, + 16, 10, 35, 0, 78, 111, 15, 2, 0, 79, 16, 19, + 14, 0, 5, 97, 66, 98, 51, 82, 66, 82, 66, 97, + 66, 97, 81, 0, 49, 112, 17, 14, 240, 240, 242, 81, + 81, 33, 49, 81, 49, 33, 81, 82, 0, 53, 32, +}; + +//***************************************************************************** +// +// The font definition for the 36 point Cm italic font. +// +//***************************************************************************** +const tFont g_sFontCm36i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 32, + + // + // The height of the font. + // + 37, + + // + // The baseline of the font. + // + 28, + + // + // The offset to each character in the font. + // + { + 0, 5, 37, 64, 162, 224, 319, 404, + 420, 461, 501, 535, 586, 603, 612, 623, + 701, 756, 789, 851, 908, 966, 1020, 1073, + 1135, 1188, 1242, 1259, 1283, 1315, 1328, 1373, + 1418, 1505, 1573, 1627, 1685, 1739, 1804, 1868, + 1928, 1989, 2023, 2077, 2154, 2211, 2309, 2393, + 2454, 2508, 2600, 2660, 2716, 2779, 2837, 2901, + 3002, 3073, 3135, 3192, 3232, 3259, 3316, 3331, + 3341, 3357, 3401, 3448, 3479, 3539, 3571, 3637, + 3687, 3747, 3785, 3827, 3881, 3917, 3984, 4034, + 4071, 4129, 4177, 4210, 4242, 4277, 4327, 4370, + 4430, 4478, 4533, 4564, 4573, 4583, 4602, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm36iData +}; diff --git a/grlib/fonts/fontcm38.c b/grlib/fonts/fontcm38.c new file mode 100644 index 0000000..60a4464 --- /dev/null +++ b/grlib/fonts/fontcm38.c @@ -0,0 +1,471 @@ +//***************************************************************************** +// +// fontcm38.c - Font definition for the 38pt Cm font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 38 point +// Bold: no +// Italic: no +// Memory usage: 4572 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 38 point Cm font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm38Data[4372] = +{ + 5, 15, 0, 69, 48, 30, 6, 99, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 65, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 240, 115, 51, 51, 0, 7, 16, 26, + 13, 240, 240, 147, 66, 68, 51, 52, 51, 97, 81, 97, + 81, 97, 81, 81, 97, 81, 81, 81, 97, 177, 0, 39, + 80, 98, 28, 0, 12, 1, 113, 240, 65, 113, 240, 50, + 98, 240, 49, 113, 240, 65, 113, 240, 65, 113, 240, 50, + 98, 240, 49, 113, 240, 65, 113, 240, 50, 98, 240, 50, + 98, 240, 49, 113, 175, 10, 178, 98, 240, 49, 113, 240, + 65, 113, 240, 65, 113, 240, 65, 113, 240, 50, 98, 191, + 10, 161, 113, 240, 50, 98, 240, 50, 98, 240, 49, 113, + 240, 65, 113, 240, 50, 98, 240, 49, 113, 240, 65, 113, + 240, 65, 113, 240, 50, 98, 240, 49, 113, 240, 65, 113, + 0, 8, 112, 72, 17, 97, 240, 17, 230, 146, 33, 50, + 113, 49, 66, 82, 49, 81, 66, 65, 97, 50, 65, 67, + 50, 65, 67, 50, 65, 67, 51, 49, 163, 49, 179, 33, + 197, 215, 199, 177, 21, 161, 51, 161, 67, 145, 67, 51, + 49, 82, 51, 49, 82, 51, 49, 82, 49, 81, 82, 65, + 65, 66, 81, 65, 50, 114, 33, 34, 150, 225, 240, 17, + 0, 16, 16, 95, 28, 67, 225, 130, 49, 194, 114, 81, + 162, 130, 83, 99, 145, 97, 38, 18, 130, 113, 129, 146, + 113, 114, 146, 113, 98, 162, 113, 97, 178, 113, 82, 178, + 113, 66, 209, 97, 81, 226, 81, 66, 241, 65, 81, 240, + 33, 49, 66, 240, 51, 66, 240, 177, 101, 242, 81, 81, + 225, 82, 81, 210, 81, 113, 178, 82, 113, 177, 98, 113, + 162, 98, 113, 146, 114, 113, 145, 130, 113, 130, 130, 113, + 129, 162, 81, 130, 162, 81, 114, 194, 49, 129, 228, 0, + 25, 32, 83, 27, 240, 240, 83, 240, 114, 33, 240, 113, + 65, 240, 82, 65, 240, 82, 65, 240, 82, 65, 240, 82, + 65, 240, 82, 49, 240, 98, 49, 240, 98, 33, 240, 130, + 17, 240, 131, 135, 146, 179, 194, 161, 211, 161, 178, 18, + 145, 177, 66, 113, 177, 83, 97, 177, 98, 81, 177, 130, + 65, 162, 131, 33, 178, 146, 17, 194, 163, 129, 51, 147, + 129, 67, 132, 97, 99, 81, 66, 66, 134, 101, 0, 31, + 16, 15, 7, 240, 99, 68, 52, 97, 97, 97, 81, 97, + 81, 0, 22, 64, 40, 11, 113, 145, 146, 145, 145, 146, + 145, 146, 145, 146, 146, 146, 145, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 147, 146, 146, 146, 161, 162, + 146, 162, 161, 162, 162, 161, 177, 48, 40, 11, 1, 177, + 162, 162, 161, 162, 162, 146, 161, 162, 146, 146, 162, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 145, 146, + 146, 146, 145, 146, 145, 146, 145, 145, 161, 145, 145, 160, + 33, 16, 97, 241, 241, 241, 146, 65, 66, 67, 33, 35, + 114, 17, 18, 179, 211, 178, 17, 18, 115, 33, 35, 66, + 65, 66, 145, 241, 241, 241, 0, 43, 16, 51, 26, 0, + 24, 17, 240, 161, 240, 161, 240, 161, 240, 161, 240, 161, + 240, 161, 240, 161, 240, 161, 240, 161, 240, 161, 239, 8, + 225, 240, 161, 240, 161, 240, 161, 240, 161, 240, 161, 240, + 161, 240, 161, 240, 161, 240, 161, 240, 161, 0, 24, 64, + 15, 7, 0, 22, 2, 68, 67, 97, 97, 97, 81, 97, + 81, 240, 176, 9, 12, 0, 28, 73, 57, 0, 24, 48, + 10, 6, 0, 18, 99, 51, 51, 0, 7, 16, 49, 17, + 209, 242, 241, 240, 17, 242, 241, 240, 17, 242, 241, 242, + 242, 241, 242, 241, 240, 17, 242, 241, 240, 17, 242, 241, + 240, 17, 242, 241, 240, 17, 242, 241, 242, 242, 241, 242, + 241, 240, 17, 242, 241, 240, 17, 242, 241, 240, 16, 55, + 17, 0, 7, 4, 178, 66, 130, 98, 98, 129, 98, 130, + 81, 161, 66, 162, 50, 162, 50, 162, 50, 162, 50, 162, + 50, 162, 50, 162, 50, 162, 50, 162, 50, 162, 50, 162, + 50, 162, 50, 162, 66, 145, 82, 130, 97, 130, 98, 98, + 130, 66, 180, 0, 20, 16, 33, 14, 0, 6, 1, 194, + 179, 116, 18, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 138, + 0, 16, 16, 44, 16, 0, 6, 69, 161, 67, 113, 99, + 81, 130, 65, 162, 49, 162, 51, 130, 51, 130, 51, 130, + 226, 210, 226, 225, 226, 210, 210, 225, 225, 225, 225, 113, + 97, 129, 81, 145, 65, 161, 75, 76, 0, 18, 64, 48, + 18, 0, 7, 53, 178, 67, 129, 115, 97, 147, 83, 115, + 83, 115, 83, 115, 243, 242, 243, 242, 241, 212, 240, 51, + 240, 34, 240, 19, 240, 19, 243, 51, 147, 51, 147, 51, + 147, 49, 163, 81, 146, 115, 82, 166, 0, 21, 32, 54, + 19, 0, 8, 65, 240, 34, 240, 34, 240, 19, 241, 18, + 241, 18, 225, 34, 209, 50, 209, 50, 193, 66, 193, 66, + 177, 82, 161, 98, 161, 98, 145, 114, 145, 114, 129, 130, + 113, 146, 127, 1, 210, 240, 34, 240, 34, 240, 34, 240, + 34, 232, 0, 21, 112, 53, 17, 0, 6, 81, 145, 99, + 82, 121, 135, 161, 240, 17, 240, 17, 240, 17, 240, 17, + 240, 17, 37, 145, 17, 81, 130, 113, 113, 130, 240, 17, + 240, 18, 242, 242, 51, 146, 51, 146, 51, 146, 49, 177, + 81, 146, 82, 114, 114, 82, 165, 0, 20, 16, 53, 17, + 0, 7, 37, 162, 81, 130, 97, 114, 98, 98, 114, 98, + 114, 83, 226, 242, 227, 52, 115, 33, 66, 83, 17, 97, + 84, 114, 67, 145, 67, 146, 51, 146, 51, 146, 51, 146, + 66, 146, 66, 146, 67, 129, 98, 114, 99, 97, 131, 65, + 181, 0, 20, 55, 19, 0, 7, 34, 240, 47, 78, 81, + 193, 81, 177, 81, 177, 240, 49, 240, 33, 240, 33, 240, + 49, 240, 33, 240, 34, 240, 33, 240, 34, 240, 34, 240, + 33, 240, 34, 240, 34, 240, 34, 240, 19, 240, 19, 240, + 19, 240, 19, 240, 19, 240, 19, 0, 22, 96, 53, 18, + 0, 7, 54, 177, 82, 145, 129, 113, 146, 97, 161, 82, + 161, 82, 161, 98, 145, 100, 97, 132, 65, 167, 212, 209, + 20, 162, 68, 114, 100, 82, 131, 81, 178, 50, 178, 50, + 193, 50, 193, 50, 178, 66, 161, 98, 129, 130, 97, 182, + 0, 21, 16, 54, 18, 0, 7, 53, 178, 66, 146, 98, + 114, 130, 97, 147, 66, 162, 66, 162, 66, 163, 50, 163, + 50, 163, 50, 163, 50, 163, 65, 148, 66, 132, 82, 97, + 19, 98, 65, 35, 117, 51, 242, 243, 242, 98, 130, 98, + 114, 114, 98, 129, 98, 166, 0, 21, 64, 15, 6, 0, + 9, 3, 51, 51, 0, 7, 115, 51, 51, 0, 7, 16, + 21, 6, 0, 9, 3, 51, 51, 0, 7, 114, 67, 51, + 81, 81, 81, 81, 65, 81, 65, 240, 32, 29, 6, 0, + 6, 99, 51, 51, 240, 209, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 82, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 144, 13, 26, 0, 48, 111, 8, 0, 19, 127, 8, + 0, 45, 112, 36, 16, 0, 18, 67, 211, 211, 0, 9, + 97, 241, 241, 241, 241, 241, 225, 241, 225, 241, 225, 225, + 226, 226, 131, 50, 131, 50, 131, 50, 145, 82, 98, 134, + 240, 240, 144, 37, 15, 240, 240, 54, 114, 98, 65, 146, + 51, 114, 51, 114, 51, 114, 210, 194, 194, 209, 209, 210, + 209, 225, 209, 225, 225, 225, 225, 225, 0, 7, 50, 195, + 195, 0, 17, 112, 90, 26, 0, 7, 70, 240, 50, 99, + 225, 162, 193, 209, 161, 241, 129, 100, 113, 113, 66, 66, + 81, 97, 66, 113, 81, 81, 50, 131, 49, 65, 66, 146, + 50, 49, 50, 162, 65, 49, 50, 162, 65, 49, 50, 162, + 65, 49, 50, 162, 65, 49, 50, 162, 65, 49, 50, 162, + 65, 49, 66, 146, 65, 65, 50, 131, 65, 65, 66, 97, + 18, 49, 82, 66, 66, 18, 49, 97, 100, 68, 129, 240, + 162, 240, 177, 226, 162, 132, 232, 0, 30, 64, 67, 27, + 0, 8, 17, 240, 178, 240, 162, 240, 148, 240, 132, 240, + 113, 34, 240, 113, 35, 240, 97, 35, 240, 81, 66, 240, + 81, 67, 240, 49, 98, 240, 49, 98, 240, 49, 99, 240, + 17, 130, 240, 17, 131, 241, 131, 252, 225, 163, 209, 163, + 193, 194, 193, 195, 177, 195, 161, 226, 161, 227, 131, 211, + 102, 168, 0, 30, 96, 54, 24, 0, 9, 15, 194, 147, + 162, 179, 130, 179, 130, 195, 114, 195, 114, 195, 114, 195, + 114, 179, 130, 163, 146, 130, 205, 178, 148, 146, 179, 130, + 195, 114, 195, 114, 211, 98, 211, 98, 211, 98, 211, 98, + 211, 98, 195, 114, 179, 130, 148, 111, 1, 0, 28, 65, + 24, 0, 10, 22, 81, 148, 82, 49, 131, 145, 18, 114, + 195, 98, 211, 83, 226, 82, 242, 67, 240, 17, 66, 240, + 33, 51, 240, 33, 51, 240, 99, 240, 99, 240, 99, 240, + 99, 240, 99, 240, 115, 240, 17, 67, 240, 17, 67, 240, + 17, 83, 225, 114, 225, 130, 193, 163, 145, 196, 82, 240, + 22, 0, 28, 16, 55, 26, 0, 9, 111, 226, 147, 194, + 179, 162, 195, 146, 210, 146, 211, 130, 227, 114, 227, 114, + 242, 114, 243, 98, 243, 98, 243, 98, 243, 98, 243, 98, + 243, 98, 243, 98, 242, 114, 227, 114, 227, 114, 226, 130, + 211, 130, 195, 146, 179, 162, 147, 159, 0, 30, 80, 56, + 24, 0, 9, 15, 4, 130, 180, 114, 210, 114, 225, 114, + 225, 114, 225, 114, 225, 114, 129, 210, 129, 210, 129, 210, + 114, 219, 210, 114, 210, 129, 210, 129, 210, 129, 210, 241, + 98, 241, 98, 241, 98, 241, 98, 226, 98, 225, 114, 210, + 114, 180, 79, 5, 0, 27, 64, 55, 22, 0, 8, 47, + 3, 114, 163, 114, 193, 114, 194, 98, 209, 98, 209, 98, + 209, 98, 209, 98, 113, 194, 113, 194, 113, 194, 98, 202, + 194, 98, 194, 113, 194, 113, 194, 113, 194, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 41, 0, + 26, 48, 64, 26, 0, 10, 118, 81, 195, 82, 49, 163, + 145, 33, 146, 195, 130, 226, 115, 226, 114, 240, 17, 99, + 240, 17, 99, 240, 17, 83, 240, 33, 83, 240, 131, 240, + 131, 240, 131, 240, 131, 240, 131, 200, 67, 242, 99, 242, + 114, 242, 115, 226, 131, 210, 147, 194, 163, 163, 180, 98, + 33, 231, 65, 0, 29, 112, 56, 24, 0, 9, 8, 88, + 98, 178, 146, 178, 146, 178, 146, 178, 146, 178, 146, 178, + 146, 178, 146, 178, 146, 178, 146, 178, 159, 146, 178, 146, + 178, 146, 178, 146, 178, 146, 178, 146, 178, 146, 178, 146, + 178, 146, 178, 146, 178, 146, 178, 146, 178, 104, 88, 0, + 27, 48, 32, 11, 240, 240, 56, 98, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 104, 0, 12, 96, 36, 16, + 0, 6, 88, 194, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 83, 98, 83, + 98, 83, 98, 97, 98, 114, 66, 165, 0, 19, 64, 26, + 0, 9, 104, 150, 98, 210, 146, 209, 162, 193, 178, 177, + 194, 161, 210, 145, 226, 129, 242, 113, 240, 18, 97, 240, + 34, 82, 240, 34, 53, 240, 18, 33, 50, 240, 18, 17, + 67, 243, 99, 226, 130, 226, 131, 210, 147, 194, 162, 194, + 163, 178, 179, 162, 194, 162, 195, 146, 196, 88, 135, 0, + 29, 80, 56, 21, 0, 7, 121, 242, 240, 66, 240, 66, + 240, 66, 240, 66, 240, 66, 240, 66, 240, 66, 240, 66, + 240, 66, 240, 66, 240, 66, 240, 66, 240, 66, 240, 66, + 240, 66, 193, 98, 193, 98, 193, 98, 177, 114, 177, 114, + 177, 114, 162, 114, 132, 79, 2, 0, 24, 16, 100, 30, + 0, 11, 38, 240, 21, 99, 243, 145, 18, 209, 18, 145, + 18, 209, 18, 145, 18, 209, 18, 145, 34, 177, 34, 145, + 34, 177, 34, 145, 35, 161, 34, 145, 50, 145, 50, 145, + 50, 145, 50, 145, 51, 129, 50, 145, 66, 113, 66, 145, + 66, 113, 66, 145, 82, 81, 82, 145, 82, 81, 82, 145, + 82, 81, 82, 145, 98, 49, 98, 145, 98, 49, 98, 145, + 99, 33, 98, 145, 114, 17, 114, 145, 114, 17, 114, 145, + 116, 114, 145, 130, 130, 131, 114, 130, 103, 81, 104, 0, + 34, 16, 75, 25, 0, 9, 54, 151, 100, 163, 129, 18, + 177, 145, 19, 161, 145, 34, 161, 145, 35, 145, 145, 51, + 129, 145, 66, 129, 145, 67, 113, 145, 82, 113, 145, 83, + 97, 145, 99, 81, 145, 114, 81, 145, 115, 65, 145, 130, + 65, 145, 131, 49, 145, 147, 33, 145, 162, 33, 145, 163, + 17, 145, 178, 17, 145, 180, 145, 195, 145, 210, 131, 194, + 103, 177, 0, 28, 112, 66, 26, 0, 10, 103, 240, 35, + 83, 226, 146, 194, 178, 162, 210, 131, 226, 99, 243, 83, + 243, 82, 240, 34, 67, 240, 35, 51, 240, 35, 51, 240, + 35, 51, 240, 35, 51, 240, 35, 51, 240, 35, 51, 240, + 35, 67, 240, 18, 83, 243, 83, 243, 99, 211, 130, 210, + 147, 178, 194, 146, 227, 83, 240, 39, 0, 30, 80, 54, + 23, 0, 8, 95, 178, 147, 146, 163, 130, 179, 114, 195, + 98, 195, 98, 195, 98, 195, 98, 195, 98, 179, 114, 163, + 130, 147, 156, 178, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 56, 0, 27, 96, 93, 26, 0, 10, 103, 240, 35, + 83, 226, 146, 179, 178, 162, 210, 131, 211, 99, 243, 83, + 243, 82, 240, 34, 67, 240, 35, 51, 240, 35, 51, 240, + 35, 51, 240, 35, 51, 240, 35, 51, 240, 35, 51, 240, + 35, 66, 240, 34, 83, 243, 83, 242, 114, 84, 83, 130, + 65, 49, 66, 147, 33, 81, 34, 179, 17, 81, 18, 226, + 17, 66, 240, 54, 17, 240, 161, 97, 240, 49, 97, 240, + 50, 81, 240, 51, 50, 240, 70, 240, 86, 240, 100, 0, + 7, 16, 59, 27, 0, 10, 29, 240, 34, 116, 226, 147, + 210, 163, 194, 179, 178, 179, 178, 179, 178, 179, 178, 179, + 178, 163, 194, 147, 210, 130, 250, 240, 34, 115, 242, 146, + 226, 147, 210, 162, 210, 162, 210, 163, 194, 163, 194, 163, + 194, 163, 81, 98, 163, 81, 98, 179, 49, 72, 149, 0, + 31, 53, 18, 0, 7, 37, 65, 99, 66, 33, 82, 131, + 82, 146, 66, 162, 66, 177, 66, 177, 66, 177, 67, 161, + 83, 245, 232, 200, 229, 240, 19, 240, 19, 243, 49, 194, + 49, 194, 49, 194, 50, 178, 50, 162, 67, 145, 81, 34, + 82, 97, 70, 0, 21, 16, 63, 25, 0, 9, 63, 7, + 51, 114, 115, 50, 130, 130, 49, 146, 145, 49, 146, 145, + 49, 146, 145, 49, 146, 145, 49, 146, 145, 210, 240, 130, + 240, 130, 240, 130, 240, 130, 240, 130, 240, 130, 240, 130, + 240, 130, 240, 130, 240, 130, 240, 130, 240, 130, 240, 130, + 240, 130, 240, 130, 240, 74, 0, 29, 32, 57, 25, 0, + 9, 56, 119, 98, 195, 130, 209, 146, 209, 146, 209, 146, + 209, 146, 209, 146, 209, 146, 209, 146, 209, 146, 209, 146, + 209, 146, 209, 146, 209, 146, 209, 146, 209, 146, 209, 146, + 209, 146, 209, 161, 193, 178, 177, 193, 161, 210, 130, 227, + 81, 240, 54, 0, 29, 64, 67, 28, 0, 10, 72, 182, + 84, 227, 131, 241, 147, 225, 179, 209, 179, 209, 194, 193, + 211, 177, 211, 161, 242, 161, 243, 145, 240, 18, 129, 240, + 35, 113, 240, 35, 97, 240, 66, 97, 240, 67, 81, 240, + 82, 65, 240, 99, 49, 240, 99, 33, 240, 130, 33, 240, + 131, 17, 240, 147, 240, 163, 240, 162, 240, 193, 0, 33, + 48, 103, 38, 0, 14, 40, 103, 134, 83, 179, 194, 130, + 194, 193, 147, 179, 177, 147, 179, 177, 162, 161, 18, 161, + 179, 145, 19, 145, 179, 145, 19, 145, 194, 129, 50, 129, + 211, 113, 51, 113, 211, 113, 51, 113, 226, 97, 82, 97, + 243, 81, 82, 97, 243, 81, 83, 81, 240, 18, 65, 114, + 65, 240, 35, 49, 114, 65, 240, 35, 49, 115, 49, 240, + 50, 33, 146, 33, 240, 67, 17, 146, 33, 240, 67, 17, + 147, 17, 240, 83, 179, 240, 99, 179, 240, 99, 179, 240, + 113, 209, 240, 129, 209, 0, 44, 48, 68, 28, 0, 10, + 73, 135, 116, 179, 179, 177, 227, 161, 243, 129, 240, 19, + 113, 240, 51, 97, 240, 67, 65, 240, 83, 49, 240, 115, + 17, 240, 148, 240, 162, 240, 179, 240, 164, 240, 129, 35, + 240, 97, 51, 240, 81, 83, 240, 65, 99, 240, 33, 130, + 240, 17, 147, 241, 163, 209, 195, 177, 211, 163, 196, 103, + 168, 0, 31, 112, 64, 29, 0, 10, 120, 198, 100, 226, + 163, 225, 194, 209, 211, 193, 227, 161, 240, 18, 145, 240, + 35, 129, 240, 51, 97, 240, 67, 81, 240, 99, 65, 240, + 114, 49, 240, 131, 33, 240, 148, 240, 178, 240, 194, 240, + 194, 240, 194, 240, 194, 240, 194, 240, 194, 240, 194, 240, + 194, 240, 194, 240, 152, 0, 34, 16, 57, 21, 0, 8, + 15, 2, 68, 163, 66, 179, 81, 179, 97, 179, 97, 163, + 97, 163, 240, 51, 240, 35, 240, 35, 240, 51, 240, 35, + 240, 50, 240, 51, 240, 35, 240, 50, 145, 131, 145, 115, + 161, 114, 177, 99, 177, 83, 193, 82, 194, 67, 179, 51, + 165, 63, 3, 0, 24, 40, 8, 5, 49, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 117, 48, 23, 13, 240, + 240, 177, 177, 97, 81, 81, 81, 81, 97, 81, 97, 81, + 99, 52, 51, 52, 66, 67, 0, 41, 40, 8, 5, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 53, 48, + 16, 12, 240, 240, 161, 161, 17, 129, 49, 97, 81, 65, + 113, 0, 43, 112, 9, 6, 240, 147, 51, 51, 0, 22, + 112, 14, 7, 240, 241, 81, 81, 97, 97, 100, 52, 67, + 0, 22, 32, 43, 19, 0, 29, 5, 194, 66, 161, 114, + 146, 114, 131, 98, 130, 114, 214, 163, 66, 146, 98, 130, + 114, 114, 130, 49, 50, 130, 49, 50, 130, 49, 50, 115, + 49, 67, 50, 19, 33, 85, 68, 0, 21, 112, 59, 19, + 0, 7, 21, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 37, 162, 17, + 66, 147, 98, 130, 130, 114, 145, 114, 146, 98, 146, 98, + 146, 98, 146, 98, 146, 98, 146, 98, 145, 114, 130, 115, + 98, 129, 33, 66, 145, 53, 0, 22, 32, 31, 16, 0, + 24, 85, 146, 82, 98, 113, 82, 115, 66, 115, 50, 131, + 50, 226, 226, 226, 226, 242, 226, 145, 82, 113, 114, 81, + 165, 0, 18, 96, 58, 20, 0, 8, 85, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 180, 50, 146, 66, 18, 130, 115, 114, 146, 114, 146, + 98, 162, 98, 162, 98, 162, 98, 162, 98, 162, 98, 162, + 114, 146, 114, 146, 130, 115, 146, 66, 21, 132, 53, 0, + 22, 112, 32, 16, 0, 24, 69, 161, 82, 113, 114, 81, + 145, 81, 146, 50, 146, 61, 50, 226, 226, 226, 242, 145, + 66, 145, 82, 113, 114, 81, 164, 0, 18, 112, 35, 13, + 240, 240, 35, 146, 18, 114, 34, 98, 178, 178, 178, 178, + 178, 178, 137, 114, 178, 178, 178, 178, 178, 178, 178, 178, + 178, 178, 178, 178, 178, 136, 0, 15, 32, 51, 19, 0, + 29, 5, 37, 97, 82, 50, 81, 113, 161, 114, 145, 114, + 145, 114, 145, 114, 145, 114, 146, 82, 163, 50, 161, 37, + 177, 240, 49, 240, 50, 240, 58, 172, 82, 147, 66, 194, + 50, 194, 50, 194, 66, 162, 99, 99, 151, 0, 5, 96, + 58, 20, 0, 7, 69, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 37, + 178, 17, 66, 163, 98, 147, 98, 146, 114, 146, 114, 146, + 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, + 114, 146, 114, 146, 114, 103, 55, 0, 22, 112, 28, 10, + 240, 240, 195, 115, 115, 0, 7, 4, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 87, 0, + 11, 80, 37, 11, 0, 6, 19, 131, 131, 0, 7, 100, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 51, 50, 51, 49, 66, 50, + 100, 240, 192, 58, 20, 0, 7, 69, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 101, 114, 99, 146, 97, 178, 81, 194, 65, 210, + 49, 226, 34, 226, 17, 18, 211, 50, 194, 66, 194, 82, + 178, 98, 162, 98, 162, 114, 146, 115, 88, 54, 0, 22, + 112, 32, 11, 240, 240, 53, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 104, 0, 12, 96, 58, 30, 0, + 45, 35, 37, 85, 133, 17, 66, 49, 66, 163, 98, 17, + 98, 147, 99, 114, 146, 114, 130, 146, 114, 130, 146, 114, + 130, 146, 114, 130, 146, 114, 130, 146, 114, 130, 146, 114, + 130, 146, 114, 130, 146, 114, 130, 146, 114, 130, 146, 114, + 130, 103, 55, 40, 0, 34, 16, 40, 20, 0, 30, 35, + 37, 133, 17, 66, 163, 98, 147, 98, 146, 114, 146, 114, + 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, + 146, 114, 146, 114, 146, 114, 103, 55, 0, 22, 112, 37, + 18, 0, 27, 85, 178, 82, 130, 114, 98, 146, 81, 177, + 66, 178, 50, 178, 50, 178, 50, 178, 50, 178, 50, 178, + 65, 177, 82, 146, 98, 114, 130, 82, 181, 0, 21, 32, + 53, 19, 0, 28, 84, 37, 117, 17, 66, 147, 98, 130, + 130, 114, 130, 114, 146, 98, 146, 98, 146, 98, 146, 98, + 146, 98, 146, 98, 130, 114, 130, 115, 98, 130, 17, 66, + 146, 37, 162, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 231, 0, 6, 32, 55, 20, 0, 30, 84, 65, 146, + 66, 33, 130, 113, 17, 114, 131, 114, 146, 98, 162, 98, + 162, 98, 162, 98, 162, 98, 162, 98, 162, 114, 146, 114, + 131, 130, 115, 146, 66, 18, 180, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 248, 240, 240, 208, + 27, 14, 0, 21, 35, 35, 69, 17, 34, 99, 50, 99, + 178, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 152, + 0, 16, 64, 35, 14, 0, 21, 53, 114, 82, 65, 129, + 65, 129, 65, 129, 66, 212, 183, 180, 65, 130, 49, 145, + 49, 145, 50, 129, 50, 129, 49, 18, 66, 65, 37, 0, + 16, 64, 36, 14, 0, 9, 33, 209, 209, 209, 194, 194, + 179, 154, 114, 194, 194, 194, 194, 194, 194, 194, 194, 81, + 98, 81, 98, 81, 98, 81, 98, 81, 114, 49, 148, 0, + 16, 48, 41, 20, 0, 30, 5, 84, 146, 114, 146, 114, + 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, + 146, 114, 146, 114, 146, 114, 146, 99, 146, 81, 18, 162, + 65, 21, 133, 37, 0, 22, 112, 39, 20, 0, 30, 6, + 101, 83, 130, 130, 129, 146, 129, 162, 97, 178, 97, 178, + 97, 194, 65, 210, 65, 226, 33, 242, 33, 242, 33, 240, + 19, 240, 35, 240, 49, 240, 65, 0, 23, 112, 59, 27, + 0, 40, 70, 54, 69, 83, 98, 114, 130, 98, 129, 130, + 114, 97, 146, 99, 97, 162, 83, 81, 178, 65, 34, 65, + 178, 65, 34, 65, 194, 49, 34, 49, 210, 33, 66, 33, + 210, 33, 66, 33, 226, 17, 66, 17, 243, 99, 243, 99, + 240, 18, 113, 240, 33, 129, 0, 31, 80, 40, 21, 0, + 31, 71, 85, 115, 99, 162, 98, 179, 81, 211, 49, 242, + 33, 240, 35, 240, 66, 240, 67, 240, 33, 18, 240, 17, + 50, 225, 82, 193, 99, 177, 114, 147, 130, 102, 102, 0, + 24, 51, 20, 0, 30, 6, 101, 82, 146, 129, 145, 146, + 129, 146, 113, 178, 97, 178, 81, 210, 65, 210, 49, 226, + 49, 242, 33, 242, 17, 240, 35, 240, 34, 240, 50, 240, + 65, 240, 49, 240, 65, 240, 49, 210, 65, 210, 49, 225, + 50, 243, 0, 7, 33, 16, 0, 24, 28, 66, 114, 81, + 115, 81, 114, 81, 114, 210, 211, 210, 210, 210, 97, 99, + 97, 98, 113, 82, 129, 66, 130, 66, 115, 61, 0, 18, + 48, 9, 21, 0, 47, 47, 3, 0, 47, 80, 10, 38, + 0, 85, 79, 15, 5, 0, 85, 112, 19, 13, 240, 240, + 178, 66, 82, 66, 66, 66, 81, 81, 82, 66, 81, 81, + 0, 46, 32, 13, 15, 0, 7, 99, 97, 66, 34, 34, + 65, 83, 0, 57, +}; + +//***************************************************************************** +// +// The font definition for the 38 point Cm font. +// +//***************************************************************************** +const tFont g_sFontCm38 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 34, + + // + // The height of the font. + // + 37, + + // + // The baseline of the font. + // + 28, + + // + // The offset to each character in the font. + // + { + 0, 5, 35, 61, 159, 231, 326, 409, + 424, 464, 504, 537, 588, 603, 612, 622, + 671, 726, 759, 803, 851, 905, 958, 1011, + 1066, 1119, 1173, 1188, 1209, 1238, 1251, 1287, + 1324, 1414, 1481, 1535, 1600, 1655, 1711, 1766, + 1830, 1886, 1918, 1954, 2018, 2074, 2174, 2249, + 2315, 2369, 2462, 2521, 2574, 2637, 2694, 2761, + 2864, 2932, 2996, 3053, 3093, 3116, 3156, 3172, + 3181, 3195, 3238, 3297, 3328, 3386, 3418, 3453, + 3504, 3562, 3590, 3627, 3685, 3717, 3775, 3815, + 3852, 3905, 3960, 3987, 4022, 4058, 4099, 4138, + 4197, 4237, 4288, 4321, 4330, 4340, 4359, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm38Data +}; diff --git a/grlib/fonts/fontcm38b.c b/grlib/fonts/fontcm38b.c new file mode 100644 index 0000000..be43efa --- /dev/null +++ b/grlib/fonts/fontcm38b.c @@ -0,0 +1,475 @@ +//***************************************************************************** +// +// fontcm38b.c - Font definition for the 38pt Cm bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 38 point +// Bold: yes +// Italic: no +// Memory usage: 4628 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 38 point Cm bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm38bData[4426] = +{ + 5, 15, 0, 73, 16, 32, 9, 240, 68, 70, 54, 54, + 54, 54, 69, 68, 84, 84, 84, 84, 84, 99, 98, 114, + 114, 114, 240, 240, 52, 70, 54, 54, 54, 68, 0, 11, + 96, 35, 18, 0, 6, 115, 99, 85, 69, 70, 54, 54, + 54, 54, 54, 67, 17, 67, 17, 129, 129, 114, 114, 113, + 129, 114, 114, 113, 129, 114, 114, 98, 114, 0, 52, 64, + 99, 30, 0, 12, 113, 114, 240, 67, 83, 240, 66, 98, + 240, 82, 98, 240, 67, 98, 240, 66, 99, 240, 66, 98, + 240, 82, 98, 240, 67, 98, 240, 66, 99, 240, 66, 98, + 175, 12, 63, 12, 194, 98, 240, 82, 98, 240, 67, 98, + 240, 67, 83, 240, 66, 99, 240, 66, 98, 240, 82, 98, + 207, 12, 63, 12, 162, 98, 240, 67, 98, 240, 66, 99, + 240, 66, 98, 240, 82, 98, 240, 67, 98, 240, 66, 99, + 240, 66, 98, 240, 82, 98, 240, 67, 83, 240, 66, 113, + 0, 13, 32, 70, 18, 114, 240, 18, 240, 18, 216, 139, + 115, 34, 35, 83, 50, 51, 51, 66, 36, 51, 66, 36, + 51, 66, 36, 52, 50, 36, 53, 34, 35, 73, 170, 139, + 139, 154, 183, 178, 21, 67, 50, 36, 53, 34, 51, 53, + 34, 51, 53, 34, 51, 52, 50, 51, 65, 82, 50, 82, + 66, 35, 99, 34, 19, 137, 182, 226, 240, 18, 0, 19, + 16, 95, 31, 68, 226, 151, 211, 131, 36, 163, 131, 69, + 101, 131, 79, 132, 82, 37, 19, 148, 82, 116, 148, 82, + 115, 164, 82, 99, 180, 82, 84, 180, 82, 83, 211, 82, + 67, 227, 66, 68, 243, 35, 67, 240, 38, 67, 240, 196, + 240, 195, 86, 240, 19, 83, 35, 227, 83, 66, 227, 83, + 82, 195, 84, 82, 179, 100, 82, 179, 100, 82, 163, 116, + 82, 147, 132, 82, 147, 132, 82, 131, 148, 82, 115, 179, + 66, 131, 180, 35, 115, 215, 145, 240, 20, 0, 31, 96, + 81, 30, 240, 240, 133, 240, 151, 240, 115, 50, 240, 100, + 66, 240, 83, 82, 240, 68, 82, 240, 68, 82, 240, 68, + 82, 240, 68, 66, 240, 84, 50, 240, 101, 34, 240, 101, + 18, 120, 134, 136, 133, 194, 181, 178, 198, 146, 200, 130, + 179, 21, 114, 179, 38, 98, 164, 54, 66, 180, 70, 34, + 181, 88, 197, 103, 197, 118, 114, 69, 118, 98, 69, 83, + 21, 66, 107, 57, 150, 134, 0, 38, 32, 20, 9, 240, + 211, 85, 70, 54, 54, 67, 17, 129, 114, 113, 114, 113, + 114, 98, 0, 26, 80, 42, 12, 129, 162, 146, 147, 131, + 146, 147, 147, 131, 147, 132, 132, 132, 131, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 148, 132, 132, + 132, 147, 148, 147, 148, 147, 163, 162, 178, 177, 48, 42, + 12, 1, 178, 178, 178, 163, 163, 147, 148, 147, 147, 148, + 132, 147, 147, 148, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 131, 147, 132, 132, 131, 147, 132, 131, 147, 131, + 146, 146, 146, 161, 176, 35, 16, 83, 211, 211, 211, 130, + 51, 50, 52, 18, 51, 53, 17, 21, 89, 149, 167, 116, + 17, 20, 68, 33, 36, 51, 35, 35, 65, 51, 50, 131, + 211, 211, 0, 45, 55, 27, 0, 25, 2, 240, 162, 240, + 162, 240, 162, 240, 162, 240, 162, 240, 162, 240, 162, 240, + 162, 240, 162, 240, 162, 240, 162, 239, 9, 63, 9, 226, + 240, 162, 240, 162, 240, 162, 240, 162, 240, 162, 240, 162, + 240, 162, 240, 162, 240, 162, 240, 162, 0, 25, 48, 21, + 9, 0, 26, 3, 85, 70, 54, 54, 67, 17, 129, 114, + 113, 114, 113, 114, 98, 240, 240, 48, 10, 13, 0, 29, + 42, 58, 58, 58, 0, 28, 13, 9, 0, 26, 4, 70, + 54, 54, 54, 68, 0, 11, 96, 48, 18, 210, 243, 243, + 242, 243, 243, 242, 243, 243, 242, 243, 243, 242, 243, 242, + 240, 18, 243, 242, 240, 18, 243, 242, 240, 18, 243, 242, + 240, 18, 243, 242, 240, 18, 243, 242, 243, 243, 242, 243, + 243, 242, 243, 243, 242, 240, 16, 54, 20, 0, 10, 87, + 195, 52, 147, 84, 115, 115, 100, 116, 84, 116, 84, 117, + 53, 117, 53, 117, 53, 117, 53, 117, 53, 117, 53, 117, + 53, 117, 53, 117, 53, 117, 53, 117, 53, 117, 68, 116, + 84, 116, 84, 116, 99, 115, 116, 84, 132, 52, 183, 0, + 26, 33, 16, 0, 8, 114, 196, 121, 116, 20, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 140, 76, 0, 20, 48, 42, 18, + 0, 9, 70, 170, 115, 69, 98, 101, 69, 69, 69, 85, + 53, 85, 53, 85, 67, 101, 213, 212, 213, 212, 212, 211, + 242, 242, 82, 130, 98, 114, 114, 98, 130, 92, 108, 93, + 78, 78, 0, 23, 45, 19, 0, 10, 22, 186, 131, 69, + 115, 85, 85, 69, 86, 53, 85, 69, 100, 68, 229, 228, + 182, 215, 240, 21, 230, 229, 230, 214, 68, 86, 54, 70, + 54, 70, 54, 70, 53, 85, 84, 69, 123, 167, 0, 24, + 96, 46, 19, 0, 10, 114, 240, 19, 240, 19, 244, 229, + 229, 214, 194, 20, 193, 36, 178, 36, 162, 52, 161, 68, + 146, 68, 130, 84, 114, 100, 114, 100, 98, 116, 111, 1, + 63, 1, 196, 244, 244, 244, 187, 139, 0, 24, 16, 46, + 19, 0, 9, 98, 146, 108, 124, 123, 137, 167, 194, 240, + 34, 240, 34, 240, 34, 37, 171, 132, 68, 114, 116, 244, + 245, 229, 83, 101, 69, 85, 54, 85, 69, 85, 68, 100, + 82, 117, 99, 69, 138, 182, 0, 24, 96, 52, 18, 0, + 9, 117, 184, 148, 51, 116, 52, 100, 68, 85, 68, 84, + 98, 100, 213, 36, 117, 22, 102, 52, 86, 68, 69, 84, + 69, 85, 53, 85, 53, 85, 53, 85, 53, 85, 68, 85, + 68, 85, 68, 84, 100, 68, 101, 36, 137, 181, 0, 23, + 64, 41, 19, 0, 9, 95, 79, 79, 78, 93, 98, 130, + 98, 131, 98, 130, 114, 114, 240, 18, 240, 34, 240, 19, + 240, 19, 243, 240, 19, 244, 244, 244, 229, 229, 229, 229, + 229, 229, 243, 0, 25, 16, 50, 18, 0, 9, 85, 185, + 131, 83, 114, 115, 83, 115, 83, 115, 83, 115, 85, 83, + 86, 66, 104, 19, 121, 169, 169, 115, 24, 83, 55, 83, + 86, 51, 117, 51, 132, 51, 147, 51, 147, 51, 146, 83, + 115, 84, 83, 122, 166, 0, 23, 64, 50, 18, 0, 9, + 85, 185, 132, 52, 100, 83, 100, 84, 69, 84, 69, 85, + 53, 85, 53, 85, 53, 85, 53, 85, 68, 85, 68, 70, + 84, 54, 108, 117, 21, 213, 212, 99, 84, 84, 84, 85, + 67, 100, 68, 99, 68, 137, 181, 0, 23, 80, 21, 9, + 0, 13, 84, 70, 54, 54, 54, 68, 0, 6, 36, 70, + 54, 54, 54, 68, 0, 11, 96, 28, 9, 0, 13, 84, + 70, 54, 54, 54, 68, 0, 6, 35, 85, 70, 54, 54, + 69, 129, 114, 113, 114, 113, 114, 98, 240, 240, 48, 32, + 9, 0, 11, 52, 70, 54, 54, 54, 68, 240, 146, 114, + 114, 114, 114, 100, 84, 84, 84, 84, 84, 84, 70, 54, + 54, 54, 54, 54, 68, 240, 112, 17, 28, 0, 49, 15, + 10, 63, 10, 0, 24, 127, 10, 63, 10, 0, 49, 48, + 39, 17, 0, 21, 115, 213, 197, 182, 197, 211, 0, 6, + 2, 242, 242, 242, 242, 242, 227, 226, 227, 212, 196, 197, + 83, 69, 69, 53, 69, 53, 69, 53, 83, 84, 82, 135, + 0, 7, 32, 39, 17, 240, 240, 134, 154, 99, 69, 68, + 85, 53, 69, 53, 69, 53, 69, 67, 84, 197, 180, 196, + 211, 211, 227, 226, 242, 242, 242, 0, 8, 35, 213, 197, + 197, 197, 211, 0, 22, 48, 90, 29, 0, 8, 56, 240, + 61, 244, 117, 195, 195, 163, 227, 131, 85, 99, 114, 72, + 98, 98, 68, 51, 98, 82, 52, 98, 82, 82, 52, 100, + 51, 50, 52, 116, 66, 50, 52, 116, 66, 50, 52, 116, + 66, 50, 52, 116, 66, 50, 52, 116, 66, 50, 52, 116, + 66, 50, 52, 116, 66, 50, 68, 100, 66, 66, 52, 100, + 65, 82, 68, 69, 50, 98, 72, 23, 114, 101, 53, 146, + 240, 210, 240, 50, 130, 229, 147, 134, 250, 0, 37, 64, + 64, 29, 0, 12, 51, 240, 179, 240, 164, 240, 165, 240, + 149, 240, 134, 240, 135, 240, 119, 240, 98, 22, 240, 82, + 22, 240, 67, 37, 240, 66, 54, 240, 50, 69, 240, 34, + 85, 240, 34, 86, 240, 18, 101, 242, 117, 255, 239, 210, + 150, 194, 150, 179, 165, 178, 182, 162, 182, 105, 92, 57, + 92, 0, 36, 80, 57, 26, 0, 9, 111, 3, 143, 5, + 165, 117, 149, 117, 149, 133, 133, 133, 133, 133, 133, 133, + 133, 133, 133, 117, 149, 101, 174, 207, 181, 117, 149, 133, + 133, 133, 133, 149, 117, 149, 117, 149, 117, 149, 117, 149, + 117, 134, 117, 133, 133, 117, 95, 5, 111, 3, 0, 33, + 64, 60, 26, 0, 11, 6, 97, 172, 34, 134, 102, 117, + 149, 101, 180, 85, 211, 85, 226, 70, 226, 69, 242, 54, + 242, 54, 240, 86, 240, 86, 240, 86, 240, 86, 240, 86, + 240, 86, 240, 17, 69, 240, 17, 70, 226, 85, 226, 85, + 226, 101, 194, 133, 162, 166, 99, 220, 240, 24, 0, 33, + 80, 59, 29, 0, 10, 127, 3, 191, 5, 213, 103, 181, + 134, 165, 150, 149, 165, 149, 166, 133, 181, 133, 181, 133, + 182, 117, 182, 117, 182, 117, 182, 117, 182, 117, 182, 117, + 182, 117, 182, 117, 181, 133, 181, 133, 166, 133, 165, 149, + 150, 149, 134, 165, 118, 127, 5, 159, 3, 0, 37, 80, + 61, 26, 0, 9, 111, 6, 95, 6, 149, 132, 149, 148, + 133, 163, 133, 178, 133, 178, 133, 82, 66, 133, 82, 66, + 133, 82, 229, 67, 236, 236, 229, 67, 229, 82, 229, 82, + 97, 117, 82, 82, 117, 82, 82, 117, 194, 117, 194, 117, + 178, 133, 178, 133, 163, 133, 133, 79, 7, 79, 7, 0, + 33, 55, 24, 0, 9, 15, 5, 79, 5, 133, 116, 133, + 131, 133, 146, 133, 147, 117, 162, 117, 162, 117, 66, 66, + 117, 66, 213, 66, 213, 51, 219, 219, 213, 51, 213, 66, + 213, 66, 213, 66, 213, 240, 69, 240, 69, 240, 69, 240, + 69, 240, 69, 253, 189, 0, 31, 48, 58, 29, 0, 12, + 23, 81, 219, 50, 182, 102, 165, 149, 149, 180, 133, 211, + 118, 211, 118, 226, 117, 242, 102, 242, 102, 240, 134, 240, + 134, 240, 134, 240, 134, 240, 134, 125, 54, 125, 69, 197, + 118, 181, 133, 181, 133, 181, 149, 165, 166, 133, 183, 71, + 219, 35, 247, 97, 0, 37, 59, 30, 0, 11, 45, 29, + 61, 29, 117, 149, 181, 149, 181, 149, 181, 149, 181, 149, + 181, 149, 181, 149, 181, 149, 181, 149, 191, 4, 191, 4, + 181, 149, 181, 149, 181, 149, 181, 149, 181, 149, 181, 149, + 181, 149, 181, 149, 181, 149, 181, 149, 181, 149, 125, 29, + 61, 29, 0, 37, 112, 33, 16, 0, 6, 13, 61, 117, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 125, 61, 0, + 20, 48, 55, 21, 0, 8, 77, 141, 213, 240, 21, 240, + 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, + 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, + 21, 240, 21, 116, 85, 102, 69, 102, 69, 102, 69, 102, + 68, 132, 69, 146, 69, 198, 0, 27, 80, 67, 30, 0, + 11, 45, 88, 77, 88, 133, 179, 181, 163, 197, 147, 213, + 131, 229, 115, 245, 99, 240, 21, 83, 240, 37, 67, 240, + 53, 51, 240, 69, 37, 240, 53, 23, 240, 39, 21, 240, + 38, 38, 240, 21, 70, 245, 85, 245, 86, 229, 102, 213, + 117, 213, 118, 197, 134, 181, 149, 181, 150, 109, 59, 61, + 59, 0, 37, 112, 57, 23, 0, 8, 93, 173, 229, 240, + 53, 240, 53, 240, 53, 240, 53, 240, 53, 240, 53, 240, + 53, 240, 53, 240, 53, 240, 53, 240, 53, 240, 53, 240, + 53, 146, 117, 146, 117, 146, 117, 146, 117, 130, 133, 130, + 133, 115, 133, 115, 133, 85, 79, 4, 79, 4, 0, 29, + 32, 97, 37, 0, 13, 122, 234, 58, 234, 118, 230, 183, + 193, 21, 178, 20, 193, 21, 178, 21, 162, 21, 178, 21, + 161, 37, 178, 36, 161, 37, 178, 37, 130, 37, 178, 52, + 129, 53, 178, 52, 114, 53, 178, 53, 97, 69, 178, 68, + 97, 69, 178, 69, 66, 69, 178, 69, 65, 85, 178, 84, + 65, 85, 178, 85, 34, 85, 178, 85, 33, 101, 178, 100, + 18, 101, 178, 103, 101, 178, 117, 117, 178, 117, 117, 178, + 116, 133, 178, 131, 133, 121, 83, 92, 57, 82, 108, 0, + 46, 80, 71, 31, 0, 11, 90, 138, 58, 138, 119, 178, + 184, 162, 185, 146, 178, 22, 146, 178, 38, 130, 178, 54, + 114, 178, 55, 98, 178, 70, 98, 178, 86, 82, 178, 102, + 66, 178, 102, 66, 178, 118, 50, 178, 134, 34, 178, 150, + 18, 178, 150, 18, 178, 168, 178, 183, 178, 198, 178, 198, + 178, 213, 178, 228, 178, 228, 122, 179, 122, 194, 0, 39, + 80, 57, 28, 0, 11, 87, 240, 61, 229, 85, 197, 118, + 149, 149, 133, 181, 102, 182, 85, 213, 85, 213, 70, 214, + 54, 214, 54, 214, 54, 214, 54, 214, 54, 214, 54, 214, + 54, 214, 69, 213, 86, 197, 86, 182, 101, 181, 133, 149, + 150, 118, 181, 85, 237, 240, 55, 0, 36, 64, 56, 26, + 0, 9, 111, 2, 159, 5, 165, 102, 149, 118, 133, 133, + 133, 134, 117, 134, 117, 134, 117, 134, 117, 134, 117, 133, + 133, 118, 133, 102, 159, 1, 174, 197, 240, 101, 240, 101, + 240, 101, 240, 101, 240, 101, 240, 101, 240, 101, 240, 101, + 240, 45, 221, 0, 34, 16, 77, 28, 0, 11, 87, 240, + 61, 229, 70, 182, 117, 165, 149, 133, 181, 102, 182, 86, + 197, 85, 213, 70, 214, 54, 214, 54, 214, 54, 214, 54, + 214, 54, 214, 54, 214, 54, 214, 69, 213, 85, 213, 86, + 181, 117, 52, 69, 117, 38, 52, 149, 17, 66, 20, 182, + 84, 252, 97, 187, 81, 240, 67, 66, 240, 73, 240, 73, + 240, 73, 240, 72, 240, 103, 240, 116, 0, 11, 32, 63, + 31, 0, 11, 95, 2, 239, 5, 245, 102, 229, 118, 213, + 133, 213, 134, 197, 134, 197, 134, 197, 134, 197, 133, 213, + 118, 213, 102, 239, 240, 30, 240, 37, 85, 240, 21, 101, + 245, 117, 229, 117, 229, 117, 229, 117, 229, 117, 229, 118, + 213, 118, 66, 117, 118, 65, 76, 86, 34, 76, 134, 0, + 39, 48, 50, 20, 0, 8, 21, 66, 121, 19, 100, 70, + 84, 116, 83, 147, 68, 147, 68, 162, 68, 162, 69, 146, + 71, 234, 173, 141, 141, 155, 216, 245, 50, 165, 50, 180, + 50, 180, 51, 164, 51, 163, 68, 132, 70, 84, 83, 26, + 98, 70, 0, 26, 65, 26, 0, 9, 127, 6, 95, 6, + 69, 69, 69, 51, 101, 99, 51, 101, 99, 50, 117, 114, + 50, 117, 114, 50, 117, 114, 50, 117, 114, 50, 117, 114, + 197, 240, 101, 240, 101, 240, 101, 240, 101, 240, 101, 240, + 101, 240, 101, 240, 101, 240, 101, 240, 101, 240, 101, 240, + 101, 240, 101, 240, 31, 191, 0, 33, 48, 60, 30, 0, + 11, 45, 74, 61, 74, 117, 194, 181, 194, 181, 194, 181, + 194, 181, 194, 181, 194, 181, 194, 181, 194, 181, 194, 181, + 194, 181, 194, 181, 194, 181, 194, 181, 194, 181, 194, 181, + 194, 181, 194, 181, 194, 196, 178, 213, 162, 228, 146, 240, + 21, 84, 240, 43, 240, 103, 0, 39, 16, 66, 30, 0, + 11, 44, 120, 60, 120, 102, 195, 150, 194, 181, 194, 182, + 162, 213, 162, 214, 131, 214, 130, 245, 130, 246, 98, 240, + 37, 98, 240, 38, 82, 240, 38, 66, 240, 69, 66, 240, + 70, 35, 240, 85, 34, 240, 102, 18, 240, 104, 240, 135, + 240, 135, 240, 149, 240, 165, 240, 164, 240, 195, 240, 195, + 0, 39, 48, 96, 40, 0, 15, 11, 44, 72, 59, 44, + 72, 101, 134, 162, 150, 133, 162, 150, 133, 162, 165, 134, + 130, 182, 133, 130, 197, 118, 130, 197, 119, 98, 214, 103, + 98, 229, 82, 22, 82, 229, 82, 22, 66, 246, 66, 37, + 66, 240, 21, 50, 54, 50, 240, 21, 50, 54, 34, 240, + 38, 33, 85, 34, 240, 53, 18, 86, 18, 240, 56, 88, + 240, 71, 119, 240, 86, 119, 240, 86, 118, 240, 101, 149, + 240, 116, 148, 240, 132, 148, 240, 131, 179, 240, 146, 178, + 0, 51, 96, 66, 30, 0, 11, 59, 58, 107, 58, 150, + 131, 230, 114, 246, 98, 240, 38, 67, 240, 53, 66, 240, + 70, 34, 240, 105, 240, 104, 240, 134, 240, 166, 240, 150, + 240, 166, 240, 135, 240, 136, 240, 98, 38, 240, 67, 38, + 240, 66, 70, 240, 34, 102, 243, 102, 242, 134, 210, 165, + 195, 166, 122, 92, 58, 92, 0, 37, 112, 64, 30, 0, + 11, 44, 120, 60, 120, 102, 195, 166, 178, 198, 146, 214, + 146, 230, 114, 246, 99, 240, 22, 82, 240, 38, 67, 240, + 54, 50, 240, 85, 34, 240, 102, 18, 240, 119, 240, 135, + 240, 149, 240, 165, 240, 165, 240, 165, 240, 165, 240, 165, + 240, 165, 240, 165, 240, 165, 240, 109, 240, 45, 0, 38, + 96, 58, 22, 0, 8, 63, 3, 79, 3, 69, 117, 83, + 134, 82, 134, 98, 134, 98, 118, 113, 134, 113, 118, 240, + 21, 240, 22, 246, 240, 22, 246, 240, 21, 240, 22, 98, + 133, 114, 118, 114, 102, 130, 102, 130, 86, 131, 85, 147, + 70, 132, 69, 118, 63, 4, 63, 4, 0, 27, 112, 41, + 8, 133, 53, 50, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 101, 53, 48, 35, 18, 0, 7, 18, 114, 98, 114, + 113, 129, 114, 114, 113, 129, 114, 114, 113, 129, 129, 19, + 65, 19, 70, 54, 54, 54, 54, 54, 69, 69, 83, 99, + 0, 52, 32, 41, 8, 133, 53, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 53, 53, 48, 16, 13, 240, 240, + 225, 179, 134, 100, 19, 67, 67, 65, 113, 0, 49, 16, + 12, 9, 240, 212, 70, 54, 54, 54, 68, 0, 34, 32, + 20, 9, 240, 242, 98, 113, 114, 113, 114, 113, 129, 19, + 70, 54, 54, 69, 83, 0, 26, 48, 40, 21, 0, 31, + 120, 180, 68, 149, 68, 132, 100, 131, 100, 240, 36, 216, + 171, 134, 52, 117, 84, 116, 100, 100, 116, 100, 116, 100, + 116, 100, 97, 19, 116, 66, 21, 118, 69, 0, 26, 80, + 60, 23, 0, 8, 87, 240, 23, 240, 68, 240, 68, 240, + 68, 240, 68, 240, 68, 240, 68, 240, 68, 240, 68, 38, + 182, 68, 149, 100, 132, 132, 116, 132, 116, 133, 100, 133, + 100, 133, 100, 133, 100, 133, 100, 133, 100, 133, 100, 132, + 116, 132, 117, 100, 131, 18, 68, 146, 69, 0, 29, 112, + 31, 18, 0, 27, 102, 155, 101, 53, 69, 69, 68, 85, + 68, 99, 69, 213, 213, 213, 213, 213, 229, 114, 69, 114, + 85, 67, 122, 166, 0, 23, 48, 58, 23, 0, 9, 119, + 240, 23, 240, 68, 240, 68, 240, 68, 240, 68, 240, 68, + 240, 68, 240, 68, 198, 20, 163, 70, 132, 116, 116, 132, + 116, 132, 101, 132, 101, 132, 101, 132, 101, 132, 101, 132, + 101, 132, 101, 132, 116, 132, 116, 132, 132, 101, 148, 73, + 134, 39, 0, 29, 16, 35, 19, 0, 29, 23, 164, 52, + 116, 84, 84, 100, 84, 116, 53, 116, 53, 116, 63, 1, + 63, 1, 53, 229, 229, 244, 146, 69, 115, 85, 83, 123, + 182, 0, 24, 80, 38, 17, 240, 240, 181, 168, 132, 36, + 115, 37, 100, 37, 100, 51, 116, 212, 212, 212, 185, 137, + 164, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, + 212, 170, 122, 0, 22, 16, 50, 20, 0, 30, 70, 51, + 126, 84, 52, 19, 68, 83, 19, 68, 84, 116, 84, 116, + 84, 116, 84, 132, 52, 154, 161, 37, 178, 240, 51, 240, + 44, 157, 126, 110, 83, 133, 52, 148, 51, 164, 52, 148, + 67, 147, 100, 84, 153, 0, 8, 48, 60, 23, 0, 8, + 87, 240, 23, 240, 68, 240, 68, 240, 68, 240, 68, 240, + 68, 240, 68, 240, 68, 240, 68, 53, 180, 18, 51, 166, + 68, 149, 84, 148, 100, 148, 100, 148, 100, 148, 100, 148, + 100, 148, 100, 148, 100, 148, 100, 148, 100, 148, 100, 148, + 100, 106, 25, 58, 25, 0, 29, 16, 32, 12, 240, 240, + 147, 133, 117, 117, 117, 131, 240, 240, 199, 87, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 89, + 57, 0, 15, 48, 42, 14, 0, 6, 19, 165, 149, 149, + 149, 163, 0, 6, 54, 134, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 68, + 36, 53, 36, 53, 35, 83, 35, 118, 0, 6, 56, 22, + 0, 8, 39, 247, 240, 52, 240, 52, 240, 52, 240, 52, + 240, 52, 240, 52, 240, 52, 240, 52, 71, 116, 71, 116, + 98, 164, 67, 180, 51, 196, 35, 212, 19, 233, 217, 213, + 20, 196, 37, 180, 52, 180, 68, 164, 69, 148, 85, 89, + 40, 57, 40, 0, 27, 112, 33, 13, 240, 240, 151, 103, + 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, + 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 106, 58, + 0, 16, 80, 60, 34, 0, 51, 7, 53, 101, 135, 39, + 56, 119, 18, 52, 18, 53, 149, 86, 84, 149, 85, 100, + 148, 100, 116, 148, 100, 116, 148, 100, 116, 148, 100, 116, + 148, 100, 116, 148, 100, 116, 148, 100, 116, 148, 100, 116, + 148, 100, 116, 148, 100, 116, 106, 25, 26, 58, 25, 26, + 0, 42, 112, 43, 23, 0, 34, 71, 53, 135, 18, 51, + 164, 17, 68, 149, 84, 148, 100, 148, 100, 148, 100, 148, + 100, 148, 100, 148, 100, 148, 100, 148, 100, 148, 100, 148, + 100, 148, 100, 106, 25, 58, 25, 0, 29, 16, 37, 20, + 0, 30, 87, 180, 52, 132, 84, 100, 116, 84, 116, 69, + 117, 53, 117, 53, 117, 53, 117, 53, 117, 53, 117, 53, + 117, 68, 116, 85, 85, 101, 53, 139, 183, 0, 26, 53, + 23, 0, 34, 71, 38, 135, 25, 105, 69, 133, 101, 116, + 117, 116, 133, 100, 133, 100, 133, 100, 133, 100, 133, 100, + 133, 100, 133, 100, 132, 116, 117, 117, 100, 134, 68, 148, + 22, 196, 240, 68, 240, 68, 240, 68, 240, 68, 240, 26, + 218, 0, 10, 32, 54, 23, 0, 35, 37, 66, 168, 50, + 133, 66, 19, 132, 101, 117, 116, 116, 132, 101, 132, 101, + 132, 101, 132, 101, 132, 101, 132, 101, 132, 116, 132, 117, + 116, 132, 101, 148, 70, 182, 36, 240, 68, 240, 68, 240, + 68, 240, 68, 240, 68, 240, 26, 218, 0, 9, 30, 18, + 0, 27, 7, 37, 71, 18, 20, 101, 52, 101, 52, 100, + 82, 116, 228, 228, 228, 228, 228, 228, 228, 228, 228, 187, + 123, 0, 23, 48, 34, 16, 0, 24, 57, 83, 83, 82, + 114, 67, 114, 67, 114, 69, 185, 138, 122, 137, 181, 50, + 116, 50, 131, 51, 115, 51, 114, 69, 67, 66, 38, 0, + 20, 96, 36, 15, 0, 9, 114, 210, 210, 210, 195, 195, + 180, 155, 75, 100, 180, 180, 180, 180, 180, 180, 180, 180, + 66, 84, 66, 84, 66, 84, 66, 100, 34, 120, 149, 0, + 19, 48, 42, 23, 0, 34, 71, 55, 103, 55, 148, 100, + 148, 100, 148, 100, 148, 100, 148, 100, 148, 100, 148, 100, + 148, 100, 148, 100, 148, 100, 148, 100, 148, 100, 148, 85, + 164, 49, 23, 134, 39, 0, 29, 16, 39, 21, 0, 31, + 73, 54, 57, 54, 85, 114, 132, 98, 149, 82, 164, 81, + 180, 66, 181, 50, 196, 34, 213, 18, 213, 18, 230, 246, + 240, 20, 240, 36, 240, 36, 240, 50, 0, 27, 80, 57, + 29, 0, 43, 72, 24, 39, 56, 24, 39, 85, 68, 98, + 148, 68, 98, 148, 83, 98, 149, 53, 66, 180, 53, 66, + 180, 53, 65, 197, 18, 20, 34, 212, 18, 20, 34, 212, + 18, 38, 230, 54, 245, 69, 244, 84, 240, 20, 84, 240, + 35, 99, 240, 34, 114, 0, 37, 80, 39, 21, 0, 31, + 72, 40, 56, 40, 100, 82, 165, 51, 180, 50, 212, 18, + 245, 240, 21, 240, 36, 240, 37, 247, 211, 20, 210, 52, + 178, 69, 146, 100, 103, 56, 55, 56, 0, 26, 80, 51, + 21, 0, 31, 73, 54, 57, 54, 85, 114, 132, 98, 149, + 82, 164, 66, 180, 66, 181, 50, 196, 34, 213, 18, 230, + 246, 246, 240, 20, 240, 36, 240, 35, 240, 66, 240, 66, + 240, 50, 196, 50, 196, 49, 212, 34, 211, 34, 244, 0, + 9, 112, 35, 17, 0, 25, 93, 67, 85, 66, 85, 82, + 84, 98, 69, 97, 69, 196, 197, 181, 196, 66, 101, 66, + 85, 82, 85, 82, 69, 83, 68, 84, 62, 61, 0, 21, + 96, 11, 22, 0, 46, 111, 4, 63, 4, 0, 55, 48, + 13, 41, 0, 87, 31, 15, 8, 63, 15, 8, 0, 102, + 112, 20, 15, 240, 240, 19, 67, 84, 52, 68, 52, 52, + 52, 68, 52, 67, 67, 82, 82, 0, 57, 13, 16, 0, + 6, 37, 66, 75, 91, 66, 84, 0, 64, 80, +}; + +//***************************************************************************** +// +// The font definition for the 38 point Cm bold font. +// +//***************************************************************************** +const tFont g_sFontCm38b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 37, + + // + // The height of the font. + // + 39, + + // + // The baseline of the font. + // + 29, + + // + // The offset to each character in the font. + // + { + 0, 5, 37, 72, 171, 241, 336, 417, + 437, 479, 521, 556, 611, 632, 642, 655, + 703, 757, 790, 832, 877, 923, 969, 1021, + 1062, 1112, 1162, 1183, 1211, 1243, 1260, 1299, + 1338, 1428, 1492, 1549, 1609, 1668, 1729, 1784, + 1842, 1901, 1934, 1989, 2056, 2113, 2210, 2281, + 2338, 2394, 2471, 2534, 2584, 2649, 2709, 2775, + 2871, 2937, 3001, 3059, 3100, 3135, 3176, 3192, + 3204, 3224, 3264, 3324, 3355, 3413, 3448, 3486, + 3536, 3596, 3628, 3670, 3726, 3759, 3819, 3862, + 3899, 3952, 4006, 4036, 4070, 4106, 4148, 4187, + 4244, 4283, 4334, 4369, 4380, 4393, 4413, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm38bData +}; diff --git a/grlib/fonts/fontcm38i.c b/grlib/fonts/fontcm38i.c new file mode 100644 index 0000000..2a0f6d0 --- /dev/null +++ b/grlib/fonts/fontcm38i.c @@ -0,0 +1,498 @@ +//***************************************************************************** +// +// fontcm38i.c - Font definition for the 38pt Cm italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 38 point +// Bold: no +// Italic: yes +// Memory usage: 4896 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 38 point Cm italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm38iData[4693] = +{ + 5, 15, 0, 69, 48, 32, 13, 240, 82, 164, 147, 163, + 163, 148, 147, 163, 163, 162, 178, 163, 162, 178, 178, 177, + 178, 178, 177, 193, 0, 6, 19, 148, 148, 147, 0, 15, + 112, 27, 15, 0, 5, 115, 67, 68, 52, 68, 52, 68, + 52, 113, 97, 97, 97, 97, 97, 113, 97, 97, 97, 97, + 82, 0, 45, 112, 98, 29, 0, 12, 114, 97, 240, 81, + 113, 240, 66, 98, 240, 65, 113, 240, 66, 98, 240, 65, + 98, 240, 66, 98, 240, 65, 98, 240, 66, 97, 240, 81, + 98, 240, 66, 97, 240, 81, 98, 191, 9, 209, 98, 240, + 66, 97, 240, 81, 98, 240, 66, 97, 240, 81, 98, 240, + 66, 97, 223, 9, 178, 97, 240, 81, 98, 240, 66, 97, + 240, 81, 98, 240, 66, 97, 240, 81, 98, 240, 66, 97, + 240, 81, 98, 240, 66, 97, 240, 81, 98, 240, 66, 97, + 240, 81, 98, 0, 9, 80, 62, 26, 0, 11, 101, 240, + 82, 65, 240, 35, 97, 243, 113, 242, 114, 227, 99, 226, + 114, 242, 240, 131, 240, 130, 240, 146, 240, 146, 240, 90, + 240, 66, 240, 146, 240, 131, 240, 130, 240, 146, 240, 131, + 240, 131, 240, 55, 161, 113, 67, 161, 97, 85, 113, 113, + 65, 51, 66, 133, 101, 0, 30, 64, 95, 28, 116, 209, + 146, 33, 194, 130, 65, 162, 130, 83, 84, 146, 81, 37, + 18, 146, 97, 130, 146, 97, 114, 147, 97, 98, 162, 97, + 98, 178, 97, 82, 194, 97, 66, 210, 81, 66, 226, 81, + 66, 241, 65, 66, 240, 18, 33, 66, 240, 66, 66, 240, + 162, 85, 242, 82, 65, 210, 82, 81, 210, 82, 81, 194, + 82, 97, 178, 98, 97, 162, 99, 97, 146, 114, 97, 146, + 130, 97, 130, 146, 82, 130, 146, 81, 130, 162, 65, 130, + 194, 34, 129, 227, 0, 25, 96, 86, 28, 240, 240, 115, + 240, 130, 49, 240, 98, 81, 131, 130, 97, 130, 131, 97, + 145, 130, 98, 145, 115, 98, 129, 130, 113, 129, 146, 241, + 162, 225, 178, 35, 115, 180, 49, 82, 18, 163, 65, 65, + 65, 162, 81, 49, 97, 132, 49, 49, 113, 115, 20, 65, + 113, 114, 164, 65, 114, 163, 81, 98, 240, 65, 98, 240, + 49, 114, 240, 49, 114, 240, 33, 130, 240, 18, 146, 226, + 178, 193, 227, 115, 240, 40, 0, 33, 48, 16, 8, 240, + 179, 68, 68, 68, 113, 97, 97, 113, 97, 97, 0, 24, + 112, 46, 17, 209, 226, 226, 226, 226, 226, 241, 242, 226, + 242, 226, 242, 226, 242, 226, 242, 242, 227, 226, 242, 242, + 227, 227, 226, 242, 242, 242, 242, 242, 242, 242, 240, 17, + 240, 18, 240, 17, 240, 17, 240, 33, 240, 17, 208, 40, + 16, 145, 242, 241, 242, 241, 241, 242, 226, 226, 226, 226, + 226, 226, 226, 226, 211, 210, 226, 226, 226, 210, 226, 226, + 210, 226, 226, 210, 225, 226, 210, 226, 210, 210, 225, 225, + 225, 225, 240, 34, 17, 130, 241, 240, 17, 242, 162, 49, + 66, 83, 33, 35, 130, 17, 18, 195, 211, 194, 17, 18, + 131, 33, 35, 82, 65, 50, 162, 241, 240, 17, 242, 0, + 46, 51, 25, 0, 23, 65, 240, 145, 240, 130, 240, 130, + 240, 129, 240, 145, 240, 145, 240, 130, 240, 129, 240, 145, + 240, 145, 223, 7, 209, 240, 145, 240, 145, 240, 130, 240, + 129, 240, 145, 240, 145, 240, 130, 240, 130, 240, 129, 240, + 145, 0, 23, 112, 17, 9, 0, 27, 51, 84, 84, 84, + 129, 113, 129, 113, 113, 129, 98, 240, 160, 9, 12, 0, + 28, 73, 57, 0, 24, 48, 11, 7, 0, 21, 19, 52, + 52, 51, 0, 8, 48, 78, 25, 240, 97, 240, 130, 240, + 114, 240, 129, 240, 130, 240, 129, 240, 130, 240, 129, 240, + 130, 240, 114, 240, 129, 240, 130, 240, 129, 240, 130, 240, + 129, 240, 130, 240, 114, 240, 129, 240, 130, 240, 129, 240, + 130, 240, 114, 240, 129, 240, 130, 240, 129, 240, 130, 240, + 129, 240, 130, 240, 114, 240, 129, 240, 130, 240, 129, 240, + 130, 240, 129, 240, 130, 240, 114, 240, 129, 240, 144, 55, + 19, 0, 8, 37, 194, 66, 162, 97, 146, 114, 114, 130, + 114, 130, 98, 146, 98, 146, 83, 131, 82, 147, 82, 146, + 83, 146, 83, 131, 82, 147, 82, 146, 83, 146, 83, 131, + 82, 146, 98, 146, 98, 130, 114, 130, 114, 114, 145, 98, + 162, 66, 212, 0, 22, 112, 34, 16, 0, 7, 65, 226, + 210, 211, 178, 18, 147, 19, 210, 226, 226, 211, 210, 226, + 226, 211, 210, 226, 226, 211, 210, 226, 226, 211, 210, 226, + 155, 0, 18, 80, 64, 20, 0, 8, 85, 225, 66, 193, + 98, 161, 129, 145, 146, 129, 33, 98, 113, 49, 98, 113, + 49, 98, 97, 65, 98, 97, 49, 98, 113, 49, 98, 113, + 33, 98, 146, 98, 240, 34, 240, 34, 240, 18, 240, 18, + 240, 34, 240, 33, 240, 49, 177, 97, 177, 98, 162, 102, + 82, 98, 56, 113, 101, 0, 23, 64, 58, 20, 0, 8, + 85, 210, 66, 162, 129, 145, 146, 113, 162, 98, 49, 98, + 97, 65, 98, 97, 65, 98, 97, 49, 98, 131, 113, 240, + 49, 240, 34, 228, 240, 66, 240, 65, 240, 66, 240, 50, + 240, 50, 129, 146, 114, 131, 114, 130, 129, 130, 145, 114, + 177, 67, 213, 0, 24, 16, 60, 18, 0, 8, 50, 240, + 18, 240, 18, 243, 242, 240, 18, 243, 242, 240, 18, 242, + 240, 18, 243, 242, 242, 240, 18, 242, 240, 18, 49, 178, + 50, 162, 66, 146, 67, 131, 66, 131, 82, 115, 98, 104, + 18, 113, 119, 194, 240, 18, 242, 240, 18, 240, 18, 240, + 18, 240, 17, 240, 240, 240, 53, 20, 0, 8, 34, 114, + 154, 168, 198, 209, 240, 65, 240, 65, 240, 65, 240, 49, + 240, 65, 37, 195, 66, 177, 113, 161, 130, 240, 50, 240, + 50, 240, 50, 240, 50, 114, 131, 99, 130, 114, 131, 113, + 146, 129, 130, 146, 98, 178, 66, 213, 0, 24, 16, 57, + 19, 0, 8, 68, 210, 65, 162, 97, 146, 98, 130, 114, + 115, 114, 114, 240, 19, 240, 18, 240, 19, 37, 146, 33, + 66, 115, 17, 98, 100, 114, 99, 130, 99, 130, 83, 146, + 83, 131, 82, 147, 82, 147, 82, 131, 98, 130, 114, 115, + 129, 99, 146, 66, 212, 0, 22, 112, 62, 20, 0, 8, + 1, 20, 97, 97, 21, 81, 115, 49, 81, 99, 81, 49, + 114, 97, 33, 129, 116, 113, 161, 129, 161, 113, 161, 129, + 161, 240, 50, 240, 34, 240, 50, 240, 34, 240, 50, 240, + 35, 240, 34, 240, 50, 240, 35, 240, 34, 240, 35, 240, + 35, 240, 34, 240, 35, 240, 35, 0, 24, 16, 51, 20, + 0, 8, 85, 210, 67, 162, 114, 130, 130, 129, 146, 114, + 146, 114, 145, 131, 114, 131, 98, 149, 50, 183, 229, 246, + 194, 52, 162, 84, 130, 115, 114, 146, 114, 146, 98, 162, + 98, 161, 114, 146, 114, 145, 146, 113, 163, 66, 213, 0, + 24, 56, 19, 0, 8, 37, 194, 66, 162, 97, 146, 114, + 114, 130, 114, 130, 98, 146, 98, 146, 83, 131, 83, 131, + 82, 147, 82, 131, 98, 131, 98, 116, 113, 97, 18, 130, + 65, 34, 164, 35, 240, 18, 240, 19, 240, 18, 114, 114, + 130, 98, 145, 98, 162, 66, 197, 0, 23, 17, 10, 0, + 15, 67, 100, 100, 114, 0, 10, 82, 116, 100, 99, 0, + 12, 16, 24, 12, 0, 18, 99, 132, 132, 131, 0, 12, + 114, 148, 132, 131, 177, 177, 161, 177, 161, 161, 161, 240, + 240, 80, 32, 13, 0, 15, 67, 148, 148, 147, 0, 6, + 17, 193, 178, 178, 177, 178, 178, 178, 163, 162, 178, 163, + 163, 163, 148, 147, 163, 163, 148, 162, 240, 128, 13, 27, + 0, 50, 127, 7, 0, 20, 95, 7, 0, 47, 112, 45, + 16, 0, 19, 19, 211, 211, 210, 0, 7, 67, 194, 33, + 162, 49, 161, 65, 226, 210, 195, 195, 195, 194, 98, 82, + 99, 66, 115, 65, 145, 66, 145, 65, 145, 81, 145, 81, + 129, 98, 97, 130, 50, 165, 240, 160, 45, 16, 240, 132, + 162, 65, 129, 113, 97, 129, 81, 145, 81, 145, 65, 161, + 65, 145, 67, 114, 67, 98, 82, 98, 195, 195, 195, 194, + 210, 225, 65, 161, 50, 161, 34, 195, 0, 7, 66, 211, + 211, 211, 0, 19, 64, 87, 26, 0, 11, 22, 240, 50, + 99, 210, 162, 177, 210, 145, 84, 97, 129, 66, 50, 82, + 97, 51, 82, 81, 82, 50, 115, 49, 81, 50, 131, 49, + 65, 50, 146, 65, 65, 50, 146, 65, 65, 35, 131, 65, + 49, 50, 146, 65, 65, 50, 146, 65, 65, 50, 131, 65, + 65, 50, 131, 49, 81, 50, 115, 65, 81, 66, 84, 49, + 97, 67, 50, 18, 34, 113, 84, 67, 145, 240, 162, 240, + 162, 195, 162, 131, 248, 0, 30, 112, 68, 26, 240, 240, + 210, 240, 146, 240, 131, 240, 131, 240, 116, 240, 116, 240, + 97, 19, 240, 81, 35, 240, 81, 35, 240, 65, 66, 240, + 65, 66, 240, 49, 82, 240, 49, 83, 240, 17, 99, 240, + 17, 99, 241, 115, 225, 131, 236, 209, 147, 209, 147, 193, + 163, 193, 163, 177, 179, 162, 179, 161, 210, 146, 196, 87, + 136, 0, 29, 80, 56, 27, 0, 10, 127, 243, 131, 210, + 163, 194, 163, 179, 163, 179, 163, 178, 179, 178, 163, 179, + 162, 195, 146, 210, 131, 234, 240, 19, 131, 211, 147, 194, + 179, 178, 179, 163, 179, 163, 179, 162, 195, 162, 179, 163, + 179, 163, 163, 178, 163, 179, 132, 159, 1, 0, 31, 96, + 62, 26, 0, 11, 22, 81, 194, 97, 50, 162, 145, 18, + 162, 179, 146, 195, 130, 210, 130, 241, 129, 240, 17, 114, + 240, 17, 113, 240, 17, 114, 240, 146, 240, 131, 240, 130, + 240, 146, 240, 146, 240, 146, 241, 130, 241, 130, 241, 145, + 225, 162, 193, 178, 177, 210, 145, 243, 82, 240, 54, 0, + 31, 16, 56, 28, 0, 11, 46, 240, 35, 130, 243, 146, + 226, 178, 195, 178, 195, 194, 179, 194, 178, 210, 163, 210, + 163, 210, 163, 210, 162, 226, 147, 211, 147, 210, 163, 210, + 162, 211, 147, 210, 163, 210, 163, 194, 178, 194, 179, 193, + 195, 177, 211, 146, 211, 131, 190, 0, 33, 32, 65, 28, + 0, 11, 63, 3, 195, 163, 195, 178, 195, 178, 195, 178, + 194, 193, 195, 193, 195, 97, 81, 194, 113, 240, 50, 113, + 240, 35, 98, 240, 42, 240, 50, 98, 240, 50, 113, 240, + 35, 113, 240, 35, 97, 97, 178, 225, 178, 209, 179, 209, + 179, 194, 178, 209, 194, 194, 179, 178, 195, 148, 143, 5, + 0, 32, 64, 64, 28, 0, 11, 63, 3, 195, 148, 195, + 177, 211, 177, 211, 177, 210, 193, 195, 193, 195, 193, 195, + 97, 240, 50, 113, 240, 35, 98, 240, 35, 82, 240, 58, + 240, 50, 98, 240, 35, 98, 240, 35, 97, 240, 51, 97, + 240, 50, 240, 163, 240, 163, 240, 163, 240, 162, 240, 163, + 240, 163, 240, 107, 0, 33, 80, 61, 27, 0, 11, 86, + 81, 211, 82, 34, 179, 133, 162, 179, 147, 210, 131, 226, + 130, 242, 115, 241, 115, 240, 17, 115, 240, 17, 99, 240, + 147, 240, 147, 240, 131, 240, 147, 240, 147, 169, 83, 227, + 115, 227, 115, 226, 146, 211, 147, 195, 162, 180, 163, 148, + 211, 82, 49, 246, 81, 0, 31, 64, 61, 31, 0, 12, + 57, 73, 195, 163, 242, 163, 243, 163, 243, 163, 243, 162, + 240, 18, 163, 243, 163, 243, 163, 243, 162, 240, 18, 163, + 255, 1, 243, 163, 243, 162, 240, 18, 163, 243, 163, 243, + 163, 243, 162, 240, 18, 163, 243, 163, 243, 163, 243, 162, + 240, 18, 178, 243, 163, 201, 73, 0, 36, 54, 19, 0, + 7, 122, 195, 240, 19, 240, 19, 240, 18, 240, 19, 240, + 19, 240, 19, 240, 18, 240, 19, 240, 19, 240, 19, 240, + 18, 240, 19, 240, 19, 240, 19, 240, 18, 240, 19, 240, + 19, 240, 19, 240, 18, 240, 19, 240, 19, 240, 19, 202, + 0, 22, 64, 55, 21, 0, 9, 9, 240, 19, 240, 50, + 240, 66, 240, 51, 240, 51, 240, 50, 240, 51, 240, 51, + 240, 51, 240, 50, 240, 51, 240, 51, 240, 51, 240, 50, + 240, 51, 240, 51, 240, 51, 240, 50, 178, 83, 163, 83, + 162, 83, 177, 83, 209, 51, 244, 0, 25, 64, 77, 32, + 0, 12, 121, 103, 196, 179, 227, 178, 240, 19, 162, 240, + 35, 146, 240, 50, 145, 240, 67, 129, 240, 83, 98, 240, + 99, 82, 240, 114, 82, 240, 115, 67, 240, 115, 52, 240, + 115, 18, 19, 240, 114, 18, 51, 240, 85, 67, 240, 83, + 99, 240, 83, 115, 240, 66, 131, 240, 51, 147, 240, 35, + 147, 240, 35, 147, 240, 34, 179, 243, 179, 243, 180, 170, + 104, 0, 37, 57, 24, 0, 9, 122, 240, 20, 240, 83, + 240, 99, 240, 99, 240, 98, 240, 99, 240, 99, 240, 99, + 240, 98, 240, 99, 240, 99, 240, 99, 240, 98, 240, 99, + 240, 99, 240, 99, 162, 146, 177, 147, 177, 147, 162, 147, + 161, 162, 162, 147, 146, 163, 116, 111, 3, 0, 27, 96, + 99, 36, 0, 14, 38, 246, 195, 228, 225, 18, 209, 19, + 225, 18, 209, 18, 241, 19, 177, 19, 241, 19, 177, 19, + 225, 35, 161, 35, 225, 35, 145, 50, 241, 50, 145, 35, + 241, 50, 129, 51, 226, 50, 129, 51, 225, 66, 113, 66, + 241, 66, 97, 67, 241, 66, 97, 67, 226, 67, 65, 83, + 225, 83, 65, 82, 241, 83, 49, 83, 241, 83, 33, 99, + 226, 83, 33, 98, 241, 114, 17, 114, 241, 114, 17, 114, + 241, 115, 115, 226, 115, 114, 227, 114, 130, 199, 81, 89, + 0, 41, 80, 95, 32, 0, 12, 118, 136, 211, 163, 241, + 18, 177, 240, 17, 19, 161, 240, 17, 19, 146, 240, 17, + 35, 129, 240, 17, 51, 129, 240, 17, 51, 129, 240, 17, + 67, 98, 240, 17, 67, 97, 240, 17, 83, 97, 240, 17, + 99, 81, 240, 17, 99, 66, 240, 17, 99, 65, 240, 17, + 131, 49, 240, 17, 131, 49, 240, 17, 146, 34, 240, 17, + 147, 17, 240, 17, 163, 17, 240, 17, 178, 17, 240, 17, + 180, 240, 17, 179, 240, 17, 210, 243, 194, 200, 162, 0, + 37, 64, 65, 26, 0, 11, 38, 240, 51, 82, 226, 146, + 194, 178, 147, 194, 146, 226, 114, 242, 99, 242, 83, 240, + 18, 83, 240, 18, 67, 240, 34, 67, 240, 34, 67, 240, + 19, 51, 240, 34, 67, 240, 34, 67, 240, 18, 83, 240, + 18, 83, 242, 99, 227, 114, 226, 131, 194, 162, 178, 179, + 131, 211, 83, 240, 39, 0, 31, 55, 27, 0, 10, 127, + 243, 115, 226, 162, 195, 163, 179, 163, 179, 163, 178, 179, + 163, 164, 163, 163, 179, 147, 194, 147, 195, 131, 219, 240, + 19, 240, 146, 240, 147, 240, 147, 240, 147, 240, 146, 240, + 147, 240, 147, 240, 147, 240, 146, 240, 147, 240, 105, 0, + 32, 80, 92, 25, 0, 10, 102, 240, 35, 82, 211, 130, + 178, 178, 146, 194, 130, 226, 99, 226, 98, 242, 82, 240, + 18, 82, 240, 18, 66, 240, 34, 66, 240, 34, 66, 240, + 19, 51, 240, 18, 66, 240, 34, 66, 240, 18, 82, 240, + 18, 82, 242, 98, 242, 113, 99, 82, 130, 65, 49, 50, + 161, 49, 65, 34, 178, 33, 65, 18, 210, 17, 66, 240, + 39, 240, 145, 97, 240, 33, 97, 240, 33, 81, 240, 50, + 50, 240, 54, 240, 70, 240, 83, 0, 7, 64, 59, 26, + 0, 10, 77, 243, 115, 211, 131, 195, 147, 179, 147, 178, + 163, 163, 163, 163, 163, 162, 163, 178, 147, 179, 131, 195, + 114, 234, 240, 18, 114, 227, 130, 211, 130, 210, 146, 210, + 146, 195, 146, 195, 131, 194, 147, 194, 147, 65, 99, 147, + 65, 99, 147, 49, 73, 117, 0, 29, 112, 58, 24, 0, + 10, 53, 65, 194, 81, 33, 193, 131, 177, 147, 162, 161, + 177, 177, 162, 177, 162, 177, 162, 240, 115, 240, 102, 240, + 72, 240, 56, 240, 69, 240, 115, 240, 114, 240, 114, 145, + 194, 145, 194, 145, 193, 146, 178, 147, 146, 163, 130, 177, + 34, 82, 177, 70, 0, 28, 80, 63, 25, 0, 9, 95, + 5, 82, 114, 114, 66, 115, 114, 65, 131, 129, 65, 131, + 129, 49, 146, 145, 49, 131, 129, 65, 131, 129, 211, 240, + 114, 240, 115, 240, 115, 240, 115, 240, 114, 240, 115, 240, + 115, 240, 115, 240, 114, 240, 115, 240, 115, 240, 115, 240, + 114, 240, 115, 240, 115, 240, 44, 0, 29, 96, 58, 26, + 0, 9, 121, 88, 100, 178, 147, 193, 163, 193, 163, 193, + 162, 193, 163, 193, 163, 193, 163, 193, 162, 193, 178, 193, + 163, 193, 162, 209, 162, 193, 178, 193, 163, 193, 162, 193, + 178, 193, 178, 193, 178, 177, 194, 161, 225, 146, 226, 114, + 240, 18, 66, 240, 69, 0, 31, 64, 65, 27, 0, 10, + 24, 151, 84, 210, 131, 225, 162, 209, 179, 193, 179, 177, + 195, 161, 211, 161, 211, 145, 227, 130, 227, 129, 243, 113, + 240, 19, 113, 240, 34, 97, 240, 51, 65, 240, 67, 65, + 240, 67, 49, 240, 83, 34, 240, 83, 33, 240, 99, 17, + 240, 115, 17, 240, 116, 240, 146, 240, 162, 240, 161, 0, + 33, 100, 36, 0, 13, 72, 73, 87, 83, 163, 163, 115, + 163, 162, 131, 163, 161, 147, 163, 145, 163, 148, 145, 163, + 148, 129, 179, 129, 19, 129, 179, 114, 19, 113, 195, 113, + 35, 98, 195, 97, 51, 97, 226, 97, 51, 81, 242, 81, + 67, 81, 242, 81, 67, 65, 240, 18, 65, 83, 65, 240, + 19, 34, 83, 49, 240, 35, 33, 99, 49, 240, 35, 17, + 115, 33, 240, 51, 17, 115, 18, 240, 52, 131, 17, 240, + 68, 147, 240, 83, 163, 240, 83, 162, 240, 98, 178, 240, + 97, 193, 0, 42, 112, 74, 31, 0, 12, 57, 103, 196, + 147, 240, 19, 145, 240, 51, 129, 240, 68, 98, 240, 83, + 97, 240, 99, 81, 240, 131, 49, 240, 147, 33, 240, 163, + 17, 240, 195, 240, 211, 240, 211, 240, 212, 240, 177, 19, + 240, 161, 36, 240, 129, 67, 240, 113, 83, 240, 97, 115, + 240, 65, 131, 240, 50, 131, 240, 49, 163, 240, 17, 179, + 227, 180, 167, 136, 0, 35, 112, 62, 27, 0, 10, 24, + 151, 84, 210, 147, 194, 163, 193, 179, 177, 211, 145, 227, + 129, 243, 114, 240, 19, 97, 240, 35, 81, 240, 51, 65, + 240, 83, 33, 240, 99, 17, 240, 117, 240, 131, 240, 146, + 240, 147, 240, 147, 240, 147, 240, 146, 240, 147, 240, 147, + 240, 147, 240, 131, 240, 105, 0, 32, 64, 58, 26, 0, + 10, 95, 1, 164, 131, 163, 147, 178, 147, 193, 163, 178, + 147, 193, 147, 209, 131, 240, 115, 240, 115, 240, 131, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 129, 211, 145, + 211, 130, 195, 145, 195, 161, 179, 162, 163, 162, 163, 163, + 163, 133, 159, 1, 0, 30, 64, 40, 16, 148, 178, 226, + 225, 241, 226, 226, 225, 241, 226, 226, 225, 241, 226, 226, + 225, 241, 226, 226, 225, 241, 226, 226, 225, 241, 226, 226, + 225, 241, 226, 226, 225, 241, 226, 226, 225, 244, 192, 27, + 15, 0, 6, 18, 81, 97, 97, 97, 97, 97, 97, 113, + 97, 97, 97, 116, 52, 68, 52, 68, 52, 82, 82, 0, + 45, 80, 50, 17, 149, 242, 242, 241, 240, 17, 242, 242, + 241, 240, 17, 242, 242, 241, 240, 17, 242, 242, 241, 240, + 17, 242, 242, 241, 240, 17, 242, 242, 241, 240, 17, 242, + 242, 241, 240, 17, 240, 17, 242, 241, 240, 17, 240, 17, + 242, 241, 197, 192, 15, 12, 240, 240, 177, 163, 115, 18, + 82, 65, 65, 113, 0, 43, 112, 10, 7, 240, 115, 52, + 52, 51, 0, 26, 96, 16, 8, 240, 209, 97, 97, 97, + 113, 97, 116, 68, 68, 82, 0, 24, 80, 44, 18, 0, + 27, 100, 194, 52, 130, 83, 115, 83, 114, 99, 99, 98, + 114, 114, 99, 114, 99, 99, 98, 114, 114, 114, 49, 50, + 114, 49, 50, 99, 34, 65, 83, 49, 82, 49, 34, 18, + 100, 67, 0, 20, 112, 47, 15, 0, 5, 117, 195, 194, + 210, 210, 195, 194, 210, 210, 195, 20, 114, 17, 50, 99, + 81, 98, 98, 67, 98, 66, 114, 66, 114, 51, 99, 51, + 99, 50, 114, 66, 114, 66, 98, 82, 98, 97, 82, 114, + 50, 148, 0, 18, 31, 15, 0, 23, 52, 146, 65, 114, + 66, 98, 82, 82, 98, 67, 194, 195, 194, 210, 210, 210, + 145, 50, 130, 66, 98, 82, 66, 148, 0, 17, 112, 62, + 19, 0, 8, 69, 240, 19, 240, 18, 240, 34, 240, 34, + 240, 19, 240, 18, 240, 34, 240, 34, 180, 19, 146, 52, + 146, 83, 131, 83, 130, 99, 115, 98, 130, 114, 115, 114, + 115, 99, 114, 114, 130, 114, 49, 66, 99, 49, 66, 99, + 34, 81, 83, 49, 98, 49, 34, 18, 116, 67, 0, 22, + 16, 31, 16, 0, 24, 117, 146, 66, 99, 97, 83, 113, + 82, 129, 67, 113, 82, 98, 89, 115, 210, 226, 226, 226, + 161, 65, 130, 82, 82, 149, 0, 19, 67, 20, 0, 9, + 19, 240, 18, 33, 226, 34, 211, 240, 34, 240, 50, 240, + 35, 240, 35, 240, 34, 234, 211, 240, 35, 240, 34, 240, + 50, 240, 50, 240, 35, 240, 35, 240, 34, 240, 50, 240, + 35, 240, 35, 240, 35, 240, 34, 240, 50, 240, 35, 240, + 35, 240, 34, 240, 50, 210, 34, 226, 34, 225, 34, 240, + 19, 0, 7, 50, 18, 0, 28, 4, 194, 52, 130, 83, + 114, 99, 114, 99, 98, 114, 114, 114, 99, 114, 99, 99, + 98, 114, 114, 114, 114, 99, 114, 99, 129, 83, 146, 49, + 18, 164, 19, 243, 242, 240, 18, 114, 99, 115, 67, 130, + 67, 166, 0, 5, 112, 62, 19, 0, 7, 69, 240, 19, + 240, 18, 240, 34, 240, 34, 240, 19, 240, 18, 240, 34, + 240, 34, 240, 19, 36, 162, 18, 50, 148, 82, 131, 98, + 115, 114, 115, 114, 114, 115, 114, 114, 115, 114, 114, 114, + 130, 114, 49, 51, 99, 49, 51, 98, 65, 50, 114, 49, + 66, 114, 34, 66, 132, 0, 22, 38, 13, 0, 7, 50, + 178, 178, 0, 9, 19, 130, 34, 113, 50, 97, 66, 97, + 51, 81, 66, 163, 162, 178, 163, 162, 65, 83, 49, 98, + 65, 98, 49, 114, 34, 132, 0, 15, 48, 42, 17, 0, + 10, 2, 242, 242, 0, 12, 4, 193, 50, 161, 66, 145, + 82, 130, 82, 129, 83, 226, 242, 227, 227, 226, 242, 227, + 226, 242, 227, 227, 226, 227, 226, 146, 51, 146, 34, 196, + 0, 5, 96, 60, 18, 0, 7, 21, 240, 18, 240, 18, + 240, 18, 242, 240, 18, 240, 18, 240, 18, 242, 240, 18, + 98, 130, 66, 33, 99, 49, 50, 98, 49, 66, 98, 33, + 210, 17, 212, 226, 19, 194, 50, 178, 66, 147, 66, 146, + 82, 49, 82, 82, 49, 82, 82, 49, 67, 82, 33, 82, + 115, 0, 21, 37, 11, 240, 240, 86, 130, 146, 146, 131, + 130, 146, 131, 130, 146, 146, 131, 130, 146, 146, 131, 130, + 146, 146, 131, 49, 66, 49, 82, 49, 82, 49, 82, 33, + 115, 0, 13, 32, 67, 30, 0, 45, 35, 84, 84, 130, + 18, 34, 50, 34, 50, 113, 36, 85, 82, 81, 51, 100, + 98, 81, 51, 99, 114, 81, 50, 115, 114, 146, 114, 115, + 131, 114, 114, 146, 115, 114, 146, 114, 114, 147, 114, 114, + 49, 83, 99, 99, 49, 82, 115, 98, 65, 82, 114, 114, + 49, 83, 114, 114, 34, 82, 130, 132, 0, 34, 48, 50, + 21, 0, 31, 100, 68, 145, 33, 34, 50, 113, 52, 82, + 97, 51, 98, 81, 51, 114, 81, 51, 114, 146, 115, 146, + 114, 147, 114, 146, 114, 162, 114, 49, 98, 99, 49, 83, + 98, 65, 82, 114, 49, 98, 114, 34, 98, 132, 0, 24, + 32, 37, 17, 0, 26, 52, 178, 66, 130, 97, 114, 114, + 82, 130, 67, 130, 66, 146, 51, 146, 51, 131, 50, 146, + 66, 146, 66, 130, 82, 114, 114, 82, 130, 66, 180, 0, + 20, 48, 58, 21, 0, 32, 19, 68, 146, 18, 33, 50, + 129, 51, 81, 114, 35, 98, 97, 50, 114, 97, 50, 114, + 162, 114, 147, 99, 146, 115, 146, 114, 162, 114, 147, 98, + 163, 98, 163, 82, 180, 50, 179, 20, 210, 240, 66, 240, + 66, 240, 51, 240, 50, 240, 66, 240, 24, 0, 6, 112, + 48, 17, 0, 26, 36, 49, 114, 50, 17, 114, 83, 99, + 83, 98, 99, 83, 98, 98, 114, 83, 114, 83, 99, 82, + 114, 98, 114, 98, 99, 98, 99, 113, 83, 130, 49, 18, + 148, 34, 227, 226, 242, 242, 227, 226, 200, 240, 240, 160, + 33, 17, 0, 25, 100, 52, 82, 33, 33, 65, 65, 51, + 66, 65, 50, 82, 49, 51, 161, 50, 242, 242, 227, 226, + 242, 227, 226, 242, 242, 242, 0, 20, 96, 32, 16, 0, + 24, 101, 146, 81, 114, 113, 82, 99, 82, 99, 83, 215, + 168, 197, 211, 66, 130, 66, 130, 66, 129, 81, 129, 113, + 82, 149, 0, 19, 16, 35, 13, 0, 8, 114, 163, 163, + 162, 178, 163, 162, 122, 114, 163, 162, 178, 178, 163, 162, + 178, 178, 163, 65, 82, 81, 82, 66, 82, 65, 98, 49, + 132, 0, 15, 64, 50, 21, 0, 31, 116, 114, 114, 34, + 98, 113, 50, 98, 97, 66, 83, 97, 51, 83, 81, 66, + 98, 178, 98, 162, 99, 162, 98, 163, 98, 162, 114, 49, + 98, 99, 49, 98, 98, 49, 114, 83, 49, 130, 50, 17, + 34, 148, 67, 0, 24, 32, 43, 18, 0, 27, 52, 98, + 81, 50, 67, 81, 50, 67, 65, 66, 82, 65, 51, 82, + 49, 66, 98, 115, 97, 130, 113, 130, 113, 115, 97, 130, + 113, 130, 113, 130, 97, 146, 97, 162, 50, 196, 0, 21, + 48, 60, 25, 0, 37, 116, 113, 82, 81, 50, 82, 67, + 81, 50, 82, 67, 65, 66, 82, 82, 65, 51, 67, 82, + 49, 66, 82, 98, 115, 82, 97, 130, 98, 97, 130, 83, + 97, 115, 82, 98, 114, 98, 97, 130, 98, 97, 130, 98, + 81, 146, 83, 81, 162, 50, 18, 49, 197, 52, 0, 29, + 16, 48, 19, 0, 29, 4, 67, 114, 34, 33, 49, 81, + 83, 50, 81, 83, 50, 65, 98, 161, 83, 240, 19, 240, + 18, 240, 34, 240, 19, 240, 18, 97, 162, 97, 66, 51, + 81, 82, 51, 81, 81, 49, 34, 34, 115, 68, 0, 22, + 32, 58, 19, 0, 28, 116, 114, 82, 34, 98, 81, 50, + 98, 65, 66, 83, 65, 51, 83, 49, 66, 98, 146, 98, + 130, 99, 130, 98, 131, 98, 130, 114, 130, 99, 130, 98, + 146, 83, 162, 49, 18, 180, 19, 240, 18, 240, 34, 146, + 82, 147, 67, 146, 82, 161, 67, 197, 0, 6, 32, 32, + 18, 0, 27, 99, 81, 133, 49, 129, 69, 114, 98, 242, + 242, 242, 242, 242, 242, 242, 242, 114, 113, 129, 117, 50, + 114, 54, 98, 83, 0, 21, 32, 9, 20, 0, 45, 15, + 2, 0, 45, 48, 10, 36, 0, 81, 15, 15, 3, 0, + 81, 48, 19, 14, 0, 5, 97, 66, 98, 51, 82, 66, + 82, 66, 97, 66, 97, 81, 0, 49, 112, 16, 15, 0, + 6, 3, 81, 81, 33, 65, 81, 65, 33, 81, 83, 0, + 57, +}; + +//***************************************************************************** +// +// The font definition for the 38 point Cm italic font. +// +//***************************************************************************** +const tFont g_sFontCm38i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 32, + + // + // The height of the font. + // + 37, + + // + // The baseline of the font. + // + 28, + + // + // The offset to each character in the font. + // + { + 0, 5, 37, 64, 162, 224, 319, 405, + 421, 467, 507, 541, 592, 609, 618, 629, + 707, 762, 796, 860, 918, 978, 1031, 1088, + 1150, 1201, 1257, 1274, 1298, 1330, 1343, 1388, + 1433, 1520, 1588, 1644, 1706, 1762, 1827, 1891, + 1952, 2013, 2067, 2122, 2199, 2256, 2355, 2450, + 2515, 2570, 2662, 2721, 2779, 2842, 2900, 2965, + 3065, 3139, 3201, 3259, 3299, 3326, 3376, 3391, + 3401, 3417, 3461, 3508, 3539, 3601, 3632, 3699, + 3749, 3811, 3849, 3891, 3951, 3988, 4055, 4105, + 4142, 4200, 4248, 4281, 4313, 4348, 4398, 4441, + 4501, 4549, 4607, 4639, 4648, 4658, 4677, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm38iData +}; diff --git a/grlib/fonts/fontcm40.c b/grlib/fonts/fontcm40.c new file mode 100644 index 0000000..1964cf4 --- /dev/null +++ b/grlib/fonts/fontcm40.c @@ -0,0 +1,510 @@ +//***************************************************************************** +// +// fontcm40.c - Font definition for the 40pt Cm font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 40 point +// Bold: no +// Italic: no +// Memory usage: 5044 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 40 point Cm font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm40Data[4844] = +{ + 4, 17, 0, 85, 31, 7, 227, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 81, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 240, 240, 51, 67, 67, 0, 9, 32, 28, + 15, 240, 240, 243, 82, 84, 52, 68, 67, 113, 97, 113, + 97, 113, 97, 113, 97, 97, 97, 113, 97, 97, 97, 97, + 0, 50, 64, 107, 31, 0, 13, 33, 114, 240, 97, 114, + 240, 82, 113, 240, 97, 129, 240, 97, 114, 240, 82, 114, + 240, 82, 113, 240, 97, 129, 240, 97, 114, 240, 82, 114, + 240, 82, 113, 240, 97, 129, 240, 97, 114, 191, 12, 209, + 129, 240, 97, 114, 240, 97, 114, 240, 82, 113, 240, 98, + 113, 240, 97, 129, 223, 12, 178, 113, 240, 97, 129, 240, + 97, 114, 240, 97, 114, 240, 82, 113, 240, 97, 129, 240, + 97, 114, 240, 97, 114, 240, 82, 113, 240, 98, 113, 240, + 97, 114, 240, 97, 114, 240, 82, 113, 240, 98, 113, 0, + 9, 112, 80, 19, 97, 240, 49, 240, 22, 194, 17, 50, + 145, 49, 81, 114, 49, 97, 97, 65, 98, 66, 65, 113, + 66, 65, 83, 66, 65, 83, 66, 65, 83, 67, 49, 195, + 49, 211, 33, 229, 247, 231, 209, 21, 193, 67, 177, 83, + 161, 83, 67, 49, 98, 67, 49, 98, 67, 49, 98, 65, + 81, 98, 65, 81, 82, 97, 65, 82, 98, 49, 66, 130, + 33, 34, 197, 240, 17, 240, 49, 0, 20, 64, 108, 31, + 67, 241, 162, 49, 210, 161, 67, 163, 146, 84, 100, 161, + 97, 54, 18, 162, 113, 146, 162, 113, 130, 178, 113, 130, + 178, 113, 114, 194, 113, 98, 210, 113, 98, 210, 113, 82, + 241, 97, 82, 240, 18, 81, 82, 240, 33, 65, 82, 240, + 65, 34, 82, 240, 82, 98, 113, 240, 82, 98, 18, 240, + 50, 81, 81, 240, 18, 82, 97, 241, 97, 113, 226, 82, + 129, 194, 98, 129, 193, 114, 129, 178, 114, 129, 162, 130, + 129, 162, 130, 129, 146, 161, 114, 145, 178, 97, 146, 193, + 82, 130, 210, 50, 145, 240, 20, 0, 31, 112, 87, 29, + 0, 8, 35, 240, 161, 49, 240, 130, 65, 240, 98, 81, + 240, 98, 81, 240, 98, 81, 240, 98, 81, 240, 98, 65, + 240, 114, 65, 240, 115, 33, 240, 146, 17, 240, 163, 151, + 162, 195, 195, 177, 227, 177, 209, 19, 145, 194, 50, 145, + 177, 83, 113, 193, 99, 97, 177, 130, 81, 193, 131, 49, + 194, 147, 33, 194, 162, 17, 210, 178, 145, 67, 163, 129, + 83, 129, 19, 97, 115, 82, 66, 66, 150, 117, 0, 37, + 16, 17, 8, 240, 147, 84, 68, 113, 113, 113, 113, 97, + 113, 97, 97, 0, 26, 112, 43, 13, 129, 177, 177, 177, + 178, 177, 178, 177, 178, 177, 178, 178, 178, 178, 162, 178, + 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 179, 178, + 178, 178, 193, 194, 178, 194, 178, 194, 193, 209, 209, 209, + 64, 43, 13, 1, 210, 193, 209, 194, 194, 178, 194, 178, + 194, 178, 178, 178, 194, 178, 178, 178, 178, 178, 178, 178, + 178, 178, 178, 178, 178, 177, 178, 178, 178, 177, 178, 177, + 178, 177, 178, 177, 177, 177, 177, 192, 41, 18, 98, 240, + 18, 240, 18, 240, 18, 162, 66, 66, 82, 49, 66, 130, + 17, 34, 179, 18, 226, 227, 18, 178, 17, 34, 130, 65, + 50, 82, 66, 66, 162, 240, 18, 240, 18, 240, 18, 0, + 53, 57, 29, 0, 30, 65, 240, 209, 240, 209, 240, 209, + 240, 209, 240, 209, 240, 209, 240, 209, 240, 209, 240, 209, + 240, 209, 240, 209, 240, 31, 10, 240, 17, 240, 209, 240, + 209, 240, 209, 240, 209, 240, 209, 240, 209, 240, 209, 240, + 209, 240, 209, 240, 209, 240, 209, 0, 27, 48, 17, 8, + 0, 27, 3, 84, 68, 113, 113, 113, 113, 97, 113, 97, + 97, 240, 128, 8, 14, 0, 35, 10, 74, 0, 32, 10, + 7, 0, 23, 83, 67, 67, 0, 9, 32, 83, 18, 209, + 240, 18, 240, 17, 240, 33, 240, 18, 240, 17, 240, 33, + 240, 18, 240, 17, 240, 33, 240, 18, 240, 17, 240, 33, + 240, 18, 240, 18, 240, 17, 240, 18, 240, 18, 240, 17, + 240, 18, 240, 18, 240, 17, 240, 18, 240, 18, 240, 17, + 240, 18, 240, 18, 240, 17, 240, 33, 240, 18, 240, 17, + 240, 33, 240, 18, 240, 17, 240, 33, 240, 18, 240, 17, + 240, 33, 240, 18, 240, 17, 240, 32, 57, 18, 0, 9, + 84, 194, 66, 146, 98, 129, 129, 114, 130, 97, 161, 97, + 161, 82, 162, 66, 162, 66, 162, 66, 162, 66, 162, 66, + 162, 66, 162, 66, 162, 66, 162, 66, 162, 66, 162, 66, + 162, 81, 162, 82, 130, 98, 130, 113, 129, 130, 98, 146, + 66, 196, 0, 23, 80, 34, 16, 0, 8, 97, 211, 148, + 18, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 156, + 0, 20, 64, 56, 19, 0, 10, 6, 193, 83, 145, 115, + 113, 147, 81, 164, 65, 179, 67, 147, 67, 147, 67, 147, + 240, 19, 243, 240, 19, 240, 18, 240, 18, 240, 19, 240, + 18, 240, 18, 240, 17, 240, 33, 240, 33, 240, 33, 145, + 113, 161, 97, 177, 81, 177, 109, 94, 0, 24, 48, 56, + 20, 0, 10, 86, 194, 83, 145, 131, 113, 163, 99, 131, + 99, 131, 99, 131, 240, 35, 240, 34, 240, 35, 240, 19, + 240, 18, 229, 240, 82, 240, 67, 240, 51, 240, 35, 240, + 51, 240, 35, 67, 163, 67, 163, 67, 163, 65, 179, 98, + 146, 131, 83, 198, 0, 26, 16, 58, 20, 0, 11, 49, + 240, 50, 240, 50, 240, 35, 240, 17, 18, 240, 17, 18, + 241, 34, 225, 50, 225, 50, 209, 66, 193, 82, 193, 82, + 177, 98, 177, 98, 161, 114, 145, 130, 145, 130, 129, 146, + 143, 1, 226, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 234, 0, 25, 64, 57, 18, 0, 9, 34, 114, 121, + 151, 177, 240, 33, 240, 33, 240, 33, 240, 33, 240, 33, + 240, 33, 37, 161, 17, 66, 146, 98, 129, 130, 240, 18, + 240, 34, 240, 18, 240, 18, 240, 18, 67, 146, 67, 146, + 67, 146, 65, 177, 97, 146, 98, 114, 130, 82, 181, 0, + 23, 80, 59, 19, 0, 10, 54, 179, 81, 146, 98, 130, + 114, 130, 114, 114, 240, 19, 240, 19, 240, 18, 240, 19, + 53, 131, 33, 66, 115, 17, 113, 100, 130, 84, 145, 83, + 162, 67, 162, 67, 162, 67, 162, 67, 162, 82, 162, 82, + 162, 83, 145, 114, 130, 130, 113, 162, 66, 197, 0, 24, + 112, 59, 20, 0, 7, 81, 240, 66, 240, 63, 95, 81, + 193, 81, 193, 97, 193, 97, 177, 240, 49, 240, 65, 240, + 49, 240, 49, 240, 65, 240, 49, 240, 65, 240, 50, 240, + 50, 240, 34, 240, 50, 240, 50, 240, 50, 240, 35, 240, + 35, 240, 35, 240, 35, 240, 35, 240, 35, 0, 26, 64, + 55, 19, 0, 10, 21, 194, 82, 145, 145, 113, 162, 97, + 177, 97, 177, 97, 177, 98, 161, 99, 129, 132, 81, 164, + 49, 198, 230, 193, 37, 146, 84, 129, 116, 97, 163, 65, + 194, 65, 194, 65, 209, 65, 209, 65, 194, 81, 177, 113, + 145, 146, 82, 197, 0, 24, 112, 59, 19, 0, 10, 21, + 194, 66, 162, 98, 130, 130, 113, 147, 82, 162, 82, 162, + 82, 163, 66, 163, 66, 163, 66, 163, 66, 163, 81, 148, + 82, 132, 98, 97, 19, 114, 65, 35, 133, 51, 240, 18, + 240, 34, 240, 19, 240, 18, 114, 130, 114, 114, 130, 98, + 145, 98, 182, 0, 25, 16, 15, 7, 0, 11, 51, 67, + 67, 0, 10, 19, 67, 67, 0, 9, 32, 22, 7, 0, + 11, 51, 67, 67, 0, 10, 18, 83, 67, 97, 97, 97, + 97, 81, 97, 81, 97, 240, 80, 32, 7, 0, 8, 99, + 67, 67, 240, 240, 49, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 98, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 240, 48, 13, 29, 0, 58, 15, 10, 0, 22, 47, + 10, 0, 58, 64, 45, 17, 0, 21, 99, 227, 227, 0, + 10, 49, 240, 17, 240, 17, 240, 17, 240, 17, 240, 17, + 242, 241, 240, 17, 241, 242, 226, 242, 226, 242, 131, 66, + 131, 66, 131, 66, 161, 82, 129, 99, 82, 150, 240, 240, + 192, 44, 17, 240, 240, 118, 161, 98, 113, 130, 81, 162, + 67, 130, 67, 130, 67, 130, 242, 226, 226, 226, 226, 241, + 241, 240, 17, 242, 241, 240, 17, 240, 17, 240, 17, 240, + 17, 0, 10, 66, 227, 227, 0, 22, 64, 99, 29, 0, + 8, 54, 240, 98, 99, 240, 18, 162, 226, 210, 178, 242, + 161, 240, 33, 145, 116, 129, 129, 82, 66, 97, 113, 82, + 97, 113, 97, 66, 129, 97, 97, 66, 146, 66, 65, 66, + 162, 81, 65, 66, 162, 81, 65, 66, 162, 81, 65, 66, + 162, 81, 65, 66, 162, 81, 65, 66, 162, 81, 65, 66, + 162, 81, 81, 66, 146, 81, 81, 66, 131, 81, 81, 82, + 97, 18, 65, 113, 82, 65, 50, 34, 114, 100, 84, 145, + 240, 225, 240, 226, 227, 179, 148, 240, 24, 0, 37, 96, + 75, 29, 0, 8, 97, 240, 210, 240, 179, 240, 179, 240, + 161, 19, 240, 145, 19, 240, 145, 34, 240, 129, 51, 240, + 113, 51, 240, 113, 66, 240, 97, 83, 240, 81, 83, 240, + 65, 114, 240, 65, 115, 240, 49, 130, 240, 33, 146, 240, + 33, 147, 240, 29, 241, 179, 225, 179, 225, 194, 209, 211, + 193, 211, 193, 226, 177, 243, 161, 243, 147, 228, 102, 184, + 0, 36, 96, 60, 26, 0, 9, 111, 1, 210, 163, 178, + 179, 162, 195, 146, 211, 130, 211, 130, 211, 130, 211, 130, + 195, 146, 195, 146, 178, 178, 146, 222, 194, 164, 162, 195, + 146, 211, 130, 211, 130, 227, 114, 227, 114, 227, 114, 227, + 114, 227, 114, 211, 130, 211, 130, 195, 146, 164, 127, 2, + 0, 33, 80, 71, 26, 0, 10, 118, 97, 179, 82, 65, + 147, 146, 18, 131, 177, 18, 115, 211, 99, 242, 98, 240, + 18, 83, 240, 18, 83, 240, 33, 82, 240, 49, 67, 240, + 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, + 146, 240, 49, 83, 240, 33, 83, 240, 33, 99, 241, 115, + 241, 131, 225, 147, 193, 179, 161, 227, 98, 240, 39, 0, + 33, 96, 71, 28, 0, 10, 79, 240, 18, 148, 210, 179, + 194, 210, 178, 211, 162, 227, 146, 242, 146, 243, 130, 243, + 130, 240, 18, 130, 240, 19, 114, 240, 19, 114, 240, 19, + 114, 240, 19, 114, 240, 19, 114, 240, 19, 114, 240, 19, + 114, 240, 19, 114, 240, 18, 130, 243, 130, 242, 146, 227, + 146, 226, 162, 210, 178, 194, 194, 148, 175, 1, 0, 36, + 64, 62, 26, 0, 9, 111, 5, 146, 180, 146, 210, 146, + 225, 146, 225, 146, 225, 146, 225, 146, 225, 146, 129, 97, + 130, 129, 242, 129, 242, 129, 242, 114, 251, 242, 114, 242, + 129, 242, 129, 242, 129, 113, 114, 241, 130, 241, 130, 241, + 130, 241, 130, 241, 130, 226, 130, 211, 130, 180, 111, 5, + 0, 33, 32, 59, 24, 0, 9, 15, 4, 130, 180, 114, + 210, 114, 210, 114, 225, 114, 225, 114, 225, 114, 225, 114, + 129, 210, 129, 210, 129, 210, 129, 210, 114, 219, 210, 114, + 210, 129, 210, 129, 210, 129, 210, 129, 210, 240, 114, 240, + 114, 240, 114, 240, 114, 240, 114, 240, 114, 240, 73, 0, + 31, 112, 72, 29, 0, 12, 22, 81, 227, 98, 49, 195, + 161, 33, 179, 195, 163, 211, 147, 242, 146, 240, 18, 131, + 240, 33, 131, 240, 33, 130, 240, 49, 115, 240, 179, 240, + 179, 240, 179, 240, 179, 240, 179, 240, 179, 202, 83, 240, + 18, 131, 240, 18, 131, 240, 18, 147, 242, 162, 242, 163, + 226, 179, 210, 195, 179, 228, 98, 33, 240, 24, 65, 0, + 37, 16, 60, 26, 0, 9, 104, 104, 114, 194, 162, 194, + 162, 194, 162, 194, 162, 194, 162, 194, 162, 194, 162, 194, + 162, 194, 162, 194, 162, 194, 175, 1, 162, 194, 162, 194, + 162, 194, 162, 194, 162, 194, 162, 194, 162, 194, 162, 194, + 162, 194, 162, 194, 162, 194, 162, 194, 162, 194, 120, 104, + 0, 33, 34, 12, 240, 240, 104, 114, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 120, 0, 15, 64, + 58, 18, 0, 7, 57, 226, 240, 18, 240, 18, 240, 18, + 240, 18, 240, 18, 240, 18, 240, 18, 240, 18, 240, 18, + 240, 18, 240, 18, 240, 18, 240, 18, 240, 18, 240, 18, + 240, 18, 240, 18, 240, 18, 240, 18, 99, 114, 99, 114, + 99, 113, 129, 114, 130, 82, 181, 0, 23, 96, 73, 28, + 0, 10, 72, 151, 114, 211, 162, 210, 178, 194, 194, 193, + 210, 177, 226, 161, 242, 145, 240, 18, 129, 240, 34, 113, + 240, 50, 97, 240, 66, 82, 240, 66, 68, 240, 50, 49, + 35, 240, 34, 33, 66, 240, 34, 17, 83, 240, 19, 115, + 242, 131, 242, 147, 226, 163, 210, 163, 210, 179, 194, 195, + 178, 195, 178, 211, 162, 212, 104, 136, 0, 35, 64, 60, + 22, 0, 8, 41, 240, 18, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 82, 193, 114, 193, 114, 193, 114, 193, 114, + 193, 114, 178, 114, 163, 114, 148, 79, 3, 0, 28, 109, + 33, 0, 12, 54, 240, 38, 116, 240, 19, 161, 18, 241, + 18, 161, 18, 241, 18, 161, 19, 225, 18, 161, 34, 209, + 34, 161, 34, 209, 34, 161, 35, 193, 34, 161, 50, 177, + 50, 161, 51, 161, 50, 161, 66, 145, 66, 161, 66, 145, + 66, 161, 67, 129, 66, 161, 82, 113, 82, 161, 82, 113, + 82, 161, 83, 97, 82, 161, 98, 81, 98, 161, 99, 65, + 98, 161, 99, 49, 114, 161, 114, 49, 114, 161, 115, 33, + 114, 161, 130, 17, 130, 161, 130, 17, 130, 161, 132, 130, + 161, 146, 146, 147, 130, 146, 119, 97, 120, 0, 41, 96, + 80, 27, 0, 10, 22, 167, 116, 179, 145, 18, 193, 161, + 19, 177, 161, 34, 177, 161, 35, 161, 161, 51, 145, 161, + 51, 145, 161, 67, 129, 161, 82, 129, 161, 83, 113, 161, + 99, 97, 161, 99, 97, 161, 115, 81, 161, 130, 81, 161, + 131, 65, 161, 147, 49, 161, 147, 49, 161, 163, 33, 161, + 178, 33, 161, 179, 17, 161, 196, 161, 196, 161, 211, 161, + 226, 147, 210, 119, 193, 0, 34, 80, 75, 28, 0, 11, + 86, 240, 82, 99, 242, 147, 210, 194, 178, 226, 147, 227, + 130, 240, 18, 115, 240, 19, 99, 240, 19, 98, 240, 50, + 83, 240, 51, 67, 240, 51, 67, 240, 51, 67, 240, 51, + 67, 240, 51, 67, 240, 51, 67, 240, 51, 83, 240, 35, + 83, 240, 19, 99, 240, 19, 115, 242, 131, 227, 147, 195, + 179, 178, 211, 131, 244, 82, 240, 86, 0, 36, 80, 58, + 25, 0, 9, 63, 210, 148, 162, 179, 146, 195, 130, 210, + 130, 211, 114, 211, 114, 211, 114, 211, 114, 210, 130, 195, + 130, 179, 146, 147, 188, 210, 240, 130, 240, 130, 240, 130, + 240, 130, 240, 130, 240, 130, 240, 130, 240, 130, 240, 130, + 240, 130, 240, 130, 240, 88, 0, 33, 48, 106, 28, 0, + 11, 86, 240, 83, 83, 243, 131, 211, 178, 179, 195, 147, + 227, 130, 240, 18, 115, 240, 19, 99, 240, 19, 98, 240, + 50, 83, 240, 51, 67, 240, 51, 67, 240, 51, 67, 240, + 51, 67, 240, 51, 67, 240, 51, 67, 240, 51, 82, 240, + 51, 83, 240, 19, 99, 240, 19, 114, 240, 18, 131, 84, + 83, 147, 65, 49, 66, 178, 49, 81, 34, 211, 17, 81, + 18, 240, 18, 17, 66, 240, 87, 240, 209, 97, 240, 81, + 97, 240, 81, 97, 240, 82, 81, 240, 83, 49, 240, 118, + 240, 118, 240, 132, 0, 7, 96, 66, 29, 0, 10, 126, + 240, 50, 131, 240, 18, 163, 226, 179, 210, 194, 210, 195, + 194, 195, 194, 195, 194, 195, 194, 194, 210, 179, 210, 163, + 226, 131, 240, 26, 240, 66, 115, 240, 34, 147, 242, 163, + 226, 163, 226, 178, 226, 178, 226, 179, 210, 179, 210, 179, + 210, 179, 81, 114, 179, 81, 114, 195, 49, 88, 165, 0, + 37, 61, 20, 0, 8, 21, 65, 130, 82, 33, 114, 116, + 98, 147, 82, 178, 82, 178, 82, 193, 82, 193, 83, 177, + 83, 240, 52, 240, 37, 240, 24, 232, 246, 240, 36, 240, + 50, 240, 51, 65, 210, 65, 210, 65, 210, 65, 210, 66, + 193, 83, 162, 82, 17, 130, 97, 50, 82, 113, 85, 0, + 26, 16, 68, 28, 0, 10, 95, 7, 99, 114, 115, 97, + 146, 145, 97, 146, 145, 97, 146, 145, 81, 162, 145, 81, + 162, 161, 65, 162, 161, 65, 162, 161, 242, 240, 178, 240, + 178, 240, 178, 240, 178, 240, 178, 240, 178, 240, 178, 240, + 178, 240, 178, 240, 178, 240, 178, 240, 178, 240, 178, 240, + 178, 240, 178, 240, 178, 240, 122, 0, 36, 48, 62, 27, + 0, 10, 24, 135, 114, 211, 146, 225, 162, 225, 162, 225, + 162, 225, 162, 225, 162, 225, 162, 225, 162, 225, 162, 225, + 162, 225, 162, 225, 162, 225, 162, 225, 162, 225, 162, 225, + 162, 225, 162, 225, 162, 225, 162, 225, 177, 209, 194, 193, + 209, 177, 241, 145, 240, 34, 82, 240, 85, 0, 35, 48, + 74, 30, 0, 11, 40, 198, 115, 243, 147, 240, 17, 178, + 241, 195, 225, 195, 225, 210, 209, 227, 193, 227, 193, 243, + 161, 240, 19, 161, 240, 34, 145, 240, 51, 129, 240, 51, + 129, 240, 66, 113, 240, 83, 97, 240, 98, 81, 240, 115, + 65, 240, 115, 65, 240, 130, 49, 240, 147, 33, 240, 147, + 33, 240, 164, 240, 180, 240, 194, 240, 210, 240, 210, 0, + 39, 64, 115, 41, 0, 15, 56, 120, 134, 100, 179, 195, + 147, 194, 209, 163, 195, 193, 178, 195, 177, 195, 161, 18, + 177, 195, 161, 19, 161, 210, 161, 19, 145, 227, 129, 35, + 145, 227, 129, 51, 129, 227, 129, 51, 113, 240, 19, 113, + 51, 113, 240, 19, 97, 82, 113, 240, 19, 97, 83, 81, + 240, 51, 81, 83, 81, 240, 51, 65, 114, 81, 240, 51, + 65, 115, 65, 240, 66, 65, 115, 49, 240, 83, 33, 146, + 49, 240, 83, 33, 147, 33, 240, 98, 33, 147, 17, 240, + 116, 178, 17, 240, 116, 180, 240, 131, 179, 240, 146, 210, + 240, 146, 210, 240, 161, 209, 0, 53, 16, 75, 30, 0, + 11, 41, 135, 148, 180, 195, 193, 243, 177, 240, 19, 145, + 240, 35, 129, 240, 67, 113, 240, 83, 81, 240, 99, 65, + 240, 131, 33, 240, 163, 17, 240, 164, 240, 195, 240, 211, + 240, 180, 240, 161, 35, 240, 145, 51, 240, 113, 67, 240, + 97, 99, 240, 81, 115, 240, 49, 132, 240, 17, 163, 240, + 17, 179, 225, 196, 194, 211, 179, 212, 119, 184, 0, 38, + 68, 30, 0, 11, 40, 198, 115, 243, 148, 226, 179, 225, + 211, 193, 227, 193, 243, 161, 240, 34, 145, 240, 51, 129, + 240, 67, 97, 240, 83, 97, 240, 99, 65, 240, 130, 49, + 240, 147, 33, 240, 164, 240, 194, 240, 210, 240, 210, 240, + 210, 240, 210, 240, 210, 240, 210, 240, 210, 240, 210, 240, + 210, 240, 210, 240, 168, 0, 39, 16, 62, 23, 0, 8, + 111, 3, 84, 164, 83, 179, 98, 179, 113, 195, 113, 179, + 113, 179, 129, 179, 240, 67, 240, 67, 240, 83, 240, 67, + 240, 83, 240, 67, 240, 67, 240, 83, 240, 67, 240, 67, + 161, 147, 161, 131, 177, 131, 177, 115, 193, 99, 194, 99, + 194, 83, 195, 67, 181, 79, 4, 0, 29, 32, 42, 9, + 149, 65, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 133, 64, 28, 15, 0, 6, 113, 97, 97, 97, + 97, 113, 97, 97, 97, 113, 97, 113, 97, 113, 97, 116, + 52, 68, 52, 82, 83, 0, 49, 32, 42, 9, 149, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 69, 64, 17, 14, 0, 5, 97, 210, 177, 18, 145, 50, + 113, 97, 81, 129, 0, 54, 96, 9, 7, 240, 211, 67, + 67, 0, 29, 48, 17, 8, 240, 193, 97, 97, 113, 97, + 113, 113, 113, 116, 68, 83, 0, 26, 64, 45, 20, 0, + 33, 5, 210, 66, 177, 114, 162, 114, 147, 98, 146, 114, + 240, 50, 230, 179, 66, 162, 98, 146, 114, 130, 130, 49, + 66, 130, 49, 66, 130, 49, 66, 115, 49, 83, 50, 19, + 33, 101, 68, 0, 25, 80, 63, 21, 0, 7, 117, 240, + 66, 240, 66, 240, 66, 240, 66, 240, 66, 240, 66, 240, + 66, 240, 66, 240, 66, 240, 66, 52, 194, 18, 66, 163, + 114, 146, 146, 130, 146, 130, 162, 114, 162, 114, 162, 114, + 162, 114, 162, 114, 162, 114, 162, 114, 146, 130, 146, 131, + 114, 145, 34, 66, 161, 68, 0, 27, 48, 39, 18, 0, + 29, 118, 163, 82, 114, 129, 113, 131, 82, 131, 81, 147, + 66, 240, 18, 240, 18, 240, 18, 240, 18, 240, 34, 240, + 18, 161, 83, 129, 114, 129, 131, 66, 181, 0, 23, 64, + 61, 22, 0, 9, 69, 240, 82, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 197, + 50, 163, 66, 18, 146, 131, 145, 162, 130, 162, 129, 178, + 114, 178, 114, 178, 114, 178, 114, 178, 114, 178, 114, 178, + 130, 162, 130, 147, 146, 131, 163, 66, 21, 149, 53, 0, + 28, 38, 18, 0, 29, 117, 178, 67, 130, 114, 98, 130, + 97, 162, 81, 162, 66, 162, 78, 66, 240, 18, 240, 18, + 240, 18, 240, 34, 161, 82, 161, 98, 129, 131, 66, 181, + 0, 23, 64, 38, 15, 240, 240, 115, 162, 49, 130, 50, + 130, 50, 114, 210, 210, 210, 210, 210, 210, 170, 130, 210, + 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 169, 0, 19, 64, 55, 21, 0, 34, 100, 53, 114, + 67, 50, 113, 97, 194, 98, 178, 98, 178, 98, 178, 98, + 178, 98, 194, 66, 210, 50, 209, 36, 225, 240, 81, 240, + 81, 240, 82, 240, 90, 203, 130, 132, 98, 179, 66, 210, + 66, 210, 66, 210, 82, 178, 115, 100, 168, 0, 6, 48, + 62, 22, 0, 8, 37, 240, 82, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, + 82, 53, 194, 33, 66, 178, 17, 83, 163, 114, 162, 130, + 162, 130, 162, 130, 162, 130, 162, 130, 162, 130, 162, 130, + 162, 130, 162, 130, 162, 130, 162, 130, 162, 130, 120, 40, + 0, 28, 29, 11, 0, 5, 99, 131, 131, 0, 9, 5, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 103, 0, 14, 32, 40, 12, 0, 6, 83, + 147, 147, 0, 10, 4, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 67, 50, 67, 49, 82, 50, 115, 240, 240, 16, 61, + 22, 0, 8, 37, 240, 82, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, + 102, 130, 115, 162, 113, 194, 97, 210, 81, 226, 65, 242, + 49, 240, 18, 35, 243, 35, 226, 66, 226, 82, 210, 83, + 194, 98, 194, 114, 178, 115, 162, 116, 104, 55, 0, 28, + 34, 12, 240, 240, 101, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 120, 0, 15, 64, 62, 32, + 0, 52, 35, 53, 85, 149, 33, 66, 49, 66, 178, 17, + 83, 17, 83, 163, 115, 114, 162, 130, 130, 162, 130, 130, + 162, 130, 130, 162, 130, 130, 162, 130, 130, 162, 130, 130, + 162, 130, 130, 162, 130, 130, 162, 130, 130, 162, 130, 130, + 162, 130, 130, 162, 130, 130, 120, 40, 40, 0, 40, 64, + 42, 22, 0, 36, 3, 53, 149, 33, 66, 178, 17, 83, + 163, 114, 162, 130, 162, 130, 162, 130, 162, 130, 162, 130, + 162, 130, 162, 130, 162, 130, 162, 130, 162, 130, 162, 130, + 162, 130, 120, 40, 0, 28, 39, 19, 0, 31, 69, 194, + 82, 146, 114, 129, 146, 98, 146, 97, 178, 66, 178, 66, + 178, 66, 178, 66, 178, 66, 178, 66, 178, 82, 146, 98, + 146, 114, 114, 146, 82, 197, 0, 24, 112, 58, 21, 0, + 34, 36, 52, 149, 18, 66, 163, 114, 146, 146, 130, 146, + 130, 162, 114, 162, 114, 162, 114, 162, 114, 162, 114, 162, + 114, 162, 114, 146, 130, 146, 131, 114, 146, 18, 51, 162, + 52, 194, 240, 66, 240, 66, 240, 66, 240, 66, 240, 66, + 240, 66, 240, 24, 0, 6, 112, 60, 22, 0, 36, 53, + 65, 163, 66, 33, 146, 113, 33, 146, 131, 130, 162, 130, + 162, 114, 178, 114, 178, 114, 178, 114, 178, 114, 178, 115, + 162, 130, 162, 131, 131, 146, 113, 18, 163, 65, 34, 197, + 50, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 40, 0, 6, 28, 15, 0, 24, 83, + 35, 85, 17, 34, 115, 50, 115, 195, 194, 210, 210, 210, + 210, 210, 210, 210, 210, 210, 210, 168, 0, 19, 80, 36, + 16, 0, 26, 54, 130, 98, 81, 145, 81, 145, 81, 145, + 82, 243, 230, 198, 227, 81, 146, 65, 161, 65, 161, 66, + 145, 67, 113, 81, 18, 82, 81, 53, 0, 20, 112, 38, + 15, 0, 11, 97, 225, 225, 225, 210, 210, 195, 170, 130, + 210, 210, 210, 210, 210, 210, 210, 210, 81, 114, 81, 114, + 81, 114, 81, 114, 81, 115, 65, 130, 49, 164, 0, 19, + 64, 42, 22, 0, 35, 101, 85, 162, 130, 162, 130, 162, + 130, 162, 130, 162, 130, 162, 130, 162, 130, 162, 130, 162, + 130, 162, 130, 162, 130, 162, 130, 162, 115, 162, 97, 18, + 178, 66, 21, 149, 53, 0, 28, 44, 22, 0, 35, 103, + 101, 99, 146, 146, 145, 162, 145, 178, 113, 194, 113, 195, + 97, 210, 81, 226, 81, 242, 49, 240, 18, 49, 240, 19, + 33, 240, 34, 17, 240, 50, 17, 240, 66, 240, 82, 240, + 82, 0, 29, 65, 29, 0, 47, 22, 54, 70, 98, 114, + 130, 130, 114, 129, 147, 114, 113, 162, 99, 97, 178, 99, + 97, 194, 65, 34, 81, 194, 65, 34, 65, 210, 65, 34, + 65, 226, 33, 66, 49, 226, 33, 66, 33, 242, 33, 66, + 33, 240, 19, 98, 17, 240, 19, 99, 240, 35, 99, 240, + 49, 130, 240, 49, 129, 0, 37, 96, 45, 23, 0, 37, + 55, 86, 131, 115, 178, 113, 211, 97, 227, 65, 240, 18, + 49, 240, 50, 17, 240, 82, 240, 99, 240, 84, 240, 49, + 34, 240, 33, 66, 241, 83, 225, 99, 193, 130, 163, 131, + 118, 103, 0, 29, 32, 61, 22, 0, 35, 102, 102, 98, + 147, 145, 161, 162, 129, 178, 129, 194, 97, 210, 97, 226, + 81, 226, 65, 242, 65, 240, 18, 33, 240, 34, 33, 240, + 35, 17, 240, 51, 240, 67, 240, 81, 240, 97, 240, 97, + 240, 81, 240, 97, 240, 81, 242, 65, 242, 49, 240, 17, + 50, 240, 36, 0, 7, 80, 33, 18, 0, 29, 61, 82, + 130, 97, 131, 97, 130, 97, 130, 242, 243, 242, 242, 242, + 243, 97, 130, 113, 114, 129, 98, 145, 83, 130, 82, 131, + 78, 0, 23, 9, 22, 0, 52, 47, 3, 0, 55, 64, + 9, 41, 0, 97, 63, 15, 7, 0, 103, 21, 14, 240, + 240, 226, 66, 98, 66, 97, 81, 98, 66, 97, 81, 97, + 81, 113, 81, 0, 53, 48, 14, 16, 0, 8, 36, 81, + 82, 34, 49, 81, 99, 0, 66, 96, +}; + +//***************************************************************************** +// +// The font definition for the 40 point Cm font. +// +//***************************************************************************** +const tFont g_sFontCm40 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 36, + + // + // The height of the font. + // + 40, + + // + // The baseline of the font. + // + 30, + + // + // The offset to each character in the font. + // + { + 0, 4, 35, 63, 170, 250, 358, 445, + 462, 505, 548, 589, 646, 663, 671, 681, + 764, 821, 855, 911, 967, 1025, 1082, 1141, + 1200, 1255, 1314, 1329, 1351, 1383, 1396, 1441, + 1485, 1584, 1659, 1719, 1790, 1861, 1923, 1982, + 2054, 2114, 2148, 2206, 2279, 2339, 2448, 2528, + 2603, 2661, 2767, 2833, 2894, 2962, 3024, 3098, + 3213, 3288, 3356, 3418, 3460, 3488, 3530, 3547, + 3556, 3573, 3618, 3681, 3720, 3781, 3819, 3857, + 3912, 3974, 4003, 4043, 4104, 4138, 4200, 4242, + 4281, 4339, 4399, 4427, 4463, 4501, 4543, 4587, + 4652, 4697, 4758, 4791, 4800, 4809, 4830, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm40Data +}; diff --git a/grlib/fonts/fontcm40b.c b/grlib/fonts/fontcm40b.c new file mode 100644 index 0000000..ffcb904 --- /dev/null +++ b/grlib/fonts/fontcm40b.c @@ -0,0 +1,511 @@ +//***************************************************************************** +// +// fontcm40b.c - Font definition for the 40pt Cm bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 40 point +// Bold: yes +// Italic: no +// Memory usage: 5056 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 40 point Cm bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm40bData[4855] = +{ + 5, 17, 0, 87, 16, 34, 10, 240, 100, 86, 70, 70, + 70, 70, 70, 84, 100, 100, 100, 100, 100, 100, 100, 114, + 130, 130, 130, 130, 240, 240, 116, 86, 70, 70, 70, 84, + 0, 13, 16, 36, 21, 0, 8, 4, 100, 102, 70, 87, + 55, 71, 55, 71, 55, 84, 17, 68, 17, 146, 130, 146, + 130, 145, 145, 146, 130, 145, 145, 146, 130, 130, 130, 145, + 145, 0, 64, 108, 33, 0, 14, 17, 114, 240, 115, 99, + 240, 98, 114, 240, 114, 99, 240, 99, 99, 240, 99, 99, + 240, 98, 114, 240, 114, 114, 240, 99, 99, 240, 99, 99, + 240, 98, 114, 240, 114, 114, 240, 99, 99, 191, 14, 79, + 14, 226, 99, 240, 99, 99, 240, 99, 98, 240, 114, 114, + 240, 114, 99, 240, 99, 99, 240, 99, 98, 239, 14, 79, + 14, 179, 99, 240, 98, 114, 240, 114, 99, 240, 99, 99, + 240, 99, 98, 240, 114, 114, 240, 114, 99, 240, 99, 99, + 240, 99, 98, 240, 114, 114, 240, 114, 99, 240, 114, 114, + 0, 10, 48, 75, 20, 240, 194, 240, 50, 240, 22, 202, + 147, 34, 35, 115, 50, 66, 98, 66, 67, 67, 66, 52, + 67, 66, 37, 67, 66, 37, 68, 50, 37, 69, 34, 51, + 89, 202, 172, 156, 156, 155, 201, 178, 37, 83, 50, 52, + 69, 34, 67, 69, 34, 67, 69, 34, 67, 68, 50, 67, + 81, 82, 66, 98, 66, 51, 115, 34, 35, 154, 198, 240, + 18, 240, 50, 0, 21, 48, 104, 33, 68, 242, 167, 227, + 147, 36, 164, 147, 69, 117, 147, 79, 1, 148, 82, 53, + 19, 164, 82, 132, 164, 82, 131, 180, 82, 115, 196, 82, + 100, 196, 82, 99, 212, 82, 83, 243, 66, 84, 243, 66, + 83, 240, 35, 35, 67, 240, 70, 68, 240, 227, 240, 227, + 102, 240, 36, 83, 35, 240, 19, 83, 66, 243, 99, 66, + 228, 84, 82, 211, 100, 82, 195, 116, 82, 195, 116, 82, + 179, 132, 82, 163, 148, 82, 163, 148, 82, 147, 179, 67, + 131, 195, 66, 147, 211, 35, 131, 231, 161, 240, 36, 0, + 33, 112, 82, 31, 0, 8, 100, 240, 182, 240, 147, 34, + 240, 131, 66, 240, 115, 66, 240, 100, 66, 240, 100, 66, + 240, 100, 66, 240, 100, 50, 240, 116, 50, 240, 117, 18, + 240, 135, 121, 149, 137, 148, 194, 213, 163, 228, 162, 230, + 130, 232, 114, 210, 37, 98, 211, 53, 66, 212, 54, 50, + 197, 69, 34, 213, 87, 229, 87, 229, 102, 129, 101, 102, + 98, 101, 67, 21, 67, 122, 58, 166, 133, 0, 39, 96, + 21, 11, 240, 240, 68, 102, 87, 71, 71, 84, 17, 146, + 146, 145, 146, 145, 146, 130, 145, 0, 34, 44, 14, 240, + 114, 178, 178, 179, 163, 179, 163, 179, 164, 163, 164, 164, + 164, 163, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 180, 164, 164, 179, 180, 164, 179, 195, 179, + 195, 194, 210, 210, 64, 43, 14, 226, 210, 210, 195, 195, + 179, 195, 179, 195, 179, 180, 164, 164, 179, 180, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 163, 164, 164, + 164, 163, 179, 163, 179, 163, 179, 163, 178, 178, 178, 192, + 42, 20, 240, 194, 240, 36, 240, 20, 240, 20, 179, 50, + 51, 85, 34, 37, 85, 18, 21, 138, 198, 230, 188, 117, + 18, 21, 85, 34, 37, 83, 50, 51, 180, 240, 20, 240, + 20, 240, 34, 0, 56, 48, 61, 30, 0, 27, 98, 240, + 210, 240, 210, 240, 210, 240, 210, 240, 210, 240, 210, 240, + 210, 240, 210, 240, 210, 240, 210, 240, 210, 240, 210, 240, + 31, 11, 79, 11, 240, 18, 240, 210, 240, 210, 240, 210, + 240, 210, 240, 210, 240, 210, 240, 210, 240, 210, 240, 210, + 240, 210, 240, 210, 0, 28, 32, 20, 11, 0, 34, 68, + 102, 87, 71, 71, 86, 146, 146, 145, 146, 145, 146, 130, + 145, 240, 240, 11, 15, 0, 37, 75, 75, 75, 75, 0, + 32, 48, 13, 10, 0, 31, 52, 86, 70, 70, 70, 84, + 0, 13, 16, 85, 19, 240, 240, 34, 240, 19, 240, 19, + 240, 18, 240, 19, 240, 19, 240, 18, 240, 19, 240, 19, + 240, 18, 240, 19, 240, 19, 240, 18, 240, 19, 240, 19, + 240, 18, 240, 19, 240, 19, 240, 18, 240, 19, 240, 19, + 240, 18, 240, 19, 240, 19, 240, 18, 240, 19, 240, 19, + 240, 18, 240, 19, 240, 19, 240, 18, 240, 19, 240, 19, + 240, 18, 240, 19, 240, 19, 240, 18, 240, 19, 240, 19, + 240, 18, 240, 32, 59, 20, 0, 10, 86, 210, 67, 163, + 68, 131, 99, 116, 100, 100, 100, 100, 100, 85, 101, 69, + 101, 69, 101, 69, 101, 69, 101, 69, 101, 69, 101, 69, + 101, 69, 101, 69, 101, 69, 101, 69, 101, 69, 101, 84, + 100, 100, 100, 100, 100, 115, 99, 132, 68, 148, 51, 198, + 0, 26, 16, 34, 18, 0, 9, 114, 243, 213, 153, 148, + 20, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 173, 93, 0, + 23, 46, 20, 0, 10, 86, 202, 147, 54, 115, 86, 85, + 70, 86, 70, 70, 70, 70, 70, 70, 70, 84, 86, 230, + 229, 230, 229, 229, 244, 244, 244, 244, 82, 147, 98, 131, + 114, 114, 130, 125, 125, 110, 95, 95, 0, 25, 80, 51, + 20, 0, 10, 86, 202, 147, 69, 130, 100, 117, 69, 101, + 69, 102, 53, 101, 69, 115, 84, 240, 20, 244, 244, 214, + 231, 240, 37, 240, 21, 245, 246, 84, 86, 70, 70, 70, + 70, 70, 70, 70, 69, 99, 86, 100, 69, 139, 183, 0, + 26, 16, 55, 21, 0, 12, 2, 240, 51, 240, 51, 240, + 36, 240, 21, 240, 21, 246, 246, 226, 20, 210, 36, 210, + 36, 194, 52, 178, 68, 178, 68, 162, 84, 161, 100, 146, + 100, 130, 116, 130, 116, 127, 2, 79, 2, 228, 240, 36, + 240, 36, 240, 36, 219, 171, 0, 26, 96, 50, 20, 0, + 10, 33, 161, 131, 99, 140, 139, 154, 169, 183, 210, 240, + 50, 240, 50, 240, 50, 37, 187, 148, 53, 130, 101, 113, + 117, 246, 230, 230, 84, 86, 84, 86, 70, 70, 69, 86, + 84, 85, 98, 102, 115, 54, 153, 198, 0, 26, 32, 57, + 21, 0, 11, 69, 233, 165, 51, 148, 84, 131, 85, 116, + 85, 101, 85, 100, 115, 116, 240, 36, 240, 21, 37, 149, + 24, 119, 53, 102, 85, 85, 101, 85, 102, 69, 102, 69, + 102, 69, 102, 69, 102, 84, 102, 84, 102, 84, 101, 116, + 85, 132, 53, 170, 214, 0, 27, 48, 58, 21, 0, 10, + 82, 240, 79, 1, 95, 1, 95, 110, 110, 115, 131, 114, + 146, 130, 130, 146, 114, 240, 51, 240, 50, 240, 51, 240, + 51, 240, 35, 240, 51, 240, 51, 240, 36, 240, 36, 240, + 36, 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, + 21, 240, 35, 0, 27, 112, 52, 20, 0, 10, 86, 217, + 162, 84, 130, 116, 99, 131, 99, 131, 99, 131, 100, 115, + 102, 83, 103, 51, 139, 154, 186, 186, 141, 115, 40, 99, + 87, 67, 133, 67, 148, 67, 163, 67, 163, 67, 163, 68, + 146, 99, 131, 116, 83, 154, 198, 0, 26, 16, 56, 20, + 0, 10, 86, 201, 164, 67, 148, 68, 116, 100, 85, 100, + 85, 100, 85, 101, 69, 101, 69, 101, 69, 101, 69, 101, + 69, 101, 84, 101, 84, 86, 100, 55, 119, 21, 148, 37, + 244, 240, 20, 115, 100, 101, 83, 117, 68, 116, 83, 131, + 68, 169, 213, 0, 26, 48, 21, 10, 0, 16, 52, 86, + 70, 70, 70, 84, 0, 8, 36, 86, 70, 70, 70, 84, + 0, 13, 16, 28, 10, 0, 16, 52, 86, 70, 70, 70, + 84, 0, 8, 35, 101, 86, 70, 70, 85, 145, 130, 129, + 145, 130, 129, 130, 114, 240, 192, 33, 10, 0, 13, 116, + 86, 70, 70, 70, 84, 240, 240, 114, 130, 130, 130, 130, + 116, 100, 100, 100, 100, 100, 100, 86, 70, 70, 70, 70, + 70, 84, 240, 160, 17, 31, 0, 62, 15, 12, 79, 12, + 0, 27, 95, 12, 79, 12, 0, 54, 96, 49, 19, 0, + 26, 100, 230, 214, 199, 214, 228, 0, 9, 18, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 19, 240, 18, 240, 19, + 240, 19, 228, 229, 228, 99, 85, 85, 69, 85, 69, 85, + 69, 85, 84, 99, 115, 83, 152, 0, 5, 96, 45, 18, + 240, 240, 166, 170, 115, 69, 84, 85, 69, 69, 69, 69, + 69, 69, 83, 85, 197, 212, 212, 227, 243, 227, 243, 242, + 240, 18, 240, 18, 240, 18, 240, 18, 0, 8, 83, 229, + 214, 197, 213, 227, 0, 23, 96, 99, 31, 0, 9, 7, + 240, 109, 240, 36, 117, 212, 180, 179, 243, 162, 240, 34, + 146, 117, 114, 130, 88, 99, 98, 84, 51, 98, 98, 68, + 98, 82, 98, 68, 100, 51, 66, 83, 116, 66, 66, 68, + 116, 66, 66, 68, 116, 66, 66, 68, 116, 66, 66, 68, + 116, 66, 66, 68, 116, 66, 66, 68, 116, 66, 66, 68, + 116, 66, 82, 68, 100, 66, 82, 68, 100, 65, 98, 84, + 54, 50, 114, 88, 23, 130, 117, 53, 162, 240, 242, 240, + 66, 147, 229, 179, 134, 240, 27, 0, 40, 16, 74, 32, + 0, 13, 82, 240, 228, 240, 212, 240, 212, 240, 198, 240, + 182, 240, 183, 240, 152, 240, 152, 240, 146, 22, 240, 115, + 22, 240, 114, 38, 240, 114, 54, 240, 83, 54, 240, 82, + 70, 240, 82, 86, 240, 50, 102, 240, 50, 117, 240, 35, + 118, 240, 31, 1, 240, 31, 1, 243, 150, 226, 166, 226, + 182, 195, 182, 194, 198, 137, 109, 73, 109, 0, 40, 64, + 62, 29, 0, 10, 127, 4, 175, 6, 197, 118, 181, 134, + 165, 150, 149, 150, 149, 150, 149, 150, 149, 150, 149, 149, + 165, 134, 165, 117, 207, 239, 1, 213, 133, 181, 149, 165, + 150, 149, 166, 133, 166, 133, 166, 133, 166, 133, 166, 133, + 166, 133, 150, 149, 150, 149, 134, 111, 7, 127, 5, 0, + 37, 48, 67, 28, 0, 11, 103, 97, 188, 50, 166, 83, + 19, 134, 149, 117, 196, 117, 211, 101, 227, 86, 227, 85, + 240, 18, 85, 240, 18, 70, 240, 18, 70, 240, 118, 240, + 118, 240, 118, 240, 118, 240, 118, 240, 118, 240, 133, 240, + 18, 86, 242, 86, 242, 101, 242, 102, 210, 134, 179, 150, + 147, 183, 84, 236, 240, 71, 0, 36, 48, 63, 32, 0, + 12, 15, 4, 223, 7, 229, 134, 213, 165, 197, 181, 181, + 182, 165, 197, 165, 198, 149, 213, 149, 213, 149, 214, 133, + 214, 133, 214, 133, 214, 133, 214, 133, 214, 133, 214, 133, + 214, 133, 214, 133, 213, 149, 198, 149, 197, 165, 197, 165, + 181, 181, 165, 197, 134, 159, 7, 175, 4, 0, 41, 80, + 73, 28, 0, 10, 79, 6, 127, 7, 166, 117, 166, 147, + 166, 147, 166, 162, 166, 162, 166, 162, 166, 66, 66, 166, + 66, 82, 150, 66, 240, 22, 66, 240, 22, 51, 240, 28, + 240, 28, 240, 22, 51, 240, 22, 66, 240, 22, 66, 98, + 134, 66, 97, 150, 66, 82, 150, 178, 150, 178, 150, 178, + 150, 163, 150, 147, 166, 117, 111, 7, 111, 7, 0, 35, + 96, 60, 26, 0, 9, 111, 6, 95, 6, 150, 116, 150, + 132, 134, 147, 134, 162, 134, 162, 134, 162, 134, 66, 66, + 134, 66, 66, 134, 66, 230, 66, 230, 51, 236, 236, 230, + 51, 230, 66, 230, 66, 230, 66, 230, 66, 230, 240, 86, + 240, 86, 240, 86, 240, 86, 240, 86, 240, 30, 206, 0, + 34, 66, 32, 0, 13, 39, 98, 237, 35, 214, 103, 182, + 150, 166, 181, 165, 212, 149, 243, 134, 243, 134, 243, 133, + 240, 34, 118, 240, 34, 118, 240, 182, 240, 182, 240, 182, + 240, 182, 240, 182, 240, 182, 142, 85, 142, 85, 214, 134, + 198, 149, 198, 150, 182, 166, 166, 182, 150, 199, 88, 236, + 51, 240, 39, 98, 0, 40, 112, 63, 33, 0, 12, 62, + 30, 78, 30, 134, 150, 198, 150, 198, 150, 198, 150, 198, + 150, 198, 150, 198, 150, 198, 150, 198, 150, 198, 150, 198, + 150, 207, 6, 207, 6, 198, 150, 198, 150, 198, 150, 198, + 150, 198, 150, 198, 150, 198, 150, 198, 150, 198, 150, 198, + 150, 198, 150, 142, 30, 78, 30, 0, 41, 96, 34, 18, + 0, 6, 110, 78, 134, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 142, 78, 0, 23, 58, 22, 0, 8, + 125, 157, 229, 240, 37, 240, 37, 240, 37, 240, 37, 240, + 37, 240, 37, 240, 37, 240, 37, 240, 37, 240, 37, 240, + 37, 240, 37, 240, 37, 240, 37, 240, 37, 240, 37, 240, + 37, 132, 85, 118, 69, 118, 69, 118, 69, 118, 68, 148, + 69, 162, 68, 230, 0, 29, 75, 33, 0, 12, 62, 89, + 94, 89, 150, 195, 198, 179, 214, 163, 230, 147, 246, 131, + 240, 22, 115, 240, 38, 99, 240, 54, 83, 240, 70, 67, + 240, 86, 52, 240, 86, 37, 240, 86, 23, 240, 79, 240, + 56, 22, 240, 55, 54, 240, 38, 86, 240, 22, 86, 240, + 22, 102, 246, 118, 230, 118, 230, 134, 214, 134, 214, 150, + 198, 166, 126, 60, 78, 60, 0, 41, 96, 61, 25, 0, + 9, 63, 175, 230, 240, 70, 240, 70, 240, 70, 240, 70, + 240, 70, 240, 70, 240, 70, 240, 70, 240, 70, 240, 70, + 240, 70, 240, 70, 240, 70, 240, 70, 240, 70, 161, 134, + 146, 134, 146, 134, 146, 134, 146, 134, 131, 134, 131, 134, + 116, 134, 86, 79, 5, 95, 5, 0, 31, 112, 106, 40, + 0, 15, 10, 240, 26, 74, 240, 26, 135, 231, 199, 225, + 21, 194, 21, 194, 21, 194, 21, 194, 21, 194, 21, 193, + 37, 194, 37, 162, 37, 194, 37, 162, 37, 194, 52, 161, + 53, 194, 53, 130, 53, 194, 53, 129, 69, 194, 69, 98, + 69, 194, 69, 98, 69, 194, 69, 97, 85, 194, 85, 66, + 85, 194, 85, 66, 85, 194, 101, 34, 101, 194, 101, 34, + 101, 194, 101, 33, 117, 194, 119, 117, 194, 119, 117, 194, + 118, 133, 194, 133, 133, 194, 133, 133, 194, 147, 149, 138, + 83, 93, 74, 82, 109, 0, 50, 64, 76, 33, 0, 12, + 58, 154, 75, 138, 135, 194, 200, 178, 201, 162, 194, 22, + 162, 194, 38, 146, 194, 39, 130, 194, 55, 114, 194, 70, + 114, 194, 86, 98, 194, 87, 82, 194, 102, 82, 194, 118, + 66, 194, 134, 50, 194, 135, 34, 194, 150, 34, 194, 166, + 18, 194, 169, 194, 184, 194, 199, 194, 214, 194, 214, 194, + 229, 194, 244, 194, 244, 138, 195, 138, 210, 0, 42, 32, + 63, 30, 0, 12, 56, 240, 92, 240, 22, 70, 213, 133, + 181, 165, 149, 197, 133, 197, 118, 198, 101, 229, 101, 229, + 86, 230, 70, 230, 70, 230, 70, 230, 70, 230, 70, 230, + 70, 230, 70, 230, 85, 229, 101, 229, 102, 198, 117, 197, + 134, 181, 149, 165, 181, 133, 214, 70, 240, 28, 240, 88, + 0, 39, 16, 60, 28, 0, 10, 79, 3, 175, 6, 182, + 102, 166, 118, 150, 133, 150, 134, 134, 134, 134, 134, 134, + 134, 134, 134, 134, 134, 134, 133, 150, 118, 150, 102, 175, + 2, 190, 230, 240, 118, 240, 118, 240, 118, 240, 118, 240, + 118, 240, 118, 240, 118, 240, 118, 240, 118, 240, 62, 238, + 0, 36, 96, 86, 30, 0, 12, 56, 240, 93, 246, 70, + 213, 133, 181, 165, 150, 181, 133, 197, 118, 198, 101, 229, + 101, 230, 70, 230, 70, 230, 70, 230, 70, 230, 70, 230, + 70, 230, 70, 230, 70, 230, 85, 229, 101, 229, 102, 198, + 117, 83, 69, 134, 53, 52, 165, 34, 50, 21, 181, 17, + 85, 231, 68, 240, 44, 97, 218, 97, 240, 84, 66, 240, + 100, 50, 240, 105, 240, 105, 240, 105, 240, 119, 240, 135, + 240, 148, 0, 8, 48, 72, 33, 0, 12, 63, 2, 240, + 31, 5, 240, 37, 118, 245, 134, 229, 149, 229, 150, 213, + 150, 213, 150, 213, 150, 213, 150, 213, 149, 229, 134, 229, + 117, 240, 31, 1, 240, 47, 240, 53, 86, 240, 37, 102, + 240, 21, 118, 245, 118, 245, 118, 245, 118, 245, 118, 245, + 119, 229, 119, 66, 133, 134, 66, 133, 134, 66, 77, 86, + 34, 93, 134, 0, 42, 56, 22, 0, 8, 118, 66, 138, + 19, 116, 86, 100, 117, 99, 148, 84, 163, 84, 163, 84, + 178, 85, 162, 86, 145, 105, 236, 174, 158, 158, 172, 233, + 240, 22, 240, 37, 66, 196, 66, 196, 66, 196, 67, 180, + 68, 163, 85, 132, 87, 84, 99, 27, 114, 71, 0, 28, + 80, 72, 30, 0, 11, 63, 9, 111, 9, 100, 86, 69, + 99, 102, 99, 98, 118, 114, 98, 118, 114, 98, 118, 114, + 98, 118, 114, 98, 118, 114, 97, 134, 129, 82, 134, 130, + 230, 240, 150, 240, 150, 240, 150, 240, 150, 240, 150, 240, + 150, 240, 150, 240, 150, 240, 150, 240, 150, 240, 150, 240, + 150, 240, 150, 240, 150, 240, 79, 1, 239, 1, 0, 38, + 80, 63, 33, 0, 12, 62, 90, 78, 90, 134, 210, 198, + 210, 198, 210, 198, 210, 198, 210, 198, 210, 198, 210, 198, + 210, 198, 210, 198, 210, 198, 210, 198, 210, 198, 210, 198, + 210, 198, 210, 198, 210, 198, 210, 198, 210, 198, 210, 213, + 210, 213, 194, 245, 178, 246, 131, 240, 38, 99, 240, 92, + 240, 136, 0, 43, 72, 32, 0, 12, 12, 136, 76, 136, + 118, 226, 182, 195, 182, 194, 198, 179, 214, 162, 230, 162, + 245, 147, 246, 130, 240, 22, 130, 240, 38, 98, 240, 54, + 98, 240, 54, 83, 240, 70, 66, 240, 86, 66, 240, 101, + 51, 240, 102, 34, 240, 118, 34, 240, 136, 240, 152, 240, + 152, 240, 166, 240, 182, 240, 197, 240, 196, 240, 212, 240, + 226, 0, 42, 16, 107, 43, 0, 16, 28, 44, 88, 76, + 44, 88, 118, 134, 178, 166, 134, 178, 181, 150, 162, 182, + 134, 146, 198, 134, 146, 213, 135, 130, 214, 119, 114, 230, + 119, 114, 245, 98, 22, 98, 246, 82, 22, 82, 240, 22, + 82, 22, 82, 240, 37, 66, 54, 66, 240, 38, 50, 54, + 50, 240, 54, 50, 54, 50, 240, 70, 18, 86, 34, 240, + 70, 18, 86, 18, 240, 86, 18, 86, 18, 240, 103, 120, + 240, 103, 119, 240, 119, 119, 240, 133, 150, 240, 133, 149, + 240, 149, 164, 240, 163, 180, 240, 163, 179, 240, 179, 194, + 0, 55, 80, 74, 32, 0, 12, 28, 58, 124, 58, 167, + 131, 246, 130, 240, 38, 99, 240, 38, 83, 240, 70, 66, + 240, 87, 35, 240, 102, 34, 240, 136, 240, 152, 240, 166, + 240, 183, 240, 182, 240, 198, 240, 167, 240, 153, 240, 130, + 23, 240, 99, 38, 240, 98, 70, 240, 66, 86, 240, 51, + 102, 240, 34, 119, 242, 150, 227, 166, 210, 182, 139, 92, + 75, 92, 0, 40, 64, 70, 33, 0, 12, 61, 121, 77, + 121, 134, 210, 199, 179, 214, 178, 246, 146, 240, 22, 131, + 240, 38, 114, 240, 54, 99, 240, 70, 82, 240, 86, 67, + 240, 102, 50, 240, 134, 18, 240, 153, 240, 167, 240, 183, + 240, 197, 240, 213, 240, 213, 240, 213, 240, 213, 240, 213, + 240, 213, 240, 213, 240, 213, 240, 213, 240, 157, 240, 93, + 0, 42, 96, 64, 24, 0, 9, 31, 4, 95, 4, 86, + 102, 100, 134, 99, 134, 114, 150, 114, 134, 130, 119, 130, + 118, 145, 119, 240, 38, 240, 38, 240, 54, 240, 38, 240, + 54, 240, 38, 240, 54, 240, 38, 114, 134, 130, 134, 130, + 118, 146, 118, 146, 102, 147, 102, 147, 86, 148, 86, 118, + 79, 5, 79, 5, 0, 30, 64, 43, 10, 166, 70, 66, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 134, + 70, 64, 35, 21, 0, 8, 50, 130, 130, 130, 130, 130, + 145, 145, 146, 130, 145, 145, 146, 130, 146, 130, 150, 70, + 87, 55, 71, 55, 71, 55, 86, 70, 100, 100, 0, 63, + 80, 43, 10, 166, 70, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 70, 70, 64, 18, 15, 0, 6, + 33, 211, 181, 147, 19, 115, 51, 83, 83, 81, 113, 0, + 58, 96, 13, 10, 240, 240, 20, 86, 70, 70, 70, 84, + 0, 40, 80, 21, 11, 240, 240, 114, 130, 130, 145, 146, + 145, 146, 146, 150, 87, 71, 71, 86, 100, 0, 33, 80, + 42, 22, 0, 36, 24, 211, 68, 165, 68, 149, 83, 148, + 100, 146, 116, 240, 52, 217, 180, 52, 148, 84, 132, 100, + 116, 116, 116, 116, 116, 116, 116, 116, 132, 81, 19, 132, + 65, 38, 118, 69, 0, 28, 64, 25, 0, 9, 55, 240, + 55, 240, 100, 240, 100, 240, 100, 240, 100, 240, 100, 240, + 100, 240, 100, 240, 100, 240, 100, 39, 198, 84, 165, 116, + 148, 132, 148, 148, 132, 149, 116, 149, 116, 149, 116, 149, + 116, 149, 116, 149, 116, 149, 116, 148, 132, 148, 132, 132, + 149, 115, 163, 18, 68, 178, 70, 0, 32, 64, 33, 19, + 0, 31, 86, 186, 117, 68, 100, 69, 85, 69, 84, 99, + 85, 229, 229, 229, 229, 229, 244, 145, 85, 114, 100, 113, + 118, 51, 153, 197, 0, 24, 96, 62, 24, 0, 10, 39, + 240, 39, 240, 84, 240, 84, 240, 84, 240, 84, 240, 84, + 240, 84, 240, 84, 240, 84, 214, 20, 179, 70, 148, 101, + 148, 116, 132, 132, 132, 132, 117, 132, 117, 132, 117, 132, + 117, 132, 117, 132, 117, 132, 132, 132, 132, 132, 133, 116, + 148, 101, 164, 73, 150, 39, 0, 30, 64, 40, 21, 0, + 34, 118, 211, 67, 148, 99, 116, 116, 100, 132, 84, 132, + 69, 132, 79, 2, 79, 2, 69, 240, 21, 240, 21, 240, + 36, 162, 85, 146, 100, 130, 133, 68, 154, 214, 0, 27, + 48, 41, 19, 0, 5, 101, 200, 149, 36, 132, 37, 116, + 53, 116, 53, 116, 81, 148, 244, 244, 244, 218, 154, 180, + 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, + 244, 203, 139, 0, 24, 96, 54, 22, 0, 36, 54, 52, + 127, 100, 68, 19, 84, 99, 19, 84, 100, 132, 100, 132, + 100, 132, 100, 132, 99, 164, 68, 171, 177, 38, 194, 240, + 83, 240, 77, 174, 143, 127, 99, 149, 68, 164, 67, 180, + 67, 180, 68, 163, 100, 132, 116, 100, 184, 0, 6, 80, + 65, 25, 0, 9, 55, 240, 55, 240, 100, 240, 100, 240, + 100, 240, 100, 240, 100, 240, 100, 240, 100, 240, 100, 240, + 100, 54, 196, 33, 52, 180, 17, 84, 165, 100, 165, 100, + 164, 116, 164, 116, 164, 116, 164, 116, 164, 116, 164, 116, + 164, 116, 164, 116, 164, 116, 164, 116, 164, 116, 122, 26, + 74, 26, 0, 31, 96, 33, 13, 240, 240, 195, 149, 133, + 133, 133, 147, 0, 7, 55, 103, 148, 148, 148, 148, 148, + 148, 148, 148, 148, 148, 148, 148, 148, 148, 105, 73, 0, + 16, 96, 46, 15, 0, 6, 67, 181, 165, 165, 165, 179, + 0, 8, 102, 150, 180, 180, 180, 180, 180, 180, 180, 180, + 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 83, 52, + 69, 36, 69, 36, 69, 35, 99, 35, 134, 240, 240, 112, + 62, 24, 0, 9, 7, 240, 39, 240, 84, 240, 84, 240, + 84, 240, 84, 240, 84, 240, 84, 240, 84, 240, 84, 240, + 84, 72, 132, 72, 132, 99, 180, 83, 196, 67, 212, 50, + 244, 34, 240, 20, 20, 249, 250, 228, 37, 212, 52, 212, + 53, 196, 69, 180, 84, 180, 85, 122, 25, 74, 25, 0, + 30, 64, 34, 14, 240, 240, 199, 119, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 122, 74, 0, 18, + 64, 36, 0, 58, 71, 69, 101, 151, 40, 56, 135, 18, + 52, 34, 52, 180, 17, 86, 84, 165, 101, 100, 164, 116, + 116, 164, 116, 116, 164, 116, 116, 164, 116, 116, 164, 116, + 116, 164, 116, 116, 164, 116, 116, 164, 116, 116, 164, 116, + 116, 164, 116, 116, 164, 116, 116, 122, 26, 26, 74, 26, + 26, 0, 45, 64, 45, 25, 0, 40, 87, 69, 151, 33, + 52, 180, 17, 84, 165, 100, 165, 100, 164, 116, 164, 116, + 164, 116, 164, 116, 164, 116, 164, 116, 164, 116, 164, 116, + 164, 116, 164, 116, 164, 116, 122, 26, 74, 26, 0, 31, + 96, 40, 22, 0, 36, 70, 227, 67, 164, 100, 131, 131, + 116, 132, 100, 132, 85, 133, 69, 133, 69, 133, 69, 133, + 69, 133, 69, 133, 84, 132, 100, 132, 116, 100, 133, 69, + 170, 230, 0, 28, 96, 57, 25, 0, 40, 87, 53, 167, + 25, 137, 70, 149, 116, 148, 133, 132, 148, 132, 149, 116, + 149, 116, 149, 116, 149, 116, 149, 116, 149, 116, 149, 116, + 133, 132, 132, 149, 101, 150, 68, 180, 23, 212, 240, 100, + 240, 100, 240, 100, 240, 100, 240, 100, 240, 58, 250, 0, + 8, 16, 59, 24, 0, 39, 101, 66, 184, 50, 165, 50, + 19, 148, 101, 133, 101, 133, 116, 117, 132, 117, 132, 117, + 132, 117, 132, 117, 132, 117, 132, 117, 132, 133, 116, 133, + 116, 148, 101, 164, 70, 198, 36, 240, 84, 240, 84, 240, + 84, 240, 84, 240, 84, 240, 84, 240, 42, 234, 0, 6, + 64, 31, 19, 0, 30, 119, 37, 87, 18, 20, 118, 36, + 117, 52, 117, 52, 116, 244, 244, 244, 244, 244, 244, 244, + 244, 244, 244, 203, 139, 0, 24, 96, 35, 17, 0, 28, + 9, 114, 83, 98, 114, 83, 114, 83, 114, 84, 216, 169, + 139, 137, 183, 212, 66, 131, 66, 131, 67, 115, 67, 114, + 85, 66, 98, 38, 0, 22, 16, 37, 17, 0, 11, 34, + 242, 242, 242, 242, 227, 227, 197, 172, 92, 132, 212, 212, + 212, 212, 212, 212, 212, 212, 212, 66, 116, 66, 116, 66, + 116, 66, 132, 34, 152, 181, 0, 22, 44, 25, 0, 40, + 87, 71, 119, 71, 164, 116, 164, 116, 164, 116, 164, 116, + 164, 116, 164, 116, 164, 116, 164, 116, 164, 116, 164, 116, + 164, 116, 164, 116, 164, 101, 164, 101, 180, 65, 23, 166, + 39, 0, 31, 96, 43, 23, 0, 37, 57, 55, 73, 55, + 116, 115, 149, 98, 165, 98, 180, 82, 197, 66, 197, 66, + 213, 34, 229, 34, 244, 18, 240, 23, 240, 23, 240, 37, + 240, 53, 240, 67, 240, 83, 240, 83, 0, 30, 32, 62, + 31, 0, 50, 56, 40, 39, 72, 40, 39, 101, 84, 99, + 148, 84, 98, 165, 68, 98, 165, 69, 66, 196, 69, 66, + 197, 38, 66, 197, 34, 20, 34, 228, 34, 20, 34, 231, + 36, 34, 231, 54, 240, 22, 54, 240, 21, 70, 240, 36, + 84, 240, 52, 84, 240, 51, 100, 240, 66, 114, 0, 40, + 32, 43, 23, 0, 37, 57, 40, 73, 40, 116, 98, 196, + 66, 213, 35, 228, 34, 240, 22, 240, 37, 240, 69, 240, + 68, 240, 54, 240, 24, 242, 36, 226, 53, 194, 85, 163, + 100, 119, 57, 71, 57, 0, 29, 32, 60, 23, 0, 37, + 57, 55, 73, 55, 101, 114, 164, 114, 165, 82, 196, 82, + 196, 82, 197, 50, 228, 50, 229, 33, 245, 18, 240, 20, + 18, 240, 22, 240, 38, 240, 53, 240, 52, 240, 83, 240, + 82, 240, 98, 240, 98, 226, 66, 228, 50, 228, 49, 244, + 34, 240, 18, 34, 240, 51, 0, 8, 38, 19, 0, 31, + 14, 84, 70, 82, 101, 98, 85, 114, 85, 114, 69, 129, + 69, 229, 213, 213, 66, 133, 66, 117, 82, 102, 82, 101, + 83, 85, 99, 85, 84, 78, 94, 0, 24, 48, 11, 24, + 0, 57, 15, 5, 79, 5, 0, 60, 64, 13, 44, 0, + 104, 79, 15, 10, 79, 15, 10, 0, 110, 64, 22, 16, + 240, 240, 67, 51, 101, 21, 85, 21, 85, 21, 84, 36, + 84, 36, 99, 51, 129, 81, 0, 63, 11, 17, 0, 6, + 84, 204, 91, 82, 69, 0, 73, +}; + +//***************************************************************************** +// +// The font definition for the 40 point Cm bold font. +// +//***************************************************************************** +const tFont g_sFontCm40b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 39, + + // + // The height of the font. + // + 41, + + // + // The baseline of the font. + // + 31, + + // + // The offset to each character in the font. + // + { + 0, 5, 39, 75, 183, 258, 362, 444, + 465, 509, 552, 594, 655, 675, 686, 699, + 784, 843, 877, 923, 974, 1029, 1079, 1136, + 1194, 1246, 1302, 1323, 1351, 1384, 1401, 1450, + 1495, 1594, 1668, 1730, 1797, 1860, 1933, 1993, + 2059, 2122, 2156, 2214, 2289, 2350, 2456, 2532, + 2595, 2655, 2741, 2813, 2869, 2941, 3004, 3076, + 3183, 3257, 3327, 3391, 3434, 3469, 3512, 3530, + 3543, 3564, 3606, 3670, 3703, 3765, 3805, 3846, + 3900, 3965, 3998, 4044, 4106, 4140, 4204, 4249, + 4289, 4346, 4405, 4436, 4471, 4508, 4552, 4595, + 4657, 4700, 4760, 4798, 4809, 4822, 4844, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm40bData +}; diff --git a/grlib/fonts/fontcm40i.c b/grlib/fonts/fontcm40i.c new file mode 100644 index 0000000..0ad821f --- /dev/null +++ b/grlib/fonts/fontcm40i.c @@ -0,0 +1,545 @@ +//***************************************************************************** +// +// fontcm40i.c - Font definition for the 40pt Cm italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 40 point +// Bold: no +// Italic: yes +// Memory usage: 5460 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 40 point Cm italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm40iData[5260] = +{ + 4, 17, 0, 85, 34, 14, 240, 240, 83, 164, 164, 163, + 179, 179, 164, 163, 179, 179, 178, 179, 179, 178, 194, 194, + 193, 194, 194, 193, 209, 0, 6, 83, 164, 164, 163, 0, + 18, 112, 29, 17, 0, 6, 99, 67, 100, 52, 100, 52, + 100, 52, 145, 97, 129, 97, 145, 97, 129, 97, 129, 97, + 145, 97, 114, 81, 0, 56, 48, 107, 31, 0, 13, 97, + 113, 240, 98, 98, 240, 98, 98, 240, 97, 113, 240, 98, + 98, 240, 97, 113, 240, 98, 98, 240, 97, 113, 240, 98, + 98, 240, 97, 113, 240, 98, 98, 240, 97, 113, 240, 98, + 98, 207, 10, 225, 113, 240, 98, 98, 240, 98, 98, 240, + 82, 98, 240, 98, 98, 240, 97, 113, 239, 10, 194, 98, + 240, 97, 113, 240, 98, 98, 240, 98, 98, 240, 97, 113, + 240, 98, 98, 240, 97, 113, 240, 98, 98, 240, 97, 113, + 240, 98, 98, 240, 97, 113, 240, 98, 98, 240, 98, 98, + 240, 97, 113, 0, 10, 48, 71, 28, 0, 12, 85, 240, + 99, 65, 240, 66, 113, 240, 34, 129, 240, 19, 129, 240, + 18, 115, 240, 18, 115, 243, 114, 240, 18, 240, 178, 240, + 163, 240, 163, 240, 162, 240, 122, 240, 99, 240, 163, 240, + 162, 240, 178, 240, 163, 240, 163, 240, 162, 240, 163, 240, + 87, 177, 129, 68, 146, 113, 82, 19, 98, 129, 50, 73, + 164, 117, 0, 36, 48, 103, 30, 116, 225, 162, 34, 194, + 146, 66, 162, 146, 84, 84, 162, 81, 38, 19, 146, 97, + 146, 162, 97, 130, 178, 97, 114, 179, 97, 98, 194, 97, + 98, 210, 97, 83, 210, 97, 82, 226, 81, 82, 242, 81, + 66, 240, 33, 65, 66, 240, 50, 33, 66, 240, 98, 67, + 240, 194, 85, 240, 34, 82, 65, 242, 82, 81, 226, 98, + 81, 210, 98, 97, 195, 98, 97, 194, 114, 97, 178, 114, + 98, 162, 130, 97, 162, 146, 97, 146, 162, 81, 147, 162, + 81, 146, 178, 65, 146, 210, 33, 161, 243, 0, 31, 48, + 90, 30, 0, 8, 85, 240, 146, 50, 131, 163, 81, 131, + 147, 97, 145, 162, 98, 145, 147, 98, 129, 162, 113, 130, + 147, 240, 17, 163, 241, 178, 226, 194, 36, 115, 197, 49, + 82, 18, 179, 81, 50, 65, 179, 81, 49, 97, 148, 65, + 49, 113, 146, 36, 65, 113, 130, 180, 65, 130, 180, 65, + 115, 240, 65, 114, 240, 65, 130, 240, 65, 130, 240, 50, + 130, 240, 49, 161, 240, 33, 178, 241, 210, 209, 240, 19, + 115, 240, 72, 0, 39, 64, 18, 10, 240, 240, 51, 100, + 100, 100, 145, 129, 145, 129, 129, 145, 114, 0, 33, 64, + 72, 18, 209, 240, 17, 240, 17, 240, 17, 240, 17, 240, + 18, 242, 240, 17, 240, 18, 242, 240, 18, 242, 240, 18, + 242, 240, 18, 240, 18, 242, 240, 18, 240, 18, 243, 242, + 240, 18, 240, 18, 243, 243, 242, 240, 18, 240, 18, 240, + 18, 240, 18, 240, 18, 240, 18, 240, 18, 240, 33, 240, + 34, 240, 18, 240, 33, 240, 34, 240, 33, 240, 49, 208, + 73, 18, 161, 240, 33, 240, 49, 240, 34, 240, 18, 240, + 33, 240, 33, 240, 34, 240, 18, 240, 18, 240, 18, 240, + 18, 240, 18, 240, 18, 240, 18, 240, 18, 243, 242, 240, + 18, 240, 18, 240, 18, 243, 242, 240, 18, 243, 242, 240, + 18, 242, 240, 18, 242, 240, 18, 242, 240, 18, 242, 240, + 17, 240, 17, 240, 17, 240, 17, 240, 17, 240, 17, 240, + 32, 42, 19, 145, 240, 34, 240, 34, 240, 33, 194, 65, + 66, 99, 49, 35, 146, 17, 34, 197, 240, 17, 240, 21, + 194, 17, 34, 146, 49, 51, 98, 65, 66, 193, 240, 34, + 240, 34, 240, 33, 0, 56, 32, 53, 27, 0, 28, 97, + 240, 162, 240, 162, 240, 161, 240, 177, 240, 162, 240, 162, + 240, 161, 240, 177, 240, 162, 240, 162, 240, 162, 239, 8, + 226, 240, 162, 240, 161, 240, 177, 240, 162, 240, 162, 240, + 161, 240, 177, 240, 177, 240, 162, 240, 161, 0, 29, 32, + 18, 10, 0, 32, 115, 100, 100, 100, 145, 129, 145, 129, + 145, 129, 129, 129, 240, 224, 8, 14, 0, 35, 10, 74, + 0, 32, 11, 8, 0, 26, 19, 68, 68, 67, 0, 10, + 80, 84, 27, 240, 113, 240, 162, 240, 146, 240, 162, 240, + 146, 240, 161, 240, 162, 240, 161, 240, 162, 240, 161, 240, + 162, 240, 146, 240, 162, 240, 146, 240, 161, 240, 162, 240, + 161, 240, 162, 240, 161, 240, 162, 240, 146, 240, 161, 240, + 162, 240, 161, 240, 162, 240, 161, 240, 162, 240, 146, 240, + 162, 240, 146, 240, 161, 240, 162, 240, 161, 240, 162, 240, + 161, 240, 162, 240, 146, 240, 162, 240, 146, 240, 161, 240, + 176, 57, 20, 0, 11, 21, 210, 66, 178, 97, 162, 114, + 130, 130, 130, 130, 115, 130, 114, 146, 99, 131, 99, 131, + 98, 147, 83, 146, 99, 146, 98, 147, 98, 147, 98, 146, + 99, 131, 99, 131, 98, 146, 114, 131, 114, 130, 130, 130, + 130, 114, 162, 82, 178, 66, 228, 0, 26, 80, 33, 17, + 0, 10, 1, 242, 226, 227, 197, 147, 35, 226, 227, 227, + 227, 226, 227, 227, 227, 226, 242, 227, 227, 226, 242, 227, + 227, 226, 242, 227, 171, 0, 22, 65, 22, 0, 12, 37, + 242, 66, 209, 114, 177, 145, 162, 146, 145, 49, 98, 129, + 65, 98, 129, 65, 98, 113, 81, 98, 113, 65, 99, 113, + 65, 98, 129, 34, 98, 163, 99, 240, 50, 240, 66, 240, + 51, 240, 35, 240, 50, 240, 66, 240, 50, 177, 129, 178, + 113, 193, 114, 163, 126, 114, 57, 129, 117, 0, 28, 80, + 60, 22, 0, 12, 37, 242, 66, 194, 129, 177, 146, 145, + 162, 130, 33, 114, 129, 49, 114, 129, 49, 114, 129, 33, + 114, 162, 114, 240, 81, 240, 66, 245, 240, 98, 240, 97, + 240, 98, 240, 82, 240, 82, 240, 82, 146, 131, 131, 130, + 146, 146, 145, 146, 161, 130, 194, 67, 230, 0, 29, 32, + 75, 20, 0, 11, 98, 240, 50, 240, 35, 240, 35, 240, + 34, 240, 50, 240, 35, 240, 34, 240, 50, 240, 34, 240, + 50, 240, 34, 240, 50, 240, 34, 240, 50, 240, 34, 240, + 34, 50, 209, 66, 194, 51, 178, 66, 178, 82, 177, 98, + 146, 99, 135, 34, 130, 85, 49, 65, 135, 211, 240, 34, + 240, 50, 240, 50, 240, 35, 240, 35, 240, 34, 240, 50, + 0, 6, 32, 57, 22, 0, 11, 114, 114, 186, 185, 209, + 21, 241, 240, 82, 240, 81, 240, 97, 240, 97, 240, 81, + 52, 225, 18, 66, 194, 113, 178, 130, 240, 82, 240, 82, + 240, 82, 240, 82, 240, 67, 130, 146, 131, 146, 130, 147, + 129, 162, 145, 146, 177, 114, 194, 67, 229, 0, 29, 48, + 59, 20, 0, 11, 52, 226, 65, 178, 82, 162, 98, 146, + 114, 146, 240, 34, 240, 35, 240, 34, 240, 35, 37, 162, + 33, 66, 131, 17, 98, 116, 114, 115, 130, 115, 130, 99, + 146, 99, 146, 99, 131, 98, 147, 98, 146, 114, 131, 114, + 130, 130, 114, 161, 99, 162, 66, 228, 0, 26, 80, 63, + 22, 0, 11, 65, 36, 97, 114, 21, 81, 129, 22, 66, + 116, 65, 50, 131, 101, 115, 146, 130, 161, 145, 162, 129, + 177, 240, 82, 240, 66, 240, 82, 240, 67, 240, 66, 240, + 67, 240, 66, 240, 67, 240, 67, 240, 66, 240, 67, 240, + 67, 240, 66, 240, 67, 240, 67, 240, 67, 240, 66, 0, + 29, 48, 56, 22, 0, 12, 37, 242, 67, 178, 115, 161, + 146, 145, 162, 130, 162, 130, 162, 130, 146, 147, 114, 165, + 66, 197, 34, 230, 240, 37, 242, 21, 209, 84, 177, 116, + 146, 131, 130, 162, 130, 162, 114, 178, 114, 177, 130, 162, + 130, 146, 162, 114, 179, 66, 245, 0, 29, 32, 59, 21, + 0, 11, 85, 227, 66, 178, 113, 162, 130, 130, 146, 130, + 146, 115, 146, 114, 162, 99, 147, 99, 147, 98, 163, 98, + 147, 114, 147, 114, 132, 129, 113, 19, 145, 66, 34, 180, + 51, 240, 50, 240, 51, 240, 50, 240, 50, 146, 115, 146, + 114, 161, 113, 194, 66, 229, 0, 28, 16, 17, 11, 0, + 18, 51, 116, 116, 130, 0, 13, 18, 132, 116, 115, 0, + 14, 96, 25, 13, 0, 21, 115, 148, 148, 147, 0, 15, + 82, 164, 148, 147, 193, 193, 177, 193, 177, 193, 177, 177, + 240, 240, 128, 34, 14, 0, 18, 51, 164, 164, 163, 0, + 6, 81, 209, 194, 194, 193, 194, 194, 194, 194, 179, 178, + 194, 179, 179, 179, 164, 163, 179, 164, 164, 164, 163, 240, + 160, 13, 29, 0, 58, 47, 8, 0, 22, 47, 8, 0, + 58, 96, 49, 18, 0, 23, 99, 243, 243, 242, 0, 8, + 67, 226, 33, 209, 49, 193, 65, 240, 18, 242, 243, 226, + 227, 227, 227, 98, 98, 115, 82, 131, 81, 161, 82, 161, + 81, 162, 81, 161, 97, 145, 113, 145, 129, 113, 146, 66, + 196, 240, 224, 48, 18, 240, 240, 213, 178, 81, 146, 113, + 114, 129, 98, 145, 97, 161, 81, 177, 81, 161, 83, 130, + 83, 114, 98, 114, 227, 227, 227, 226, 242, 242, 240, 17, + 81, 177, 65, 193, 50, 211, 0, 8, 66, 244, 228, 227, + 0, 24, 32, 95, 28, 0, 12, 6, 240, 82, 98, 240, + 18, 161, 225, 209, 193, 241, 161, 100, 97, 145, 82, 50, + 97, 113, 82, 81, 97, 113, 66, 114, 65, 97, 66, 131, + 49, 97, 51, 130, 65, 81, 66, 146, 65, 81, 66, 131, + 65, 81, 50, 147, 50, 65, 66, 146, 65, 81, 66, 146, + 65, 81, 66, 131, 65, 81, 66, 130, 65, 97, 66, 115, + 65, 97, 82, 84, 49, 113, 98, 50, 18, 34, 129, 100, + 67, 161, 240, 209, 240, 209, 211, 194, 131, 240, 40, 0, + 36, 96, 75, 29, 0, 9, 66, 240, 194, 240, 179, 240, + 179, 240, 164, 240, 164, 240, 145, 19, 240, 130, 19, 240, + 129, 35, 240, 113, 51, 240, 113, 67, 240, 81, 83, 240, + 81, 83, 240, 65, 99, 240, 50, 99, 240, 49, 115, 240, + 34, 115, 240, 33, 131, 240, 29, 240, 17, 147, 241, 163, + 226, 163, 225, 179, 210, 179, 209, 210, 194, 211, 163, 196, + 120, 122, 0, 36, 96, 63, 29, 0, 11, 95, 1, 240, + 19, 147, 227, 163, 211, 163, 211, 163, 210, 179, 195, 179, + 195, 179, 195, 163, 210, 163, 211, 147, 227, 115, 240, 27, + 240, 50, 147, 227, 163, 211, 178, 211, 179, 194, 195, 179, + 195, 179, 195, 179, 195, 178, 195, 179, 195, 179, 179, 195, + 163, 210, 147, 191, 1, 0, 37, 112, 69, 29, 0, 12, + 69, 97, 227, 82, 50, 195, 145, 18, 194, 180, 178, 211, + 162, 227, 146, 242, 147, 242, 146, 240, 18, 131, 240, 18, + 130, 240, 179, 240, 179, 240, 179, 240, 163, 240, 179, 240, + 179, 240, 179, 240, 17, 147, 240, 17, 147, 240, 17, 147, + 241, 178, 226, 179, 209, 210, 193, 242, 146, 240, 35, 82, + 240, 102, 0, 38, 48, 61, 30, 0, 12, 15, 240, 51, + 131, 240, 19, 162, 243, 178, 227, 178, 211, 209, 211, 210, + 195, 210, 195, 210, 179, 226, 179, 226, 179, 226, 179, 211, + 163, 227, 163, 226, 179, 226, 179, 211, 163, 226, 179, 226, + 179, 210, 195, 209, 210, 210, 195, 194, 211, 178, 227, 162, + 227, 146, 223, 0, 39, 48, 70, 30, 0, 12, 15, 5, + 211, 163, 227, 178, 227, 193, 211, 209, 211, 209, 211, 209, + 211, 209, 195, 114, 81, 195, 113, 240, 67, 113, 240, 67, + 98, 240, 52, 83, 240, 59, 240, 67, 98, 240, 67, 98, + 240, 67, 98, 240, 51, 113, 97, 195, 225, 195, 225, 195, + 209, 195, 225, 195, 209, 211, 194, 211, 179, 195, 164, 175, + 5, 0, 38, 96, 70, 29, 0, 11, 95, 4, 211, 148, + 211, 178, 211, 178, 195, 194, 195, 193, 211, 193, 211, 193, + 195, 113, 81, 195, 113, 240, 51, 113, 240, 51, 98, 240, + 35, 98, 240, 59, 240, 51, 98, 240, 51, 98, 240, 50, + 113, 240, 51, 113, 240, 51, 113, 240, 51, 240, 178, 240, + 179, 240, 179, 240, 179, 240, 179, 240, 164, 240, 122, 0, + 38, 80, 69, 29, 0, 12, 70, 81, 227, 98, 34, 195, + 145, 34, 179, 180, 163, 195, 163, 226, 147, 242, 131, 240, + 17, 147, 240, 17, 131, 240, 33, 131, 240, 163, 240, 179, + 240, 164, 240, 163, 240, 179, 240, 179, 185, 99, 243, 131, + 243, 131, 227, 147, 227, 163, 211, 163, 196, 179, 179, 211, + 145, 18, 227, 98, 34, 240, 23, 81, 0, 37, 64, 85, + 34, 0, 13, 74, 74, 212, 163, 240, 35, 179, 240, 35, + 179, 240, 35, 179, 240, 35, 163, 240, 35, 179, 240, 35, + 179, 240, 35, 179, 240, 35, 163, 240, 35, 179, 240, 35, + 179, 240, 47, 2, 240, 34, 179, 240, 35, 179, 240, 35, + 179, 240, 35, 179, 240, 35, 163, 240, 35, 179, 240, 35, + 179, 240, 35, 179, 240, 35, 163, 240, 35, 179, 240, 35, + 179, 240, 35, 179, 240, 35, 164, 218, 74, 0, 43, 96, + 58, 21, 0, 8, 106, 227, 240, 51, 240, 50, 240, 51, + 240, 51, 240, 51, 240, 50, 240, 51, 240, 51, 240, 51, + 240, 50, 240, 51, 240, 51, 240, 51, 240, 50, 240, 51, + 240, 51, 240, 51, 240, 50, 240, 51, 240, 51, 240, 51, + 240, 35, 240, 51, 240, 51, 234, 0, 27, 80, 60, 24, + 0, 10, 42, 240, 52, 240, 83, 240, 99, 240, 99, 240, + 98, 240, 99, 240, 99, 240, 99, 240, 98, 240, 99, 240, + 99, 240, 99, 240, 83, 240, 99, 240, 99, 240, 99, 240, + 83, 240, 99, 240, 99, 240, 99, 195, 83, 196, 83, 195, + 83, 209, 114, 241, 67, 240, 37, 0, 32, 16, 86, 34, + 0, 13, 74, 119, 211, 196, 243, 194, 240, 35, 177, 240, + 51, 177, 240, 67, 161, 240, 83, 130, 240, 99, 114, 240, + 99, 114, 240, 115, 97, 240, 147, 81, 240, 163, 67, 240, + 131, 53, 240, 131, 34, 19, 240, 131, 18, 51, 240, 116, + 83, 240, 115, 99, 240, 99, 131, 240, 83, 131, 240, 83, + 131, 240, 82, 163, 240, 51, 163, 240, 51, 164, 240, 35, + 179, 240, 35, 179, 240, 19, 196, 201, 120, 0, 43, 96, + 61, 25, 0, 10, 27, 240, 35, 240, 115, 240, 115, 240, + 99, 240, 115, 240, 115, 240, 115, 240, 99, 240, 115, 240, + 115, 240, 115, 240, 99, 240, 115, 240, 115, 240, 115, 240, + 114, 240, 115, 193, 147, 178, 147, 177, 162, 193, 147, 177, + 163, 177, 163, 162, 162, 162, 163, 132, 127, 3, 0, 32, + 16, 131, 39, 0, 15, 55, 240, 22, 209, 18, 244, 240, + 17, 18, 225, 18, 240, 33, 18, 209, 19, 240, 33, 18, + 209, 19, 240, 17, 34, 193, 35, 240, 17, 35, 177, 34, + 240, 33, 35, 161, 35, 240, 33, 35, 161, 35, 240, 18, + 35, 145, 51, 240, 17, 51, 129, 66, 240, 33, 51, 129, + 51, 240, 33, 66, 113, 67, 240, 18, 66, 113, 67, 240, + 17, 82, 97, 82, 240, 33, 82, 97, 67, 240, 33, 82, + 81, 83, 240, 18, 83, 49, 99, 240, 17, 99, 49, 98, + 240, 33, 99, 33, 99, 240, 33, 99, 33, 99, 240, 33, + 99, 17, 115, 240, 17, 116, 130, 240, 33, 131, 130, 240, + 33, 130, 131, 240, 19, 114, 131, 216, 81, 90, 0, 50, + 103, 34, 0, 13, 71, 137, 212, 179, 240, 20, 178, 240, + 33, 19, 161, 240, 34, 19, 161, 240, 33, 35, 161, 240, + 33, 51, 130, 240, 33, 51, 129, 240, 34, 51, 129, 240, + 33, 83, 113, 240, 33, 83, 98, 240, 33, 83, 97, 240, + 49, 99, 81, 240, 33, 115, 81, 240, 33, 115, 66, 240, + 33, 131, 49, 240, 49, 131, 49, 240, 33, 147, 49, 240, + 33, 163, 33, 240, 33, 163, 17, 240, 49, 163, 17, 240, + 34, 180, 240, 33, 196, 240, 33, 195, 240, 34, 210, 240, + 34, 210, 232, 162, 0, 44, 32, 71, 27, 0, 11, 86, + 240, 67, 67, 243, 130, 210, 178, 178, 194, 162, 225, 147, + 226, 115, 242, 115, 242, 99, 240, 18, 99, 240, 18, 83, + 240, 34, 83, 240, 34, 83, 240, 19, 68, 240, 18, 83, + 240, 34, 83, 240, 19, 83, 240, 18, 99, 243, 99, 242, + 115, 226, 146, 210, 163, 179, 178, 163, 210, 130, 240, 19, + 67, 240, 54, 0, 35, 96, 60, 29, 0, 11, 95, 240, + 35, 131, 243, 147, 227, 163, 210, 179, 195, 179, 195, 179, + 195, 179, 194, 179, 195, 179, 195, 163, 211, 147, 226, 131, + 252, 240, 35, 240, 179, 240, 179, 240, 163, 240, 179, 240, + 179, 240, 179, 240, 163, 240, 179, 240, 179, 240, 179, 240, + 164, 240, 122, 0, 38, 80, 105, 27, 0, 11, 102, 240, + 51, 82, 240, 18, 130, 210, 178, 178, 194, 162, 225, 146, + 242, 130, 242, 114, 240, 18, 99, 240, 18, 98, 240, 34, + 83, 240, 34, 82, 240, 50, 82, 240, 35, 67, 240, 34, + 82, 240, 50, 82, 240, 50, 82, 240, 34, 98, 240, 34, + 98, 240, 18, 114, 240, 18, 129, 101, 66, 146, 65, 66, + 49, 177, 49, 97, 33, 194, 33, 97, 17, 241, 17, 83, + 240, 39, 17, 240, 162, 81, 240, 66, 81, 240, 66, 81, + 240, 66, 65, 240, 83, 34, 240, 86, 240, 102, 240, 115, + 0, 8, 16, 66, 28, 0, 11, 46, 240, 35, 115, 243, + 131, 227, 147, 195, 163, 195, 163, 195, 163, 195, 163, 179, + 163, 195, 163, 195, 147, 211, 131, 211, 115, 251, 240, 35, + 99, 240, 19, 114, 240, 18, 146, 227, 146, 227, 146, 227, + 146, 226, 147, 211, 147, 211, 147, 211, 147, 65, 130, 163, + 50, 115, 163, 49, 89, 133, 0, 35, 96, 61, 25, 0, + 10, 101, 65, 210, 66, 34, 194, 115, 194, 131, 178, 162, + 177, 177, 178, 177, 178, 177, 178, 177, 179, 240, 116, 240, + 117, 240, 88, 240, 72, 240, 85, 240, 131, 240, 115, 240, + 130, 161, 194, 161, 194, 161, 193, 162, 178, 162, 177, 179, + 146, 179, 130, 178, 34, 82, 193, 70, 0, 33, 68, 28, + 0, 10, 111, 7, 99, 100, 99, 98, 115, 130, 82, 131, + 130, 81, 147, 129, 97, 146, 145, 82, 131, 145, 81, 147, + 145, 81, 147, 145, 242, 240, 163, 240, 163, 240, 163, 240, + 163, 240, 147, 240, 163, 240, 163, 240, 163, 240, 147, 240, + 163, 240, 163, 240, 163, 240, 147, 240, 163, 240, 163, 240, + 148, 240, 92, 0, 36, 112, 63, 28, 0, 10, 89, 104, + 116, 179, 163, 209, 179, 209, 179, 194, 179, 193, 194, 209, + 179, 209, 179, 194, 179, 193, 194, 209, 194, 209, 179, 193, + 195, 193, 194, 209, 194, 209, 179, 194, 179, 193, 194, 209, + 194, 209, 194, 193, 210, 178, 210, 177, 241, 161, 240, 18, + 129, 240, 50, 82, 240, 101, 0, 37, 48, 72, 29, 0, + 10, 121, 151, 115, 227, 147, 226, 163, 225, 179, 209, 195, + 194, 195, 193, 212, 161, 243, 161, 243, 145, 240, 19, 130, + 240, 19, 129, 240, 35, 113, 240, 51, 113, 240, 51, 97, + 240, 67, 82, 240, 67, 81, 240, 84, 49, 240, 115, 49, + 240, 115, 33, 240, 131, 18, 240, 131, 17, 240, 148, 240, + 164, 240, 163, 240, 178, 240, 194, 0, 39, 110, 39, 0, + 14, 89, 73, 103, 115, 163, 179, 147, 163, 178, 163, 163, + 177, 179, 163, 162, 179, 163, 161, 195, 148, 145, 211, 133, + 145, 211, 129, 19, 129, 227, 113, 35, 129, 227, 113, 35, + 113, 243, 97, 51, 98, 243, 97, 51, 97, 240, 19, 81, + 67, 82, 240, 19, 81, 67, 81, 240, 35, 65, 98, 65, + 240, 51, 50, 99, 49, 240, 51, 49, 115, 33, 240, 67, + 33, 131, 33, 240, 67, 33, 131, 17, 240, 83, 17, 147, + 17, 240, 83, 17, 148, 240, 115, 164, 240, 115, 163, 240, + 130, 179, 240, 130, 178, 240, 145, 193, 0, 51, 48, 83, + 34, 0, 13, 89, 104, 228, 148, 240, 36, 146, 240, 83, + 145, 240, 99, 129, 240, 116, 97, 240, 147, 81, 240, 163, + 66, 240, 164, 34, 240, 195, 33, 240, 211, 17, 240, 228, + 240, 240, 19, 240, 240, 19, 240, 245, 240, 225, 19, 240, + 209, 36, 240, 177, 67, 240, 161, 83, 240, 145, 100, 240, + 114, 115, 240, 98, 131, 240, 97, 148, 240, 65, 179, 240, + 49, 195, 240, 19, 196, 200, 137, 0, 43, 80, 68, 30, + 0, 11, 41, 167, 115, 227, 163, 226, 195, 194, 211, 178, + 227, 177, 244, 145, 240, 35, 129, 240, 51, 114, 240, 52, + 82, 240, 83, 81, 240, 99, 65, 240, 116, 33, 240, 147, + 18, 240, 149, 240, 164, 240, 179, 240, 195, 240, 195, 240, + 195, 240, 179, 240, 195, 240, 195, 240, 195, 240, 179, 240, + 195, 240, 153, 0, 39, 112, 62, 28, 0, 11, 63, 2, + 181, 131, 195, 148, 194, 163, 194, 163, 209, 163, 225, 147, + 225, 148, 225, 147, 240, 147, 240, 147, 240, 147, 240, 148, + 240, 132, 240, 147, 240, 147, 240, 147, 240, 147, 145, 228, + 145, 227, 145, 227, 161, 211, 177, 195, 178, 180, 162, 180, + 163, 179, 149, 175, 2, 0, 36, 48, 80, 18, 240, 197, + 209, 240, 33, 240, 33, 240, 18, 240, 17, 240, 33, 240, + 33, 240, 18, 240, 17, 240, 33, 240, 33, 240, 18, 240, + 17, 240, 33, 240, 33, 240, 18, 240, 18, 240, 17, 240, + 33, 240, 18, 240, 18, 240, 17, 240, 33, 240, 18, 240, + 18, 240, 17, 240, 33, 240, 18, 240, 18, 240, 17, 240, + 33, 240, 18, 240, 18, 240, 17, 240, 33, 240, 18, 240, + 18, 240, 21, 208, 29, 17, 0, 7, 1, 97, 129, 81, + 145, 81, 145, 97, 129, 97, 145, 97, 129, 97, 148, 52, + 100, 52, 100, 52, 114, 82, 0, 56, 16, 80, 19, 240, + 229, 240, 34, 240, 33, 240, 49, 240, 34, 240, 34, 240, + 33, 240, 49, 240, 34, 240, 34, 240, 33, 240, 49, 240, + 34, 240, 34, 240, 33, 240, 49, 240, 34, 240, 34, 240, + 33, 240, 49, 240, 34, 240, 34, 240, 33, 240, 49, 240, + 34, 240, 34, 240, 33, 240, 49, 240, 34, 240, 34, 240, + 33, 240, 49, 240, 34, 240, 34, 240, 33, 240, 49, 240, + 34, 240, 34, 213, 224, 17, 14, 0, 6, 1, 180, 146, + 18, 130, 50, 98, 82, 65, 129, 0, 54, 96, 11, 8, + 240, 240, 51, 68, 68, 67, 0, 32, 80, 18, 10, 240, + 240, 81, 113, 129, 145, 129, 145, 129, 148, 100, 100, 114, + 0, 33, 48, 48, 20, 0, 33, 36, 242, 49, 18, 162, + 68, 146, 99, 130, 114, 131, 114, 130, 115, 130, 114, 131, + 114, 131, 114, 130, 115, 130, 114, 65, 66, 114, 49, 82, + 99, 49, 97, 81, 18, 49, 98, 49, 34, 33, 132, 67, + 0, 25, 112, 51, 16, 0, 6, 37, 211, 210, 226, 226, + 211, 210, 226, 226, 211, 211, 20, 130, 17, 50, 115, 81, + 114, 98, 83, 98, 82, 114, 82, 114, 82, 114, 67, 99, + 66, 114, 82, 114, 82, 99, 82, 98, 98, 82, 129, 82, + 130, 50, 164, 0, 21, 32, 32, 17, 0, 28, 69, 163, + 65, 130, 82, 114, 98, 98, 114, 98, 226, 242, 227, 226, + 242, 242, 242, 161, 66, 145, 98, 113, 130, 66, 165, 0, + 22, 48, 68, 21, 0, 9, 38, 240, 50, 240, 66, 240, + 66, 240, 51, 240, 50, 240, 66, 240, 66, 240, 51, 240, + 50, 212, 34, 194, 49, 18, 178, 68, 162, 98, 162, 114, + 147, 114, 146, 115, 146, 114, 147, 114, 147, 114, 146, 115, + 146, 114, 65, 82, 114, 49, 98, 99, 49, 113, 81, 18, + 49, 114, 49, 34, 33, 148, 67, 0, 27, 32, 34, 16, + 0, 26, 101, 147, 50, 114, 97, 98, 113, 98, 113, 82, + 113, 98, 82, 104, 131, 210, 226, 226, 226, 145, 66, 129, + 98, 98, 113, 66, 164, 0, 21, 16, 77, 22, 0, 10, + 3, 240, 35, 33, 240, 18, 34, 243, 34, 242, 240, 67, + 240, 67, 240, 67, 240, 66, 240, 67, 251, 243, 240, 66, + 240, 82, 240, 67, 240, 67, 240, 67, 240, 66, 240, 67, + 240, 67, 240, 67, 240, 66, 240, 82, 240, 67, 240, 67, + 240, 67, 240, 66, 240, 67, 240, 67, 240, 66, 240, 82, + 242, 34, 240, 18, 34, 240, 17, 34, 240, 51, 0, 7, + 96, 57, 20, 0, 33, 68, 242, 49, 18, 161, 84, 146, + 99, 130, 114, 131, 114, 130, 115, 130, 115, 115, 114, 131, + 114, 130, 115, 130, 115, 130, 114, 146, 99, 161, 84, 162, + 49, 19, 180, 34, 240, 35, 240, 35, 240, 35, 240, 34, + 146, 99, 147, 67, 162, 67, 198, 0, 6, 80, 67, 22, + 0, 8, 86, 240, 67, 240, 66, 240, 82, 240, 67, 240, + 67, 240, 66, 240, 82, 240, 67, 240, 67, 240, 67, 36, + 210, 18, 50, 181, 82, 164, 98, 163, 114, 162, 130, 147, + 115, 147, 114, 162, 130, 162, 115, 147, 114, 163, 114, 50, + 82, 115, 49, 98, 114, 65, 83, 114, 49, 99, 114, 34, + 98, 148, 0, 28, 48, 39, 14, 0, 7, 114, 195, 178, + 0, 11, 83, 146, 34, 129, 50, 113, 66, 113, 51, 98, + 50, 194, 179, 178, 179, 178, 194, 65, 99, 49, 114, 65, + 114, 49, 130, 34, 148, 0, 18, 48, 51, 18, 0, 10, + 66, 240, 18, 240, 18, 0, 15, 4, 209, 50, 177, 66, + 161, 82, 146, 82, 145, 83, 243, 242, 240, 18, 243, 243, + 242, 240, 18, 243, 242, 240, 18, 243, 243, 242, 240, 18, + 243, 146, 66, 162, 50, 177, 50, 212, 0, 6, 16, 67, + 19, 0, 7, 69, 240, 34, 240, 34, 240, 19, 240, 18, + 240, 34, 240, 34, 240, 19, 240, 18, 240, 34, 240, 34, + 98, 131, 66, 33, 115, 49, 50, 114, 49, 66, 114, 33, + 211, 33, 212, 245, 226, 50, 179, 66, 162, 82, 162, 82, + 49, 98, 82, 49, 83, 82, 49, 83, 82, 33, 98, 98, + 33, 98, 115, 0, 24, 80, 38, 12, 240, 240, 134, 147, + 146, 162, 147, 147, 146, 162, 162, 147, 146, 162, 162, 147, + 146, 162, 162, 147, 146, 162, 162, 147, 49, 82, 50, 82, + 49, 98, 49, 113, 33, 131, 0, 16, 71, 33, 0, 53, + 115, 85, 84, 162, 18, 34, 66, 34, 50, 145, 52, 82, + 18, 82, 114, 51, 100, 98, 113, 51, 115, 114, 113, 51, + 114, 130, 178, 130, 115, 178, 115, 114, 179, 114, 130, 178, + 130, 115, 178, 130, 114, 179, 115, 114, 50, 99, 114, 115, + 49, 114, 130, 114, 65, 114, 115, 114, 49, 115, 115, 114, + 34, 114, 130, 148, 0, 42, 16, 52, 23, 0, 37, 83, + 84, 161, 34, 34, 50, 145, 37, 82, 113, 52, 98, 113, + 51, 114, 113, 50, 130, 178, 115, 163, 114, 178, 130, 178, + 115, 178, 114, 179, 114, 50, 98, 115, 49, 114, 114, 65, + 99, 114, 49, 115, 114, 34, 114, 148, 0, 29, 80, 39, + 19, 0, 31, 101, 195, 50, 162, 98, 130, 130, 98, 146, + 98, 146, 82, 162, 82, 162, 67, 147, 66, 162, 82, 162, + 82, 146, 98, 146, 98, 130, 130, 98, 162, 51, 197, 0, + 25, 16, 64, 23, 0, 38, 19, 68, 177, 34, 33, 50, + 145, 50, 17, 81, 145, 51, 98, 129, 50, 114, 113, 66, + 114, 179, 114, 178, 130, 178, 115, 178, 114, 179, 114, 178, + 115, 178, 114, 194, 98, 196, 81, 210, 17, 50, 226, 36, + 242, 240, 83, 240, 82, 240, 98, 240, 98, 240, 83, 240, + 83, 240, 40, 0, 7, 80, 54, 18, 0, 30, 4, 49, + 146, 49, 18, 130, 68, 114, 99, 98, 114, 99, 114, 98, + 115, 98, 115, 83, 114, 99, 114, 98, 115, 98, 115, 98, + 114, 114, 99, 129, 84, 130, 49, 19, 148, 34, 240, 18, + 243, 243, 242, 240, 18, 240, 18, 243, 201, 240, 240, 192, + 46, 19, 0, 31, 35, 68, 113, 34, 33, 65, 82, 34, + 17, 66, 81, 51, 82, 81, 51, 178, 50, 240, 19, 240, + 19, 240, 18, 240, 34, 240, 19, 240, 19, 240, 18, 240, + 34, 240, 19, 240, 19, 240, 18, 0, 25, 80, 33, 17, + 0, 28, 53, 162, 82, 114, 113, 113, 99, 98, 99, 99, + 229, 215, 183, 228, 242, 82, 130, 82, 130, 82, 129, 97, + 129, 129, 82, 165, 0, 22, 64, 37, 15, 0, 10, 18, + 210, 195, 195, 194, 210, 210, 195, 139, 130, 210, 195, 194, + 210, 210, 195, 194, 210, 210, 195, 81, 98, 81, 114, 81, + 114, 65, 130, 49, 164, 0, 19, 112, 52, 22, 0, 36, + 20, 130, 114, 34, 99, 113, 50, 99, 97, 66, 98, 113, + 51, 98, 97, 66, 99, 178, 98, 179, 98, 178, 99, 178, + 99, 162, 114, 178, 114, 49, 114, 99, 49, 114, 99, 49, + 114, 99, 33, 146, 50, 18, 33, 164, 67, 0, 28, 32, + 45, 20, 0, 32, 116, 114, 98, 34, 83, 97, 50, 83, + 81, 66, 98, 81, 51, 98, 65, 66, 114, 146, 113, 146, + 129, 146, 129, 146, 113, 146, 129, 146, 129, 146, 113, 162, + 113, 162, 97, 194, 65, 229, 0, 26, 32, 63, 28, 0, + 45, 116, 114, 98, 97, 50, 83, 83, 97, 50, 83, 83, + 81, 66, 83, 98, 81, 51, 82, 114, 65, 66, 83, 114, + 146, 83, 113, 146, 98, 129, 146, 98, 129, 146, 83, 113, + 146, 98, 129, 146, 98, 129, 146, 98, 113, 162, 98, 113, + 162, 83, 97, 194, 50, 18, 65, 229, 53, 0, 36, 32, + 50, 21, 0, 34, 100, 67, 130, 50, 18, 49, 98, 68, + 50, 97, 83, 66, 81, 99, 177, 99, 240, 50, 240, 51, + 240, 51, 240, 51, 240, 50, 240, 51, 97, 179, 97, 82, + 67, 81, 98, 52, 66, 97, 50, 18, 50, 131, 68, 0, + 27, 48, 60, 21, 0, 34, 68, 130, 98, 34, 99, 97, + 50, 99, 81, 66, 98, 97, 51, 83, 81, 66, 99, 162, + 99, 147, 98, 162, 99, 162, 99, 146, 115, 146, 114, 162, + 99, 162, 99, 162, 83, 194, 52, 212, 19, 240, 51, 240, + 50, 178, 83, 163, 82, 178, 83, 177, 83, 194, 51, 229, + 0, 7, 42, 20, 0, 33, 36, 81, 150, 49, 146, 69, + 145, 114, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 129, 145, 130, 133, + 66, 130, 54, 130, 84, 0, 26, 16, 9, 22, 0, 52, + 47, 3, 0, 55, 64, 9, 39, 0, 92, 95, 15, 5, + 0, 98, 21, 16, 0, 6, 66, 66, 115, 51, 114, 66, + 114, 66, 114, 66, 129, 81, 129, 81, 0, 61, 16, 17, + 16, 0, 8, 51, 81, 97, 33, 65, 97, 65, 33, 97, + 83, 0, 64, 112, +}; + +//***************************************************************************** +// +// The font definition for the 40 point Cm italic font. +// +//***************************************************************************** +const tFont g_sFontCm40i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 34, + + // + // The height of the font. + // + 40, + + // + // The baseline of the font. + // + 30, + + // + // The offset to each character in the font. + // + { + 0, 4, 38, 67, 174, 245, 348, 438, + 456, 528, 601, 643, 696, 714, 722, 733, + 817, 874, 907, 972, 1032, 1107, 1164, 1223, + 1286, 1342, 1401, 1418, 1443, 1477, 1490, 1539, + 1587, 1682, 1757, 1820, 1889, 1950, 2020, 2090, + 2159, 2244, 2302, 2362, 2448, 2509, 2640, 2743, + 2814, 2874, 2979, 3045, 3106, 3174, 3237, 3309, + 3419, 3502, 3570, 3632, 3712, 3741, 3821, 3838, + 3849, 3867, 3915, 3966, 3998, 4066, 4100, 4177, + 4234, 4301, 4340, 4391, 4458, 4496, 4567, 4619, + 4658, 4722, 4776, 4822, 4855, 4892, 4944, 4989, + 5052, 5102, 5162, 5204, 5213, 5222, 5243, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm40iData +}; diff --git a/grlib/fonts/fontcm42.c b/grlib/fonts/fontcm42.c new file mode 100644 index 0000000..661c97e --- /dev/null +++ b/grlib/fonts/fontcm42.c @@ -0,0 +1,541 @@ +//***************************************************************************** +// +// fontcm42.c - Font definition for the 42pt Cm font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 42 point +// Bold: no +// Italic: no +// Memory usage: 5412 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 42 point Cm font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm42Data[5210] = +{ + 5, 17, 0, 91, 48, 33, 7, 227, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 81, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 240, 240, 51, 67, 67, 0, + 10, 16, 31, 16, 0, 6, 3, 83, 84, 68, 68, 68, + 113, 113, 113, 113, 113, 113, 113, 113, 97, 113, 113, 113, + 113, 97, 113, 113, 97, 113, 0, 56, 112, 113, 32, 0, + 13, 82, 114, 240, 98, 114, 240, 97, 129, 240, 113, 129, + 240, 98, 114, 240, 98, 114, 240, 97, 129, 240, 113, 129, + 240, 98, 114, 240, 98, 114, 240, 97, 129, 240, 113, 129, + 240, 98, 114, 240, 98, 114, 240, 97, 129, 207, 13, 210, + 114, 240, 98, 114, 240, 97, 129, 240, 113, 129, 240, 98, + 114, 240, 98, 114, 223, 13, 193, 114, 240, 98, 114, 240, + 98, 113, 240, 113, 129, 240, 113, 114, 240, 98, 114, 240, + 98, 113, 240, 113, 129, 240, 113, 114, 240, 98, 114, 240, + 98, 113, 240, 113, 129, 240, 98, 114, 240, 98, 114, 0, + 14, 16, 83, 19, 240, 177, 240, 49, 240, 22, 178, 33, + 50, 130, 49, 66, 98, 65, 81, 98, 65, 82, 66, 81, + 97, 66, 81, 67, 66, 81, 67, 66, 81, 67, 67, 65, + 179, 65, 195, 49, 212, 17, 231, 216, 230, 209, 36, 193, + 51, 193, 67, 177, 82, 67, 65, 82, 67, 65, 82, 67, + 65, 82, 65, 97, 82, 66, 81, 81, 97, 81, 66, 113, + 65, 50, 131, 33, 34, 182, 240, 17, 240, 49, 0, 22, + 96, 116, 32, 67, 240, 17, 177, 49, 226, 161, 81, 210, + 146, 98, 162, 162, 97, 18, 97, 18, 146, 113, 53, 34, + 162, 129, 145, 178, 129, 130, 178, 129, 114, 194, 129, 113, + 210, 129, 98, 210, 129, 97, 226, 129, 82, 242, 97, 82, + 240, 18, 97, 81, 240, 49, 81, 82, 240, 65, 49, 82, + 240, 99, 98, 113, 240, 98, 98, 18, 240, 65, 97, 81, + 240, 34, 82, 97, 242, 97, 113, 241, 98, 129, 210, 98, + 129, 194, 114, 129, 194, 114, 129, 178, 130, 129, 177, 146, + 129, 162, 146, 129, 146, 178, 97, 162, 178, 97, 146, 209, + 82, 130, 226, 50, 146, 240, 19, 0, 37, 94, 31, 0, + 8, 100, 240, 178, 49, 240, 146, 66, 240, 129, 97, 240, + 114, 97, 240, 114, 97, 240, 114, 97, 240, 114, 81, 240, + 130, 81, 240, 130, 65, 240, 147, 33, 240, 178, 33, 240, + 178, 17, 167, 163, 196, 195, 209, 228, 193, 209, 19, 177, + 209, 51, 145, 209, 82, 145, 193, 99, 113, 193, 131, 97, + 193, 146, 81, 194, 147, 65, 194, 163, 33, 210, 180, 145, + 67, 178, 161, 82, 179, 145, 83, 145, 34, 113, 115, 98, + 67, 65, 167, 133, 0, 43, 64, 18, 8, 240, 147, 84, + 68, 113, 113, 113, 113, 97, 113, 113, 97, 97, 0, 28, + 112, 46, 13, 240, 97, 177, 177, 178, 177, 177, 178, 177, + 178, 178, 177, 178, 178, 178, 177, 178, 178, 178, 178, 178, + 178, 178, 178, 178, 178, 178, 178, 179, 178, 178, 178, 178, + 194, 178, 193, 194, 193, 194, 194, 193, 209, 209, 64, 45, + 13, 209, 209, 209, 194, 194, 193, 194, 193, 194, 178, 194, + 178, 178, 178, 194, 178, 178, 178, 178, 178, 178, 178, 178, + 178, 178, 178, 178, 177, 178, 178, 178, 177, 178, 178, 177, + 178, 177, 177, 193, 177, 177, 177, 192, 44, 18, 240, 146, + 240, 18, 240, 18, 240, 18, 162, 66, 66, 67, 50, 51, + 98, 33, 50, 163, 18, 212, 228, 211, 18, 162, 33, 50, + 99, 49, 67, 66, 66, 66, 162, 240, 18, 240, 18, 240, + 18, 0, 55, 32, 60, 29, 0, 30, 65, 240, 209, 240, + 209, 240, 209, 240, 209, 240, 209, 240, 209, 240, 209, 240, + 209, 240, 209, 240, 209, 240, 209, 240, 209, 240, 31, 10, + 240, 17, 240, 209, 240, 209, 240, 209, 240, 209, 240, 209, + 240, 209, 240, 209, 240, 209, 240, 209, 240, 209, 240, 209, + 240, 209, 0, 31, 18, 8, 0, 29, 3, 84, 68, 113, + 113, 113, 113, 97, 113, 97, 97, 240, 240, 16, 9, 14, + 0, 38, 74, 74, 0, 33, 96, 10, 7, 0, 25, 51, + 67, 67, 0, 10, 16, 88, 19, 240, 240, 49, 240, 34, + 240, 33, 240, 49, 240, 34, 240, 33, 240, 49, 240, 34, + 240, 33, 240, 49, 240, 34, 240, 33, 240, 34, 240, 34, + 240, 33, 240, 34, 240, 34, 240, 33, 240, 34, 240, 34, + 240, 33, 240, 34, 240, 34, 240, 33, 240, 34, 240, 34, + 240, 33, 240, 34, 240, 34, 240, 33, 240, 34, 240, 33, + 240, 49, 240, 34, 240, 33, 240, 49, 240, 34, 240, 33, + 240, 49, 240, 34, 240, 33, 240, 240, 112, 61, 19, 0, + 10, 21, 209, 82, 161, 114, 129, 145, 114, 146, 98, 146, + 97, 177, 82, 178, 66, 178, 66, 178, 66, 178, 66, 178, + 66, 178, 66, 178, 66, 178, 66, 178, 66, 178, 66, 178, + 66, 178, 66, 178, 66, 178, 81, 177, 98, 146, 98, 146, + 114, 129, 145, 114, 147, 66, 197, 0, 27, 32, 36, 16, + 0, 8, 97, 226, 196, 148, 18, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 226, 226, 156, 0, 22, 64, 61, 19, + 0, 10, 6, 193, 68, 145, 115, 113, 147, 97, 147, 81, + 179, 65, 179, 67, 147, 67, 147, 67, 147, 240, 19, 240, + 18, 240, 19, 240, 18, 240, 19, 240, 18, 240, 18, 240, + 18, 240, 18, 240, 18, 240, 33, 240, 33, 240, 33, 145, + 113, 161, 97, 177, 81, 177, 109, 94, 0, 26, 96, 60, + 20, 0, 10, 86, 209, 83, 146, 115, 129, 146, 113, 163, + 99, 131, 99, 131, 99, 131, 240, 35, 240, 34, 240, 35, + 240, 19, 240, 18, 229, 240, 83, 240, 51, 240, 51, 240, + 50, 240, 51, 67, 163, 67, 163, 67, 163, 67, 163, 65, + 179, 97, 163, 113, 131, 146, 83, 198, 0, 28, 80, 63, + 21, 0, 12, 1, 240, 66, 240, 66, 240, 51, 240, 51, + 240, 33, 18, 240, 17, 34, 240, 17, 34, 241, 50, 241, + 50, 225, 66, 209, 82, 209, 82, 193, 98, 193, 98, 177, + 114, 161, 130, 161, 130, 145, 146, 145, 146, 143, 2, 242, + 240, 66, 240, 66, 240, 66, 240, 66, 240, 66, 250, 0, + 29, 48, 61, 19, 0, 9, 98, 130, 123, 138, 145, 22, + 177, 240, 49, 240, 49, 240, 49, 240, 49, 240, 49, 240, + 49, 53, 161, 18, 66, 146, 114, 129, 145, 240, 50, 240, + 49, 240, 50, 240, 34, 240, 34, 240, 34, 67, 162, 67, + 162, 67, 162, 65, 193, 97, 162, 98, 130, 131, 82, 182, + 0, 27, 32, 63, 19, 0, 10, 68, 210, 66, 146, 113, + 131, 98, 130, 114, 114, 130, 114, 240, 19, 240, 18, 240, + 34, 240, 19, 53, 131, 33, 66, 115, 17, 98, 100, 130, + 84, 145, 83, 162, 67, 162, 67, 162, 67, 162, 67, 162, + 82, 162, 82, 162, 83, 145, 114, 145, 114, 130, 130, 98, + 162, 66, 197, 0, 27, 32, 62, 21, 0, 10, 81, 240, + 95, 1, 95, 97, 194, 81, 209, 97, 193, 113, 178, 240, + 65, 240, 65, 240, 66, 240, 65, 240, 65, 240, 81, 240, + 65, 240, 81, 240, 66, 240, 66, 240, 65, 240, 66, 240, + 66, 240, 66, 240, 51, 240, 51, 240, 51, 240, 51, 240, + 51, 240, 51, 240, 51, 0, 30, 64, 60, 20, 0, 10, + 101, 210, 82, 161, 130, 129, 161, 129, 177, 113, 177, 98, + 177, 99, 161, 115, 129, 132, 113, 148, 81, 181, 18, 213, + 240, 22, 209, 37, 162, 84, 130, 116, 98, 147, 98, 163, + 66, 194, 66, 209, 66, 209, 66, 209, 67, 177, 98, 177, + 114, 145, 147, 82, 198, 0, 28, 80, 64, 19, 0, 10, + 21, 194, 66, 162, 98, 145, 130, 114, 130, 113, 162, 82, + 162, 82, 162, 82, 163, 66, 163, 66, 163, 66, 163, 66, + 163, 81, 163, 82, 132, 82, 113, 19, 98, 97, 19, 114, + 65, 35, 133, 51, 240, 18, 240, 34, 240, 19, 240, 18, + 114, 115, 114, 114, 130, 98, 145, 83, 182, 0, 27, 64, + 15, 7, 0, 12, 35, 67, 67, 0, 11, 3, 67, 67, + 0, 10, 16, 23, 8, 0, 14, 3, 84, 67, 0, 12, + 83, 84, 68, 113, 113, 113, 113, 97, 113, 97, 97, 240, + 240, 16, 34, 7, 0, 9, 83, 67, 67, 240, 240, 49, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 98, 82, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 240, 48, + 13, 30, 0, 67, 79, 11, 0, 23, 15, 11, 0, 64, + 32, 53, 18, 0, 25, 51, 228, 243, 0, 11, 1, 240, + 33, 240, 33, 240, 33, 240, 33, 240, 33, 240, 17, 240, + 33, 240, 33, 240, 17, 240, 18, 242, 242, 240, 17, 240, + 18, 240, 18, 147, 66, 147, 66, 147, 66, 177, 82, 145, + 114, 98, 151, 0, 7, 96, 48, 17, 240, 240, 134, 146, + 82, 114, 114, 97, 146, 65, 162, 67, 130, 67, 130, 67, + 130, 242, 226, 242, 226, 226, 241, 242, 241, 240, 17, 241, + 240, 17, 240, 17, 240, 17, 240, 17, 240, 17, 0, 10, + 51, 227, 227, 0, 24, 64, 108, 30, 0, 8, 102, 240, + 99, 98, 240, 49, 178, 241, 210, 209, 240, 17, 177, 240, + 49, 146, 101, 114, 129, 98, 65, 113, 113, 82, 113, 98, + 97, 82, 129, 97, 97, 66, 162, 65, 81, 82, 162, 66, + 65, 66, 178, 81, 65, 66, 178, 81, 65, 66, 178, 81, + 65, 66, 178, 81, 65, 66, 178, 81, 65, 66, 178, 81, + 65, 66, 178, 81, 81, 66, 162, 81, 81, 66, 147, 81, + 81, 82, 131, 65, 113, 66, 113, 18, 65, 113, 83, 65, + 50, 34, 129, 101, 84, 146, 240, 226, 240, 226, 243, 195, + 132, 240, 41, 0, 42, 96, 81, 31, 0, 9, 49, 240, + 226, 240, 227, 240, 211, 240, 196, 240, 193, 19, 240, 161, + 35, 240, 161, 35, 240, 161, 51, 240, 129, 67, 240, 129, + 67, 240, 129, 83, 240, 97, 99, 240, 97, 99, 240, 97, + 115, 240, 65, 131, 240, 65, 131, 240, 65, 147, 240, 33, + 163, 240, 46, 240, 33, 179, 241, 195, 241, 210, 241, 211, + 209, 227, 209, 242, 209, 243, 178, 243, 163, 244, 119, 185, + 0, 43, 16, 63, 26, 0, 9, 111, 226, 148, 178, 179, + 162, 195, 146, 195, 146, 211, 130, 211, 130, 211, 130, 211, + 130, 210, 146, 195, 146, 194, 162, 178, 178, 146, 222, 194, + 164, 162, 195, 146, 211, 130, 211, 130, 227, 114, 227, 114, + 227, 114, 227, 114, 227, 114, 211, 130, 211, 130, 195, 146, + 164, 127, 2, 0, 36, 112, 81, 28, 0, 11, 103, 97, + 195, 98, 65, 163, 161, 34, 146, 209, 18, 130, 243, 114, + 240, 19, 99, 240, 34, 98, 240, 50, 83, 240, 50, 83, + 240, 65, 82, 240, 81, 67, 240, 163, 240, 163, 240, 163, + 240, 163, 240, 163, 240, 163, 240, 178, 240, 81, 83, 240, + 65, 83, 240, 65, 98, 240, 65, 99, 240, 33, 131, 240, + 17, 146, 241, 178, 209, 211, 161, 240, 19, 98, 240, 71, + 0, 39, 112, 74, 28, 0, 10, 79, 240, 18, 147, 226, + 179, 194, 195, 178, 211, 162, 226, 162, 227, 146, 243, 130, + 243, 130, 243, 130, 240, 19, 114, 240, 19, 114, 240, 19, + 114, 240, 19, 114, 240, 19, 114, 240, 19, 114, 240, 19, + 114, 240, 19, 114, 240, 19, 114, 240, 18, 130, 243, 130, + 243, 130, 242, 146, 227, 146, 211, 162, 210, 178, 179, 194, + 148, 175, 0, 40, 16, 75, 27, 0, 10, 31, 6, 146, + 196, 146, 226, 146, 241, 146, 241, 146, 240, 17, 130, 240, + 17, 130, 240, 17, 130, 240, 17, 130, 145, 97, 130, 145, + 242, 145, 242, 130, 242, 115, 252, 242, 115, 242, 145, 242, + 145, 242, 145, 242, 145, 113, 114, 240, 33, 114, 240, 33, + 114, 240, 17, 130, 240, 17, 130, 240, 17, 130, 242, 130, + 227, 130, 197, 95, 7, 0, 37, 96, 64, 26, 0, 9, + 111, 6, 130, 196, 130, 226, 130, 226, 130, 241, 130, 241, + 130, 241, 130, 241, 130, 240, 17, 114, 145, 226, 145, 226, + 145, 226, 145, 226, 115, 236, 226, 115, 226, 130, 226, 145, + 226, 145, 226, 145, 226, 240, 146, 240, 146, 240, 146, 240, + 146, 240, 146, 240, 146, 240, 146, 240, 106, 0, 37, 96, + 80, 30, 0, 12, 70, 97, 243, 82, 65, 211, 146, 33, + 194, 196, 178, 227, 163, 242, 147, 240, 18, 146, 240, 34, + 131, 240, 49, 131, 240, 49, 130, 240, 65, 115, 240, 65, + 115, 240, 195, 240, 195, 240, 195, 240, 195, 240, 195, 240, + 195, 218, 83, 240, 34, 131, 240, 34, 146, 240, 34, 147, + 240, 18, 162, 240, 18, 178, 242, 194, 226, 211, 179, 228, + 114, 33, 240, 40, 65, 0, 42, 16, 65, 27, 0, 10, + 24, 120, 114, 210, 162, 210, 162, 210, 162, 210, 162, 210, + 162, 210, 162, 210, 162, 210, 162, 210, 162, 210, 162, 210, + 162, 210, 162, 210, 175, 2, 162, 210, 162, 210, 162, 210, + 162, 210, 162, 210, 162, 210, 162, 210, 162, 210, 162, 210, + 162, 210, 162, 210, 162, 210, 162, 210, 120, 120, 0, 37, + 80, 35, 12, 240, 240, 104, 114, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 120, 0, 17, + 61, 18, 0, 7, 72, 226, 240, 18, 240, 18, 240, 18, + 240, 18, 240, 18, 240, 18, 240, 18, 240, 18, 240, 18, + 240, 18, 240, 18, 240, 18, 240, 18, 240, 18, 240, 18, + 240, 18, 240, 18, 240, 18, 240, 18, 240, 18, 114, 114, + 100, 98, 100, 98, 99, 98, 129, 114, 146, 66, 196, 0, + 26, 80, 29, 0, 10, 120, 167, 114, 227, 162, 226, 178, + 209, 210, 193, 226, 177, 242, 162, 242, 146, 240, 18, 145, + 240, 34, 129, 240, 50, 113, 240, 66, 97, 240, 82, 83, + 240, 66, 65, 19, 240, 50, 49, 35, 240, 50, 33, 67, + 240, 34, 17, 83, 240, 35, 115, 240, 18, 147, 242, 147, + 242, 163, 226, 179, 210, 179, 210, 195, 194, 195, 194, 211, + 178, 227, 162, 213, 104, 152, 0, 40, 48, 65, 23, 0, + 8, 89, 240, 34, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 209, 114, 209, 114, 209, 114, 209, 114, 209, 114, + 209, 114, 194, 114, 194, 114, 178, 130, 148, 95, 3, 0, + 32, 32, 118, 34, 0, 12, 102, 240, 54, 116, 240, 35, + 161, 18, 240, 17, 18, 161, 18, 240, 17, 18, 161, 19, + 241, 18, 161, 34, 225, 34, 161, 34, 225, 34, 161, 35, + 209, 34, 161, 50, 193, 50, 161, 51, 177, 50, 161, 51, + 161, 66, 161, 66, 161, 66, 161, 67, 145, 66, 161, 82, + 129, 82, 161, 82, 129, 82, 161, 83, 113, 82, 161, 98, + 97, 98, 161, 98, 97, 98, 161, 99, 81, 98, 161, 114, + 65, 114, 161, 115, 49, 114, 161, 115, 33, 130, 161, 130, + 33, 130, 161, 131, 17, 130, 161, 132, 146, 161, 147, 146, + 161, 147, 146, 147, 145, 162, 119, 113, 120, 0, 47, 32, + 85, 28, 0, 10, 70, 183, 116, 195, 148, 209, 161, 19, + 193, 161, 35, 177, 161, 35, 177, 161, 51, 161, 161, 51, + 161, 161, 67, 145, 161, 83, 129, 161, 83, 129, 161, 99, + 113, 161, 99, 113, 161, 115, 97, 161, 130, 97, 161, 131, + 81, 161, 147, 65, 161, 147, 65, 161, 163, 49, 161, 178, + 49, 161, 179, 33, 161, 195, 17, 161, 195, 17, 161, 212, + 161, 212, 161, 227, 161, 242, 147, 226, 119, 209, 0, 39, + 48, 84, 30, 0, 12, 70, 240, 99, 99, 240, 34, 162, + 242, 195, 194, 226, 178, 240, 18, 147, 240, 19, 130, 240, + 50, 115, 240, 51, 99, 240, 51, 98, 240, 83, 67, 240, + 83, 67, 240, 83, 67, 240, 83, 67, 240, 83, 67, 240, + 83, 67, 240, 83, 67, 240, 83, 83, 240, 67, 83, 240, + 51, 99, 240, 51, 114, 240, 50, 131, 240, 19, 147, 242, + 178, 226, 210, 194, 242, 162, 240, 35, 99, 240, 102, 0, + 43, 62, 25, 0, 9, 63, 210, 147, 178, 179, 146, 194, + 146, 195, 130, 211, 114, 211, 114, 211, 114, 211, 114, 211, + 114, 211, 114, 195, 130, 194, 146, 178, 162, 147, 188, 210, + 240, 130, 240, 130, 240, 130, 240, 130, 240, 130, 240, 130, + 240, 130, 240, 130, 240, 130, 240, 130, 240, 130, 240, 88, + 0, 36, 64, 114, 30, 0, 12, 71, 240, 98, 99, 240, + 34, 162, 242, 195, 194, 226, 179, 242, 147, 240, 19, 130, + 240, 50, 115, 240, 51, 99, 240, 51, 99, 240, 66, 83, + 240, 83, 67, 240, 83, 67, 240, 83, 67, 240, 83, 67, + 240, 83, 67, 240, 83, 67, 240, 83, 67, 240, 83, 83, + 240, 66, 99, 240, 51, 114, 240, 51, 115, 240, 34, 146, + 115, 98, 178, 81, 49, 67, 194, 49, 81, 50, 226, 33, + 81, 18, 240, 35, 17, 67, 240, 102, 17, 240, 225, 113, + 240, 98, 97, 240, 113, 97, 240, 113, 97, 240, 114, 65, + 240, 135, 240, 150, 240, 163, 0, 12, 16, 71, 29, 0, + 10, 126, 240, 50, 131, 240, 18, 163, 226, 179, 210, 179, + 210, 195, 194, 195, 194, 195, 194, 195, 194, 195, 194, 179, + 210, 178, 226, 162, 242, 131, 240, 26, 240, 66, 115, 240, + 34, 147, 242, 162, 242, 163, 226, 163, 226, 178, 226, 178, + 226, 179, 210, 179, 210, 179, 210, 179, 81, 114, 179, 81, + 114, 195, 49, 88, 165, 0, 40, 80, 66, 21, 0, 8, + 69, 81, 130, 82, 49, 114, 129, 18, 98, 163, 97, 194, + 82, 194, 82, 209, 82, 209, 82, 209, 83, 193, 99, 240, + 52, 240, 54, 240, 25, 233, 240, 22, 240, 52, 240, 51, + 240, 67, 65, 226, 65, 226, 65, 226, 65, 226, 66, 210, + 66, 209, 83, 178, 82, 17, 146, 97, 50, 98, 113, 86, + 0, 30, 72, 28, 0, 10, 79, 9, 68, 114, 116, 66, + 146, 146, 65, 162, 146, 65, 162, 161, 65, 162, 161, 65, + 162, 161, 65, 162, 161, 65, 162, 161, 242, 240, 178, 240, + 178, 240, 178, 240, 178, 240, 178, 240, 178, 240, 178, 240, + 178, 240, 178, 240, 178, 240, 178, 240, 178, 240, 178, 240, + 178, 240, 178, 240, 178, 240, 178, 240, 178, 240, 108, 0, + 39, 96, 66, 28, 0, 10, 72, 136, 114, 227, 146, 241, + 162, 241, 162, 241, 162, 241, 162, 241, 162, 241, 162, 241, + 162, 241, 162, 241, 162, 241, 162, 241, 162, 241, 162, 241, + 162, 241, 162, 241, 162, 241, 162, 241, 162, 241, 162, 241, + 162, 241, 177, 225, 194, 209, 194, 193, 226, 177, 242, 145, + 240, 34, 98, 240, 86, 0, 40, 16, 84, 32, 0, 12, + 9, 199, 115, 240, 35, 147, 240, 34, 179, 240, 17, 195, + 240, 17, 210, 241, 227, 225, 227, 225, 243, 193, 240, 19, + 193, 240, 19, 193, 240, 35, 161, 240, 51, 161, 240, 67, + 129, 240, 83, 129, 240, 83, 129, 240, 99, 97, 240, 115, + 97, 240, 130, 81, 240, 147, 65, 240, 147, 65, 240, 163, + 33, 240, 179, 33, 240, 179, 33, 240, 196, 240, 212, 240, + 226, 240, 242, 240, 242, 0, 46, 16, 122, 43, 0, 16, + 25, 105, 135, 115, 196, 195, 147, 195, 225, 163, 211, 209, + 179, 195, 193, 195, 195, 193, 195, 177, 19, 177, 211, 161, + 19, 161, 227, 161, 19, 161, 227, 145, 51, 145, 242, 145, + 51, 129, 240, 19, 129, 51, 129, 240, 19, 113, 82, 129, + 240, 34, 113, 83, 97, 240, 51, 97, 83, 97, 240, 51, + 81, 114, 97, 240, 51, 81, 115, 81, 240, 67, 65, 115, + 65, 240, 83, 49, 131, 65, 240, 83, 49, 147, 49, 240, + 99, 33, 147, 33, 240, 115, 33, 147, 33, 240, 115, 17, + 179, 17, 240, 132, 180, 240, 148, 180, 240, 147, 211, 240, + 162, 210, 240, 178, 210, 240, 177, 241, 0, 61, 82, 31, + 0, 11, 104, 151, 149, 180, 196, 193, 243, 177, 240, 35, + 161, 240, 35, 145, 240, 67, 113, 240, 99, 97, 240, 99, + 81, 240, 131, 49, 240, 163, 33, 240, 163, 17, 240, 196, + 240, 211, 240, 211, 240, 212, 240, 177, 35, 240, 145, 51, + 240, 145, 67, 240, 113, 84, 240, 81, 115, 240, 81, 131, + 240, 49, 148, 240, 17, 179, 240, 17, 195, 225, 212, 194, + 227, 179, 228, 119, 185, 0, 43, 16, 76, 32, 0, 12, + 9, 199, 116, 244, 163, 240, 17, 211, 225, 227, 225, 243, + 193, 240, 19, 193, 240, 35, 161, 240, 67, 129, 240, 83, + 129, 240, 99, 97, 240, 115, 97, 240, 131, 65, 240, 162, + 49, 240, 179, 33, 240, 194, 17, 240, 212, 240, 226, 240, + 242, 240, 242, 240, 242, 240, 242, 240, 242, 240, 242, 240, + 242, 240, 242, 240, 242, 240, 242, 240, 200, 0, 45, 96, + 66, 24, 0, 9, 31, 4, 85, 164, 83, 195, 98, 195, + 113, 196, 113, 195, 129, 179, 145, 179, 240, 83, 240, 84, + 240, 83, 240, 83, 240, 99, 240, 83, 240, 84, 240, 83, + 240, 83, 240, 99, 240, 83, 161, 147, 177, 147, 177, 131, + 193, 131, 193, 115, 209, 99, 210, 99, 210, 83, 211, 68, + 181, 79, 5, 0, 33, 64, 44, 9, 149, 65, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 133, 208, 31, 16, 0, 6, 49, 113, 97, 113, 113, 113, + 97, 113, 113, 113, 97, 113, 113, 113, 113, 113, 113, 113, + 116, 68, 68, 68, 83, 83, 0, 56, 64, 44, 9, 149, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 69, 208, 16, 14, 0, 5, 113, 194, 178, + 17, 145, 65, 113, 97, 81, 129, 0, 60, 10, 7, 240, + 240, 83, 67, 67, 0, 31, 16, 18, 8, 240, 193, 97, + 113, 97, 113, 97, 113, 113, 113, 116, 68, 83, 0, 28, + 64, 48, 21, 0, 37, 37, 226, 82, 177, 130, 162, 130, + 147, 114, 146, 130, 240, 66, 231, 195, 66, 162, 114, 146, + 130, 146, 130, 130, 146, 49, 66, 146, 49, 66, 131, 49, + 67, 97, 18, 49, 83, 66, 34, 17, 133, 67, 0, 29, + 80, 67, 22, 0, 8, 52, 240, 37, 240, 82, 240, 82, + 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 82, 53, 194, 33, 67, 163, 130, 147, 146, + 130, 162, 130, 177, 130, 178, 114, 178, 114, 178, 114, 178, + 114, 178, 114, 178, 114, 177, 130, 162, 131, 145, 147, 130, + 145, 34, 66, 177, 69, 0, 31, 48, 41, 18, 0, 32, + 22, 163, 82, 114, 129, 113, 131, 82, 131, 81, 147, 66, + 240, 18, 240, 18, 240, 18, 240, 18, 240, 18, 240, 34, + 240, 18, 161, 98, 129, 115, 113, 146, 66, 181, 0, 25, + 96, 67, 23, 0, 10, 65, 240, 53, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 213, 50, 178, 82, 18, 161, 147, 146, 147, 130, + 178, 130, 178, 114, 194, 114, 194, 114, 194, 114, 194, 114, + 194, 114, 194, 129, 194, 130, 178, 145, 163, 146, 129, 18, + 178, 81, 37, 150, 53, 0, 32, 16, 40, 19, 0, 33, + 118, 178, 82, 146, 114, 129, 146, 97, 178, 81, 178, 66, + 178, 79, 66, 240, 34, 240, 34, 240, 34, 240, 50, 177, + 82, 177, 98, 145, 130, 114, 146, 82, 182, 0, 27, 16, + 41, 15, 240, 240, 115, 162, 49, 130, 50, 130, 50, 114, + 66, 114, 210, 210, 210, 210, 210, 210, 170, 130, 210, 210, + 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 169, 0, 21, 48, 61, 22, 0, 36, 52, 68, 147, + 19, 17, 35, 114, 82, 50, 129, 98, 194, 114, 178, 114, + 178, 114, 178, 114, 178, 114, 178, 113, 210, 82, 211, 50, + 209, 37, 225, 240, 97, 240, 98, 240, 106, 219, 146, 147, + 114, 179, 82, 210, 82, 210, 82, 210, 83, 179, 99, 147, + 147, 98, 215, 0, 9, 64, 67, 23, 0, 8, 100, 240, + 53, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 98, 240, 98, 53, 210, 33, + 67, 178, 17, 99, 163, 130, 163, 130, 162, 146, 162, 146, + 162, 146, 162, 146, 162, 146, 162, 146, 162, 146, 162, 146, + 162, 146, 162, 146, 162, 146, 162, 146, 120, 56, 0, 32, + 16, 30, 11, 0, 7, 19, 131, 131, 0, 9, 50, 101, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 103, 0, 15, 80, 41, 12, 0, 8, 19, + 147, 147, 0, 10, 34, 132, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 67, 50, 67, 49, 82, 50, 115, 240, 240, 208, + 67, 22, 0, 8, 52, 240, 37, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, + 82, 240, 82, 103, 114, 115, 162, 114, 178, 97, 210, 81, + 226, 65, 242, 49, 240, 18, 35, 242, 17, 19, 227, 50, + 226, 67, 210, 83, 194, 98, 194, 99, 178, 115, 162, 130, + 162, 131, 104, 70, 0, 30, 96, 35, 12, 240, 240, 116, + 117, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 120, 0, 17, 65, 34, 0, 59, 99, 53, + 101, 165, 33, 67, 49, 67, 178, 17, 98, 33, 99, 163, + 131, 130, 163, 131, 130, 162, 146, 146, 162, 146, 146, 162, + 146, 146, 162, 146, 146, 162, 146, 146, 162, 146, 146, 162, + 146, 146, 162, 146, 146, 162, 146, 146, 162, 146, 146, 162, + 146, 146, 162, 146, 146, 120, 56, 56, 0, 47, 32, 45, + 23, 0, 40, 67, 53, 165, 33, 67, 178, 17, 99, 163, + 130, 163, 130, 162, 146, 162, 146, 162, 146, 162, 146, 162, + 146, 162, 146, 162, 146, 162, 146, 162, 146, 162, 146, 162, + 146, 162, 146, 120, 56, 0, 32, 16, 41, 20, 0, 35, + 101, 210, 66, 177, 130, 129, 161, 114, 162, 97, 193, 82, + 194, 66, 194, 66, 194, 66, 194, 66, 194, 66, 194, 81, + 193, 98, 162, 113, 161, 130, 130, 162, 66, 214, 0, 28, + 80, 59, 22, 0, 38, 84, 53, 149, 33, 67, 163, 130, + 147, 131, 130, 162, 130, 162, 130, 178, 114, 178, 114, 178, + 114, 178, 114, 178, 114, 178, 114, 162, 130, 162, 131, 130, + 147, 130, 146, 18, 66, 178, 53, 194, 240, 82, 240, 82, + 240, 82, 240, 82, 240, 82, 240, 82, 240, 40, 0, 10, + 63, 23, 0, 41, 5, 65, 178, 81, 49, 162, 113, 33, + 146, 147, 130, 178, 130, 178, 114, 194, 114, 194, 114, 194, + 114, 194, 114, 194, 114, 194, 130, 178, 130, 178, 146, 147, + 147, 113, 18, 178, 81, 34, 197, 66, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 56, + 0, 9, 16, 31, 16, 0, 28, 35, 51, 85, 33, 34, + 114, 17, 50, 115, 66, 115, 210, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 226, 226, 185, 0, 22, 112, 37, 16, + 0, 28, 54, 130, 83, 97, 129, 81, 145, 81, 145, 82, + 227, 230, 199, 197, 227, 65, 146, 65, 161, 66, 145, 66, + 145, 67, 113, 81, 18, 82, 81, 53, 0, 22, 112, 44, + 17, 0, 13, 49, 240, 17, 240, 17, 240, 17, 240, 17, + 242, 242, 212, 188, 146, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 97, 130, 97, 130, 97, 130, 97, 130, 97, 146, + 65, 162, 50, 196, 0, 24, 16, 45, 23, 0, 40, 52, + 116, 117, 101, 162, 146, 162, 146, 162, 146, 162, 146, 162, + 146, 162, 146, 162, 146, 162, 146, 162, 146, 162, 146, 162, + 146, 162, 146, 162, 131, 162, 113, 18, 179, 65, 37, 165, + 53, 0, 32, 16, 47, 23, 0, 40, 39, 102, 99, 162, + 146, 161, 163, 145, 178, 129, 194, 129, 210, 97, 226, 97, + 227, 81, 242, 65, 240, 18, 65, 240, 34, 33, 240, 50, + 33, 240, 51, 17, 240, 67, 240, 83, 240, 97, 240, 113, + 0, 33, 32, 70, 30, 0, 52, 71, 54, 70, 99, 114, + 130, 146, 114, 130, 146, 129, 129, 163, 99, 113, 178, 99, + 97, 194, 81, 34, 81, 195, 65, 34, 81, 210, 65, 34, + 65, 226, 49, 66, 49, 227, 33, 66, 49, 242, 33, 66, + 33, 240, 18, 33, 82, 17, 240, 20, 98, 17, 240, 35, + 99, 240, 51, 114, 240, 50, 130, 240, 65, 129, 0, 42, + 96, 49, 24, 0, 42, 7, 102, 131, 131, 178, 129, 226, + 97, 243, 81, 240, 19, 49, 240, 50, 33, 240, 83, 240, + 99, 240, 115, 240, 81, 18, 240, 65, 50, 240, 33, 67, + 240, 17, 83, 225, 114, 209, 146, 178, 147, 118, 119, 0, + 33, 64, 63, 22, 0, 38, 70, 117, 99, 146, 146, 145, + 162, 145, 162, 129, 194, 113, 194, 113, 210, 81, 226, 81, + 226, 65, 240, 18, 49, 240, 18, 49, 240, 34, 17, 240, + 50, 17, 240, 51, 240, 82, 240, 82, 240, 81, 240, 97, + 240, 81, 240, 97, 240, 97, 226, 65, 242, 65, 241, 65, + 240, 36, 0, 10, 48, 37, 18, 0, 31, 93, 82, 130, + 97, 131, 97, 130, 97, 130, 113, 115, 242, 242, 242, 243, + 242, 97, 130, 113, 115, 113, 114, 129, 98, 145, 83, 130, + 67, 131, 78, 0, 25, 32, 9, 23, 0, 57, 79, 4, + 0, 63, 96, 10, 43, 0, 107, 79, 15, 9, 0, 118, + 96, 22, 15, 0, 6, 2, 66, 99, 51, 98, 66, 114, + 66, 98, 66, 113, 81, 114, 66, 113, 81, 0, 61, 15, + 17, 0, 8, 115, 97, 101, 65, 97, 69, 97, 99, 0, + 75, 32, +}; + +//***************************************************************************** +// +// The font definition for the 42 point Cm font. +// +//***************************************************************************** +const tFont g_sFontCm42 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 38, + + // + // The height of the font. + // + 43, + + // + // The baseline of the font. + // + 32, + + // + // The offset to each character in the font. + // + { + 0, 5, 38, 69, 182, 265, 381, 475, + 493, 539, 584, 628, 688, 706, 715, 725, + 813, 874, 910, 971, 1031, 1094, 1155, 1218, + 1280, 1340, 1404, 1419, 1442, 1476, 1489, 1542, + 1590, 1698, 1779, 1842, 1923, 1997, 2072, 2136, + 2216, 2281, 2316, 2377, 2457, 2522, 2640, 2725, + 2809, 2871, 2985, 3056, 3122, 3194, 3260, 3344, + 3466, 3548, 3624, 3690, 3734, 3765, 3809, 3825, + 3835, 3853, 3901, 3968, 4009, 4076, 4116, 4157, + 4218, 4285, 4315, 4356, 4423, 4458, 4523, 4568, + 4609, 4668, 4731, 4762, 4799, 4843, 4888, 4935, + 5005, 5054, 5117, 5154, 5163, 5173, 5195, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm42Data +}; diff --git a/grlib/fonts/fontcm42b.c b/grlib/fonts/fontcm42b.c new file mode 100644 index 0000000..5678844 --- /dev/null +++ b/grlib/fonts/fontcm42b.c @@ -0,0 +1,530 @@ +//***************************************************************************** +// +// fontcm42b.c - Font definition for the 42pt Cm bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 42 point +// Bold: yes +// Italic: no +// Memory usage: 5284 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 42 point Cm bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm42bData[5083] = +{ + 5, 17, 0, 93, 64, 36, 11, 240, 240, 84, 102, 71, + 71, 71, 71, 71, 85, 101, 101, 101, 101, 101, 115, 131, + 131, 131, 131, 131, 131, 240, 240, 179, 117, 87, 71, 71, + 85, 115, 0, 15, 112, 35, 21, 0, 10, 99, 115, 117, + 85, 86, 70, 87, 55, 71, 55, 86, 70, 86, 70, 146, + 130, 146, 130, 145, 145, 146, 130, 130, 130, 130, 130, 130, + 130, 0, 69, 32, 110, 34, 0, 18, 98, 114, 240, 130, + 114, 240, 115, 99, 240, 115, 99, 240, 114, 115, 240, 114, + 114, 240, 115, 99, 240, 115, 99, 240, 114, 115, 240, 114, + 114, 240, 115, 99, 240, 115, 99, 240, 114, 115, 191, 15, + 79, 15, 227, 99, 240, 114, 114, 240, 115, 99, 240, 115, + 99, 240, 115, 99, 240, 114, 114, 240, 115, 99, 239, 15, + 79, 15, 179, 114, 240, 115, 99, 240, 115, 99, 240, 114, + 114, 240, 115, 114, 240, 115, 99, 240, 115, 99, 240, 114, + 114, 240, 115, 114, 240, 115, 99, 240, 115, 99, 240, 114, + 114, 240, 130, 114, 0, 15, 76, 20, 240, 194, 240, 50, + 240, 50, 249, 156, 131, 34, 51, 99, 50, 66, 83, 66, + 52, 67, 66, 37, 67, 66, 37, 68, 50, 37, 68, 50, + 51, 86, 18, 185, 203, 156, 156, 156, 155, 185, 201, 178, + 37, 83, 50, 52, 69, 34, 67, 69, 34, 67, 69, 34, + 67, 68, 50, 67, 81, 82, 66, 98, 66, 51, 115, 34, + 35, 154, 198, 240, 18, 240, 50, 0, 23, 112, 115, 35, + 84, 240, 18, 183, 243, 148, 35, 211, 149, 52, 164, 148, + 70, 101, 164, 95, 165, 82, 54, 19, 165, 82, 147, 181, + 82, 131, 197, 82, 131, 197, 82, 115, 213, 82, 99, 229, + 82, 99, 244, 82, 83, 240, 20, 66, 83, 240, 37, 50, + 83, 240, 52, 34, 83, 240, 87, 68, 240, 240, 19, 240, + 240, 19, 103, 240, 52, 84, 35, 240, 35, 84, 66, 240, + 19, 100, 66, 244, 85, 82, 227, 101, 82, 211, 117, 82, + 196, 117, 82, 195, 133, 82, 179, 149, 82, 164, 149, 82, + 163, 180, 67, 147, 196, 66, 148, 212, 35, 147, 247, 162, + 240, 37, 0, 40, 32, 89, 32, 0, 9, 20, 240, 183, + 240, 148, 34, 240, 133, 50, 240, 116, 66, 240, 101, 66, + 240, 101, 66, 240, 101, 66, 240, 101, 65, 240, 117, 50, + 240, 117, 49, 240, 134, 18, 240, 151, 121, 150, 137, 149, + 195, 198, 178, 229, 162, 231, 146, 210, 21, 130, 211, 22, + 99, 196, 38, 82, 196, 69, 66, 197, 70, 35, 197, 86, + 18, 213, 103, 229, 102, 246, 102, 130, 85, 118, 114, 86, + 67, 22, 51, 138, 58, 182, 134, 0, 44, 112, 21, 11, + 0, 5, 99, 117, 86, 87, 71, 86, 86, 146, 146, 145, + 146, 130, 130, 130, 0, 36, 96, 47, 15, 240, 146, 194, + 195, 179, 179, 195, 180, 164, 180, 164, 180, 180, 165, 165, + 164, 180, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 180, 181, 165, 165, 180, 180, 196, 180, 196, 180, + 196, 195, 211, 210, 226, 64, 46, 15, 242, 226, 211, 211, + 211, 196, 195, 196, 180, 196, 180, 180, 181, 165, 180, 181, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 164, 165, 165, 164, 180, 180, 164, 180, 179, 180, 179, 179, + 179, 194, 194, 208, 45, 20, 240, 194, 240, 36, 240, 20, + 240, 20, 178, 52, 50, 84, 50, 52, 69, 34, 37, 85, + 18, 21, 138, 212, 232, 172, 102, 18, 22, 68, 50, 52, + 67, 67, 51, 164, 240, 20, 240, 20, 240, 34, 0, 61, + 48, 64, 33, 0, 34, 83, 240, 243, 240, 243, 240, 243, + 240, 243, 240, 243, 240, 243, 240, 243, 240, 243, 240, 243, + 240, 243, 240, 243, 240, 243, 240, 243, 240, 47, 14, 79, + 14, 240, 35, 240, 243, 240, 243, 240, 243, 240, 243, 240, + 243, 240, 243, 240, 243, 240, 243, 240, 243, 240, 243, 240, + 243, 240, 243, 0, 31, 22, 11, 0, 36, 3, 117, 86, + 87, 71, 86, 86, 146, 146, 145, 146, 145, 146, 130, 145, + 240, 240, 176, 11, 15, 0, 41, 43, 75, 75, 75, 0, + 34, 32, 14, 11, 0, 36, 3, 117, 87, 71, 71, 85, + 115, 0, 15, 112, 91, 20, 240, 240, 66, 240, 35, 240, + 35, 240, 34, 240, 35, 240, 35, 240, 34, 240, 35, 240, + 35, 240, 34, 240, 35, 240, 35, 240, 34, 240, 35, 240, + 35, 240, 34, 240, 35, 240, 35, 240, 34, 240, 35, 240, + 35, 240, 34, 240, 35, 240, 35, 240, 34, 240, 35, 240, + 35, 240, 34, 240, 35, 240, 35, 240, 34, 240, 35, 240, + 35, 240, 34, 240, 35, 240, 35, 240, 34, 240, 35, 240, + 35, 240, 34, 240, 35, 240, 35, 240, 34, 240, 48, 59, + 21, 0, 13, 118, 217, 180, 52, 148, 84, 131, 116, 100, + 116, 100, 116, 100, 117, 69, 117, 69, 117, 69, 117, 69, + 117, 69, 117, 69, 117, 69, 117, 69, 117, 69, 117, 69, + 117, 69, 117, 69, 117, 84, 117, 84, 116, 100, 116, 100, + 116, 116, 84, 148, 52, 185, 214, 0, 30, 16, 37, 19, + 0, 12, 114, 240, 19, 214, 154, 148, 21, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 159, 79, 0, 26, 80, 54, + 21, 0, 13, 102, 218, 163, 70, 115, 102, 85, 86, 86, + 86, 70, 86, 70, 86, 70, 86, 84, 102, 246, 245, 246, + 245, 245, 240, 20, 240, 20, 240, 20, 240, 20, 240, 35, + 98, 147, 114, 131, 130, 115, 130, 126, 126, 111, 95, 1, + 95, 1, 0, 29, 64, 57, 21, 0, 13, 103, 218, 147, + 85, 130, 116, 117, 85, 102, 69, 102, 69, 101, 85, 116, + 84, 240, 21, 240, 20, 240, 20, 215, 232, 240, 53, 240, + 22, 240, 21, 240, 22, 84, 102, 70, 86, 70, 86, 70, + 86, 70, 86, 69, 101, 99, 102, 115, 70, 154, 214, 0, + 30, 16, 57, 22, 0, 15, 50, 240, 67, 240, 52, 240, + 37, 240, 37, 240, 22, 247, 247, 226, 21, 210, 37, 210, + 37, 194, 53, 178, 69, 178, 69, 162, 85, 146, 101, 146, + 101, 130, 117, 114, 133, 127, 3, 79, 3, 229, 240, 37, + 240, 37, 240, 37, 240, 37, 220, 172, 0, 30, 96, 54, + 21, 0, 13, 50, 161, 132, 99, 141, 140, 155, 170, 183, + 226, 240, 66, 240, 66, 240, 66, 37, 204, 148, 69, 131, + 100, 130, 117, 240, 21, 240, 22, 246, 99, 102, 84, 102, + 70, 86, 70, 86, 69, 101, 100, 101, 98, 117, 131, 69, + 170, 214, 0, 30, 16, 57, 21, 0, 14, 21, 233, 165, + 51, 149, 68, 132, 69, 117, 69, 117, 69, 101, 99, 117, + 240, 21, 246, 36, 150, 23, 119, 53, 103, 69, 86, 85, + 86, 86, 70, 86, 70, 86, 70, 86, 70, 86, 85, 86, + 85, 86, 85, 86, 100, 85, 117, 69, 133, 37, 170, 214, + 0, 30, 61, 21, 0, 13, 34, 240, 79, 1, 95, 1, + 95, 95, 1, 95, 98, 147, 114, 146, 130, 131, 130, 115, + 240, 50, 240, 50, 240, 51, 240, 51, 240, 36, 240, 35, + 240, 51, 240, 36, 240, 36, 240, 36, 240, 36, 240, 21, + 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, 35, + 0, 30, 64, 55, 22, 0, 14, 70, 234, 179, 84, 147, + 116, 131, 132, 115, 132, 100, 132, 101, 116, 102, 99, 120, + 67, 137, 19, 156, 187, 203, 188, 147, 26, 115, 72, 100, + 103, 68, 134, 68, 149, 68, 164, 68, 164, 68, 164, 84, + 147, 100, 132, 117, 84, 155, 215, 0, 31, 64, 56, 21, + 0, 13, 103, 217, 165, 52, 148, 69, 117, 85, 101, 85, + 86, 85, 86, 86, 70, 86, 70, 86, 70, 86, 70, 86, + 85, 86, 85, 86, 85, 71, 101, 55, 126, 149, 22, 246, + 245, 240, 21, 116, 85, 101, 84, 118, 53, 117, 68, 147, + 68, 185, 214, 0, 30, 32, 23, 11, 0, 19, 67, 117, + 87, 71, 71, 85, 115, 0, 7, 115, 117, 87, 71, 71, + 85, 115, 0, 15, 112, 31, 11, 0, 19, 67, 117, 87, + 71, 71, 85, 115, 0, 7, 115, 117, 87, 71, 71, 86, + 101, 146, 146, 145, 146, 145, 146, 130, 145, 240, 240, 176, + 36, 11, 0, 15, 51, 117, 87, 71, 71, 85, 115, 240, + 240, 179, 131, 131, 131, 131, 131, 131, 117, 101, 101, 101, + 101, 101, 101, 87, 71, 71, 71, 71, 85, 115, 240, 208, + 17, 32, 0, 68, 15, 13, 79, 13, 0, 28, 79, 13, + 79, 13, 0, 64, 64, 49, 19, 0, 26, 100, 230, 214, + 199, 214, 214, 228, 0, 9, 18, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 19, 240, 18, 240, 19, 243, + 244, 228, 244, 229, 99, 85, 85, 69, 85, 69, 100, 84, + 99, 108, 152, 0, 8, 16, 48, 19, 0, 7, 87, 171, + 115, 85, 84, 101, 69, 85, 69, 85, 69, 85, 83, 101, + 213, 228, 228, 228, 243, 243, 240, 19, 240, 18, 240, 34, + 240, 34, 240, 34, 240, 34, 0, 9, 20, 230, 214, 215, + 198, 214, 228, 0, 27, 48, 104, 32, 0, 13, 55, 240, + 125, 240, 37, 117, 227, 196, 195, 243, 162, 117, 98, 147, + 88, 98, 130, 84, 51, 83, 98, 84, 98, 82, 98, 69, + 101, 34, 98, 69, 101, 35, 66, 69, 117, 50, 66, 69, + 117, 50, 66, 69, 117, 50, 66, 69, 117, 50, 66, 69, + 117, 50, 66, 69, 117, 50, 66, 69, 117, 50, 66, 69, + 117, 50, 82, 69, 101, 50, 82, 69, 101, 50, 82, 84, + 101, 49, 114, 84, 55, 34, 115, 88, 23, 146, 117, 68, + 179, 240, 243, 240, 20, 165, 151, 223, 1, 240, 59, 0, + 45, 48, 76, 33, 0, 18, 34, 240, 244, 240, 228, 240, + 213, 240, 214, 240, 198, 240, 183, 240, 184, 240, 168, 240, + 153, 240, 146, 38, 240, 130, 38, 240, 114, 55, 240, 98, + 70, 240, 98, 70, 240, 82, 102, 240, 66, 102, 240, 51, + 102, 240, 50, 134, 240, 47, 1, 240, 31, 2, 240, 18, + 166, 242, 166, 227, 166, 226, 198, 210, 198, 195, 199, 122, + 109, 74, 109, 0, 45, 112, 65, 30, 0, 15, 15, 5, + 175, 7, 198, 118, 182, 134, 166, 150, 150, 150, 150, 150, + 150, 150, 150, 150, 150, 149, 166, 134, 166, 117, 207, 1, + 239, 2, 214, 133, 182, 149, 166, 150, 150, 166, 134, 166, + 134, 166, 134, 166, 134, 166, 134, 166, 134, 166, 134, 150, + 150, 150, 150, 134, 111, 8, 127, 6, 0, 42, 48, 70, + 29, 0, 15, 104, 82, 204, 35, 166, 103, 149, 150, 133, + 181, 117, 212, 101, 243, 101, 243, 86, 243, 85, 240, 34, + 70, 240, 34, 70, 240, 134, 240, 134, 240, 134, 240, 134, + 240, 134, 240, 134, 240, 134, 240, 34, 85, 240, 34, 86, + 240, 18, 86, 240, 18, 101, 242, 133, 226, 134, 194, 166, + 163, 198, 99, 253, 240, 72, 0, 41, 32, 64, 33, 0, + 16, 79, 5, 223, 7, 246, 119, 214, 165, 198, 181, 182, + 182, 166, 197, 166, 198, 150, 213, 150, 213, 150, 214, 134, + 214, 134, 214, 134, 214, 134, 214, 134, 214, 134, 214, 134, + 214, 134, 214, 134, 213, 150, 213, 150, 198, 150, 197, 166, + 197, 166, 181, 182, 165, 198, 134, 159, 7, 191, 5, 0, + 47, 75, 29, 0, 14, 79, 8, 111, 8, 166, 133, 166, + 163, 166, 163, 166, 178, 166, 178, 166, 194, 150, 82, 82, + 150, 82, 82, 150, 82, 240, 22, 82, 240, 22, 67, 240, + 29, 240, 29, 240, 22, 52, 240, 22, 82, 240, 22, 82, + 98, 134, 82, 98, 134, 82, 98, 134, 210, 134, 194, 150, + 194, 150, 194, 150, 179, 150, 164, 150, 134, 95, 8, 111, + 8, 0, 40, 80, 63, 28, 0, 14, 15, 7, 111, 8, + 150, 118, 150, 148, 150, 163, 150, 178, 150, 178, 150, 178, + 150, 82, 66, 150, 82, 82, 134, 82, 246, 82, 246, 67, + 253, 253, 246, 52, 246, 67, 246, 82, 246, 82, 246, 82, + 246, 240, 118, 240, 118, 240, 118, 240, 118, 240, 118, 240, + 118, 240, 63, 223, 0, 40, 16, 71, 33, 0, 17, 119, + 98, 253, 35, 214, 104, 197, 166, 181, 197, 165, 228, 149, + 240, 19, 149, 240, 19, 134, 240, 19, 133, 240, 50, 118, + 240, 50, 118, 240, 198, 240, 198, 240, 198, 240, 198, 240, + 198, 240, 198, 143, 85, 143, 85, 230, 134, 214, 149, 214, + 149, 214, 165, 198, 181, 182, 197, 151, 215, 88, 252, 51, + 240, 55, 98, 0, 46, 32, 65, 35, 0, 17, 78, 62, + 78, 62, 134, 182, 198, 182, 198, 182, 198, 182, 198, 182, + 198, 182, 198, 182, 198, 182, 198, 182, 198, 182, 198, 182, + 207, 8, 207, 8, 198, 182, 198, 182, 198, 182, 198, 182, + 198, 182, 198, 182, 198, 182, 198, 182, 198, 182, 198, 182, + 198, 182, 198, 182, 142, 62, 78, 62, 0, 48, 80, 36, + 18, 0, 9, 14, 78, 134, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 142, 78, 0, 25, 32, 60, + 24, 0, 12, 95, 159, 246, 240, 54, 240, 54, 240, 54, + 240, 54, 240, 54, 240, 54, 240, 54, 240, 54, 240, 54, + 240, 54, 240, 54, 240, 54, 240, 54, 240, 54, 240, 54, + 240, 54, 240, 54, 240, 54, 132, 102, 118, 86, 118, 86, + 118, 86, 117, 86, 147, 86, 188, 231, 0, 34, 80, 79, + 34, 0, 17, 14, 105, 94, 105, 150, 196, 198, 194, 230, + 178, 246, 162, 240, 22, 146, 240, 38, 130, 240, 54, 114, + 240, 70, 98, 240, 86, 82, 240, 102, 67, 240, 102, 38, + 240, 86, 23, 240, 95, 240, 72, 22, 240, 71, 54, 240, + 54, 71, 240, 38, 86, 240, 38, 102, 240, 22, 103, 246, + 118, 246, 134, 230, 135, 214, 150, 214, 166, 198, 167, 126, + 61, 78, 61, 0, 47, 32, 63, 26, 0, 13, 15, 191, + 246, 240, 86, 240, 86, 240, 86, 240, 86, 240, 86, 240, + 86, 240, 86, 240, 86, 240, 86, 240, 86, 240, 86, 240, + 86, 240, 86, 240, 86, 240, 86, 162, 134, 162, 134, 162, + 134, 162, 134, 147, 134, 146, 150, 146, 150, 131, 150, 116, + 150, 86, 95, 6, 95, 6, 0, 36, 48, 110, 41, 0, + 20, 74, 240, 42, 75, 251, 135, 247, 199, 241, 21, 194, + 21, 210, 21, 194, 21, 210, 21, 194, 22, 193, 37, 194, + 37, 178, 37, 194, 37, 177, 53, 194, 53, 146, 53, 194, + 53, 146, 53, 194, 53, 145, 69, 194, 69, 114, 69, 194, + 69, 114, 69, 194, 70, 82, 85, 194, 85, 82, 85, 194, + 85, 81, 101, 194, 101, 50, 101, 194, 101, 50, 101, 194, + 102, 33, 117, 194, 117, 18, 117, 194, 117, 18, 117, 194, + 134, 133, 194, 134, 133, 194, 133, 149, 194, 148, 149, 194, + 148, 149, 138, 83, 109, 74, 98, 109, 0, 56, 112, 81, + 34, 0, 17, 10, 170, 75, 154, 136, 194, 200, 194, 201, + 178, 194, 23, 162, 194, 38, 162, 194, 39, 146, 194, 55, + 130, 194, 71, 114, 194, 86, 114, 194, 87, 98, 194, 103, + 82, 194, 119, 66, 194, 134, 66, 194, 135, 50, 194, 151, + 34, 194, 167, 18, 194, 182, 18, 194, 185, 194, 200, 194, + 215, 194, 215, 194, 230, 194, 245, 194, 240, 20, 194, 240, + 20, 138, 211, 138, 226, 0, 47, 96, 65, 31, 0, 16, + 104, 240, 93, 240, 22, 86, 213, 149, 181, 181, 165, 182, + 133, 213, 118, 214, 101, 245, 101, 245, 86, 246, 70, 246, + 70, 246, 70, 246, 70, 246, 70, 246, 70, 246, 70, 246, + 70, 246, 85, 245, 102, 229, 102, 214, 117, 213, 134, 182, + 149, 181, 181, 149, 214, 86, 240, 29, 240, 88, 0, 44, + 48, 62, 29, 0, 14, 79, 4, 175, 6, 198, 118, 166, + 134, 150, 149, 150, 150, 134, 150, 134, 150, 134, 150, 134, + 150, 134, 150, 134, 149, 150, 134, 150, 118, 175, 2, 207, + 230, 240, 134, 240, 134, 240, 134, 240, 134, 240, 134, 240, + 134, 240, 134, 240, 134, 240, 134, 240, 134, 240, 78, 254, + 0, 41, 96, 88, 31, 0, 16, 104, 240, 93, 240, 37, + 86, 214, 133, 182, 165, 165, 197, 133, 213, 133, 214, 102, + 229, 101, 245, 86, 246, 70, 246, 70, 246, 70, 246, 70, + 246, 70, 246, 70, 246, 70, 246, 70, 246, 85, 245, 101, + 245, 102, 214, 117, 84, 69, 149, 54, 52, 165, 35, 50, + 20, 197, 18, 85, 232, 68, 240, 45, 97, 235, 81, 240, + 100, 66, 240, 121, 240, 121, 240, 121, 240, 120, 240, 151, + 240, 150, 240, 180, 0, 12, 64, 75, 34, 0, 17, 15, + 3, 240, 31, 6, 240, 38, 118, 246, 134, 230, 149, 230, + 150, 214, 150, 214, 150, 214, 150, 214, 150, 214, 149, 230, + 134, 230, 117, 240, 31, 2, 240, 47, 1, 240, 54, 86, + 240, 38, 102, 240, 22, 118, 246, 118, 246, 118, 246, 118, + 246, 118, 246, 119, 230, 119, 230, 119, 66, 134, 134, 66, + 134, 135, 35, 78, 90, 94, 134, 0, 47, 64, 59, 24, + 0, 12, 102, 82, 154, 35, 117, 87, 101, 133, 100, 164, + 85, 164, 85, 179, 85, 179, 86, 163, 86, 163, 89, 240, + 28, 207, 175, 175, 175, 204, 240, 25, 240, 39, 66, 198, + 66, 213, 67, 197, 67, 197, 67, 196, 84, 180, 85, 148, + 104, 85, 99, 43, 130, 87, 0, 34, 32, 74, 30, 0, + 15, 31, 9, 111, 9, 100, 86, 84, 99, 102, 99, 83, + 118, 115, 67, 118, 115, 66, 134, 130, 66, 134, 130, 66, + 134, 130, 66, 134, 130, 66, 134, 130, 230, 240, 150, 240, + 150, 240, 150, 240, 150, 240, 150, 240, 150, 240, 150, 240, + 150, 240, 150, 240, 150, 240, 150, 240, 150, 240, 150, 240, + 150, 240, 150, 240, 63, 3, 207, 3, 0, 42, 32, 66, + 34, 0, 17, 14, 106, 78, 106, 134, 226, 198, 226, 198, + 226, 198, 226, 198, 226, 198, 226, 198, 226, 198, 226, 198, + 226, 198, 226, 198, 226, 198, 226, 198, 226, 198, 226, 198, + 226, 198, 226, 198, 226, 198, 226, 198, 226, 198, 226, 213, + 211, 214, 194, 245, 179, 246, 147, 240, 53, 100, 240, 93, + 240, 151, 0, 48, 80, 77, 34, 0, 17, 13, 137, 77, + 137, 134, 226, 198, 211, 198, 210, 230, 194, 230, 179, 231, + 162, 240, 22, 162, 240, 22, 147, 240, 38, 130, 240, 54, + 115, 240, 55, 98, 240, 86, 98, 240, 86, 83, 240, 87, + 66, 240, 118, 51, 240, 118, 50, 240, 150, 34, 240, 150, + 19, 240, 153, 240, 184, 240, 184, 240, 198, 240, 214, 240, + 213, 240, 244, 240, 244, 240, 240, 18, 0, 49, 110, 45, + 0, 22, 77, 44, 89, 77, 44, 89, 118, 150, 194, 182, + 134, 194, 182, 150, 162, 198, 150, 162, 214, 134, 162, 214, + 150, 130, 230, 135, 130, 246, 119, 130, 246, 120, 98, 240, + 22, 98, 22, 98, 240, 38, 82, 23, 82, 240, 38, 67, + 38, 66, 240, 54, 66, 54, 66, 240, 70, 50, 55, 50, + 240, 70, 35, 70, 34, 240, 86, 34, 86, 34, 240, 102, + 18, 87, 18, 240, 105, 104, 240, 120, 120, 240, 135, 120, + 240, 135, 134, 240, 150, 150, 240, 165, 150, 240, 164, 180, + 240, 180, 180, 240, 195, 195, 240, 194, 210, 0, 63, 112, + 81, 34, 0, 17, 29, 59, 125, 59, 182, 147, 240, 23, + 130, 240, 54, 115, 240, 55, 83, 240, 87, 66, 240, 118, + 51, 240, 119, 34, 240, 150, 19, 240, 153, 240, 183, 240, + 214, 240, 215, 240, 214, 240, 215, 240, 185, 240, 162, 22, + 240, 147, 23, 240, 115, 54, 240, 114, 86, 240, 83, 87, + 240, 66, 118, 240, 51, 119, 240, 19, 150, 240, 18, 182, + 227, 183, 139, 94, 75, 94, 0, 47, 32, 72, 34, 0, + 17, 13, 137, 77, 137, 134, 227, 183, 195, 214, 194, 231, + 163, 247, 146, 240, 23, 131, 240, 39, 114, 240, 55, 99, + 240, 71, 67, 240, 102, 66, 240, 119, 35, 240, 135, 18, + 240, 154, 240, 168, 240, 184, 240, 198, 240, 214, 240, 214, + 240, 214, 240, 214, 240, 214, 240, 214, 240, 214, 240, 214, + 240, 214, 240, 158, 240, 94, 0, 48, 32, 66, 25, 0, + 12, 95, 5, 95, 5, 86, 118, 100, 135, 99, 150, 115, + 135, 114, 150, 130, 135, 130, 134, 146, 118, 240, 55, 240, + 54, 240, 55, 240, 54, 240, 55, 240, 54, 240, 55, 240, + 54, 114, 150, 130, 135, 130, 134, 146, 119, 146, 118, 147, + 103, 147, 102, 148, 86, 149, 86, 119, 79, 6, 79, 6, + 0, 34, 112, 46, 11, 183, 71, 67, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 135, 71, + 64, 34, 21, 0, 11, 2, 130, 130, 130, 130, 130, 130, + 130, 145, 145, 161, 145, 146, 130, 150, 70, 87, 55, 71, + 55, 71, 55, 86, 70, 85, 85, 115, 115, 0, 69, 46, + 11, 183, 71, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 71, 71, 64, 14, 14, 0, + 7, 65, 196, 150, 120, 84, 36, 65, 114, 0, 60, 14, + 11, 0, 5, 99, 117, 87, 71, 71, 85, 115, 0, 46, + 16, 21, 11, 0, 6, 2, 130, 130, 130, 145, 161, 146, + 150, 87, 71, 71, 86, 85, 115, 0, 36, 64, 43, 24, + 0, 42, 72, 237, 180, 70, 150, 69, 150, 85, 148, 101, + 162, 117, 240, 69, 234, 181, 53, 149, 85, 133, 101, 117, + 117, 117, 117, 117, 117, 117, 102, 133, 66, 23, 105, 39, + 134, 70, 0, 33, 64, 66, 25, 0, 12, 72, 240, 40, + 240, 85, 240, 85, 240, 85, 240, 85, 240, 85, 240, 85, + 240, 85, 240, 85, 240, 85, 38, 197, 25, 167, 69, 150, + 100, 149, 132, 133, 132, 133, 133, 117, 133, 117, 133, 117, + 133, 117, 133, 117, 133, 117, 133, 117, 132, 133, 132, 134, + 100, 148, 18, 68, 163, 41, 179, 69, 0, 35, 80, 36, + 20, 0, 35, 103, 187, 132, 84, 100, 85, 85, 85, 84, + 101, 69, 129, 101, 245, 245, 245, 245, 245, 240, 20, 146, + 85, 130, 101, 98, 133, 67, 154, 198, 0, 28, 64, 64, + 26, 0, 14, 56, 240, 56, 240, 101, 240, 101, 240, 101, + 240, 101, 240, 101, 240, 101, 240, 101, 240, 101, 214, 37, + 185, 21, 164, 87, 148, 118, 133, 133, 132, 149, 117, 149, + 117, 149, 117, 149, 117, 149, 117, 149, 117, 149, 117, 149, + 132, 149, 133, 133, 148, 118, 149, 90, 137, 24, 165, 56, + 0, 36, 32, 41, 22, 0, 39, 39, 219, 164, 69, 132, + 101, 100, 117, 100, 133, 69, 133, 69, 133, 79, 3, 79, + 3, 69, 240, 37, 240, 37, 240, 52, 178, 85, 147, 100, + 131, 133, 83, 171, 215, 0, 31, 48, 42, 19, 0, 8, + 21, 200, 149, 36, 133, 21, 117, 37, 117, 37, 117, 65, + 149, 229, 229, 229, 202, 154, 181, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 187, 139, 0, + 27, 16, 58, 23, 0, 40, 118, 68, 122, 21, 100, 68, + 35, 84, 100, 19, 84, 101, 132, 101, 132, 101, 132, 101, + 132, 100, 164, 69, 172, 177, 38, 210, 240, 98, 240, 99, + 240, 93, 191, 143, 1, 127, 1, 99, 165, 68, 180, 67, + 196, 68, 180, 83, 164, 101, 117, 126, 201, 0, 9, 96, + 66, 27, 0, 13, 72, 240, 72, 240, 117, 240, 117, 240, + 117, 240, 117, 240, 117, 240, 117, 240, 117, 240, 117, 240, + 117, 69, 213, 41, 181, 18, 53, 183, 85, 166, 101, 166, + 101, 165, 117, 165, 117, 165, 117, 165, 117, 165, 117, 165, + 117, 165, 117, 165, 117, 165, 117, 165, 117, 165, 117, 123, + 27, 75, 27, 0, 37, 80, 35, 14, 0, 7, 52, 149, + 150, 119, 134, 133, 163, 0, 6, 40, 104, 149, 149, 149, + 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, + 106, 74, 0, 19, 96, 48, 18, 0, 10, 4, 214, 199, + 168, 168, 182, 212, 0, 8, 25, 153, 213, 213, 213, 213, + 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, + 213, 213, 83, 85, 69, 69, 69, 69, 69, 53, 84, 53, + 122, 166, 0, 7, 112, 63, 25, 0, 12, 72, 240, 40, + 240, 85, 240, 85, 240, 85, 240, 85, 240, 85, 240, 85, + 240, 85, 240, 85, 240, 85, 72, 133, 72, 133, 99, 181, + 83, 197, 67, 213, 51, 229, 35, 245, 20, 250, 251, 230, + 21, 213, 37, 213, 53, 197, 69, 181, 69, 181, 85, 165, + 101, 107, 25, 75, 25, 0, 34, 112, 36, 15, 0, 7, + 72, 120, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 123, 75, 0, 21, 16, 67, 38, 0, 66, + 72, 69, 101, 168, 41, 56, 136, 18, 53, 34, 52, 181, + 17, 87, 69, 166, 102, 85, 166, 101, 101, 165, 117, 101, + 165, 117, 101, 165, 117, 101, 165, 117, 101, 165, 117, 101, + 165, 117, 101, 165, 117, 101, 165, 117, 101, 165, 117, 101, + 165, 117, 101, 165, 117, 101, 123, 27, 26, 75, 27, 26, + 0, 52, 96, 47, 27, 0, 47, 40, 69, 168, 41, 136, + 18, 53, 181, 17, 85, 166, 101, 166, 101, 165, 117, 165, + 117, 165, 117, 165, 117, 165, 117, 165, 117, 165, 117, 165, + 117, 165, 117, 165, 117, 165, 117, 123, 27, 75, 27, 0, + 37, 80, 41, 22, 0, 39, 38, 234, 180, 68, 148, 100, + 116, 132, 100, 132, 85, 133, 69, 133, 69, 133, 69, 133, + 69, 133, 69, 133, 69, 133, 84, 132, 100, 132, 116, 100, + 133, 69, 170, 230, 0, 31, 64, 58, 25, 0, 43, 104, + 38, 152, 25, 122, 69, 150, 101, 133, 117, 133, 132, 133, + 133, 117, 133, 117, 133, 117, 133, 117, 133, 117, 133, 117, + 133, 117, 117, 133, 117, 134, 100, 151, 68, 174, 181, 37, + 213, 240, 85, 240, 85, 240, 85, 240, 85, 240, 85, 240, + 43, 235, 0, 11, 16, 61, 26, 0, 46, 38, 82, 185, + 51, 165, 66, 20, 149, 102, 133, 118, 133, 133, 117, 149, + 117, 149, 117, 149, 117, 149, 117, 149, 117, 149, 117, 149, + 133, 133, 133, 133, 149, 102, 165, 56, 185, 21, 213, 53, + 240, 101, 240, 101, 240, 101, 240, 101, 240, 101, 240, 101, + 240, 59, 251, 0, 10, 32, 33, 20, 0, 35, 8, 36, + 104, 22, 88, 17, 21, 118, 37, 118, 37, 117, 67, 133, + 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 203, 155, + 0, 28, 80, 36, 18, 0, 32, 9, 114, 84, 98, 130, + 83, 130, 83, 130, 84, 232, 186, 154, 154, 184, 228, 66, + 147, 66, 147, 67, 131, 68, 115, 69, 83, 92, 98, 53, + 0, 25, 96, 42, 18, 0, 14, 34, 240, 18, 240, 18, + 243, 243, 243, 228, 213, 173, 93, 133, 213, 213, 213, 213, + 213, 213, 213, 213, 213, 66, 117, 66, 117, 66, 117, 66, + 117, 66, 133, 34, 168, 181, 0, 25, 80, 45, 27, 0, + 47, 40, 72, 120, 72, 165, 117, 165, 117, 165, 117, 165, + 117, 165, 117, 165, 117, 165, 117, 165, 117, 165, 117, 165, + 117, 165, 117, 165, 117, 165, 102, 165, 102, 181, 74, 153, + 24, 167, 40, 0, 37, 80, 46, 24, 0, 42, 10, 55, + 74, 55, 117, 114, 165, 114, 165, 114, 181, 82, 197, 82, + 213, 51, 213, 50, 229, 50, 245, 18, 240, 21, 18, 240, + 24, 240, 38, 240, 54, 240, 68, 240, 84, 240, 84, 240, + 98, 0, 34, 80, 66, 32, 0, 56, 9, 25, 39, 73, + 25, 39, 101, 84, 130, 149, 84, 98, 165, 84, 98, 180, + 84, 98, 181, 69, 66, 197, 54, 66, 212, 54, 66, 213, + 34, 20, 34, 229, 18, 36, 34, 244, 18, 36, 34, 247, + 54, 240, 22, 70, 240, 37, 70, 240, 37, 84, 240, 52, + 100, 240, 67, 100, 240, 66, 130, 0, 45, 64, 46, 24, + 0, 42, 9, 56, 73, 56, 117, 98, 196, 82, 213, 51, + 229, 19, 240, 23, 240, 38, 240, 69, 240, 85, 240, 69, + 240, 55, 240, 19, 21, 242, 37, 226, 69, 195, 85, 163, + 116, 120, 57, 72, 57, 0, 33, 64, 65, 25, 0, 43, + 106, 56, 74, 56, 117, 130, 165, 114, 197, 98, 197, 83, + 213, 66, 229, 66, 229, 50, 240, 21, 34, 240, 21, 19, + 240, 39, 240, 55, 240, 54, 240, 85, 240, 85, 240, 99, + 240, 115, 240, 115, 240, 114, 240, 18, 67, 229, 50, 245, + 50, 245, 34, 240, 20, 35, 240, 39, 240, 68, 0, 11, + 96, 39, 20, 0, 35, 31, 95, 84, 85, 99, 86, 98, + 101, 114, 85, 130, 70, 130, 69, 229, 230, 229, 66, 133, + 82, 118, 82, 117, 98, 101, 99, 86, 99, 85, 85, 79, + 95, 0, 28, 16, 11, 25, 0, 62, 79, 6, 79, 6, + 0, 69, 32, 12, 46, 0, 115, 15, 15, 12, 79, 15, + 12, 0, 127, 25, 17, 240, 240, 99, 67, 101, 37, 85, + 37, 85, 37, 84, 52, 85, 37, 84, 52, 99, 67, 129, + 97, 0, 71, 16, 15, 18, 0, 9, 52, 82, 107, 108, + 83, 39, 113, 84, 0, 79, 80, +}; + +//***************************************************************************** +// +// The font definition for the 42 point Cm bold font. +// +//***************************************************************************** +const tFont g_sFontCm42b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 41, + + // + // The height of the font. + // + 44, + + // + // The baseline of the font. + // + 33, + + // + // The offset to each character in the font. + // + { + 0, 5, 41, 76, 186, 262, 377, 466, + 487, 534, 580, 625, 689, 711, 722, 736, + 827, 886, 923, 977, 1034, 1091, 1145, 1202, + 1263, 1318, 1374, 1397, 1428, 1464, 1481, 1530, + 1578, 1682, 1758, 1823, 1893, 1957, 2032, 2095, + 2166, 2231, 2267, 2327, 2406, 2469, 2579, 2660, + 2725, 2787, 2875, 2950, 3009, 3083, 3149, 3226, + 3336, 3417, 3489, 3555, 3601, 3635, 3681, 3695, + 3709, 3730, 3773, 3839, 3875, 3939, 3980, 4022, + 4080, 4146, 4181, 4229, 4292, 4328, 4395, 4442, + 4483, 4541, 4602, 4635, 4671, 4713, 4758, 4804, + 4870, 4916, 4981, 5020, 5031, 5043, 5068, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm42bData +}; diff --git a/grlib/fonts/fontcm42i.c b/grlib/fonts/fontcm42i.c new file mode 100644 index 0000000..2e95bb7 --- /dev/null +++ b/grlib/fonts/fontcm42i.c @@ -0,0 +1,577 @@ +//***************************************************************************** +// +// fontcm42i.c - Font definition for the 42pt Cm italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 42 point +// Bold: no +// Italic: yes +// Memory usage: 5844 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 42 point Cm italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm42iData[5643] = +{ + 5, 17, 0, 89, 32, 35, 14, 240, 99, 179, 164, 164, + 164, 163, 179, 164, 163, 179, 179, 178, 194, 179, 179, 178, + 194, 194, 193, 194, 194, 193, 209, 0, 6, 83, 164, 164, + 163, 0, 20, 80, 31, 17, 240, 240, 115, 67, 100, 52, + 100, 52, 100, 52, 145, 97, 129, 97, 145, 97, 145, 97, + 129, 97, 129, 97, 129, 97, 129, 97, 0, 60, 80, 113, + 33, 0, 10, 66, 113, 240, 129, 114, 240, 114, 114, 240, + 113, 114, 240, 114, 114, 240, 113, 114, 240, 114, 114, 240, + 114, 98, 240, 114, 114, 240, 114, 98, 240, 114, 114, 240, + 114, 98, 240, 114, 114, 240, 114, 113, 223, 12, 241, 114, + 240, 114, 114, 240, 113, 114, 240, 114, 114, 240, 114, 113, + 240, 114, 114, 240, 114, 113, 255, 12, 210, 98, 240, 114, + 114, 240, 114, 98, 240, 114, 114, 240, 114, 98, 240, 114, + 114, 240, 114, 113, 240, 114, 114, 240, 114, 113, 240, 114, + 114, 240, 114, 113, 240, 114, 114, 240, 114, 113, 240, 129, + 114, 0, 15, 16, 75, 28, 0, 9, 21, 240, 99, 50, + 240, 66, 97, 240, 51, 113, 240, 34, 129, 240, 19, 129, + 240, 18, 115, 243, 115, 243, 114, 240, 18, 240, 178, 240, + 163, 240, 163, 240, 162, 240, 122, 240, 99, 240, 163, 240, + 162, 240, 178, 240, 163, 240, 163, 240, 162, 240, 178, 240, + 178, 240, 87, 177, 129, 68, 146, 113, 82, 19, 98, 129, + 50, 73, 164, 117, 0, 39, 112, 110, 32, 132, 241, 162, + 50, 210, 146, 82, 163, 162, 84, 100, 162, 97, 39, 19, + 147, 97, 147, 162, 113, 146, 178, 113, 130, 179, 113, 114, + 194, 113, 114, 210, 113, 98, 226, 97, 98, 242, 97, 83, + 242, 81, 83, 240, 33, 65, 98, 240, 50, 33, 98, 240, + 98, 98, 113, 240, 98, 98, 18, 240, 50, 97, 65, 240, + 34, 98, 81, 243, 82, 97, 227, 98, 97, 226, 98, 113, + 210, 114, 113, 194, 115, 113, 178, 130, 113, 178, 146, 113, + 162, 162, 98, 146, 178, 97, 147, 178, 82, 146, 209, 81, + 146, 226, 34, 161, 240, 20, 0, 37, 48, 95, 31, 240, + 240, 180, 240, 162, 50, 240, 130, 82, 131, 162, 113, 131, + 162, 113, 145, 162, 99, 145, 162, 99, 129, 163, 98, 130, + 162, 240, 18, 178, 242, 194, 226, 210, 35, 116, 212, 49, + 83, 18, 195, 65, 66, 65, 194, 81, 50, 97, 164, 49, + 65, 113, 147, 20, 81, 113, 131, 180, 65, 131, 180, 65, + 131, 194, 81, 115, 240, 65, 131, 240, 65, 131, 240, 65, + 131, 240, 49, 147, 240, 34, 163, 242, 179, 226, 211, 194, + 240, 19, 115, 240, 88, 0, 44, 96, 18, 10, 240, 131, + 100, 100, 100, 145, 129, 145, 145, 129, 129, 129, 129, 0, + 36, 16, 86, 19, 225, 240, 33, 240, 18, 240, 18, 240, + 18, 240, 33, 240, 34, 240, 18, 240, 18, 240, 34, 240, + 18, 240, 34, 240, 18, 240, 34, 240, 18, 240, 34, 240, + 34, 240, 18, 240, 34, 240, 34, 240, 19, 240, 18, 240, + 34, 240, 34, 240, 19, 240, 19, 240, 18, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 49, 240, 50, 240, 34, 240, 49, 240, 50, 240, + 49, 240, 65, 224, 87, 19, 177, 240, 49, 240, 65, 240, + 49, 240, 50, 240, 49, 240, 49, 240, 50, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 19, 240, 18, 240, 34, 240, 34, 240, + 34, 240, 19, 240, 18, 240, 34, 240, 19, 240, 18, 240, + 34, 240, 18, 240, 34, 240, 18, 240, 34, 240, 18, 240, + 34, 240, 18, 240, 33, 240, 34, 240, 18, 240, 18, 240, + 18, 240, 18, 240, 18, 240, 32, 46, 20, 146, 240, 50, + 240, 50, 240, 49, 194, 66, 66, 99, 50, 51, 115, 33, + 35, 178, 17, 18, 228, 240, 20, 226, 17, 18, 179, 33, + 35, 115, 50, 51, 98, 66, 66, 193, 240, 65, 240, 50, + 240, 50, 0, 61, 80, 54, 29, 0, 30, 113, 240, 194, + 240, 194, 240, 194, 240, 193, 240, 194, 240, 194, 240, 194, + 240, 193, 240, 194, 240, 194, 240, 194, 255, 10, 242, 240, + 194, 240, 193, 240, 209, 240, 194, 240, 194, 240, 194, 240, + 193, 240, 194, 240, 194, 240, 194, 240, 193, 0, 35, 19, + 10, 0, 34, 19, 100, 100, 100, 145, 129, 145, 129, 145, + 129, 129, 129, 240, 240, 144, 9, 14, 0, 36, 106, 74, + 0, 33, 96, 11, 8, 0, 27, 19, 68, 68, 67, 0, + 11, 80, 87, 28, 240, 129, 240, 178, 240, 162, 240, 178, + 240, 162, 240, 177, 240, 178, 240, 177, 240, 178, 240, 162, + 240, 178, 240, 162, 240, 177, 240, 178, 240, 177, 240, 178, + 240, 162, 240, 178, 240, 162, 240, 177, 240, 178, 240, 177, + 240, 178, 240, 162, 240, 178, 240, 162, 240, 177, 240, 178, + 240, 177, 240, 178, 240, 162, 240, 178, 240, 162, 240, 177, + 240, 178, 240, 177, 240, 178, 240, 162, 240, 178, 240, 162, + 240, 177, 0, 6, 112, 60, 22, 0, 9, 69, 242, 66, + 210, 98, 178, 115, 146, 131, 146, 131, 131, 131, 115, 147, + 115, 147, 115, 132, 99, 148, 99, 147, 115, 147, 100, 147, + 99, 148, 99, 148, 99, 147, 100, 147, 100, 132, 99, 147, + 115, 147, 115, 131, 131, 131, 131, 115, 162, 114, 179, 82, + 210, 66, 245, 0, 32, 39, 18, 0, 8, 49, 240, 17, + 240, 18, 243, 228, 197, 179, 34, 243, 243, 242, 240, 18, + 243, 243, 243, 242, 243, 243, 243, 242, 243, 243, 243, 242, + 243, 243, 243, 228, 172, 0, 25, 64, 71, 23, 0, 9, + 117, 240, 18, 67, 210, 99, 178, 130, 177, 147, 145, 49, + 99, 130, 49, 99, 129, 65, 99, 129, 65, 99, 113, 65, + 100, 113, 65, 99, 129, 50, 99, 129, 34, 99, 163, 99, + 240, 67, 240, 67, 240, 67, 240, 51, 240, 51, 240, 67, + 240, 66, 240, 82, 177, 130, 178, 114, 178, 130, 163, 127, + 130, 57, 145, 117, 0, 32, 112, 65, 23, 0, 10, 5, + 240, 18, 66, 210, 114, 177, 147, 146, 147, 145, 163, 129, + 65, 99, 129, 65, 99, 129, 65, 98, 145, 49, 99, 163, + 115, 240, 67, 240, 67, 240, 67, 246, 240, 114, 240, 114, + 240, 99, 240, 83, 240, 83, 240, 83, 130, 148, 115, 147, + 130, 148, 129, 163, 145, 132, 178, 83, 230, 0, 33, 64, + 79, 21, 0, 9, 98, 240, 66, 240, 51, 240, 51, 240, + 50, 240, 51, 240, 51, 240, 50, 240, 51, 240, 50, 240, + 66, 240, 50, 240, 66, 240, 50, 240, 66, 240, 50, 240, + 66, 240, 50, 240, 65, 51, 210, 51, 194, 66, 194, 82, + 178, 83, 177, 99, 146, 114, 151, 50, 130, 86, 49, 65, + 135, 242, 240, 66, 240, 51, 240, 51, 240, 50, 240, 66, + 240, 51, 240, 65, 0, 9, 32, 61, 23, 0, 9, 66, + 145, 179, 83, 202, 217, 231, 241, 240, 113, 240, 113, 240, + 113, 240, 97, 240, 113, 37, 241, 17, 66, 226, 98, 194, + 114, 240, 99, 240, 83, 240, 83, 240, 83, 240, 83, 240, + 68, 131, 131, 132, 131, 131, 131, 145, 163, 146, 131, 177, + 115, 194, 82, 240, 21, 0, 33, 64, 62, 22, 0, 9, + 101, 242, 66, 195, 97, 179, 98, 163, 99, 147, 114, 162, + 240, 67, 240, 51, 240, 67, 240, 52, 37, 179, 33, 66, + 163, 17, 98, 133, 114, 132, 130, 132, 131, 115, 147, 100, + 147, 100, 131, 116, 131, 115, 147, 115, 146, 131, 131, 131, + 130, 162, 114, 179, 82, 210, 66, 245, 0, 32, 68, 23, + 0, 9, 17, 51, 113, 129, 22, 81, 137, 66, 132, 50, + 65, 131, 97, 35, 130, 115, 17, 130, 177, 146, 162, 145, + 177, 145, 178, 240, 97, 240, 98, 240, 98, 240, 82, 240, + 98, 240, 82, 240, 98, 240, 83, 240, 82, 240, 83, 240, + 83, 240, 67, 240, 83, 240, 83, 240, 68, 240, 67, 240, + 83, 240, 82, 0, 33, 80, 63, 23, 0, 10, 5, 240, + 18, 67, 210, 98, 194, 130, 162, 146, 162, 146, 147, 146, + 147, 130, 164, 114, 164, 98, 196, 66, 213, 33, 240, 37, + 240, 54, 240, 17, 37, 210, 69, 162, 117, 130, 148, 130, + 163, 114, 179, 98, 195, 98, 194, 114, 194, 114, 178, 130, + 163, 146, 131, 179, 82, 246, 0, 33, 32, 63, 22, 0, + 9, 69, 242, 66, 210, 98, 178, 115, 147, 115, 131, 131, + 131, 131, 115, 147, 115, 147, 100, 132, 100, 132, 99, 148, + 99, 147, 115, 132, 115, 132, 130, 117, 131, 81, 19, 162, + 65, 35, 181, 35, 240, 67, 240, 66, 240, 67, 240, 51, + 147, 114, 163, 98, 177, 114, 194, 67, 230, 0, 32, 16, + 17, 12, 0, 20, 19, 132, 132, 131, 0, 15, 99, 132, + 132, 131, 0, 17, 80, 25, 13, 0, 21, 115, 148, 148, + 147, 0, 17, 34, 164, 148, 147, 193, 193, 177, 193, 177, + 193, 177, 177, 0, 6, 48, 35, 14, 0, 18, 51, 164, + 164, 163, 0, 8, 49, 209, 194, 194, 193, 194, 194, 194, + 179, 179, 178, 179, 179, 179, 164, 163, 179, 179, 164, 164, + 164, 163, 240, 240, 144, 13, 31, 0, 62, 47, 10, 0, + 27, 95, 10, 0, 66, 80, 53, 19, 0, 25, 19, 244, + 244, 240, 18, 0, 11, 51, 226, 49, 209, 65, 193, 81, + 240, 34, 240, 18, 240, 18, 243, 243, 242, 243, 114, 99, + 115, 82, 147, 81, 177, 82, 177, 81, 178, 81, 177, 97, + 161, 113, 146, 129, 114, 146, 66, 213, 0, 6, 16, 51, + 18, 240, 165, 179, 50, 146, 97, 130, 129, 113, 145, 97, + 161, 97, 161, 81, 162, 81, 161, 83, 130, 83, 114, 98, + 114, 242, 227, 227, 227, 227, 241, 240, 18, 65, 177, 81, + 177, 65, 193, 49, 227, 0, 8, 66, 244, 228, 227, 0, + 26, 64, 103, 30, 0, 9, 23, 240, 98, 99, 240, 34, + 162, 241, 210, 194, 242, 162, 85, 113, 161, 82, 66, 81, + 145, 67, 97, 97, 113, 67, 114, 81, 113, 66, 147, 49, + 97, 67, 147, 49, 97, 51, 162, 65, 81, 67, 162, 65, + 81, 67, 147, 65, 81, 51, 163, 49, 81, 67, 162, 65, + 81, 67, 162, 65, 81, 67, 147, 65, 81, 67, 147, 49, + 97, 67, 131, 65, 97, 82, 131, 65, 97, 83, 100, 49, + 129, 83, 49, 35, 33, 145, 116, 68, 162, 240, 225, 240, + 242, 227, 195, 132, 240, 41, 0, 43, 16, 81, 30, 0, + 6, 18, 240, 210, 240, 195, 240, 195, 240, 180, 240, 180, + 240, 161, 19, 240, 161, 19, 240, 145, 35, 240, 130, 36, + 240, 113, 52, 240, 97, 83, 240, 97, 83, 240, 81, 99, + 240, 81, 99, 240, 65, 115, 240, 65, 115, 240, 49, 131, + 240, 34, 131, 240, 45, 240, 17, 163, 240, 17, 163, 241, + 179, 241, 179, 225, 196, 209, 196, 193, 227, 178, 227, 163, + 212, 120, 138, 0, 41, 96, 68, 30, 0, 8, 63, 1, + 240, 35, 131, 240, 19, 147, 242, 179, 211, 179, 211, 179, + 211, 179, 211, 179, 195, 195, 195, 179, 211, 179, 211, 163, + 211, 163, 227, 131, 240, 28, 240, 51, 147, 242, 179, 211, + 194, 211, 195, 195, 195, 194, 211, 179, 211, 179, 211, 179, + 195, 194, 195, 195, 195, 195, 179, 211, 147, 191, 2, 0, + 42, 112, 77, 30, 0, 9, 22, 97, 243, 82, 50, 210, + 146, 18, 210, 180, 179, 211, 163, 227, 162, 242, 162, 240, + 18, 147, 240, 18, 146, 240, 34, 131, 240, 33, 131, 240, + 195, 240, 195, 240, 195, 240, 179, 240, 195, 240, 195, 240, + 195, 240, 33, 147, 240, 33, 147, 240, 33, 147, 240, 17, + 178, 242, 179, 225, 195, 209, 227, 177, 240, 19, 145, 240, + 51, 82, 240, 118, 0, 43, 64, 66, 32, 0, 8, 111, + 2, 240, 52, 131, 240, 35, 179, 243, 194, 243, 195, 227, + 210, 226, 227, 195, 227, 195, 227, 195, 227, 195, 227, 179, + 243, 179, 243, 179, 228, 179, 228, 163, 243, 179, 243, 179, + 228, 179, 227, 179, 243, 179, 227, 195, 226, 211, 211, 195, + 211, 211, 210, 227, 194, 243, 163, 244, 131, 239, 1, 0, + 46, 75, 31, 0, 8, 79, 6, 227, 164, 227, 179, 211, + 210, 211, 210, 211, 209, 227, 209, 212, 209, 211, 225, 211, + 114, 81, 211, 113, 240, 68, 113, 240, 67, 114, 240, 67, + 99, 240, 75, 240, 68, 98, 240, 67, 114, 240, 67, 114, + 240, 67, 113, 240, 83, 113, 97, 195, 241, 195, 241, 195, + 225, 211, 225, 195, 225, 211, 210, 211, 195, 196, 164, 175, + 6, 0, 43, 112, 74, 31, 0, 8, 79, 6, 227, 163, + 243, 178, 227, 194, 227, 209, 227, 209, 227, 209, 211, 210, + 211, 209, 227, 113, 240, 83, 113, 240, 67, 129, 240, 67, + 113, 240, 83, 98, 240, 91, 240, 68, 98, 240, 67, 114, + 240, 67, 113, 240, 83, 113, 240, 83, 113, 240, 67, 240, + 211, 240, 211, 240, 211, 240, 195, 240, 211, 240, 211, 240, + 196, 240, 155, 0, 45, 16, 75, 30, 0, 9, 38, 81, + 243, 82, 65, 211, 145, 34, 194, 196, 178, 211, 178, 227, + 162, 240, 18, 147, 240, 18, 131, 240, 33, 147, 240, 33, + 131, 240, 49, 131, 240, 49, 115, 240, 195, 240, 195, 240, + 180, 240, 179, 240, 195, 240, 195, 187, 83, 244, 131, 243, + 147, 243, 147, 243, 163, 227, 163, 211, 195, 180, 211, 146, + 18, 228, 82, 50, 240, 23, 0, 43, 48, 91, 35, 0, + 9, 90, 74, 227, 179, 240, 51, 179, 240, 36, 179, 240, + 35, 179, 240, 51, 179, 240, 51, 179, 240, 51, 179, 240, + 35, 194, 240, 51, 179, 240, 51, 179, 240, 51, 179, 240, + 36, 179, 240, 35, 179, 240, 63, 2, 240, 51, 179, 240, + 36, 179, 240, 35, 179, 240, 51, 179, 240, 51, 179, 240, + 51, 179, 240, 35, 194, 240, 51, 179, 240, 51, 179, 240, + 51, 179, 240, 35, 195, 240, 35, 179, 240, 51, 179, 234, + 74, 0, 49, 64, 62, 21, 0, 6, 26, 227, 240, 51, + 240, 51, 240, 35, 240, 51, 240, 51, 240, 51, 240, 35, + 240, 51, 240, 51, 240, 51, 240, 35, 240, 51, 240, 51, + 240, 51, 240, 51, 240, 35, 240, 51, 240, 51, 240, 51, + 240, 35, 240, 51, 240, 51, 240, 51, 240, 35, 240, 51, + 240, 51, 234, 0, 30, 32, 65, 25, 0, 7, 90, 240, + 67, 240, 115, 240, 115, 240, 99, 240, 115, 240, 115, 240, + 115, 240, 99, 240, 115, 240, 115, 240, 115, 240, 99, 240, + 115, 240, 115, 240, 115, 240, 99, 240, 115, 240, 115, 240, + 115, 240, 99, 240, 115, 211, 99, 196, 99, 196, 83, 211, + 83, 225, 114, 240, 17, 67, 240, 53, 0, 36, 80, 94, + 36, 0, 9, 107, 120, 227, 196, 240, 35, 194, 240, 51, + 194, 240, 67, 178, 240, 83, 162, 240, 99, 146, 240, 99, + 145, 240, 131, 129, 240, 147, 113, 240, 163, 82, 240, 163, + 82, 240, 179, 68, 240, 163, 53, 240, 163, 33, 35, 240, + 148, 17, 52, 240, 131, 17, 83, 240, 132, 99, 240, 131, + 116, 240, 115, 131, 240, 99, 147, 240, 99, 148, 240, 83, + 163, 240, 83, 163, 240, 67, 195, 240, 51, 195, 240, 51, + 196, 240, 20, 196, 218, 121, 0, 50, 96, 65, 26, 0, + 7, 44, 240, 51, 240, 131, 240, 115, 240, 131, 240, 131, + 240, 131, 240, 115, 240, 131, 240, 131, 240, 131, 240, 115, + 240, 131, 240, 131, 240, 131, 240, 116, 240, 115, 240, 131, + 240, 131, 193, 163, 193, 147, 194, 147, 193, 163, 193, 163, + 177, 163, 178, 163, 178, 163, 147, 164, 132, 127, 4, 0, + 36, 80, 138, 41, 0, 11, 23, 240, 23, 228, 240, 20, + 240, 36, 244, 240, 37, 225, 19, 240, 37, 225, 19, 240, + 33, 34, 209, 34, 240, 49, 34, 209, 19, 240, 49, 34, + 193, 35, 240, 34, 35, 161, 51, 240, 33, 51, 161, 50, + 240, 49, 51, 145, 51, 240, 49, 51, 145, 51, 240, 34, + 51, 129, 67, 240, 33, 67, 129, 66, 240, 49, 67, 113, + 67, 240, 49, 67, 97, 83, 240, 34, 82, 97, 83, 240, + 33, 98, 81, 98, 240, 49, 98, 81, 83, 240, 49, 99, + 49, 99, 240, 34, 99, 49, 99, 240, 34, 99, 33, 115, + 240, 33, 115, 17, 130, 240, 49, 115, 17, 115, 240, 49, + 116, 131, 240, 34, 116, 131, 240, 33, 131, 146, 240, 35, + 130, 131, 232, 97, 90, 0, 57, 96, 109, 35, 0, 9, + 71, 168, 228, 179, 240, 36, 193, 240, 37, 193, 240, 33, + 35, 162, 240, 33, 35, 161, 240, 49, 35, 161, 240, 34, + 51, 145, 240, 33, 67, 130, 240, 33, 67, 129, 240, 49, + 83, 113, 240, 34, 83, 113, 240, 33, 99, 98, 240, 33, + 115, 81, 240, 49, 115, 81, 240, 49, 115, 81, 240, 34, + 131, 50, 240, 33, 147, 49, 240, 49, 147, 49, 240, 49, + 148, 33, 240, 34, 163, 33, 240, 33, 179, 17, 240, 49, + 181, 240, 49, 196, 240, 34, 196, 240, 33, 212, 240, 33, + 226, 240, 35, 210, 232, 178, 0, 49, 112, 83, 30, 0, + 9, 38, 240, 99, 83, 240, 35, 146, 242, 194, 210, 211, + 178, 242, 162, 240, 18, 147, 240, 19, 115, 240, 35, 115, + 240, 35, 99, 240, 51, 99, 240, 51, 83, 240, 67, 83, + 240, 52, 83, 240, 51, 84, 240, 51, 83, 240, 67, 83, + 240, 51, 99, 240, 51, 99, 240, 35, 115, 240, 35, 115, + 240, 19, 146, 243, 163, 226, 179, 210, 211, 178, 242, 147, + 240, 35, 83, 240, 102, 0, 43, 64, 65, 30, 0, 8, + 47, 1, 240, 36, 131, 243, 163, 227, 178, 227, 179, 211, + 179, 211, 179, 195, 195, 195, 195, 195, 179, 211, 179, 195, + 179, 211, 178, 227, 162, 243, 131, 253, 240, 35, 240, 195, + 240, 195, 240, 180, 240, 179, 240, 195, 240, 195, 240, 195, + 240, 179, 240, 195, 240, 195, 240, 180, 240, 138, 0, 43, + 96, 113, 30, 0, 9, 23, 240, 99, 83, 240, 35, 131, + 242, 179, 210, 211, 178, 227, 163, 242, 147, 240, 19, 130, + 240, 35, 115, 240, 35, 99, 240, 51, 99, 240, 51, 84, + 240, 51, 83, 240, 67, 83, 240, 52, 68, 240, 51, 84, + 240, 51, 83, 240, 52, 83, 240, 51, 99, 240, 51, 99, + 240, 35, 115, 240, 19, 131, 240, 18, 162, 100, 83, 163, + 65, 50, 50, 210, 49, 81, 34, 242, 33, 81, 18, 240, + 34, 17, 67, 240, 102, 17, 113, 240, 82, 113, 240, 82, + 113, 240, 82, 97, 240, 99, 51, 240, 104, 240, 120, 240, + 119, 240, 148, 0, 12, 112, 71, 30, 0, 8, 47, 240, + 67, 115, 240, 35, 147, 227, 178, 227, 179, 211, 179, 211, + 179, 195, 195, 195, 180, 195, 179, 211, 178, 211, 178, 227, + 162, 243, 130, 240, 43, 240, 51, 115, 240, 35, 131, 240, + 19, 147, 243, 147, 243, 147, 227, 163, 227, 163, 227, 148, + 227, 148, 211, 164, 211, 164, 65, 131, 164, 50, 116, 164, + 34, 90, 149, 0, 42, 66, 27, 0, 8, 37, 81, 226, + 82, 34, 195, 116, 195, 147, 194, 163, 179, 178, 178, 193, + 179, 193, 179, 193, 179, 178, 180, 240, 133, 240, 135, 240, + 90, 240, 74, 240, 87, 240, 133, 240, 132, 240, 147, 161, + 211, 161, 211, 161, 211, 146, 210, 162, 195, 162, 194, 179, + 162, 178, 18, 130, 194, 35, 82, 209, 86, 0, 39, 73, + 30, 0, 7, 127, 8, 115, 100, 99, 114, 131, 130, 114, + 131, 145, 113, 147, 145, 98, 132, 145, 97, 147, 146, 97, + 147, 145, 98, 147, 145, 240, 35, 240, 179, 240, 195, 240, + 195, 240, 195, 240, 179, 240, 195, 240, 195, 240, 195, 240, + 179, 240, 195, 240, 195, 240, 195, 240, 180, 240, 179, 240, + 195, 240, 195, 240, 195, 240, 180, 240, 109, 0, 43, 32, + 68, 30, 0, 7, 91, 104, 147, 195, 180, 209, 195, 225, + 195, 209, 211, 209, 196, 209, 195, 225, 195, 210, 195, 209, + 196, 209, 195, 225, 195, 210, 195, 209, 196, 209, 195, 225, + 195, 210, 195, 209, 196, 209, 195, 225, 195, 209, 211, 209, + 211, 194, 211, 193, 242, 177, 240, 19, 145, 240, 50, 129, + 240, 82, 82, 240, 118, 0, 43, 96, 77, 30, 0, 7, + 73, 167, 100, 228, 147, 241, 179, 226, 179, 225, 195, 209, + 211, 194, 211, 193, 227, 178, 227, 177, 243, 161, 240, 20, + 130, 240, 35, 129, 240, 51, 114, 240, 51, 113, 240, 67, + 97, 240, 83, 97, 240, 83, 81, 240, 99, 66, 240, 99, + 65, 240, 115, 49, 240, 132, 33, 240, 132, 17, 240, 165, + 240, 164, 240, 179, 240, 195, 240, 194, 240, 210, 0, 44, + 16, 119, 40, 0, 10, 9, 89, 103, 100, 164, 179, 131, + 179, 194, 147, 179, 193, 163, 179, 178, 163, 179, 177, 179, + 164, 162, 180, 148, 161, 196, 129, 19, 145, 212, 129, 20, + 129, 227, 113, 36, 113, 243, 113, 51, 113, 243, 97, 67, + 97, 240, 19, 97, 67, 97, 240, 19, 81, 83, 81, 240, + 35, 81, 83, 66, 240, 35, 65, 99, 65, 240, 51, 50, + 99, 50, 240, 51, 49, 115, 49, 240, 67, 34, 115, 34, + 240, 67, 33, 131, 33, 240, 83, 17, 147, 17, 240, 99, + 17, 147, 17, 240, 100, 164, 240, 116, 164, 240, 115, 179, + 240, 131, 179, 240, 130, 194, 240, 146, 194, 0, 57, 80, + 88, 35, 0, 9, 90, 104, 229, 148, 240, 51, 177, 240, + 84, 145, 240, 100, 130, 240, 115, 114, 240, 132, 97, 240, + 163, 81, 240, 179, 65, 240, 196, 33, 240, 227, 18, 240, + 229, 240, 244, 240, 240, 35, 240, 240, 35, 240, 240, 21, + 240, 226, 19, 240, 225, 35, 240, 209, 52, 240, 177, 83, + 240, 161, 100, 240, 130, 100, 240, 114, 131, 240, 113, 148, + 240, 81, 179, 240, 65, 195, 240, 50, 196, 244, 196, 200, + 153, 0, 49, 32, 72, 31, 0, 7, 106, 167, 116, 228, + 163, 226, 195, 225, 212, 193, 243, 178, 243, 162, 240, 20, + 145, 240, 51, 129, 240, 67, 114, 240, 68, 82, 240, 84, + 81, 240, 115, 65, 240, 132, 33, 240, 148, 18, 240, 165, + 240, 180, 240, 195, 240, 211, 240, 211, 240, 210, 240, 211, + 240, 211, 240, 211, 240, 211, 240, 195, 240, 211, 240, 211, + 240, 154, 0, 45, 66, 29, 0, 8, 47, 2, 196, 148, + 179, 179, 194, 179, 210, 163, 210, 164, 210, 148, 225, 163, + 241, 147, 240, 164, 240, 148, 240, 163, 240, 163, 240, 163, + 240, 164, 240, 148, 240, 163, 240, 163, 240, 163, 145, 244, + 145, 228, 161, 227, 161, 227, 177, 211, 178, 196, 178, 180, + 178, 195, 179, 179, 165, 175, 3, 0, 41, 32, 85, 19, + 165, 225, 240, 34, 240, 34, 240, 33, 240, 49, 240, 34, + 240, 34, 240, 33, 240, 49, 240, 34, 240, 34, 240, 33, + 240, 49, 240, 34, 240, 34, 240, 33, 240, 49, 240, 34, + 240, 34, 240, 33, 240, 49, 240, 34, 240, 34, 240, 33, + 240, 49, 240, 34, 240, 34, 240, 34, 240, 33, 240, 34, + 240, 34, 240, 34, 240, 33, 240, 34, 240, 34, 240, 34, + 240, 33, 240, 34, 240, 34, 240, 37, 240, 240, 48, 31, + 18, 240, 240, 177, 113, 129, 113, 129, 113, 129, 113, 145, + 97, 145, 113, 145, 97, 145, 113, 148, 68, 100, 68, 100, + 68, 114, 98, 0, 63, 112, 85, 20, 166, 240, 49, 240, + 50, 240, 50, 240, 49, 240, 65, 240, 50, 240, 50, 240, + 49, 240, 65, 240, 50, 240, 50, 240, 49, 240, 65, 240, + 50, 240, 50, 240, 49, 240, 65, 240, 50, 240, 50, 240, + 49, 240, 65, 240, 50, 240, 50, 240, 49, 240, 65, 240, + 65, 240, 50, 240, 49, 240, 65, 240, 65, 240, 50, 240, + 49, 240, 65, 240, 65, 240, 50, 240, 49, 240, 65, 240, + 65, 240, 50, 229, 240, 240, 80, 19, 14, 240, 240, 65, + 194, 177, 18, 145, 50, 113, 81, 97, 98, 65, 129, 0, + 58, 32, 10, 8, 240, 163, 68, 68, 67, 0, 35, 80, + 18, 10, 240, 161, 129, 129, 129, 129, 145, 129, 145, 148, + 100, 100, 114, 0, 35, 112, 49, 21, 0, 35, 4, 243, + 49, 19, 147, 83, 147, 99, 146, 115, 131, 115, 116, 114, + 131, 130, 131, 115, 116, 115, 115, 130, 131, 130, 131, 115, + 49, 67, 115, 49, 67, 99, 65, 82, 84, 49, 114, 50, + 34, 18, 132, 83, 0, 29, 80, 56, 18, 240, 240, 134, + 243, 242, 240, 18, 240, 18, 243, 243, 242, 243, 243, 243, + 243, 20, 147, 18, 34, 132, 82, 116, 83, 99, 99, 83, + 115, 83, 115, 83, 115, 83, 100, 68, 100, 67, 115, 83, + 115, 83, 99, 99, 99, 99, 83, 130, 82, 162, 50, 196, + 0, 26, 16, 38, 19, 0, 31, 117, 195, 65, 162, 113, + 130, 114, 115, 99, 99, 114, 100, 243, 240, 19, 244, 243, + 240, 19, 240, 19, 240, 19, 177, 82, 161, 99, 114, 131, + 67, 181, 0, 27, 48, 71, 22, 0, 7, 21, 240, 67, + 240, 67, 240, 67, 240, 66, 240, 82, 240, 82, 240, 67, + 240, 66, 240, 82, 240, 82, 212, 35, 179, 49, 18, 179, + 83, 163, 99, 162, 115, 147, 114, 148, 114, 147, 130, 147, + 115, 132, 114, 147, 130, 147, 130, 147, 115, 49, 83, 115, + 49, 83, 99, 65, 98, 84, 49, 130, 50, 34, 18, 148, + 83, 0, 31, 16, 35, 17, 0, 28, 69, 163, 50, 130, + 97, 114, 113, 99, 113, 83, 113, 99, 82, 120, 132, 211, + 227, 227, 227, 227, 145, 82, 129, 99, 97, 130, 66, 165, + 0, 24, 64, 85, 23, 0, 7, 68, 240, 50, 34, 240, + 18, 35, 240, 18, 35, 243, 240, 82, 240, 98, 240, 83, + 240, 83, 240, 83, 240, 82, 240, 42, 240, 19, 240, 83, + 240, 83, 240, 82, 240, 98, 240, 98, 240, 83, 240, 83, + 240, 82, 240, 98, 240, 98, 240, 83, 240, 83, 240, 82, + 240, 98, 240, 98, 240, 83, 240, 83, 240, 82, 240, 98, + 240, 83, 240, 18, 34, 240, 19, 34, 240, 18, 34, 240, + 52, 0, 10, 112, 58, 21, 0, 35, 36, 243, 49, 18, + 163, 83, 147, 99, 131, 115, 131, 115, 116, 114, 131, 130, + 131, 115, 116, 115, 115, 130, 131, 130, 131, 115, 131, 115, + 131, 99, 162, 84, 178, 53, 196, 35, 240, 50, 240, 51, + 240, 51, 240, 50, 147, 99, 147, 83, 162, 83, 199, 0, + 9, 64, 71, 23, 0, 6, 22, 240, 83, 240, 82, 240, + 98, 240, 83, 240, 83, 240, 82, 240, 98, 240, 83, 240, + 83, 240, 83, 240, 82, 53, 195, 18, 66, 181, 83, 164, + 99, 163, 115, 148, 115, 147, 131, 147, 116, 146, 131, 147, + 131, 147, 116, 147, 115, 162, 131, 50, 67, 116, 49, 83, + 115, 50, 83, 115, 49, 98, 131, 33, 114, 148, 0, 32, + 80, 40, 15, 0, 8, 66, 196, 179, 0, 12, 52, 161, + 35, 129, 51, 113, 67, 113, 67, 98, 51, 195, 180, 179, + 195, 180, 179, 195, 50, 100, 49, 115, 65, 115, 49, 131, + 33, 164, 0, 21, 80, 65, 22, 0, 12, 114, 240, 68, + 240, 51, 0, 18, 52, 240, 18, 50, 226, 67, 194, 83, + 193, 99, 178, 84, 177, 100, 240, 51, 240, 67, 240, 52, + 240, 51, 240, 67, 240, 52, 240, 51, 240, 67, 240, 67, + 240, 52, 240, 51, 240, 67, 240, 52, 240, 51, 240, 67, + 194, 67, 195, 51, 210, 51, 245, 0, 10, 32, 72, 20, + 240, 240, 213, 240, 50, 240, 50, 240, 35, 240, 35, 240, + 34, 240, 50, 240, 35, 240, 35, 240, 34, 240, 50, 240, + 35, 99, 131, 66, 34, 114, 65, 51, 114, 49, 66, 115, + 49, 211, 33, 229, 244, 243, 35, 195, 51, 178, 83, 162, + 83, 49, 83, 83, 49, 83, 83, 49, 82, 98, 65, 82, + 98, 49, 98, 114, 33, 98, 131, 0, 28, 48, 41, 13, + 240, 230, 163, 163, 162, 178, 163, 163, 162, 163, 163, 163, + 162, 163, 163, 163, 162, 163, 163, 163, 147, 163, 163, 163, + 49, 83, 65, 83, 50, 83, 49, 99, 49, 114, 33, 148, + 0, 18, 96, 75, 35, 0, 57, 20, 84, 101, 162, 34, + 34, 50, 50, 66, 145, 50, 17, 98, 18, 83, 114, 51, + 116, 99, 113, 67, 115, 115, 113, 51, 131, 115, 179, 115, + 131, 178, 131, 116, 178, 130, 131, 179, 130, 131, 179, 115, + 116, 178, 131, 115, 179, 130, 131, 50, 99, 115, 116, 49, + 115, 115, 115, 50, 114, 131, 115, 49, 115, 130, 131, 33, + 145, 146, 148, 0, 49, 16, 56, 25, 0, 41, 3, 85, + 177, 34, 34, 66, 145, 50, 18, 83, 129, 52, 99, 114, + 51, 115, 113, 67, 115, 113, 51, 131, 179, 116, 178, 131, + 194, 131, 179, 116, 179, 115, 194, 131, 50, 99, 116, 49, + 115, 115, 50, 115, 115, 49, 130, 131, 33, 146, 148, 0, + 35, 48, 41, 21, 0, 35, 21, 227, 51, 178, 99, 131, + 130, 131, 131, 99, 147, 84, 147, 83, 163, 83, 148, 68, + 148, 67, 163, 83, 163, 83, 147, 99, 146, 130, 131, 131, + 98, 179, 51, 229, 0, 30, 48, 64, 24, 0, 39, 83, + 84, 178, 18, 34, 50, 161, 52, 82, 129, 67, 99, 113, + 51, 115, 113, 51, 115, 178, 131, 178, 131, 163, 116, 163, + 115, 178, 131, 178, 116, 163, 115, 179, 114, 195, 99, 195, + 83, 195, 17, 51, 211, 36, 242, 240, 114, 240, 99, 240, + 99, 240, 98, 240, 114, 240, 99, 240, 72, 0, 11, 59, + 20, 0, 33, 52, 65, 147, 49, 34, 131, 83, 131, 99, + 130, 115, 115, 115, 100, 114, 115, 130, 115, 115, 100, 115, + 99, 130, 115, 130, 115, 115, 115, 115, 115, 99, 146, 84, + 162, 53, 180, 35, 240, 34, 240, 50, 240, 35, 240, 35, + 240, 34, 240, 50, 240, 35, 233, 0, 8, 48, 47, 20, + 0, 32, 100, 69, 98, 34, 18, 66, 81, 52, 67, 66, + 51, 82, 81, 67, 193, 51, 240, 35, 240, 34, 240, 50, + 240, 35, 240, 35, 240, 34, 240, 50, 240, 35, 240, 35, + 240, 34, 240, 50, 240, 50, 0, 29, 64, 37, 19, 0, + 31, 102, 178, 82, 146, 129, 129, 100, 114, 100, 115, 240, + 20, 240, 23, 201, 215, 244, 240, 19, 98, 131, 83, 131, + 83, 130, 97, 146, 130, 83, 167, 0, 27, 48, 39, 16, + 0, 10, 114, 226, 226, 211, 211, 210, 226, 211, 140, 146, + 211, 211, 211, 210, 211, 211, 211, 195, 211, 211, 81, 100, + 81, 99, 81, 115, 81, 115, 65, 146, 49, 180, 0, 23, + 16, 55, 24, 0, 39, 68, 130, 145, 35, 114, 129, 51, + 99, 114, 51, 99, 113, 67, 98, 114, 51, 114, 195, 99, + 180, 99, 179, 114, 195, 114, 180, 99, 179, 115, 49, 115, + 114, 65, 115, 114, 50, 115, 99, 49, 131, 84, 49, 147, + 50, 18, 33, 181, 67, 0, 33, 112, 47, 21, 0, 34, + 84, 114, 113, 35, 83, 97, 51, 83, 81, 67, 98, 81, + 52, 98, 66, 51, 114, 147, 113, 148, 113, 147, 129, 147, + 129, 132, 113, 147, 129, 147, 129, 147, 113, 163, 97, 179, + 97, 195, 65, 244, 0, 30, 32, 67, 29, 0, 47, 84, + 130, 82, 113, 35, 99, 67, 97, 51, 99, 67, 81, 67, + 83, 98, 81, 52, 83, 98, 66, 51, 99, 98, 147, 99, + 97, 148, 83, 113, 147, 99, 113, 147, 99, 113, 132, 84, + 97, 147, 99, 113, 147, 99, 113, 147, 99, 97, 163, 99, + 97, 178, 81, 18, 81, 195, 50, 19, 50, 229, 68, 0, + 41, 16, 52, 23, 0, 38, 5, 68, 146, 50, 18, 50, + 113, 84, 51, 98, 84, 50, 113, 99, 194, 99, 240, 83, + 240, 82, 240, 83, 240, 83, 240, 82, 240, 83, 240, 83, + 98, 195, 97, 114, 52, 82, 99, 52, 81, 114, 50, 18, + 50, 148, 69, 0, 32, 96, 63, 22, 0, 36, 36, 130, + 113, 35, 114, 97, 51, 99, 82, 51, 99, 81, 67, 98, + 82, 51, 114, 163, 99, 148, 99, 147, 114, 163, 99, 148, + 99, 147, 115, 147, 114, 163, 99, 163, 99, 163, 84, 179, + 52, 213, 34, 240, 67, 240, 66, 240, 67, 163, 98, 179, + 83, 179, 67, 194, 66, 245, 0, 10, 16, 44, 20, 0, + 33, 35, 97, 149, 65, 151, 33, 146, 69, 145, 129, 240, + 49, 240, 49, 240, 49, 240, 49, 240, 49, 240, 34, 240, + 34, 240, 34, 129, 145, 130, 132, 82, 130, 40, 113, 86, + 129, 99, 0, 28, 96, 8, 22, 0, 52, 47, 3, 0, + 61, 10, 41, 0, 97, 63, 15, 7, 0, 113, 32, 23, + 16, 240, 240, 98, 66, 115, 51, 114, 66, 114, 66, 130, + 66, 114, 66, 114, 66, 129, 81, 0, 65, 16, 17, 17, + 0, 6, 99, 97, 97, 34, 65, 97, 66, 33, 97, 99, + 0, 75, 32, +}; + +//***************************************************************************** +// +// The font definition for the 42 point Cm italic font. +// +//***************************************************************************** +const tFont g_sFontCm42i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 36, + + // + // The height of the font. + // + 42, + + // + // The baseline of the font. + // + 31, + + // + // The offset to each character in the font. + // + { + 0, 5, 40, 71, 184, 259, 369, 464, + 482, 568, 655, 701, 755, 774, 783, 794, + 881, 941, 980, 1051, 1116, 1195, 1256, 1318, + 1386, 1449, 1512, 1529, 1554, 1589, 1602, 1655, + 1706, 1809, 1890, 1958, 2035, 2101, 2176, 2250, + 2325, 2416, 2478, 2543, 2637, 2702, 2840, 2949, + 3032, 3097, 3210, 3281, 3347, 3420, 3488, 3565, + 3684, 3772, 3844, 3910, 3995, 4026, 4111, 4130, + 4140, 4158, 4207, 4263, 4301, 4372, 4407, 4492, + 4550, 4621, 4661, 4726, 4798, 4839, 4914, 4970, + 5011, 5075, 5134, 5181, 5218, 5257, 5312, 5359, + 5426, 5478, 5541, 5585, 5593, 5603, 5626, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm42iData +}; diff --git a/grlib/fonts/fontcm44.c b/grlib/fonts/fontcm44.c new file mode 100644 index 0000000..5cc830f --- /dev/null +++ b/grlib/fonts/fontcm44.c @@ -0,0 +1,569 @@ +//***************************************************************************** +// +// fontcm44.c - Font definition for the 44pt Cm font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 44 point +// Bold: no +// Italic: no +// Memory usage: 5768 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 44 point Cm font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm44Data[5568] = +{ + 4, 18, 0, 99, 35, 8, 240, 34, 84, 68, 68, 68, + 68, 68, 68, 68, 82, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 240, 240, 130, 84, 68, 82, + 0, 11, 80, 31, 16, 0, 6, 3, 83, 84, 68, 68, + 68, 68, 68, 113, 113, 113, 113, 113, 113, 113, 113, 97, + 113, 113, 113, 97, 113, 97, 113, 0, 58, 112, 119, 34, + 0, 14, 66, 129, 240, 130, 129, 240, 129, 130, 240, 129, + 130, 240, 114, 129, 240, 130, 129, 240, 129, 130, 240, 129, + 130, 240, 114, 129, 240, 130, 129, 240, 129, 130, 240, 114, + 130, 240, 114, 129, 240, 130, 129, 240, 129, 130, 207, 15, + 226, 129, 240, 129, 130, 240, 129, 130, 240, 114, 130, 240, + 114, 129, 240, 130, 129, 240, 129, 130, 239, 15, 194, 129, + 240, 129, 130, 240, 129, 130, 240, 114, 130, 240, 114, 129, + 240, 129, 130, 240, 129, 130, 240, 114, 129, 240, 130, 129, + 240, 129, 130, 240, 129, 130, 240, 114, 129, 240, 130, 129, + 240, 129, 130, 240, 129, 130, 0, 10, 96, 86, 20, 129, + 240, 65, 240, 38, 194, 33, 50, 130, 65, 66, 98, 81, + 81, 98, 81, 82, 66, 97, 97, 66, 97, 67, 66, 97, + 67, 66, 97, 67, 67, 81, 179, 81, 195, 65, 212, 33, + 216, 232, 232, 230, 225, 36, 209, 66, 209, 67, 193, 82, + 67, 81, 82, 67, 81, 82, 67, 81, 82, 65, 113, 82, + 65, 113, 81, 97, 97, 66, 98, 81, 66, 114, 65, 50, + 146, 49, 34, 198, 240, 33, 240, 65, 0, 23, 112, 122, + 34, 68, 240, 33, 178, 49, 242, 162, 82, 179, 162, 115, + 117, 162, 113, 39, 34, 162, 145, 147, 162, 145, 146, 178, + 145, 130, 194, 145, 115, 194, 145, 114, 210, 145, 98, 226, + 145, 98, 241, 129, 98, 240, 18, 113, 83, 240, 33, 113, + 82, 240, 50, 81, 82, 240, 82, 49, 98, 240, 115, 98, + 240, 240, 19, 86, 240, 82, 82, 81, 240, 50, 97, 113, + 240, 19, 82, 113, 240, 18, 97, 129, 242, 98, 145, 226, + 98, 145, 210, 114, 145, 195, 114, 145, 194, 130, 145, 178, + 146, 145, 178, 146, 145, 162, 177, 130, 146, 194, 113, 162, + 194, 113, 146, 226, 81, 162, 242, 49, 177, 240, 36, 0, + 35, 100, 32, 240, 240, 164, 240, 194, 49, 240, 162, 65, + 240, 161, 97, 240, 130, 97, 240, 130, 97, 240, 130, 97, + 240, 130, 97, 240, 130, 81, 240, 146, 81, 240, 146, 65, + 240, 163, 33, 240, 194, 33, 240, 194, 17, 168, 163, 211, + 211, 225, 228, 193, 225, 19, 193, 209, 51, 161, 209, 67, + 161, 193, 99, 129, 209, 114, 113, 209, 131, 97, 209, 147, + 65, 210, 163, 49, 210, 163, 33, 226, 180, 161, 67, 179, + 161, 82, 180, 130, 83, 145, 35, 113, 115, 83, 67, 66, + 166, 150, 0, 44, 112, 18, 8, 240, 147, 84, 68, 68, + 113, 113, 113, 113, 97, 113, 97, 97, 0, 29, 112, 47, + 13, 240, 82, 177, 177, 177, 178, 177, 178, 177, 178, 178, + 177, 178, 178, 178, 178, 162, 178, 178, 178, 178, 178, 178, + 178, 178, 178, 178, 178, 179, 178, 178, 178, 178, 194, 178, + 178, 194, 178, 194, 193, 194, 194, 194, 193, 64, 47, 13, + 1, 194, 194, 194, 193, 194, 194, 178, 194, 178, 178, 194, + 178, 178, 178, 194, 178, 178, 178, 178, 178, 178, 178, 178, + 178, 178, 178, 178, 177, 178, 178, 178, 177, 178, 178, 177, + 178, 177, 178, 177, 177, 178, 177, 177, 192, 48, 19, 113, + 240, 49, 240, 49, 240, 49, 240, 49, 97, 67, 65, 67, + 83, 49, 51, 130, 33, 34, 197, 240, 17, 240, 21, 194, + 33, 34, 131, 49, 51, 83, 65, 67, 65, 97, 240, 49, + 240, 49, 240, 49, 240, 49, 0, 60, 96, 63, 32, 0, + 33, 82, 240, 242, 240, 242, 240, 242, 240, 242, 240, 242, + 240, 242, 240, 242, 240, 242, 240, 242, 240, 242, 240, 242, + 240, 242, 240, 242, 240, 47, 13, 240, 34, 240, 242, 240, + 242, 240, 242, 240, 242, 240, 242, 240, 242, 240, 242, 240, + 242, 240, 242, 240, 242, 240, 242, 240, 242, 0, 34, 16, + 19, 8, 0, 29, 3, 84, 68, 68, 113, 113, 113, 113, + 97, 113, 97, 113, 97, 240, 128, 8, 15, 0, 41, 43, + 75, 0, 38, 11, 8, 0, 29, 18, 84, 68, 82, 0, + 11, 80, 91, 20, 241, 240, 50, 240, 49, 240, 50, 240, + 50, 240, 49, 240, 50, 240, 50, 240, 49, 240, 50, 240, + 50, 240, 49, 240, 50, 240, 50, 240, 49, 240, 50, 240, + 50, 240, 49, 240, 50, 240, 50, 240, 49, 240, 50, 240, + 50, 240, 49, 240, 50, 240, 50, 240, 49, 240, 50, 240, + 50, 240, 49, 240, 50, 240, 50, 240, 49, 240, 50, 240, + 50, 240, 49, 240, 50, 240, 50, 240, 49, 240, 50, 240, + 50, 240, 49, 240, 50, 240, 49, 240, 64, 63, 20, 0, + 10, 101, 210, 66, 177, 129, 146, 130, 129, 161, 114, 162, + 97, 193, 97, 193, 82, 194, 66, 194, 66, 194, 66, 194, + 66, 194, 66, 194, 66, 194, 66, 194, 66, 194, 66, 194, + 66, 194, 66, 194, 66, 194, 81, 194, 82, 162, 98, 162, + 113, 162, 114, 130, 145, 129, 178, 66, 214, 0, 28, 80, + 37, 16, 0, 8, 97, 226, 196, 147, 34, 226, 226, 226, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 156, 0, 22, + 64, 62, 20, 0, 10, 86, 194, 83, 145, 131, 113, 163, + 97, 163, 81, 195, 67, 163, 68, 147, 68, 147, 82, 163, + 240, 35, 240, 19, 240, 35, 240, 19, 240, 34, 240, 35, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 240, 34, 145, 129, 161, 113, 177, 97, 177, 110, 95, 95, + 0, 28, 16, 62, 20, 0, 10, 86, 209, 83, 146, 115, + 129, 146, 113, 163, 99, 131, 99, 131, 99, 131, 240, 35, + 240, 34, 240, 35, 240, 19, 240, 18, 229, 240, 82, 240, + 67, 240, 51, 240, 35, 240, 51, 240, 35, 67, 163, 67, + 163, 67, 163, 67, 163, 65, 179, 97, 163, 113, 131, 146, + 83, 198, 0, 28, 80, 66, 21, 0, 12, 1, 240, 66, + 240, 66, 240, 51, 240, 33, 18, 240, 33, 18, 240, 17, + 34, 240, 17, 34, 241, 50, 225, 66, 225, 66, 209, 82, + 193, 98, 193, 98, 177, 114, 161, 130, 161, 130, 145, 146, + 129, 162, 129, 162, 143, 2, 242, 240, 66, 240, 66, 240, + 66, 240, 66, 240, 66, 240, 66, 250, 0, 29, 48, 63, + 20, 0, 10, 34, 146, 124, 138, 161, 22, 193, 240, 65, + 240, 65, 240, 65, 240, 65, 240, 65, 240, 65, 240, 65, + 53, 177, 18, 82, 146, 130, 129, 162, 240, 50, 240, 65, + 240, 66, 240, 50, 240, 50, 67, 178, 67, 178, 67, 178, + 65, 209, 81, 194, 97, 177, 129, 145, 162, 82, 213, 0, + 28, 96, 65, 20, 0, 11, 5, 210, 81, 162, 129, 146, + 99, 130, 115, 114, 131, 114, 240, 35, 240, 34, 240, 50, + 240, 35, 53, 147, 33, 67, 115, 17, 99, 100, 130, 100, + 131, 83, 162, 83, 163, 67, 163, 67, 163, 67, 163, 67, + 163, 82, 163, 82, 163, 83, 146, 114, 131, 114, 130, 146, + 98, 178, 66, 229, 0, 28, 80, 67, 21, 0, 8, 1, + 240, 95, 1, 95, 1, 79, 1, 81, 225, 81, 209, 97, + 193, 113, 193, 240, 65, 240, 65, 240, 81, 240, 65, 240, + 65, 240, 81, 240, 81, 240, 65, 240, 81, 240, 66, 240, + 66, 240, 50, 240, 66, 240, 66, 240, 66, 240, 51, 240, + 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, 0, + 30, 64, 63, 22, 0, 11, 102, 226, 98, 178, 131, 130, + 162, 129, 194, 113, 194, 98, 194, 99, 178, 114, 177, 132, + 130, 148, 98, 181, 50, 215, 240, 37, 240, 17, 21, 210, + 69, 161, 117, 130, 148, 98, 180, 66, 211, 66, 226, 66, + 226, 66, 226, 66, 226, 82, 209, 98, 194, 114, 162, 147, + 98, 230, 0, 31, 64, 66, 20, 0, 10, 101, 210, 66, + 178, 98, 146, 130, 115, 130, 114, 162, 83, 162, 83, 162, + 83, 163, 67, 163, 67, 163, 67, 163, 67, 163, 82, 163, + 83, 132, 98, 113, 19, 99, 97, 19, 115, 65, 35, 149, + 51, 240, 34, 240, 50, 240, 35, 240, 34, 240, 50, 115, + 114, 131, 114, 130, 114, 161, 83, 198, 0, 28, 112, 17, + 8, 0, 14, 18, 84, 68, 82, 0, 11, 98, 84, 68, + 82, 0, 11, 80, 25, 8, 0, 14, 18, 84, 68, 82, + 0, 11, 98, 84, 68, 83, 113, 113, 113, 113, 97, 113, + 97, 113, 97, 240, 128, 36, 8, 0, 11, 18, 84, 68, + 82, 240, 240, 17, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 99, 68, 68, 68, 68, 68, 68, + 68, 68, 82, 240, 96, 13, 32, 0, 72, 15, 13, 0, + 28, 79, 13, 0, 68, 64, 61, 19, 0, 26, 99, 240, + 20, 244, 243, 0, 9, 33, 240, 49, 240, 49, 240, 49, + 240, 49, 240, 49, 240, 49, 240, 33, 240, 49, 240, 34, + 240, 33, 240, 34, 240, 18, 240, 18, 240, 34, 240, 18, + 240, 34, 163, 66, 163, 66, 163, 66, 193, 81, 177, 98, + 145, 130, 98, 182, 0, 5, 112, 57, 18, 240, 240, 166, + 162, 83, 114, 130, 97, 161, 81, 178, 67, 146, 67, 146, + 67, 146, 240, 18, 242, 240, 18, 241, 240, 17, 240, 18, + 240, 17, 240, 17, 240, 33, 240, 33, 240, 17, 240, 33, + 240, 33, 240, 33, 240, 33, 240, 33, 0, 8, 99, 243, + 243, 243, 0, 26, 113, 32, 0, 9, 55, 240, 115, 99, + 240, 50, 194, 242, 226, 210, 240, 18, 178, 240, 50, 161, + 132, 130, 129, 114, 66, 113, 129, 98, 113, 98, 97, 98, + 145, 97, 97, 82, 178, 65, 97, 82, 178, 66, 65, 82, + 194, 81, 65, 82, 194, 81, 65, 82, 194, 81, 65, 82, + 194, 81, 65, 82, 194, 81, 65, 82, 194, 81, 65, 82, + 194, 81, 66, 82, 178, 81, 81, 82, 163, 81, 81, 98, + 147, 65, 113, 98, 113, 18, 65, 113, 114, 66, 50, 34, + 129, 117, 100, 146, 240, 240, 18, 240, 240, 18, 240, 66, + 162, 243, 227, 133, 240, 73, 0, 45, 64, 89, 32, 0, + 9, 97, 240, 242, 240, 243, 240, 212, 240, 212, 240, 209, + 19, 240, 177, 35, 240, 177, 35, 240, 177, 51, 240, 145, + 67, 240, 145, 67, 240, 145, 83, 240, 113, 99, 240, 113, + 115, 240, 81, 131, 240, 81, 131, 240, 81, 147, 240, 49, + 163, 240, 49, 163, 240, 63, 240, 17, 195, 240, 17, 195, + 240, 17, 211, 225, 227, 225, 227, 225, 243, 193, 240, 19, + 193, 240, 19, 178, 240, 35, 148, 240, 19, 119, 201, 0, + 44, 64, 66, 28, 0, 10, 79, 2, 242, 163, 210, 195, + 178, 211, 162, 211, 162, 227, 146, 227, 146, 227, 146, 227, + 146, 226, 162, 211, 162, 195, 178, 179, 194, 147, 238, 226, + 179, 194, 196, 162, 211, 162, 227, 146, 243, 130, 243, 130, + 243, 130, 243, 130, 243, 130, 243, 130, 227, 146, 212, 146, + 196, 162, 164, 143, 3, 0, 39, 96, 84, 29, 0, 12, + 38, 113, 195, 99, 65, 163, 162, 34, 147, 209, 18, 131, + 228, 115, 240, 19, 114, 240, 50, 99, 240, 50, 83, 240, + 66, 83, 240, 81, 82, 240, 97, 67, 240, 97, 67, 240, + 179, 240, 179, 240, 179, 240, 179, 240, 179, 240, 179, 240, + 195, 240, 81, 83, 240, 81, 83, 240, 81, 99, 240, 65, + 99, 240, 49, 131, 240, 33, 147, 241, 179, 209, 211, 177, + 240, 20, 98, 240, 87, 0, 41, 32, 88, 31, 0, 11, + 95, 2, 240, 50, 164, 242, 195, 226, 226, 210, 242, 194, + 240, 18, 178, 240, 19, 162, 240, 34, 162, 240, 35, 146, + 240, 35, 146, 240, 50, 146, 240, 51, 130, 240, 51, 130, + 240, 51, 130, 240, 51, 130, 240, 51, 130, 240, 51, 130, + 240, 51, 130, 240, 51, 130, 240, 50, 146, 240, 35, 146, + 240, 35, 146, 240, 34, 162, 240, 19, 162, 240, 18, 178, + 242, 194, 227, 194, 210, 226, 164, 191, 3, 0, 44, 32, + 89, 29, 0, 10, 127, 7, 178, 197, 162, 227, 162, 242, + 162, 240, 17, 162, 240, 17, 162, 240, 17, 162, 240, 17, + 162, 240, 17, 162, 145, 240, 34, 145, 240, 34, 145, 240, + 34, 130, 240, 34, 115, 240, 44, 240, 34, 115, 240, 34, + 130, 240, 34, 145, 240, 34, 145, 240, 34, 145, 129, 130, + 240, 33, 146, 240, 33, 146, 240, 33, 146, 240, 33, 146, + 240, 33, 146, 240, 18, 146, 240, 18, 146, 242, 162, 197, + 111, 8, 0, 40, 80, 69, 27, 0, 10, 31, 7, 146, + 196, 146, 226, 146, 241, 146, 242, 130, 240, 17, 130, 240, + 17, 130, 240, 17, 130, 240, 17, 130, 145, 242, 145, 242, + 145, 242, 145, 242, 115, 252, 242, 115, 242, 130, 242, 145, + 242, 145, 242, 145, 242, 240, 162, 240, 162, 240, 162, 240, + 162, 240, 162, 240, 162, 240, 162, 240, 162, 240, 107, 0, + 39, 16, 84, 31, 0, 13, 6, 97, 243, 98, 65, 211, + 162, 33, 195, 196, 179, 227, 163, 243, 147, 240, 34, 146, + 240, 50, 131, 240, 65, 131, 240, 65, 130, 240, 81, 115, + 240, 81, 115, 240, 211, 240, 211, 240, 211, 240, 211, 240, + 211, 240, 211, 234, 83, 240, 50, 131, 240, 50, 131, 240, + 50, 147, 240, 34, 147, 240, 34, 163, 240, 18, 179, 242, + 195, 211, 211, 178, 17, 244, 113, 49, 240, 41, 65, 0, + 43, 64, 67, 30, 0, 11, 42, 106, 130, 226, 194, 226, + 194, 226, 194, 226, 194, 226, 194, 226, 194, 226, 194, 226, + 194, 226, 194, 226, 194, 226, 194, 226, 194, 226, 207, 3, + 194, 226, 194, 226, 194, 226, 194, 226, 194, 226, 194, 226, + 194, 226, 194, 226, 194, 226, 194, 226, 194, 226, 194, 226, + 194, 226, 194, 226, 138, 106, 0, 41, 96, 37, 14, 240, + 240, 202, 130, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 138, 0, 19, 96, 64, 20, + 0, 8, 42, 242, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 130, 130, + 116, 114, 116, 114, 115, 114, 145, 130, 162, 67, 213, 0, + 28, 112, 86, 31, 0, 11, 90, 167, 130, 243, 178, 242, + 194, 226, 210, 209, 242, 194, 242, 178, 240, 18, 162, 240, + 34, 146, 240, 50, 130, 240, 66, 114, 240, 82, 98, 240, + 98, 83, 240, 98, 69, 240, 82, 50, 20, 240, 66, 34, + 51, 240, 66, 18, 83, 240, 50, 17, 99, 240, 51, 131, + 240, 34, 148, 240, 18, 163, 240, 18, 179, 242, 180, 226, + 195, 226, 211, 210, 212, 194, 227, 194, 228, 178, 229, 106, + 152, 0, 43, 16, 66, 25, 0, 9, 58, 240, 66, 240, + 130, 240, 130, 240, 130, 240, 130, 240, 130, 240, 130, 240, + 130, 240, 130, 240, 130, 240, 130, 240, 130, 240, 130, 240, + 130, 240, 130, 240, 130, 240, 130, 240, 130, 240, 130, 225, + 130, 225, 130, 225, 130, 225, 130, 225, 130, 210, 130, 210, + 130, 194, 146, 179, 146, 149, 95, 5, 0, 35, 123, 37, + 0, 13, 119, 240, 71, 132, 240, 51, 193, 18, 240, 33, + 18, 193, 18, 240, 33, 18, 193, 19, 240, 17, 18, 193, + 34, 241, 34, 193, 35, 225, 34, 193, 35, 225, 34, 193, + 50, 209, 50, 193, 51, 193, 50, 193, 51, 177, 66, 193, + 66, 177, 66, 193, 67, 161, 66, 193, 82, 145, 82, 193, + 83, 129, 82, 193, 83, 129, 82, 193, 98, 113, 98, 193, + 99, 97, 98, 193, 99, 97, 98, 193, 114, 81, 114, 193, + 115, 65, 114, 193, 115, 49, 130, 193, 130, 49, 130, 193, + 131, 33, 130, 193, 146, 17, 146, 193, 148, 146, 193, 148, + 146, 193, 162, 162, 179, 146, 162, 137, 97, 122, 0, 51, + 48, 89, 31, 0, 11, 87, 200, 132, 211, 181, 209, 193, + 19, 209, 193, 35, 193, 193, 35, 193, 193, 51, 177, 193, + 52, 161, 193, 67, 161, 193, 83, 145, 193, 83, 145, 193, + 99, 129, 193, 115, 113, 193, 115, 113, 193, 131, 97, 193, + 131, 97, 193, 147, 81, 193, 163, 65, 193, 163, 65, 193, + 179, 49, 193, 179, 49, 193, 195, 33, 193, 211, 17, 193, + 211, 17, 193, 228, 193, 228, 193, 243, 193, 240, 18, 179, + 242, 136, 225, 0, 43, 80, 88, 31, 0, 12, 119, 240, + 115, 83, 240, 51, 147, 242, 210, 210, 242, 178, 240, 34, + 147, 240, 35, 130, 240, 66, 115, 240, 67, 99, 240, 67, + 98, 240, 98, 83, 240, 99, 67, 240, 99, 67, 240, 99, + 67, 240, 99, 67, 240, 99, 67, 240, 99, 67, 240, 99, + 67, 240, 99, 83, 240, 82, 99, 240, 67, 99, 240, 67, + 115, 240, 50, 131, 240, 35, 147, 243, 178, 242, 211, 194, + 243, 147, 240, 51, 83, 240, 119, 0, 44, 48, 65, 27, + 0, 10, 31, 2, 226, 163, 194, 194, 178, 210, 162, 211, + 146, 227, 130, 227, 130, 227, 130, 227, 130, 227, 130, 227, + 130, 211, 146, 210, 162, 194, 178, 163, 205, 226, 240, 162, + 240, 162, 240, 162, 240, 162, 240, 162, 240, 162, 240, 162, + 240, 162, 240, 162, 240, 162, 240, 162, 240, 162, 240, 106, + 0, 39, 32, 121, 31, 0, 12, 119, 240, 115, 83, 240, + 51, 147, 242, 210, 210, 242, 179, 243, 147, 240, 35, 130, + 240, 66, 115, 240, 67, 99, 240, 67, 99, 240, 82, 83, + 240, 99, 67, 240, 99, 67, 240, 99, 67, 240, 99, 67, + 240, 99, 67, 240, 99, 67, 240, 99, 67, 240, 99, 83, + 240, 82, 99, 240, 67, 99, 240, 67, 114, 240, 66, 131, + 116, 99, 147, 81, 50, 82, 178, 65, 81, 66, 210, 49, + 97, 34, 243, 17, 97, 18, 240, 50, 17, 82, 240, 119, + 17, 240, 241, 113, 240, 113, 113, 240, 113, 113, 240, 114, + 97, 240, 114, 82, 240, 130, 50, 240, 151, 240, 165, 240, + 195, 0, 8, 80, 78, 32, 0, 12, 15, 1, 240, 82, + 148, 240, 34, 194, 240, 18, 210, 242, 211, 226, 227, 210, + 227, 210, 227, 210, 227, 210, 227, 210, 211, 226, 210, 242, + 194, 240, 18, 147, 240, 60, 240, 82, 132, 240, 50, 163, + 240, 34, 179, 240, 18, 180, 242, 195, 242, 195, 242, 195, + 242, 195, 242, 195, 242, 196, 226, 196, 226, 196, 81, 130, + 211, 81, 130, 227, 49, 90, 181, 0, 44, 96, 68, 22, + 0, 8, 118, 81, 130, 98, 49, 114, 145, 18, 98, 179, + 98, 179, 82, 210, 82, 210, 82, 225, 82, 225, 83, 209, + 99, 240, 68, 240, 69, 240, 56, 250, 248, 240, 53, 240, + 68, 240, 82, 240, 83, 65, 242, 65, 242, 65, 242, 65, + 242, 66, 226, 66, 210, 83, 194, 82, 18, 146, 97, 51, + 83, 113, 102, 0, 31, 48, 76, 30, 0, 11, 63, 9, + 99, 130, 131, 98, 146, 146, 82, 162, 162, 66, 162, 162, + 65, 178, 177, 65, 178, 177, 65, 178, 177, 65, 178, 177, + 65, 178, 177, 240, 18, 240, 210, 240, 210, 240, 210, 240, + 210, 240, 210, 240, 210, 240, 210, 240, 210, 240, 210, 240, + 210, 240, 210, 240, 210, 240, 210, 240, 210, 240, 210, 240, + 210, 240, 210, 240, 211, 240, 124, 0, 42, 80, 91, 31, + 0, 11, 90, 137, 130, 243, 178, 240, 17, 194, 240, 17, + 194, 240, 17, 194, 240, 17, 194, 240, 17, 194, 240, 17, + 194, 240, 17, 194, 240, 17, 194, 240, 17, 194, 240, 17, + 194, 240, 17, 194, 240, 17, 194, 240, 17, 194, 240, 17, + 194, 240, 17, 194, 240, 17, 194, 240, 17, 194, 240, 17, + 194, 240, 17, 194, 240, 17, 194, 240, 17, 209, 241, 226, + 225, 241, 209, 240, 18, 178, 240, 34, 146, 240, 82, 82, + 240, 149, 0, 44, 64, 91, 34, 0, 12, 105, 231, 116, + 240, 36, 163, 240, 50, 179, 240, 49, 196, 240, 33, 211, + 240, 17, 227, 240, 17, 243, 225, 240, 19, 225, 240, 20, + 209, 240, 35, 193, 240, 51, 193, 240, 67, 161, 240, 83, + 161, 240, 83, 161, 240, 99, 129, 240, 115, 129, 240, 131, + 97, 240, 147, 97, 240, 147, 97, 240, 163, 65, 240, 179, + 65, 240, 195, 33, 240, 211, 33, 240, 211, 33, 240, 228, + 240, 244, 240, 243, 240, 240, 34, 240, 240, 34, 0, 49, + 130, 45, 0, 16, 121, 121, 151, 115, 212, 211, 147, 211, + 241, 164, 211, 209, 195, 211, 209, 195, 211, 209, 196, 177, + 19, 177, 227, 177, 19, 177, 227, 177, 19, 177, 227, 161, + 51, 161, 243, 145, 51, 145, 240, 19, 145, 51, 145, 240, + 19, 129, 83, 129, 240, 35, 113, 83, 113, 240, 51, 113, + 83, 113, 240, 51, 97, 115, 97, 240, 67, 81, 115, 81, + 240, 83, 81, 115, 81, 240, 83, 65, 131, 81, 240, 99, + 49, 147, 49, 240, 115, 49, 147, 49, 240, 115, 49, 147, + 49, 240, 131, 17, 179, 17, 240, 147, 17, 179, 17, 240, + 147, 17, 179, 17, 240, 163, 211, 240, 179, 211, 240, 179, + 211, 240, 193, 241, 240, 209, 241, 0, 63, 112, 86, 33, + 0, 12, 73, 152, 164, 211, 227, 210, 244, 193, 240, 35, + 177, 240, 67, 161, 240, 68, 129, 240, 99, 113, 240, 131, + 97, 240, 132, 65, 240, 163, 49, 240, 195, 18, 240, 197, + 240, 227, 240, 240, 19, 240, 244, 240, 209, 19, 240, 194, + 35, 240, 177, 52, 240, 145, 84, 240, 113, 115, 240, 113, + 116, 240, 81, 148, 240, 49, 179, 240, 49, 180, 240, 17, + 212, 225, 243, 210, 244, 180, 229, 120, 201, 0, 45, 112, + 93, 34, 0, 12, 106, 215, 117, 240, 19, 180, 240, 18, + 211, 240, 17, 243, 225, 240, 19, 225, 240, 35, 193, 240, + 52, 161, 240, 83, 161, 240, 99, 129, 240, 115, 129, 240, + 131, 97, 240, 162, 81, 240, 179, 65, 240, 195, 33, 240, + 211, 33, 240, 228, 240, 240, 18, 240, 240, 34, 240, 240, + 34, 240, 240, 34, 240, 240, 34, 240, 240, 34, 240, 240, + 34, 240, 240, 34, 240, 240, 34, 240, 240, 34, 240, 240, + 34, 240, 240, 34, 240, 218, 0, 48, 64, 68, 25, 0, + 9, 79, 5, 85, 180, 83, 211, 98, 211, 114, 196, 113, + 211, 129, 195, 145, 180, 129, 195, 240, 100, 240, 99, 240, + 99, 240, 100, 240, 99, 240, 99, 240, 100, 240, 99, 240, + 100, 240, 99, 240, 99, 177, 148, 177, 147, 193, 131, 209, + 131, 209, 115, 225, 100, 210, 99, 211, 83, 212, 68, 182, + 79, 6, 0, 34, 112, 47, 10, 6, 66, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 134, 64, 31, 16, 0, 6, 49, 113, 97, 113, + 97, 113, 113, 113, 97, 129, 97, 113, 113, 113, 113, 113, + 116, 68, 68, 68, 68, 83, 83, 83, 0, 58, 64, 47, + 10, 6, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 70, 64, 17, 15, + 0, 6, 33, 211, 178, 18, 146, 50, 113, 98, 81, 145, + 0, 66, 16, 11, 8, 240, 240, 50, 84, 68, 82, 0, + 36, 80, 18, 8, 240, 193, 97, 97, 113, 113, 97, 113, + 113, 116, 68, 83, 83, 0, 29, 64, 49, 22, 0, 39, + 6, 241, 83, 193, 130, 161, 147, 146, 146, 147, 130, 146, + 146, 240, 82, 247, 195, 82, 163, 114, 146, 146, 146, 146, + 130, 162, 49, 66, 162, 49, 66, 147, 49, 67, 113, 18, + 49, 83, 81, 50, 17, 134, 67, 0, 31, 71, 23, 0, + 8, 100, 240, 53, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 69, 194, 33, 82, 178, 17, 130, 147, 161, 146, 178, 130, + 178, 130, 194, 114, 194, 114, 194, 114, 194, 114, 194, 114, + 194, 114, 194, 114, 178, 130, 178, 131, 146, 145, 33, 114, + 161, 49, 82, 177, 69, 0, 32, 112, 43, 18, 0, 32, + 21, 194, 66, 145, 129, 114, 145, 82, 131, 82, 131, 66, + 147, 66, 240, 18, 240, 18, 240, 18, 240, 18, 240, 18, + 240, 34, 240, 18, 161, 98, 129, 115, 113, 146, 66, 181, + 0, 25, 96, 69, 23, 0, 10, 65, 240, 53, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 213, 50, 178, 82, 18, 162, 116, 146, + 147, 130, 178, 130, 178, 114, 194, 114, 194, 114, 194, 114, + 194, 114, 194, 114, 194, 114, 194, 130, 178, 130, 178, 146, + 147, 161, 129, 18, 178, 81, 37, 149, 69, 0, 32, 16, + 43, 20, 0, 35, 101, 210, 82, 161, 130, 129, 162, 98, + 162, 97, 194, 66, 194, 66, 194, 79, 1, 66, 240, 50, + 240, 50, 240, 50, 240, 66, 193, 82, 193, 98, 161, 130, + 129, 163, 81, 214, 0, 28, 64, 41, 17, 240, 240, 196, + 178, 50, 146, 51, 146, 51, 130, 242, 242, 242, 242, 242, + 242, 242, 187, 162, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 201, 0, 24, 32, + 66, 24, 0, 39, 100, 84, 147, 35, 18, 35, 114, 98, + 66, 130, 98, 210, 130, 194, 130, 194, 130, 194, 130, 194, + 130, 194, 130, 210, 98, 226, 98, 227, 66, 225, 52, 240, + 17, 240, 129, 240, 130, 240, 139, 237, 146, 164, 114, 210, + 98, 242, 82, 242, 82, 242, 82, 242, 98, 210, 130, 178, + 163, 115, 216, 0, 7, 48, 69, 23, 0, 8, 100, 240, + 53, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 98, 240, 98, 53, 210, 33, + 67, 178, 17, 98, 179, 130, 163, 130, 162, 146, 162, 146, + 162, 146, 162, 146, 162, 146, 162, 146, 162, 146, 162, 146, + 162, 146, 162, 146, 162, 146, 162, 146, 162, 146, 120, 56, + 0, 32, 16, 31, 12, 0, 6, 35, 147, 147, 146, 0, + 10, 50, 117, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 120, 0, 17, 45, 13, + 0, 7, 34, 179, 163, 162, 0, 11, 34, 133, 178, 178, + 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, + 178, 178, 178, 178, 178, 178, 178, 81, 82, 67, 65, 83, + 50, 97, 65, 132, 240, 240, 48, 70, 23, 0, 8, 100, + 240, 53, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 118, 130, + 116, 162, 129, 194, 113, 210, 97, 226, 81, 242, 65, 240, + 18, 50, 240, 18, 36, 242, 17, 34, 243, 51, 226, 83, + 210, 98, 210, 99, 194, 115, 178, 130, 178, 131, 162, 132, + 104, 71, 0, 32, 16, 36, 12, 240, 240, 116, 117, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 120, 0, 17, 68, 34, 0, 59, 84, 53, 101, + 165, 33, 67, 49, 67, 178, 17, 98, 33, 98, 179, 131, + 130, 163, 131, 130, 162, 146, 146, 162, 146, 146, 162, 146, + 146, 162, 146, 146, 162, 146, 146, 162, 146, 146, 162, 146, + 146, 162, 146, 146, 162, 146, 146, 162, 146, 146, 162, 146, + 146, 162, 146, 146, 162, 146, 146, 120, 56, 56, 0, 47, + 32, 47, 23, 0, 40, 52, 53, 165, 33, 67, 178, 17, + 98, 179, 130, 163, 130, 162, 146, 162, 146, 162, 146, 162, + 146, 162, 146, 162, 146, 162, 146, 162, 146, 162, 146, 162, + 146, 162, 146, 162, 146, 162, 146, 120, 56, 0, 32, 16, + 43, 21, 0, 37, 69, 226, 82, 177, 145, 145, 177, 114, + 178, 97, 209, 97, 210, 66, 210, 66, 210, 66, 210, 66, + 210, 66, 210, 66, 210, 81, 209, 98, 178, 113, 177, 145, + 145, 178, 82, 229, 0, 30, 16, 66, 23, 0, 40, 52, + 54, 149, 33, 83, 162, 17, 115, 147, 146, 146, 178, 130, + 178, 130, 194, 114, 194, 114, 194, 114, 194, 114, 194, 114, + 194, 114, 194, 114, 178, 130, 178, 131, 146, 146, 17, 114, + 162, 33, 82, 178, 53, 210, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 56, 0, 7, + 80, 67, 23, 0, 41, 5, 65, 178, 81, 49, 162, 113, + 33, 146, 147, 130, 163, 130, 178, 114, 194, 114, 194, 114, + 194, 114, 194, 114, 194, 114, 194, 114, 194, 130, 178, 130, + 178, 146, 147, 162, 113, 18, 178, 81, 34, 197, 66, 240, + 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 56, 0, 6, 32, 44, 18, 0, 31, + 84, 68, 85, 34, 35, 114, 17, 67, 114, 17, 67, 115, + 243, 242, 240, 18, 240, 18, 240, 18, 240, 18, 240, 18, + 240, 18, 240, 18, 240, 18, 240, 18, 240, 18, 240, 18, + 217, 0, 25, 112, 42, 18, 0, 32, 6, 33, 114, 84, + 98, 130, 82, 146, 82, 161, 82, 161, 83, 240, 21, 232, + 200, 244, 81, 163, 65, 178, 66, 162, 66, 162, 66, 162, + 67, 130, 82, 18, 82, 97, 69, 0, 25, 96, 56, 18, + 0, 14, 17, 240, 33, 240, 33, 240, 33, 240, 33, 240, + 18, 243, 228, 205, 146, 240, 18, 240, 18, 240, 18, 240, + 18, 240, 18, 240, 18, 240, 18, 240, 18, 240, 18, 240, + 18, 113, 130, 113, 130, 113, 130, 113, 130, 113, 146, 81, + 163, 50, 197, 0, 25, 64, 47, 23, 0, 40, 52, 116, + 117, 101, 162, 146, 162, 146, 162, 146, 162, 146, 162, 146, + 162, 146, 162, 146, 162, 146, 162, 146, 162, 146, 162, 146, + 162, 146, 162, 146, 162, 131, 178, 97, 18, 179, 65, 37, + 165, 53, 0, 32, 16, 50, 24, 0, 42, 7, 118, 100, + 147, 147, 161, 163, 161, 178, 145, 195, 129, 210, 113, 227, + 97, 227, 97, 242, 81, 240, 19, 65, 240, 34, 49, 240, + 50, 49, 240, 51, 33, 240, 66, 17, 240, 84, 240, 98, + 240, 114, 240, 114, 0, 34, 80, 76, 32, 0, 56, 8, + 54, 86, 99, 130, 131, 146, 130, 145, 163, 129, 145, 178, + 115, 113, 194, 115, 113, 195, 97, 18, 97, 210, 81, 34, + 81, 226, 81, 34, 81, 227, 65, 35, 65, 242, 49, 66, + 49, 240, 19, 33, 66, 49, 240, 19, 33, 67, 33, 240, + 34, 17, 98, 17, 240, 52, 98, 17, 240, 52, 100, 240, + 66, 130, 240, 82, 130, 240, 82, 130, 0, 45, 64, 52, + 25, 0, 43, 104, 102, 132, 131, 179, 129, 226, 113, 243, + 81, 240, 35, 65, 240, 51, 33, 240, 82, 17, 240, 114, + 240, 131, 240, 116, 240, 81, 34, 240, 65, 66, 240, 49, + 67, 240, 17, 99, 225, 130, 210, 131, 179, 147, 119, 104, + 0, 34, 112, 69, 23, 0, 40, 39, 102, 99, 163, 130, + 161, 162, 161, 178, 129, 194, 129, 194, 129, 210, 97, 226, + 97, 227, 65, 240, 18, 65, 240, 18, 65, 240, 19, 33, + 240, 50, 33, 240, 52, 240, 83, 240, 83, 240, 82, 240, + 113, 240, 97, 240, 113, 240, 113, 240, 97, 240, 17, 81, + 242, 65, 240, 18, 65, 240, 17, 65, 240, 52, 0, 8, + 42, 19, 0, 33, 62, 83, 130, 97, 147, 97, 131, 113, + 130, 113, 131, 243, 240, 18, 240, 18, 240, 19, 243, 240, + 18, 113, 131, 113, 115, 129, 114, 145, 98, 161, 83, 146, + 67, 147, 79, 0, 26, 80, 9, 25, 0, 65, 95, 6, + 0, 69, 32, 10, 45, 0, 118, 31, 15, 11, 0, 124, + 32, 20, 16, 0, 6, 50, 82, 99, 67, 98, 82, 98, + 82, 114, 82, 98, 82, 113, 97, 0, 69, 15, 18, 0, + 9, 51, 113, 102, 65, 97, 70, 97, 115, 0, 81, 112,}; + +//***************************************************************************** +// +// The font definition for the 44 point Cm font. +// +//***************************************************************************** +const tFont g_sFontCm44 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 40, + + // + // The height of the font. + // + 44, + + // + // The baseline of the font. + // + 33, + + // + // The offset to each character in the font. + // + { + 0, 4, 39, 70, 189, 275, 397, 497, + 515, 562, 609, 657, 720, 739, 747, 758, + 849, 912, 949, 1011, 1073, 1139, 1202, 1267, + 1334, 1397, 1463, 1480, 1505, 1541, 1554, 1615, + 1672, 1785, 1874, 1940, 2024, 2112, 2201, 2270, + 2354, 2421, 2458, 2522, 2608, 2674, 2797, 2886, + 2974, 3039, 3160, 3238, 3306, 3382, 3473, 3564, + 3694, 3780, 3873, 3941, 3988, 4019, 4066, 4083, + 4094, 4112, 4161, 4232, 4275, 4344, 4387, 4428, + 4494, 4563, 4594, 4639, 4709, 4745, 4813, 4860, + 4903, 4969, 5036, 5080, 5122, 5178, 5225, 5275, + 5351, 5403, 5472, 5514, 5523, 5533, 5553, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm44Data +}; diff --git a/grlib/fonts/fontcm44b.c b/grlib/fonts/fontcm44b.c new file mode 100644 index 0000000..ec3c41e --- /dev/null +++ b/grlib/fonts/fontcm44b.c @@ -0,0 +1,564 @@ +//***************************************************************************** +// +// fontcm44b.c - Font definition for the 44pt Cm bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 44 point +// Bold: yes +// Italic: no +// Memory usage: 5692 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 44 point Cm bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm44bData[5489] = +{ + 5, 18, 0, 101, 32, 37, 11, 240, 147, 117, 87, 71, + 71, 71, 71, 85, 101, 101, 101, 101, 101, 101, 116, 115, + 131, 131, 131, 131, 131, 146, 240, 240, 179, 117, 87, 71, + 71, 85, 115, 0, 15, 112, 41, 22, 0, 8, 67, 131, + 117, 101, 86, 86, 87, 71, 71, 71, 86, 86, 84, 17, + 84, 17, 146, 146, 146, 146, 145, 161, 161, 161, 146, 146, + 130, 146, 146, 146, 130, 146, 145, 161, 0, 72, 64, 124, + 36, 0, 15, 50, 130, 240, 146, 115, 240, 131, 115, 240, + 131, 115, 240, 131, 99, 240, 131, 115, 240, 131, 115, 240, + 131, 114, 240, 146, 115, 240, 131, 115, 240, 131, 115, 240, + 131, 114, 240, 146, 115, 207, 15, 2, 79, 15, 2, 79, + 15, 2, 242, 115, 240, 131, 115, 240, 131, 115, 240, 131, + 99, 240, 131, 115, 240, 131, 115, 240, 131, 114, 255, 15, + 2, 79, 15, 2, 79, 15, 2, 195, 114, 240, 146, 115, + 240, 131, 115, 240, 131, 115, 240, 131, 114, 240, 146, 115, + 240, 131, 115, 240, 131, 115, 240, 131, 114, 240, 146, 115, + 240, 131, 115, 240, 131, 115, 240, 131, 114, 240, 146, 130, + 0, 11, 48, 86, 22, 130, 240, 82, 240, 82, 240, 41, + 189, 132, 34, 52, 100, 50, 82, 99, 66, 53, 68, 66, + 38, 68, 66, 38, 68, 66, 38, 69, 50, 38, 70, 34, + 52, 87, 18, 218, 205, 173, 173, 173, 187, 218, 194, 38, + 84, 50, 53, 70, 34, 53, 70, 34, 68, 70, 34, 68, + 70, 34, 68, 69, 50, 68, 82, 82, 67, 99, 66, 52, + 100, 50, 51, 132, 34, 21, 156, 200, 240, 34, 240, 82, + 240, 82, 0, 23, 64, 121, 36, 84, 240, 34, 184, 228, + 148, 52, 180, 148, 85, 118, 148, 95, 2, 149, 98, 54, + 19, 165, 98, 148, 165, 98, 132, 181, 98, 131, 197, 98, + 116, 197, 98, 100, 213, 98, 99, 229, 98, 84, 244, 97, + 84, 240, 20, 82, 83, 240, 52, 66, 68, 240, 67, 50, + 68, 240, 102, 83, 240, 240, 36, 240, 240, 35, 118, 240, + 67, 100, 34, 240, 52, 84, 66, 240, 35, 100, 66, 240, + 19, 116, 82, 228, 101, 82, 227, 117, 82, 211, 133, 82, + 196, 133, 82, 195, 149, 82, 179, 165, 82, 164, 165, 82, + 163, 196, 67, 147, 212, 66, 148, 228, 35, 147, 240, 23, + 163, 240, 37, 0, 41, 48, 93, 34, 0, 9, 85, 240, + 200, 240, 164, 50, 240, 149, 66, 240, 132, 82, 240, 117, + 82, 240, 117, 82, 240, 117, 82, 240, 117, 66, 240, 133, + 66, 240, 133, 50, 240, 150, 19, 240, 165, 18, 122, 151, + 138, 150, 210, 214, 195, 230, 178, 231, 162, 233, 131, 211, + 22, 130, 212, 38, 99, 196, 55, 82, 197, 71, 50, 213, + 86, 35, 213, 102, 18, 229, 119, 246, 103, 146, 70, 119, + 130, 70, 120, 98, 102, 68, 22, 67, 124, 74, 182, 150, + 0, 47, 96, 24, 11, 240, 240, 83, 117, 86, 87, 71, + 86, 84, 17, 146, 146, 145, 161, 146, 130, 146, 130, 145, + 0, 36, 96, 48, 15, 146, 195, 179, 179, 195, 179, 180, + 179, 180, 180, 164, 180, 165, 165, 165, 164, 180, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 180, 181, + 165, 165, 180, 180, 181, 180, 180, 196, 195, 196, 195, 211, + 211, 210, 64, 48, 15, 2, 211, 211, 211, 196, 195, 196, + 195, 196, 180, 196, 180, 181, 165, 165, 180, 181, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 164, 180, + 165, 165, 164, 180, 164, 180, 179, 180, 179, 179, 195, 179, + 179, 194, 208, 47, 20, 114, 240, 36, 240, 20, 240, 20, + 163, 52, 51, 68, 50, 52, 69, 34, 37, 70, 18, 22, + 108, 182, 230, 188, 102, 18, 22, 69, 34, 37, 68, 50, + 52, 67, 52, 51, 164, 240, 20, 240, 20, 240, 34, 0, + 63, 112, 66, 33, 0, 34, 83, 240, 243, 240, 243, 240, + 243, 240, 243, 240, 243, 240, 243, 240, 243, 240, 243, 240, + 243, 240, 243, 240, 243, 240, 243, 240, 47, 14, 79, 14, + 79, 14, 240, 35, 240, 243, 240, 243, 240, 243, 240, 243, + 240, 243, 240, 243, 240, 243, 240, 243, 240, 243, 240, 243, + 240, 243, 240, 243, 240, 243, 0, 31, 22, 11, 0, 37, + 51, 117, 86, 87, 71, 86, 86, 146, 146, 145, 161, 146, + 130, 146, 130, 145, 240, 240, 11, 16, 0, 44, 12, 76, + 76, 76, 0, 38, 64, 14, 11, 0, 37, 51, 117, 87, + 71, 71, 85, 115, 0, 15, 112, 93, 21, 242, 240, 51, + 240, 51, 240, 50, 240, 51, 240, 51, 240, 50, 240, 51, + 240, 51, 240, 35, 240, 51, 240, 51, 240, 35, 240, 51, + 240, 51, 240, 35, 240, 51, 240, 51, 240, 35, 240, 51, + 240, 51, 240, 35, 240, 51, 240, 51, 240, 35, 240, 51, + 240, 51, 240, 35, 240, 51, 240, 51, 240, 35, 240, 51, + 240, 51, 240, 35, 240, 51, 240, 51, 240, 35, 240, 51, + 240, 51, 240, 35, 240, 51, 240, 50, 240, 51, 240, 51, + 240, 50, 240, 64, 63, 23, 0, 12, 39, 235, 181, 53, + 149, 85, 132, 116, 117, 117, 101, 117, 101, 117, 101, 118, + 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, + 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, + 70, 118, 85, 117, 101, 117, 101, 117, 116, 116, 133, 85, + 149, 53, 187, 231, 0, 32, 112, 38, 20, 0, 11, 18, + 240, 20, 230, 155, 149, 21, 245, 245, 245, 245, 245, 245, + 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, + 245, 245, 245, 245, 245, 175, 95, 0, 28, 63, 22, 0, + 11, 87, 219, 163, 70, 131, 102, 116, 102, 86, 86, 86, + 102, 70, 102, 70, 102, 84, 118, 84, 118, 240, 22, 246, + 240, 22, 240, 21, 240, 21, 240, 21, 240, 35, 240, 51, + 240, 51, 240, 51, 114, 147, 130, 146, 131, 130, 147, 126, + 127, 111, 1, 111, 1, 95, 2, 95, 2, 0, 30, 112, + 62, 22, 0, 11, 102, 234, 179, 69, 147, 86, 133, 69, + 118, 70, 103, 54, 102, 70, 117, 70, 131, 85, 240, 21, + 240, 37, 240, 20, 246, 240, 23, 240, 69, 240, 38, 240, + 38, 240, 22, 240, 23, 100, 87, 86, 71, 71, 71, 71, + 71, 71, 71, 70, 86, 99, 102, 132, 55, 155, 215, 0, + 31, 64, 63, 23, 0, 13, 34, 240, 83, 240, 68, 240, + 68, 240, 53, 240, 38, 240, 38, 240, 23, 242, 21, 242, + 21, 226, 37, 210, 53, 210, 53, 194, 69, 178, 85, 178, + 85, 162, 101, 146, 117, 146, 117, 130, 133, 114, 149, 127, + 4, 79, 4, 245, 240, 53, 240, 53, 240, 53, 240, 53, + 221, 173, 0, 32, 16, 58, 22, 0, 11, 34, 177, 132, + 115, 142, 141, 156, 171, 186, 200, 226, 240, 82, 240, 82, + 240, 82, 38, 204, 164, 84, 147, 101, 130, 133, 240, 37, + 240, 38, 240, 22, 240, 22, 99, 118, 85, 102, 70, 102, + 70, 102, 70, 101, 100, 117, 98, 133, 131, 85, 171, 214, + 0, 31, 80, 63, 22, 0, 12, 6, 233, 196, 67, 164, + 84, 132, 85, 117, 70, 117, 70, 101, 101, 101, 115, 117, + 240, 37, 240, 22, 37, 150, 24, 120, 53, 103, 84, 103, + 85, 86, 101, 86, 102, 70, 102, 70, 102, 70, 102, 70, + 102, 85, 102, 85, 102, 85, 101, 116, 101, 117, 84, 149, + 53, 170, 230, 0, 31, 64, 71, 23, 0, 8, 98, 240, + 99, 240, 95, 3, 95, 3, 79, 3, 95, 2, 111, 1, + 127, 1, 114, 178, 130, 162, 146, 147, 146, 131, 240, 82, + 240, 83, 240, 67, 240, 83, 240, 68, 240, 68, 240, 52, + 240, 68, 240, 68, 240, 53, 240, 53, 240, 53, 240, 38, + 240, 38, 240, 38, 240, 38, 240, 38, 240, 38, 240, 38, + 240, 52, 0, 30, 64, 58, 22, 0, 11, 102, 234, 180, + 68, 147, 116, 131, 131, 131, 132, 100, 132, 100, 132, 102, + 100, 103, 83, 136, 36, 141, 170, 203, 203, 188, 147, 26, + 115, 72, 100, 88, 83, 134, 68, 149, 68, 164, 68, 164, + 68, 164, 68, 163, 100, 147, 100, 131, 133, 84, 155, 215, + 0, 31, 64, 63, 22, 0, 11, 102, 234, 181, 52, 149, + 69, 117, 100, 117, 101, 86, 101, 86, 101, 86, 102, 70, + 102, 70, 102, 70, 102, 70, 102, 70, 102, 85, 102, 85, + 87, 101, 71, 116, 56, 135, 22, 164, 38, 240, 21, 240, + 37, 116, 101, 101, 101, 102, 84, 117, 84, 133, 84, 147, + 69, 185, 230, 0, 31, 96, 23, 11, 0, 19, 67, 117, + 87, 71, 71, 85, 115, 0, 9, 35, 117, 87, 71, 71, + 85, 115, 0, 15, 112, 31, 11, 0, 19, 67, 117, 87, + 71, 71, 85, 115, 0, 9, 35, 117, 87, 71, 71, 86, + 101, 146, 146, 145, 146, 146, 130, 146, 130, 145, 240, 240, + 36, 11, 0, 15, 51, 117, 87, 71, 71, 85, 115, 0, + 6, 67, 131, 131, 131, 131, 131, 131, 117, 101, 101, 101, + 101, 101, 101, 87, 71, 71, 71, 71, 85, 115, 240, 208, + 21, 33, 0, 66, 15, 14, 79, 14, 79, 14, 0, 29, + 63, 14, 79, 14, 79, 14, 0, 66, 64, 55, 21, 0, + 29, 84, 240, 22, 231, 231, 231, 246, 240, 20, 0, 12, + 98, 240, 66, 240, 66, 240, 66, 240, 66, 240, 51, 240, + 51, 240, 50, 240, 51, 240, 36, 245, 246, 245, 100, 86, + 86, 70, 86, 70, 86, 70, 86, 85, 115, 101, 99, 140, + 184, 0, 6, 48, 57, 21, 0, 5, 119, 204, 116, 86, + 99, 117, 86, 86, 70, 86, 70, 86, 70, 86, 84, 101, + 246, 230, 244, 240, 20, 240, 35, 240, 50, 240, 51, 240, + 51, 240, 50, 240, 66, 240, 66, 240, 66, 240, 66, 0, + 10, 20, 240, 22, 231, 232, 215, 246, 240, 20, 0, 30, + 32, 111, 34, 0, 9, 120, 240, 142, 240, 53, 133, 244, + 196, 211, 240, 19, 179, 240, 51, 162, 118, 115, 130, 105, + 114, 115, 85, 51, 99, 98, 85, 83, 98, 98, 69, 117, + 50, 98, 69, 117, 51, 66, 69, 133, 66, 66, 69, 133, + 66, 66, 69, 133, 66, 66, 69, 133, 66, 66, 69, 133, + 66, 66, 69, 133, 66, 66, 69, 133, 66, 66, 69, 133, + 66, 67, 69, 117, 66, 82, 69, 117, 66, 82, 85, 101, + 50, 99, 85, 55, 50, 114, 105, 24, 131, 117, 85, 163, + 240, 240, 35, 240, 83, 148, 246, 165, 152, 239, 2, 240, + 90, 0, 48, 48, 86, 34, 0, 10, 19, 240, 240, 19, + 240, 240, 20, 240, 229, 240, 229, 240, 230, 240, 199, 240, + 199, 240, 200, 240, 169, 240, 162, 22, 240, 147, 23, 240, + 131, 38, 240, 130, 54, 240, 115, 55, 240, 99, 70, 240, + 98, 86, 240, 83, 87, 240, 67, 102, 240, 66, 118, 240, + 51, 119, 240, 35, 134, 240, 47, 2, 240, 31, 4, 243, + 166, 242, 182, 227, 183, 211, 198, 210, 214, 195, 215, 137, + 126, 73, 126, 0, 47, 32, 69, 30, 0, 11, 47, 5, + 175, 7, 198, 118, 182, 134, 166, 149, 166, 150, 150, 150, + 150, 150, 150, 150, 150, 150, 150, 149, 166, 134, 166, 133, + 182, 117, 207, 1, 239, 2, 214, 133, 182, 149, 166, 150, + 150, 166, 134, 166, 134, 166, 134, 166, 134, 166, 134, 166, + 134, 166, 134, 150, 150, 150, 150, 134, 111, 8, 127, 6, + 0, 42, 48, 78, 31, 0, 13, 23, 98, 220, 51, 182, + 104, 150, 166, 134, 197, 118, 228, 118, 228, 102, 240, 19, + 87, 240, 19, 86, 240, 35, 86, 240, 50, 71, 240, 50, + 71, 240, 151, 240, 151, 240, 151, 240, 151, 240, 151, 240, + 151, 240, 151, 240, 166, 240, 50, 87, 240, 34, 87, 240, + 34, 102, 240, 19, 103, 242, 134, 227, 150, 210, 182, 163, + 216, 84, 240, 30, 240, 88, 0, 44, 16, 69, 33, 0, + 12, 63, 5, 223, 7, 246, 119, 214, 150, 198, 166, 182, + 181, 182, 197, 166, 197, 166, 198, 150, 213, 150, 213, 150, + 214, 134, 214, 134, 214, 134, 214, 134, 214, 134, 214, 134, + 214, 134, 214, 134, 214, 134, 214, 134, 213, 150, 213, 150, + 198, 150, 197, 166, 181, 182, 181, 182, 165, 198, 134, 159, + 7, 191, 4, 0, 47, 16, 79, 29, 0, 10, 127, 8, + 111, 8, 166, 133, 166, 163, 166, 163, 166, 179, 150, 179, + 150, 194, 150, 194, 150, 82, 82, 150, 82, 82, 150, 82, + 240, 22, 67, 240, 22, 52, 240, 29, 240, 29, 240, 22, + 52, 240, 22, 67, 240, 22, 82, 240, 22, 82, 98, 134, + 82, 98, 134, 210, 134, 210, 134, 195, 134, 195, 134, 194, + 150, 179, 150, 164, 150, 134, 95, 9, 95, 9, 0, 40, + 64, 67, 28, 0, 10, 79, 8, 95, 8, 150, 118, 150, + 148, 150, 163, 150, 178, 150, 178, 150, 178, 150, 179, 134, + 82, 82, 134, 82, 82, 134, 82, 246, 82, 246, 67, 246, + 52, 253, 253, 246, 52, 246, 67, 246, 82, 246, 82, 246, + 82, 246, 240, 118, 240, 118, 240, 118, 240, 118, 240, 118, + 240, 118, 240, 63, 223, 0, 40, 16, 76, 34, 0, 14, + 39, 98, 240, 28, 51, 230, 104, 198, 166, 182, 197, 166, + 228, 166, 228, 150, 240, 19, 150, 240, 19, 135, 240, 19, + 134, 240, 50, 134, 240, 50, 119, 240, 199, 240, 199, 240, + 199, 240, 199, 240, 199, 240, 199, 240, 199, 143, 86, 143, + 86, 230, 135, 214, 150, 214, 150, 214, 166, 198, 182, 182, + 198, 151, 216, 88, 253, 51, 240, 56, 98, 0, 47, 80, + 69, 35, 0, 13, 30, 62, 78, 62, 134, 182, 198, 182, + 198, 182, 198, 182, 198, 182, 198, 182, 198, 182, 198, 182, + 198, 182, 198, 182, 198, 182, 198, 182, 207, 8, 207, 8, + 198, 182, 198, 182, 198, 182, 198, 182, 198, 182, 198, 182, + 198, 182, 198, 182, 198, 182, 198, 182, 198, 182, 198, 182, + 198, 182, 142, 62, 78, 62, 0, 48, 80, 38, 18, 0, + 6, 110, 78, 134, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 142, 78, 0, 25, 32, 64, + 24, 0, 9, 110, 174, 246, 240, 54, 240, 54, 240, 54, + 240, 54, 240, 54, 240, 54, 240, 54, 240, 54, 240, 54, + 240, 54, 240, 54, 240, 54, 240, 54, 240, 54, 240, 54, + 240, 54, 240, 54, 240, 54, 240, 54, 147, 102, 134, 70, + 119, 70, 119, 70, 119, 70, 133, 70, 148, 70, 188, 232, + 0, 34, 64, 85, 35, 0, 13, 30, 106, 94, 106, 150, + 211, 214, 195, 230, 179, 246, 163, 240, 22, 147, 240, 38, + 131, 240, 54, 115, 240, 70, 99, 240, 86, 83, 240, 102, + 67, 240, 118, 52, 240, 118, 38, 240, 102, 24, 240, 95, + 240, 88, 23, 240, 71, 55, 240, 55, 70, 240, 54, 87, + 240, 38, 102, 240, 38, 103, 240, 22, 119, 246, 134, 246, + 135, 230, 150, 230, 151, 214, 167, 198, 182, 142, 77, 78, + 77, 0, 48, 80, 68, 27, 0, 10, 31, 207, 240, 22, + 240, 102, 240, 102, 240, 102, 240, 102, 240, 102, 240, 102, + 240, 102, 240, 102, 240, 102, 240, 102, 240, 102, 240, 102, + 240, 102, 240, 102, 240, 102, 240, 102, 240, 102, 178, 134, + 162, 150, 162, 150, 162, 150, 162, 150, 147, 150, 147, 150, + 132, 150, 117, 150, 102, 95, 6, 111, 6, 0, 37, 112, + 120, 43, 0, 16, 26, 240, 59, 75, 240, 43, 135, 240, + 24, 199, 240, 17, 22, 194, 21, 241, 22, 194, 21, 226, + 22, 194, 22, 209, 38, 194, 37, 194, 38, 194, 37, 194, + 38, 194, 53, 177, 54, 194, 53, 162, 54, 194, 54, 145, + 70, 194, 69, 130, 70, 194, 69, 130, 70, 194, 70, 113, + 86, 194, 85, 98, 86, 194, 85, 98, 86, 194, 86, 81, + 102, 194, 101, 66, 102, 194, 102, 49, 118, 194, 117, 34, + 118, 194, 117, 34, 118, 194, 118, 17, 134, 194, 135, 134, + 194, 135, 134, 194, 134, 150, 194, 149, 150, 194, 149, 150, + 194, 163, 166, 138, 99, 110, 74, 98, 126, 0, 59, 80, + 87, 35, 0, 13, 26, 186, 75, 170, 136, 210, 200, 210, + 201, 194, 194, 23, 178, 194, 39, 162, 194, 39, 162, 194, + 55, 146, 194, 71, 130, 194, 71, 130, 194, 87, 114, 194, + 103, 98, 194, 119, 82, 194, 119, 82, 194, 135, 66, 194, + 151, 50, 194, 167, 34, 194, 167, 34, 194, 183, 18, 194, + 201, 194, 201, 194, 216, 194, 231, 194, 246, 194, 246, 194, + 240, 21, 194, 240, 36, 194, 240, 36, 138, 227, 138, 242, + 0, 49, 16, 71, 33, 0, 9, 88, 240, 125, 240, 54, + 86, 245, 149, 213, 181, 182, 182, 150, 214, 134, 214, 119, + 215, 102, 246, 102, 246, 102, 247, 71, 247, 71, 247, 71, + 247, 71, 247, 71, 247, 71, 247, 71, 247, 71, 247, 71, + 247, 86, 246, 103, 230, 103, 215, 118, 214, 134, 214, 150, + 182, 182, 150, 214, 118, 246, 86, 240, 61, 240, 120, 0, + 47, 32, 67, 30, 0, 11, 47, 4, 191, 7, 198, 118, + 182, 134, 166, 150, 150, 150, 150, 151, 134, 151, 134, 151, + 134, 151, 134, 151, 134, 150, 150, 150, 150, 134, 166, 118, + 191, 3, 207, 246, 240, 150, 240, 150, 240, 150, 240, 150, + 240, 150, 240, 150, 240, 150, 240, 150, 240, 150, 240, 150, + 240, 150, 240, 94, 240, 30, 0, 43, 32, 110, 32, 0, + 9, 56, 240, 109, 240, 53, 86, 229, 149, 197, 181, 165, + 197, 165, 213, 133, 229, 133, 230, 102, 245, 101, 240, 21, + 101, 240, 22, 70, 240, 22, 70, 240, 22, 70, 240, 22, + 70, 240, 22, 70, 240, 22, 70, 240, 22, 70, 240, 22, + 70, 240, 22, 70, 240, 22, 85, 240, 22, 85, 240, 21, + 102, 245, 117, 230, 118, 84, 69, 149, 70, 52, 181, 35, + 50, 21, 197, 18, 86, 232, 69, 240, 45, 240, 122, 97, + 240, 116, 81, 240, 131, 66, 240, 137, 240, 137, 240, 137, + 240, 136, 240, 167, 240, 166, 240, 196, 0, 8, 112, 81, + 35, 0, 13, 31, 4, 240, 31, 7, 240, 38, 118, 240, + 22, 134, 246, 150, 230, 151, 214, 151, 214, 151, 214, 151, + 214, 151, 214, 150, 230, 150, 230, 134, 246, 118, 240, 31, + 2, 240, 63, 1, 240, 70, 101, 240, 54, 117, 240, 38, + 118, 240, 22, 134, 246, 134, 246, 134, 246, 134, 246, 134, + 246, 134, 246, 135, 230, 135, 66, 134, 135, 66, 134, 151, + 35, 78, 106, 94, 150, 0, 48, 112, 67, 25, 0, 7, + 7, 82, 155, 35, 132, 88, 116, 134, 100, 165, 100, 180, + 85, 180, 85, 195, 85, 195, 86, 179, 87, 163, 89, 240, + 44, 223, 191, 1, 159, 2, 159, 1, 191, 220, 240, 56, + 240, 55, 66, 214, 66, 229, 67, 213, 67, 213, 67, 213, + 68, 196, 85, 165, 86, 148, 104, 100, 115, 44, 130, 103, + 0, 35, 80, 75, 31, 0, 15, 95, 11, 95, 11, 85, + 86, 85, 83, 118, 115, 83, 118, 115, 82, 134, 130, 82, + 134, 130, 82, 134, 130, 82, 134, 130, 67, 134, 130, 246, + 240, 166, 240, 166, 240, 166, 240, 166, 240, 166, 240, 166, + 240, 166, 240, 166, 240, 166, 240, 166, 240, 166, 240, 166, + 240, 166, 240, 166, 240, 166, 240, 166, 240, 166, 240, 79, + 3, 223, 3, 0, 43, 80, 71, 34, 0, 12, 110, 106, + 78, 106, 134, 226, 198, 226, 198, 226, 198, 226, 198, 226, + 198, 226, 198, 226, 198, 226, 198, 226, 198, 226, 198, 226, + 198, 226, 198, 226, 198, 226, 198, 226, 198, 226, 198, 226, + 198, 226, 198, 226, 198, 226, 198, 226, 198, 226, 213, 210, + 230, 194, 245, 178, 240, 37, 147, 240, 54, 84, 240, 92, + 240, 167, 0, 48, 80, 84, 35, 0, 13, 30, 137, 78, + 137, 134, 243, 183, 226, 199, 211, 214, 210, 231, 179, 246, + 179, 246, 178, 240, 23, 147, 240, 38, 147, 240, 39, 130, + 240, 55, 115, 240, 70, 114, 240, 87, 98, 240, 102, 83, + 240, 102, 82, 240, 119, 51, 240, 134, 51, 240, 135, 34, + 240, 151, 19, 240, 166, 18, 240, 185, 240, 200, 240, 199, + 240, 215, 240, 230, 240, 229, 240, 245, 240, 240, 19, 240, + 240, 35, 0, 50, 48, 119, 47, 0, 17, 93, 46, 89, + 77, 46, 89, 119, 150, 210, 182, 151, 179, 182, 166, 178, + 199, 150, 178, 214, 151, 147, 214, 166, 146, 231, 135, 146, + 246, 136, 130, 246, 136, 114, 240, 23, 98, 22, 114, 240, + 38, 98, 23, 98, 240, 38, 98, 38, 82, 240, 55, 66, + 54, 82, 240, 70, 66, 55, 66, 240, 70, 66, 70, 50, + 240, 87, 34, 86, 50, 240, 102, 34, 87, 34, 240, 102, + 34, 102, 18, 240, 121, 118, 18, 240, 136, 121, 240, 136, + 135, 240, 152, 135, 240, 166, 151, 240, 166, 165, 240, 182, + 165, 240, 196, 181, 240, 196, 195, 240, 212, 195, 240, 226, + 211, 0, 66, 80, 84, 35, 0, 13, 46, 59, 126, 59, + 183, 147, 240, 23, 147, 240, 39, 115, 240, 70, 114, 240, + 87, 83, 240, 103, 51, 240, 119, 50, 240, 151, 19, 240, + 169, 240, 185, 240, 199, 240, 215, 240, 231, 240, 230, 240, + 231, 240, 201, 240, 170, 240, 163, 23, 240, 131, 39, 240, + 130, 71, 240, 99, 86, 240, 83, 103, 240, 66, 135, 240, + 35, 135, 240, 19, 167, 243, 182, 227, 199, 140, 94, 76, + 94, 0, 48, 80, 78, 36, 0, 13, 78, 138, 78, 138, + 135, 227, 215, 210, 231, 195, 247, 178, 240, 23, 163, 240, + 39, 131, 240, 55, 131, 240, 71, 99, 240, 87, 98, 240, + 119, 67, 240, 135, 50, 240, 151, 35, 240, 167, 18, 240, + 186, 240, 200, 240, 216, 240, 230, 240, 246, 240, 246, 240, + 246, 240, 246, 240, 246, 240, 246, 240, 246, 240, 246, 240, + 246, 240, 246, 240, 190, 240, 126, 0, 51, 16, 70, 26, + 0, 9, 127, 6, 95, 6, 86, 134, 101, 135, 100, 150, + 115, 151, 114, 151, 130, 151, 130, 135, 146, 135, 146, 119, + 240, 71, 240, 55, 240, 70, 240, 71, 240, 70, 240, 71, + 240, 55, 240, 71, 114, 151, 130, 151, 130, 135, 146, 134, + 162, 119, 162, 118, 163, 103, 163, 102, 164, 87, 149, 86, + 135, 79, 7, 79, 6, 0, 36, 48, 48, 11, 7, 71, + 71, 67, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 135, 71, 71, 64, 36, 22, 0, 8, + 98, 146, 130, 146, 130, 146, 145, 161, 146, 146, 145, 161, + 146, 146, 146, 146, 150, 86, 87, 71, 71, 71, 71, 71, + 86, 86, 85, 101, 115, 131, 0, 75, 48, 11, 7, 71, + 71, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 71, 71, 71, 64, 19, 16, 240, 240, + 129, 227, 197, 167, 132, 20, 99, 68, 67, 99, 81, 129, + 0, 70, 80, 14, 11, 240, 240, 83, 117, 87, 71, 71, + 85, 115, 0, 48, 112, 22, 11, 240, 240, 114, 130, 130, + 145, 146, 145, 146, 146, 150, 87, 71, 71, 86, 85, 115, + 0, 37, 112, 47, 24, 0, 39, 87, 251, 196, 69, 165, + 85, 150, 85, 133, 101, 148, 101, 240, 69, 240, 69, 234, + 181, 53, 149, 85, 133, 101, 117, 117, 117, 117, 117, 117, + 117, 117, 118, 86, 133, 66, 23, 105, 39, 134, 70, 0, + 33, 64, 70, 26, 0, 9, 104, 240, 56, 240, 101, 240, + 101, 240, 101, 240, 101, 240, 101, 240, 101, 240, 101, 240, + 101, 240, 101, 240, 101, 38, 213, 25, 183, 69, 166, 101, + 149, 118, 133, 133, 133, 134, 117, 134, 117, 134, 117, 134, + 117, 134, 117, 134, 117, 134, 117, 134, 117, 133, 133, 118, + 134, 101, 148, 18, 69, 163, 42, 179, 69, 0, 37, 16, + 39, 21, 0, 35, 7, 188, 133, 69, 101, 70, 101, 70, + 85, 86, 85, 100, 86, 246, 246, 246, 246, 246, 246, 240, + 21, 240, 22, 130, 86, 130, 102, 99, 118, 67, 155, 199, + 0, 29, 112, 68, 27, 0, 11, 88, 240, 72, 240, 117, + 240, 117, 240, 117, 240, 117, 240, 117, 240, 117, 240, 117, + 240, 117, 240, 117, 230, 37, 201, 21, 166, 71, 149, 118, + 149, 133, 133, 149, 133, 149, 118, 149, 118, 149, 118, 149, + 118, 149, 118, 149, 118, 149, 118, 149, 133, 149, 134, 133, + 149, 118, 165, 75, 138, 24, 166, 56, 0, 37, 80, 45, + 23, 0, 38, 38, 250, 181, 69, 133, 100, 133, 101, 101, + 117, 101, 133, 70, 133, 70, 133, 70, 133, 79, 4, 70, + 240, 38, 240, 38, 240, 53, 240, 53, 178, 101, 147, 101, + 131, 134, 68, 187, 231, 0, 32, 96, 62, 21, 0, 6, + 38, 218, 165, 37, 133, 38, 132, 54, 117, 54, 117, 68, + 133, 240, 21, 240, 21, 240, 21, 240, 21, 220, 156, 197, + 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, + 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, + 240, 21, 240, 21, 240, 21, 220, 156, 0, 30, 66, 25, + 0, 41, 54, 68, 154, 21, 132, 69, 20, 100, 100, 20, + 85, 101, 18, 101, 101, 149, 101, 149, 101, 149, 101, 149, + 101, 164, 100, 196, 68, 219, 210, 38, 242, 240, 130, 240, + 115, 240, 116, 240, 125, 207, 1, 175, 1, 143, 3, 100, + 165, 84, 196, 84, 196, 84, 196, 100, 165, 102, 117, 158, + 218, 0, 7, 64, 70, 27, 0, 10, 24, 240, 72, 240, + 117, 240, 117, 240, 117, 240, 117, 240, 117, 240, 117, 240, + 117, 240, 117, 240, 117, 240, 117, 69, 213, 41, 181, 18, + 53, 183, 85, 166, 101, 166, 101, 165, 117, 165, 117, 165, + 117, 165, 117, 165, 117, 165, 117, 165, 117, 165, 117, 165, + 117, 165, 117, 165, 117, 165, 117, 123, 27, 75, 27, 0, + 37, 80, 36, 14, 240, 240, 244, 149, 150, 119, 119, 133, + 163, 0, 8, 8, 104, 149, 149, 149, 149, 149, 149, 149, + 149, 149, 149, 149, 149, 149, 149, 149, 149, 106, 74, 0, + 19, 96, 50, 18, 0, 7, 115, 229, 199, 183, 183, 197, + 227, 0, 10, 72, 168, 213, 213, 213, 213, 213, 213, 213, + 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, + 213, 84, 69, 70, 53, 70, 52, 86, 37, 100, 52, 122, + 166, 240, 240, 240, 69, 26, 0, 9, 104, 240, 56, 240, + 101, 240, 101, 240, 101, 240, 101, 240, 101, 240, 101, 240, + 101, 240, 101, 240, 101, 240, 101, 88, 133, 88, 133, 100, + 181, 99, 197, 83, 213, 51, 245, 35, 240, 21, 20, 240, + 26, 240, 27, 252, 229, 37, 229, 53, 213, 54, 197, 69, + 197, 85, 181, 86, 165, 101, 123, 26, 75, 26, 0, 36, + 32, 38, 15, 240, 240, 248, 120, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 123, 75, + 0, 21, 16, 69, 39, 0, 68, 40, 69, 117, 168, 41, + 57, 136, 18, 53, 34, 53, 183, 87, 85, 166, 102, 101, + 166, 102, 101, 165, 117, 117, 165, 117, 117, 165, 117, 117, + 165, 117, 117, 165, 117, 117, 165, 117, 117, 165, 117, 117, + 165, 117, 117, 165, 117, 117, 165, 117, 117, 165, 117, 117, + 165, 117, 117, 123, 27, 27, 75, 27, 27, 0, 54, 16, + 48, 27, 0, 47, 40, 69, 168, 41, 136, 18, 53, 183, + 85, 166, 101, 166, 101, 165, 117, 165, 117, 165, 117, 165, + 117, 165, 117, 165, 117, 165, 117, 165, 117, 165, 117, 165, + 117, 165, 117, 165, 117, 123, 27, 75, 27, 0, 37, 80, + 46, 24, 0, 39, 118, 240, 27, 181, 69, 149, 101, 132, + 132, 117, 133, 101, 133, 86, 134, 70, 134, 70, 134, 70, + 134, 70, 134, 70, 134, 70, 134, 85, 133, 101, 133, 102, + 117, 117, 101, 149, 69, 188, 231, 0, 34, 48, 62, 26, + 0, 45, 72, 38, 168, 25, 138, 69, 166, 101, 149, 118, + 133, 118, 133, 134, 117, 134, 117, 134, 117, 134, 117, 134, + 117, 134, 117, 134, 117, 133, 133, 118, 133, 118, 134, 86, + 151, 54, 175, 181, 37, 229, 240, 101, 240, 101, 240, 101, + 240, 101, 240, 101, 240, 101, 240, 59, 251, 0, 8, 48, + 66, 27, 0, 48, 22, 82, 186, 51, 166, 51, 20, 150, + 102, 134, 118, 134, 133, 133, 149, 118, 149, 118, 149, 118, + 149, 118, 149, 118, 149, 118, 149, 133, 149, 134, 133, 134, + 118, 150, 102, 166, 56, 186, 21, 214, 53, 240, 117, 240, + 117, 240, 117, 240, 117, 240, 117, 240, 117, 240, 117, 240, + 75, 240, 27, 0, 7, 32, 36, 20, 0, 35, 7, 52, + 103, 38, 87, 18, 21, 116, 17, 37, 118, 37, 118, 37, + 117, 81, 149, 245, 245, 245, 245, 245, 245, 245, 245, 245, + 245, 203, 155, 0, 28, 80, 38, 19, 0, 33, 106, 114, + 100, 98, 131, 83, 146, 83, 146, 84, 247, 218, 156, 140, + 154, 230, 66, 148, 66, 163, 67, 147, 67, 147, 68, 130, + 85, 84, 93, 98, 54, 0, 27, 16, 45, 18, 0, 12, + 2, 240, 18, 240, 18, 240, 18, 243, 243, 228, 228, 213, + 173, 93, 133, 213, 213, 213, 213, 213, 213, 213, 213, 213, + 213, 66, 117, 66, 117, 66, 117, 66, 117, 66, 133, 34, + 168, 181, 0, 25, 80, 47, 27, 0, 47, 40, 72, 120, + 72, 165, 117, 165, 117, 165, 117, 165, 117, 165, 117, 165, + 117, 165, 117, 165, 117, 165, 117, 165, 117, 165, 117, 165, + 117, 165, 117, 165, 102, 165, 102, 181, 74, 153, 24, 167, + 40, 0, 37, 80, 47, 25, 0, 43, 106, 71, 74, 71, + 117, 130, 165, 130, 181, 99, 181, 98, 198, 82, 213, 66, + 229, 66, 245, 35, 245, 34, 240, 21, 34, 240, 40, 240, + 39, 240, 55, 240, 69, 240, 85, 240, 100, 240, 99, 240, + 115, 0, 36, 71, 34, 0, 59, 73, 41, 40, 73, 41, + 40, 117, 84, 130, 165, 84, 130, 165, 100, 98, 197, 84, + 98, 197, 70, 82, 197, 70, 66, 229, 54, 66, 229, 34, + 21, 35, 229, 34, 36, 34, 240, 21, 18, 36, 34, 240, + 23, 56, 240, 23, 70, 240, 54, 70, 240, 53, 86, 240, + 53, 100, 240, 84, 100, 240, 83, 116, 240, 98, 130, 0, + 48, 48, 48, 25, 0, 43, 106, 41, 74, 41, 117, 99, + 197, 82, 229, 50, 245, 35, 240, 24, 240, 54, 240, 70, + 240, 85, 240, 101, 240, 70, 240, 56, 240, 34, 37, 242, + 53, 227, 69, 195, 101, 178, 117, 120, 73, 72, 73, 0, + 34, 112, 66, 25, 0, 43, 106, 71, 74, 71, 117, 130, + 166, 114, 181, 99, 181, 98, 213, 82, 213, 66, 229, 66, + 245, 50, 245, 34, 240, 22, 18, 240, 40, 240, 39, 240, + 70, 240, 69, 240, 85, 240, 100, 240, 99, 240, 130, 240, + 115, 240, 114, 243, 82, 229, 50, 245, 50, 245, 35, 244, + 35, 240, 39, 240, 68, 0, 8, 80, 40, 20, 0, 35, + 31, 95, 84, 85, 99, 86, 98, 101, 114, 86, 114, 85, + 130, 69, 230, 229, 229, 230, 66, 133, 82, 117, 98, 102, + 98, 101, 99, 86, 99, 85, 85, 79, 95, 0, 28, 16, + 11, 26, 0, 65, 15, 7, 79, 7, 0, 75, 32, 15, + 48, 0, 120, 15, 15, 14, 79, 15, 14, 0, 127, 0, + 11, 64, 25, 18, 240, 240, 131, 83, 101, 53, 85, 53, + 85, 53, 84, 68, 85, 53, 84, 68, 99, 83, 129, 113, + 0, 77, 64, 14, 19, 240, 240, 180, 97, 125, 93, 93, + 113, 100, 0, 91, 16, +}; + +//***************************************************************************** +// +// The font definition for the 44 point Cm bold font. +// +//***************************************************************************** +const tFont g_sFontCm44b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 43, + + // + // The height of the font. + // + 45, + + // + // The baseline of the font. + // + 34, + + // + // The offset to each character in the font. + // + { + 0, 5, 42, 83, 207, 293, 414, 507, + 531, 579, 627, 674, 740, 762, 773, 787, + 880, 943, 981, 1044, 1106, 1169, 1227, 1290, + 1361, 1419, 1482, 1505, 1536, 1572, 1593, 1648, + 1705, 1816, 1902, 1971, 2049, 2118, 2197, 2264, + 2340, 2409, 2447, 2511, 2596, 2664, 2784, 2871, + 2942, 3009, 3119, 3200, 3267, 3342, 3413, 3497, + 3616, 3700, 3778, 3848, 3896, 3932, 3980, 3999, + 4013, 4035, 4082, 4152, 4191, 4259, 4304, 4366, + 4432, 4502, 4538, 4588, 4657, 4695, 4764, 4812, + 4858, 4920, 4986, 5022, 5060, 5105, 5152, 5199, + 5270, 5318, 5384, 5424, 5435, 5450, 5475, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm44bData +}; diff --git a/grlib/fonts/fontcm44i.c b/grlib/fonts/fontcm44i.c new file mode 100644 index 0000000..4af7962 --- /dev/null +++ b/grlib/fonts/fontcm44i.c @@ -0,0 +1,614 @@ +//***************************************************************************** +// +// fontcm44i.c - Font definition for the 44pt Cm italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 44 point +// Bold: no +// Italic: yes +// Memory usage: 6292 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 44 point Cm italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm44iData[6090] = +{ + 4, 18, 0, 99, 36, 15, 240, 130, 196, 165, 164, 180, + 180, 179, 195, 180, 179, 195, 195, 195, 194, 195, 195, 194, + 210, 210, 209, 210, 210, 209, 225, 0, 9, 3, 180, 180, + 179, 0, 22, 16, 30, 19, 0, 7, 67, 83, 117, 53, + 101, 53, 101, 53, 161, 113, 145, 113, 161, 113, 145, 113, + 145, 113, 161, 113, 130, 98, 129, 114, 0, 70, 122, 35, + 0, 11, 33, 129, 240, 146, 114, 240, 145, 130, 240, 130, + 114, 240, 146, 114, 240, 130, 114, 240, 146, 114, 240, 130, + 129, 240, 146, 114, 240, 130, 129, 240, 146, 114, 240, 145, + 130, 240, 130, 114, 240, 145, 130, 240, 130, 114, 240, 146, + 114, 223, 14, 242, 129, 240, 146, 114, 240, 130, 129, 240, + 146, 114, 240, 145, 130, 240, 130, 114, 240, 145, 130, 255, + 14, 210, 114, 240, 146, 114, 240, 130, 129, 240, 146, 114, + 240, 130, 129, 240, 146, 114, 240, 130, 129, 240, 146, 114, + 240, 130, 129, 240, 146, 114, 240, 130, 129, 240, 146, 114, + 240, 130, 130, 240, 130, 114, 240, 145, 130, 0, 11, 80, + 84, 30, 0, 9, 117, 240, 131, 50, 240, 98, 97, 240, + 82, 129, 240, 51, 129, 240, 50, 145, 240, 35, 145, 240, + 35, 115, 240, 34, 131, 240, 34, 130, 240, 35, 240, 195, + 240, 194, 240, 210, 240, 195, 240, 154, 240, 130, 240, 210, + 240, 195, 240, 195, 240, 194, 240, 210, 240, 195, 240, 195, + 240, 194, 240, 135, 177, 146, 52, 177, 130, 69, 145, 130, + 82, 19, 113, 146, 66, 52, 65, 181, 118, 0, 42, 80, + 127, 35, 163, 240, 18, 194, 49, 226, 194, 66, 195, 178, + 98, 163, 194, 100, 85, 194, 113, 38, 34, 195, 113, 146, + 210, 129, 130, 226, 129, 130, 211, 129, 114, 227, 113, 114, + 242, 129, 98, 240, 18, 129, 82, 240, 34, 113, 82, 240, + 50, 97, 83, 240, 50, 97, 82, 240, 81, 81, 82, 240, + 113, 49, 82, 240, 147, 82, 129, 240, 130, 114, 18, 240, + 82, 98, 65, 240, 82, 82, 97, 240, 50, 97, 113, 240, + 34, 98, 113, 240, 18, 99, 113, 242, 114, 129, 226, 130, + 129, 211, 115, 114, 210, 130, 129, 210, 146, 129, 194, 162, + 113, 194, 178, 113, 178, 194, 97, 179, 209, 81, 179, 226, + 49, 194, 240, 20, 0, 36, 80, 108, 33, 240, 240, 228, + 240, 194, 66, 162, 194, 98, 131, 178, 129, 131, 162, 145, + 131, 162, 146, 129, 163, 115, 145, 162, 116, 129, 163, 115, + 130, 163, 240, 34, 178, 240, 34, 194, 240, 18, 210, 36, + 132, 213, 49, 99, 18, 195, 81, 83, 49, 195, 81, 66, + 97, 164, 65, 81, 113, 147, 36, 82, 113, 146, 194, 18, + 65, 131, 212, 65, 131, 211, 81, 116, 240, 97, 115, 240, + 97, 131, 240, 97, 131, 240, 81, 147, 240, 81, 147, 240, + 65, 178, 240, 65, 179, 240, 33, 211, 226, 243, 194, 240, + 51, 115, 240, 120, 0, 43, 64, 19, 11, 240, 240, 99, + 117, 101, 101, 161, 145, 161, 145, 145, 161, 130, 129, 0, + 41, 16, 90, 20, 241, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 49, 240, 50, 240, 34, 240, 34, 240, + 50, 240, 34, 240, 50, 240, 34, 240, 50, 240, 35, 240, + 34, 240, 50, 240, 34, 240, 50, 240, 50, 240, 35, 240, + 34, 240, 50, 240, 50, 240, 50, 240, 35, 240, 34, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 65, 240, 66, 240, 50, 240, 65, 240, + 65, 240, 81, 240, 65, 240, 81, 240, 91, 19, 161, 240, + 65, 240, 50, 240, 49, 240, 50, 240, 34, 240, 49, 240, + 50, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 19, 240, 19, 240, + 18, 240, 34, 240, 34, 240, 19, 240, 18, 240, 34, 240, + 34, 240, 19, 240, 18, 240, 34, 240, 18, 240, 34, 240, + 18, 240, 34, 240, 18, 240, 34, 240, 18, 240, 33, 240, + 34, 240, 18, 240, 18, 240, 33, 240, 33, 240, 33, 240, + 33, 240, 48, 48, 21, 162, 240, 66, 240, 50, 240, 66, + 209, 82, 81, 99, 65, 67, 115, 49, 36, 147, 18, 19, + 213, 240, 49, 240, 53, 211, 17, 35, 147, 49, 51, 115, + 65, 67, 97, 82, 81, 210, 240, 66, 240, 50, 240, 66, + 0, 67, 48, 59, 30, 0, 35, 82, 240, 210, 240, 210, + 240, 209, 240, 210, 240, 210, 240, 210, 240, 209, 240, 210, + 240, 210, 240, 210, 240, 209, 240, 210, 240, 31, 11, 240, + 17, 240, 225, 240, 210, 240, 210, 240, 209, 240, 225, 240, + 210, 240, 210, 240, 209, 240, 225, 240, 210, 240, 210, 0, + 36, 16, 19, 10, 0, 36, 83, 100, 100, 100, 145, 129, + 145, 145, 129, 145, 129, 129, 129, 240, 224, 9, 15, 0, + 43, 27, 75, 0, 36, 16, 11, 8, 0, 29, 19, 68, + 68, 67, 0, 11, 80, 92, 30, 240, 146, 240, 210, 240, + 194, 240, 210, 240, 194, 240, 209, 240, 210, 240, 194, 240, + 210, 240, 194, 240, 210, 240, 194, 240, 209, 240, 210, 240, + 194, 240, 210, 240, 194, 240, 210, 240, 194, 240, 209, 240, + 210, 240, 194, 240, 210, 240, 194, 240, 209, 240, 210, 240, + 194, 240, 210, 240, 194, 240, 210, 240, 194, 240, 209, 240, + 210, 240, 194, 240, 210, 240, 194, 240, 210, 240, 194, 240, + 209, 240, 210, 240, 194, 240, 210, 240, 194, 240, 210, 240, + 208, 67, 23, 0, 12, 117, 240, 18, 51, 211, 83, 194, + 114, 178, 131, 147, 131, 131, 147, 131, 147, 115, 163, 115, + 148, 115, 148, 100, 148, 99, 163, 115, 163, 100, 148, 100, + 148, 99, 163, 115, 163, 115, 148, 100, 148, 100, 147, 115, + 163, 115, 147, 131, 147, 131, 131, 147, 130, 178, 115, 179, + 83, 211, 50, 240, 22, 0, 30, 64, 61, 19, 0, 11, + 33, 240, 34, 240, 18, 240, 19, 244, 214, 164, 34, 240, + 19, 240, 19, 240, 19, 240, 18, 240, 19, 240, 19, 240, + 19, 240, 18, 240, 19, 240, 19, 240, 19, 240, 18, 240, + 19, 240, 19, 240, 19, 240, 18, 240, 19, 240, 19, 240, + 19, 240, 18, 240, 20, 173, 0, 26, 112, 76, 25, 0, + 14, 5, 240, 50, 67, 241, 115, 209, 146, 193, 163, 161, + 65, 99, 161, 65, 99, 145, 81, 99, 145, 81, 99, 129, + 81, 115, 129, 81, 99, 145, 65, 115, 145, 49, 115, 179, + 131, 240, 99, 240, 98, 240, 99, 240, 99, 240, 83, 240, + 98, 240, 98, 240, 114, 240, 114, 193, 146, 194, 145, 209, + 146, 194, 151, 98, 146, 59, 145, 104, 146, 133, 0, 32, + 64, 71, 25, 0, 14, 5, 240, 50, 67, 226, 115, 193, + 163, 162, 163, 161, 179, 145, 65, 115, 145, 65, 115, 145, + 65, 114, 161, 49, 115, 179, 130, 240, 114, 240, 114, 240, + 99, 240, 38, 240, 146, 240, 146, 240, 131, 240, 115, 240, + 115, 240, 115, 147, 163, 132, 148, 131, 163, 145, 195, 145, + 179, 162, 147, 193, 131, 226, 67, 240, 38, 0, 33, 32, + 83, 22, 0, 13, 2, 240, 82, 240, 67, 240, 67, 240, + 67, 240, 66, 240, 67, 240, 66, 240, 82, 240, 67, 240, + 66, 240, 67, 240, 66, 240, 82, 240, 66, 240, 82, 240, + 66, 240, 81, 240, 82, 49, 242, 51, 225, 67, 209, 82, + 210, 82, 194, 83, 193, 99, 177, 115, 151, 50, 145, 102, + 129, 148, 34, 246, 240, 18, 240, 67, 240, 67, 240, 67, + 240, 66, 240, 67, 240, 67, 240, 66, 0, 6, 112, 66, + 24, 0, 13, 2, 130, 203, 202, 225, 22, 240, 17, 240, + 129, 240, 113, 240, 129, 240, 129, 240, 129, 240, 113, 53, + 241, 18, 66, 226, 99, 194, 130, 240, 115, 240, 99, 240, + 99, 240, 99, 240, 99, 240, 84, 131, 148, 116, 147, 131, + 163, 129, 179, 145, 179, 146, 147, 162, 131, 194, 99, 226, + 67, 240, 21, 0, 32, 67, 23, 0, 13, 21, 243, 66, + 210, 113, 194, 114, 178, 115, 163, 114, 163, 240, 67, 240, + 83, 240, 67, 240, 83, 52, 196, 18, 51, 163, 17, 98, + 164, 130, 133, 130, 132, 147, 116, 147, 115, 163, 100, 148, + 100, 147, 116, 147, 115, 163, 115, 147, 131, 147, 131, 146, + 147, 131, 162, 115, 179, 98, 211, 51, 246, 0, 30, 64, + 71, 25, 0, 13, 17, 36, 129, 129, 38, 97, 153, 82, + 133, 50, 66, 147, 97, 50, 147, 133, 146, 193, 146, 194, + 145, 194, 146, 194, 145, 194, 240, 130, 240, 114, 240, 115, + 240, 114, 240, 115, 240, 115, 240, 99, 240, 115, 240, 115, + 240, 99, 240, 115, 240, 100, 240, 99, 240, 115, 240, 100, + 240, 99, 240, 115, 240, 100, 240, 114, 0, 33, 48, 68, + 24, 0, 13, 69, 240, 34, 67, 210, 114, 194, 146, 163, + 146, 162, 162, 147, 162, 147, 162, 147, 146, 164, 114, 181, + 97, 213, 50, 245, 18, 240, 37, 240, 86, 240, 18, 22, + 210, 70, 178, 101, 162, 148, 130, 164, 114, 195, 114, 195, + 98, 211, 98, 210, 114, 195, 114, 194, 146, 162, 162, 146, + 195, 82, 240, 22, 0, 31, 96, 68, 24, 0, 13, 69, + 240, 19, 66, 226, 114, 194, 130, 179, 131, 147, 147, 147, + 147, 131, 163, 131, 163, 116, 148, 116, 148, 115, 164, 115, + 148, 131, 148, 131, 133, 146, 133, 147, 97, 19, 178, 66, + 35, 197, 52, 240, 83, 240, 99, 240, 83, 240, 99, 240, + 83, 163, 130, 179, 114, 179, 114, 194, 114, 226, 67, 240, + 22, 0, 32, 17, 12, 0, 21, 83, 132, 132, 131, 0, + 17, 35, 132, 132, 131, 0, 17, 80, 26, 13, 0, 23, + 67, 148, 148, 147, 0, 18, 99, 164, 133, 147, 193, 193, + 193, 177, 193, 177, 177, 178, 177, 240, 240, 128, 36, 15, + 0, 21, 83, 180, 180, 179, 0, 9, 1, 225, 210, 210, + 209, 210, 210, 210, 195, 195, 194, 195, 195, 195, 195, 180, + 179, 195, 180, 180, 180, 165, 164, 194, 240, 192, 13, 32, + 0, 72, 47, 11, 0, 28, 79, 11, 0, 68, 96, 55, + 19, 0, 27, 67, 244, 244, 240, 18, 0, 11, 51, 241, + 49, 209, 65, 193, 81, 193, 66, 240, 33, 240, 19, 243, + 243, 243, 227, 243, 114, 99, 115, 83, 131, 82, 162, 66, + 177, 81, 178, 81, 177, 97, 162, 97, 161, 113, 145, 145, + 113, 177, 66, 213, 240, 240, 54, 19, 240, 196, 210, 66, + 161, 113, 145, 145, 113, 161, 98, 161, 97, 177, 82, 177, + 81, 178, 66, 162, 83, 131, 83, 115, 98, 115, 243, 227, + 243, 243, 243, 240, 18, 240, 18, 65, 193, 81, 193, 65, + 209, 49, 243, 0, 11, 50, 240, 20, 244, 243, 0, 28, + 111, 31, 0, 9, 70, 240, 115, 99, 240, 50, 162, 242, + 210, 210, 241, 193, 240, 49, 161, 117, 113, 146, 83, 66, + 97, 129, 82, 113, 97, 113, 82, 130, 81, 98, 67, 147, + 49, 97, 67, 163, 49, 82, 67, 162, 65, 81, 67, 163, + 65, 81, 67, 163, 65, 81, 51, 179, 49, 81, 67, 178, + 65, 81, 67, 163, 65, 81, 67, 163, 65, 81, 67, 163, + 49, 97, 67, 147, 65, 97, 82, 132, 65, 97, 83, 97, + 19, 49, 114, 83, 65, 35, 33, 145, 117, 68, 161, 240, + 240, 17, 240, 242, 240, 35, 162, 227, 226, 132, 240, 72, + 0, 44, 80, 86, 31, 0, 6, 50, 240, 211, 240, 211, + 240, 196, 240, 196, 240, 181, 240, 177, 19, 240, 161, 35, + 240, 146, 35, 240, 145, 51, 240, 130, 51, 240, 129, 67, + 240, 114, 67, 240, 113, 83, 240, 98, 83, 240, 97, 100, + 240, 66, 100, 240, 50, 116, 240, 50, 116, 240, 34, 132, + 240, 33, 148, 240, 31, 240, 17, 179, 242, 179, 241, 195, + 225, 211, 210, 211, 209, 227, 194, 227, 178, 243, 164, 228, + 120, 154, 0, 43, 16, 73, 33, 0, 13, 47, 3, 240, + 51, 163, 240, 35, 179, 240, 19, 195, 243, 195, 227, 212, + 211, 212, 211, 211, 227, 196, 211, 211, 227, 196, 227, 180, + 243, 163, 240, 19, 147, 240, 61, 240, 83, 163, 240, 35, + 179, 243, 211, 227, 212, 211, 212, 211, 212, 195, 228, 195, + 228, 195, 212, 211, 212, 195, 212, 211, 196, 227, 180, 228, + 148, 223, 3, 0, 47, 32, 89, 32, 0, 9, 103, 97, + 240, 19, 82, 66, 227, 145, 35, 210, 196, 195, 212, 179, + 243, 163, 240, 19, 162, 240, 34, 163, 240, 34, 147, 240, + 50, 147, 240, 50, 131, 240, 65, 147, 240, 212, 240, 211, + 240, 227, 240, 212, 240, 212, 240, 211, 240, 227, 240, 227, + 240, 65, 147, 240, 65, 147, 240, 50, 147, 240, 49, 178, + 240, 34, 179, 240, 17, 195, 241, 226, 225, 240, 18, 193, + 240, 35, 161, 240, 83, 82, 240, 150, 0, 42, 48, 78, + 34, 0, 13, 95, 2, 240, 84, 147, 240, 52, 163, 240, + 35, 195, 240, 19, 211, 243, 211, 228, 226, 227, 243, 211, + 243, 211, 243, 196, 243, 195, 240, 19, 195, 240, 19, 195, + 244, 180, 244, 179, 240, 19, 195, 240, 19, 195, 244, 180, + 243, 195, 240, 19, 195, 243, 211, 243, 211, 227, 211, 242, + 227, 226, 243, 211, 243, 194, 240, 19, 179, 240, 35, 147, + 255, 2, 0, 48, 112, 78, 33, 0, 13, 47, 7, 228, + 180, 228, 195, 227, 226, 227, 226, 227, 225, 228, 225, 227, + 241, 227, 241, 227, 129, 97, 212, 129, 240, 84, 114, 240, + 83, 129, 240, 99, 114, 240, 93, 240, 84, 99, 240, 83, + 129, 240, 99, 129, 240, 99, 129, 240, 84, 114, 98, 195, + 240, 17, 211, 242, 211, 241, 212, 241, 211, 241, 227, 226, + 227, 226, 212, 195, 227, 181, 175, 7, 0, 46, 96, 75, + 33, 0, 13, 47, 7, 228, 164, 244, 194, 243, 210, 243, + 210, 243, 225, 228, 225, 228, 210, 227, 226, 227, 225, 228, + 114, 240, 84, 113, 240, 99, 129, 240, 99, 114, 240, 84, + 99, 240, 92, 240, 99, 114, 240, 99, 114, 240, 99, 114, + 240, 84, 113, 240, 99, 129, 240, 99, 240, 243, 240, 228, + 240, 227, 240, 243, 240, 243, 240, 228, 240, 228, 240, 172, + 0, 48, 89, 33, 0, 10, 23, 97, 240, 20, 82, 66, + 243, 145, 35, 211, 196, 211, 212, 195, 243, 179, 240, 19, + 163, 240, 34, 164, 240, 34, 148, 240, 50, 148, 240, 50, + 132, 240, 65, 148, 240, 212, 240, 228, 240, 228, 240, 213, + 240, 212, 240, 228, 240, 228, 203, 100, 240, 20, 148, 240, + 20, 148, 240, 19, 164, 240, 19, 179, 240, 19, 180, 243, + 180, 227, 212, 211, 227, 193, 18, 243, 161, 34, 240, 20, + 83, 65, 240, 55, 0, 43, 80, 94, 38, 0, 15, 27, + 91, 244, 180, 240, 67, 196, 240, 52, 195, 240, 67, 211, + 240, 67, 196, 240, 67, 196, 240, 52, 195, 240, 68, 195, + 240, 67, 211, 240, 67, 196, 240, 52, 195, 240, 68, 195, + 240, 67, 211, 240, 79, 4, 240, 52, 195, 240, 68, 195, + 240, 67, 211, 240, 67, 196, 240, 52, 195, 240, 68, 195, + 240, 67, 211, 240, 67, 196, 240, 52, 195, 240, 68, 195, + 240, 67, 211, 240, 67, 196, 240, 52, 195, 240, 68, 195, + 251, 91, 0, 53, 80, 63, 23, 0, 9, 76, 244, 240, + 67, 240, 83, 240, 68, 240, 68, 240, 67, 240, 83, 240, + 68, 240, 68, 240, 67, 240, 83, 240, 68, 240, 68, 240, + 67, 240, 83, 240, 68, 240, 68, 240, 67, 240, 83, 240, + 68, 240, 68, 240, 67, 240, 83, 240, 68, 240, 68, 240, + 67, 240, 83, 240, 68, 252, 0, 33, 69, 26, 0, 11, + 27, 240, 83, 240, 131, 240, 116, 240, 115, 240, 131, 240, + 131, 240, 116, 240, 115, 240, 131, 240, 131, 240, 116, 240, + 115, 240, 131, 240, 131, 240, 116, 240, 115, 240, 131, 240, + 131, 240, 116, 240, 115, 240, 131, 240, 131, 211, 100, 196, + 99, 212, 99, 211, 99, 225, 131, 226, 99, 240, 18, 51, + 240, 84, 0, 34, 112, 97, 38, 0, 15, 27, 136, 228, + 213, 240, 20, 211, 240, 51, 210, 240, 83, 194, 240, 99, + 178, 240, 100, 162, 240, 115, 161, 240, 147, 145, 240, 163, + 114, 240, 164, 98, 240, 180, 82, 240, 195, 83, 240, 195, + 68, 240, 195, 34, 20, 240, 164, 18, 36, 240, 163, 18, + 67, 240, 165, 84, 240, 148, 115, 240, 132, 131, 240, 131, + 148, 240, 115, 163, 240, 115, 164, 240, 84, 164, 240, 83, + 195, 240, 83, 196, 240, 67, 196, 240, 52, 211, 240, 52, + 197, 219, 121, 0, 53, 80, 67, 28, 0, 11, 60, 240, + 68, 240, 148, 240, 147, 240, 163, 240, 163, 240, 148, 240, + 147, 240, 163, 240, 163, 240, 148, 240, 148, 240, 147, 240, + 163, 240, 163, 240, 148, 240, 147, 240, 163, 240, 163, 240, + 148, 209, 163, 209, 179, 209, 179, 194, 164, 193, 179, 194, + 179, 194, 179, 178, 180, 163, 179, 149, 127, 5, 0, 39, + 64, 147, 44, 0, 17, 56, 240, 40, 244, 240, 36, 240, + 68, 240, 17, 19, 240, 53, 240, 20, 240, 65, 19, 241, + 19, 240, 65, 34, 225, 35, 240, 65, 34, 225, 35, 240, + 50, 35, 193, 35, 240, 65, 51, 193, 35, 240, 65, 51, + 177, 51, 240, 65, 51, 161, 67, 240, 50, 51, 161, 51, + 240, 66, 51, 145, 67, 240, 65, 67, 145, 67, 240, 65, + 67, 129, 83, 240, 50, 67, 129, 67, 240, 66, 82, 113, + 83, 240, 65, 99, 81, 99, 240, 65, 99, 81, 99, 240, + 65, 99, 65, 99, 240, 66, 99, 65, 99, 240, 65, 115, + 49, 115, 240, 65, 115, 33, 131, 240, 65, 115, 33, 115, + 240, 66, 115, 17, 131, 240, 65, 131, 17, 131, 240, 65, + 132, 147, 240, 50, 146, 147, 240, 52, 130, 147, 249, 97, + 107, 0, 61, 112, 114, 38, 0, 15, 23, 170, 244, 195, + 240, 53, 209, 240, 69, 209, 240, 65, 35, 178, 240, 65, + 35, 177, 240, 66, 35, 177, 240, 66, 51, 161, 240, 65, + 67, 146, 240, 65, 67, 145, 240, 81, 83, 129, 240, 66, + 83, 129, 240, 65, 99, 114, 240, 65, 115, 97, 240, 81, + 115, 97, 240, 66, 116, 81, 240, 65, 147, 66, 240, 65, + 147, 65, 240, 81, 148, 49, 240, 66, 163, 49, 240, 65, + 179, 34, 240, 65, 180, 17, 240, 81, 195, 17, 240, 66, + 195, 17, 240, 65, 213, 240, 65, 227, 240, 81, 227, 240, + 66, 227, 240, 51, 242, 249, 193, 0, 54, 32, 95, 32, + 0, 9, 119, 240, 116, 83, 240, 66, 147, 240, 19, 179, + 227, 210, 211, 227, 179, 240, 18, 163, 240, 35, 132, 240, + 35, 131, 240, 51, 116, 240, 51, 100, 240, 67, 100, 240, + 67, 100, 240, 67, 84, 240, 68, 84, 240, 68, 84, 240, + 67, 85, 240, 67, 84, 240, 68, 84, 240, 67, 100, 240, + 52, 100, 240, 51, 116, 240, 51, 116, 240, 35, 147, 240, + 19, 163, 240, 19, 164, 227, 195, 211, 227, 178, 240, 35, + 131, 240, 67, 83, 240, 135, 0, 42, 32, 70, 33, 0, + 13, 47, 2, 240, 83, 148, 240, 35, 164, 243, 195, 243, + 196, 227, 196, 227, 196, 212, 196, 211, 212, 211, 196, 227, + 196, 212, 180, 227, 195, 243, 164, 240, 19, 132, 240, 46, + 240, 67, 240, 243, 240, 243, 240, 228, 240, 227, 240, 243, + 240, 243, 240, 228, 240, 227, 240, 243, 240, 243, 240, 228, + 240, 228, 240, 171, 0, 48, 16, 125, 32, 0, 9, 119, + 240, 116, 83, 240, 66, 147, 240, 19, 179, 227, 210, 210, + 243, 179, 240, 18, 163, 240, 35, 131, 240, 51, 116, 240, + 51, 115, 240, 67, 100, 240, 67, 99, 240, 83, 84, 240, + 83, 83, 240, 99, 83, 240, 84, 68, 240, 83, 84, 240, + 83, 83, 240, 84, 83, 240, 83, 99, 240, 83, 99, 240, + 67, 115, 240, 67, 115, 240, 51, 146, 131, 115, 147, 97, + 49, 83, 163, 81, 81, 51, 194, 65, 97, 35, 226, 49, + 97, 19, 240, 18, 33, 100, 240, 52, 83, 240, 119, 17, + 113, 240, 114, 113, 240, 114, 113, 240, 114, 97, 240, 131, + 51, 240, 136, 240, 152, 240, 151, 240, 180, 0, 9, 80, + 82, 32, 0, 12, 127, 1, 240, 68, 116, 240, 35, 163, + 240, 19, 179, 228, 180, 211, 196, 211, 196, 211, 196, 211, + 180, 211, 196, 211, 180, 227, 179, 243, 163, 243, 132, 240, + 44, 240, 83, 115, 240, 67, 131, 240, 35, 163, 240, 19, + 163, 240, 19, 163, 240, 19, 163, 243, 179, 243, 164, 243, + 164, 243, 164, 228, 164, 227, 180, 81, 131, 180, 66, 116, + 180, 65, 90, 147, 49, 240, 181, 0, 40, 112, 74, 28, + 0, 8, 85, 81, 242, 82, 34, 226, 114, 18, 210, 147, + 210, 163, 195, 178, 194, 194, 179, 193, 195, 193, 195, 193, + 195, 193, 196, 240, 149, 240, 150, 240, 121, 240, 90, 240, + 89, 240, 118, 240, 164, 240, 148, 240, 163, 177, 211, 177, + 211, 162, 211, 162, 210, 178, 195, 178, 194, 179, 194, 180, + 162, 194, 18, 130, 209, 51, 67, 209, 102, 0, 36, 112, + 75, 31, 0, 12, 15, 9, 111, 10, 100, 115, 116, 98, + 147, 130, 98, 148, 145, 98, 147, 161, 97, 163, 161, 82, + 163, 161, 81, 164, 146, 81, 163, 161, 240, 35, 240, 211, + 240, 196, 240, 195, 240, 211, 240, 211, 240, 196, 240, 195, + 240, 211, 240, 196, 240, 195, 240, 211, 240, 211, 240, 196, + 240, 195, 240, 211, 240, 211, 240, 196, 240, 196, 240, 111, + 0, 44, 80, 73, 32, 0, 12, 27, 121, 148, 196, 195, + 226, 196, 225, 211, 241, 211, 226, 211, 225, 212, 225, 211, + 241, 211, 226, 211, 225, 212, 225, 211, 241, 211, 226, 211, + 225, 212, 225, 211, 241, 211, 226, 211, 225, 227, 225, 212, + 225, 211, 226, 211, 225, 227, 225, 227, 209, 243, 193, 240, + 34, 178, 240, 35, 146, 240, 66, 130, 240, 99, 66, 240, + 165, 0, 42, 96, 88, 33, 0, 12, 58, 184, 116, 244, + 164, 240, 18, 180, 242, 211, 241, 227, 226, 227, 225, 243, + 209, 240, 19, 194, 240, 19, 193, 240, 35, 178, 240, 36, + 161, 240, 52, 145, 240, 68, 130, 240, 68, 129, 240, 99, + 114, 240, 99, 113, 240, 115, 97, 240, 131, 97, 240, 131, + 81, 240, 147, 66, 240, 148, 49, 240, 164, 33, 240, 180, + 33, 240, 180, 17, 240, 213, 240, 212, 240, 227, 240, 243, + 240, 242, 240, 240, 18, 0, 44, 48, 131, 44, 0, 16, + 74, 90, 105, 116, 180, 180, 163, 195, 210, 179, 195, 209, + 195, 195, 194, 195, 195, 193, 211, 180, 177, 228, 164, 177, + 228, 145, 19, 161, 244, 145, 19, 146, 244, 129, 36, 129, + 240, 20, 129, 36, 114, 240, 20, 113, 52, 113, 240, 36, + 98, 52, 98, 240, 36, 97, 68, 97, 240, 52, 82, 68, + 82, 240, 67, 81, 84, 81, 240, 83, 66, 84, 66, 240, + 83, 65, 115, 65, 240, 99, 50, 115, 50, 240, 99, 49, + 131, 49, 240, 115, 33, 147, 33, 240, 131, 33, 147, 33, + 240, 131, 17, 163, 17, 240, 147, 17, 163, 17, 240, 148, + 180, 240, 164, 180, 240, 163, 195, 240, 179, 195, 240, 178, + 210, 240, 194, 210, 0, 57, 112, 97, 38, 0, 15, 42, + 121, 245, 164, 240, 83, 178, 240, 116, 161, 240, 132, 145, + 240, 163, 130, 240, 164, 98, 240, 180, 97, 240, 211, 81, + 240, 228, 49, 240, 240, 19, 33, 240, 240, 38, 240, 240, + 37, 240, 240, 67, 240, 240, 84, 240, 240, 68, 240, 240, + 49, 19, 240, 240, 33, 36, 240, 242, 36, 240, 226, 67, + 240, 225, 84, 240, 193, 115, 240, 177, 132, 240, 145, 148, + 240, 130, 163, 240, 114, 180, 240, 82, 196, 240, 66, 227, + 240, 52, 197, 217, 154, 0, 53, 64, 77, 33, 0, 12, + 58, 184, 116, 244, 179, 243, 195, 242, 212, 210, 228, 194, + 240, 19, 178, 240, 36, 161, 240, 52, 145, 240, 83, 130, + 240, 84, 98, 240, 100, 82, 240, 131, 81, 240, 148, 49, + 240, 164, 34, 240, 179, 18, 240, 197, 240, 212, 240, 227, + 240, 243, 240, 243, 240, 243, 240, 227, 240, 243, 240, 243, + 240, 243, 240, 228, 240, 227, 240, 243, 240, 187, 0, 47, + 112, 69, 31, 0, 12, 111, 3, 198, 148, 195, 180, 210, + 195, 210, 195, 226, 180, 225, 180, 241, 164, 242, 148, 240, + 17, 163, 240, 195, 240, 196, 240, 180, 240, 180, 240, 180, + 240, 195, 240, 196, 240, 180, 240, 180, 240, 180, 161, 240, + 19, 162, 243, 177, 244, 177, 228, 178, 212, 193, 212, 194, + 211, 195, 196, 179, 196, 165, 191, 5, 0, 44, 89, 20, + 240, 240, 21, 241, 240, 50, 240, 50, 240, 49, 240, 65, + 240, 50, 240, 50, 240, 49, 240, 65, 240, 50, 240, 50, + 240, 49, 240, 65, 240, 50, 240, 50, 240, 49, 240, 65, + 240, 50, 240, 50, 240, 49, 240, 65, 240, 50, 240, 50, + 240, 49, 240, 65, 240, 50, 240, 50, 240, 49, 240, 50, + 240, 50, 240, 50, 240, 49, 240, 50, 240, 50, 240, 50, + 240, 49, 240, 50, 240, 50, 240, 50, 240, 49, 240, 50, + 240, 54, 224, 33, 19, 240, 240, 225, 113, 145, 113, 145, + 113, 145, 113, 145, 113, 161, 113, 145, 113, 161, 113, 145, + 113, 165, 53, 101, 53, 101, 53, 115, 83, 0, 69, 96, + 89, 21, 240, 240, 38, 240, 50, 240, 66, 240, 66, 240, + 65, 240, 66, 240, 66, 240, 66, 240, 65, 240, 81, 240, + 66, 240, 66, 240, 65, 240, 81, 240, 66, 240, 66, 240, + 65, 240, 81, 240, 66, 240, 66, 240, 65, 240, 81, 240, + 66, 240, 66, 240, 65, 240, 81, 240, 66, 240, 66, 240, + 65, 240, 81, 240, 66, 240, 66, 240, 65, 240, 81, 240, + 66, 240, 66, 240, 65, 240, 81, 240, 66, 240, 66, 240, + 65, 240, 81, 246, 240, 17, 15, 0, 6, 50, 195, 178, + 18, 130, 66, 98, 97, 81, 145, 0, 66, 16, 11, 8, + 240, 240, 51, 68, 68, 67, 0, 36, 80, 19, 11, 240, + 209, 145, 145, 145, 145, 161, 145, 161, 145, 165, 101, 101, + 115, 0, 40, 96, 53, 22, 0, 39, 68, 240, 18, 50, + 18, 178, 84, 162, 115, 147, 115, 131, 131, 131, 130, 131, + 131, 131, 131, 116, 131, 116, 130, 131, 131, 131, 131, 49, + 67, 130, 65, 67, 115, 65, 82, 115, 50, 82, 97, 18, + 49, 114, 50, 34, 34, 132, 84, 0, 31, 66, 19, 0, + 7, 54, 240, 19, 240, 19, 240, 19, 240, 19, 240, 18, + 240, 19, 240, 19, 240, 19, 243, 240, 19, 240, 19, 36, + 163, 17, 50, 133, 82, 116, 99, 99, 115, 99, 115, 83, + 131, 83, 131, 83, 131, 68, 116, 68, 115, 83, 131, 83, + 116, 83, 115, 99, 114, 115, 99, 130, 83, 162, 50, 213, + 0, 27, 64, 40, 19, 0, 34, 37, 195, 65, 162, 113, + 130, 114, 115, 99, 99, 114, 115, 243, 240, 19, 244, 243, + 240, 19, 240, 19, 240, 19, 177, 67, 162, 82, 146, 99, + 114, 131, 67, 181, 0, 27, 48, 74, 24, 0, 10, 87, + 240, 83, 240, 99, 240, 99, 240, 98, 240, 114, 240, 99, + 240, 99, 240, 98, 240, 114, 240, 99, 244, 35, 210, 50, + 18, 210, 84, 194, 115, 179, 115, 163, 130, 179, 130, 163, + 131, 163, 131, 148, 130, 164, 130, 163, 131, 163, 131, 49, + 99, 130, 65, 99, 115, 65, 114, 100, 50, 114, 97, 18, + 49, 146, 50, 34, 34, 164, 84, 0, 34, 41, 19, 0, + 34, 37, 194, 66, 147, 98, 115, 114, 99, 130, 99, 115, + 83, 130, 99, 84, 106, 148, 243, 240, 19, 240, 19, 240, + 19, 240, 19, 162, 82, 146, 99, 114, 131, 66, 197, 0, + 27, 48, 94, 24, 0, 7, 116, 240, 66, 34, 240, 34, + 35, 240, 19, 35, 240, 19, 34, 240, 34, 240, 99, 240, + 99, 240, 99, 240, 99, 240, 98, 240, 99, 240, 43, 240, + 35, 240, 98, 240, 114, 240, 99, 240, 99, 240, 99, 240, + 98, 240, 114, 240, 99, 240, 99, 240, 99, 240, 99, 240, + 98, 240, 99, 240, 99, 240, 99, 240, 99, 240, 98, 240, + 114, 240, 99, 240, 98, 240, 114, 240, 34, 50, 240, 19, + 34, 240, 35, 34, 240, 34, 34, 240, 68, 0, 8, 48, + 64, 23, 0, 41, 84, 240, 34, 50, 18, 194, 84, 178, + 115, 163, 115, 147, 131, 147, 130, 147, 131, 147, 131, 132, + 131, 132, 130, 147, 131, 147, 131, 147, 131, 147, 115, 178, + 115, 178, 100, 194, 50, 19, 212, 35, 240, 83, 240, 83, + 240, 83, 240, 67, 240, 83, 163, 99, 164, 98, 194, 83, + 231, 0, 7, 64, 74, 25, 0, 9, 118, 240, 115, 240, + 114, 240, 115, 240, 115, 240, 115, 240, 114, 240, 115, 240, + 115, 240, 115, 240, 114, 240, 115, 54, 211, 18, 67, 197, + 99, 180, 115, 164, 131, 163, 147, 163, 147, 162, 147, 163, + 147, 163, 132, 163, 131, 163, 147, 163, 131, 81, 83, 131, + 66, 83, 116, 65, 83, 131, 66, 83, 131, 65, 99, 146, + 49, 114, 180, 0, 35, 48, 43, 15, 0, 8, 66, 196, + 179, 0, 14, 36, 161, 35, 129, 51, 113, 67, 113, 67, + 98, 52, 97, 67, 195, 180, 179, 180, 179, 195, 65, 100, + 50, 99, 65, 115, 65, 115, 49, 131, 34, 163, 0, 21, + 80, 69, 22, 0, 12, 114, 240, 68, 240, 51, 0, 21, + 20, 240, 18, 50, 226, 67, 209, 83, 193, 99, 193, 99, + 177, 100, 240, 51, 240, 67, 240, 67, 240, 52, 240, 51, + 240, 67, 240, 52, 240, 51, 240, 67, 240, 67, 240, 52, + 240, 51, 240, 67, 240, 67, 240, 52, 240, 51, 240, 67, + 194, 67, 195, 51, 210, 51, 245, 0, 7, 64, 75, 21, + 0, 8, 38, 240, 51, 240, 51, 240, 51, 240, 51, 240, + 50, 240, 51, 240, 51, 240, 51, 240, 50, 240, 51, 240, + 51, 99, 147, 66, 34, 130, 65, 51, 115, 49, 66, 131, + 34, 227, 33, 242, 18, 244, 240, 39, 226, 67, 194, 83, + 163, 83, 163, 83, 49, 98, 99, 49, 98, 99, 49, 83, + 98, 49, 99, 98, 49, 99, 114, 33, 98, 147, 0, 29, + 96, 43, 14, 240, 240, 247, 163, 179, 179, 179, 178, 179, + 179, 179, 163, 179, 179, 179, 163, 179, 179, 164, 163, 179, + 179, 163, 179, 179, 179, 49, 99, 65, 99, 65, 99, 50, + 99, 49, 130, 34, 148, 0, 20, 32, 80, 38, 0, 66, + 115, 101, 102, 177, 34, 50, 66, 50, 67, 146, 50, 18, + 83, 18, 99, 129, 68, 101, 115, 129, 52, 116, 131, 114, + 51, 131, 147, 113, 67, 131, 147, 194, 146, 147, 195, 131, + 147, 195, 131, 132, 195, 131, 131, 210, 146, 147, 195, 131, + 131, 81, 115, 131, 131, 66, 115, 131, 116, 65, 130, 131, + 131, 66, 115, 131, 131, 65, 131, 131, 146, 49, 146, 146, + 180, 0, 53, 32, 59, 27, 0, 47, 83, 102, 177, 34, + 50, 67, 146, 50, 18, 99, 129, 68, 115, 129, 52, 131, + 114, 51, 147, 113, 67, 147, 194, 147, 195, 147, 195, 132, + 195, 131, 210, 147, 195, 131, 81, 115, 131, 66, 115, 116, + 65, 130, 131, 66, 115, 131, 65, 131, 146, 49, 146, 180, + 0, 38, 16, 43, 21, 0, 37, 101, 227, 51, 178, 99, + 146, 130, 131, 131, 99, 147, 99, 147, 83, 163, 83, 163, + 68, 148, 67, 163, 83, 163, 83, 148, 83, 147, 99, 131, + 130, 130, 147, 98, 179, 51, 229, 0, 30, 48, 72, 26, + 0, 46, 36, 84, 194, 34, 34, 50, 177, 50, 17, 98, + 146, 51, 115, 129, 67, 115, 129, 66, 131, 114, 51, 131, + 195, 131, 194, 132, 194, 132, 179, 131, 195, 131, 194, 131, + 210, 131, 195, 115, 211, 114, 228, 82, 242, 18, 50, 243, + 36, 240, 35, 240, 130, 240, 146, 240, 131, 240, 131, 240, + 131, 240, 130, 240, 131, 240, 89, 0, 8, 80, 64, 21, + 0, 37, 100, 65, 162, 50, 34, 146, 84, 146, 115, 131, + 115, 115, 131, 115, 130, 115, 131, 115, 131, 100, 131, 100, + 130, 115, 131, 115, 131, 115, 131, 115, 115, 146, 100, 146, + 100, 162, 50, 19, 180, 50, 240, 51, 240, 51, 240, 51, + 240, 50, 240, 51, 240, 51, 240, 51, 240, 51, 234, 0, + 6, 16, 48, 21, 0, 37, 19, 85, 113, 34, 34, 66, + 81, 53, 67, 81, 52, 82, 82, 51, 209, 67, 240, 50, + 240, 51, 240, 51, 240, 51, 240, 50, 240, 51, 240, 51, + 240, 50, 240, 66, 240, 51, 240, 51, 240, 50, 240, 66, + 0, 31, 40, 20, 0, 36, 6, 194, 82, 162, 114, 130, + 130, 115, 100, 115, 99, 131, 240, 37, 240, 24, 217, 216, + 240, 20, 240, 35, 98, 147, 83, 147, 83, 131, 97, 162, + 130, 99, 167, 0, 28, 112, 41, 16, 0, 11, 2, 211, + 211, 210, 211, 211, 211, 210, 211, 140, 147, 210, 211, 211, + 211, 195, 211, 211, 195, 211, 211, 211, 82, 83, 97, 99, + 82, 99, 81, 115, 65, 146, 50, 164, 0, 23, 16, 58, + 25, 0, 44, 36, 146, 145, 35, 115, 129, 51, 115, 114, + 51, 114, 129, 67, 99, 114, 52, 99, 113, 67, 115, 195, + 114, 195, 115, 195, 115, 195, 115, 180, 114, 195, 115, 65, + 115, 115, 50, 115, 114, 65, 131, 99, 65, 131, 99, 49, + 163, 50, 18, 49, 181, 68, 0, 35, 32, 51, 22, 0, + 39, 4, 114, 129, 35, 84, 97, 51, 84, 81, 67, 99, + 81, 67, 114, 66, 52, 114, 65, 67, 129, 163, 129, 147, + 130, 147, 130, 147, 129, 148, 129, 147, 130, 147, 129, 163, + 114, 163, 113, 194, 97, 211, 65, 240, 21, 0, 31, 80, + 71, 30, 0, 53, 4, 130, 82, 129, 35, 99, 68, 97, + 51, 99, 68, 81, 67, 83, 99, 81, 67, 83, 114, 66, + 52, 83, 114, 65, 67, 99, 113, 163, 83, 129, 147, 99, + 129, 147, 99, 114, 147, 99, 113, 147, 99, 129, 147, 99, + 114, 147, 99, 113, 163, 99, 113, 163, 99, 97, 194, 81, + 18, 82, 195, 50, 19, 50, 245, 69, 0, 42, 64, 54, + 24, 0, 42, 100, 69, 146, 51, 18, 50, 114, 84, 51, + 98, 99, 66, 113, 115, 194, 115, 240, 83, 240, 99, 240, + 99, 240, 98, 240, 99, 240, 99, 240, 99, 240, 83, 114, + 195, 113, 114, 67, 98, 99, 52, 82, 114, 50, 19, 50, + 148, 84, 0, 34, 32, 69, 23, 0, 40, 100, 146, 113, + 35, 115, 97, 51, 115, 82, 51, 114, 97, 67, 99, 82, + 52, 99, 81, 67, 115, 163, 99, 163, 115, 163, 115, 163, + 115, 148, 99, 163, 115, 163, 115, 163, 115, 163, 99, 179, + 84, 195, 53, 213, 35, 240, 82, 240, 83, 240, 83, 163, + 99, 179, 98, 195, 83, 193, 99, 210, 66, 240, 36, 0, + 7, 96, 52, 21, 0, 35, 3, 97, 150, 66, 150, 65, + 146, 51, 33, 161, 99, 162, 129, 240, 65, 240, 65, 240, + 65, 240, 65, 240, 65, 240, 65, 240, 65, 240, 65, 145, + 145, 145, 145, 161, 132, 114, 129, 35, 51, 129, 71, 130, + 85, 145, 115, 0, 27, 64, 9, 24, 0, 63, 15, 5, + 0, 66, 64, 10, 44, 0, 115, 79, 15, 10, 0, 121, + 64, 25, 17, 240, 240, 130, 82, 130, 67, 115, 66, 130, + 67, 114, 82, 115, 66, 130, 66, 130, 81, 145, 97, 0, + 71, 32, 16, 18, 0, 9, 67, 97, 98, 34, 65, 97, + 66, 34, 97, 99, 0, 82, +}; + +//***************************************************************************** +// +// The font definition for the 44 point Cm italic font. +// +//***************************************************************************** +const tFont g_sFontCm44i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 39, + + // + // The height of the font. + // + 44, + + // + // The baseline of the font. + // + 33, + + // + // The offset to each character in the font. + // + { + 0, 4, 40, 70, 192, 276, 403, 511, + 530, 620, 711, 759, 818, 837, 846, 857, + 949, 1016, 1077, 1153, 1224, 1307, 1373, 1440, + 1511, 1579, 1647, 1664, 1690, 1726, 1739, 1794, + 1848, 1959, 2045, 2118, 2207, 2285, 2363, 2438, + 2527, 2621, 2684, 2753, 2850, 2917, 3064, 3178, + 3273, 3343, 3468, 3550, 3624, 3699, 3772, 3860, + 3991, 4088, 4165, 4234, 4323, 4356, 4445, 4462, + 4473, 4492, 4545, 4611, 4651, 4725, 4766, 4860, + 4924, 4998, 5041, 5110, 5185, 5228, 5308, 5367, + 5410, 5482, 5546, 5594, 5634, 5675, 5733, 5784, + 5855, 5909, 5978, 6030, 6039, 6049, 6074, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm44iData +}; diff --git a/grlib/fonts/fontcm46.c b/grlib/fonts/fontcm46.c new file mode 100644 index 0000000..544e5a0 --- /dev/null +++ b/grlib/fonts/fontcm46.c @@ -0,0 +1,603 @@ +//***************************************************************************** +// +// fontcm46.c - Font definition for the 46pt Cm font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 46 point +// Bold: no +// Italic: no +// Memory usage: 6160 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 46 point Cm font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm46Data[5959] = +{ + 5, 18, 0, 105, 96, 36, 8, 240, 34, 84, 68, 68, + 68, 68, 68, 68, 68, 67, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 0, 5, 98, 84, + 68, 82, 0, 12, 80, 33, 17, 0, 6, 67, 83, 85, + 68, 69, 68, 84, 68, 129, 113, 129, 113, 129, 113, 129, + 113, 113, 113, 129, 113, 113, 113, 129, 113, 113, 113, 0, + 66, 96, 127, 35, 0, 15, 1, 145, 240, 130, 130, 240, + 130, 130, 240, 130, 130, 240, 129, 145, 240, 145, 130, 240, + 130, 130, 240, 130, 130, 240, 129, 145, 240, 145, 130, 240, + 130, 130, 240, 130, 130, 240, 129, 145, 240, 145, 130, 240, + 130, 130, 240, 130, 130, 207, 15, 1, 226, 130, 240, 130, + 130, 240, 130, 130, 240, 129, 145, 240, 130, 130, 240, 130, + 130, 240, 130, 130, 239, 15, 1, 194, 130, 240, 130, 130, + 240, 130, 129, 240, 145, 145, 240, 130, 130, 240, 130, 130, + 240, 130, 129, 240, 145, 145, 240, 130, 130, 240, 130, 130, + 240, 130, 129, 240, 145, 145, 240, 130, 130, 240, 130, 130, + 240, 130, 130, 240, 129, 145, 0, 15, 64, 93, 21, 129, + 240, 81, 240, 54, 210, 33, 50, 161, 65, 66, 130, 65, + 82, 98, 81, 97, 97, 97, 113, 66, 97, 113, 66, 97, + 83, 66, 97, 83, 66, 97, 83, 67, 81, 195, 81, 211, + 65, 213, 33, 231, 249, 232, 248, 225, 36, 225, 52, 209, + 67, 209, 83, 193, 98, 67, 81, 98, 67, 81, 98, 67, + 81, 98, 65, 113, 98, 65, 113, 97, 97, 97, 82, 98, + 81, 66, 130, 65, 65, 162, 49, 34, 214, 240, 49, 240, + 81, 240, 81, 0, 25, 16, 133, 35, 68, 240, 49, 178, + 49, 240, 18, 162, 81, 226, 162, 114, 179, 162, 113, 18, + 116, 177, 129, 55, 34, 162, 145, 162, 178, 145, 146, 194, + 145, 146, 194, 145, 130, 210, 145, 130, 210, 145, 114, 226, + 145, 98, 242, 145, 98, 240, 17, 129, 98, 240, 34, 113, + 82, 240, 65, 97, 98, 240, 66, 81, 82, 240, 98, 49, + 98, 240, 131, 98, 240, 240, 34, 118, 240, 82, 98, 81, + 240, 50, 113, 113, 240, 34, 98, 113, 240, 18, 113, 129, + 242, 114, 145, 226, 114, 145, 210, 130, 145, 195, 130, 145, + 194, 146, 145, 178, 162, 145, 178, 162, 145, 162, 193, 130, + 146, 210, 113, 162, 210, 113, 146, 242, 81, 162, 240, 18, + 49, 177, 240, 52, 0, 40, 48, 103, 33, 0, 9, 36, + 240, 210, 49, 240, 178, 65, 240, 177, 97, 240, 146, 97, + 240, 146, 97, 240, 146, 97, 240, 146, 97, 240, 146, 81, + 240, 162, 81, 240, 162, 65, 240, 179, 33, 240, 210, 33, + 240, 210, 17, 169, 163, 212, 211, 226, 227, 225, 225, 19, + 193, 225, 50, 193, 209, 67, 161, 225, 83, 145, 209, 99, + 129, 209, 131, 113, 209, 147, 81, 210, 147, 65, 226, 163, + 49, 226, 179, 17, 242, 180, 177, 67, 179, 177, 82, 180, + 145, 99, 145, 35, 129, 115, 98, 83, 66, 166, 165, 0, + 50, 64, 19, 9, 240, 211, 85, 69, 84, 129, 129, 129, + 129, 113, 129, 113, 129, 113, 0, 35, 96, 50, 14, 145, + 193, 193, 193, 194, 193, 194, 193, 194, 193, 194, 194, 193, + 194, 194, 194, 194, 178, 194, 194, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 195, 194, 194, 194, 194, 210, 194, + 194, 210, 194, 210, 194, 210, 209, 225, 225, 225, 64, 50, + 14, 1, 225, 225, 225, 210, 210, 194, 210, 194, 210, 194, + 194, 210, 194, 194, 194, 210, 194, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 193, 194, 194, 194, 194, + 193, 194, 193, 194, 194, 193, 193, 194, 193, 193, 193, 193, + 208, 48, 20, 114, 240, 50, 240, 50, 240, 50, 240, 50, + 179, 66, 67, 83, 50, 51, 130, 33, 50, 180, 18, 244, + 240, 20, 243, 19, 178, 49, 34, 131, 50, 51, 83, 66, + 67, 178, 240, 50, 240, 50, 240, 50, 240, 50, 0, 68, + 112, 91, 34, 0, 40, 2, 240, 240, 34, 240, 240, 34, + 240, 240, 34, 240, 240, 34, 240, 240, 34, 240, 240, 34, + 240, 240, 34, 240, 240, 34, 240, 240, 34, 240, 240, 34, + 240, 240, 34, 240, 240, 34, 240, 240, 34, 240, 63, 15, + 240, 50, 240, 240, 34, 240, 240, 34, 240, 240, 34, 240, + 240, 34, 240, 240, 34, 240, 240, 34, 240, 240, 34, 240, + 240, 34, 240, 240, 34, 240, 240, 34, 240, 240, 34, 240, + 240, 34, 240, 240, 34, 0, 40, 64, 20, 8, 0, 31, + 3, 84, 68, 68, 113, 113, 113, 113, 97, 113, 97, 113, + 97, 240, 240, 16, 9, 16, 0, 48, 12, 76, 0, 42, + 64, 11, 8, 0, 31, 18, 84, 68, 82, 0, 12, 80, + 97, 21, 242, 240, 66, 240, 65, 240, 66, 240, 66, 240, + 65, 240, 66, 240, 66, 240, 65, 240, 66, 240, 66, 240, + 65, 240, 66, 240, 66, 240, 65, 240, 66, 240, 66, 240, + 65, 240, 66, 240, 66, 240, 65, 240, 66, 240, 66, 240, + 65, 240, 66, 240, 66, 240, 65, 240, 66, 240, 66, 240, + 65, 240, 66, 240, 66, 240, 65, 240, 66, 240, 66, 240, + 65, 240, 66, 240, 66, 240, 65, 240, 66, 240, 66, 240, + 65, 240, 66, 240, 66, 240, 65, 240, 66, 240, 66, 240, + 64, 67, 20, 0, 10, 101, 210, 66, 177, 129, 146, 130, + 129, 161, 114, 162, 98, 177, 97, 193, 82, 194, 66, 194, + 66, 194, 66, 194, 66, 194, 66, 194, 66, 194, 66, 194, + 66, 194, 66, 194, 66, 194, 66, 194, 66, 194, 66, 194, + 66, 194, 81, 193, 98, 162, 98, 162, 113, 161, 130, 130, + 146, 113, 178, 66, 229, 0, 31, 16, 38, 17, 0, 9, + 49, 242, 212, 148, 34, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 228, 156, 0, 26, 68, 21, + 0, 11, 22, 225, 83, 177, 131, 129, 147, 113, 179, 97, + 180, 65, 211, 67, 179, 68, 163, 68, 163, 82, 179, 240, + 51, 240, 35, 240, 51, 240, 35, 240, 50, 240, 51, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 65, 161, 129, 177, 113, 193, 97, 193, 111, 95, + 1, 95, 1, 0, 32, 16, 67, 22, 0, 11, 102, 226, + 83, 162, 131, 145, 163, 115, 147, 116, 132, 100, 132, 114, + 147, 240, 67, 240, 67, 240, 51, 240, 66, 240, 66, 240, + 66, 240, 21, 240, 114, 240, 99, 240, 83, 240, 68, 240, + 67, 240, 68, 240, 52, 67, 180, 68, 164, 68, 164, 67, + 180, 65, 196, 97, 179, 129, 147, 163, 83, 215, 0, 34, + 32, 74, 23, 0, 13, 17, 240, 98, 240, 98, 240, 83, + 240, 83, 240, 65, 18, 240, 50, 18, 240, 49, 34, 240, + 33, 50, 240, 33, 50, 240, 17, 66, 241, 82, 241, 82, + 225, 98, 225, 98, 209, 114, 193, 130, 193, 130, 177, 146, + 177, 146, 161, 162, 145, 178, 159, 4, 240, 18, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 42, + 0, 35, 16, 67, 20, 0, 10, 33, 177, 116, 98, 139, + 154, 161, 22, 193, 240, 65, 240, 65, 240, 65, 240, 65, + 240, 65, 240, 65, 240, 65, 53, 177, 18, 82, 146, 130, + 129, 162, 240, 50, 240, 65, 240, 66, 240, 50, 240, 50, + 67, 178, 67, 178, 67, 178, 67, 178, 65, 194, 81, 194, + 97, 162, 129, 145, 162, 82, 213, 0, 31, 32, 69, 21, + 0, 11, 69, 227, 66, 178, 114, 146, 145, 130, 131, 130, + 131, 114, 147, 114, 240, 51, 240, 50, 240, 66, 240, 51, + 69, 147, 34, 66, 131, 17, 114, 116, 146, 100, 147, 84, + 162, 83, 179, 67, 179, 67, 179, 67, 179, 67, 179, 82, + 179, 82, 179, 82, 179, 98, 162, 114, 147, 130, 130, 146, + 114, 179, 66, 229, 0, 32, 96, 71, 22, 0, 8, 49, + 240, 98, 240, 79, 3, 79, 2, 95, 2, 81, 225, 97, + 209, 113, 209, 240, 81, 240, 81, 240, 97, 240, 81, 240, + 81, 240, 97, 240, 81, 240, 97, 240, 81, 240, 97, 240, + 82, 240, 82, 240, 82, 240, 66, 240, 82, 240, 82, 240, + 82, 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, 240, + 67, 240, 67, 0, 34, 96, 67, 23, 0, 12, 54, 242, + 83, 178, 146, 161, 178, 129, 210, 113, 210, 98, 210, 98, + 210, 114, 194, 115, 162, 133, 129, 165, 97, 198, 34, 231, + 240, 54, 240, 18, 21, 210, 70, 162, 117, 130, 149, 98, + 195, 98, 211, 66, 242, 66, 242, 66, 242, 66, 242, 66, + 242, 82, 225, 99, 193, 131, 162, 163, 98, 231, 0, 35, + 96, 69, 21, 0, 11, 37, 226, 82, 178, 114, 146, 146, + 130, 146, 114, 163, 98, 178, 83, 178, 83, 178, 83, 179, + 67, 179, 67, 179, 67, 179, 67, 179, 82, 179, 82, 164, + 83, 148, 98, 129, 19, 114, 113, 19, 130, 66, 35, 164, + 67, 240, 50, 240, 66, 240, 51, 240, 50, 240, 66, 115, + 130, 131, 114, 147, 113, 177, 98, 214, 0, 33, 17, 8, + 0, 15, 18, 84, 68, 82, 0, 12, 98, 84, 68, 82, + 0, 12, 80, 26, 8, 0, 15, 18, 84, 68, 82, 0, + 12, 98, 84, 68, 83, 113, 113, 113, 113, 97, 113, 97, + 113, 97, 240, 240, 16, 37, 8, 0, 12, 18, 84, 68, + 82, 240, 240, 145, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 99, 68, 68, 68, 68, 68, + 68, 68, 68, 82, 240, 96, 13, 33, 0, 78, 63, 14, + 0, 29, 63, 14, 0, 78, 112, 61, 19, 0, 29, 35, + 244, 244, 240, 19, 0, 11, 81, 240, 49, 240, 49, 240, + 49, 240, 49, 240, 49, 240, 49, 240, 33, 240, 49, 240, + 33, 240, 49, 240, 33, 240, 33, 240, 34, 240, 18, 240, + 33, 240, 34, 240, 34, 163, 66, 163, 66, 163, 66, 193, + 82, 161, 115, 98, 167, 0, 8, 16, 63, 19, 240, 240, + 214, 178, 83, 129, 146, 97, 177, 81, 194, 67, 162, 67, + 162, 67, 162, 240, 34, 240, 18, 240, 34, 240, 18, 240, + 18, 240, 18, 240, 33, 240, 34, 240, 33, 240, 49, 240, + 34, 240, 33, 240, 49, 240, 49, 240, 49, 240, 49, 240, + 49, 0, 11, 83, 244, 244, 240, 19, 0, 29, 96, 121, + 33, 0, 9, 87, 240, 146, 115, 240, 66, 178, 240, 33, + 241, 241, 240, 33, 209, 240, 65, 177, 240, 97, 161, 133, + 130, 129, 114, 82, 113, 129, 98, 129, 98, 97, 98, 145, + 113, 97, 82, 179, 65, 97, 82, 194, 66, 65, 98, 194, + 81, 65, 82, 210, 81, 65, 82, 210, 81, 65, 82, 210, + 81, 65, 82, 210, 81, 65, 82, 210, 81, 65, 82, 210, + 81, 65, 98, 194, 81, 81, 82, 194, 81, 81, 82, 179, + 81, 81, 98, 163, 65, 113, 98, 129, 18, 65, 113, 114, + 82, 50, 34, 129, 133, 100, 161, 240, 240, 34, 240, 240, + 34, 240, 82, 178, 243, 227, 148, 240, 89, 0, 51, 16, + 100, 34, 0, 10, 34, 240, 240, 34, 240, 240, 34, 240, + 240, 20, 240, 244, 240, 244, 240, 225, 20, 240, 209, 35, + 240, 193, 51, 240, 193, 67, 240, 177, 67, 240, 161, 83, + 240, 161, 99, 240, 145, 99, 240, 129, 115, 240, 129, 131, + 240, 113, 131, 240, 97, 148, 240, 81, 163, 240, 81, 163, + 240, 65, 180, 240, 63, 1, 240, 49, 195, 240, 33, 212, + 240, 17, 227, 240, 17, 227, 241, 244, 225, 240, 19, 225, + 240, 19, 209, 240, 36, 193, 240, 51, 164, 240, 36, 120, + 202, 0, 51, 64, 84, 30, 0, 11, 47, 4, 242, 180, + 210, 211, 194, 227, 178, 243, 162, 244, 146, 240, 19, 146, + 240, 19, 146, 240, 19, 146, 240, 19, 146, 243, 162, 243, + 162, 227, 178, 210, 210, 163, 255, 1, 226, 196, 194, 227, + 178, 243, 162, 240, 19, 146, 240, 19, 146, 240, 35, 130, + 240, 35, 130, 240, 35, 130, 240, 35, 130, 240, 35, 130, + 240, 19, 146, 240, 19, 146, 243, 162, 227, 178, 196, 143, + 5, 0, 46, 32, 89, 31, 0, 13, 23, 113, 212, 98, + 81, 180, 162, 34, 163, 210, 18, 147, 244, 131, 240, 35, + 115, 240, 51, 100, 240, 66, 99, 240, 82, 84, 240, 82, + 84, 240, 97, 83, 240, 113, 68, 240, 196, 240, 196, 240, + 196, 240, 196, 240, 196, 240, 196, 240, 196, 240, 212, 240, + 97, 84, 240, 97, 84, 240, 97, 99, 240, 97, 100, 240, + 65, 131, 240, 65, 147, 240, 33, 179, 240, 17, 195, 225, + 228, 162, 240, 36, 98, 240, 119, 0, 48, 96, 32, 0, + 12, 15, 3, 240, 50, 179, 240, 18, 211, 226, 227, 210, + 243, 194, 240, 19, 178, 240, 34, 178, 240, 35, 162, 240, + 50, 162, 240, 51, 146, 240, 51, 146, 240, 66, 146, 240, + 67, 130, 240, 67, 130, 240, 67, 130, 240, 67, 130, 240, + 67, 130, 240, 67, 130, 240, 67, 130, 240, 67, 130, 240, + 67, 130, 240, 66, 146, 240, 51, 146, 240, 51, 146, 240, + 50, 162, 240, 35, 162, 240, 19, 178, 240, 18, 194, 242, + 210, 211, 226, 179, 207, 3, 0, 49, 96, 97, 30, 0, + 11, 47, 9, 162, 213, 162, 243, 162, 240, 18, 162, 240, + 33, 162, 240, 33, 162, 240, 33, 162, 240, 33, 162, 240, + 49, 146, 161, 113, 146, 161, 240, 34, 161, 240, 34, 161, + 240, 34, 146, 240, 34, 131, 240, 45, 240, 34, 131, 240, + 34, 146, 240, 34, 161, 240, 34, 161, 240, 34, 161, 129, + 130, 161, 129, 130, 240, 65, 130, 240, 49, 146, 240, 49, + 146, 240, 49, 146, 240, 49, 146, 240, 34, 146, 240, 34, + 146, 240, 19, 146, 229, 95, 9, 0, 45, 96, 76, 28, + 0, 10, 79, 8, 146, 212, 146, 243, 130, 240, 18, 130, + 240, 18, 130, 240, 33, 130, 240, 33, 130, 240, 33, 130, + 240, 33, 130, 240, 33, 130, 161, 242, 161, 242, 161, 242, + 161, 242, 146, 242, 131, 253, 242, 131, 242, 146, 242, 161, + 242, 161, 242, 161, 242, 240, 178, 240, 178, 240, 178, 240, + 178, 240, 178, 240, 178, 240, 178, 240, 179, 240, 107, 0, + 44, 16, 94, 33, 0, 13, 119, 97, 240, 20, 98, 65, + 228, 146, 49, 211, 209, 18, 195, 228, 179, 240, 19, 163, + 240, 50, 163, 240, 50, 147, 240, 66, 147, 240, 81, 132, + 240, 81, 132, 240, 81, 131, 240, 97, 116, 240, 228, 240, + 228, 240, 228, 240, 228, 240, 228, 240, 228, 240, 243, 250, + 84, 240, 66, 132, 240, 66, 147, 240, 66, 148, 240, 50, + 163, 240, 50, 179, 240, 34, 195, 240, 18, 211, 227, 228, + 178, 17, 240, 20, 114, 49, 240, 72, 81, 0, 50, 48, + 70, 31, 0, 11, 90, 122, 130, 242, 194, 242, 194, 242, + 194, 242, 194, 242, 194, 242, 194, 242, 194, 242, 194, 242, + 194, 242, 194, 242, 194, 242, 194, 242, 194, 242, 207, 4, + 194, 242, 194, 242, 194, 242, 194, 242, 194, 242, 194, 242, + 194, 242, 194, 242, 194, 242, 194, 242, 194, 242, 194, 242, + 194, 242, 194, 242, 194, 242, 138, 122, 0, 47, 39, 14, + 240, 240, 202, 130, 194, 194, 194, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 138, 0, 21, + 64, 67, 21, 0, 8, 106, 243, 240, 66, 240, 66, 240, + 66, 240, 66, 240, 66, 240, 66, 240, 66, 240, 66, 240, + 66, 240, 66, 240, 66, 240, 66, 240, 66, 240, 66, 240, + 66, 240, 66, 240, 66, 240, 66, 240, 66, 240, 66, 240, + 66, 240, 66, 240, 66, 130, 146, 116, 130, 116, 129, 131, + 130, 145, 130, 178, 82, 229, 0, 33, 94, 32, 0, 12, + 10, 168, 130, 244, 178, 240, 18, 194, 241, 226, 225, 242, + 209, 240, 18, 193, 240, 34, 177, 240, 50, 162, 240, 50, + 146, 240, 66, 130, 240, 82, 114, 240, 98, 98, 240, 114, + 99, 240, 98, 84, 240, 98, 65, 35, 240, 82, 49, 52, + 240, 66, 33, 83, 240, 66, 17, 100, 240, 51, 132, 240, + 34, 163, 240, 34, 164, 240, 18, 179, 240, 18, 195, 242, + 196, 226, 211, 226, 227, 210, 228, 194, 243, 194, 244, 178, + 245, 106, 153, 0, 48, 64, 71, 26, 0, 9, 107, 240, + 66, 240, 146, 240, 146, 240, 146, 240, 146, 240, 146, 240, + 146, 240, 146, 240, 146, 240, 146, 240, 146, 240, 146, 240, + 146, 240, 146, 240, 146, 240, 146, 240, 146, 240, 146, 240, + 146, 240, 146, 241, 130, 241, 130, 241, 130, 241, 130, 225, + 146, 225, 146, 225, 146, 210, 146, 210, 146, 195, 146, 165, + 95, 6, 0, 39, 80, 132, 38, 0, 14, 39, 240, 87, + 132, 240, 67, 193, 18, 240, 49, 18, 193, 19, 240, 33, + 18, 193, 19, 240, 33, 18, 193, 34, 240, 17, 34, 193, + 35, 241, 34, 193, 35, 241, 34, 193, 50, 225, 50, 193, + 51, 209, 50, 193, 51, 209, 50, 193, 66, 193, 66, 193, + 67, 177, 66, 193, 67, 161, 82, 193, 83, 145, 82, 193, + 83, 145, 82, 193, 98, 129, 98, 193, 99, 113, 98, 193, + 99, 113, 98, 193, 114, 97, 114, 193, 115, 81, 114, 193, + 115, 81, 114, 193, 130, 65, 130, 193, 131, 49, 130, 193, + 131, 49, 130, 193, 146, 33, 146, 193, 147, 17, 146, 193, + 148, 162, 193, 163, 162, 193, 163, 162, 179, 161, 178, 137, + 113, 122, 0, 57, 64, 96, 32, 0, 12, 7, 201, 132, + 227, 181, 225, 193, 19, 225, 193, 35, 209, 193, 35, 209, + 193, 51, 193, 193, 52, 177, 193, 67, 177, 193, 83, 161, + 193, 83, 161, 193, 99, 145, 193, 100, 129, 193, 115, 129, + 193, 131, 113, 193, 131, 113, 193, 147, 97, 193, 148, 81, + 193, 163, 81, 193, 179, 65, 193, 179, 65, 193, 195, 49, + 193, 196, 33, 193, 211, 33, 193, 227, 17, 193, 227, 17, + 193, 244, 193, 244, 193, 240, 19, 193, 240, 34, 179, 240, + 18, 137, 225, 0, 49, 95, 33, 0, 13, 103, 240, 147, + 84, 240, 67, 147, 240, 34, 211, 211, 243, 195, 243, 179, + 240, 35, 148, 240, 36, 131, 240, 67, 116, 240, 68, 100, + 240, 68, 99, 240, 99, 84, 240, 100, 68, 240, 100, 68, + 240, 100, 68, 240, 100, 68, 240, 100, 68, 240, 100, 68, + 240, 100, 68, 240, 100, 84, 240, 83, 100, 240, 68, 100, + 240, 68, 115, 240, 67, 132, 240, 36, 147, 240, 35, 179, + 243, 196, 212, 212, 180, 240, 19, 147, 240, 68, 84, 240, + 135, 0, 51, 48, 69, 29, 0, 10, 127, 3, 242, 164, + 210, 196, 178, 212, 162, 228, 146, 243, 146, 244, 130, 244, + 130, 244, 130, 244, 130, 244, 130, 243, 146, 228, 146, 227, + 162, 211, 178, 164, 222, 242, 240, 194, 240, 194, 240, 194, + 240, 194, 240, 194, 240, 194, 240, 194, 240, 194, 240, 194, + 240, 194, 240, 194, 240, 194, 240, 194, 240, 138, 0, 45, + 112, 129, 33, 0, 13, 103, 240, 147, 99, 240, 66, 178, + 240, 34, 211, 226, 243, 194, 240, 34, 178, 240, 66, 147, + 240, 67, 130, 240, 98, 115, 240, 99, 99, 240, 99, 99, + 240, 114, 83, 240, 131, 67, 240, 131, 67, 240, 131, 67, + 240, 131, 67, 240, 131, 67, 240, 131, 67, 240, 131, 67, + 240, 131, 82, 240, 130, 99, 240, 99, 99, 240, 99, 114, + 240, 98, 131, 240, 67, 146, 132, 114, 178, 97, 65, 83, + 179, 65, 97, 51, 211, 49, 97, 50, 240, 18, 33, 116, + 240, 51, 17, 83, 240, 135, 17, 240, 240, 34, 113, 240, + 130, 113, 240, 145, 113, 240, 146, 82, 240, 147, 51, 240, + 152, 240, 183, 240, 182, 240, 212, 0, 13, 32, 82, 33, + 0, 12, 63, 2, 240, 82, 164, 240, 34, 195, 240, 18, + 212, 226, 228, 210, 228, 210, 244, 194, 244, 194, 244, 194, + 244, 194, 244, 194, 243, 210, 227, 226, 211, 242, 195, 240, + 18, 163, 240, 60, 240, 98, 148, 240, 50, 179, 240, 34, + 195, 240, 18, 211, 242, 211, 242, 211, 242, 211, 242, 212, + 226, 212, 226, 212, 226, 212, 226, 227, 81, 130, 228, 65, + 130, 243, 49, 90, 213, 0, 50, 16, 76, 23, 0, 9, + 54, 81, 146, 83, 49, 114, 146, 18, 113, 180, 98, 195, + 82, 226, 82, 226, 82, 241, 82, 241, 83, 225, 83, 225, + 99, 240, 84, 240, 86, 240, 57, 251, 240, 24, 240, 54, + 240, 84, 240, 83, 240, 99, 65, 243, 65, 240, 18, 65, + 240, 18, 65, 240, 18, 66, 242, 66, 241, 83, 210, 84, + 193, 98, 18, 162, 97, 51, 98, 129, 102, 0, 35, 96, + 79, 31, 0, 11, 111, 11, 84, 130, 132, 82, 162, 162, + 81, 178, 162, 81, 178, 177, 81, 178, 177, 81, 178, 177, + 81, 178, 177, 65, 194, 177, 65, 194, 240, 226, 240, 226, + 240, 226, 240, 226, 240, 226, 240, 226, 240, 226, 240, 226, + 240, 226, 240, 226, 240, 226, 240, 226, 240, 226, 240, 226, + 240, 226, 240, 226, 240, 226, 240, 226, 240, 226, 240, 226, + 240, 227, 240, 140, 0, 47, 112, 98, 32, 0, 12, 10, + 153, 130, 240, 19, 178, 240, 33, 194, 240, 33, 194, 240, + 33, 194, 240, 33, 194, 240, 33, 194, 240, 33, 194, 240, + 33, 194, 240, 33, 194, 240, 33, 194, 240, 33, 194, 240, + 33, 194, 240, 33, 194, 240, 33, 194, 240, 33, 194, 240, + 33, 194, 240, 33, 194, 240, 33, 194, 240, 33, 194, 240, + 33, 194, 240, 33, 194, 240, 33, 194, 240, 33, 209, 240, + 17, 226, 241, 226, 241, 241, 225, 240, 33, 193, 240, 65, + 161, 240, 98, 98, 240, 150, 0, 49, 112, 101, 35, 0, + 13, 26, 231, 116, 240, 52, 163, 240, 66, 179, 240, 65, + 196, 240, 33, 227, 240, 33, 227, 240, 33, 243, 241, 240, + 19, 241, 240, 20, 225, 240, 35, 209, 240, 51, 209, 240, + 52, 177, 240, 83, 177, 240, 84, 161, 240, 99, 145, 240, + 115, 145, 240, 116, 129, 240, 131, 113, 240, 147, 113, 240, + 163, 81, 240, 179, 81, 240, 180, 65, 240, 195, 49, 240, + 211, 49, 240, 212, 17, 240, 243, 17, 240, 243, 17, 240, + 240, 19, 240, 240, 35, 240, 240, 35, 240, 240, 49, 0, + 54, 112, 137, 47, 0, 17, 89, 137, 167, 116, 212, 212, + 148, 211, 242, 179, 227, 225, 195, 227, 225, 195, 227, 225, + 211, 193, 19, 193, 227, 193, 19, 193, 227, 193, 19, 193, + 243, 161, 36, 161, 240, 19, 161, 51, 161, 240, 19, 161, + 51, 161, 240, 20, 145, 52, 145, 240, 35, 129, 83, 129, + 240, 51, 129, 83, 129, 240, 52, 113, 84, 113, 240, 67, + 97, 115, 97, 240, 83, 97, 115, 97, 240, 84, 81, 115, + 97, 240, 99, 65, 147, 65, 240, 115, 65, 147, 65, 240, + 115, 65, 147, 65, 240, 131, 33, 179, 33, 240, 147, 33, + 179, 33, 240, 147, 33, 179, 33, 240, 164, 197, 240, 180, + 212, 240, 180, 212, 240, 180, 211, 240, 210, 242, 240, 210, + 242, 240, 210, 242, 0, 72, 64, 97, 35, 0, 13, 42, + 168, 165, 212, 228, 211, 240, 19, 210, 240, 36, 193, 240, + 68, 161, 240, 99, 146, 240, 100, 129, 240, 132, 97, 240, + 163, 82, 240, 164, 65, 240, 196, 33, 240, 227, 18, 240, + 229, 240, 240, 20, 240, 240, 35, 240, 240, 36, 240, 241, + 20, 240, 210, 35, 240, 209, 52, 240, 177, 84, 240, 145, + 115, 240, 145, 116, 240, 113, 148, 240, 81, 179, 240, 81, + 180, 240, 49, 212, 240, 17, 243, 240, 17, 244, 226, 240, + 20, 180, 240, 21, 121, 202, 0, 53, 99, 34, 0, 12, + 105, 231, 116, 240, 36, 163, 240, 49, 196, 240, 18, 211, + 240, 17, 243, 225, 240, 20, 209, 240, 35, 193, 240, 52, + 161, 240, 83, 161, 240, 99, 129, 240, 115, 129, 240, 131, + 97, 240, 147, 81, 240, 179, 65, 240, 195, 33, 240, 211, + 33, 240, 228, 240, 240, 18, 240, 240, 34, 240, 240, 34, + 240, 240, 34, 240, 240, 34, 240, 240, 34, 240, 240, 34, + 240, 240, 34, 240, 240, 34, 240, 240, 34, 240, 240, 34, + 240, 240, 34, 240, 240, 34, 240, 218, 0, 52, 96, 72, + 26, 0, 9, 127, 6, 86, 180, 83, 212, 98, 227, 114, + 212, 113, 227, 129, 211, 145, 196, 145, 195, 161, 180, 240, + 115, 240, 115, 240, 116, 240, 115, 240, 116, 240, 115, 240, + 115, 240, 116, 240, 115, 240, 116, 240, 100, 177, 163, 193, + 148, 193, 147, 209, 131, 225, 116, 225, 115, 226, 100, 226, + 99, 227, 83, 228, 68, 198, 79, 7, 0, 39, 64, 49, + 10, 166, 66, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 134, 64, + 33, 17, 0, 6, 97, 113, 113, 113, 129, 113, 113, 113, + 129, 113, 113, 113, 129, 113, 129, 113, 129, 113, 132, 68, + 84, 69, 68, 84, 83, 83, 0, 66, 64, 49, 10, 166, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 70, 64, 19, 15, + 0, 6, 33, 211, 178, 18, 161, 50, 129, 82, 97, 114, + 65, 145, 0, 69, 112, 11, 8, 240, 240, 50, 84, 68, + 82, 0, 39, 80, 19, 9, 240, 241, 113, 129, 113, 129, + 113, 129, 129, 129, 132, 85, 84, 83, 0, 35, 64, 54, + 23, 0, 43, 86, 240, 17, 83, 209, 130, 177, 147, 162, + 146, 163, 130, 162, 146, 240, 98, 240, 23, 211, 82, 194, + 114, 163, 130, 162, 146, 146, 162, 65, 66, 162, 65, 66, + 162, 65, 66, 147, 65, 82, 113, 18, 65, 83, 81, 53, + 134, 83, 0, 35, 32, 75, 23, 0, 8, 100, 240, 53, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 69, 194, + 33, 82, 178, 17, 129, 163, 146, 146, 178, 130, 178, 130, + 194, 114, 194, 114, 194, 114, 194, 114, 194, 114, 194, 114, + 194, 114, 194, 114, 178, 130, 178, 131, 146, 145, 33, 114, + 161, 49, 82, 177, 69, 0, 35, 96, 45, 19, 0, 36, + 53, 194, 82, 146, 129, 114, 161, 82, 147, 82, 147, 81, + 163, 66, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 240, 50, 240, 34, 177, 82, 177, 98, 145, 130, 129, 147, + 66, 197, 0, 29, 64, 74, 24, 0, 10, 114, 240, 69, + 240, 99, 240, 114, 240, 114, 240, 114, 240, 114, 240, 114, + 240, 114, 240, 114, 240, 114, 240, 114, 214, 50, 179, 81, + 34, 162, 129, 18, 146, 163, 145, 194, 130, 194, 129, 210, + 114, 210, 114, 210, 114, 210, 114, 210, 114, 210, 114, 210, + 129, 210, 130, 194, 130, 194, 146, 163, 162, 129, 18, 178, + 82, 37, 165, 69, 0, 36, 64, 45, 20, 0, 38, 37, + 210, 82, 161, 130, 129, 162, 98, 162, 97, 194, 81, 194, + 66, 194, 79, 1, 66, 240, 50, 240, 50, 240, 50, 240, + 65, 240, 66, 193, 97, 193, 98, 161, 130, 129, 163, 66, + 213, 0, 31, 16, 44, 17, 240, 240, 196, 178, 50, 146, + 51, 146, 51, 130, 67, 130, 242, 242, 242, 242, 242, 242, + 242, 187, 162, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 201, 0, 26, 48, + 68, 24, 0, 42, 100, 84, 147, 35, 18, 35, 114, 98, + 66, 130, 98, 210, 130, 194, 130, 194, 130, 194, 130, 194, + 130, 194, 130, 210, 98, 226, 98, 227, 66, 225, 52, 240, + 17, 240, 129, 240, 129, 240, 130, 240, 139, 237, 146, 164, + 114, 210, 98, 242, 82, 242, 82, 242, 82, 242, 98, 210, + 130, 178, 163, 115, 216, 0, 10, 48, 73, 24, 0, 9, + 20, 240, 69, 240, 114, 240, 114, 240, 114, 240, 114, 240, + 114, 240, 114, 240, 114, 240, 114, 240, 114, 240, 114, 240, + 114, 69, 210, 34, 67, 178, 17, 114, 179, 146, 163, 146, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 120, 72, 0, 36, 64, 33, 12, 0, + 6, 35, 147, 147, 146, 0, 11, 84, 117, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 120, 0, 18, 64, 46, 14, 0, 7, 114, 180, + 164, 178, 0, 13, 84, 134, 179, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 81, 98, 67, 81, 83, 66, 97, 66, + 132, 0, 6, 32, 76, 24, 0, 9, 20, 240, 69, 240, + 114, 240, 114, 240, 114, 240, 114, 240, 114, 240, 114, 240, + 114, 240, 114, 240, 114, 240, 114, 240, 114, 119, 130, 132, + 162, 130, 194, 114, 210, 113, 226, 82, 242, 66, 240, 18, + 50, 240, 34, 36, 240, 18, 17, 34, 240, 19, 51, 242, + 83, 226, 98, 226, 99, 210, 115, 194, 115, 194, 131, 178, + 147, 162, 148, 104, 72, 0, 36, 64, 39, 12, 240, 240, + 116, 117, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 120, 0, 18, 64, 71, + 36, 0, 67, 84, 69, 117, 165, 34, 67, 50, 67, 178, + 17, 114, 33, 114, 179, 147, 146, 163, 147, 146, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 120, 72, 72, 0, 54, 64, 49, 24, + 0, 45, 20, 69, 165, 34, 67, 178, 17, 114, 179, 146, + 163, 146, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 120, 72, 0, 36, 64, 45, + 22, 0, 42, 6, 226, 98, 178, 130, 146, 162, 129, 194, + 98, 194, 97, 225, 82, 226, 66, 226, 66, 226, 66, 226, + 66, 226, 66, 226, 81, 225, 98, 194, 98, 194, 114, 162, + 146, 130, 178, 98, 230, 0, 34, 32, 68, 23, 0, 43, + 36, 54, 149, 34, 66, 178, 17, 114, 163, 146, 146, 178, + 130, 178, 130, 194, 114, 194, 114, 194, 114, 194, 114, 194, + 114, 194, 114, 194, 114, 179, 114, 178, 130, 178, 131, 146, + 146, 17, 114, 162, 33, 82, 178, 53, 210, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, + 56, 0, 10, 64, 69, 24, 0, 45, 101, 81, 179, 66, + 49, 162, 129, 33, 146, 163, 130, 179, 130, 194, 130, 194, + 114, 210, 114, 210, 114, 210, 114, 210, 114, 210, 114, 210, + 130, 194, 130, 194, 130, 179, 146, 163, 162, 129, 18, 179, + 66, 34, 213, 66, 240, 114, 240, 114, 240, 114, 240, 114, + 240, 114, 240, 114, 240, 114, 240, 114, 240, 72, 0, 9, + 64, 33, 17, 0, 32, 4, 52, 85, 33, 35, 114, 17, + 51, 115, 67, 115, 227, 226, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 201, 0, 26, 64, 44, 19, + 0, 36, 22, 49, 114, 100, 98, 146, 82, 162, 82, 177, + 82, 177, 83, 161, 100, 249, 201, 231, 240, 19, 81, 179, + 65, 194, 66, 178, 66, 178, 67, 162, 68, 130, 82, 18, + 98, 97, 70, 0, 29, 64, 48, 17, 0, 13, 49, 240, + 17, 240, 17, 240, 17, 240, 17, 242, 242, 227, 212, 188, + 146, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 97, + 130, 97, 130, 97, 130, 97, 130, 97, 130, 97, 146, 65, + 163, 34, 196, 0, 26, 32, 49, 24, 0, 45, 20, 132, + 117, 117, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 147, 162, 147, 178, 113, 18, 179, + 81, 37, 165, 69, 0, 36, 64, 54, 25, 0, 46, 120, + 118, 115, 163, 147, 177, 178, 161, 195, 145, 195, 145, 210, + 129, 227, 113, 242, 97, 240, 19, 81, 240, 19, 81, 240, + 34, 65, 240, 51, 49, 240, 66, 33, 240, 82, 33, 240, + 83, 17, 240, 99, 240, 115, 240, 115, 240, 129, 0, 39, + 32, 80, 33, 0, 61, 119, 55, 87, 99, 130, 147, 131, + 130, 146, 162, 145, 145, 179, 130, 129, 179, 115, 129, 194, + 115, 113, 211, 81, 34, 97, 226, 81, 34, 97, 226, 81, + 34, 81, 243, 49, 66, 65, 240, 18, 49, 66, 65, 240, + 18, 49, 67, 33, 240, 35, 17, 98, 33, 240, 50, 17, + 98, 33, 240, 50, 17, 100, 240, 67, 131, 240, 82, 131, + 240, 82, 130, 240, 97, 161, 0, 51, 16, 56, 26, 0, + 48, 104, 103, 132, 132, 179, 130, 227, 113, 240, 18, 97, + 240, 35, 81, 240, 51, 49, 240, 83, 17, 240, 115, 240, + 131, 240, 147, 240, 113, 19, 240, 81, 50, 240, 65, 67, + 240, 49, 83, 240, 17, 115, 225, 146, 210, 147, 179, 148, + 119, 120, 0, 39, 64, 75, 24, 0, 45, 7, 118, 99, + 163, 146, 177, 162, 177, 178, 145, 194, 145, 194, 129, 226, + 113, 226, 113, 227, 81, 240, 18, 81, 240, 18, 65, 240, + 50, 49, 240, 50, 33, 240, 67, 17, 240, 82, 17, 240, + 83, 240, 99, 240, 113, 240, 129, 240, 129, 240, 113, 240, + 129, 240, 113, 240, 18, 81, 240, 18, 81, 240, 18, 65, + 240, 49, 49, 240, 68, 0, 11, 48, 47, 20, 0, 37, + 95, 83, 146, 98, 147, 97, 147, 113, 146, 129, 131, 240, + 19, 240, 19, 240, 34, 240, 35, 240, 19, 240, 34, 240, + 35, 113, 131, 129, 115, 145, 114, 161, 99, 146, 83, 162, + 67, 148, 79, 1, 0, 30, 64, 9, 26, 0, 71, 79, + 7, 0, 78, 64, 13, 47, 0, 127, 240, 63, 15, 13, + 0, 127, 0, 14, 64, 23, 17, 0, 6, 98, 98, 99, + 83, 98, 98, 114, 98, 98, 98, 113, 113, 114, 98, 113, + 113, 0, 77, 64, 15, 18, 0, 9, 51, 113, 102, 66, + 81, 86, 81, 115, 0, 88, 80, +}; + +//***************************************************************************** +// +// The font definition for the 46 point Cm font. +// +//***************************************************************************** +const tFont g_sFontCm46 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 42, + + // + // The height of the font. + // + 47, + + // + // The baseline of the font. + // + 35, + + // + // The offset to each character in the font. + // + { + 0, 5, 41, 74, 201, 294, 427, 530, + 549, 599, 649, 697, 788, 808, 817, 828, + 925, 992, 1030, 1098, 1165, 1239, 1306, 1375, + 1446, 1513, 1582, 1599, 1625, 1662, 1675, 1736, + 1799, 1920, 2020, 2104, 2193, 2289, 2386, 2462, + 2556, 2626, 2665, 2732, 2826, 2897, 3029, 3125, + 3220, 3289, 3418, 3500, 3576, 3655, 3753, 3854, + 3991, 4088, 4187, 4259, 4308, 4341, 4390, 4409, + 4420, 4439, 4493, 4568, 4613, 4687, 4732, 4776, + 4844, 4917, 4950, 4996, 5072, 5111, 5182, 5231, + 5276, 5344, 5413, 5446, 5490, 5538, 5587, 5641, + 5721, 5777, 5852, 5899, 5908, 5921, 5944, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm46Data +}; diff --git a/grlib/fonts/fontcm46b.c b/grlib/fonts/fontcm46b.c new file mode 100644 index 0000000..eb66e5d --- /dev/null +++ b/grlib/fonts/fontcm46b.c @@ -0,0 +1,568 @@ +//***************************************************************************** +// +// fontcm46b.c - Font definition for the 46pt Cm bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 46 point +// Bold: yes +// Italic: no +// Memory usage: 5740 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 46 point Cm bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm46bData[5540] = +{ + 5, 18, 0, 101, 32, 37, 11, 240, 147, 117, 87, 71, + 71, 71, 71, 85, 101, 101, 101, 101, 101, 101, 116, 115, + 131, 131, 131, 131, 131, 146, 240, 240, 179, 117, 87, 71, + 71, 85, 115, 0, 15, 112, 39, 23, 0, 8, 116, 116, + 118, 86, 87, 71, 88, 56, 72, 56, 87, 71, 102, 86, + 162, 146, 162, 146, 161, 161, 162, 146, 162, 146, 146, 146, + 146, 146, 146, 146, 161, 161, 0, 75, 112, 124, 36, 0, + 15, 50, 130, 240, 146, 115, 240, 131, 115, 240, 131, 115, + 240, 131, 99, 240, 131, 115, 240, 131, 115, 240, 131, 114, + 240, 146, 115, 240, 131, 115, 240, 131, 115, 240, 131, 114, + 240, 146, 115, 207, 15, 2, 79, 15, 2, 79, 15, 2, + 242, 115, 240, 131, 115, 240, 131, 115, 240, 131, 99, 240, + 131, 115, 240, 131, 115, 240, 131, 114, 255, 15, 2, 79, + 15, 2, 79, 15, 2, 195, 114, 240, 146, 115, 240, 131, + 115, 240, 131, 115, 240, 131, 114, 240, 146, 115, 240, 131, + 115, 240, 131, 115, 240, 131, 114, 240, 146, 115, 240, 131, + 115, 240, 131, 115, 240, 131, 114, 240, 146, 130, 0, 11, + 48, 85, 21, 114, 240, 66, 240, 66, 240, 25, 188, 132, + 18, 52, 100, 34, 82, 99, 50, 53, 68, 50, 38, 68, + 50, 38, 68, 50, 38, 69, 34, 38, 69, 34, 52, 89, + 217, 204, 172, 157, 157, 171, 202, 178, 38, 84, 34, 53, + 69, 34, 53, 70, 18, 68, 69, 34, 68, 69, 34, 68, + 68, 50, 68, 67, 66, 67, 99, 50, 52, 99, 50, 51, + 132, 18, 21, 155, 184, 240, 18, 240, 66, 240, 66, 0, + 22, 64, 121, 36, 84, 240, 34, 184, 228, 148, 36, 196, + 148, 70, 118, 148, 79, 3, 149, 82, 54, 35, 165, 82, + 164, 165, 82, 148, 181, 82, 147, 197, 82, 132, 197, 82, + 116, 213, 82, 115, 229, 82, 100, 244, 82, 84, 240, 20, + 66, 99, 240, 52, 50, 84, 240, 52, 34, 84, 240, 101, + 99, 240, 240, 36, 240, 240, 35, 118, 240, 67, 100, 34, + 240, 52, 84, 66, 240, 35, 100, 66, 240, 19, 116, 82, + 228, 101, 82, 227, 117, 82, 211, 133, 82, 196, 133, 82, + 195, 149, 82, 179, 165, 82, 164, 165, 82, 163, 196, 67, + 147, 212, 66, 148, 228, 35, 147, 240, 23, 162, 240, 53, + 0, 41, 48, 94, 35, 0, 10, 5, 240, 216, 240, 180, + 50, 240, 165, 66, 240, 148, 82, 240, 133, 82, 240, 133, + 82, 240, 133, 82, 240, 133, 66, 240, 149, 66, 240, 149, + 50, 240, 166, 19, 240, 181, 18, 122, 167, 138, 166, 210, + 230, 195, 246, 178, 247, 163, 233, 146, 227, 22, 130, 228, + 38, 99, 212, 55, 82, 213, 71, 50, 229, 86, 35, 229, + 102, 18, 230, 119, 240, 22, 103, 146, 86, 119, 130, 86, + 120, 99, 102, 68, 22, 67, 140, 74, 198, 150, 0, 49, + 16, 23, 12, 240, 240, 132, 118, 87, 88, 72, 87, 102, + 162, 162, 161, 162, 162, 146, 146, 146, 161, 0, 40, 16, + 48, 15, 161, 195, 179, 179, 195, 179, 180, 179, 180, 180, + 164, 180, 165, 165, 165, 164, 180, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 180, 181, 165, 165, 180, + 180, 181, 180, 180, 196, 195, 196, 196, 195, 211, 225, 64, + 48, 15, 1, 227, 211, 211, 195, 211, 196, 195, 196, 180, + 196, 180, 181, 165, 165, 180, 181, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 164, 165, 165, 165, 164, + 180, 164, 180, 179, 180, 179, 179, 195, 179, 179, 193, 224, + 47, 20, 114, 240, 36, 240, 20, 240, 20, 163, 52, 51, + 68, 50, 52, 69, 34, 37, 70, 18, 22, 108, 182, 230, + 188, 102, 18, 22, 69, 34, 37, 68, 50, 52, 67, 52, + 51, 164, 240, 20, 240, 20, 240, 34, 0, 63, 112, 93, + 35, 0, 36, 99, 240, 240, 35, 240, 240, 35, 240, 240, + 35, 240, 240, 35, 240, 240, 35, 240, 240, 35, 240, 240, + 35, 240, 240, 35, 240, 240, 35, 240, 240, 35, 240, 240, + 35, 240, 240, 35, 240, 79, 14, 95, 15, 1, 95, 14, + 240, 67, 240, 240, 35, 240, 240, 35, 240, 240, 35, 240, + 240, 35, 240, 240, 35, 240, 240, 35, 240, 240, 35, 240, + 240, 35, 240, 240, 35, 240, 240, 35, 240, 240, 35, 240, + 240, 35, 240, 240, 35, 0, 32, 112, 23, 12, 0, 40, + 100, 118, 87, 88, 72, 87, 102, 162, 162, 161, 162, 162, + 146, 146, 146, 161, 240, 240, 48, 11, 16, 0, 44, 12, + 76, 76, 76, 0, 38, 64, 14, 11, 0, 37, 51, 117, + 87, 71, 71, 85, 115, 0, 15, 112, 93, 21, 242, 240, + 51, 240, 51, 240, 50, 240, 51, 240, 51, 240, 50, 240, + 51, 240, 51, 240, 35, 240, 51, 240, 51, 240, 35, 240, + 51, 240, 51, 240, 35, 240, 51, 240, 51, 240, 35, 240, + 51, 240, 51, 240, 35, 240, 51, 240, 51, 240, 35, 240, + 51, 240, 51, 240, 35, 240, 51, 240, 51, 240, 35, 240, + 51, 240, 51, 240, 35, 240, 51, 240, 51, 240, 35, 240, + 51, 240, 51, 240, 35, 240, 51, 240, 50, 240, 51, 240, + 51, 240, 50, 240, 64, 63, 23, 0, 12, 39, 235, 181, + 53, 149, 85, 132, 116, 117, 117, 101, 117, 101, 117, 101, + 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, + 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, + 118, 70, 118, 85, 117, 101, 117, 101, 117, 116, 116, 133, + 85, 149, 53, 187, 231, 0, 32, 112, 38, 20, 0, 11, + 18, 240, 20, 230, 155, 149, 21, 245, 245, 245, 245, 245, + 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, + 245, 245, 245, 245, 245, 245, 175, 95, 0, 28, 63, 22, + 0, 11, 87, 219, 163, 70, 131, 102, 116, 102, 86, 86, + 86, 102, 70, 102, 70, 102, 84, 118, 84, 118, 240, 22, + 246, 240, 22, 240, 21, 240, 21, 240, 21, 240, 35, 240, + 51, 240, 51, 240, 51, 114, 147, 130, 146, 131, 130, 147, + 126, 127, 111, 1, 111, 1, 95, 2, 95, 2, 0, 30, + 112, 62, 23, 0, 12, 39, 235, 179, 70, 147, 102, 133, + 85, 118, 86, 103, 70, 103, 70, 117, 86, 131, 86, 240, + 37, 240, 53, 240, 36, 247, 240, 24, 240, 70, 240, 54, + 240, 54, 240, 38, 240, 39, 100, 103, 86, 87, 71, 87, + 71, 87, 71, 86, 86, 102, 99, 118, 132, 70, 172, 216, + 0, 32, 112, 63, 23, 0, 13, 34, 240, 83, 240, 68, + 240, 53, 240, 53, 240, 38, 240, 23, 240, 23, 242, 21, + 227, 21, 226, 37, 210, 53, 195, 53, 194, 69, 178, 85, + 163, 85, 162, 101, 146, 117, 130, 133, 130, 133, 114, 149, + 127, 4, 79, 4, 230, 240, 38, 240, 38, 240, 38, 240, + 38, 221, 173, 0, 32, 16, 58, 22, 0, 11, 34, 177, + 132, 115, 142, 141, 156, 171, 186, 200, 226, 240, 82, 240, + 82, 240, 82, 38, 204, 164, 84, 147, 101, 130, 133, 240, + 37, 240, 38, 240, 22, 240, 22, 99, 118, 85, 102, 70, + 102, 70, 102, 70, 101, 100, 117, 98, 133, 131, 85, 171, + 214, 0, 31, 80, 63, 22, 0, 12, 6, 233, 196, 67, + 164, 84, 132, 85, 117, 70, 117, 70, 101, 101, 101, 115, + 117, 240, 37, 240, 22, 37, 150, 24, 120, 53, 103, 84, + 103, 85, 86, 101, 86, 102, 70, 102, 70, 102, 70, 102, + 70, 102, 85, 102, 85, 102, 85, 101, 116, 101, 117, 84, + 149, 53, 170, 230, 0, 31, 64, 71, 24, 0, 9, 34, + 240, 115, 240, 111, 3, 95, 4, 95, 3, 111, 2, 127, + 2, 127, 1, 130, 178, 146, 162, 162, 147, 147, 131, 240, + 98, 240, 99, 240, 83, 240, 99, 240, 84, 240, 84, 240, + 68, 240, 84, 240, 84, 240, 69, 240, 69, 240, 69, 240, + 54, 240, 54, 240, 54, 240, 54, 240, 54, 240, 54, 240, + 54, 240, 68, 0, 31, 96, 58, 23, 0, 12, 54, 235, + 180, 84, 162, 132, 131, 147, 131, 148, 100, 148, 101, 132, + 102, 116, 103, 99, 136, 52, 142, 171, 204, 219, 189, 147, + 42, 116, 57, 100, 104, 83, 135, 68, 165, 68, 165, 68, + 180, 68, 180, 68, 179, 100, 163, 101, 131, 133, 84, 172, + 231, 0, 32, 112, 63, 22, 0, 11, 102, 234, 181, 52, + 149, 69, 117, 100, 117, 101, 86, 101, 86, 101, 86, 102, + 70, 102, 70, 102, 70, 102, 70, 102, 70, 102, 85, 102, + 85, 87, 101, 71, 116, 56, 135, 22, 164, 38, 240, 21, + 240, 37, 116, 101, 101, 101, 102, 84, 117, 84, 133, 84, + 147, 69, 185, 230, 0, 31, 96, 23, 11, 0, 19, 67, + 117, 87, 71, 71, 85, 115, 0, 9, 35, 117, 87, 71, + 71, 85, 115, 0, 15, 112, 31, 11, 0, 19, 67, 117, + 87, 71, 71, 85, 115, 0, 9, 35, 117, 87, 71, 71, + 86, 101, 146, 146, 145, 146, 146, 130, 146, 130, 145, 240, + 240, 36, 11, 0, 15, 51, 117, 87, 71, 71, 85, 115, + 0, 6, 67, 131, 131, 131, 131, 131, 131, 117, 101, 101, + 101, 101, 101, 101, 87, 71, 71, 71, 71, 85, 115, 240, + 208, 21, 34, 0, 68, 15, 15, 79, 15, 79, 15, 0, + 30, 47, 15, 79, 15, 79, 15, 0, 68, 64, 55, 20, + 0, 28, 35, 240, 21, 230, 230, 230, 245, 240, 19, 0, + 12, 18, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 35, 240, 35, 240, 19, 240, 20, 245, 229, 245, 84, + 86, 70, 70, 70, 70, 70, 70, 70, 70, 99, 101, 84, + 123, 183, 0, 6, 16, 55, 20, 240, 240, 247, 187, 116, + 70, 99, 102, 70, 70, 70, 70, 70, 70, 70, 70, 84, + 85, 230, 214, 228, 244, 240, 19, 240, 34, 240, 35, 240, + 35, 240, 34, 240, 50, 240, 50, 240, 50, 240, 50, 0, + 9, 99, 240, 21, 230, 231, 214, 245, 244, 0, 28, 112, + 110, 33, 0, 9, 88, 240, 125, 240, 53, 117, 243, 211, + 211, 243, 179, 240, 35, 147, 117, 115, 130, 104, 114, 115, + 84, 51, 99, 98, 84, 98, 98, 98, 69, 101, 50, 83, + 69, 101, 51, 66, 69, 117, 66, 66, 69, 117, 66, 66, + 69, 117, 66, 66, 69, 117, 66, 66, 69, 117, 66, 66, + 69, 117, 66, 66, 69, 117, 66, 66, 69, 117, 66, 67, + 69, 101, 66, 82, 69, 101, 66, 82, 84, 101, 50, 99, + 84, 55, 50, 114, 104, 24, 131, 117, 69, 163, 240, 240, + 19, 240, 67, 147, 246, 165, 151, 239, 1, 240, 75, 0, + 46, 112, 84, 34, 0, 10, 34, 240, 240, 20, 240, 244, + 240, 245, 240, 214, 240, 214, 240, 215, 240, 184, 240, 184, + 240, 170, 240, 154, 240, 146, 38, 240, 131, 39, 240, 115, + 39, 240, 114, 70, 240, 99, 71, 240, 83, 71, 240, 82, + 102, 240, 67, 103, 240, 51, 103, 240, 50, 134, 240, 35, + 135, 240, 31, 3, 240, 31, 3, 243, 167, 227, 167, 226, + 198, 211, 199, 194, 230, 194, 230, 138, 110, 74, 110, 0, + 47, 32, 69, 31, 0, 11, 95, 5, 191, 8, 198, 134, + 182, 150, 166, 165, 166, 166, 150, 166, 150, 166, 150, 166, + 150, 166, 150, 165, 166, 150, 166, 149, 182, 118, 207, 2, + 239, 3, 214, 149, 182, 165, 166, 166, 150, 182, 134, 182, + 134, 182, 134, 182, 134, 182, 134, 182, 134, 182, 134, 166, + 150, 166, 150, 150, 111, 9, 127, 6, 0, 43, 112, 78, + 32, 0, 13, 71, 114, 221, 51, 183, 89, 150, 167, 134, + 198, 118, 229, 118, 244, 102, 240, 20, 87, 240, 35, 87, + 240, 35, 86, 240, 51, 71, 240, 50, 87, 240, 167, 240, + 167, 240, 167, 240, 167, 240, 167, 240, 167, 240, 167, 240, + 182, 240, 51, 87, 240, 35, 87, 240, 34, 118, 240, 34, + 134, 243, 134, 242, 166, 210, 199, 163, 231, 99, 240, 46, + 240, 104, 0, 45, 80, 69, 34, 0, 12, 111, 5, 239, + 8, 246, 119, 230, 150, 214, 166, 198, 182, 182, 198, 166, + 198, 166, 199, 150, 214, 150, 214, 150, 215, 134, 215, 134, + 215, 134, 215, 134, 215, 134, 215, 134, 215, 134, 215, 134, + 215, 134, 214, 150, 214, 150, 214, 150, 198, 166, 198, 166, + 182, 182, 182, 182, 166, 198, 134, 175, 8, 191, 5, 0, + 48, 64, 79, 31, 0, 11, 95, 9, 127, 9, 182, 134, + 182, 165, 166, 180, 166, 195, 166, 195, 166, 210, 166, 210, + 166, 98, 82, 166, 98, 82, 166, 98, 240, 38, 83, 240, + 38, 68, 240, 46, 240, 46, 240, 38, 68, 240, 38, 83, + 240, 38, 98, 240, 38, 98, 99, 134, 98, 98, 150, 226, + 150, 226, 150, 226, 150, 211, 150, 211, 150, 195, 166, 180, + 166, 150, 111, 10, 111, 10, 0, 43, 48, 67, 28, 0, + 10, 79, 8, 95, 8, 150, 118, 150, 148, 150, 163, 150, + 178, 150, 179, 134, 179, 134, 194, 134, 82, 82, 134, 82, + 82, 134, 82, 246, 82, 246, 67, 246, 52, 253, 253, 246, + 52, 246, 67, 246, 82, 246, 82, 246, 82, 246, 240, 118, + 240, 118, 240, 118, 240, 118, 240, 118, 240, 118, 240, 63, + 223, 0, 40, 16, 76, 34, 0, 14, 39, 98, 240, 28, + 51, 230, 104, 198, 166, 182, 197, 166, 228, 166, 228, 150, + 240, 19, 150, 240, 19, 135, 240, 19, 134, 240, 50, 134, + 240, 50, 119, 240, 199, 240, 199, 240, 199, 240, 199, 240, + 199, 240, 199, 240, 199, 143, 86, 143, 86, 230, 135, 214, + 150, 214, 150, 214, 166, 198, 182, 182, 198, 151, 216, 88, + 253, 51, 240, 56, 98, 0, 47, 80, 69, 35, 0, 13, + 30, 62, 78, 62, 134, 182, 198, 182, 198, 182, 198, 182, + 198, 182, 198, 182, 198, 182, 198, 182, 198, 182, 198, 182, + 198, 182, 198, 182, 207, 8, 207, 8, 198, 182, 198, 182, + 198, 182, 198, 182, 198, 182, 198, 182, 198, 182, 198, 182, + 198, 182, 198, 182, 198, 182, 198, 182, 198, 182, 142, 62, + 78, 62, 0, 48, 80, 38, 18, 0, 6, 110, 78, 134, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 142, 78, 0, 25, 32, 64, 24, 0, 9, 110, + 174, 246, 240, 54, 240, 54, 240, 54, 240, 54, 240, 54, + 240, 54, 240, 54, 240, 54, 240, 54, 240, 54, 240, 54, + 240, 54, 240, 54, 240, 54, 240, 54, 240, 54, 240, 54, + 240, 54, 240, 54, 147, 102, 134, 70, 119, 70, 119, 70, + 119, 70, 133, 70, 148, 70, 188, 232, 0, 34, 64, 85, + 35, 0, 13, 30, 122, 78, 122, 134, 212, 198, 211, 214, + 195, 230, 179, 246, 163, 240, 22, 147, 240, 38, 131, 240, + 54, 115, 240, 70, 99, 240, 86, 83, 240, 102, 68, 240, + 102, 53, 240, 102, 39, 240, 86, 25, 240, 79, 1, 240, + 72, 39, 240, 55, 70, 240, 54, 87, 240, 38, 103, 240, + 22, 118, 240, 22, 119, 246, 135, 230, 135, 230, 151, 214, + 166, 214, 167, 198, 183, 126, 77, 78, 77, 0, 48, 80, + 68, 27, 0, 10, 31, 207, 240, 22, 240, 102, 240, 102, + 240, 102, 240, 102, 240, 102, 240, 102, 240, 102, 240, 102, + 240, 102, 240, 102, 240, 102, 240, 102, 240, 102, 240, 102, + 240, 102, 240, 102, 240, 102, 178, 134, 178, 134, 178, 134, + 163, 134, 162, 150, 162, 150, 147, 150, 147, 150, 132, 150, + 102, 95, 7, 95, 7, 0, 37, 96, 120, 43, 0, 16, + 26, 240, 59, 75, 240, 43, 135, 240, 24, 199, 240, 17, + 22, 194, 21, 241, 22, 194, 21, 226, 22, 194, 22, 209, + 38, 194, 37, 194, 38, 194, 37, 194, 38, 194, 53, 177, + 54, 194, 53, 162, 54, 194, 54, 145, 70, 194, 69, 130, + 70, 194, 69, 130, 70, 194, 70, 113, 86, 194, 85, 98, + 86, 194, 85, 98, 86, 194, 86, 81, 102, 194, 101, 66, + 102, 194, 102, 49, 118, 194, 117, 34, 118, 194, 117, 34, + 118, 194, 118, 17, 134, 194, 135, 134, 194, 135, 134, 194, + 134, 150, 194, 149, 150, 194, 149, 150, 194, 163, 166, 138, + 99, 110, 74, 98, 126, 0, 59, 80, 87, 35, 0, 13, + 26, 186, 75, 170, 136, 210, 200, 210, 201, 194, 194, 23, + 178, 194, 39, 162, 194, 39, 162, 194, 55, 146, 194, 71, + 130, 194, 71, 130, 194, 87, 114, 194, 103, 98, 194, 119, + 82, 194, 119, 82, 194, 135, 66, 194, 151, 50, 194, 167, + 34, 194, 167, 34, 194, 183, 18, 194, 201, 194, 201, 194, + 216, 194, 231, 194, 246, 194, 246, 194, 240, 21, 194, 240, + 36, 194, 240, 36, 138, 227, 138, 242, 0, 49, 16, 71, + 32, 0, 9, 40, 240, 125, 240, 38, 70, 245, 133, 213, + 165, 182, 166, 150, 198, 134, 198, 119, 199, 102, 230, 102, + 230, 102, 231, 71, 231, 71, 231, 71, 231, 71, 231, 71, + 231, 71, 231, 71, 231, 71, 231, 71, 231, 86, 230, 102, + 230, 103, 199, 118, 198, 134, 198, 150, 166, 181, 165, 213, + 133, 246, 70, 240, 45, 240, 120, 0, 45, 96, 67, 30, + 0, 11, 47, 4, 191, 7, 198, 118, 182, 134, 166, 150, + 150, 150, 150, 151, 134, 151, 134, 151, 134, 151, 134, 151, + 134, 150, 150, 150, 150, 134, 166, 118, 191, 3, 207, 246, + 240, 150, 240, 150, 240, 150, 240, 150, 240, 150, 240, 150, + 240, 150, 240, 150, 240, 150, 240, 150, 240, 150, 240, 94, + 240, 30, 0, 43, 32, 96, 33, 0, 9, 87, 240, 141, + 240, 54, 86, 246, 118, 214, 150, 182, 182, 165, 214, 134, + 214, 134, 215, 103, 230, 102, 246, 102, 247, 71, 247, 71, + 247, 71, 247, 71, 247, 71, 247, 71, 247, 71, 247, 71, + 247, 71, 247, 86, 246, 102, 246, 102, 246, 118, 214, 134, + 68, 86, 149, 55, 38, 181, 19, 51, 21, 215, 87, 247, + 70, 240, 61, 240, 123, 98, 240, 116, 82, 240, 117, 51, + 240, 123, 240, 138, 240, 138, 240, 137, 240, 168, 240, 167, + 240, 197, 0, 9, 16, 89, 37, 0, 13, 127, 4, 240, + 63, 7, 240, 70, 119, 240, 38, 150, 240, 22, 166, 246, + 167, 230, 167, 230, 167, 230, 167, 230, 167, 230, 166, 246, + 166, 246, 150, 240, 22, 119, 240, 47, 3, 240, 79, 2, + 240, 86, 102, 240, 70, 118, 240, 54, 134, 240, 38, 135, + 240, 22, 135, 240, 22, 135, 240, 22, 135, 240, 22, 135, + 240, 22, 135, 240, 22, 136, 246, 136, 67, 134, 151, 66, + 150, 167, 50, 94, 122, 110, 151, 0, 51, 96, 65, 24, + 0, 6, 102, 82, 154, 35, 132, 87, 116, 118, 100, 149, + 100, 164, 85, 164, 85, 179, 85, 179, 86, 163, 87, 147, + 89, 240, 27, 222, 191, 159, 1, 159, 190, 219, 240, 40, + 240, 39, 66, 198, 66, 213, 67, 197, 67, 197, 67, 197, + 68, 180, 84, 180, 86, 132, 104, 84, 115, 43, 130, 87, + 0, 34, 32, 75, 32, 0, 16, 31, 11, 111, 11, 101, + 86, 85, 99, 118, 115, 98, 134, 130, 98, 134, 130, 98, + 134, 130, 83, 134, 131, 66, 150, 146, 66, 150, 146, 246, + 240, 182, 240, 182, 240, 182, 240, 182, 240, 182, 240, 182, + 240, 182, 240, 182, 240, 182, 240, 182, 240, 182, 240, 182, + 240, 182, 240, 182, 240, 182, 240, 182, 240, 182, 240, 95, + 3, 239, 3, 0, 45, 16, 70, 35, 0, 13, 30, 122, + 78, 122, 134, 242, 198, 242, 198, 242, 198, 242, 198, 242, + 198, 242, 198, 242, 198, 242, 198, 242, 198, 242, 198, 242, + 198, 242, 198, 242, 198, 242, 198, 242, 198, 242, 198, 242, + 198, 242, 198, 242, 198, 242, 198, 242, 198, 242, 213, 226, + 230, 210, 245, 194, 240, 37, 163, 240, 54, 100, 240, 93, + 240, 168, 0, 50, 86, 36, 0, 13, 78, 138, 78, 138, + 134, 240, 18, 199, 227, 214, 226, 231, 195, 231, 195, 246, + 194, 240, 23, 163, 240, 23, 163, 240, 39, 146, 240, 55, + 131, 240, 70, 130, 240, 87, 99, 240, 87, 99, 240, 102, + 98, 240, 119, 67, 240, 134, 66, 240, 151, 50, 240, 151, + 35, 240, 166, 34, 240, 186, 240, 186, 240, 200, 240, 216, + 240, 230, 240, 246, 240, 246, 240, 240, 20, 240, 240, 36, + 240, 240, 50, 0, 51, 112, 122, 49, 0, 18, 62, 46, + 90, 78, 46, 90, 119, 151, 210, 198, 166, 195, 199, 151, + 178, 215, 151, 178, 230, 166, 163, 231, 151, 146, 240, 22, + 151, 146, 240, 22, 136, 131, 240, 23, 121, 114, 240, 54, + 121, 114, 240, 54, 99, 22, 99, 240, 55, 82, 39, 82, + 240, 86, 82, 39, 82, 240, 86, 67, 54, 67, 240, 87, + 50, 71, 50, 240, 118, 50, 71, 50, 240, 118, 35, 86, + 35, 240, 119, 18, 103, 18, 240, 150, 18, 118, 18, 240, + 153, 121, 240, 152, 136, 240, 183, 151, 240, 183, 151, 240, + 182, 166, 240, 213, 181, 240, 213, 181, 240, 212, 196, 240, + 243, 211, 240, 242, 226, 0, 69, 80, 84, 36, 0, 13, + 94, 60, 126, 60, 183, 163, 240, 39, 131, 240, 55, 131, + 240, 71, 99, 240, 87, 83, 240, 119, 67, 240, 135, 35, + 240, 151, 34, 240, 186, 240, 185, 240, 215, 240, 247, 240, + 231, 240, 247, 240, 231, 240, 217, 240, 202, 240, 163, 23, + 240, 147, 55, 240, 131, 55, 240, 115, 87, 240, 98, 119, + 240, 67, 119, 240, 51, 151, 240, 35, 151, 240, 19, 183, + 227, 215, 140, 110, 76, 110, 0, 50, 78, 36, 0, 13, + 78, 138, 78, 138, 135, 227, 200, 211, 215, 195, 247, 178, + 240, 23, 163, 240, 39, 146, 240, 55, 131, 240, 71, 99, + 240, 87, 99, 240, 103, 67, 240, 135, 50, 240, 151, 35, + 240, 167, 18, 240, 186, 240, 200, 240, 216, 240, 230, 240, + 246, 240, 246, 240, 246, 240, 246, 240, 246, 240, 246, 240, + 246, 240, 246, 240, 246, 240, 246, 240, 190, 240, 126, 0, + 51, 16, 70, 27, 0, 10, 47, 7, 95, 7, 87, 119, + 101, 151, 100, 151, 115, 167, 115, 151, 130, 152, 130, 151, + 146, 135, 162, 135, 240, 71, 240, 87, 240, 71, 240, 72, + 240, 71, 240, 71, 240, 87, 240, 71, 130, 167, 130, 151, + 146, 136, 146, 135, 162, 119, 163, 119, 163, 103, 179, 103, + 164, 87, 165, 86, 151, 79, 7, 95, 7, 0, 37, 96, + 48, 11, 7, 71, 71, 67, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 135, 71, 71, 64, + 36, 22, 0, 8, 113, 145, 147, 115, 146, 130, 146, 130, + 146, 130, 162, 130, 146, 130, 162, 130, 166, 70, 103, 55, + 88, 40, 72, 40, 87, 55, 86, 70, 116, 100, 0, 75, + 48, 11, 7, 71, 71, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 71, 71, 71, 64, + 19, 16, 240, 240, 129, 227, 197, 167, 132, 20, 99, 68, + 67, 99, 81, 145, 0, 70, 64, 14, 11, 240, 240, 83, + 117, 87, 71, 71, 85, 115, 0, 48, 112, 22, 12, 240, + 240, 177, 147, 146, 146, 146, 162, 146, 162, 166, 103, 88, + 72, 87, 86, 116, 0, 41, 32, 47, 25, 0, 41, 40, + 252, 196, 85, 166, 85, 150, 101, 134, 101, 148, 117, 240, + 85, 240, 85, 250, 182, 53, 149, 101, 133, 117, 132, 133, + 117, 133, 117, 133, 117, 133, 118, 102, 134, 51, 23, 106, + 39, 134, 86, 0, 34, 112, 70, 27, 0, 10, 24, 240, + 72, 240, 117, 240, 117, 240, 117, 240, 117, 240, 117, 240, + 117, 240, 117, 240, 117, 240, 117, 240, 117, 54, 213, 26, + 183, 85, 166, 117, 149, 134, 133, 149, 133, 150, 117, 150, + 117, 150, 117, 150, 117, 150, 117, 150, 117, 150, 117, 150, + 117, 149, 133, 134, 134, 117, 148, 18, 70, 163, 58, 179, + 70, 0, 38, 64, 45, 22, 0, 36, 88, 204, 134, 69, + 101, 86, 101, 86, 85, 102, 85, 116, 86, 240, 22, 240, + 22, 240, 22, 240, 22, 240, 22, 240, 22, 240, 37, 240, + 38, 146, 101, 146, 102, 115, 118, 83, 171, 215, 0, 31, + 32, 68, 27, 0, 11, 88, 240, 72, 240, 117, 240, 117, + 240, 117, 240, 117, 240, 117, 240, 117, 240, 117, 240, 117, + 240, 117, 230, 37, 201, 21, 166, 71, 149, 118, 149, 133, + 133, 149, 133, 149, 118, 149, 118, 149, 118, 149, 118, 149, + 118, 149, 118, 149, 118, 149, 133, 149, 134, 133, 149, 118, + 165, 75, 138, 24, 166, 56, 0, 37, 80, 45, 23, 0, + 38, 38, 250, 181, 69, 133, 100, 133, 101, 101, 117, 101, + 133, 70, 133, 70, 133, 70, 133, 79, 4, 70, 240, 38, + 240, 38, 240, 53, 240, 53, 178, 101, 147, 101, 131, 134, + 68, 187, 231, 0, 32, 96, 62, 21, 0, 6, 38, 218, + 165, 37, 133, 38, 132, 54, 117, 54, 117, 68, 133, 240, + 21, 240, 21, 240, 21, 240, 21, 220, 156, 197, 240, 21, + 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, + 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, + 240, 21, 240, 21, 220, 156, 0, 30, 66, 25, 0, 41, + 54, 68, 154, 22, 116, 69, 20, 100, 100, 20, 85, 101, + 18, 101, 101, 149, 101, 149, 101, 149, 101, 149, 101, 164, + 100, 196, 68, 219, 210, 38, 242, 240, 130, 240, 115, 240, + 116, 240, 125, 207, 1, 175, 1, 143, 3, 100, 165, 84, + 196, 84, 196, 84, 196, 100, 165, 102, 117, 158, 218, 0, + 7, 64, 70, 28, 0, 10, 72, 240, 88, 240, 133, 240, + 133, 240, 133, 240, 133, 240, 133, 240, 133, 240, 133, 240, + 133, 240, 133, 240, 133, 70, 213, 42, 181, 19, 53, 181, + 17, 101, 166, 117, 166, 117, 165, 133, 165, 133, 165, 133, + 165, 133, 165, 133, 165, 133, 165, 133, 165, 133, 165, 133, + 165, 133, 165, 133, 165, 133, 123, 43, 75, 43, 0, 39, + 36, 14, 240, 240, 244, 149, 135, 119, 119, 133, 163, 0, + 8, 8, 104, 149, 149, 149, 149, 149, 149, 149, 149, 149, + 149, 149, 149, 149, 149, 149, 149, 106, 74, 0, 19, 96, + 50, 18, 0, 7, 115, 229, 199, 183, 183, 197, 227, 0, + 10, 72, 168, 213, 213, 213, 213, 213, 213, 213, 213, 213, + 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 84, + 69, 70, 53, 70, 52, 86, 37, 100, 52, 122, 166, 240, + 240, 240, 68, 26, 0, 9, 104, 240, 56, 240, 101, 240, + 101, 240, 101, 240, 101, 240, 101, 240, 101, 240, 101, 240, + 101, 240, 101, 240, 101, 88, 133, 88, 133, 115, 181, 99, + 197, 83, 213, 67, 229, 36, 245, 20, 240, 26, 240, 27, + 252, 229, 37, 229, 53, 213, 54, 197, 69, 197, 85, 181, + 86, 165, 101, 123, 26, 75, 26, 0, 36, 32, 38, 15, + 240, 240, 248, 120, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 123, 75, 0, 21, 16, + 69, 40, 0, 70, 8, 70, 117, 168, 42, 57, 136, 19, + 53, 34, 53, 183, 103, 85, 166, 118, 101, 166, 118, 101, + 165, 133, 117, 165, 133, 117, 165, 133, 117, 165, 133, 117, + 165, 133, 117, 165, 133, 117, 165, 133, 117, 165, 133, 117, + 165, 133, 117, 165, 133, 117, 165, 133, 117, 165, 133, 117, + 123, 43, 27, 75, 43, 27, 0, 55, 64, 47, 28, 0, + 49, 8, 70, 168, 42, 136, 19, 53, 183, 101, 166, 117, + 166, 117, 165, 133, 165, 133, 165, 133, 165, 133, 165, 133, + 165, 133, 165, 133, 165, 133, 165, 133, 165, 133, 165, 133, + 165, 133, 123, 43, 75, 43, 0, 39, 46, 24, 0, 39, + 118, 240, 27, 181, 69, 149, 101, 132, 132, 117, 133, 101, + 133, 86, 134, 70, 134, 70, 134, 70, 134, 70, 134, 70, + 134, 70, 134, 85, 133, 101, 133, 102, 117, 117, 101, 149, + 69, 188, 231, 0, 34, 48, 64, 27, 0, 47, 40, 54, + 168, 26, 138, 70, 166, 102, 149, 134, 133, 134, 133, 150, + 117, 150, 117, 150, 117, 150, 117, 150, 117, 150, 117, 150, + 117, 149, 133, 134, 133, 134, 134, 102, 151, 70, 165, 25, + 197, 38, 229, 240, 117, 240, 117, 240, 117, 240, 117, 240, + 117, 240, 117, 240, 75, 240, 27, 0, 8, 96, 66, 27, + 0, 48, 22, 82, 186, 51, 166, 51, 20, 150, 102, 134, + 118, 134, 133, 133, 149, 118, 149, 118, 149, 118, 149, 118, + 149, 118, 149, 118, 149, 133, 149, 134, 133, 134, 118, 150, + 102, 166, 56, 186, 21, 214, 53, 240, 117, 240, 117, 240, + 117, 240, 117, 240, 117, 240, 117, 240, 117, 240, 75, 240, + 27, 0, 7, 32, 46, 22, 0, 38, 71, 68, 119, 40, + 87, 19, 37, 116, 18, 38, 118, 54, 118, 54, 117, 98, + 149, 240, 37, 240, 37, 240, 37, 240, 37, 240, 37, 240, + 37, 240, 37, 240, 37, 240, 37, 240, 37, 236, 172, 0, + 31, 64, 38, 19, 0, 33, 106, 114, 100, 98, 131, 83, + 146, 83, 146, 84, 247, 218, 156, 140, 154, 230, 66, 148, + 66, 163, 67, 147, 67, 147, 68, 130, 85, 84, 93, 98, + 54, 0, 27, 16, 45, 18, 0, 12, 2, 240, 18, 240, + 18, 240, 18, 243, 243, 228, 228, 213, 173, 93, 133, 213, + 213, 213, 213, 213, 213, 213, 213, 213, 213, 66, 117, 66, + 117, 66, 117, 66, 117, 66, 133, 34, 168, 181, 0, 25, + 80, 47, 28, 0, 49, 8, 88, 120, 88, 165, 133, 165, + 133, 165, 133, 165, 133, 165, 133, 165, 133, 165, 133, 165, + 133, 165, 133, 165, 133, 165, 133, 165, 133, 165, 133, 165, + 118, 165, 118, 181, 66, 24, 154, 24, 182, 56, 0, 39, + 51, 26, 0, 45, 75, 56, 75, 56, 117, 131, 166, 114, + 197, 114, 197, 99, 198, 82, 229, 82, 230, 50, 240, 21, + 50, 240, 21, 35, 240, 22, 18, 240, 53, 18, 240, 56, + 240, 70, 240, 86, 240, 85, 240, 116, 240, 116, 240, 130, + 0, 37, 64, 75, 35, 0, 61, 42, 25, 56, 74, 25, + 56, 117, 85, 115, 165, 100, 114, 182, 84, 114, 197, 85, + 83, 197, 85, 82, 214, 54, 82, 229, 55, 51, 229, 50, + 20, 50, 240, 21, 18, 36, 50, 240, 21, 18, 37, 19, + 240, 21, 18, 52, 18, 240, 54, 68, 18, 240, 54, 71, + 240, 54, 85, 240, 84, 101, 240, 84, 100, 240, 100, 115, + 240, 114, 131, 0, 49, 96, 50, 26, 0, 45, 74, 41, + 90, 41, 133, 114, 213, 83, 229, 51, 245, 35, 240, 37, + 18, 240, 71, 240, 70, 240, 101, 240, 117, 240, 87, 240, + 56, 240, 50, 37, 240, 19, 53, 227, 69, 226, 101, 194, + 133, 121, 58, 73, 58, 0, 36, 32, 71, 26, 0, 45, + 75, 56, 75, 56, 117, 131, 166, 114, 197, 114, 197, 99, + 213, 82, 229, 67, 230, 50, 240, 21, 50, 240, 21, 35, + 240, 22, 18, 240, 53, 18, 240, 55, 240, 86, 240, 86, + 240, 85, 240, 116, 240, 116, 240, 130, 240, 131, 240, 130, + 240, 19, 82, 245, 51, 245, 50, 240, 21, 35, 240, 20, + 35, 240, 55, 240, 84, 0, 9, 44, 21, 0, 36, 127, + 1, 95, 1, 84, 101, 99, 102, 98, 102, 114, 101, 130, + 86, 130, 70, 245, 246, 230, 245, 82, 134, 82, 118, 98, + 117, 99, 102, 99, 86, 100, 85, 100, 95, 1, 95, 1, + 0, 29, 64, 11, 27, 0, 67, 79, 8, 79, 8, 0, + 78, 16, 15, 49, 0, 122, 79, 15, 15, 79, 15, 15, + 0, 127, 0, 14, 48, 25, 18, 240, 240, 131, 83, 101, + 53, 85, 53, 85, 53, 84, 68, 85, 53, 84, 68, 99, + 83, 129, 113, 0, 77, 64, 14, 19, 0, 7, 68, 97, + 125, 93, 93, 113, 100, 0, 88, 96, +}; + +//***************************************************************************** +// +// The font definition for the 46 point Cm bold font. +// +//***************************************************************************** +const tFont g_sFontCm46b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 44, + + // + // The height of the font. + // + 45, + + // + // The baseline of the font. + // + 34, + + // + // The offset to each character in the font. + // + { + 0, 5, 42, 81, 205, 290, 411, 505, + 528, 576, 624, 671, 764, 787, 798, 812, + 905, 968, 1006, 1069, 1131, 1194, 1252, 1315, + 1386, 1444, 1507, 1530, 1561, 1597, 1618, 1673, + 1728, 1838, 1922, 1991, 2069, 2138, 2217, 2284, + 2360, 2429, 2467, 2531, 2616, 2684, 2804, 2891, + 2962, 3029, 3125, 3214, 3279, 3354, 3424, 3510, + 3632, 3716, 3794, 3864, 3912, 3948, 3996, 4015, + 4029, 4051, 4098, 4168, 4213, 4281, 4326, 4388, + 4454, 4524, 4560, 4610, 4678, 4716, 4785, 4832, + 4878, 4942, 5008, 5054, 5092, 5137, 5184, 5235, + 5310, 5360, 5431, 5475, 5486, 5501, 5526, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm46bData +}; diff --git a/grlib/fonts/fontcm46i.c b/grlib/fonts/fontcm46i.c new file mode 100644 index 0000000..92d2241 --- /dev/null +++ b/grlib/fonts/fontcm46i.c @@ -0,0 +1,654 @@ +//***************************************************************************** +// +// fontcm46i.c - Font definition for the 46pt Cm italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 46 point +// Bold: no +// Italic: yes +// Memory usage: 6772 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 46 point Cm italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm46iData[6570] = +{ + 5, 18, 0, 105, 96, 39, 16, 240, 240, 179, 196, 181, + 181, 180, 196, 196, 195, 196, 196, 195, 211, 211, 210, 211, + 211, 211, 210, 226, 211, 210, 226, 226, 225, 241, 0, 7, + 67, 197, 181, 181, 195, 0, 25, 64, 35, 19, 240, 240, + 179, 83, 117, 53, 101, 53, 101, 53, 116, 68, 161, 113, + 145, 113, 161, 113, 145, 113, 161, 113, 145, 113, 145, 113, + 145, 113, 145, 113, 0, 74, 112, 127, 36, 0, 16, 2, + 129, 240, 162, 114, 240, 146, 130, 240, 146, 114, 240, 146, + 130, 240, 146, 114, 240, 146, 130, 240, 146, 114, 240, 146, + 130, 240, 146, 114, 240, 146, 130, 240, 146, 114, 240, 161, + 130, 240, 146, 129, 240, 161, 130, 240, 146, 129, 239, 15, + 240, 18, 114, 240, 146, 130, 240, 146, 114, 240, 161, 130, + 240, 146, 129, 240, 162, 114, 240, 146, 130, 240, 146, 114, + 240, 31, 15, 225, 130, 240, 146, 129, 240, 161, 130, 240, + 146, 129, 240, 161, 130, 240, 146, 129, 240, 161, 130, 240, + 146, 129, 240, 161, 130, 240, 146, 129, 240, 161, 130, 240, + 146, 129, 240, 161, 130, 240, 146, 129, 240, 161, 130, 0, + 16, 64, 88, 31, 0, 10, 36, 240, 162, 65, 240, 130, + 97, 240, 98, 114, 240, 67, 129, 240, 66, 145, 240, 51, + 145, 240, 50, 161, 240, 35, 131, 240, 35, 131, 240, 35, + 130, 240, 50, 240, 211, 240, 211, 240, 211, 240, 210, 240, + 171, 240, 131, 240, 211, 240, 210, 240, 211, 240, 211, 240, + 211, 240, 210, 240, 226, 240, 211, 240, 211, 240, 135, 193, + 146, 52, 193, 130, 85, 145, 130, 82, 20, 113, 146, 66, + 67, 66, 181, 133, 0, 48, 136, 36, 163, 240, 34, 194, + 49, 243, 178, 66, 211, 178, 98, 179, 194, 97, 18, 101, + 194, 113, 54, 34, 210, 113, 162, 210, 129, 147, 210, 129, + 146, 226, 129, 130, 227, 113, 130, 242, 129, 114, 240, 18, + 129, 98, 240, 34, 113, 99, 240, 34, 113, 98, 240, 50, + 97, 98, 240, 66, 97, 82, 240, 97, 81, 82, 240, 129, + 34, 83, 240, 146, 99, 129, 240, 146, 114, 18, 240, 98, + 98, 65, 240, 82, 98, 97, 240, 50, 114, 97, 240, 35, + 98, 113, 240, 19, 114, 113, 240, 18, 114, 129, 242, 130, + 129, 226, 131, 129, 210, 147, 113, 211, 146, 129, 195, 162, + 114, 194, 178, 113, 194, 194, 98, 178, 210, 97, 178, 241, + 81, 179, 242, 49, 194, 240, 36, 0, 42, 16, 112, 34, + 0, 9, 116, 240, 210, 66, 178, 194, 98, 147, 178, 129, + 147, 162, 146, 131, 162, 146, 145, 163, 116, 145, 162, 116, + 145, 163, 115, 146, 163, 240, 50, 178, 240, 50, 194, 240, + 34, 210, 36, 148, 213, 49, 115, 18, 195, 81, 98, 65, + 195, 81, 82, 82, 164, 81, 66, 113, 165, 49, 81, 129, + 147, 36, 82, 129, 146, 194, 18, 81, 131, 212, 81, 131, + 212, 81, 116, 240, 113, 115, 240, 113, 131, 240, 113, 131, + 240, 97, 147, 240, 97, 147, 240, 81, 178, 240, 66, 179, + 240, 34, 211, 242, 243, 194, 240, 67, 130, 240, 136, 0, + 49, 16, 20, 11, 240, 163, 117, 101, 101, 116, 161, 145, + 161, 145, 161, 145, 145, 145, 145, 0, 43, 112, 96, 20, + 241, 240, 49, 240, 49, 240, 49, 240, 50, 240, 34, 240, + 34, 240, 49, 240, 50, 240, 34, 240, 50, 240, 34, 240, + 34, 240, 50, 240, 35, 240, 34, 240, 50, 240, 34, 240, + 50, 240, 35, 240, 34, 240, 50, 240, 50, 240, 35, 240, + 34, 240, 50, 240, 50, 240, 50, 240, 35, 240, 34, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 65, 240, 66, 240, 50, 240, + 65, 240, 66, 240, 65, 240, 66, 240, 65, 240, 97, 20, + 177, 240, 81, 240, 66, 240, 65, 240, 66, 240, 50, 240, + 65, 240, 65, 240, 66, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 35, 240, 35, 240, 34, 240, 50, 240, 50, 240, 35, 240, + 35, 240, 34, 240, 50, 240, 35, 240, 34, 240, 50, 240, + 35, 240, 34, 240, 50, 240, 34, 240, 50, 240, 34, 240, + 50, 240, 34, 240, 49, 240, 50, 240, 34, 240, 34, 240, + 49, 240, 49, 240, 49, 240, 49, 240, 49, 240, 64, 51, + 22, 177, 240, 82, 240, 82, 240, 82, 240, 81, 211, 66, + 67, 115, 50, 51, 147, 33, 35, 210, 17, 18, 240, 20, + 240, 52, 240, 18, 17, 18, 211, 33, 35, 147, 50, 51, + 115, 66, 67, 209, 240, 82, 240, 82, 240, 82, 240, 82, + 0, 76, 63, 32, 0, 38, 17, 240, 242, 240, 242, 240, + 242, 240, 241, 240, 242, 240, 242, 240, 242, 240, 241, 240, + 242, 240, 242, 240, 242, 240, 241, 240, 242, 240, 47, 13, + 240, 34, 240, 226, 240, 242, 240, 242, 240, 242, 240, 226, + 240, 242, 240, 242, 240, 242, 240, 226, 240, 242, 240, 242, + 240, 241, 0, 42, 80, 21, 11, 0, 41, 83, 117, 101, + 101, 116, 161, 145, 161, 145, 161, 145, 145, 145, 145, 240, + 240, 208, 9, 15, 0, 45, 11, 75, 0, 39, 112, 12, + 9, 0, 34, 2, 100, 69, 69, 83, 0, 14, 16, 98, + 31, 240, 162, 240, 226, 240, 210, 240, 226, 240, 210, 240, + 226, 240, 210, 240, 210, 240, 226, 240, 210, 240, 226, 240, + 210, 240, 226, 240, 210, 240, 226, 240, 210, 240, 210, 240, + 226, 240, 210, 240, 226, 240, 210, 240, 226, 240, 210, 240, + 225, 240, 226, 240, 210, 240, 226, 240, 210, 240, 226, 240, + 210, 240, 226, 240, 210, 240, 210, 240, 226, 240, 210, 240, + 226, 240, 210, 240, 226, 240, 210, 240, 226, 240, 210, 240, + 210, 240, 226, 240, 210, 240, 226, 240, 210, 240, 226, 240, + 224, 71, 24, 0, 13, 54, 240, 19, 51, 226, 99, 194, + 130, 179, 131, 162, 147, 147, 147, 131, 163, 131, 163, 116, + 163, 115, 164, 115, 164, 100, 164, 99, 179, 115, 179, 100, + 164, 100, 164, 100, 163, 115, 179, 115, 164, 100, 163, 116, + 163, 115, 164, 115, 163, 131, 163, 131, 147, 147, 147, 147, + 131, 178, 130, 195, 98, 227, 51, 240, 37, 0, 34, 112, + 67, 20, 0, 11, 113, 240, 50, 240, 34, 240, 35, 240, + 20, 226, 19, 179, 35, 240, 35, 240, 35, 240, 35, 240, + 19, 240, 35, 240, 35, 240, 35, 240, 19, 240, 35, 240, + 35, 240, 35, 240, 34, 240, 35, 240, 35, 240, 35, 240, + 35, 240, 19, 240, 35, 240, 35, 240, 35, 240, 19, 240, + 35, 240, 20, 190, 0, 30, 96, 81, 25, 0, 13, 118, + 240, 50, 66, 240, 17, 114, 225, 146, 193, 162, 177, 179, + 161, 49, 115, 145, 65, 115, 145, 65, 115, 145, 65, 115, + 129, 65, 116, 129, 65, 115, 145, 49, 131, 145, 34, 115, + 179, 116, 240, 99, 240, 99, 240, 98, 240, 99, 240, 99, + 240, 83, 240, 98, 240, 114, 240, 114, 177, 162, 193, 146, + 194, 130, 194, 146, 194, 135, 99, 146, 58, 161, 103, 162, + 132, 0, 35, 96, 76, 26, 0, 14, 70, 240, 50, 83, + 241, 131, 209, 162, 193, 179, 161, 195, 161, 49, 131, 145, + 65, 131, 145, 65, 131, 145, 65, 115, 161, 49, 131, 179, + 131, 240, 130, 240, 130, 240, 115, 240, 39, 240, 147, 240, + 147, 240, 146, 240, 147, 240, 131, 240, 131, 240, 131, 147, + 164, 132, 164, 131, 179, 145, 196, 145, 195, 162, 163, 193, + 147, 226, 83, 240, 38, 0, 37, 112, 86, 23, 0, 13, + 82, 240, 98, 240, 83, 240, 83, 240, 83, 240, 67, 240, + 83, 240, 83, 240, 82, 240, 83, 240, 82, 240, 98, 240, + 82, 240, 98, 240, 82, 240, 98, 240, 82, 240, 98, 240, + 82, 240, 98, 240, 82, 51, 226, 67, 225, 82, 226, 67, + 210, 83, 194, 99, 193, 114, 193, 115, 167, 51, 145, 103, + 129, 164, 34, 247, 240, 19, 240, 83, 240, 82, 240, 83, + 240, 83, 240, 83, 240, 82, 240, 98, 0, 10, 70, 24, + 0, 13, 1, 161, 195, 99, 187, 218, 225, 22, 240, 17, + 240, 114, 240, 113, 240, 129, 240, 129, 240, 129, 240, 114, + 240, 113, 53, 241, 18, 66, 226, 114, 194, 131, 240, 99, + 240, 99, 240, 99, 240, 99, 240, 99, 131, 148, 116, 147, + 132, 147, 131, 163, 129, 179, 145, 178, 162, 147, 177, 131, + 194, 99, 226, 66, 240, 37, 0, 35, 74, 25, 0, 14, + 37, 240, 35, 66, 242, 114, 210, 130, 194, 131, 178, 132, + 163, 131, 163, 240, 99, 240, 115, 240, 100, 240, 99, 53, + 212, 33, 67, 180, 17, 98, 179, 17, 115, 149, 146, 148, + 163, 132, 163, 132, 148, 131, 164, 116, 164, 116, 164, 115, + 179, 131, 164, 131, 163, 147, 163, 147, 147, 163, 146, 194, + 131, 195, 98, 243, 51, 240, 53, 0, 36, 48, 77, 26, + 0, 13, 81, 52, 129, 130, 22, 113, 145, 23, 98, 133, + 66, 81, 148, 82, 66, 146, 129, 35, 146, 164, 162, 194, + 146, 209, 161, 210, 146, 209, 161, 210, 240, 130, 240, 146, + 240, 131, 240, 130, 240, 131, 240, 130, 240, 131, 240, 131, + 240, 115, 240, 131, 240, 115, 240, 131, 240, 131, 240, 116, + 240, 115, 240, 116, 240, 116, 240, 115, 240, 131, 240, 131, + 0, 37, 112, 73, 25, 0, 14, 21, 240, 50, 66, 242, + 114, 210, 146, 194, 146, 178, 162, 178, 162, 163, 162, 163, + 146, 180, 130, 180, 114, 197, 82, 229, 50, 240, 21, 18, + 240, 53, 240, 102, 240, 19, 22, 226, 70, 178, 117, 162, + 149, 130, 180, 115, 195, 114, 211, 98, 227, 98, 226, 114, + 226, 114, 210, 130, 210, 146, 178, 163, 146, 211, 82, 240, + 38, 0, 36, 16, 74, 25, 0, 14, 6, 240, 35, 66, + 242, 99, 210, 130, 194, 147, 163, 147, 147, 163, 147, 163, + 132, 163, 131, 179, 116, 164, 116, 164, 116, 164, 115, 164, + 131, 164, 131, 149, 146, 149, 146, 129, 19, 163, 98, 19, + 179, 65, 36, 213, 51, 240, 115, 240, 99, 240, 115, 240, + 99, 240, 114, 179, 131, 164, 115, 179, 115, 194, 114, 242, + 67, 240, 38, 0, 36, 64, 19, 12, 0, 23, 18, 148, + 132, 132, 131, 0, 15, 99, 132, 132, 132, 146, 0, 19, + 16, 28, 15, 0, 29, 18, 196, 165, 165, 179, 0, 19, + 114, 196, 165, 165, 179, 225, 225, 209, 225, 209, 225, 209, + 209, 209, 0, 7, 48, 39, 16, 0, 23, 3, 197, 181, + 181, 195, 0, 9, 65, 241, 226, 226, 226, 211, 210, 226, + 211, 211, 211, 210, 211, 211, 211, 196, 196, 195, 196, 196, + 196, 181, 181, 180, 195, 240, 240, 240, 13, 34, 0, 81, + 15, 13, 0, 34, 79, 13, 0, 77, 32, 59, 19, 0, + 27, 67, 240, 19, 244, 244, 240, 18, 0, 11, 51, 241, + 49, 209, 65, 194, 65, 193, 81, 240, 34, 240, 18, 243, + 243, 243, 243, 243, 243, 114, 98, 131, 82, 147, 81, 178, + 66, 177, 81, 178, 81, 177, 97, 162, 97, 161, 113, 145, + 145, 114, 161, 66, 213, 0, 6, 16, 64, 20, 0, 6, + 5, 211, 66, 162, 113, 146, 145, 114, 161, 98, 177, 97, + 193, 82, 193, 81, 194, 66, 178, 83, 162, 83, 131, 98, + 131, 240, 19, 244, 243, 240, 19, 240, 19, 240, 19, 240, + 33, 240, 50, 81, 193, 82, 193, 81, 209, 50, 243, 0, + 9, 67, 240, 20, 240, 20, 240, 20, 240, 19, 0, 32, + 123, 32, 0, 9, 118, 240, 131, 98, 240, 81, 177, 240, + 34, 209, 241, 240, 17, 209, 240, 34, 177, 240, 65, 161, + 133, 113, 146, 99, 65, 113, 129, 99, 97, 97, 113, 99, + 114, 81, 113, 83, 147, 49, 97, 83, 163, 49, 97, 83, + 162, 65, 81, 83, 178, 65, 81, 83, 163, 65, 81, 83, + 163, 65, 65, 83, 178, 65, 81, 83, 178, 65, 81, 83, + 163, 65, 81, 83, 163, 65, 81, 83, 163, 49, 97, 83, + 147, 65, 97, 99, 116, 50, 97, 99, 97, 19, 49, 114, + 99, 50, 35, 33, 145, 132, 84, 161, 240, 240, 33, 240, + 240, 17, 240, 240, 33, 240, 35, 194, 211, 243, 132, 240, + 73, 0, 46, 89, 32, 0, 10, 82, 240, 227, 240, 227, + 240, 212, 240, 212, 240, 197, 240, 193, 19, 240, 177, 35, + 240, 162, 35, 240, 161, 51, 240, 146, 51, 240, 145, 67, + 240, 130, 67, 240, 129, 83, 240, 113, 100, 240, 97, 100, + 240, 81, 116, 240, 66, 116, 240, 65, 132, 240, 50, 132, + 240, 49, 148, 240, 47, 240, 33, 179, 240, 17, 195, 242, + 195, 241, 211, 226, 211, 225, 227, 210, 228, 193, 244, 178, + 244, 148, 244, 120, 155, 0, 48, 64, 79, 34, 0, 13, + 95, 3, 240, 68, 163, 240, 51, 179, 240, 19, 196, 243, + 211, 243, 212, 227, 212, 212, 212, 211, 212, 227, 212, 227, + 211, 228, 195, 243, 195, 240, 19, 179, 240, 35, 147, 240, + 62, 240, 83, 179, 240, 35, 195, 240, 19, 196, 228, 212, + 211, 228, 211, 228, 211, 228, 211, 228, 195, 244, 195, 228, + 211, 228, 211, 212, 212, 196, 227, 196, 243, 164, 223, 4, + 0, 52, 112, 93, 34, 0, 14, 102, 113, 240, 36, 82, + 66, 243, 161, 35, 227, 196, 212, 212, 195, 240, 19, 180, + 240, 19, 164, 240, 34, 179, 240, 50, 164, 240, 50, 148, + 240, 66, 148, 240, 65, 148, 240, 81, 148, 240, 228, 240, + 244, 240, 244, 240, 229, 240, 228, 240, 244, 240, 244, 240, + 244, 240, 81, 148, 240, 66, 148, 240, 65, 164, 240, 50, + 179, 240, 49, 196, 240, 18, 211, 242, 228, 225, 240, 19, + 194, 240, 51, 162, 240, 84, 98, 240, 167, 0, 49, 16, + 92, 35, 0, 14, 15, 3, 240, 99, 148, 240, 67, 179, + 240, 36, 195, 240, 20, 210, 240, 19, 227, 243, 242, 228, + 243, 212, 243, 211, 240, 19, 211, 240, 19, 211, 240, 19, + 196, 240, 19, 195, 240, 35, 195, 240, 20, 195, 240, 20, + 180, 240, 19, 195, 240, 35, 195, 240, 20, 195, 240, 19, + 196, 240, 19, 195, 240, 19, 211, 240, 19, 211, 243, 212, + 243, 211, 243, 227, 227, 243, 226, 244, 195, 240, 20, 178, + 240, 51, 163, 255, 2, 0, 54, 96, 90, 35, 0, 14, + 31, 8, 244, 180, 240, 20, 210, 240, 19, 226, 240, 19, + 226, 244, 226, 244, 226, 243, 242, 243, 242, 228, 129, 97, + 244, 129, 97, 243, 145, 240, 115, 130, 240, 100, 129, 240, + 116, 99, 240, 125, 240, 115, 115, 240, 115, 129, 240, 116, + 129, 240, 115, 145, 240, 115, 130, 113, 227, 240, 18, 212, + 240, 17, 227, 240, 18, 227, 240, 17, 243, 240, 17, 228, + 242, 228, 226, 243, 242, 243, 211, 244, 181, 191, 9, 0, + 53, 112, 84, 34, 0, 13, 111, 7, 244, 165, 244, 195, + 243, 226, 243, 225, 244, 225, 244, 225, 243, 241, 243, 241, + 228, 241, 228, 129, 97, 227, 130, 240, 99, 129, 240, 100, + 129, 240, 100, 114, 240, 100, 99, 240, 108, 240, 115, 114, + 240, 100, 114, 240, 100, 114, 240, 99, 130, 240, 99, 129, + 240, 100, 129, 240, 100, 240, 243, 240, 240, 19, 240, 244, + 240, 244, 240, 243, 240, 240, 19, 240, 244, 240, 189, 0, + 53, 80, 92, 34, 0, 14, 102, 113, 240, 36, 82, 66, + 243, 161, 35, 227, 196, 211, 228, 195, 240, 19, 179, 240, + 35, 164, 240, 34, 164, 240, 50, 163, 240, 66, 148, 240, + 66, 148, 240, 65, 148, 240, 81, 148, 240, 228, 240, 244, + 240, 244, 240, 229, 240, 228, 240, 244, 240, 244, 219, 100, + 240, 36, 148, 240, 36, 148, 240, 35, 164, 240, 35, 179, + 240, 35, 180, 244, 195, 243, 212, 212, 227, 212, 243, 162, + 34, 240, 20, 98, 65, 240, 87, 0, 49, 16, 99, 39, + 0, 15, 76, 91, 244, 196, 240, 67, 211, 240, 83, 211, + 240, 83, 211, 240, 68, 196, 240, 67, 211, 240, 83, 211, + 240, 83, 211, 240, 68, 196, 240, 68, 195, 240, 83, 211, + 240, 83, 211, 240, 68, 196, 240, 68, 196, 240, 79, 4, + 240, 83, 211, 240, 68, 196, 240, 68, 196, 240, 67, 211, + 240, 83, 211, 240, 68, 211, 240, 68, 196, 240, 67, 211, + 240, 83, 211, 240, 83, 211, 240, 68, 196, 240, 67, 211, + 240, 83, 211, 240, 83, 211, 240, 68, 196, 251, 91, 0, + 60, 68, 23, 0, 9, 76, 244, 240, 67, 240, 83, 240, + 83, 240, 68, 240, 67, 240, 83, 240, 83, 240, 68, 240, + 67, 240, 83, 240, 83, 240, 68, 240, 67, 240, 83, 240, + 83, 240, 68, 240, 68, 240, 67, 240, 83, 240, 83, 240, + 68, 240, 67, 240, 83, 240, 83, 240, 68, 240, 67, 240, + 83, 240, 83, 240, 68, 252, 0, 35, 112, 73, 27, 0, + 11, 76, 240, 84, 240, 131, 240, 147, 240, 147, 240, 132, + 240, 131, 240, 147, 240, 147, 240, 132, 240, 132, 240, 131, + 240, 147, 240, 132, 240, 132, 240, 131, 240, 147, 240, 147, + 240, 132, 240, 131, 240, 147, 240, 147, 240, 132, 240, 131, + 240, 147, 227, 115, 212, 100, 212, 99, 227, 100, 225, 131, + 242, 99, 240, 34, 51, 240, 100, 0, 39, 80, 103, 40, + 0, 16, 11, 137, 244, 228, 240, 52, 226, 240, 83, 226, + 240, 99, 210, 240, 100, 194, 240, 116, 162, 240, 147, 162, + 240, 163, 146, 240, 164, 130, 240, 180, 114, 240, 195, 114, + 240, 211, 98, 240, 212, 68, 240, 212, 53, 240, 211, 50, + 20, 240, 195, 34, 36, 240, 195, 18, 67, 240, 182, 84, + 240, 164, 116, 240, 163, 147, 240, 163, 148, 240, 132, 148, + 240, 132, 163, 240, 131, 180, 240, 115, 195, 240, 100, 196, + 240, 84, 196, 240, 83, 227, 240, 83, 228, 240, 52, 213, + 236, 122, 0, 61, 48, 71, 29, 0, 11, 124, 240, 84, + 240, 164, 240, 163, 240, 179, 240, 164, 240, 164, 240, 163, + 240, 179, 240, 164, 240, 164, 240, 163, 240, 179, 240, 164, + 240, 164, 240, 163, 240, 179, 240, 179, 240, 164, 240, 163, + 240, 179, 225, 179, 210, 164, 209, 179, 225, 179, 210, 179, + 209, 180, 194, 180, 194, 179, 194, 195, 179, 180, 149, 127, + 6, 0, 44, 64, 158, 46, 0, 18, 40, 240, 56, 245, + 240, 37, 240, 69, 240, 36, 240, 81, 19, 240, 17, 19, + 240, 81, 19, 240, 17, 19, 240, 81, 19, 241, 35, 240, + 66, 19, 241, 19, 240, 81, 35, 225, 35, 240, 81, 35, + 209, 51, 240, 81, 51, 193, 51, 240, 66, 51, 177, 51, + 240, 82, 51, 177, 51, 240, 81, 67, 161, 67, 240, 81, + 67, 145, 83, 240, 66, 67, 145, 67, 240, 82, 67, 129, + 83, 240, 81, 83, 129, 83, 240, 81, 83, 113, 99, 240, + 66, 83, 113, 83, 240, 82, 83, 97, 99, 240, 81, 115, + 65, 115, 240, 81, 115, 65, 115, 240, 81, 115, 49, 116, + 240, 66, 115, 49, 115, 240, 81, 131, 33, 131, 240, 81, + 131, 33, 131, 240, 81, 131, 17, 132, 240, 66, 132, 147, + 240, 82, 132, 147, 240, 82, 131, 163, 240, 67, 131, 148, + 250, 97, 107, 0, 70, 64, 122, 39, 0, 15, 87, 185, + 245, 196, 240, 53, 210, 240, 65, 19, 209, 240, 81, 20, + 193, 240, 66, 20, 178, 240, 66, 35, 178, 240, 65, 52, + 161, 240, 81, 52, 161, 240, 66, 67, 161, 240, 66, 68, + 130, 240, 65, 84, 129, 240, 81, 99, 129, 240, 66, 100, + 113, 240, 66, 100, 98, 240, 65, 131, 97, 240, 81, 132, + 81, 240, 81, 132, 81, 240, 66, 147, 66, 240, 65, 164, + 49, 240, 81, 164, 49, 240, 81, 179, 49, 240, 66, 180, + 18, 240, 65, 196, 18, 240, 65, 211, 17, 240, 81, 213, + 240, 66, 213, 240, 66, 228, 240, 65, 243, 240, 66, 243, + 240, 52, 242, 250, 194, 0, 60, 48, 100, 33, 0, 10, + 23, 240, 147, 83, 240, 83, 131, 240, 35, 179, 243, 211, + 211, 228, 179, 240, 19, 164, 240, 19, 163, 240, 36, 131, + 240, 52, 116, 240, 52, 116, 240, 52, 100, 240, 68, 100, + 240, 68, 85, 240, 68, 84, 240, 69, 84, 240, 69, 84, + 240, 68, 85, 240, 68, 84, 240, 69, 84, 240, 68, 100, + 240, 68, 100, 240, 52, 116, 240, 52, 116, 240, 36, 132, + 240, 35, 163, 240, 20, 164, 228, 180, 227, 211, 211, 243, + 179, 240, 35, 131, 240, 83, 83, 240, 151, 0, 47, 96, + 79, 34, 0, 13, 95, 3, 240, 84, 132, 240, 51, 179, + 240, 35, 195, 244, 196, 228, 196, 227, 212, 227, 212, 212, + 212, 212, 196, 227, 212, 227, 211, 243, 196, 228, 180, 243, + 179, 240, 35, 148, 240, 61, 240, 84, 240, 243, 240, 240, + 19, 240, 240, 19, 240, 244, 240, 244, 240, 243, 240, 240, + 19, 240, 244, 240, 244, 240, 243, 240, 240, 19, 240, 244, + 240, 244, 240, 187, 0, 53, 112, 130, 33, 0, 10, 23, + 240, 147, 83, 240, 83, 131, 240, 50, 179, 243, 211, 211, + 228, 180, 243, 164, 240, 19, 163, 240, 36, 132, 240, 36, + 116, 240, 52, 116, 240, 52, 100, 240, 68, 100, 240, 68, + 85, 240, 68, 84, 240, 84, 84, 240, 69, 84, 240, 68, + 85, 240, 68, 84, 240, 84, 84, 240, 68, 100, 240, 68, + 100, 240, 67, 116, 240, 52, 116, 240, 51, 132, 240, 36, + 147, 100, 115, 163, 81, 65, 83, 180, 49, 97, 51, 211, + 33, 113, 35, 242, 33, 113, 19, 240, 34, 17, 116, 240, + 68, 68, 240, 135, 17, 113, 240, 130, 113, 240, 130, 113, + 240, 130, 97, 240, 147, 51, 240, 152, 240, 168, 240, 167, + 240, 196, 0, 14, 16, 93, 34, 0, 13, 95, 2, 240, + 99, 133, 240, 51, 179, 240, 20, 180, 243, 212, 227, 212, + 227, 212, 212, 212, 212, 212, 211, 212, 227, 212, 212, 211, + 228, 195, 243, 195, 240, 19, 179, 240, 35, 147, 240, 61, + 240, 99, 131, 240, 83, 147, 240, 67, 163, 240, 36, 163, + 240, 35, 179, 240, 35, 179, 240, 35, 179, 240, 20, 164, + 240, 19, 180, 240, 19, 180, 240, 19, 180, 244, 180, 82, + 131, 196, 81, 147, 196, 66, 91, 147, 50, 240, 197, 0, + 47, 96, 76, 29, 0, 12, 70, 81, 243, 82, 49, 226, + 130, 18, 210, 164, 194, 179, 210, 194, 194, 210, 194, 210, + 179, 209, 195, 209, 195, 209, 196, 240, 164, 240, 166, 240, + 153, 240, 106, 240, 90, 240, 120, 240, 150, 240, 164, 240, + 164, 240, 179, 177, 227, 177, 227, 162, 227, 162, 226, 178, + 211, 178, 210, 179, 195, 180, 163, 194, 18, 146, 194, 51, + 82, 225, 102, 0, 41, 112, 79, 32, 0, 12, 63, 10, + 127, 10, 101, 115, 116, 99, 132, 146, 98, 148, 146, 97, + 163, 162, 82, 163, 162, 81, 179, 161, 97, 164, 161, 82, + 163, 177, 81, 179, 177, 240, 35, 240, 212, 240, 211, 240, + 227, 240, 227, 240, 212, 240, 211, 240, 227, 240, 227, 240, + 212, 240, 211, 240, 227, 240, 227, 240, 212, 240, 211, 240, + 227, 240, 227, 240, 212, 240, 212, 240, 197, 240, 127, 0, + 50, 77, 33, 0, 12, 76, 121, 148, 212, 195, 242, 211, + 241, 212, 241, 211, 242, 211, 241, 227, 241, 212, 241, 212, + 226, 211, 241, 227, 241, 212, 241, 212, 226, 211, 241, 227, + 241, 212, 241, 212, 226, 211, 241, 227, 241, 227, 241, 212, + 226, 211, 241, 227, 241, 227, 226, 227, 225, 243, 210, 243, + 209, 240, 34, 193, 240, 51, 161, 240, 82, 145, 240, 115, + 82, 240, 165, 0, 48, 32, 95, 33, 0, 12, 58, 184, + 116, 240, 20, 147, 240, 34, 179, 240, 33, 196, 242, 196, + 241, 212, 226, 212, 225, 228, 209, 240, 19, 194, 240, 19, + 193, 240, 35, 178, 240, 35, 177, 240, 51, 162, 240, 52, + 130, 240, 68, 129, 240, 84, 114, 240, 84, 113, 240, 100, + 98, 240, 100, 97, 240, 131, 81, 240, 147, 66, 240, 147, + 65, 240, 163, 50, 240, 164, 33, 240, 180, 17, 240, 196, + 17, 240, 197, 240, 213, 240, 212, 240, 243, 240, 242, 240, + 240, 17, 0, 48, 80, 137, 45, 0, 16, 122, 90, 121, + 101, 180, 197, 147, 196, 210, 179, 196, 209, 195, 196, 194, + 195, 196, 193, 211, 196, 178, 211, 181, 177, 227, 181, 162, + 227, 161, 20, 161, 243, 161, 20, 146, 243, 145, 36, 145, + 240, 19, 130, 51, 129, 240, 35, 129, 67, 114, 240, 35, + 114, 67, 113, 240, 52, 97, 83, 98, 240, 52, 82, 83, + 97, 240, 68, 81, 99, 82, 240, 68, 66, 99, 81, 240, + 84, 65, 115, 66, 240, 84, 50, 115, 65, 240, 100, 49, + 131, 50, 240, 100, 34, 131, 49, 240, 116, 33, 147, 34, + 240, 116, 18, 147, 33, 240, 132, 17, 163, 18, 240, 133, + 181, 240, 164, 181, 240, 163, 196, 240, 179, 196, 240, 178, + 211, 240, 194, 210, 240, 209, 226, 0, 64, 112, 105, 39, + 0, 15, 91, 121, 240, 21, 180, 240, 68, 194, 240, 115, + 178, 240, 132, 161, 240, 148, 145, 240, 179, 129, 240, 196, + 97, 240, 212, 82, 240, 228, 50, 240, 244, 49, 240, 240, + 20, 33, 240, 240, 53, 240, 240, 69, 240, 240, 68, 240, + 240, 100, 240, 240, 84, 240, 240, 65, 19, 240, 240, 49, + 36, 240, 240, 18, 36, 240, 242, 67, 240, 226, 84, 240, + 209, 100, 240, 193, 132, 240, 161, 148, 240, 146, 148, 240, + 130, 180, 240, 113, 196, 240, 97, 212, 240, 82, 228, 240, + 36, 213, 218, 154, 0, 59, 96, 97, 35, 0, 13, 27, + 185, 117, 240, 20, 180, 240, 18, 212, 242, 243, 241, 240, + 20, 209, 240, 36, 194, 240, 51, 178, 240, 68, 146, 240, + 84, 145, 240, 100, 130, 240, 116, 98, 240, 132, 82, 240, + 148, 81, 240, 180, 49, 240, 196, 34, 240, 196, 18, 240, + 229, 240, 244, 240, 240, 19, 240, 240, 35, 240, 240, 35, + 240, 240, 20, 240, 240, 19, 240, 240, 35, 240, 240, 35, + 240, 240, 35, 240, 240, 20, 240, 240, 19, 240, 240, 35, + 240, 240, 20, 240, 204, 0, 55, 16, 76, 32, 0, 13, + 15, 5, 197, 164, 211, 195, 211, 196, 210, 196, 225, 196, + 226, 180, 242, 179, 240, 17, 180, 240, 17, 164, 240, 196, + 240, 196, 240, 211, 240, 212, 240, 196, 240, 196, 240, 196, + 240, 211, 240, 212, 240, 196, 240, 196, 161, 240, 20, 177, + 240, 19, 178, 244, 177, 244, 193, 228, 194, 212, 209, 227, + 210, 212, 195, 196, 195, 196, 181, 207, 5, 0, 49, 64, + 95, 21, 240, 240, 53, 242, 240, 66, 240, 65, 240, 81, + 240, 66, 240, 66, 240, 65, 240, 81, 240, 66, 240, 66, + 240, 65, 240, 81, 240, 66, 240, 66, 240, 65, 240, 81, + 240, 66, 240, 66, 240, 65, 240, 81, 240, 66, 240, 66, + 240, 65, 240, 81, 240, 66, 240, 66, 240, 66, 240, 65, + 240, 66, 240, 66, 240, 66, 240, 65, 240, 66, 240, 66, + 240, 66, 240, 65, 240, 66, 240, 66, 240, 66, 240, 65, + 240, 66, 240, 66, 240, 66, 240, 65, 240, 70, 240, 33, + 19, 0, 7, 113, 113, 130, 113, 130, 113, 145, 113, 145, + 113, 145, 113, 161, 113, 145, 113, 164, 68, 117, 53, 101, + 53, 101, 53, 115, 83, 0, 74, 64, 95, 21, 240, 240, + 38, 240, 66, 240, 66, 240, 65, 240, 66, 240, 66, 240, + 66, 240, 65, 240, 66, 240, 66, 240, 66, 240, 65, 240, + 66, 240, 66, 240, 66, 240, 65, 240, 66, 240, 66, 240, + 66, 240, 65, 240, 81, 240, 66, 240, 66, 240, 65, 240, + 81, 240, 66, 240, 66, 240, 65, 240, 81, 240, 66, 240, + 66, 240, 65, 240, 81, 240, 66, 240, 66, 240, 65, 240, + 81, 240, 66, 240, 66, 240, 65, 240, 81, 240, 66, 240, + 66, 240, 65, 240, 81, 246, 240, 19, 15, 0, 6, 50, + 195, 178, 18, 146, 49, 130, 66, 97, 114, 65, 145, 0, + 69, 112, 12, 9, 240, 240, 115, 85, 69, 69, 83, 0, + 43, 48, 20, 11, 240, 240, 145, 145, 145, 145, 145, 145, + 161, 145, 164, 117, 101, 101, 115, 0, 43, 64, 59, 23, + 0, 44, 20, 240, 35, 49, 34, 179, 84, 163, 100, 147, + 116, 147, 115, 147, 131, 132, 131, 131, 147, 131, 131, 132, + 131, 132, 131, 131, 147, 131, 131, 65, 67, 131, 65, 67, + 131, 50, 67, 116, 50, 82, 115, 65, 99, 81, 18, 50, + 114, 50, 50, 33, 148, 99, 0, 32, 64, 72, 20, 0, + 7, 103, 240, 35, 240, 35, 240, 19, 240, 35, 240, 35, + 240, 35, 240, 19, 240, 35, 240, 35, 240, 35, 240, 19, + 240, 35, 52, 163, 18, 50, 148, 98, 117, 98, 116, 115, + 99, 131, 99, 131, 84, 131, 83, 147, 83, 132, 68, 132, + 68, 131, 83, 147, 83, 132, 83, 131, 99, 130, 115, 115, + 130, 99, 147, 82, 178, 51, 213, 0, 29, 47, 21, 0, + 40, 70, 211, 66, 163, 114, 131, 115, 115, 116, 115, 115, + 115, 240, 36, 240, 35, 240, 51, 240, 36, 240, 36, 240, + 35, 240, 51, 240, 51, 240, 51, 194, 82, 178, 98, 162, + 130, 130, 147, 82, 214, 0, 30, 32, 81, 24, 0, 10, + 102, 240, 99, 240, 99, 240, 99, 240, 83, 240, 99, 240, + 99, 240, 99, 240, 98, 240, 99, 240, 99, 240, 99, 228, + 50, 211, 49, 19, 195, 84, 179, 100, 163, 115, 179, 115, + 163, 131, 148, 131, 147, 146, 163, 131, 148, 131, 148, 131, + 147, 146, 163, 146, 65, 83, 131, 65, 83, 131, 50, 83, + 116, 50, 98, 115, 65, 115, 81, 18, 50, 130, 50, 50, + 33, 164, 99, 0, 34, 46, 20, 0, 38, 70, 195, 66, + 162, 114, 130, 130, 115, 130, 99, 131, 84, 115, 99, 99, + 137, 164, 240, 19, 240, 35, 240, 35, 240, 35, 240, 35, + 240, 35, 193, 82, 177, 99, 145, 130, 114, 147, 67, 197, + 0, 28, 112, 99, 26, 0, 8, 68, 240, 98, 50, 240, + 50, 51, 240, 50, 36, 240, 35, 35, 240, 50, 240, 146, + 240, 131, 240, 131, 240, 131, 240, 130, 240, 146, 240, 131, + 240, 75, 240, 67, 240, 130, 240, 146, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 130, 240, 146, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 130, 240, 146, 240, 131, 240, 131, + 240, 131, 240, 130, 240, 146, 240, 131, 240, 131, 240, 130, + 240, 146, 240, 51, 35, 240, 36, 34, 240, 51, 50, 240, + 50, 50, 240, 100, 0, 9, 68, 24, 0, 46, 52, 240, + 51, 49, 34, 194, 100, 179, 100, 163, 115, 163, 131, 163, + 131, 148, 131, 147, 146, 163, 131, 148, 131, 148, 131, 147, + 146, 163, 131, 163, 131, 163, 116, 178, 115, 194, 100, 210, + 50, 19, 228, 51, 240, 98, 240, 99, 240, 99, 240, 99, + 240, 98, 179, 115, 164, 99, 180, 98, 210, 83, 247, 0, + 7, 112, 82, 25, 0, 9, 119, 240, 99, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 99, 240, 115, 240, 115, 240, + 115, 240, 99, 240, 115, 240, 115, 53, 227, 18, 51, 210, + 18, 83, 181, 99, 180, 115, 179, 131, 179, 131, 163, 147, + 163, 132, 163, 131, 179, 131, 163, 147, 163, 132, 163, 131, + 65, 99, 131, 65, 83, 132, 50, 83, 131, 65, 99, 131, + 50, 99, 131, 49, 99, 162, 33, 130, 164, 0, 35, 48, + 46, 15, 0, 10, 51, 180, 179, 0, 14, 35, 177, 34, + 145, 51, 114, 51, 113, 67, 98, 52, 97, 67, 113, 67, + 180, 179, 195, 180, 180, 179, 195, 65, 100, 50, 99, 65, + 115, 50, 115, 49, 146, 33, 179, 0, 21, 80, 74, 23, + 0, 16, 50, 240, 84, 240, 67, 0, 22, 20, 240, 34, + 50, 242, 67, 225, 83, 209, 99, 209, 99, 194, 84, 240, + 68, 240, 67, 240, 83, 240, 68, 240, 67, 240, 83, 240, + 83, 240, 68, 240, 67, 240, 83, 240, 83, 240, 68, 240, + 67, 240, 83, 240, 83, 240, 68, 240, 67, 240, 83, 195, + 67, 196, 67, 196, 51, 210, 67, 240, 21, 0, 7, 96, + 87, 24, 0, 9, 71, 240, 83, 240, 99, 240, 99, 240, + 99, 240, 98, 240, 99, 240, 99, 240, 99, 240, 98, 240, + 99, 240, 99, 240, 99, 116, 162, 98, 50, 146, 81, 52, + 131, 65, 67, 147, 49, 240, 35, 33, 240, 50, 33, 240, + 53, 240, 69, 240, 66, 21, 240, 18, 52, 227, 68, 211, + 83, 211, 83, 81, 114, 99, 66, 99, 99, 65, 115, 98, + 81, 115, 98, 66, 114, 114, 65, 115, 130, 34, 130, 147, + 0, 34, 16, 47, 14, 240, 240, 247, 179, 178, 179, 179, + 179, 178, 179, 179, 179, 178, 179, 179, 179, 164, 163, 179, + 179, 164, 163, 179, 179, 164, 163, 179, 179, 65, 84, 50, + 83, 65, 99, 65, 99, 50, 99, 49, 130, 34, 148, 0, + 20, 32, 88, 38, 0, 71, 84, 85, 117, 178, 34, 50, + 51, 50, 51, 146, 50, 33, 98, 34, 83, 129, 66, 17, + 117, 99, 129, 67, 132, 115, 114, 52, 131, 131, 113, 67, + 147, 131, 195, 131, 147, 194, 147, 132, 179, 147, 131, 195, + 147, 131, 195, 131, 147, 195, 131, 132, 179, 147, 131, 65, + 115, 147, 131, 65, 115, 131, 132, 50, 115, 131, 131, 65, + 115, 147, 131, 50, 115, 147, 131, 49, 131, 131, 162, 33, + 146, 162, 164, 0, 53, 32, 64, 27, 0, 51, 3, 102, + 177, 34, 50, 67, 145, 51, 18, 99, 129, 53, 115, 114, + 52, 131, 113, 67, 147, 113, 67, 147, 179, 148, 179, 147, + 195, 147, 195, 132, 179, 147, 195, 147, 195, 132, 65, 115, + 131, 81, 99, 132, 66, 99, 131, 81, 115, 131, 66, 115, + 131, 65, 115, 162, 49, 146, 180, 0, 38, 16, 47, 22, + 0, 42, 53, 242, 67, 179, 99, 147, 130, 131, 147, 115, + 147, 99, 163, 84, 163, 83, 179, 83, 179, 68, 164, 68, + 163, 83, 179, 83, 164, 83, 163, 99, 147, 115, 147, 130, + 131, 147, 99, 179, 66, 245, 0, 31, 112, 75, 26, 0, + 49, 67, 100, 193, 34, 50, 50, 162, 50, 17, 98, 145, + 67, 114, 130, 52, 115, 114, 51, 131, 113, 67, 131, 113, + 66, 147, 179, 147, 179, 132, 179, 132, 178, 147, 179, 147, + 179, 132, 179, 131, 194, 146, 196, 115, 196, 99, 212, 98, + 227, 17, 51, 227, 52, 240, 19, 240, 131, 240, 131, 240, + 115, 240, 131, 240, 131, 240, 131, 240, 89, 0, 11, 112, + 67, 21, 0, 40, 52, 65, 163, 49, 34, 147, 81, 18, + 131, 100, 115, 115, 131, 115, 115, 131, 100, 131, 99, 146, + 115, 131, 100, 131, 100, 131, 99, 147, 99, 146, 115, 131, + 115, 131, 115, 116, 130, 115, 147, 84, 162, 50, 19, 180, + 51, 240, 50, 240, 51, 240, 51, 240, 51, 240, 50, 240, + 51, 240, 51, 234, 0, 8, 96, 51, 22, 0, 41, 84, + 85, 114, 34, 34, 66, 82, 53, 67, 81, 68, 82, 97, + 67, 210, 52, 240, 51, 240, 67, 240, 67, 240, 51, 240, + 67, 240, 67, 240, 67, 240, 51, 240, 67, 240, 67, 240, + 66, 240, 67, 240, 67, 240, 66, 0, 35, 32, 42, 19, + 0, 36, 85, 194, 81, 162, 113, 146, 98, 130, 99, 130, + 99, 131, 240, 20, 247, 215, 215, 245, 240, 19, 240, 34, + 99, 130, 84, 130, 83, 145, 98, 146, 113, 130, 131, 82, + 182, 0, 27, 48, 44, 17, 0, 13, 98, 227, 227, 227, + 211, 227, 227, 227, 211, 157, 147, 226, 227, 227, 227, 227, + 211, 227, 227, 212, 211, 227, 227, 97, 100, 82, 99, 97, + 115, 82, 115, 81, 131, 66, 146, 50, 180, 0, 24, 80, + 64, 25, 0, 47, 52, 146, 145, 35, 115, 129, 51, 115, + 114, 51, 115, 113, 67, 115, 98, 52, 114, 113, 67, 115, + 113, 67, 115, 180, 115, 179, 130, 195, 115, 195, 115, 180, + 115, 179, 130, 65, 115, 115, 65, 115, 115, 65, 115, 115, + 50, 115, 100, 49, 146, 100, 49, 147, 50, 34, 33, 196, + 83, 0, 35, 32, 56, 22, 0, 41, 100, 114, 129, 35, + 84, 97, 51, 84, 82, 51, 99, 81, 67, 99, 66, 52, + 114, 65, 67, 130, 65, 67, 129, 148, 129, 147, 130, 147, + 130, 147, 129, 148, 129, 147, 130, 147, 129, 163, 129, 163, + 113, 179, 98, 195, 81, 211, 50, 240, 21, 0, 31, 80, + 79, 32, 0, 60, 68, 146, 98, 129, 35, 115, 84, 97, + 51, 115, 84, 81, 67, 115, 99, 81, 67, 100, 99, 66, + 52, 99, 130, 65, 67, 115, 130, 65, 67, 115, 129, 148, + 100, 129, 147, 115, 130, 147, 115, 130, 147, 115, 129, 148, + 100, 129, 147, 115, 130, 147, 115, 129, 163, 115, 129, 163, + 115, 114, 163, 100, 113, 195, 81, 19, 81, 226, 65, 35, + 65, 240, 21, 85, 0, 45, 48, 60, 25, 0, 47, 100, + 69, 162, 51, 18, 50, 129, 100, 51, 114, 99, 66, 114, + 115, 209, 131, 209, 115, 240, 115, 240, 115, 240, 115, 240, + 99, 240, 115, 240, 115, 240, 115, 113, 226, 114, 211, 113, + 115, 67, 98, 100, 67, 97, 115, 65, 18, 81, 130, 65, + 50, 50, 164, 84, 0, 35, 80, 74, 23, 0, 43, 84, + 146, 113, 35, 115, 97, 51, 115, 82, 51, 115, 81, 67, + 115, 66, 52, 99, 81, 67, 115, 81, 67, 115, 148, 115, + 147, 115, 163, 115, 163, 115, 148, 115, 147, 115, 163, 115, + 163, 115, 163, 115, 163, 99, 194, 84, 195, 53, 228, 35, + 240, 82, 240, 83, 163, 115, 163, 99, 179, 98, 193, 115, + 193, 99, 225, 66, 240, 36, 0, 7, 96, 54, 22, 0, + 39, 51, 113, 165, 81, 167, 65, 147, 51, 33, 162, 99, + 177, 145, 240, 81, 240, 81, 240, 81, 240, 81, 240, 81, + 240, 81, 240, 81, 240, 81, 240, 81, 145, 161, 161, 145, + 162, 133, 98, 145, 51, 51, 129, 87, 130, 86, 145, 116, + 0, 31, 64, 9, 25, 0, 68, 111, 6, 0, 75, 64, + 12, 45, 0, 123, 111, 15, 11, 0, 127, 0, 8, 64, + 23, 18, 0, 7, 50, 82, 131, 67, 115, 67, 130, 82, + 130, 82, 130, 82, 145, 97, 145, 97, 0, 82, 32, 19, + 19, 0, 10, 3, 113, 117, 81, 114, 34, 65, 113, 82, + 33, 113, 115, 0, 91, 32, +}; + +//***************************************************************************** +// +// The font definition for the 46 point Cm italic font. +// +//***************************************************************************** +const tFont g_sFontCm46i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 41, + + // + // The height of the font. + // + 47, + + // + // The baseline of the font. + // + 35, + + // + // The offset to each character in the font. + // + { + 0, 5, 44, 79, 206, 294, 430, 542, + 562, 658, 755, 806, 869, 890, 899, 911, + 1009, 1080, 1147, 1228, 1304, 1390, 1460, 1534, + 1611, 1684, 1758, 1777, 1805, 1844, 1857, 1916, + 1980, 2103, 2192, 2271, 2364, 2456, 2546, 2630, + 2722, 2821, 2889, 2962, 3065, 3136, 3294, 3416, + 3516, 3595, 3725, 3818, 3894, 3973, 4050, 4145, + 4282, 4387, 4484, 4560, 4655, 4688, 4783, 4802, + 4814, 4834, 4893, 4965, 5012, 5093, 5139, 5238, + 5306, 5388, 5434, 5508, 5595, 5642, 5730, 5794, + 5841, 5916, 5983, 6034, 6076, 6120, 6184, 6240, + 6319, 6379, 6453, 6507, 6516, 6528, 6551, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm46iData +}; diff --git a/grlib/fonts/fontcm48.c b/grlib/fonts/fontcm48.c new file mode 100644 index 0000000..f5401c2 --- /dev/null +++ b/grlib/fonts/fontcm48.c @@ -0,0 +1,637 @@ +//***************************************************************************** +// +// fontcm48.c - Font definition for the 48pt Cm font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 48 point +// Bold: no +// Italic: no +// Memory usage: 6568 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 48 point Cm font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm48Data[6367] = +{ + 5, 19, 0, 116, 48, 38, 8, 240, 34, 84, 68, 68, + 68, 68, 68, 68, 68, 68, 82, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 0, 5, + 98, 84, 68, 82, 0, 12, 80, 35, 18, 0, 6, 115, + 99, 85, 69, 69, 69, 84, 84, 129, 129, 129, 129, 129, + 129, 129, 129, 113, 129, 129, 129, 129, 129, 113, 129, 114, + 114, 113, 129, 0, 72, 112, 136, 37, 0, 15, 113, 146, + 240, 146, 146, 240, 146, 146, 240, 146, 145, 240, 161, 146, + 240, 146, 146, 240, 146, 146, 240, 146, 145, 240, 161, 146, + 240, 161, 146, 240, 146, 146, 240, 146, 145, 240, 162, 130, + 240, 161, 146, 240, 146, 146, 240, 146, 145, 240, 162, 130, + 223, 15, 3, 242, 145, 240, 162, 130, 240, 161, 146, 240, + 146, 146, 240, 146, 146, 240, 146, 145, 240, 162, 130, 240, + 161, 146, 255, 15, 3, 210, 130, 240, 161, 146, 240, 146, + 146, 240, 146, 145, 240, 162, 130, 240, 161, 146, 240, 146, + 146, 240, 146, 145, 240, 162, 145, 240, 161, 146, 240, 146, + 146, 240, 146, 146, 240, 146, 145, 240, 161, 146, 240, 146, + 146, 240, 146, 146, 240, 146, 145, 0, 11, 96, 99, 22, + 129, 240, 97, 240, 97, 240, 71, 210, 33, 51, 161, 65, + 82, 129, 81, 113, 98, 81, 113, 97, 97, 129, 66, 97, + 99, 66, 97, 84, 66, 97, 84, 66, 97, 98, 83, 81, + 211, 81, 227, 65, 229, 33, 247, 240, 25, 249, 248, 241, + 37, 225, 68, 209, 83, 209, 99, 193, 99, 82, 81, 114, + 67, 81, 114, 67, 81, 114, 67, 81, 114, 65, 113, 114, + 65, 113, 98, 97, 97, 98, 98, 81, 82, 130, 65, 66, + 162, 49, 35, 214, 240, 65, 240, 97, 240, 97, 0, 26, + 48, 143, 37, 84, 240, 65, 194, 49, 240, 34, 178, 81, + 242, 178, 98, 211, 163, 114, 179, 179, 113, 18, 114, 18, + 178, 129, 55, 34, 179, 145, 177, 195, 145, 162, 195, 145, + 161, 211, 145, 146, 211, 145, 130, 227, 145, 129, 243, 145, + 114, 240, 18, 145, 98, 240, 34, 129, 114, 240, 35, 113, + 98, 240, 66, 97, 113, 240, 98, 81, 98, 240, 114, 49, + 98, 240, 163, 114, 129, 240, 162, 114, 19, 240, 113, 114, + 81, 240, 82, 98, 97, 240, 66, 99, 113, 240, 50, 98, + 129, 240, 34, 114, 145, 242, 115, 145, 242, 115, 145, 226, + 131, 145, 225, 147, 145, 210, 147, 145, 194, 163, 145, 194, + 163, 145, 178, 194, 129, 178, 211, 113, 178, 226, 113, 162, + 243, 81, 178, 240, 19, 49, 193, 240, 68, 0, 42, 80, + 112, 34, 0, 9, 84, 240, 226, 49, 240, 194, 65, 240, + 179, 81, 240, 162, 97, 240, 147, 97, 240, 147, 97, 240, + 147, 97, 240, 147, 97, 240, 147, 81, 240, 163, 81, 240, + 164, 49, 240, 195, 33, 240, 211, 17, 240, 227, 17, 169, + 179, 212, 227, 226, 243, 225, 245, 209, 241, 19, 193, 241, + 51, 177, 225, 67, 161, 225, 99, 145, 210, 99, 129, 225, + 131, 113, 210, 131, 97, 226, 147, 65, 227, 163, 49, 227, + 163, 33, 243, 179, 17, 161, 68, 179, 177, 83, 195, 161, + 83, 180, 145, 115, 145, 36, 98, 132, 67, 83, 66, 182, + 165, 0, 47, 96, 20, 9, 240, 211, 85, 69, 84, 129, + 129, 129, 129, 113, 129, 129, 113, 114, 113, 0, 36, 112, + 52, 15, 161, 209, 209, 210, 194, 194, 210, 194, 210, 194, + 210, 195, 194, 210, 195, 195, 195, 195, 179, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 196, 195, 195, + 195, 195, 211, 195, 195, 211, 195, 210, 226, 210, 226, 226, + 225, 241, 241, 64, 52, 15, 1, 241, 241, 226, 226, 226, + 211, 210, 211, 210, 211, 195, 210, 211, 195, 195, 195, 211, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 194, 195, 195, 195, 194, 210, 195, 194, 210, 194, 210, + 194, 210, 194, 194, 209, 209, 209, 224, 51, 21, 129, 240, + 81, 240, 81, 240, 81, 240, 81, 194, 97, 98, 68, 65, + 68, 99, 49, 51, 162, 33, 34, 229, 240, 49, 240, 53, + 226, 33, 34, 163, 49, 51, 100, 65, 68, 66, 97, 98, + 193, 240, 81, 240, 81, 240, 81, 240, 81, 0, 75, 97, + 34, 0, 40, 2, 240, 240, 34, 240, 240, 34, 240, 240, + 34, 240, 240, 34, 240, 240, 34, 240, 240, 34, 240, 240, + 34, 240, 240, 34, 240, 240, 34, 240, 240, 34, 240, 240, + 34, 240, 240, 34, 240, 240, 34, 240, 240, 34, 240, 240, + 34, 240, 63, 15, 240, 50, 240, 240, 34, 240, 240, 34, + 240, 240, 34, 240, 240, 34, 240, 240, 34, 240, 240, 34, + 240, 240, 34, 240, 240, 34, 240, 240, 34, 240, 240, 34, + 240, 240, 34, 240, 240, 34, 240, 240, 34, 0, 40, 64, + 20, 9, 0, 37, 35, 85, 69, 84, 129, 129, 129, 129, + 113, 129, 129, 113, 129, 113, 240, 160, 9, 16, 0, 52, + 12, 76, 0, 42, 64, 11, 8, 0, 33, 18, 84, 68, + 82, 0, 12, 80, 102, 22, 240, 18, 240, 82, 240, 81, + 240, 82, 240, 82, 240, 81, 240, 82, 240, 82, 240, 81, + 240, 82, 240, 82, 240, 81, 240, 82, 240, 82, 240, 81, + 240, 82, 240, 82, 240, 66, 240, 82, 240, 82, 240, 66, + 240, 82, 240, 82, 240, 66, 240, 82, 240, 82, 240, 66, + 240, 82, 240, 82, 240, 66, 240, 82, 240, 82, 240, 66, + 240, 82, 240, 81, 240, 82, 240, 82, 240, 81, 240, 82, + 240, 82, 240, 81, 240, 82, 240, 82, 240, 81, 240, 82, + 240, 82, 240, 81, 240, 82, 240, 82, 240, 80, 71, 22, + 0, 14, 70, 242, 67, 179, 99, 162, 130, 146, 162, 130, + 162, 115, 163, 98, 194, 98, 194, 83, 195, 67, 195, 67, + 195, 67, 195, 67, 195, 67, 195, 67, 195, 67, 195, 67, + 195, 67, 195, 67, 195, 67, 195, 67, 195, 67, 195, 67, + 195, 82, 194, 99, 178, 99, 163, 114, 163, 114, 162, 146, + 130, 163, 99, 179, 67, 230, 0, 31, 64, 66, 19, 0, + 12, 113, 240, 34, 229, 164, 35, 240, 19, 240, 19, 240, + 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, + 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, + 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, + 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 245, + 159, 0, 29, 71, 22, 0, 14, 70, 226, 83, 177, 131, + 145, 163, 113, 195, 97, 195, 81, 227, 67, 195, 68, 179, + 68, 179, 82, 195, 240, 67, 240, 51, 240, 67, 240, 66, + 240, 67, 240, 51, 240, 66, 240, 66, 240, 66, 240, 66, + 240, 66, 240, 66, 240, 66, 240, 81, 161, 145, 177, 129, + 193, 113, 209, 97, 209, 111, 1, 95, 2, 95, 2, 0, + 33, 80, 70, 23, 0, 15, 23, 226, 99, 177, 147, 145, + 179, 115, 163, 116, 148, 100, 148, 114, 163, 240, 83, 240, + 83, 240, 67, 240, 82, 240, 82, 240, 82, 240, 21, 240, + 131, 240, 115, 240, 84, 240, 83, 240, 84, 240, 83, 240, + 84, 240, 68, 67, 196, 68, 180, 68, 180, 67, 196, 65, + 227, 97, 196, 98, 179, 130, 147, 178, 84, 230, 0, 33, + 79, 24, 0, 13, 97, 240, 114, 240, 99, 240, 99, 240, + 84, 240, 65, 19, 240, 65, 19, 240, 49, 35, 240, 49, + 35, 240, 33, 51, 240, 17, 67, 240, 17, 67, 241, 83, + 241, 83, 225, 99, 225, 99, 209, 115, 193, 131, 193, 131, + 177, 147, 177, 147, 161, 163, 145, 179, 145, 179, 159, 5, + 240, 19, 240, 99, 240, 99, 240, 99, 240, 99, 240, 99, + 240, 99, 240, 43, 0, 36, 80, 71, 22, 0, 14, 2, + 162, 141, 156, 161, 23, 209, 240, 97, 240, 97, 240, 97, + 240, 97, 240, 97, 240, 97, 240, 97, 240, 97, 69, 193, + 33, 83, 163, 130, 145, 178, 240, 83, 240, 67, 240, 83, + 240, 67, 240, 67, 240, 67, 67, 195, 67, 195, 67, 195, + 66, 211, 65, 226, 81, 211, 97, 194, 114, 162, 146, 130, + 178, 98, 230, 0, 31, 80, 74, 22, 0, 14, 117, 242, + 82, 178, 145, 146, 131, 146, 131, 130, 147, 114, 240, 82, + 240, 67, 240, 67, 240, 66, 240, 82, 69, 163, 49, 67, + 131, 33, 114, 115, 17, 146, 100, 162, 100, 163, 83, 194, + 83, 195, 67, 195, 67, 195, 67, 195, 67, 195, 82, 195, + 82, 195, 82, 195, 83, 178, 114, 178, 114, 162, 146, 146, + 162, 114, 194, 67, 230, 0, 31, 64, 75, 23, 0, 11, + 82, 240, 111, 3, 95, 3, 95, 2, 97, 241, 97, 225, + 97, 225, 113, 225, 113, 209, 240, 97, 240, 113, 240, 97, + 240, 97, 240, 113, 240, 97, 240, 113, 240, 113, 240, 97, + 240, 113, 240, 98, 240, 98, 240, 98, 240, 82, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 83, 240, 83, 240, 83, + 240, 83, 240, 83, 240, 83, 240, 83, 0, 33, 48, 71, + 22, 0, 14, 70, 241, 83, 178, 130, 161, 162, 129, 179, + 113, 194, 113, 194, 98, 194, 99, 178, 114, 177, 131, 146, + 133, 98, 165, 66, 197, 34, 230, 240, 53, 240, 17, 21, + 210, 54, 162, 101, 130, 133, 98, 179, 98, 195, 66, 211, + 66, 226, 66, 226, 66, 226, 66, 226, 67, 210, 82, 209, + 99, 177, 131, 146, 163, 82, 230, 0, 31, 64, 74, 22, + 0, 14, 70, 242, 67, 178, 130, 146, 146, 146, 162, 114, + 178, 114, 194, 83, 194, 83, 194, 83, 195, 67, 195, 67, + 195, 67, 195, 67, 195, 82, 195, 82, 180, 83, 164, 98, + 145, 19, 114, 113, 35, 130, 82, 35, 165, 67, 240, 66, + 240, 82, 240, 67, 240, 67, 240, 66, 115, 162, 115, 146, + 131, 146, 130, 146, 146, 130, 178, 83, 230, 0, 31, 96, + 17, 8, 0, 16, 18, 84, 68, 82, 0, 13, 98, 84, + 68, 82, 0, 12, 80, 26, 8, 0, 16, 18, 84, 68, + 82, 0, 13, 98, 84, 68, 83, 113, 113, 113, 113, 97, + 113, 113, 97, 113, 97, 240, 128, 38, 8, 0, 13, 18, + 84, 68, 82, 240, 240, 145, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 99, 68, 68, + 68, 68, 68, 68, 68, 68, 82, 240, 96, 13, 34, 0, + 85, 15, 15, 0, 34, 79, 15, 0, 81, 32, 67, 20, + 0, 33, 35, 240, 36, 240, 20, 240, 19, 0, 12, 33, + 240, 65, 240, 65, 240, 65, 240, 65, 240, 65, 240, 65, + 240, 50, 240, 49, 240, 50, 240, 50, 240, 34, 240, 50, + 240, 34, 240, 34, 240, 35, 240, 19, 240, 35, 163, 67, + 163, 67, 163, 67, 163, 67, 193, 82, 177, 99, 145, 131, + 98, 183, 0, 6, 16, 67, 20, 0, 8, 23, 162, 115, + 113, 163, 81, 194, 83, 163, 67, 163, 67, 163, 67, 163, + 240, 35, 240, 19, 240, 34, 240, 34, 240, 34, 240, 34, + 240, 50, 240, 34, 240, 50, 240, 49, 240, 65, 240, 49, + 240, 65, 240, 65, 240, 65, 240, 65, 240, 65, 240, 65, + 0, 12, 35, 240, 20, 240, 20, 240, 35, 0, 31, 48, + 126, 34, 0, 14, 39, 240, 147, 115, 240, 81, 194, 240, + 34, 241, 241, 240, 49, 209, 240, 81, 178, 133, 129, 161, + 114, 82, 98, 129, 114, 114, 97, 129, 98, 146, 82, 97, + 99, 163, 65, 97, 83, 195, 49, 97, 83, 195, 50, 65, + 98, 211, 65, 65, 83, 211, 65, 65, 83, 211, 65, 65, + 83, 211, 65, 65, 83, 211, 65, 65, 83, 211, 65, 65, + 83, 211, 65, 65, 83, 211, 65, 81, 83, 195, 65, 81, + 83, 195, 65, 81, 99, 164, 65, 97, 98, 149, 49, 113, + 99, 114, 19, 49, 129, 115, 66, 51, 33, 130, 133, 100, + 162, 240, 240, 50, 240, 240, 50, 240, 82, 179, 243, 243, + 148, 240, 105, 0, 52, 80, 108, 35, 0, 10, 81, 240, + 240, 66, 240, 240, 35, 240, 240, 35, 240, 240, 36, 240, + 241, 19, 240, 241, 19, 240, 241, 20, 240, 209, 51, 240, + 209, 51, 240, 209, 52, 240, 177, 83, 240, 177, 83, 240, + 161, 100, 240, 145, 115, 240, 145, 115, 240, 129, 132, 240, + 113, 147, 240, 113, 147, 240, 97, 164, 240, 81, 179, 240, + 81, 179, 240, 79, 2, 240, 49, 211, 240, 49, 211, 240, + 33, 243, 240, 17, 243, 240, 17, 244, 225, 240, 35, 225, + 240, 35, 225, 240, 36, 194, 240, 51, 194, 240, 51, 164, + 240, 52, 120, 218, 0, 53, 89, 32, 0, 16, 15, 5, + 240, 19, 180, 227, 212, 195, 228, 179, 244, 163, 244, 163, + 240, 19, 163, 240, 20, 147, 240, 20, 147, 240, 19, 163, + 244, 163, 243, 179, 227, 195, 211, 211, 163, 240, 31, 2, + 243, 196, 211, 228, 179, 244, 163, 240, 20, 147, 240, 20, + 147, 240, 36, 131, 240, 36, 131, 240, 36, 131, 240, 36, + 131, 240, 36, 131, 240, 36, 131, 240, 20, 147, 240, 20, + 147, 244, 163, 228, 179, 196, 159, 6, 0, 49, 48, 99, + 32, 0, 13, 87, 113, 227, 114, 81, 195, 177, 50, 179, + 209, 34, 147, 240, 20, 132, 240, 20, 131, 240, 51, 115, + 240, 67, 100, 240, 82, 99, 240, 98, 84, 240, 98, 84, + 240, 113, 84, 240, 113, 68, 240, 212, 240, 212, 240, 212, + 240, 212, 240, 212, 240, 212, 240, 212, 240, 212, 240, 228, + 240, 113, 84, 240, 113, 84, 240, 113, 99, 240, 113, 100, + 240, 81, 131, 240, 81, 147, 240, 65, 148, 240, 33, 180, + 241, 212, 209, 240, 19, 177, 240, 68, 98, 240, 120, 0, + 45, 64, 99, 34, 0, 17, 15, 4, 240, 67, 180, 240, + 19, 211, 243, 227, 227, 243, 211, 240, 19, 195, 240, 35, + 179, 240, 36, 163, 240, 51, 163, 240, 52, 147, 240, 52, + 147, 240, 67, 147, 240, 68, 131, 240, 68, 131, 240, 68, + 131, 240, 68, 131, 240, 68, 131, 240, 68, 131, 240, 68, + 131, 240, 68, 131, 240, 68, 131, 240, 67, 147, 240, 52, + 147, 240, 52, 147, 240, 51, 163, 240, 36, 163, 240, 35, + 179, 240, 19, 195, 240, 19, 195, 243, 211, 211, 243, 180, + 207, 4, 0, 52, 112, 100, 31, 0, 15, 79, 10, 163, + 213, 163, 243, 163, 240, 18, 163, 240, 33, 163, 240, 34, + 147, 240, 49, 147, 240, 49, 147, 240, 49, 147, 161, 113, + 147, 161, 240, 35, 161, 240, 35, 161, 240, 35, 146, 240, + 35, 131, 240, 46, 240, 35, 131, 240, 35, 146, 240, 35, + 161, 240, 35, 161, 240, 35, 161, 129, 131, 161, 129, 131, + 240, 65, 131, 240, 65, 131, 240, 65, 131, 240, 65, 131, + 240, 50, 131, 240, 49, 147, 240, 49, 147, 240, 34, 147, + 240, 19, 147, 229, 95, 11, 0, 47, 16, 91, 30, 0, + 15, 15, 10, 147, 213, 147, 243, 147, 240, 18, 147, 240, + 33, 147, 240, 33, 147, 240, 33, 147, 240, 33, 147, 240, + 49, 131, 240, 49, 131, 161, 113, 131, 161, 240, 19, 161, + 240, 19, 161, 240, 19, 146, 240, 19, 131, 240, 30, 240, + 19, 131, 240, 19, 146, 240, 19, 161, 240, 19, 161, 240, + 19, 161, 240, 19, 161, 240, 19, 240, 195, 240, 195, 240, + 195, 240, 195, 240, 195, 240, 195, 240, 195, 240, 196, 240, + 124, 0, 47, 32, 111, 35, 0, 14, 88, 113, 240, 35, + 114, 81, 243, 177, 50, 227, 209, 34, 195, 240, 20, 180, + 240, 20, 179, 240, 51, 163, 240, 82, 148, 240, 82, 147, + 240, 98, 132, 240, 113, 132, 240, 113, 131, 240, 129, 116, + 240, 240, 20, 240, 240, 20, 240, 240, 20, 240, 240, 20, + 240, 240, 20, 240, 240, 20, 240, 240, 20, 240, 240, 20, + 252, 84, 240, 68, 132, 240, 83, 132, 240, 83, 147, 240, + 83, 148, 240, 67, 163, 240, 67, 179, 240, 51, 180, 240, + 35, 196, 240, 19, 212, 225, 18, 243, 193, 34, 240, 36, + 114, 65, 240, 73, 0, 49, 112, 72, 33, 0, 16, 75, + 123, 131, 243, 195, 243, 195, 243, 195, 243, 195, 243, 195, + 243, 195, 243, 195, 243, 195, 243, 195, 243, 195, 243, 195, + 243, 195, 243, 195, 243, 207, 6, 195, 243, 195, 243, 195, + 243, 195, 243, 195, 243, 195, 243, 195, 243, 195, 243, 195, + 243, 195, 243, 195, 243, 195, 243, 195, 243, 195, 243, 195, + 243, 195, 243, 139, 123, 0, 50, 39, 15, 0, 7, 75, + 131, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 139, 0, 23, 72, 21, + 0, 11, 43, 228, 240, 51, 240, 51, 240, 51, 240, 51, + 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, + 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, + 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, + 240, 51, 240, 51, 130, 131, 116, 115, 116, 115, 115, 130, + 145, 131, 146, 99, 178, 67, 229, 0, 30, 48, 101, 34, + 0, 17, 11, 184, 131, 240, 20, 179, 240, 18, 211, 240, + 17, 227, 241, 243, 225, 240, 19, 209, 240, 35, 193, 240, + 51, 177, 240, 67, 161, 240, 83, 145, 240, 99, 129, 240, + 115, 113, 240, 131, 99, 240, 115, 84, 240, 115, 65, 35, + 240, 99, 49, 52, 240, 83, 33, 83, 240, 83, 18, 84, + 240, 69, 116, 240, 52, 147, 240, 51, 164, 240, 35, 180, + 240, 19, 195, 240, 19, 196, 243, 211, 243, 227, 227, 228, + 211, 243, 211, 244, 195, 240, 20, 179, 240, 21, 107, 169, + 0, 51, 64, 74, 28, 0, 14, 12, 240, 83, 240, 163, + 240, 163, 240, 163, 240, 163, 240, 163, 240, 163, 240, 163, + 240, 163, 240, 163, 240, 163, 240, 163, 240, 163, 240, 163, + 240, 163, 240, 163, 240, 163, 240, 163, 240, 163, 240, 163, + 240, 163, 240, 17, 131, 241, 147, 241, 147, 241, 147, 241, + 147, 241, 147, 226, 147, 226, 147, 211, 147, 196, 147, 166, + 95, 7, 0, 42, 96, 138, 40, 0, 20, 8, 240, 103, + 132, 240, 84, 193, 18, 240, 65, 19, 193, 19, 240, 49, + 19, 193, 19, 240, 49, 19, 193, 34, 240, 33, 35, 193, + 35, 240, 17, 35, 193, 35, 240, 17, 35, 193, 50, 241, + 51, 193, 51, 225, 51, 193, 51, 209, 67, 193, 67, 193, + 67, 193, 67, 193, 67, 193, 82, 177, 83, 193, 83, 161, + 83, 193, 83, 161, 83, 193, 98, 145, 99, 193, 99, 129, + 99, 193, 99, 129, 99, 193, 114, 113, 115, 193, 115, 97, + 115, 193, 115, 97, 115, 193, 131, 65, 131, 193, 131, 65, + 131, 193, 131, 49, 147, 193, 147, 33, 147, 193, 147, 33, + 147, 193, 162, 17, 163, 193, 164, 163, 193, 164, 163, 193, + 178, 179, 180, 146, 179, 137, 114, 123, 0, 60, 64, 101, + 33, 0, 16, 72, 201, 132, 243, 181, 241, 193, 19, 241, + 193, 35, 225, 193, 36, 209, 193, 51, 209, 193, 67, 193, + 193, 68, 177, 193, 83, 177, 193, 84, 161, 193, 99, 161, + 193, 115, 145, 193, 116, 129, 193, 131, 129, 193, 132, 113, + 193, 147, 113, 193, 163, 97, 193, 164, 81, 193, 179, 81, + 193, 180, 65, 193, 195, 65, 193, 211, 49, 193, 212, 33, + 193, 227, 33, 193, 243, 17, 193, 245, 193, 240, 20, 193, + 240, 20, 193, 240, 35, 193, 240, 50, 179, 240, 34, 137, + 241, 0, 50, 64, 106, 35, 0, 14, 87, 240, 164, 84, + 240, 98, 179, 240, 35, 211, 243, 243, 211, 240, 35, 195, + 240, 36, 163, 240, 67, 148, 240, 68, 131, 240, 99, 116, + 240, 100, 100, 240, 100, 99, 240, 131, 84, 240, 132, 68, + 240, 132, 68, 240, 132, 68, 240, 132, 68, 240, 132, 68, + 240, 132, 68, 240, 132, 68, 240, 132, 68, 240, 132, 84, + 240, 115, 100, 240, 100, 100, 240, 100, 115, 240, 99, 132, + 240, 68, 147, 240, 67, 164, 240, 36, 180, 240, 19, 211, + 243, 243, 211, 240, 36, 147, 240, 100, 84, 240, 167, 0, + 50, 16, 71, 30, 0, 15, 15, 4, 243, 164, 211, 196, + 179, 212, 163, 228, 147, 243, 147, 244, 131, 244, 131, 244, + 131, 244, 131, 244, 131, 243, 147, 228, 147, 227, 163, 211, + 179, 164, 223, 243, 240, 195, 240, 195, 240, 195, 240, 195, + 240, 195, 240, 195, 240, 195, 240, 195, 240, 195, 240, 195, + 240, 195, 240, 195, 240, 195, 240, 195, 240, 139, 0, 47, + 48, 139, 35, 0, 14, 87, 240, 164, 84, 240, 99, 163, + 240, 35, 211, 243, 243, 211, 240, 35, 195, 240, 36, 163, + 240, 67, 148, 240, 68, 131, 240, 99, 116, 240, 100, 100, + 240, 100, 99, 240, 131, 84, 240, 132, 68, 240, 132, 68, + 240, 132, 68, 240, 132, 68, 240, 132, 68, 240, 132, 68, + 240, 132, 68, 240, 132, 68, 240, 132, 84, 240, 115, 100, + 240, 100, 100, 240, 100, 115, 240, 99, 132, 240, 68, 147, + 132, 115, 164, 97, 65, 84, 179, 81, 97, 67, 211, 65, + 97, 51, 243, 49, 97, 35, 240, 51, 17, 116, 240, 83, + 17, 83, 240, 167, 17, 240, 240, 66, 129, 240, 146, 129, + 240, 161, 129, 240, 162, 98, 240, 163, 66, 240, 185, 240, + 200, 240, 199, 240, 229, 0, 9, 80, 91, 35, 0, 17, + 79, 3, 240, 99, 164, 240, 51, 195, 240, 35, 212, 243, + 228, 227, 228, 227, 244, 211, 244, 211, 244, 211, 244, 211, + 244, 211, 243, 227, 227, 243, 211, 240, 19, 195, 240, 35, + 163, 240, 77, 240, 115, 147, 240, 83, 179, 240, 51, 195, + 240, 35, 211, 240, 19, 211, 240, 19, 211, 240, 19, 212, + 243, 212, 243, 212, 243, 212, 243, 212, 243, 212, 243, 227, + 97, 131, 228, 81, 131, 228, 81, 75, 180, 49, 240, 229, + 0, 48, 112, 85, 25, 0, 10, 23, 81, 163, 83, 49, + 146, 146, 18, 130, 180, 115, 195, 114, 226, 99, 226, 99, + 241, 99, 241, 99, 241, 100, 225, 100, 225, 116, 240, 101, + 240, 103, 240, 73, 240, 44, 251, 240, 56, 240, 86, 240, + 101, 240, 100, 240, 116, 65, 240, 20, 65, 240, 35, 65, + 240, 35, 66, 240, 19, 66, 240, 19, 66, 240, 19, 67, + 242, 83, 227, 84, 195, 98, 34, 162, 114, 66, 99, 129, + 119, 0, 35, 80, 82, 33, 0, 16, 95, 12, 100, 131, + 132, 98, 163, 162, 82, 179, 178, 66, 179, 178, 65, 195, + 193, 65, 195, 193, 65, 195, 193, 65, 195, 193, 65, 195, + 193, 65, 195, 193, 240, 35, 240, 243, 240, 243, 240, 243, + 240, 243, 240, 243, 240, 243, 240, 243, 240, 243, 240, 243, + 240, 243, 240, 243, 240, 243, 240, 243, 240, 243, 240, 243, + 240, 243, 240, 243, 240, 243, 240, 243, 240, 229, 240, 157, + 0, 51, 104, 33, 0, 16, 75, 153, 131, 244, 179, 240, + 33, 195, 240, 33, 195, 240, 33, 195, 240, 33, 195, 240, + 33, 195, 240, 33, 195, 240, 33, 195, 240, 33, 195, 240, + 33, 195, 240, 33, 195, 240, 33, 195, 240, 33, 195, 240, + 33, 195, 240, 33, 195, 240, 33, 195, 240, 33, 195, 240, + 33, 195, 240, 33, 195, 240, 33, 195, 240, 33, 195, 240, + 33, 195, 240, 33, 195, 240, 33, 195, 240, 33, 210, 240, + 17, 227, 241, 242, 225, 240, 19, 209, 240, 34, 193, 240, + 67, 145, 240, 114, 98, 240, 166, 0, 47, 32, 109, 36, + 0, 18, 10, 232, 116, 240, 68, 163, 240, 82, 179, 240, + 81, 196, 240, 50, 211, 240, 49, 228, 240, 33, 243, 240, + 17, 240, 19, 240, 17, 240, 20, 241, 240, 35, 225, 240, + 51, 225, 240, 52, 194, 240, 67, 193, 240, 84, 177, 240, + 99, 161, 240, 115, 161, 240, 116, 145, 240, 131, 129, 240, + 147, 129, 240, 148, 98, 240, 163, 97, 240, 180, 81, 240, + 195, 65, 240, 211, 65, 240, 212, 49, 240, 227, 33, 240, + 243, 33, 240, 244, 17, 240, 240, 20, 240, 240, 36, 240, + 240, 50, 240, 240, 66, 240, 240, 66, 0, 51, 112, 149, + 49, 0, 24, 74, 138, 152, 116, 228, 228, 148, 228, 242, + 179, 243, 241, 195, 243, 241, 196, 227, 241, 211, 228, 209, + 227, 209, 19, 209, 228, 193, 19, 209, 243, 193, 20, 177, + 240, 19, 177, 51, 177, 240, 20, 161, 51, 177, 240, 35, + 161, 52, 145, 240, 51, 145, 83, 145, 240, 51, 145, 83, + 145, 240, 52, 129, 84, 129, 240, 67, 113, 115, 113, 240, + 83, 113, 115, 113, 240, 84, 97, 115, 113, 240, 99, 97, + 116, 81, 240, 115, 81, 147, 81, 240, 116, 65, 147, 81, + 240, 131, 65, 148, 49, 240, 147, 49, 179, 49, 240, 148, + 33, 179, 49, 240, 163, 33, 180, 17, 240, 179, 17, 211, + 17, 240, 179, 17, 211, 17, 240, 181, 212, 240, 211, 243, + 240, 211, 243, 240, 211, 243, 240, 226, 242, 240, 241, 240, + 33, 0, 69, 64, 101, 36, 0, 18, 26, 169, 165, 228, + 228, 226, 240, 35, 226, 240, 36, 209, 240, 68, 177, 240, + 99, 161, 240, 116, 145, 240, 132, 113, 240, 163, 97, 240, + 180, 66, 240, 196, 49, 240, 227, 33, 240, 246, 240, 240, + 20, 240, 240, 51, 240, 240, 52, 240, 240, 37, 240, 241, + 36, 240, 210, 36, 240, 209, 68, 240, 177, 100, 240, 146, + 100, 240, 145, 132, 240, 113, 164, 240, 82, 164, 240, 81, + 196, 240, 49, 228, 240, 18, 228, 240, 17, 240, 20, 226, + 240, 36, 181, 246, 121, 218, 0, 54, 64, 106, 37, 0, + 18, 74, 248, 117, 240, 67, 180, 240, 66, 212, 240, 49, + 243, 240, 33, 240, 20, 240, 17, 240, 36, 225, 240, 52, + 210, 240, 68, 193, 240, 99, 177, 240, 116, 161, 240, 132, + 129, 240, 148, 113, 240, 180, 97, 240, 195, 81, 240, 212, + 50, 240, 228, 33, 240, 240, 19, 17, 240, 240, 37, 240, + 240, 51, 240, 240, 67, 240, 240, 67, 240, 240, 67, 240, + 240, 67, 240, 240, 67, 240, 240, 67, 240, 240, 67, 240, + 240, 67, 240, 240, 67, 240, 240, 67, 240, 240, 67, 240, + 240, 67, 240, 251, 0, 57, 48, 73, 27, 0, 13, 95, + 7, 86, 196, 84, 212, 99, 227, 114, 228, 113, 228, 129, + 227, 145, 212, 145, 211, 161, 196, 161, 180, 240, 131, 240, + 132, 240, 116, 240, 131, 240, 132, 240, 131, 240, 132, 240, + 116, 240, 131, 240, 132, 240, 131, 193, 164, 193, 148, 209, + 147, 225, 132, 225, 131, 241, 115, 242, 100, 242, 99, 243, + 84, 228, 68, 214, 79, 8, 0, 41, 51, 11, 183, 66, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 151, 64, 37, + 18, 0, 7, 17, 129, 129, 129, 113, 129, 113, 129, 129, + 129, 129, 129, 113, 129, 129, 129, 129, 129, 129, 129, 129, + 18, 81, 18, 85, 69, 84, 84, 83, 99, 0, 72, 80, + 51, 11, 183, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 71, 64, 19, 16, 0, 6, 81, 242, 209, 18, 177, + 50, 145, 97, 113, 129, 81, 161, 0, 78, 64, 11, 8, + 240, 240, 178, 84, 68, 82, 0, 40, 80, 21, 9, 240, + 241, 129, 113, 113, 129, 129, 113, 129, 129, 129, 129, 18, + 85, 84, 83, 0, 36, 80, 59, 24, 0, 45, 101, 240, + 34, 67, 225, 115, 193, 147, 177, 147, 178, 147, 148, 131, + 148, 131, 162, 147, 240, 24, 211, 83, 179, 115, 163, 131, + 147, 147, 147, 147, 49, 67, 163, 49, 67, 163, 49, 67, + 148, 49, 67, 148, 49, 83, 113, 19, 49, 99, 66, 53, + 149, 99, 0, 36, 96, 77, 25, 0, 12, 70, 240, 100, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 69, 211, 34, 67, + 179, 17, 115, 164, 147, 147, 178, 147, 179, 131, 194, 131, + 195, 115, 195, 115, 195, 115, 195, 115, 195, 115, 195, 115, + 195, 115, 195, 115, 194, 131, 179, 131, 178, 148, 146, 162, + 33, 115, 162, 49, 82, 193, 85, 0, 38, 112, 48, 20, + 0, 38, 53, 210, 82, 147, 114, 130, 145, 114, 177, 83, + 147, 83, 147, 82, 163, 67, 240, 35, 240, 35, 240, 35, + 240, 35, 240, 35, 240, 35, 240, 51, 240, 35, 177, 99, + 161, 99, 145, 131, 129, 163, 66, 213, 0, 31, 77, 25, + 0, 11, 35, 240, 70, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 229, 51, 194, 81, 35, 163, 113, 19, 162, 148, 146, + 179, 131, 179, 131, 179, 130, 195, 115, 195, 115, 195, 115, + 195, 115, 195, 115, 195, 115, 195, 115, 195, 131, 179, 131, + 179, 146, 179, 147, 148, 163, 113, 19, 179, 66, 38, 165, + 70, 0, 38, 49, 22, 0, 42, 21, 242, 67, 194, 114, + 162, 131, 130, 163, 99, 163, 98, 195, 82, 195, 67, 195, + 67, 195, 79, 3, 67, 240, 67, 240, 67, 240, 67, 240, + 82, 240, 83, 209, 98, 194, 99, 177, 131, 145, 179, 82, + 230, 0, 34, 16, 44, 18, 0, 7, 101, 194, 50, 162, + 51, 147, 51, 146, 243, 243, 243, 243, 243, 243, 243, 243, + 188, 163, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 202, 0, 27, 112, + 75, 25, 0, 47, 85, 84, 163, 20, 18, 35, 130, 83, + 66, 130, 115, 195, 130, 194, 147, 178, 147, 178, 147, 178, + 147, 178, 147, 179, 130, 210, 115, 211, 98, 228, 66, 225, + 53, 240, 17, 240, 145, 240, 145, 240, 146, 240, 156, 237, + 162, 165, 114, 226, 113, 243, 82, 240, 18, 82, 240, 18, + 82, 240, 18, 83, 242, 98, 226, 131, 178, 164, 99, 248, + 0, 7, 80, 74, 25, 0, 12, 70, 240, 100, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 69, 211, 34, 51, 195, 17, + 99, 180, 131, 164, 131, 164, 131, 163, 147, 163, 147, 163, + 147, 163, 147, 163, 147, 163, 147, 163, 147, 163, 147, 163, + 147, 163, 147, 163, 147, 163, 147, 163, 147, 163, 147, 163, + 147, 121, 57, 0, 38, 34, 13, 0, 8, 51, 164, 148, + 147, 0, 11, 34, 118, 148, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 121, 0, 20, 49, 15, 0, 10, 35, 181, 165, 179, 0, + 12, 115, 135, 180, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 67, 82, 83, 82, 83, 66, 113, 66, + 149, 240, 240, 128, 80, 26, 0, 13, 6, 240, 116, 240, + 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, + 131, 240, 131, 240, 131, 240, 131, 240, 131, 120, 131, 133, + 163, 131, 195, 129, 227, 113, 243, 97, 240, 19, 81, 240, + 35, 65, 240, 51, 51, 240, 35, 36, 240, 35, 17, 35, + 240, 20, 67, 243, 83, 243, 99, 227, 115, 211, 115, 211, + 131, 195, 146, 195, 147, 179, 148, 121, 88, 0, 39, 64, + 39, 13, 0, 6, 70, 148, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 121, 0, 20, 78, 38, 0, 71, 53, 69, 118, 166, 34, + 51, 66, 67, 180, 17, 99, 33, 115, 180, 131, 17, 131, + 164, 132, 147, 164, 132, 147, 163, 147, 163, 163, 147, 163, + 163, 147, 163, 163, 147, 163, 163, 147, 163, 163, 147, 163, + 163, 147, 163, 163, 147, 163, 163, 147, 163, 163, 147, 163, + 163, 147, 163, 163, 147, 163, 163, 147, 163, 163, 147, 163, + 163, 147, 163, 121, 57, 73, 0, 57, 64, 52, 25, 0, + 47, 5, 69, 166, 34, 51, 180, 17, 99, 180, 131, 164, + 131, 164, 131, 163, 147, 163, 147, 163, 147, 163, 147, 163, + 147, 163, 147, 163, 147, 163, 147, 163, 147, 163, 147, 163, + 147, 163, 147, 163, 147, 163, 147, 163, 147, 121, 57, 0, + 38, 51, 24, 0, 45, 118, 240, 18, 83, 210, 130, 178, + 162, 146, 194, 115, 195, 98, 226, 98, 227, 67, 227, 67, + 227, 67, 227, 67, 227, 67, 227, 67, 227, 67, 227, 82, + 226, 99, 195, 114, 194, 146, 162, 178, 130, 211, 67, 240, + 22, 0, 37, 48, 72, 25, 0, 50, 21, 69, 166, 34, + 67, 179, 17, 115, 164, 147, 147, 179, 131, 179, 131, 179, + 131, 195, 115, 195, 115, 195, 115, 195, 115, 195, 115, 195, + 115, 195, 115, 179, 131, 179, 131, 178, 148, 147, 147, 17, + 115, 163, 33, 82, 195, 53, 227, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 73, 0, 8, 32, 74, 25, 0, 50, 117, 81, 194, 81, + 65, 163, 113, 34, 147, 145, 18, 146, 164, 131, 179, 131, + 179, 115, 195, 115, 195, 115, 195, 115, 195, 115, 195, 115, + 195, 115, 195, 131, 179, 131, 179, 146, 164, 147, 148, 163, + 113, 19, 179, 66, 35, 213, 67, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 73, 0, 6, 96, 36, 18, 0, 33, 117, 52, + 86, 33, 50, 100, 17, 51, 115, 17, 51, 116, 81, 132, + 227, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 202, 0, 28, 49, 19, 0, 36, 22, 49, + 114, 100, 98, 131, 97, 162, 82, 177, 82, 177, 83, 161, + 84, 240, 21, 248, 201, 230, 240, 20, 81, 179, 65, 179, + 66, 178, 66, 178, 66, 178, 67, 161, 82, 17, 130, 82, + 33, 98, 97, 70, 0, 29, 64, 50, 18, 0, 16, 65, + 240, 33, 240, 33, 240, 33, 240, 18, 240, 18, 243, 243, + 213, 189, 147, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 97, 131, 97, 131, 97, 131, 97, 131, 97, 131, + 97, 147, 65, 179, 34, 196, 0, 27, 112, 50, 25, 0, + 50, 6, 102, 148, 147, 163, 147, 163, 147, 163, 147, 163, + 147, 163, 147, 163, 147, 163, 147, 163, 147, 163, 147, 163, + 147, 163, 147, 163, 147, 163, 147, 163, 147, 163, 132, 163, + 132, 179, 97, 19, 195, 65, 38, 166, 54, 0, 38, 57, + 26, 0, 52, 8, 119, 115, 179, 147, 178, 178, 177, 195, + 161, 210, 145, 227, 129, 227, 129, 242, 113, 240, 19, 97, + 240, 19, 97, 240, 35, 65, 240, 51, 65, 240, 66, 49, + 240, 83, 33, 240, 83, 33, 240, 98, 17, 240, 116, 240, + 130, 240, 146, 240, 146, 0, 40, 96, 86, 35, 0, 70, + 8, 56, 102, 100, 131, 147, 147, 146, 161, 163, 146, 161, + 178, 147, 129, 195, 131, 129, 195, 113, 18, 129, 210, 113, + 19, 97, 227, 81, 50, 97, 227, 81, 50, 97, 242, 81, + 51, 65, 240, 19, 49, 82, 65, 240, 19, 49, 82, 65, + 240, 34, 49, 83, 33, 240, 51, 17, 114, 33, 240, 51, + 17, 114, 33, 240, 66, 17, 116, 240, 83, 147, 240, 83, + 147, 240, 98, 146, 240, 113, 177, 0, 54, 16, 57, 27, + 0, 54, 8, 119, 132, 148, 179, 146, 227, 129, 240, 19, + 97, 240, 35, 81, 240, 67, 65, 240, 83, 33, 240, 116, + 240, 131, 240, 163, 240, 148, 240, 113, 35, 240, 81, 51, + 240, 81, 67, 240, 49, 99, 240, 17, 130, 241, 147, 210, + 163, 179, 164, 119, 136, 0, 41, 80, 26, 0, 52, 8, + 119, 115, 179, 147, 178, 178, 177, 195, 161, 195, 145, 226, + 145, 227, 129, 242, 113, 240, 19, 97, 240, 19, 81, 240, + 50, 81, 240, 51, 65, 240, 66, 49, 240, 83, 33, 240, + 83, 33, 240, 98, 17, 240, 116, 240, 130, 240, 146, 240, + 146, 240, 145, 240, 161, 240, 145, 240, 161, 240, 161, 240, + 19, 81, 240, 35, 81, 240, 35, 65, 240, 65, 65, 240, + 100, 0, 9, 50, 21, 0, 42, 31, 1, 83, 147, 98, + 163, 97, 163, 113, 147, 129, 147, 129, 131, 145, 115, 240, + 35, 240, 51, 240, 35, 240, 35, 240, 50, 129, 147, 129, + 131, 145, 115, 161, 115, 161, 99, 162, 83, 178, 67, 164, + 79, 1, 0, 32, 16, 9, 27, 0, 81, 15, 8, 0, + 81, 64, 14, 49, 0, 127, 0, 20, 15, 15, 15, 0, + 127, 0, 20, 64, 24, 16, 0, 6, 50, 82, 99, 67, + 99, 67, 98, 82, 98, 82, 114, 82, 113, 97, 114, 82, + 113, 97, 0, 75, 15, 19, 0, 12, 36, 113, 102, 81, + 97, 86, 97, 116, 0, 95, 112, +}; + +//***************************************************************************** +// +// The font definition for the 48 point Cm font. +// +//***************************************************************************** +const tFont g_sFontCm48 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 44, + + // + // The height of the font. + // + 49, + + // + // The baseline of the font. + // + 37, + + // + // The offset to each character in the font. + // + { + 0, 5, 43, 78, 214, 313, 456, 568, + 588, 640, 692, 743, 840, 860, 869, 880, + 982, 1053, 1119, 1190, 1260, 1339, 1410, 1484, + 1559, 1630, 1704, 1721, 1747, 1785, 1798, 1865, + 1932, 2058, 2166, 2255, 2354, 2453, 2553, 2644, + 2755, 2827, 2866, 2938, 3039, 3113, 3251, 3352, + 3458, 3529, 3668, 3759, 3844, 3926, 4030, 4139, + 4288, 4389, 4495, 4568, 4619, 4656, 4707, 4726, + 4737, 4758, 4817, 4894, 4942, 5019, 5068, 5112, + 5187, 5261, 5295, 5344, 5424, 5463, 5541, 5593, + 5644, 5716, 5790, 5826, 5875, 5925, 5975, 6032, + 6118, 6175, 6255, 6305, 6314, 6328, 6352, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm48Data +}; diff --git a/grlib/fonts/fontcm48b.c b/grlib/fonts/fontcm48b.c new file mode 100644 index 0000000..76608f1 --- /dev/null +++ b/grlib/fonts/fontcm48b.c @@ -0,0 +1,592 @@ +//***************************************************************************** +// +// fontcm48b.c - Font definition for the 48pt Cm bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 48 point +// Bold: yes +// Italic: no +// Memory usage: 6032 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 48 point Cm bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm48bData[5829] = +{ + 4, 19, 0, 114, 38, 11, 240, 240, 83, 117, 87, 71, + 71, 71, 71, 85, 101, 101, 101, 101, 101, 101, 116, 115, + 131, 131, 131, 131, 131, 146, 0, 6, 67, 117, 87, 71, + 71, 85, 115, 0, 17, 32, 39, 23, 0, 11, 100, 116, + 118, 86, 87, 71, 88, 56, 72, 56, 87, 71, 102, 86, + 162, 146, 162, 146, 161, 161, 162, 146, 162, 146, 146, 146, + 146, 146, 146, 146, 161, 161, 0, 81, 80, 130, 38, 0, + 16, 34, 130, 240, 163, 131, 240, 147, 131, 240, 147, 115, + 240, 163, 115, 240, 147, 131, 240, 147, 115, 240, 163, 115, + 240, 163, 115, 240, 147, 131, 240, 147, 115, 240, 163, 115, + 240, 163, 115, 240, 147, 131, 207, 15, 4, 79, 15, 4, + 79, 15, 4, 243, 131, 240, 147, 115, 240, 163, 115, 240, + 147, 131, 240, 147, 131, 240, 147, 115, 240, 163, 115, 240, + 147, 131, 255, 15, 4, 79, 15, 4, 79, 15, 4, 195, + 131, 240, 147, 115, 240, 163, 115, 240, 163, 115, 240, 147, + 131, 240, 147, 115, 240, 163, 115, 240, 163, 115, 240, 147, + 131, 240, 147, 115, 240, 163, 115, 240, 147, 131, 240, 147, + 131, 240, 162, 130, 0, 16, 96, 90, 22, 130, 240, 82, + 240, 82, 240, 41, 188, 148, 34, 36, 116, 50, 67, 99, + 66, 82, 99, 66, 53, 68, 66, 38, 68, 66, 38, 68, + 66, 38, 69, 50, 38, 70, 34, 52, 87, 18, 217, 220, + 174, 158, 157, 173, 187, 218, 194, 38, 84, 50, 53, 70, + 34, 53, 70, 34, 68, 70, 34, 68, 70, 34, 68, 69, + 50, 68, 82, 82, 67, 99, 66, 52, 100, 50, 51, 132, + 34, 21, 156, 200, 240, 34, 240, 82, 240, 82, 0, 26, + 32, 132, 37, 84, 240, 50, 184, 243, 164, 51, 212, 164, + 67, 180, 164, 86, 102, 164, 95, 2, 165, 98, 54, 20, + 165, 98, 148, 181, 98, 147, 197, 98, 132, 197, 98, 116, + 213, 98, 115, 229, 98, 100, 229, 98, 84, 240, 20, 97, + 100, 240, 20, 82, 84, 240, 52, 66, 83, 240, 83, 50, + 84, 240, 102, 84, 240, 240, 51, 240, 240, 52, 102, 240, + 99, 99, 50, 240, 68, 84, 66, 240, 36, 84, 82, 240, + 35, 100, 82, 240, 20, 85, 98, 228, 101, 98, 227, 117, + 98, 212, 117, 98, 211, 133, 98, 196, 133, 98, 180, 149, + 98, 179, 165, 98, 164, 180, 98, 163, 196, 82, 163, 213, + 66, 148, 228, 50, 163, 240, 24, 162, 240, 68, 0, 42, + 80, 101, 36, 0, 10, 37, 240, 247, 240, 197, 34, 240, + 196, 66, 240, 164, 82, 240, 164, 82, 240, 149, 82, 240, + 149, 82, 240, 149, 82, 240, 149, 66, 240, 165, 66, 240, + 166, 34, 240, 182, 18, 240, 213, 18, 138, 167, 154, 166, + 211, 230, 210, 240, 22, 179, 240, 22, 178, 240, 24, 147, + 242, 22, 131, 243, 38, 114, 229, 39, 83, 228, 70, 82, + 229, 71, 50, 245, 87, 19, 230, 105, 246, 119, 240, 23, + 118, 162, 86, 134, 131, 86, 120, 114, 118, 68, 23, 52, + 140, 75, 198, 151, 0, 55, 23, 12, 0, 6, 36, 118, + 87, 88, 72, 87, 102, 162, 162, 161, 162, 162, 146, 146, + 146, 161, 0, 43, 16, 51, 16, 162, 210, 210, 211, 195, + 196, 195, 196, 180, 196, 196, 180, 196, 181, 181, 181, 180, + 196, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 197, 181, 181, 181, 196, 196, 197, 196, 196, 212, + 196, 212, 211, 227, 227, 226, 242, 64, 51, 16, 2, 242, + 242, 227, 227, 212, 212, 196, 212, 196, 197, 196, 196, 197, + 181, 181, 196, 197, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 180, 181, 181, 181, 180, 196, 181, + 180, 196, 180, 195, 196, 195, 195, 210, 210, 210, 224, 53, + 22, 130, 240, 68, 240, 52, 240, 52, 209, 68, 65, 115, + 66, 67, 85, 50, 53, 70, 34, 38, 86, 18, 22, 154, + 230, 240, 22, 234, 150, 18, 22, 86, 34, 38, 69, 50, + 53, 83, 66, 67, 113, 68, 65, 212, 240, 52, 240, 52, + 240, 66, 0, 73, 101, 35, 0, 36, 99, 240, 240, 35, + 240, 240, 35, 240, 240, 35, 240, 240, 35, 240, 240, 35, + 240, 240, 35, 240, 240, 35, 240, 240, 35, 240, 240, 35, + 240, 240, 35, 240, 240, 35, 240, 240, 35, 240, 240, 35, + 240, 240, 35, 240, 63, 15, 1, 79, 15, 1, 79, 15, + 1, 240, 51, 240, 240, 35, 240, 240, 35, 240, 240, 35, + 240, 240, 35, 240, 240, 35, 240, 240, 35, 240, 240, 35, + 240, 240, 35, 240, 240, 35, 240, 240, 35, 240, 240, 35, + 240, 240, 35, 240, 240, 35, 0, 37, 32, 23, 12, 0, + 43, 100, 118, 87, 88, 72, 87, 102, 162, 162, 161, 162, + 162, 146, 146, 146, 161, 240, 240, 240, 12, 16, 0, 46, + 12, 76, 76, 76, 76, 0, 40, 64, 14, 11, 0, 40, + 19, 117, 87, 71, 71, 85, 115, 0, 17, 32, 100, 22, + 240, 18, 240, 67, 240, 67, 240, 51, 240, 67, 240, 67, + 240, 51, 240, 67, 240, 67, 240, 51, 240, 67, 240, 67, + 240, 51, 240, 67, 240, 67, 240, 51, 240, 67, 240, 67, + 240, 51, 240, 67, 240, 67, 240, 51, 240, 67, 240, 67, + 240, 51, 240, 67, 240, 67, 240, 51, 240, 67, 240, 67, + 240, 51, 240, 67, 240, 67, 240, 51, 240, 67, 240, 67, + 240, 51, 240, 67, 240, 67, 240, 51, 240, 67, 240, 67, + 240, 51, 240, 67, 240, 67, 240, 51, 240, 67, 240, 66, + 240, 80, 67, 24, 0, 15, 118, 240, 26, 212, 69, 164, + 100, 148, 132, 132, 133, 101, 133, 101, 133, 101, 133, 86, + 134, 70, 134, 70, 134, 70, 134, 70, 134, 70, 134, 70, + 134, 70, 134, 70, 134, 70, 134, 70, 134, 70, 134, 70, + 134, 85, 133, 101, 133, 101, 133, 101, 133, 116, 132, 148, + 100, 165, 69, 202, 240, 22, 0, 37, 48, 40, 20, 0, + 13, 82, 240, 20, 230, 155, 149, 21, 245, 245, 245, 245, + 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, + 245, 245, 245, 245, 245, 245, 245, 245, 175, 95, 0, 30, + 64, 67, 23, 0, 15, 23, 235, 164, 70, 131, 118, 117, + 102, 87, 86, 87, 102, 71, 102, 71, 102, 85, 118, 99, + 134, 240, 38, 240, 22, 240, 38, 240, 37, 240, 37, 240, + 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, 67, 114, + 162, 146, 146, 147, 130, 162, 143, 127, 1, 111, 2, 111, + 2, 95, 3, 95, 3, 0, 35, 16, 64, 23, 0, 15, + 23, 235, 179, 70, 147, 102, 133, 85, 118, 86, 103, 70, + 103, 70, 117, 86, 131, 86, 240, 37, 240, 53, 240, 36, + 247, 240, 24, 240, 70, 240, 54, 240, 54, 240, 38, 240, + 39, 240, 23, 100, 103, 86, 87, 71, 87, 71, 87, 71, + 86, 86, 102, 99, 118, 132, 70, 172, 216, 0, 35, 96, + 66, 25, 0, 17, 66, 240, 115, 240, 100, 240, 85, 240, + 85, 240, 70, 240, 55, 240, 55, 240, 40, 240, 19, 21, + 240, 18, 37, 243, 37, 227, 53, 226, 69, 211, 69, 195, + 85, 194, 101, 178, 117, 163, 117, 162, 133, 146, 149, 131, + 149, 143, 6, 79, 6, 246, 240, 70, 240, 70, 240, 70, + 240, 70, 254, 190, 0, 38, 60, 23, 0, 14, 83, 147, + 143, 142, 157, 172, 187, 200, 243, 240, 83, 240, 83, 240, + 83, 240, 83, 38, 205, 165, 69, 147, 102, 130, 134, 240, + 38, 240, 39, 240, 23, 240, 23, 99, 119, 85, 103, 71, + 87, 71, 87, 70, 103, 84, 118, 99, 134, 100, 102, 132, + 70, 171, 231, 0, 35, 112, 66, 24, 0, 16, 22, 240, + 26, 197, 68, 165, 84, 149, 86, 132, 87, 117, 87, 116, + 117, 117, 131, 133, 240, 69, 240, 54, 38, 166, 25, 136, + 69, 119, 86, 103, 102, 86, 118, 86, 119, 70, 119, 70, + 119, 70, 119, 70, 119, 85, 119, 85, 119, 85, 119, 100, + 118, 116, 118, 132, 86, 164, 69, 203, 246, 0, 37, 48, + 73, 24, 0, 12, 34, 240, 127, 3, 95, 4, 95, 3, + 111, 3, 111, 2, 127, 1, 130, 179, 130, 163, 131, 147, + 147, 147, 146, 147, 240, 83, 240, 99, 240, 83, 240, 99, + 240, 84, 240, 84, 240, 68, 240, 84, 240, 84, 240, 69, + 240, 69, 240, 69, 240, 69, 240, 54, 240, 54, 240, 54, + 240, 54, 240, 54, 240, 54, 240, 54, 240, 68, 0, 34, + 96, 60, 23, 0, 15, 23, 235, 180, 84, 162, 132, 131, + 147, 131, 148, 100, 148, 100, 148, 102, 116, 103, 99, 136, + 52, 137, 35, 157, 187, 220, 204, 158, 132, 42, 100, 88, + 100, 104, 68, 150, 68, 165, 68, 180, 68, 180, 68, 180, + 68, 179, 100, 163, 101, 131, 133, 84, 172, 231, 0, 35, + 96, 64, 23, 0, 15, 23, 235, 181, 53, 149, 84, 133, + 116, 117, 117, 86, 117, 86, 117, 86, 117, 86, 118, 70, + 118, 70, 118, 70, 118, 70, 118, 85, 118, 85, 103, 101, + 87, 117, 56, 136, 22, 165, 38, 240, 38, 240, 37, 116, + 117, 101, 117, 102, 100, 118, 85, 117, 100, 147, 100, 163, + 84, 202, 246, 0, 36, 23, 11, 0, 20, 115, 117, 87, + 71, 71, 85, 115, 0, 10, 83, 117, 87, 71, 71, 85, + 115, 0, 17, 32, 32, 11, 0, 20, 115, 117, 87, 71, + 71, 85, 115, 0, 10, 83, 117, 87, 71, 71, 86, 101, + 146, 146, 145, 146, 146, 130, 146, 130, 145, 240, 240, 176, + 38, 11, 0, 18, 19, 117, 87, 71, 71, 85, 115, 240, + 240, 194, 131, 131, 131, 131, 131, 131, 131, 117, 101, 101, + 101, 101, 101, 101, 87, 71, 71, 71, 71, 71, 85, 115, + 240, 208, 27, 35, 0, 74, 63, 15, 1, 79, 15, 1, + 79, 15, 1, 0, 35, 79, 15, 1, 79, 15, 1, 79, + 15, 1, 0, 74, 112, 57, 21, 0, 34, 115, 240, 38, + 231, 231, 231, 246, 240, 19, 0, 10, 18, 240, 66, 240, + 66, 240, 66, 240, 66, 240, 66, 240, 51, 240, 51, 240, + 35, 240, 51, 240, 36, 240, 21, 245, 246, 100, 86, 86, + 70, 86, 70, 86, 70, 86, 85, 115, 101, 84, 140, 184, + 0, 9, 55, 21, 0, 8, 71, 204, 116, 86, 99, 117, + 86, 86, 70, 86, 70, 86, 70, 86, 84, 101, 246, 229, + 245, 240, 20, 240, 20, 240, 35, 240, 35, 240, 51, 240, + 50, 240, 66, 240, 66, 240, 66, 240, 66, 0, 12, 115, + 240, 38, 231, 232, 215, 246, 244, 0, 33, 117, 35, 0, + 14, 72, 240, 158, 240, 84, 133, 240, 20, 212, 211, 240, + 20, 179, 240, 67, 162, 118, 130, 146, 105, 115, 130, 85, + 51, 114, 114, 85, 83, 114, 98, 69, 117, 66, 98, 69, + 117, 66, 82, 84, 133, 82, 66, 69, 133, 82, 66, 69, + 133, 82, 66, 69, 133, 82, 66, 69, 133, 82, 66, 69, + 133, 82, 66, 69, 133, 82, 66, 69, 133, 82, 66, 84, + 133, 82, 82, 69, 117, 82, 82, 69, 117, 81, 98, 85, + 86, 66, 114, 85, 56, 35, 114, 105, 25, 146, 117, 85, + 179, 240, 240, 51, 240, 99, 148, 240, 22, 165, 168, 239, + 3, 240, 91, 0, 54, 16, 92, 36, 0, 15, 35, 240, + 240, 52, 240, 240, 36, 240, 240, 21, 240, 240, 22, 240, + 246, 240, 231, 240, 232, 240, 201, 240, 201, 240, 194, 23, + 240, 163, 23, 240, 163, 38, 240, 162, 55, 240, 131, 55, + 240, 131, 70, 240, 130, 87, 240, 99, 87, 240, 99, 103, + 240, 82, 119, 240, 67, 119, 240, 66, 151, 240, 63, 3, + 240, 47, 4, 240, 34, 183, 240, 18, 183, 243, 198, 242, + 215, 226, 215, 211, 230, 211, 231, 138, 127, 74, 127, 0, + 54, 64, 71, 33, 0, 16, 79, 7, 191, 9, 214, 151, + 182, 167, 166, 182, 166, 183, 150, 183, 150, 183, 150, 183, + 150, 183, 150, 182, 166, 167, 166, 166, 182, 135, 207, 3, + 255, 5, 214, 166, 182, 182, 166, 183, 150, 198, 150, 199, + 134, 199, 134, 199, 134, 199, 134, 199, 134, 199, 134, 199, + 134, 183, 150, 183, 150, 152, 111, 10, 143, 8, 0, 50, + 96, 85, 32, 0, 13, 72, 113, 221, 51, 183, 104, 166, + 166, 149, 213, 133, 244, 118, 244, 102, 240, 35, 102, 240, + 35, 87, 240, 35, 86, 240, 66, 86, 240, 66, 71, 240, + 66, 71, 240, 167, 240, 167, 240, 167, 240, 167, 240, 167, + 240, 167, 240, 167, 240, 182, 240, 66, 86, 240, 66, 87, + 240, 50, 102, 240, 50, 102, 240, 35, 118, 240, 18, 150, + 227, 166, 195, 198, 163, 231, 100, 240, 45, 240, 120, 0, + 49, 64, 72, 35, 0, 17, 79, 6, 239, 8, 240, 22, + 135, 230, 166, 214, 182, 198, 198, 182, 214, 166, 214, 166, + 215, 150, 230, 150, 230, 150, 231, 134, 231, 134, 231, 134, + 231, 134, 231, 134, 231, 134, 231, 134, 231, 134, 231, 134, + 231, 134, 230, 150, 230, 150, 215, 150, 214, 166, 214, 166, + 198, 182, 182, 198, 166, 214, 135, 175, 8, 207, 6, 0, + 54, 32, 82, 31, 0, 15, 79, 9, 127, 10, 111, 10, + 167, 134, 167, 164, 167, 179, 167, 179, 167, 194, 167, 194, + 167, 82, 83, 151, 82, 83, 151, 82, 240, 39, 82, 240, + 39, 67, 240, 46, 240, 46, 240, 39, 52, 240, 39, 67, + 240, 39, 82, 240, 39, 82, 114, 135, 82, 114, 135, 82, + 99, 135, 210, 151, 210, 151, 210, 151, 195, 151, 195, 151, + 180, 151, 164, 167, 134, 111, 10, 111, 10, 0, 47, 32, + 71, 29, 0, 14, 79, 9, 95, 9, 95, 9, 151, 133, + 151, 164, 135, 164, 135, 179, 135, 179, 135, 194, 135, 194, + 135, 82, 82, 135, 82, 82, 135, 82, 247, 82, 247, 52, + 254, 254, 247, 52, 247, 67, 247, 82, 247, 82, 247, 82, + 247, 82, 247, 240, 119, 240, 119, 240, 119, 240, 119, 240, + 119, 240, 119, 240, 63, 1, 223, 1, 0, 45, 16, 87, + 36, 0, 15, 8, 114, 240, 30, 51, 231, 100, 20, 214, + 167, 198, 198, 182, 229, 166, 240, 20, 150, 240, 36, 150, + 240, 51, 135, 240, 51, 134, 240, 67, 134, 240, 67, 119, + 240, 82, 119, 240, 231, 240, 231, 240, 231, 240, 231, 240, + 231, 240, 231, 240, 231, 159, 1, 86, 159, 1, 86, 247, + 135, 231, 150, 231, 150, 231, 166, 215, 181, 215, 182, 199, + 214, 152, 231, 99, 21, 240, 29, 52, 240, 72, 114, 0, + 54, 112, 70, 37, 0, 18, 79, 63, 79, 63, 135, 183, + 199, 183, 199, 183, 199, 183, 199, 183, 199, 183, 199, 183, + 199, 183, 199, 183, 199, 183, 199, 183, 199, 183, 207, 10, + 207, 10, 199, 183, 199, 183, 199, 183, 199, 183, 199, 183, + 199, 183, 199, 183, 199, 183, 199, 183, 199, 183, 199, 183, + 199, 183, 199, 183, 199, 183, 143, 63, 79, 63, 0, 56, + 42, 21, 0, 10, 79, 2, 79, 2, 151, 231, 231, 231, + 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, + 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, + 159, 2, 79, 2, 0, 32, 67, 25, 0, 13, 47, 175, + 240, 22, 240, 70, 240, 70, 240, 70, 240, 70, 240, 70, + 240, 70, 240, 70, 240, 70, 240, 70, 240, 70, 240, 70, + 240, 70, 240, 70, 240, 70, 240, 70, 240, 70, 240, 70, + 240, 70, 240, 70, 240, 70, 147, 118, 134, 86, 119, 86, + 119, 86, 119, 85, 149, 86, 148, 86, 189, 247, 0, 39, + 16, 88, 37, 0, 18, 79, 123, 79, 123, 135, 228, 199, + 211, 231, 195, 247, 179, 240, 23, 163, 240, 39, 147, 240, + 55, 131, 240, 71, 115, 240, 87, 99, 240, 103, 83, 240, + 119, 68, 240, 119, 53, 240, 119, 39, 240, 103, 25, 240, + 95, 2, 240, 89, 39, 240, 72, 55, 240, 71, 87, 240, + 55, 103, 240, 39, 103, 240, 39, 119, 240, 23, 135, 247, + 135, 247, 151, 231, 167, 215, 167, 215, 183, 199, 184, 127, + 78, 79, 78, 0, 56, 71, 28, 0, 14, 15, 2, 191, + 2, 247, 240, 103, 240, 103, 240, 103, 240, 103, 240, 103, + 240, 103, 240, 103, 240, 103, 240, 103, 240, 103, 240, 103, + 240, 103, 240, 103, 240, 103, 240, 103, 240, 103, 240, 103, + 178, 135, 178, 135, 178, 135, 178, 135, 178, 135, 163, 135, + 163, 135, 148, 135, 148, 135, 132, 151, 102, 95, 8, 95, + 8, 0, 42, 80, 123, 45, 0, 22, 75, 240, 75, 76, + 240, 59, 136, 240, 40, 201, 240, 17, 22, 195, 21, 242, + 22, 195, 21, 242, 22, 195, 22, 225, 38, 195, 37, 210, + 38, 195, 38, 194, 38, 195, 53, 193, 54, 195, 53, 178, + 54, 195, 54, 161, 70, 195, 69, 146, 70, 195, 69, 146, + 70, 195, 70, 129, 86, 195, 85, 114, 86, 195, 86, 98, + 86, 195, 101, 82, 102, 195, 101, 82, 102, 195, 102, 65, + 118, 195, 117, 50, 118, 195, 118, 34, 118, 195, 118, 33, + 134, 195, 133, 18, 134, 195, 136, 134, 195, 135, 150, 195, + 150, 150, 195, 149, 166, 195, 164, 166, 195, 164, 166, 139, + 99, 126, 75, 114, 126, 0, 68, 91, 37, 0, 18, 75, + 187, 76, 171, 137, 211, 201, 211, 202, 195, 195, 23, 179, + 195, 23, 179, 195, 39, 163, 195, 55, 147, 195, 71, 131, + 195, 71, 131, 195, 87, 115, 195, 103, 99, 195, 103, 99, + 195, 119, 83, 195, 135, 67, 195, 150, 67, 195, 151, 51, + 195, 167, 35, 195, 183, 19, 195, 183, 19, 195, 202, 195, + 217, 195, 217, 195, 232, 195, 247, 195, 240, 22, 195, 240, + 22, 195, 240, 37, 195, 240, 52, 139, 228, 139, 243, 0, + 56, 64, 73, 33, 0, 13, 104, 240, 125, 240, 54, 86, + 246, 118, 214, 150, 182, 182, 165, 214, 134, 214, 134, 215, + 102, 246, 102, 246, 102, 246, 87, 247, 71, 247, 71, 247, + 71, 247, 71, 247, 71, 247, 71, 247, 71, 247, 71, 247, + 86, 247, 86, 246, 103, 230, 103, 215, 118, 214, 134, 214, + 150, 182, 182, 150, 214, 118, 246, 86, 240, 61, 240, 120, + 0, 51, 48, 70, 31, 0, 15, 79, 5, 191, 8, 199, + 118, 183, 134, 167, 150, 151, 150, 151, 151, 135, 151, 135, + 151, 135, 151, 135, 151, 135, 151, 135, 150, 151, 150, 151, + 134, 167, 118, 191, 4, 207, 1, 247, 240, 151, 240, 151, + 240, 151, 240, 151, 240, 151, 240, 151, 240, 151, 240, 151, + 240, 151, 240, 151, 240, 151, 240, 95, 240, 31, 0, 48, + 64, 113, 34, 0, 14, 24, 240, 142, 240, 54, 86, 240, + 22, 134, 214, 166, 182, 198, 166, 198, 150, 230, 134, 230, + 119, 246, 102, 240, 22, 102, 240, 22, 87, 240, 23, 71, + 240, 23, 71, 240, 23, 71, 240, 23, 71, 240, 23, 71, + 240, 23, 71, 240, 23, 71, 240, 23, 71, 240, 23, 86, + 240, 22, 102, 240, 22, 102, 247, 103, 231, 118, 69, 86, + 134, 55, 54, 166, 19, 66, 38, 181, 18, 89, 215, 103, + 247, 71, 240, 62, 240, 139, 98, 240, 132, 82, 240, 133, + 51, 240, 139, 240, 139, 240, 139, 240, 153, 240, 169, 240, + 183, 240, 213, 0, 13, 80, 95, 38, 0, 19, 15, 5, + 240, 63, 8, 240, 70, 135, 240, 38, 166, 240, 22, 167, + 246, 182, 246, 183, 230, 183, 230, 183, 230, 183, 230, 183, + 230, 182, 246, 167, 246, 166, 240, 22, 135, 240, 47, 4, + 240, 79, 3, 240, 86, 103, 240, 70, 134, 240, 54, 135, + 240, 38, 150, 240, 38, 151, 240, 22, 151, 240, 22, 151, + 240, 22, 151, 240, 22, 151, 240, 22, 151, 240, 22, 152, + 82, 134, 152, 67, 134, 152, 66, 95, 88, 35, 95, 122, + 240, 247, 0, 53, 16, 69, 25, 0, 10, 23, 82, 155, + 35, 132, 88, 116, 134, 100, 165, 100, 180, 85, 180, 85, + 195, 85, 195, 86, 179, 86, 179, 88, 240, 43, 254, 191, + 1, 175, 1, 175, 1, 175, 1, 190, 250, 240, 56, 240, + 70, 66, 214, 67, 213, 67, 213, 67, 213, 67, 213, 68, + 196, 85, 165, 86, 148, 104, 100, 115, 44, 130, 103, 0, + 38, 96, 77, 33, 0, 20, 111, 12, 111, 12, 85, 103, + 86, 68, 119, 116, 67, 135, 131, 67, 135, 131, 66, 151, + 146, 66, 151, 146, 66, 151, 146, 66, 151, 146, 247, 240, + 183, 240, 183, 240, 183, 240, 183, 240, 183, 240, 183, 240, + 183, 240, 183, 240, 183, 240, 183, 240, 183, 240, 183, 240, + 183, 240, 183, 240, 183, 240, 183, 240, 183, 240, 183, 240, + 95, 4, 239, 4, 0, 50, 80, 73, 37, 0, 18, 79, + 123, 79, 123, 135, 243, 199, 243, 199, 243, 199, 243, 199, + 243, 199, 243, 199, 243, 199, 243, 199, 243, 199, 243, 199, + 243, 199, 243, 199, 243, 199, 243, 199, 243, 199, 243, 199, + 243, 199, 243, 199, 243, 199, 243, 199, 243, 199, 243, 214, + 243, 214, 227, 246, 211, 246, 195, 240, 38, 163, 240, 71, + 100, 240, 126, 240, 184, 0, 57, 64, 90, 37, 0, 18, + 79, 138, 79, 138, 135, 240, 19, 183, 243, 215, 227, 215, + 226, 246, 211, 247, 195, 247, 179, 240, 39, 163, 240, 39, + 162, 240, 55, 147, 240, 71, 131, 240, 71, 130, 240, 103, + 99, 240, 103, 98, 240, 119, 83, 240, 135, 67, 240, 135, + 66, 240, 166, 51, 240, 167, 35, 240, 167, 19, 240, 202, + 240, 201, 240, 232, 240, 232, 240, 231, 240, 240, 22, 240, + 240, 21, 240, 240, 37, 240, 240, 52, 240, 240, 51, 0, + 57, 112, 126, 51, 0, 25, 78, 62, 91, 78, 62, 91, + 134, 167, 211, 199, 166, 210, 215, 167, 194, 231, 151, 179, + 231, 166, 178, 247, 167, 162, 240, 23, 151, 147, 240, 23, + 151, 146, 240, 39, 137, 130, 240, 55, 121, 115, 240, 55, + 99, 23, 98, 240, 71, 98, 39, 98, 240, 87, 82, 39, + 83, 240, 87, 67, 55, 66, 240, 103, 66, 71, 66, 240, + 119, 50, 71, 51, 240, 119, 35, 87, 34, 240, 135, 34, + 103, 34, 240, 151, 18, 103, 19, 240, 154, 121, 240, 184, + 137, 240, 184, 137, 240, 184, 151, 240, 214, 167, 240, 214, + 167, 240, 214, 181, 240, 244, 197, 240, 244, 212, 240, 244, + 211, 240, 240, 34, 227, 0, 78, 96, 89, 37, 0, 18, + 95, 60, 127, 60, 184, 163, 240, 39, 147, 240, 56, 131, + 240, 71, 115, 240, 103, 83, 240, 120, 67, 240, 135, 51, + 240, 152, 19, 240, 183, 19, 240, 201, 240, 217, 240, 231, + 240, 240, 23, 240, 247, 240, 240, 23, 240, 233, 240, 217, + 240, 195, 23, 240, 163, 39, 240, 163, 55, 240, 131, 72, + 240, 99, 103, 240, 99, 119, 240, 67, 135, 240, 67, 151, + 240, 35, 168, 243, 199, 243, 215, 141, 110, 77, 110, 0, + 56, 93, 38, 0, 19, 15, 139, 79, 139, 136, 243, 215, + 227, 247, 210, 240, 24, 179, 240, 39, 163, 240, 56, 147, + 240, 71, 131, 240, 88, 115, 240, 103, 99, 240, 135, 82, + 240, 151, 67, 240, 167, 35, 240, 183, 35, 240, 202, 240, + 218, 240, 232, 240, 240, 22, 240, 240, 38, 240, 240, 38, + 240, 240, 38, 240, 240, 38, 240, 240, 38, 240, 240, 38, + 240, 240, 38, 240, 240, 38, 240, 240, 38, 240, 240, 38, + 240, 240, 38, 240, 222, 240, 158, 0, 58, 96, 72, 28, + 0, 14, 31, 8, 95, 8, 87, 135, 101, 152, 100, 167, + 115, 168, 115, 167, 130, 168, 130, 167, 146, 151, 162, 136, + 240, 87, 240, 88, 240, 87, 240, 87, 240, 103, 240, 87, + 240, 88, 240, 87, 240, 88, 130, 167, 146, 151, 162, 151, + 162, 135, 163, 120, 163, 119, 179, 104, 164, 103, 180, 87, + 166, 87, 136, 79, 8, 95, 8, 0, 42, 80, 51, 11, + 7, 71, 71, 67, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 135, 71, 71, + 64, 41, 23, 0, 9, 33, 161, 162, 146, 146, 146, 146, + 146, 162, 146, 146, 146, 162, 146, 161, 161, 162, 146, 162, + 146, 166, 86, 103, 71, 88, 56, 72, 56, 87, 71, 86, + 86, 116, 116, 0, 81, 32, 51, 11, 7, 71, 71, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 71, 71, 71, 64, 19, 17, 0, + 7, 17, 243, 213, 183, 148, 20, 116, 52, 83, 115, 81, + 145, 0, 79, 32, 13, 11, 240, 240, 83, 117, 87, 71, + 71, 85, 115, 0, 53, 24, 12, 240, 240, 177, 162, 146, + 146, 162, 146, 162, 161, 162, 162, 166, 103, 88, 72, 87, + 86, 116, 0, 42, 96, 48, 25, 0, 44, 56, 252, 196, + 85, 166, 85, 150, 86, 134, 101, 134, 101, 148, 117, 240, + 85, 240, 85, 250, 182, 53, 149, 101, 133, 117, 132, 133, + 117, 133, 117, 133, 117, 133, 118, 102, 134, 51, 23, 106, + 39, 134, 86, 0, 38, 72, 28, 0, 14, 8, 240, 88, + 240, 133, 240, 133, 240, 133, 240, 133, 240, 133, 240, 133, + 240, 133, 240, 133, 240, 133, 240, 133, 54, 229, 27, 184, + 70, 166, 133, 149, 150, 133, 165, 133, 165, 133, 166, 117, + 166, 117, 166, 117, 166, 117, 166, 117, 166, 117, 166, 117, + 165, 133, 165, 133, 149, 150, 118, 148, 19, 70, 163, 58, + 195, 86, 0, 43, 48, 40, 21, 0, 37, 87, 203, 133, + 69, 101, 70, 101, 70, 85, 86, 85, 100, 86, 246, 246, + 246, 246, 246, 246, 246, 240, 21, 161, 86, 130, 101, 130, + 102, 99, 118, 67, 155, 199, 0, 32, 64, 69, 27, 0, + 15, 8, 240, 72, 240, 117, 240, 117, 240, 117, 240, 117, + 240, 117, 240, 117, 240, 117, 240, 117, 240, 117, 230, 37, + 201, 21, 166, 71, 149, 118, 149, 133, 133, 149, 133, 149, + 118, 149, 118, 149, 118, 149, 118, 149, 118, 149, 118, 149, + 118, 149, 133, 149, 133, 149, 134, 133, 149, 118, 165, 75, + 138, 24, 166, 56, 0, 41, 47, 24, 0, 42, 119, 251, + 196, 69, 164, 101, 133, 117, 101, 133, 101, 149, 85, 149, + 70, 149, 70, 149, 79, 5, 79, 5, 70, 240, 54, 240, + 54, 240, 69, 240, 70, 178, 101, 163, 102, 131, 134, 84, + 188, 231, 0, 37, 32, 65, 21, 0, 8, 118, 218, 165, + 37, 133, 38, 132, 54, 117, 54, 117, 68, 133, 240, 21, + 240, 21, 240, 21, 240, 21, 220, 156, 197, 240, 21, 240, + 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, + 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, + 21, 240, 21, 240, 21, 220, 156, 0, 32, 80, 67, 26, + 0, 46, 39, 68, 155, 22, 116, 70, 20, 101, 85, 20, + 85, 116, 34, 101, 117, 149, 117, 149, 117, 149, 117, 149, + 117, 149, 116, 181, 85, 197, 68, 220, 210, 39, 242, 240, + 131, 240, 132, 240, 142, 207, 2, 159, 3, 159, 3, 127, + 4, 100, 181, 84, 212, 84, 212, 84, 212, 100, 181, 117, + 133, 159, 234, 0, 11, 73, 28, 0, 14, 8, 240, 88, + 240, 133, 240, 133, 240, 133, 240, 133, 240, 133, 240, 133, + 240, 133, 240, 133, 240, 133, 240, 133, 70, 213, 56, 197, + 19, 53, 181, 17, 101, 167, 101, 166, 117, 165, 133, 165, + 133, 165, 133, 165, 133, 165, 133, 165, 133, 165, 133, 165, + 133, 165, 133, 165, 133, 165, 133, 165, 133, 165, 133, 123, + 43, 75, 43, 0, 42, 64, 37, 14, 240, 240, 244, 149, + 135, 119, 119, 133, 163, 0, 9, 104, 104, 104, 149, 149, + 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, + 149, 149, 106, 74, 0, 21, 64, 51, 18, 0, 7, 115, + 229, 199, 183, 183, 197, 227, 0, 12, 104, 168, 168, 213, + 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, + 213, 213, 213, 213, 213, 213, 213, 84, 69, 70, 53, 70, + 52, 86, 37, 100, 52, 122, 166, 0, 7, 112, 72, 27, + 0, 13, 72, 240, 72, 240, 117, 240, 117, 240, 117, 240, + 117, 240, 117, 240, 117, 240, 117, 240, 117, 240, 117, 240, + 117, 89, 133, 89, 133, 115, 197, 99, 213, 83, 229, 67, + 245, 51, 240, 21, 35, 240, 37, 20, 240, 43, 240, 28, + 246, 21, 245, 38, 229, 54, 213, 69, 213, 70, 197, 86, + 181, 101, 181, 102, 123, 42, 75, 42, 0, 41, 38, 15, + 0, 7, 72, 120, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 123, 75, 0, 23, + 71, 41, 0, 76, 120, 70, 118, 168, 42, 57, 152, 19, + 53, 35, 53, 183, 103, 101, 167, 103, 101, 166, 118, 117, + 165, 133, 133, 165, 133, 133, 165, 133, 133, 165, 133, 133, + 165, 133, 133, 165, 133, 133, 165, 133, 133, 165, 133, 133, + 165, 133, 133, 165, 133, 133, 165, 133, 133, 165, 133, 133, + 165, 133, 133, 123, 43, 43, 75, 43, 43, 0, 62, 50, + 28, 0, 52, 72, 70, 168, 41, 152, 19, 53, 183, 101, + 167, 101, 166, 117, 165, 133, 165, 133, 165, 133, 165, 133, + 165, 133, 165, 133, 165, 133, 165, 133, 165, 133, 165, 133, + 165, 133, 165, 133, 165, 133, 123, 43, 75, 43, 0, 42, + 64, 49, 25, 0, 44, 87, 240, 27, 212, 85, 164, 117, + 133, 117, 117, 149, 101, 149, 101, 150, 70, 150, 70, 150, + 70, 150, 70, 150, 70, 150, 70, 150, 70, 150, 85, 149, + 101, 149, 117, 117, 133, 117, 150, 69, 203, 240, 23, 0, + 38, 112, 66, 28, 0, 52, 72, 54, 184, 27, 139, 70, + 166, 118, 149, 150, 133, 150, 133, 165, 133, 166, 117, 166, + 117, 166, 117, 166, 117, 166, 117, 166, 117, 166, 117, 165, + 133, 150, 133, 149, 150, 118, 152, 70, 165, 26, 197, 39, + 229, 240, 133, 240, 133, 240, 133, 240, 133, 240, 133, 240, + 133, 240, 92, 240, 28, 0, 12, 64, 68, 27, 0, 51, + 70, 82, 201, 51, 166, 51, 20, 150, 102, 149, 118, 134, + 133, 133, 149, 118, 149, 118, 149, 118, 149, 118, 149, 118, + 149, 118, 149, 118, 149, 133, 149, 134, 133, 149, 118, 150, + 102, 166, 56, 186, 21, 229, 53, 240, 117, 240, 117, 240, + 117, 240, 117, 240, 117, 240, 117, 240, 117, 240, 75, 240, + 27, 0, 10, 80, 49, 22, 0, 41, 39, 68, 119, 40, + 87, 19, 37, 116, 18, 38, 116, 17, 54, 118, 54, 117, + 84, 133, 240, 37, 240, 37, 240, 37, 240, 37, 240, 37, + 240, 37, 240, 37, 240, 37, 240, 37, 240, 37, 240, 37, + 236, 172, 0, 34, 32, 42, 19, 0, 33, 103, 18, 124, + 100, 84, 98, 131, 83, 146, 83, 146, 84, 130, 86, 218, + 171, 155, 155, 185, 229, 66, 148, 66, 163, 67, 147, 67, + 147, 68, 130, 85, 84, 93, 98, 54, 0, 29, 64, 48, + 19, 0, 15, 2, 240, 34, 240, 34, 240, 34, 240, 19, + 240, 19, 244, 244, 229, 190, 94, 133, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 82, 117, 82, 117, 82, + 117, 82, 117, 82, 133, 50, 169, 182, 0, 29, 48, 50, + 28, 0, 52, 72, 88, 120, 88, 120, 88, 165, 133, 165, + 133, 165, 133, 165, 133, 165, 133, 165, 133, 165, 133, 165, + 133, 165, 133, 165, 133, 165, 133, 165, 133, 165, 133, 165, + 118, 165, 118, 181, 66, 24, 154, 24, 182, 56, 0, 42, + 64, 53, 27, 0, 50, 91, 72, 75, 72, 118, 131, 181, + 130, 197, 115, 198, 99, 213, 98, 230, 67, 230, 66, 240, + 21, 66, 240, 22, 35, 240, 37, 34, 240, 53, 19, 240, + 56, 240, 87, 240, 87, 240, 86, 240, 117, 240, 117, 240, + 131, 240, 147, 0, 42, 32, 75, 36, 0, 67, 74, 26, + 56, 74, 26, 56, 117, 100, 146, 166, 85, 115, 181, 85, + 114, 197, 100, 114, 198, 70, 83, 213, 70, 82, 229, 70, + 82, 230, 40, 51, 245, 34, 36, 50, 240, 21, 34, 37, + 34, 240, 25, 37, 19, 240, 39, 68, 18, 240, 55, 71, + 240, 55, 71, 240, 69, 101, 240, 85, 101, 240, 85, 100, + 240, 115, 131, 240, 115, 131, 0, 55, 80, 53, 27, 0, + 50, 91, 41, 91, 41, 149, 99, 213, 98, 245, 67, 240, + 21, 35, 240, 37, 34, 240, 71, 240, 102, 240, 102, 240, + 117, 240, 118, 240, 88, 240, 66, 21, 240, 51, 37, 240, + 19, 54, 227, 85, 226, 117, 195, 118, 121, 59, 73, 59, + 0, 41, 71, 26, 0, 48, 107, 56, 75, 56, 117, 146, + 166, 130, 181, 115, 182, 98, 213, 83, 213, 82, 230, 66, + 245, 51, 246, 34, 240, 22, 19, 240, 37, 18, 240, 56, + 240, 71, 240, 70, 240, 86, 240, 101, 240, 100, 240, 131, + 240, 130, 240, 146, 240, 131, 243, 82, 245, 51, 245, 50, + 240, 21, 35, 240, 20, 35, 240, 55, 240, 84, 0, 12, + 32, 45, 21, 0, 39, 79, 1, 95, 1, 84, 101, 99, + 102, 98, 102, 114, 102, 114, 86, 130, 85, 246, 230, 245, + 246, 230, 82, 133, 98, 118, 98, 102, 99, 102, 99, 86, + 100, 85, 100, 95, 1, 95, 1, 0, 32, 16, 11, 27, + 0, 74, 47, 8, 79, 8, 0, 81, 64, 19, 51, 0, + 127, 0, 13, 47, 15, 15, 2, 79, 15, 15, 2, 0, + 127, 0, 26, 64, 27, 18, 240, 240, 131, 67, 118, 22, + 86, 22, 86, 22, 86, 22, 85, 37, 85, 37, 100, 52, + 115, 67, 145, 97, 0, 82, 16, 14, 20, 0, 7, 117, + 97, 126, 94, 94, 113, 101, 0, 100, 112, +}; + +//***************************************************************************** +// +// The font definition for the 48 point Cm bold font. +// +//***************************************************************************** +const tFont g_sFontCm48b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 46, + + // + // The height of the font. + // + 48, + + // + // The baseline of the font. + // + 36, + + // + // The offset to each character in the font. + // + { + 0, 4, 42, 81, 211, 301, 433, 534, + 557, 608, 659, 712, 813, 836, 848, 862, + 962, 1029, 1069, 1136, 1200, 1266, 1326, 1392, + 1465, 1525, 1589, 1612, 1644, 1682, 1709, 1766, + 1821, 1938, 2030, 2101, 2186, 2258, 2340, 2411, + 2498, 2568, 2610, 2677, 2765, 2836, 2959, 3050, + 3123, 3193, 3306, 3401, 3470, 3547, 3620, 3710, + 3836, 3925, 4018, 4090, 4141, 4182, 4233, 4252, + 4265, 4289, 4337, 4409, 4449, 4518, 4565, 4630, + 4697, 4770, 4807, 4858, 4930, 4968, 5039, 5089, + 5138, 5204, 5272, 5321, 5363, 5411, 5461, 5514, + 5589, 5642, 5713, 5758, 5769, 5788, 5815, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm48bData +}; diff --git a/grlib/fonts/fontcm48i.c b/grlib/fonts/fontcm48i.c new file mode 100644 index 0000000..708d93c --- /dev/null +++ b/grlib/fonts/fontcm48i.c @@ -0,0 +1,685 @@ +//***************************************************************************** +// +// fontcm48i.c - Font definition for the 48pt Cm italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cm +// Size: 48 point +// Bold: no +// Italic: yes +// Memory usage: 7144 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 48 point Cm italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cm48iData[6944] = +{ + 5, 19, 0, 116, 48, 40, 16, 240, 240, 179, 196, 196, + 181, 181, 180, 196, 196, 195, 196, 196, 195, 211, 211, 210, + 211, 211, 211, 210, 226, 211, 210, 226, 226, 225, 241, 0, + 9, 67, 197, 181, 181, 195, 0, 25, 64, 35, 20, 0, + 7, 115, 99, 117, 69, 101, 69, 101, 69, 116, 84, 161, + 129, 145, 129, 161, 129, 145, 129, 161, 129, 145, 129, 145, + 129, 145, 129, 145, 129, 0, 81, 32, 134, 37, 0, 16, + 65, 145, 240, 162, 130, 240, 162, 130, 240, 146, 130, 240, + 162, 130, 240, 161, 130, 240, 162, 130, 240, 162, 114, 240, + 162, 130, 240, 162, 129, 240, 162, 130, 240, 162, 130, 240, + 146, 130, 240, 162, 130, 240, 146, 130, 240, 162, 130, 240, + 161, 130, 239, 15, 1, 240, 18, 130, 240, 162, 114, 240, + 162, 130, 240, 162, 130, 240, 146, 130, 240, 162, 130, 240, + 162, 114, 240, 162, 130, 240, 31, 15, 1, 226, 130, 240, + 146, 130, 240, 162, 130, 240, 146, 130, 240, 162, 130, 240, + 146, 130, 240, 162, 130, 240, 146, 130, 240, 162, 130, 240, + 146, 130, 240, 162, 130, 240, 146, 130, 240, 162, 130, 240, + 161, 130, 240, 162, 130, 240, 161, 145, 0, 17, 89, 33, + 0, 15, 5, 240, 194, 66, 240, 131, 97, 240, 115, 129, + 240, 83, 145, 240, 82, 161, 240, 67, 131, 240, 67, 131, + 240, 51, 132, 240, 51, 146, 240, 67, 240, 243, 240, 227, + 240, 243, 240, 243, 240, 243, 240, 227, 240, 188, 240, 163, + 240, 243, 240, 227, 240, 243, 240, 243, 240, 243, 240, 227, + 240, 243, 240, 243, 240, 242, 240, 168, 209, 146, 68, 194, + 130, 85, 177, 130, 83, 20, 129, 146, 66, 83, 82, 181, + 150, 0, 51, 145, 37, 163, 240, 50, 194, 49, 240, 34, + 178, 66, 242, 178, 98, 195, 194, 99, 163, 194, 113, 19, + 98, 17, 210, 113, 55, 34, 195, 113, 178, 210, 129, 162, + 226, 129, 146, 227, 129, 145, 243, 113, 146, 242, 129, 130, + 240, 18, 129, 114, 240, 34, 113, 114, 240, 50, 113, 98, + 240, 66, 97, 113, 240, 82, 97, 98, 240, 97, 81, 98, + 240, 129, 34, 98, 240, 162, 114, 240, 240, 66, 118, 240, + 114, 97, 81, 240, 98, 98, 97, 240, 66, 98, 113, 240, + 50, 98, 129, 240, 34, 114, 129, 240, 18, 115, 129, 240, + 18, 114, 145, 242, 130, 145, 226, 131, 129, 226, 147, 129, + 210, 162, 145, 195, 162, 129, 210, 178, 129, 194, 194, 113, + 194, 210, 98, 178, 241, 82, 178, 240, 18, 50, 194, 240, + 36, 0, 43, 48, 123, 35, 0, 10, 22, 240, 210, 66, + 178, 195, 98, 147, 179, 129, 147, 178, 146, 146, 163, 116, + 145, 163, 116, 146, 163, 116, 145, 163, 131, 146, 163, 240, + 66, 179, 240, 50, 195, 240, 34, 211, 36, 163, 210, 19, + 49, 115, 18, 196, 81, 99, 49, 195, 97, 82, 81, 195, + 97, 66, 98, 164, 81, 82, 113, 162, 18, 50, 81, 129, + 147, 36, 98, 129, 147, 194, 18, 81, 131, 228, 81, 131, + 228, 81, 116, 240, 129, 115, 240, 129, 131, 240, 129, 131, + 240, 129, 131, 240, 113, 147, 240, 98, 162, 240, 97, 179, + 240, 65, 210, 240, 49, 227, 240, 17, 240, 19, 210, 240, + 67, 131, 240, 152, 0, 50, 64, 21, 11, 240, 240, 99, + 117, 101, 101, 116, 161, 145, 161, 145, 161, 145, 145, 145, + 145, 0, 45, 32, 102, 21, 240, 17, 240, 65, 240, 65, + 240, 50, 240, 65, 240, 65, 240, 66, 240, 50, 240, 50, + 240, 66, 240, 50, 240, 51, 240, 50, 240, 50, 240, 66, + 240, 51, 240, 50, 240, 66, 240, 50, 240, 66, 240, 51, + 240, 50, 240, 66, 240, 66, 240, 51, 240, 50, 240, 66, + 240, 66, 240, 66, 240, 51, 240, 51, 240, 50, 240, 66, + 240, 66, 240, 66, 240, 66, 240, 66, 240, 66, 240, 66, + 240, 66, 240, 81, 240, 82, 240, 66, 240, 66, 240, 81, + 240, 82, 240, 81, 240, 82, 240, 81, 240, 16, 101, 21, + 193, 240, 97, 240, 82, 240, 81, 240, 81, 240, 82, 240, + 81, 240, 81, 240, 82, 240, 66, 240, 66, 240, 66, 240, + 66, 240, 66, 240, 66, 240, 66, 240, 66, 240, 66, 240, + 66, 240, 51, 240, 51, 240, 50, 240, 66, 240, 66, 240, + 51, 240, 51, 240, 50, 240, 66, 240, 51, 240, 50, 240, + 66, 240, 51, 240, 50, 240, 66, 240, 50, 240, 66, 240, + 50, 240, 66, 240, 50, 240, 66, 240, 50, 240, 50, 240, + 65, 240, 66, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 64, 52, 22, 177, 240, 82, 240, 82, 240, 82, + 240, 81, 211, 66, 82, 100, 50, 52, 131, 33, 51, 179, + 17, 19, 245, 240, 50, 240, 53, 243, 17, 19, 179, 49, + 35, 132, 50, 52, 98, 82, 67, 209, 240, 82, 240, 82, + 240, 82, 240, 82, 0, 78, 96, 89, 33, 0, 43, 50, + 240, 240, 18, 240, 240, 17, 240, 240, 18, 240, 240, 18, + 240, 240, 18, 240, 240, 18, 240, 242, 240, 240, 18, 240, + 240, 18, 240, 240, 18, 240, 240, 17, 240, 240, 18, 240, + 240, 18, 240, 240, 18, 240, 47, 14, 240, 34, 240, 240, + 18, 240, 240, 18, 240, 242, 240, 240, 18, 240, 240, 18, + 240, 240, 17, 240, 240, 18, 240, 240, 18, 240, 240, 18, + 240, 240, 17, 240, 240, 18, 240, 240, 18, 0, 43, 112, + 21, 11, 0, 44, 51, 117, 101, 101, 116, 161, 145, 161, + 145, 161, 145, 145, 145, 145, 240, 240, 208, 10, 16, 0, + 50, 12, 76, 76, 0, 42, 64, 12, 9, 0, 36, 34, + 100, 69, 69, 83, 0, 14, 16, 102, 32, 240, 178, 240, + 242, 240, 226, 240, 242, 240, 226, 240, 242, 240, 226, 240, + 226, 240, 242, 240, 226, 240, 242, 240, 226, 240, 242, 240, + 226, 240, 242, 240, 226, 240, 226, 240, 242, 240, 226, 240, + 242, 240, 226, 240, 242, 240, 226, 240, 242, 240, 226, 240, + 226, 240, 242, 240, 226, 240, 242, 240, 226, 240, 242, 240, + 226, 240, 242, 240, 226, 240, 226, 240, 242, 240, 226, 240, + 242, 240, 226, 240, 242, 240, 226, 240, 242, 240, 226, 240, + 226, 240, 242, 240, 226, 240, 242, 240, 226, 240, 242, 240, + 240, 73, 24, 0, 16, 54, 240, 19, 51, 226, 99, 194, + 130, 179, 131, 162, 147, 147, 147, 146, 163, 131, 163, 131, + 163, 115, 164, 115, 164, 100, 164, 100, 163, 115, 179, 115, + 164, 100, 164, 100, 164, 99, 179, 115, 164, 115, 164, 100, + 163, 116, 163, 115, 164, 115, 163, 131, 163, 131, 147, 147, + 147, 147, 131, 178, 130, 195, 98, 227, 51, 240, 37, 0, + 34, 112, 68, 20, 0, 14, 49, 240, 50, 240, 34, 240, + 35, 240, 20, 215, 164, 35, 240, 35, 240, 35, 240, 20, + 240, 19, 240, 35, 240, 35, 240, 20, 240, 19, 240, 35, + 240, 35, 240, 20, 240, 19, 240, 35, 240, 35, 240, 35, + 240, 19, 240, 35, 240, 35, 240, 35, 240, 19, 240, 35, + 240, 35, 240, 35, 240, 20, 190, 0, 30, 96, 85, 26, + 0, 17, 101, 240, 66, 82, 240, 18, 114, 226, 131, 194, + 162, 193, 179, 161, 65, 115, 161, 65, 115, 145, 81, 115, + 145, 81, 115, 129, 97, 115, 129, 81, 115, 145, 81, 115, + 145, 65, 115, 161, 49, 131, 179, 131, 240, 115, 240, 114, + 240, 130, 240, 114, 240, 130, 240, 114, 240, 129, 240, 145, + 240, 145, 209, 161, 210, 145, 225, 146, 210, 149, 147, 130, + 52, 83, 145, 105, 146, 119, 161, 164, 0, 37, 16, 78, + 26, 0, 17, 102, 240, 50, 83, 226, 131, 194, 162, 193, + 179, 161, 195, 161, 49, 131, 145, 65, 131, 145, 65, 131, + 145, 65, 115, 161, 49, 131, 179, 131, 240, 130, 240, 130, + 240, 114, 240, 54, 240, 147, 240, 147, 240, 146, 240, 147, + 240, 131, 240, 131, 240, 131, 162, 179, 148, 148, 148, 147, + 163, 163, 161, 179, 177, 179, 193, 147, 209, 131, 242, 67, + 240, 54, 0, 37, 112, 90, 24, 0, 17, 34, 240, 99, + 240, 99, 240, 99, 240, 98, 240, 99, 240, 99, 240, 98, + 240, 99, 240, 99, 240, 98, 240, 99, 240, 98, 240, 114, + 240, 98, 240, 114, 240, 98, 240, 114, 240, 98, 240, 114, + 240, 98, 240, 98, 67, 241, 82, 242, 67, 226, 83, 210, + 99, 209, 99, 209, 115, 193, 131, 183, 51, 146, 103, 129, + 164, 50, 240, 23, 240, 35, 240, 83, 240, 99, 240, 99, + 240, 99, 240, 83, 240, 99, 240, 99, 0, 10, 48, 73, + 25, 0, 16, 82, 161, 196, 99, 203, 219, 232, 240, 33, + 240, 145, 240, 130, 240, 130, 240, 129, 240, 145, 240, 130, + 240, 130, 37, 240, 17, 18, 82, 227, 99, 209, 146, 240, + 131, 240, 115, 240, 115, 240, 115, 240, 115, 240, 100, 131, + 164, 116, 163, 132, 163, 131, 163, 145, 195, 145, 179, 162, + 162, 193, 146, 210, 114, 242, 67, 240, 38, 0, 36, 48, + 76, 25, 0, 17, 53, 240, 35, 81, 242, 99, 210, 100, + 194, 116, 178, 131, 179, 240, 99, 240, 115, 240, 99, 240, + 100, 240, 99, 53, 227, 33, 67, 180, 17, 98, 179, 17, + 115, 164, 146, 149, 147, 132, 163, 132, 148, 131, 164, 116, + 164, 116, 164, 116, 163, 131, 164, 131, 164, 131, 163, 147, + 163, 147, 147, 178, 146, 194, 130, 211, 98, 243, 51, 240, + 53, 0, 36, 48, 78, 26, 0, 16, 113, 52, 129, 130, + 22, 113, 145, 23, 98, 133, 66, 66, 147, 113, 51, 131, + 134, 146, 194, 146, 210, 146, 194, 161, 210, 145, 210, 240, + 146, 240, 131, 240, 130, 240, 131, 240, 130, 240, 131, 240, + 130, 240, 131, 240, 131, 240, 115, 240, 131, 240, 116, 240, + 115, 240, 131, 240, 116, 240, 116, 240, 115, 240, 116, 240, + 116, 240, 115, 240, 131, 240, 131, 0, 37, 112, 73, 25, + 0, 17, 22, 240, 35, 66, 242, 114, 210, 146, 178, 162, + 162, 178, 162, 178, 147, 178, 147, 162, 163, 162, 164, 130, + 181, 98, 214, 50, 231, 18, 240, 39, 240, 70, 240, 56, + 242, 54, 210, 86, 178, 118, 146, 149, 130, 180, 114, 211, + 114, 211, 98, 227, 98, 226, 114, 226, 114, 210, 130, 194, + 162, 163, 162, 146, 211, 83, 240, 22, 0, 36, 32, 76, + 25, 0, 17, 22, 240, 35, 66, 242, 99, 210, 130, 194, + 147, 163, 147, 147, 163, 147, 163, 132, 163, 131, 179, 116, + 164, 116, 164, 116, 164, 115, 164, 131, 164, 131, 149, 146, + 149, 146, 129, 20, 147, 98, 19, 179, 65, 36, 213, 51, + 240, 115, 240, 100, 240, 99, 240, 99, 240, 115, 162, 147, + 164, 130, 180, 114, 195, 114, 210, 114, 242, 67, 240, 38, + 0, 36, 64, 19, 13, 0, 26, 98, 164, 133, 133, 147, + 0, 18, 83, 164, 133, 132, 162, 0, 20, 96, 28, 15, + 0, 31, 2, 196, 165, 165, 179, 0, 21, 83, 181, 165, + 165, 179, 225, 225, 209, 225, 209, 225, 209, 209, 209, 0, + 7, 48, 40, 16, 0, 25, 3, 197, 181, 181, 195, 0, + 9, 65, 241, 226, 226, 226, 211, 210, 226, 211, 211, 211, + 210, 211, 211, 211, 196, 196, 195, 196, 196, 196, 181, 181, + 180, 196, 195, 240, 240, 240, 13, 35, 0, 87, 111, 14, + 0, 35, 79, 14, 0, 83, 112, 70, 21, 0, 33, 19, + 240, 36, 240, 21, 240, 21, 240, 35, 0, 12, 68, 240, + 17, 50, 225, 66, 210, 66, 209, 82, 240, 51, 240, 35, + 240, 35, 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, + 99, 115, 116, 99, 132, 83, 163, 82, 194, 67, 193, 82, + 194, 82, 193, 98, 177, 114, 162, 114, 161, 146, 114, 178, + 82, 214, 0, 6, 96, 70, 21, 0, 6, 38, 211, 66, + 178, 114, 146, 146, 114, 162, 113, 178, 97, 194, 82, 194, + 81, 195, 66, 194, 83, 163, 84, 131, 100, 115, 115, 100, + 240, 20, 240, 20, 240, 20, 240, 20, 240, 19, 240, 35, + 240, 35, 240, 50, 81, 210, 66, 210, 65, 226, 49, 240, + 20, 0, 12, 67, 240, 37, 240, 21, 240, 20, 240, 35, + 0, 33, 80, 126, 34, 0, 14, 103, 240, 147, 99, 240, + 82, 178, 240, 49, 241, 242, 240, 33, 210, 240, 50, 178, + 117, 129, 177, 99, 50, 113, 161, 98, 113, 113, 129, 83, + 130, 97, 114, 82, 163, 65, 113, 83, 163, 65, 97, 83, + 179, 65, 97, 83, 179, 65, 82, 67, 179, 81, 81, 83, + 179, 81, 81, 83, 179, 66, 81, 67, 195, 65, 81, 83, + 194, 81, 81, 83, 179, 81, 81, 83, 179, 66, 81, 83, + 179, 65, 97, 83, 164, 65, 97, 98, 163, 66, 97, 99, + 132, 65, 113, 114, 113, 19, 50, 129, 114, 66, 35, 34, + 145, 133, 100, 177, 240, 240, 49, 240, 240, 65, 240, 82, + 194, 243, 243, 148, 240, 105, 0, 53, 16, 97, 33, 0, + 11, 2, 240, 243, 240, 243, 240, 228, 240, 228, 240, 213, + 240, 213, 240, 194, 19, 240, 193, 35, 240, 178, 35, 240, + 162, 51, 240, 162, 51, 240, 146, 68, 240, 129, 84, 240, + 114, 84, 240, 113, 100, 240, 98, 100, 240, 97, 116, 240, + 82, 116, 240, 66, 132, 240, 66, 132, 240, 50, 148, 240, + 50, 163, 240, 47, 1, 240, 33, 195, 240, 18, 195, 240, + 17, 211, 242, 212, 210, 228, 209, 244, 194, 244, 193, 240, + 20, 178, 240, 20, 149, 244, 121, 155, 0, 50, 84, 35, + 0, 18, 63, 4, 240, 84, 163, 240, 51, 195, 240, 35, + 196, 240, 19, 212, 228, 212, 227, 228, 227, 228, 227, 212, + 228, 212, 227, 212, 243, 211, 240, 19, 195, 240, 20, 179, + 240, 35, 163, 240, 78, 240, 99, 164, 240, 36, 195, 240, + 19, 212, 243, 227, 243, 228, 212, 228, 211, 244, 211, 244, + 211, 244, 196, 228, 212, 228, 211, 228, 227, 227, 243, 212, + 228, 195, 240, 19, 180, 223, 4, 0, 54, 64, 105, 35, + 0, 15, 23, 113, 240, 51, 98, 66, 240, 19, 161, 35, + 227, 194, 19, 211, 228, 211, 244, 195, 240, 35, 179, 240, + 51, 164, 240, 50, 164, 240, 66, 163, 240, 82, 148, 240, + 82, 148, 240, 81, 148, 240, 97, 148, 240, 244, 240, 240, + 20, 240, 240, 20, 240, 245, 240, 245, 240, 244, 240, 240, + 20, 240, 240, 20, 240, 97, 148, 240, 82, 148, 240, 81, + 164, 240, 81, 179, 240, 65, 195, 240, 50, 196, 240, 33, + 227, 240, 17, 244, 225, 240, 35, 209, 240, 68, 146, 240, + 116, 82, 240, 183, 0, 50, 80, 106, 37, 0, 19, 79, + 4, 240, 116, 148, 240, 83, 195, 240, 67, 211, 240, 36, + 226, 240, 36, 227, 240, 19, 240, 18, 240, 19, 240, 19, + 228, 240, 19, 228, 240, 19, 227, 240, 35, 227, 240, 35, + 227, 240, 35, 212, 240, 35, 211, 240, 36, 211, 240, 36, + 211, 240, 35, 212, 240, 35, 212, 240, 35, 211, 240, 36, + 211, 240, 35, 212, 240, 35, 212, 240, 19, 227, 240, 35, + 227, 240, 19, 228, 240, 18, 244, 242, 240, 19, 243, 240, + 19, 227, 240, 20, 210, 240, 52, 179, 240, 68, 147, 240, + 31, 4, 0, 57, 96, 98, 36, 0, 19, 15, 9, 207, + 9, 240, 20, 181, 240, 19, 227, 244, 242, 244, 241, 240, + 19, 240, 17, 240, 19, 240, 17, 244, 240, 17, 244, 240, + 17, 243, 145, 113, 243, 145, 240, 116, 130, 240, 116, 130, + 240, 115, 130, 240, 141, 240, 116, 115, 240, 116, 130, 240, + 115, 145, 240, 131, 145, 240, 116, 130, 113, 228, 130, 113, + 227, 240, 34, 227, 240, 33, 228, 240, 33, 228, 240, 18, + 227, 240, 33, 243, 240, 18, 228, 242, 244, 227, 244, 212, + 228, 197, 191, 10, 0, 55, 48, 93, 35, 0, 18, 79, + 8, 207, 8, 240, 20, 180, 240, 19, 211, 244, 226, 244, + 226, 243, 242, 243, 242, 228, 241, 244, 241, 243, 240, 17, + 243, 145, 240, 100, 130, 240, 100, 129, 240, 115, 130, 240, + 115, 115, 240, 110, 240, 100, 99, 240, 115, 130, 240, 115, + 130, 240, 100, 130, 240, 100, 129, 240, 115, 145, 240, 115, + 240, 240, 20, 240, 240, 20, 240, 240, 19, 240, 240, 35, + 240, 240, 20, 240, 240, 20, 240, 240, 20, 240, 245, 240, + 189, 0, 55, 32, 104, 35, 0, 15, 23, 113, 240, 51, + 98, 66, 240, 19, 146, 35, 227, 194, 19, 211, 228, 211, + 244, 195, 240, 35, 179, 240, 51, 163, 240, 66, 164, 240, + 66, 163, 240, 82, 148, 240, 82, 132, 240, 97, 148, 240, + 97, 133, 240, 244, 240, 240, 20, 240, 240, 20, 240, 245, + 240, 244, 240, 240, 20, 240, 240, 20, 220, 100, 240, 52, + 148, 240, 52, 148, 240, 51, 164, 240, 51, 179, 240, 36, + 180, 240, 20, 180, 240, 19, 211, 244, 212, 228, 228, 197, + 244, 161, 34, 240, 52, 83, 65, 240, 87, 0, 50, 80, + 104, 41, 0, 21, 76, 92, 240, 20, 197, 240, 83, 227, + 240, 84, 212, 240, 84, 212, 240, 83, 227, 240, 99, 227, + 240, 84, 212, 240, 84, 212, 240, 84, 211, 240, 99, 227, + 240, 84, 212, 240, 84, 212, 240, 84, 211, 240, 99, 227, + 240, 95, 6, 240, 84, 212, 240, 83, 227, 240, 99, 227, + 240, 84, 212, 240, 84, 212, 240, 84, 212, 240, 83, 227, + 240, 99, 212, 240, 84, 212, 240, 84, 212, 240, 83, 227, + 240, 99, 212, 240, 84, 212, 240, 84, 212, 240, 83, 227, + 240, 84, 212, 240, 28, 92, 0, 63, 71, 24, 0, 13, + 12, 240, 20, 240, 83, 240, 84, 240, 84, 240, 83, 240, + 99, 240, 84, 240, 84, 240, 83, 240, 99, 240, 84, 240, + 84, 240, 83, 240, 99, 240, 84, 240, 84, 240, 84, 240, + 83, 240, 99, 240, 84, 240, 84, 240, 83, 240, 99, 240, + 84, 240, 84, 240, 83, 240, 99, 240, 84, 240, 84, 240, + 83, 240, 85, 252, 0, 37, 64, 75, 28, 0, 15, 76, + 240, 100, 240, 147, 240, 148, 240, 148, 240, 147, 240, 163, + 240, 148, 240, 148, 240, 147, 240, 163, 240, 163, 240, 148, + 240, 147, 240, 163, 240, 163, 240, 148, 240, 147, 240, 163, + 240, 163, 240, 148, 240, 148, 240, 147, 240, 163, 240, 148, + 240, 148, 227, 115, 228, 100, 228, 99, 243, 100, 241, 131, + 240, 18, 99, 240, 50, 67, 240, 101, 0, 41, 108, 41, + 0, 21, 76, 137, 240, 20, 229, 240, 51, 243, 240, 68, + 227, 240, 84, 210, 240, 116, 194, 240, 131, 194, 240, 147, + 178, 240, 148, 162, 240, 164, 130, 240, 195, 130, 240, 211, + 114, 240, 212, 98, 240, 228, 83, 240, 227, 84, 240, 227, + 65, 20, 240, 196, 34, 36, 240, 196, 18, 52, 240, 195, + 18, 84, 240, 181, 100, 240, 165, 116, 240, 164, 148, 240, + 147, 164, 240, 147, 179, 240, 132, 180, 240, 116, 180, 240, + 116, 195, 240, 115, 212, 240, 84, 212, 240, 84, 227, 240, + 84, 228, 240, 53, 214, 220, 138, 0, 62, 112, 72, 30, + 0, 16, 13, 240, 100, 240, 179, 240, 180, 240, 180, 240, + 180, 240, 179, 240, 195, 240, 180, 240, 180, 240, 179, 240, + 195, 240, 180, 240, 180, 240, 179, 240, 195, 240, 180, 240, + 180, 240, 179, 240, 195, 240, 180, 240, 180, 225, 179, 241, + 179, 226, 164, 225, 180, 210, 179, 225, 195, 210, 180, 210, + 180, 194, 196, 164, 180, 150, 127, 7, 0, 46, 168, 48, + 0, 25, 9, 240, 72, 240, 21, 240, 53, 240, 81, 19, + 240, 33, 19, 240, 97, 19, 240, 33, 19, 240, 82, 19, + 240, 17, 20, 240, 82, 19, 240, 17, 19, 240, 97, 35, + 241, 35, 240, 97, 35, 241, 35, 240, 82, 35, 225, 36, + 240, 82, 35, 209, 51, 240, 97, 51, 209, 51, 240, 97, + 52, 177, 67, 240, 97, 67, 177, 52, 240, 82, 67, 161, + 67, 240, 97, 83, 145, 83, 240, 97, 83, 145, 83, 240, + 97, 83, 129, 84, 240, 82, 83, 129, 83, 240, 98, 83, + 113, 99, 240, 97, 99, 113, 99, 240, 97, 99, 97, 115, + 240, 82, 100, 65, 115, 240, 98, 100, 65, 115, 240, 97, + 131, 49, 131, 240, 97, 131, 49, 131, 240, 82, 131, 33, + 132, 240, 82, 131, 17, 147, 240, 97, 147, 17, 147, 240, + 97, 148, 163, 240, 82, 148, 148, 240, 82, 147, 163, 240, + 84, 131, 163, 240, 26, 98, 108, 0, 73, 64, 129, 41, + 0, 21, 72, 186, 240, 20, 228, 240, 69, 210, 240, 86, + 210, 240, 82, 19, 210, 240, 81, 36, 193, 240, 97, 36, + 193, 240, 97, 51, 178, 240, 82, 52, 162, 240, 81, 83, + 161, 240, 97, 83, 161, 240, 97, 84, 130, 240, 82, 99, + 130, 240, 82, 99, 129, 240, 97, 116, 113, 240, 97, 131, + 113, 240, 82, 131, 98, 240, 82, 132, 81, 240, 97, 163, + 81, 240, 97, 163, 81, 240, 82, 164, 50, 240, 82, 179, + 49, 240, 97, 195, 49, 240, 97, 196, 33, 240, 82, 211, + 18, 240, 82, 211, 17, 240, 97, 229, 240, 97, 244, 240, + 82, 244, 240, 82, 243, 240, 98, 240, 18, 240, 83, 240, + 18, 240, 26, 210, 0, 63, 64, 104, 34, 0, 14, 103, + 240, 147, 84, 240, 83, 147, 240, 51, 179, 240, 19, 211, + 227, 227, 211, 244, 179, 240, 35, 163, 240, 52, 132, 240, + 52, 131, 240, 68, 116, 240, 68, 115, 240, 84, 100, 240, + 84, 100, 240, 84, 84, 240, 100, 84, 240, 85, 84, 240, + 84, 85, 240, 84, 85, 240, 84, 84, 240, 84, 100, 240, + 84, 100, 240, 69, 100, 240, 68, 116, 240, 52, 132, 240, + 52, 132, 240, 36, 163, 240, 35, 180, 243, 211, 227, 227, + 211, 240, 19, 179, 240, 51, 147, 240, 84, 83, 240, 151, + 0, 49, 32, 92, 35, 0, 18, 79, 3, 240, 84, 148, + 240, 52, 179, 240, 35, 211, 240, 19, 212, 243, 212, 228, + 212, 227, 228, 227, 228, 227, 212, 228, 212, 228, 211, 243, + 212, 243, 196, 244, 179, 240, 36, 148, 240, 62, 240, 99, + 240, 240, 20, 240, 240, 20, 240, 240, 19, 240, 240, 35, + 240, 240, 20, 240, 240, 20, 240, 240, 19, 240, 240, 35, + 240, 240, 20, 240, 240, 20, 240, 240, 19, 240, 240, 35, + 240, 240, 35, 240, 240, 20, 240, 204, 0, 55, 48, 135, + 34, 0, 14, 103, 240, 147, 84, 240, 83, 147, 240, 51, + 179, 240, 19, 211, 227, 227, 211, 244, 179, 240, 35, 164, + 240, 36, 132, 240, 52, 131, 240, 68, 116, 240, 68, 116, + 240, 68, 100, 240, 84, 100, 240, 84, 85, 240, 84, 84, + 240, 85, 84, 240, 84, 85, 240, 84, 85, 240, 84, 84, + 240, 84, 100, 240, 84, 100, 240, 84, 100, 240, 68, 116, + 240, 67, 132, 240, 52, 132, 240, 51, 163, 115, 115, 180, + 81, 49, 84, 195, 65, 81, 52, 211, 49, 97, 50, 240, + 19, 33, 97, 19, 240, 51, 17, 100, 240, 84, 83, 240, + 151, 17, 129, 240, 130, 129, 240, 130, 113, 240, 147, 82, + 240, 147, 67, 240, 153, 240, 168, 240, 198, 240, 228, 0, + 14, 64, 95, 34, 0, 18, 15, 2, 240, 84, 132, 240, + 52, 163, 240, 35, 195, 240, 19, 196, 243, 196, 228, 196, + 227, 212, 227, 212, 227, 197, 212, 196, 228, 195, 243, 196, + 243, 179, 240, 20, 163, 240, 36, 131, 240, 77, 240, 99, + 131, 240, 68, 147, 240, 52, 162, 240, 51, 179, 240, 35, + 179, 240, 20, 179, 240, 20, 179, 240, 19, 195, 240, 19, + 180, 244, 180, 244, 180, 243, 196, 81, 147, 196, 66, 132, + 196, 65, 148, 196, 50, 92, 147, 49, 240, 213, 0, 47, + 80, 81, 30, 0, 13, 5, 82, 240, 18, 82, 49, 242, + 130, 18, 226, 164, 211, 164, 210, 194, 211, 194, 210, 210, + 195, 210, 195, 209, 211, 209, 211, 209, 212, 240, 181, 240, + 182, 240, 153, 240, 122, 240, 106, 240, 136, 240, 166, 240, + 180, 240, 180, 240, 195, 193, 227, 178, 227, 178, 227, 178, + 226, 194, 226, 179, 211, 179, 210, 195, 194, 212, 162, 211, + 18, 130, 226, 51, 82, 241, 102, 0, 43, 48, 83, 34, + 0, 17, 79, 11, 127, 12, 116, 131, 132, 114, 148, 147, + 98, 164, 161, 114, 163, 177, 113, 179, 177, 98, 164, 177, + 98, 164, 162, 97, 180, 162, 82, 179, 177, 240, 52, 240, + 244, 240, 244, 240, 243, 240, 244, 240, 244, 240, 244, 240, + 243, 240, 244, 240, 244, 240, 244, 240, 243, 240, 244, 240, + 244, 240, 244, 240, 243, 240, 244, 240, 244, 240, 244, 240, + 243, 240, 244, 240, 159, 1, 0, 53, 16, 91, 34, 0, + 17, 28, 122, 148, 228, 195, 240, 18, 211, 240, 17, 212, + 242, 212, 241, 227, 240, 17, 227, 240, 17, 212, 242, 212, + 241, 227, 240, 17, 227, 240, 17, 227, 242, 212, 242, 212, + 241, 227, 240, 17, 227, 240, 17, 212, 242, 212, 241, 227, + 240, 17, 227, 240, 17, 212, 242, 212, 241, 227, 240, 17, + 227, 242, 227, 241, 243, 226, 243, 225, 240, 19, 209, 240, + 50, 194, 240, 51, 162, 240, 83, 129, 240, 131, 82, 240, + 182, 0, 49, 80, 103, 35, 0, 17, 75, 185, 117, 240, + 21, 148, 240, 50, 195, 240, 34, 211, 240, 33, 227, 240, + 18, 227, 240, 17, 244, 226, 244, 210, 240, 20, 209, 240, + 36, 194, 240, 36, 193, 240, 52, 178, 240, 52, 162, 240, + 83, 161, 240, 99, 146, 240, 99, 145, 240, 116, 114, 240, + 116, 113, 240, 132, 97, 240, 148, 82, 240, 148, 81, 240, + 164, 66, 240, 164, 65, 240, 195, 49, 240, 211, 34, 240, + 211, 33, 240, 230, 240, 229, 240, 244, 240, 240, 20, 240, + 240, 19, 240, 240, 35, 240, 240, 34, 0, 51, 64, 142, + 47, 0, 23, 75, 91, 121, 116, 197, 197, 148, 196, 226, + 180, 196, 225, 196, 196, 210, 196, 196, 209, 212, 196, 194, + 212, 181, 193, 228, 177, 19, 178, 228, 162, 19, 177, 244, + 161, 35, 162, 244, 146, 35, 146, 240, 20, 145, 51, 145, + 240, 36, 130, 51, 130, 240, 51, 129, 67, 129, 240, 67, + 114, 67, 114, 240, 67, 113, 83, 113, 240, 83, 97, 100, + 82, 240, 83, 97, 100, 81, 240, 99, 81, 116, 66, 240, + 99, 66, 116, 65, 240, 115, 65, 132, 50, 240, 115, 50, + 132, 49, 240, 132, 33, 148, 34, 240, 132, 18, 148, 33, + 240, 148, 17, 164, 18, 240, 150, 164, 17, 240, 165, 181, + 240, 181, 181, 240, 180, 196, 240, 196, 196, 240, 195, 211, + 240, 210, 242, 240, 210, 241, 0, 67, 96, 111, 41, 0, + 21, 91, 122, 240, 21, 196, 240, 100, 194, 240, 132, 193, + 240, 164, 161, 240, 180, 146, 240, 180, 130, 240, 212, 98, + 240, 228, 97, 240, 244, 81, 240, 240, 36, 49, 240, 240, + 52, 34, 240, 240, 52, 18, 240, 240, 85, 240, 240, 100, + 240, 240, 131, 240, 240, 132, 240, 240, 101, 240, 240, 82, + 20, 240, 240, 50, 36, 240, 240, 49, 52, 240, 240, 33, + 84, 240, 241, 100, 240, 226, 100, 240, 210, 132, 240, 178, + 148, 240, 177, 164, 240, 161, 196, 240, 129, 212, 240, 114, + 213, 240, 82, 244, 240, 52, 229, 234, 171, 0, 62, 96, + 100, 35, 0, 17, 75, 200, 117, 240, 21, 164, 240, 19, + 196, 240, 18, 212, 242, 244, 210, 240, 20, 209, 240, 36, + 193, 240, 52, 178, 240, 68, 146, 240, 84, 130, 240, 100, + 129, 240, 132, 97, 240, 148, 82, 240, 148, 66, 240, 180, + 34, 240, 196, 33, 240, 212, 17, 240, 245, 240, 244, 240, + 240, 19, 240, 240, 35, 240, 240, 20, 240, 240, 20, 240, + 240, 19, 240, 240, 35, 240, 240, 20, 240, 240, 20, 240, + 240, 19, 240, 240, 35, 240, 240, 20, 240, 240, 20, 240, + 204, 0, 55, 16, 79, 33, 0, 17, 95, 5, 198, 180, + 196, 196, 211, 196, 226, 196, 226, 196, 242, 180, 240, 17, + 196, 242, 180, 240, 17, 180, 240, 212, 240, 212, 240, 227, + 240, 228, 240, 212, 240, 212, 240, 212, 240, 212, 240, 227, + 240, 228, 240, 212, 161, 240, 36, 177, 240, 20, 178, 240, + 19, 193, 240, 19, 209, 244, 194, 228, 210, 212, 210, 212, + 211, 211, 212, 195, 182, 207, 6, 207, 6, 0, 51, 101, + 22, 240, 240, 70, 240, 17, 240, 97, 240, 82, 240, 82, + 240, 82, 240, 81, 240, 82, 240, 82, 240, 82, 240, 81, + 240, 82, 240, 82, 240, 82, 240, 81, 240, 82, 240, 82, + 240, 82, 240, 81, 240, 82, 240, 82, 240, 82, 240, 81, + 240, 82, 240, 82, 240, 82, 240, 81, 240, 82, 240, 82, + 240, 82, 240, 81, 240, 82, 240, 82, 240, 82, 240, 82, + 240, 66, 240, 82, 240, 82, 240, 82, 240, 66, 240, 82, + 240, 82, 240, 82, 240, 66, 240, 82, 240, 82, 240, 82, + 240, 70, 240, 16, 35, 20, 0, 8, 33, 129, 145, 129, + 145, 129, 145, 129, 145, 129, 161, 129, 145, 129, 161, 129, + 145, 129, 164, 84, 117, 69, 101, 69, 101, 69, 115, 99, + 0, 80, 112, 101, 22, 240, 240, 70, 240, 82, 240, 66, + 240, 82, 240, 82, 240, 82, 240, 81, 240, 82, 240, 82, + 240, 82, 240, 81, 240, 82, 240, 82, 240, 82, 240, 81, + 240, 82, 240, 82, 240, 82, 240, 81, 240, 82, 240, 82, + 240, 82, 240, 81, 240, 82, 240, 82, 240, 82, 240, 81, + 240, 82, 240, 82, 240, 82, 240, 81, 240, 82, 240, 82, + 240, 82, 240, 81, 240, 97, 240, 82, 240, 82, 240, 81, + 240, 97, 240, 82, 240, 82, 240, 81, 240, 97, 240, 82, + 240, 82, 240, 81, 240, 22, 240, 16, 19, 16, 0, 8, + 113, 227, 179, 18, 146, 50, 130, 82, 98, 114, 65, 161, + 0, 76, 64, 12, 9, 0, 5, 99, 85, 69, 69, 83, + 0, 44, 64, 21, 11, 240, 240, 145, 145, 145, 145, 145, + 161, 145, 161, 145, 164, 117, 101, 101, 115, 0, 44, 112, + 62, 24, 0, 46, 5, 240, 50, 50, 19, 179, 81, 19, + 163, 100, 178, 131, 163, 131, 147, 147, 147, 131, 148, 131, + 147, 147, 147, 147, 132, 146, 148, 131, 147, 147, 147, 147, + 65, 67, 146, 66, 67, 131, 65, 83, 131, 65, 98, 116, + 50, 99, 81, 19, 49, 130, 50, 50, 34, 149, 84, 0, + 36, 112, 73, 21, 0, 10, 104, 240, 35, 240, 51, 240, + 51, 240, 36, 240, 35, 240, 51, 240, 51, 240, 35, 240, + 51, 240, 51, 240, 36, 37, 163, 33, 66, 149, 83, 132, + 114, 116, 131, 100, 131, 99, 147, 99, 147, 84, 147, 83, + 148, 83, 148, 68, 147, 84, 147, 83, 148, 83, 147, 99, + 147, 99, 131, 115, 130, 146, 115, 147, 83, 179, 50, 244, + 0, 33, 16, 49, 21, 0, 40, 69, 227, 66, 178, 114, + 146, 115, 130, 116, 115, 116, 99, 131, 115, 240, 36, 240, + 35, 240, 51, 240, 36, 240, 35, 240, 51, 240, 51, 240, + 51, 240, 51, 194, 82, 178, 98, 162, 130, 130, 147, 82, + 214, 0, 32, 112, 83, 25, 0, 14, 39, 240, 100, 240, + 115, 240, 99, 240, 115, 240, 115, 240, 114, 240, 115, 240, + 115, 240, 115, 240, 114, 245, 35, 226, 50, 19, 195, 81, + 19, 179, 100, 194, 131, 179, 131, 163, 147, 163, 131, 164, + 131, 163, 147, 163, 147, 148, 146, 164, 131, 163, 147, 163, + 147, 65, 83, 146, 66, 83, 131, 65, 99, 131, 65, 114, + 116, 50, 115, 81, 19, 49, 146, 50, 50, 34, 165, 84, + 0, 38, 64, 48, 21, 0, 40, 69, 227, 66, 163, 114, + 131, 130, 115, 146, 115, 146, 99, 162, 84, 146, 100, 130, + 115, 100, 123, 164, 240, 35, 240, 51, 240, 51, 240, 51, + 240, 51, 209, 82, 194, 82, 178, 114, 130, 147, 83, 198, + 0, 32, 112, 103, 27, 0, 12, 36, 240, 114, 50, 240, + 66, 51, 240, 51, 36, 240, 50, 51, 240, 51, 240, 147, + 240, 147, 240, 147, 240, 146, 240, 147, 240, 147, 240, 147, + 240, 91, 240, 67, 240, 147, 240, 147, 240, 147, 240, 147, + 240, 146, 240, 147, 240, 147, 240, 147, 240, 147, 240, 146, + 240, 147, 240, 147, 240, 147, 240, 147, 240, 147, 240, 146, + 240, 147, 240, 147, 240, 147, 240, 147, 240, 146, 240, 147, + 240, 147, 240, 51, 50, 240, 52, 50, 240, 52, 34, 240, + 67, 50, 240, 81, 50, 240, 116, 0, 9, 48, 74, 25, + 0, 48, 37, 240, 66, 50, 18, 211, 81, 19, 179, 100, + 179, 131, 179, 131, 163, 147, 163, 131, 164, 131, 163, 147, + 163, 147, 148, 131, 164, 131, 163, 147, 163, 147, 163, 146, + 179, 131, 179, 131, 194, 116, 195, 84, 226, 50, 19, 245, + 35, 240, 115, 240, 115, 240, 99, 240, 115, 179, 131, 179, + 115, 180, 114, 195, 114, 226, 83, 240, 23, 0, 8, 32, + 82, 25, 0, 13, 7, 240, 99, 240, 115, 240, 115, 240, + 115, 240, 99, 240, 115, 240, 115, 240, 115, 240, 99, 240, + 115, 240, 115, 53, 227, 18, 51, 195, 18, 83, 181, 99, + 180, 115, 179, 131, 164, 131, 163, 147, 163, 132, 163, 131, + 163, 147, 163, 147, 163, 132, 163, 131, 163, 147, 65, 83, + 147, 65, 83, 132, 50, 83, 131, 65, 83, 147, 50, 83, + 147, 49, 99, 162, 33, 114, 180, 0, 38, 64, 48, 16, + 0, 11, 19, 196, 196, 195, 0, 13, 20, 178, 34, 145, + 67, 114, 67, 113, 83, 113, 68, 98, 67, 113, 83, 196, + 195, 196, 196, 195, 196, 195, 81, 115, 66, 100, 66, 99, + 81, 115, 66, 115, 65, 146, 49, 180, 0, 25, 81, 23, + 0, 16, 50, 240, 84, 240, 68, 240, 67, 0, 19, 36, + 240, 34, 50, 240, 17, 67, 225, 83, 210, 83, 209, 99, + 194, 84, 193, 100, 240, 67, 240, 83, 240, 83, 240, 68, + 240, 67, 240, 83, 240, 83, 240, 68, 240, 67, 240, 83, + 240, 83, 240, 68, 240, 67, 240, 83, 240, 83, 240, 83, + 240, 68, 240, 67, 195, 83, 180, 67, 196, 67, 195, 67, + 210, 66, 240, 37, 0, 7, 96, 87, 24, 0, 12, 70, + 240, 99, 240, 99, 240, 99, 240, 99, 240, 98, 240, 99, + 240, 99, 240, 99, 240, 98, 240, 99, 240, 99, 116, 163, + 82, 50, 146, 82, 51, 131, 66, 52, 131, 65, 68, 131, + 49, 83, 147, 33, 240, 35, 33, 240, 51, 18, 240, 53, + 240, 70, 240, 35, 51, 243, 67, 227, 83, 210, 99, 195, + 99, 66, 99, 99, 66, 99, 98, 81, 114, 114, 66, 99, + 114, 65, 115, 130, 34, 114, 163, 0, 37, 16, 46, 14, + 0, 7, 55, 179, 179, 163, 179, 179, 179, 163, 179, 179, + 179, 163, 179, 179, 179, 163, 179, 179, 179, 163, 179, 179, + 164, 163, 179, 179, 65, 84, 50, 83, 66, 83, 65, 99, + 65, 99, 49, 130, 34, 148, 0, 22, 91, 40, 0, 75, + 52, 101, 118, 178, 34, 50, 66, 66, 67, 161, 50, 34, + 83, 34, 99, 129, 69, 114, 18, 115, 129, 68, 132, 131, + 114, 67, 147, 147, 114, 52, 132, 147, 113, 67, 147, 163, + 195, 147, 147, 211, 147, 147, 195, 147, 163, 195, 147, 148, + 195, 147, 147, 211, 147, 147, 195, 147, 148, 65, 115, 147, + 147, 81, 115, 147, 132, 66, 115, 147, 131, 81, 115, 147, + 147, 66, 115, 147, 147, 65, 131, 147, 162, 49, 146, 162, + 196, 0, 61, 66, 28, 0, 52, 116, 102, 178, 34, 50, + 67, 161, 50, 34, 99, 129, 69, 115, 129, 68, 131, 114, + 67, 147, 114, 52, 147, 113, 67, 163, 195, 147, 211, 147, + 195, 163, 195, 148, 195, 147, 211, 147, 195, 148, 65, 115, + 147, 81, 115, 132, 66, 115, 131, 81, 115, 147, 66, 115, + 147, 65, 131, 162, 49, 146, 196, 0, 43, 49, 23, 0, + 44, 53, 243, 67, 195, 98, 178, 146, 147, 146, 131, 163, + 99, 179, 99, 179, 84, 179, 83, 195, 83, 180, 68, 180, + 67, 195, 83, 180, 83, 179, 99, 179, 99, 163, 130, 147, + 146, 146, 178, 114, 210, 67, 246, 0, 36, 16, 81, 27, + 0, 51, 52, 85, 194, 34, 50, 50, 177, 51, 17, 83, + 146, 52, 114, 145, 67, 131, 129, 67, 131, 114, 66, 147, + 113, 67, 147, 195, 147, 195, 132, 194, 148, 179, 147, 195, + 147, 195, 132, 194, 147, 195, 147, 195, 131, 211, 130, 227, + 115, 211, 17, 83, 227, 18, 50, 240, 19, 37, 240, 35, + 240, 131, 240, 147, 240, 147, 240, 147, 240, 131, 240, 147, + 240, 147, 240, 105, 0, 12, 48, 72, 22, 0, 42, 37, + 65, 178, 50, 34, 147, 81, 19, 131, 100, 146, 131, 131, + 131, 115, 147, 115, 131, 116, 131, 115, 147, 115, 147, 100, + 146, 116, 131, 115, 147, 115, 147, 115, 146, 131, 131, 131, + 131, 146, 116, 147, 81, 19, 162, 50, 19, 197, 35, 240, + 67, 240, 67, 240, 51, 240, 67, 240, 67, 240, 67, 240, + 51, 240, 67, 251, 0, 9, 16, 59, 22, 0, 41, 83, + 100, 129, 34, 50, 66, 82, 50, 18, 82, 81, 66, 17, + 83, 66, 67, 99, 66, 52, 98, 81, 67, 225, 67, 240, + 66, 240, 67, 240, 67, 240, 67, 240, 66, 240, 67, 240, + 67, 240, 67, 240, 66, 240, 67, 240, 67, 240, 67, 240, + 66, 240, 82, 0, 35, 32, 44, 19, 0, 36, 85, 210, + 50, 177, 98, 146, 113, 145, 99, 130, 99, 130, 99, 131, + 240, 20, 247, 216, 199, 245, 240, 19, 240, 34, 99, 130, + 84, 130, 84, 129, 99, 130, 98, 130, 130, 98, 182, 0, + 29, 96, 44, 17, 0, 15, 114, 227, 227, 227, 227, 211, + 227, 227, 226, 157, 147, 227, 211, 227, 227, 227, 211, 227, + 227, 212, 211, 227, 227, 97, 100, 97, 99, 98, 99, 97, + 115, 82, 115, 66, 146, 50, 180, 0, 26, 96, 66, 27, + 0, 51, 20, 240, 113, 50, 147, 129, 67, 131, 114, 67, + 130, 129, 83, 115, 114, 68, 115, 113, 83, 131, 113, 68, + 115, 211, 131, 211, 131, 196, 131, 195, 131, 211, 131, 196, + 131, 195, 147, 65, 115, 131, 66, 115, 131, 65, 131, 131, + 65, 131, 116, 50, 147, 100, 49, 163, 66, 34, 34, 197, + 84, 0, 41, 48, 58, 23, 0, 43, 84, 130, 129, 50, + 100, 97, 67, 84, 82, 67, 99, 81, 83, 99, 66, 68, + 114, 65, 83, 130, 65, 68, 129, 163, 145, 163, 145, 148, + 130, 147, 146, 147, 145, 148, 145, 147, 146, 147, 145, 163, + 130, 163, 129, 179, 114, 195, 97, 227, 50, 240, 22, 0, + 35, 112, 82, 33, 0, 62, 52, 240, 50, 129, 50, 146, + 84, 97, 67, 115, 84, 81, 83, 115, 99, 81, 83, 115, + 99, 66, 68, 99, 130, 65, 83, 115, 130, 65, 68, 115, + 129, 163, 131, 129, 163, 115, 145, 148, 115, 130, 147, 131, + 129, 163, 131, 129, 148, 115, 145, 147, 131, 130, 147, 131, + 129, 163, 131, 129, 163, 131, 113, 179, 116, 113, 195, 97, + 19, 81, 227, 50, 35, 65, 240, 37, 85, 0, 50, 112, + 64, 26, 0, 49, 84, 100, 177, 51, 34, 50, 145, 82, + 33, 66, 129, 100, 67, 114, 100, 67, 113, 116, 66, 114, + 115, 225, 131, 225, 131, 240, 115, 240, 131, 240, 131, 240, + 131, 240, 115, 240, 131, 240, 131, 114, 227, 113, 115, 68, + 98, 100, 68, 97, 116, 53, 81, 130, 66, 34, 65, 181, + 69, 0, 40, 32, 78, 25, 0, 47, 52, 240, 81, 50, + 147, 97, 67, 131, 82, 67, 115, 97, 83, 115, 82, 68, + 115, 81, 83, 131, 81, 68, 115, 179, 131, 179, 131, 164, + 131, 163, 131, 179, 131, 164, 131, 163, 147, 163, 131, 179, + 131, 179, 131, 179, 116, 195, 84, 211, 69, 245, 35, 240, + 115, 240, 99, 179, 131, 179, 130, 180, 115, 179, 115, 209, + 130, 225, 114, 242, 67, 240, 53, 0, 8, 48, 55, 23, + 0, 44, 19, 113, 166, 81, 167, 66, 162, 66, 49, 162, + 100, 177, 146, 240, 82, 240, 82, 240, 97, 240, 97, 240, + 97, 240, 97, 240, 97, 240, 97, 240, 97, 240, 97, 161, + 161, 162, 146, 162, 148, 114, 146, 35, 66, 146, 72, 130, + 102, 145, 131, 0, 33, 9, 26, 0, 78, 15, 7, 0, + 78, 64, 14, 47, 0, 127, 0, 14, 15, 15, 13, 0, + 127, 0, 14, 64, 25, 18, 0, 7, 50, 82, 131, 67, + 115, 67, 131, 67, 115, 67, 130, 82, 130, 82, 130, 82, + 145, 97, 0, 84, 64, 15, 19, 0, 12, 51, 113, 117, + 81, 98, 51, 34, 97, 115, 0, 96, +}; + +//***************************************************************************** +// +// The font definition for the 48 point Cm italic font. +// +//***************************************************************************** +const tFont g_sFontCm48i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 43, + + // + // The height of the font. + // + 49, + + // + // The baseline of the font. + // + 37, + + // + // The offset to each character in the font. + // + { + 0, 5, 45, 80, 214, 303, 448, 571, + 592, 694, 795, 847, 936, 957, 967, 979, + 1081, 1154, 1222, 1307, 1385, 1475, 1548, 1624, + 1702, 1775, 1851, 1870, 1898, 1938, 1951, 2021, + 2091, 2217, 2314, 2398, 2503, 2609, 2707, 2800, + 2904, 3008, 3079, 3154, 3262, 3334, 3502, 3631, + 3735, 3827, 3962, 4057, 4138, 4221, 4312, 4415, + 4557, 4668, 4768, 4847, 4948, 4983, 5084, 5103, + 5115, 5136, 5198, 5271, 5320, 5403, 5451, 5554, + 5628, 5710, 5758, 5839, 5926, 5972, 6063, 6129, + 6178, 6259, 6331, 6390, 6434, 6478, 6544, 6602, + 6684, 6748, 6826, 6881, 6890, 6904, 6929, + }, + + // + // A pointer to the actual font data + // + g_pui8Cm48iData +}; diff --git a/grlib/fonts/fontcmsc12.c b/grlib/fonts/fontcmsc12.c new file mode 100644 index 0000000..cf9ee7c --- /dev/null +++ b/grlib/fonts/fontcmsc12.c @@ -0,0 +1,226 @@ +//***************************************************************************** +// +// fontcmsc12.c - Font definition for the 12pt Cmsc font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmsc +// Size: 12 point +// Bold: no +// Italic: no +// Memory usage: 1636 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 12 point Cmsc font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmsc12Data[1434] = +{ + 5, 5, 0, 8, 16, 11, 2, 33, 17, 17, 17, 17, + 17, 17, 49, 112, 9, 5, 164, 33, 17, 17, 240, 240, + 224, 22, 10, 240, 145, 33, 81, 33, 97, 33, 57, 49, + 33, 73, 49, 33, 81, 33, 97, 33, 97, 33, 240, 21, + 6, 129, 68, 17, 17, 17, 17, 17, 67, 65, 17, 17, + 17, 17, 17, 17, 17, 35, 65, 240, 33, 11, 18, 65, + 49, 17, 50, 49, 36, 65, 33, 17, 81, 33, 17, 98, + 17, 19, 98, 34, 65, 17, 49, 49, 33, 49, 49, 33, + 34, 33, 67, 240, 144, 23, 10, 194, 113, 33, 97, 18, + 99, 35, 49, 49, 51, 33, 65, 34, 81, 49, 49, 35, + 19, 240, 240, 32, 7, 3, 98, 33, 17, 240, 176, 15, + 4, 33, 33, 49, 33, 49, 49, 49, 49, 49, 49, 65, + 49, 65, 16, 4, 1, 65, 49, 65, 49, 49, 49, 49, + 49, 49, 33, 49, 33, 48, 13, 6, 33, 49, 17, 17, + 35, 65, 53, 49, 240, 240, 240, 14, 10, 240, 145, 145, + 145, 145, 89, 81, 145, 145, 145, 240, 160, 7, 3, 240, + 194, 33, 17, 80, 6, 4, 240, 211, 240, 96, 5, 2, + 240, 49, 112, 16, 6, 65, 81, 65, 81, 65, 81, 81, + 65, 81, 81, 65, 81, 81, 80, 18, 6, 211, 33, 49, + 17, 49, 17, 49, 17, 49, 17, 49, 17, 49, 35, 240, + 80, 12, 6, 195, 81, 81, 81, 81, 81, 81, 53, 240, + 64, 14, 6, 211, 33, 49, 17, 49, 81, 65, 65, 50, + 69, 240, 64, 14, 6, 211, 33, 49, 81, 35, 82, 81, + 17, 49, 35, 240, 80, 16, 7, 240, 49, 82, 65, 17, + 49, 33, 33, 49, 53, 81, 83, 240, 112, 15, 6, 209, + 33, 35, 51, 49, 33, 81, 81, 18, 33, 35, 240, 80, + 18, 6, 227, 33, 33, 17, 18, 34, 33, 17, 49, 17, + 49, 17, 49, 35, 240, 80, 12, 6, 197, 65, 65, 65, + 81, 81, 81, 81, 240, 112, 17, 7, 244, 33, 65, 17, + 65, 36, 49, 19, 17, 65, 17, 65, 36, 240, 128, 16, + 6, 211, 33, 49, 17, 49, 17, 49, 36, 81, 17, 33, + 35, 240, 96, 5, 2, 161, 113, 112, 7, 3, 242, 162, + 33, 17, 80, 13, 9, 240, 240, 65, 83, 66, 82, 130, + 146, 147, 240, 208, 9, 9, 240, 240, 248, 168, 0, 5, + 96, 13, 9, 240, 194, 146, 146, 146, 83, 66, 82, 240, + 240, 64, 12, 5, 179, 17, 33, 65, 49, 65, 65, 130, + 240, 32, 22, 10, 240, 117, 68, 18, 35, 34, 17, 18, + 65, 17, 19, 49, 17, 24, 49, 97, 54, 240, 240, 32, + 19, 9, 240, 98, 97, 17, 97, 17, 81, 49, 84, 65, + 49, 65, 65, 34, 51, 240, 208, 18, 8, 240, 22, 49, + 65, 33, 65, 37, 49, 50, 33, 65, 33, 65, 22, 240, + 176, 18, 9, 240, 84, 17, 33, 66, 17, 97, 17, 129, + 129, 97, 33, 65, 68, 240, 240, 19, 9, 240, 54, 65, + 65, 49, 81, 33, 81, 33, 81, 33, 81, 33, 65, 38, + 240, 240, 17, 9, 240, 56, 33, 81, 33, 49, 69, 65, + 49, 65, 129, 81, 24, 240, 208, 16, 8, 240, 23, 33, + 65, 33, 33, 68, 65, 33, 65, 113, 99, 240, 224, 17, + 9, 240, 83, 81, 50, 33, 129, 129, 67, 17, 81, 49, + 65, 68, 240, 240, 20, 9, 240, 51, 35, 33, 65, 49, + 65, 54, 49, 65, 49, 65, 49, 65, 35, 35, 240, 208, + 11, 4, 131, 33, 49, 49, 49, 49, 49, 35, 208, 13, + 6, 212, 65, 81, 81, 81, 81, 33, 33, 35, 240, 96, + 21, 9, 240, 51, 50, 33, 65, 49, 34, 65, 17, 98, + 17, 81, 49, 65, 65, 35, 35, 240, 208, 13, 7, 228, + 65, 97, 97, 97, 97, 97, 49, 22, 240, 112, 30, 11, + 240, 115, 82, 34, 66, 49, 17, 33, 17, 49, 17, 33, + 17, 49, 18, 17, 17, 49, 34, 33, 49, 34, 33, 35, + 67, 240, 240, 64, 25, 10, 240, 83, 51, 35, 49, 49, + 18, 33, 49, 33, 33, 49, 49, 17, 49, 51, 49, 66, + 35, 65, 240, 240, 32, 19, 9, 240, 84, 65, 65, 33, + 97, 17, 97, 17, 97, 17, 97, 33, 65, 68, 240, 240, + 15, 8, 240, 22, 49, 65, 33, 65, 37, 49, 113, 113, + 99, 240, 224, 22, 9, 240, 84, 65, 65, 33, 97, 17, + 97, 17, 97, 18, 18, 33, 35, 18, 68, 129, 17, 114, + 160, 21, 10, 240, 85, 97, 49, 81, 49, 84, 97, 33, + 97, 34, 81, 34, 33, 19, 35, 240, 240, 32, 16, 6, + 210, 17, 17, 34, 17, 49, 19, 98, 81, 17, 49, 20, + 240, 80, 15, 9, 240, 71, 17, 49, 33, 81, 129, 129, + 129, 129, 101, 240, 224, 21, 10, 240, 83, 51, 33, 81, + 49, 81, 49, 81, 49, 81, 49, 81, 50, 50, 68, 240, + 240, 64, 19, 10, 240, 84, 50, 49, 65, 65, 49, 97, + 33, 97, 33, 99, 130, 129, 240, 240, 80, 30, 14, 240, + 212, 19, 35, 49, 49, 65, 65, 33, 17, 33, 81, 33, + 17, 33, 97, 17, 17, 17, 114, 50, 114, 50, 129, 49, + 0, 5, 112, 21, 10, 240, 99, 35, 49, 49, 97, 17, + 129, 129, 17, 97, 49, 81, 50, 35, 51, 240, 240, 16, + 18, 10, 240, 83, 51, 34, 65, 65, 49, 97, 17, 129, + 145, 145, 131, 240, 240, 64, 14, 7, 230, 17, 49, 97, + 81, 81, 81, 81, 65, 22, 240, 112, 15, 3, 2, 17, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 11, + 6, 209, 33, 17, 33, 34, 18, 0, 6, 16, 15, 3, + 2, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 18, 8, 4, 145, 33, 17, 240, 240, 112, 5, 2, 65, + 240, 96, 7, 3, 113, 17, 34, 240, 160, 15, 7, 240, + 242, 65, 17, 65, 17, 68, 33, 49, 34, 34, 240, 112, + 14, 7, 240, 213, 49, 49, 36, 49, 49, 33, 49, 21, + 240, 128, 15, 7, 240, 227, 17, 18, 34, 17, 65, 17, + 98, 49, 36, 240, 128, 16, 8, 240, 240, 38, 49, 50, + 33, 65, 33, 65, 33, 50, 22, 240, 176, 15, 8, 240, + 240, 38, 49, 65, 36, 65, 33, 65, 65, 23, 240, 160, + 14, 8, 240, 240, 38, 49, 65, 36, 65, 33, 65, 99, + 240, 224, 14, 7, 240, 227, 49, 49, 33, 97, 35, 18, + 33, 52, 240, 128, 17, 8, 240, 240, 35, 19, 33, 49, + 53, 49, 49, 49, 49, 35, 19, 240, 160, 10, 4, 240, + 19, 33, 49, 49, 49, 35, 208, 12, 5, 240, 99, 49, + 65, 65, 33, 17, 35, 240, 32, 18, 8, 240, 240, 35, + 34, 33, 33, 65, 17, 82, 17, 65, 49, 35, 34, 240, + 160, 11, 6, 240, 147, 65, 81, 81, 81, 69, 240, 64, + 20, 9, 240, 240, 99, 50, 34, 49, 50, 19, 49, 18, + 17, 49, 18, 17, 35, 35, 240, 208, 19, 8, 240, 240, + 35, 19, 34, 33, 49, 17, 17, 49, 34, 49, 34, 35, + 33, 240, 176, 15, 7, 240, 228, 34, 34, 17, 65, 17, + 65, 18, 34, 36, 240, 128, 12, 7, 240, 213, 49, 49, + 36, 49, 97, 83, 240, 160, 16, 7, 240, 228, 34, 49, + 17, 65, 17, 65, 20, 17, 51, 98, 82, 128, 17, 9, + 240, 240, 101, 81, 49, 68, 81, 49, 65, 49, 17, 19, + 35, 240, 208, 14, 6, 240, 162, 17, 17, 34, 18, 99, + 17, 49, 20, 240, 80, 14, 8, 240, 240, 38, 33, 33, + 33, 65, 113, 113, 99, 240, 192, 17, 9, 240, 240, 99, + 35, 33, 65, 49, 65, 49, 65, 49, 65, 68, 240, 240, + 16, 8, 240, 240, 35, 34, 33, 49, 65, 17, 81, 17, + 97, 113, 240, 208, 23, 11, 240, 240, 227, 18, 34, 33, + 49, 33, 49, 34, 17, 82, 17, 17, 82, 33, 113, 33, + 240, 240, 112, 17, 8, 240, 240, 35, 18, 65, 17, 97, + 97, 17, 65, 49, 34, 35, 240, 160, 15, 8, 240, 240, + 34, 50, 33, 49, 65, 17, 97, 113, 99, 240, 192, 12, + 6, 240, 149, 65, 65, 65, 65, 49, 21, 240, 64, 8, + 7, 240, 240, 198, 240, 240, 208, 8, 13, 0, 9, 108, + 0, 9, 112, 9, 5, 177, 17, 17, 17, 0, 5, 112, + 6, 5, 164, 0, 6, 48, +}; + +//***************************************************************************** +// +// The font definition for the 12 point Cmsc font. +// +//***************************************************************************** +const tFont g_sFontCmsc12 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 12, + + // + // The height of the font. + // + 13, + + // + // The baseline of the font. + // + 10, + + // + // The offset to each character in the font. + // + { + 0, 5, 16, 25, 47, 68, 101, 124, + 131, 146, 162, 175, 189, 196, 202, 207, + 223, 241, 253, 267, 281, 297, 312, 330, + 342, 359, 375, 380, 387, 400, 409, 422, + 434, 456, 475, 493, 511, 530, 547, 563, + 580, 600, 611, 624, 645, 658, 688, 713, + 732, 747, 769, 790, 806, 821, 842, 861, + 891, 912, 930, 944, 959, 970, 985, 993, + 998, 1005, 1020, 1034, 1049, 1065, 1080, 1094, + 1108, 1125, 1135, 1147, 1165, 1176, 1196, 1215, + 1230, 1242, 1258, 1275, 1289, 1303, 1320, 1336, + 1359, 1376, 1391, 1403, 1411, 1419, 1428, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmsc12Data +}; diff --git a/grlib/fonts/fontcmsc14.c b/grlib/fonts/fontcmsc14.c new file mode 100644 index 0000000..a2277f6 --- /dev/null +++ b/grlib/fonts/fontcmsc14.c @@ -0,0 +1,244 @@ +//***************************************************************************** +// +// fontcmsc14.c - Font definition for the 14pt Cmsc font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmsc +// Size: 14 point +// Bold: no +// Italic: no +// Memory usage: 1848 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 14 point Cmsc font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmsc14Data[1648] = +{ + 5, 6, 0, 11, 32, 12, 2, 1, 17, 17, 17, 17, + 17, 17, 17, 81, 144, 11, 6, 194, 18, 33, 33, 17, + 33, 0, 7, 96, 24, 11, 240, 240, 113, 33, 113, 33, + 97, 33, 74, 65, 33, 74, 49, 33, 113, 33, 113, 33, + 97, 49, 240, 192, 23, 7, 161, 69, 17, 33, 17, 18, + 17, 68, 83, 65, 17, 18, 17, 17, 17, 33, 17, 36, + 81, 240, 144, 37, 12, 19, 65, 49, 38, 49, 49, 33, + 65, 49, 17, 81, 49, 17, 82, 17, 17, 116, 35, 97, + 17, 34, 65, 33, 49, 49, 49, 49, 49, 49, 34, 33, + 83, 240, 240, 128, 28, 11, 35, 113, 49, 97, 49, 97, + 33, 115, 51, 49, 65, 52, 49, 49, 33, 33, 65, 50, + 81, 50, 49, 35, 35, 0, 5, 96, 8, 3, 98, 33, + 17, 240, 240, 32, 16, 4, 82, 33, 33, 49, 49, 49, + 49, 49, 49, 49, 65, 49, 65, 80, 15, 4, 65, 65, + 49, 65, 49, 49, 49, 49, 49, 33, 49, 33, 176, 12, + 6, 33, 81, 53, 49, 53, 49, 81, 0, 6, 48, 16, + 12, 240, 225, 177, 177, 177, 177, 107, 97, 177, 177, 177, + 240, 240, 192, 7, 3, 240, 242, 33, 17, 128, 8, 5, + 240, 240, 164, 240, 240, 16, 5, 2, 240, 81, 144, 17, + 7, 81, 97, 81, 97, 81, 97, 97, 81, 97, 81, 97, + 97, 81, 97, 208, 20, 7, 244, 49, 33, 33, 65, 17, + 65, 17, 65, 17, 65, 17, 65, 18, 34, 36, 240, 240, + 13, 6, 195, 81, 81, 81, 81, 81, 81, 81, 53, 240, + 160, 15, 6, 211, 33, 49, 17, 49, 81, 65, 65, 65, + 65, 85, 240, 160, 16, 6, 211, 33, 49, 81, 35, 82, + 81, 17, 49, 17, 49, 35, 240, 176, 17, 7, 240, 49, + 97, 67, 49, 33, 49, 33, 33, 49, 38, 81, 83, 240, + 224, 16, 6, 211, 49, 83, 49, 33, 81, 81, 18, 33, + 17, 49, 35, 240, 176, 21, 7, 240, 20, 33, 49, 17, + 19, 34, 49, 17, 65, 17, 65, 17, 65, 33, 34, 51, + 240, 240, 15, 7, 245, 17, 49, 81, 97, 81, 97, 97, + 97, 97, 240, 240, 32, 19, 7, 244, 33, 65, 17, 65, + 19, 17, 67, 34, 34, 17, 65, 18, 49, 36, 240, 240, + 20, 7, 244, 33, 49, 33, 65, 17, 65, 17, 50, 35, + 17, 97, 17, 49, 36, 240, 240, 16, 5, 2, 193, 113, + 144, 8, 3, 240, 50, 162, 33, 17, 128, 15, 9, 240, + 240, 65, 83, 66, 82, 113, 146, 147, 146, 240, 240, 112, + 9, 11, 0, 8, 42, 202, 0, 8, 48, 14, 9, 240, + 194, 146, 146, 146, 129, 83, 66, 82, 240, 240, 208, 13, + 6, 212, 17, 49, 81, 65, 65, 81, 240, 18, 240, 192, + 31, 11, 240, 150, 67, 35, 33, 17, 65, 17, 17, 17, + 65, 17, 17, 17, 65, 17, 17, 33, 34, 17, 33, 19, + 18, 65, 97, 70, 0, 5, 96, 23, 11, 242, 129, 17, + 129, 17, 129, 18, 97, 49, 97, 50, 86, 65, 81, 65, + 82, 35, 52, 240, 240, 240, 21, 9, 240, 55, 49, 81, + 33, 81, 38, 49, 66, 33, 81, 33, 81, 33, 66, 23, + 240, 240, 128, 22, 11, 240, 164, 33, 34, 67, 33, 113, + 17, 129, 17, 161, 129, 33, 113, 34, 81, 85, 0, 5, + 112, 22, 10, 240, 87, 65, 66, 49, 97, 33, 97, 33, + 97, 33, 97, 33, 97, 33, 81, 39, 240, 240, 208, 20, + 10, 240, 88, 49, 145, 49, 85, 81, 49, 81, 49, 81, + 97, 33, 82, 24, 240, 240, 192, 18, 9, 240, 56, 33, + 129, 49, 69, 65, 49, 65, 49, 65, 129, 116, 240, 240, + 176, 20, 11, 240, 149, 82, 66, 33, 113, 33, 161, 84, + 17, 113, 49, 97, 65, 66, 84, 0, 6, 23, 10, 240, + 84, 20, 33, 81, 49, 81, 55, 49, 81, 49, 81, 49, + 81, 49, 81, 36, 20, 240, 240, 176, 13, 4, 131, 33, + 49, 49, 49, 49, 49, 49, 35, 240, 32, 16, 7, 245, + 81, 97, 97, 97, 97, 33, 49, 33, 34, 51, 240, 240, + 16, 23, 10, 240, 83, 51, 33, 65, 65, 49, 81, 33, + 100, 97, 49, 81, 65, 65, 81, 35, 51, 240, 240, 176, + 17, 8, 240, 20, 81, 113, 113, 113, 113, 113, 65, 33, + 65, 23, 240, 240, 48, 35, 12, 240, 147, 98, 34, 82, + 49, 17, 49, 17, 49, 17, 49, 17, 49, 18, 33, 17, + 49, 33, 17, 33, 49, 35, 33, 49, 49, 49, 35, 33, + 35, 0, 6, 16, 28, 11, 240, 115, 67, 35, 65, 49, + 18, 49, 49, 34, 33, 49, 49, 33, 49, 50, 17, 49, + 67, 49, 82, 35, 81, 0, 5, 96, 22, 10, 240, 117, + 66, 50, 34, 82, 17, 113, 17, 113, 17, 113, 18, 82, + 34, 50, 69, 240, 240, 208, 18, 9, 240, 55, 49, 81, + 33, 81, 33, 81, 38, 49, 129, 129, 116, 240, 240, 176, + 27, 10, 240, 132, 66, 65, 34, 97, 17, 113, 17, 113, + 17, 113, 33, 34, 17, 50, 17, 18, 84, 145, 17, 113, + 17, 130, 176, 23, 12, 240, 151, 97, 81, 81, 81, 86, + 97, 50, 97, 65, 97, 66, 81, 66, 33, 19, 67, 0, + 6, 32, 17, 7, 243, 17, 17, 50, 17, 65, 18, 100, + 113, 97, 17, 65, 21, 240, 240, 17, 10, 240, 89, 17, + 49, 49, 81, 145, 145, 145, 145, 145, 117, 240, 240, 208, + 22, 11, 240, 116, 36, 33, 97, 49, 97, 49, 97, 49, + 97, 49, 97, 49, 97, 50, 65, 100, 0, 6, 22, 12, + 240, 148, 67, 49, 81, 82, 65, 97, 49, 114, 33, 129, + 17, 145, 17, 161, 177, 0, 6, 96, 33, 16, 240, 240, + 36, 35, 51, 49, 65, 65, 81, 66, 49, 97, 33, 17, + 49, 97, 33, 18, 17, 115, 49, 17, 130, 50, 146, 50, + 145, 81, 0, 8, 80, 22, 11, 240, 116, 35, 50, 49, + 98, 17, 130, 161, 145, 17, 113, 49, 81, 81, 51, 52, + 240, 240, 240, 19, 12, 240, 148, 67, 49, 81, 97, 49, + 129, 17, 147, 161, 177, 177, 163, 0, 6, 80, 18, 8, + 240, 23, 17, 65, 98, 97, 97, 97, 97, 65, 33, 65, + 23, 240, 240, 48, 16, 3, 50, 17, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 34, 11, 5, 209, 17, + 17, 33, 17, 36, 0, 5, 96, 16, 3, 50, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 18, 8, + 4, 145, 33, 17, 240, 240, 240, 5, 2, 65, 240, 160, + 8, 3, 113, 17, 33, 34, 240, 208, 19, 8, 240, 193, + 113, 97, 17, 65, 33, 65, 33, 69, 49, 49, 34, 35, + 240, 240, 48, 16, 7, 240, 213, 49, 49, 36, 49, 49, + 33, 49, 33, 49, 21, 240, 240, 19, 8, 240, 240, 67, + 17, 33, 50, 17, 81, 17, 113, 81, 33, 50, 52, 240, + 240, 64, 19, 8, 240, 240, 37, 65, 49, 49, 65, 33, + 65, 33, 65, 33, 49, 37, 240, 240, 80, 17, 8, 240, + 240, 39, 33, 65, 36, 65, 33, 65, 113, 65, 23, 240, + 240, 48, 17, 8, 240, 240, 39, 33, 65, 33, 33, 68, + 65, 33, 65, 99, 240, 240, 112, 18, 8, 240, 240, 52, + 50, 49, 33, 113, 51, 17, 65, 49, 49, 67, 240, 240, + 80, 20, 8, 240, 240, 35, 19, 33, 49, 53, 49, 49, + 49, 49, 49, 49, 35, 19, 240, 240, 48, 12, 4, 240, + 19, 33, 49, 49, 49, 49, 35, 240, 32, 13, 5, 240, + 99, 49, 65, 65, 65, 33, 17, 35, 240, 112, 21, 9, + 240, 240, 99, 34, 49, 49, 65, 18, 81, 18, 82, 17, + 81, 49, 51, 35, 240, 240, 112, 13, 7, 240, 211, 81, + 97, 97, 97, 97, 49, 22, 240, 224, 29, 10, 240, 240, + 163, 66, 34, 50, 49, 17, 17, 17, 49, 17, 17, 17, + 49, 17, 17, 17, 49, 33, 33, 35, 17, 19, 240, 240, + 176, 23, 9, 240, 240, 99, 35, 35, 33, 49, 17, 33, + 49, 33, 17, 49, 35, 49, 50, 35, 49, 240, 240, 128, + 19, 8, 240, 240, 67, 65, 49, 33, 81, 17, 81, 17, + 81, 33, 49, 67, 240, 240, 80, 15, 7, 240, 213, 49, + 49, 33, 49, 36, 49, 97, 83, 240, 240, 32, 22, 8, + 240, 240, 68, 49, 49, 33, 81, 17, 81, 17, 81, 33, + 17, 17, 67, 113, 17, 98, 240, 32, 20, 9, 240, 240, + 101, 81, 49, 65, 49, 68, 81, 33, 81, 34, 17, 19, + 20, 240, 240, 112, 17, 6, 240, 162, 17, 17, 34, 17, + 49, 35, 33, 49, 17, 49, 20, 240, 176, 16, 8, 240, + 240, 39, 17, 33, 33, 65, 113, 113, 113, 99, 240, 240, + 80, 20, 9, 240, 240, 99, 35, 33, 65, 49, 65, 49, + 65, 49, 65, 49, 50, 68, 240, 240, 144, 19, 9, 240, + 240, 99, 50, 33, 65, 65, 49, 65, 33, 97, 17, 98, + 129, 240, 240, 160, 27, 12, 0, 6, 3, 19, 34, 33, + 49, 49, 65, 34, 33, 65, 17, 17, 17, 81, 17, 34, + 97, 50, 97, 49, 0, 6, 64, 19, 9, 240, 240, 114, + 35, 49, 33, 98, 129, 98, 17, 65, 65, 35, 35, 240, + 240, 112, 17, 8, 240, 240, 34, 50, 33, 49, 65, 17, + 97, 113, 113, 99, 240, 240, 80, 14, 7, 240, 214, 17, + 49, 81, 81, 81, 97, 49, 22, 240, 224, 8, 8, 0, + 6, 7, 0, 8, 16, 8, 15, 0, 11, 46, 0, 15, + 16, 9, 5, 177, 17, 17, 17, 0, 7, 16, 6, 6, + 197, 0, 9, 16, +}; + +//***************************************************************************** +// +// The font definition for the 14 point Cmsc font. +// +//***************************************************************************** +const tFont g_sFontCmsc14 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 14, + + // + // The height of the font. + // + 15, + + // + // The baseline of the font. + // + 11, + + // + // The offset to each character in the font. + // + { + 0, 5, 17, 28, 52, 75, 112, 140, + 148, 164, 179, 191, 207, 214, 222, 227, + 244, 264, 277, 292, 308, 325, 341, 362, + 377, 396, 416, 421, 429, 444, 453, 467, + 480, 511, 534, 555, 577, 599, 619, 637, + 657, 680, 693, 709, 732, 749, 784, 812, + 834, 852, 879, 902, 919, 936, 958, 980, + 1013, 1035, 1054, 1072, 1088, 1099, 1115, 1123, + 1128, 1136, 1155, 1171, 1190, 1209, 1226, 1243, + 1261, 1281, 1293, 1306, 1327, 1340, 1369, 1392, + 1411, 1426, 1448, 1468, 1485, 1501, 1521, 1540, + 1567, 1586, 1603, 1617, 1625, 1633, 1642, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmsc14Data +}; diff --git a/grlib/fonts/fontcmsc16.c b/grlib/fonts/fontcmsc16.c new file mode 100644 index 0000000..dd9e2c0 --- /dev/null +++ b/grlib/fonts/fontcmsc16.c @@ -0,0 +1,266 @@ +//***************************************************************************** +// +// fontcmsc16.c - Font definition for the 16pt Cmsc font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmsc +// Size: 16 point +// Bold: no +// Italic: no +// Memory usage: 2120 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 16 point Cmsc font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmsc16Data[1919] = +{ + 5, 6, 0, 12, 96, 14, 2, 33, 17, 17, 17, 17, + 17, 17, 17, 17, 49, 17, 144, 16, 8, 240, 33, 49, + 35, 19, 49, 49, 49, 49, 33, 49, 0, 10, 32, 30, + 13, 240, 240, 81, 129, 49, 129, 49, 113, 49, 129, 49, + 76, 81, 33, 129, 49, 92, 65, 49, 113, 49, 129, 49, + 129, 49, 129, 240, 128, 28, 8, 177, 85, 33, 33, 33, + 17, 33, 18, 17, 33, 68, 85, 81, 18, 65, 33, 18, + 17, 33, 17, 33, 33, 37, 81, 240, 208, 43, 14, 19, + 97, 65, 33, 65, 65, 69, 65, 65, 33, 81, 65, 17, + 97, 65, 17, 113, 33, 17, 131, 17, 35, 129, 33, 33, + 97, 33, 65, 65, 49, 65, 50, 49, 65, 49, 66, 33, + 163, 240, 240, 240, 31, 13, 240, 18, 161, 33, 145, 33, + 145, 33, 145, 17, 162, 68, 65, 81, 67, 65, 65, 49, + 33, 81, 51, 98, 50, 65, 36, 36, 0, 6, 96, 10, + 4, 145, 35, 49, 49, 33, 240, 240, 192, 19, 5, 49, + 49, 49, 65, 49, 65, 65, 65, 65, 65, 65, 65, 65, + 81, 65, 81, 81, 20, 5, 1, 81, 81, 65, 65, 81, + 65, 65, 65, 65, 65, 65, 49, 65, 65, 49, 49, 64, + 15, 8, 49, 113, 66, 17, 18, 37, 81, 85, 81, 113, + 0, 9, 64, 18, 12, 240, 240, 177, 177, 177, 177, 177, + 177, 107, 97, 177, 177, 177, 240, 240, 192, 10, 3, 240, + 240, 50, 18, 33, 33, 17, 80, 8, 5, 240, 240, 244, + 240, 240, 96, 6, 2, 240, 113, 17, 144, 20, 7, 81, + 97, 81, 97, 97, 81, 97, 97, 81, 97, 97, 81, 97, + 97, 81, 97, 97, 96, 24, 8, 240, 179, 65, 49, 33, + 81, 17, 81, 17, 81, 17, 81, 17, 81, 17, 81, 33, + 49, 67, 240, 240, 80, 15, 6, 240, 51, 81, 81, 81, + 81, 81, 81, 81, 81, 53, 240, 160, 18, 7, 240, 116, + 33, 65, 17, 65, 97, 81, 81, 81, 81, 81, 65, 22, + 240, 224, 19, 7, 240, 116, 33, 65, 17, 65, 81, 51, + 113, 113, 17, 65, 17, 50, 36, 240, 240, 21, 9, 240, + 240, 33, 114, 97, 17, 81, 33, 65, 49, 49, 65, 71, + 97, 129, 101, 240, 240, 112, 20, 7, 240, 116, 49, 97, + 97, 18, 50, 33, 97, 18, 49, 18, 49, 17, 49, 52, + 240, 240, 22, 7, 240, 132, 33, 49, 33, 81, 19, 34, + 49, 17, 65, 17, 65, 17, 65, 33, 34, 51, 240, 240, + 17, 7, 240, 102, 17, 65, 81, 81, 97, 81, 97, 97, + 97, 97, 240, 240, 32, 22, 7, 240, 116, 33, 50, 17, + 65, 18, 49, 36, 49, 18, 33, 65, 17, 65, 18, 34, + 36, 240, 240, 22, 7, 240, 116, 33, 49, 33, 65, 17, + 65, 17, 50, 35, 17, 97, 81, 33, 49, 36, 240, 240, + 16, 7, 2, 193, 17, 113, 17, 144, 11, 3, 240, 50, + 18, 162, 18, 33, 33, 17, 80, 16, 11, 0, 6, 81, + 115, 98, 114, 114, 162, 179, 178, 178, 240, 240, 240, 10, + 12, 0, 10, 75, 240, 171, 0, 9, 16, 16, 11, 240, + 240, 226, 178, 178, 178, 178, 130, 99, 98, 114, 0, 6, + 80, 17, 7, 244, 33, 65, 17, 65, 97, 81, 81, 97, + 97, 194, 82, 240, 240, 16, 40, 13, 240, 229, 113, 19, + 18, 65, 17, 49, 33, 33, 17, 81, 33, 17, 17, 81, + 33, 17, 17, 81, 33, 17, 17, 81, 33, 33, 17, 50, + 33, 33, 35, 34, 66, 113, 72, 0, 6, 96, 26, 12, + 240, 33, 177, 163, 129, 33, 129, 33, 129, 34, 97, 65, + 117, 97, 66, 65, 97, 65, 97, 51, 68, 0, 6, 16, + 25, 10, 240, 88, 65, 66, 49, 81, 49, 66, 53, 81, + 65, 65, 81, 49, 81, 49, 81, 49, 65, 39, 240, 240, + 208, 24, 12, 240, 197, 33, 49, 83, 33, 114, 17, 145, + 17, 177, 177, 177, 145, 33, 114, 49, 82, 85, 0, 6, + 64, 25, 11, 240, 120, 81, 66, 65, 81, 65, 97, 49, + 97, 49, 97, 49, 97, 49, 97, 49, 81, 65, 66, 39, + 0, 6, 25, 11, 240, 122, 49, 97, 49, 97, 49, 49, + 101, 97, 49, 97, 49, 97, 97, 49, 97, 49, 82, 26, + 240, 240, 240, 24, 11, 240, 121, 65, 82, 49, 97, 49, + 49, 33, 49, 49, 101, 97, 49, 97, 49, 97, 161, 133, + 0, 6, 32, 24, 12, 240, 197, 97, 82, 49, 113, 33, + 129, 33, 177, 177, 100, 17, 129, 49, 113, 66, 66, 85, + 0, 6, 64, 27, 12, 240, 149, 21, 49, 81, 81, 81, + 81, 81, 87, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 81, 53, 21, 0, 6, 16, 15, 6, 197, 49, 81, 81, + 81, 81, 81, 81, 81, 81, 53, 240, 160, 19, 7, 240, + 20, 81, 97, 97, 97, 97, 97, 97, 34, 33, 34, 33, + 51, 240, 240, 16, 28, 12, 240, 149, 51, 49, 81, 81, + 65, 97, 49, 113, 33, 129, 19, 114, 34, 97, 65, 97, + 81, 81, 82, 37, 36, 0, 6, 16, 20, 10, 240, 85, + 113, 145, 145, 145, 145, 145, 145, 81, 49, 81, 49, 66, + 25, 240, 240, 176, 41, 15, 240, 244, 115, 50, 98, 81, + 17, 65, 17, 81, 17, 65, 17, 81, 18, 49, 17, 81, + 33, 33, 33, 81, 33, 33, 33, 81, 35, 49, 81, 50, + 49, 81, 50, 49, 52, 100, 0, 7, 80, 34, 13, 240, + 180, 68, 51, 65, 81, 17, 65, 81, 18, 49, 81, 34, + 33, 81, 49, 33, 81, 50, 17, 81, 65, 17, 81, 82, + 81, 82, 52, 81, 0, 6, 112, 26, 12, 240, 197, 97, + 81, 65, 113, 33, 145, 17, 145, 17, 145, 17, 145, 17, + 145, 33, 113, 65, 81, 101, 0, 6, 64, 21, 10, 240, + 88, 65, 66, 49, 81, 49, 81, 49, 66, 54, 65, 145, + 145, 145, 117, 240, 240, 240, 30, 12, 240, 197, 97, 81, + 65, 113, 33, 145, 17, 145, 17, 145, 17, 145, 17, 145, + 33, 35, 33, 65, 17, 34, 101, 178, 17, 147, 146, 224, + 27, 13, 240, 183, 129, 65, 113, 81, 97, 81, 97, 65, + 117, 129, 50, 113, 65, 113, 66, 97, 66, 33, 35, 67, + 0, 6, 96, 24, 8, 240, 36, 17, 18, 50, 17, 81, + 17, 81, 19, 116, 114, 113, 17, 81, 18, 49, 33, 20, + 240, 240, 64, 23, 12, 240, 169, 33, 65, 49, 33, 65, + 65, 17, 65, 65, 97, 177, 177, 177, 177, 177, 149, 0, + 6, 64, 27, 13, 240, 181, 37, 49, 97, 81, 97, 81, + 97, 81, 97, 81, 97, 81, 97, 81, 97, 81, 97, 97, + 65, 132, 0, 7, 16, 25, 12, 240, 148, 67, 34, 97, + 50, 81, 81, 81, 82, 49, 113, 49, 114, 33, 129, 17, + 147, 146, 177, 0, 6, 96, 40, 17, 240, 240, 68, 36, + 51, 33, 82, 65, 66, 66, 65, 81, 49, 17, 65, 81, + 49, 18, 33, 98, 33, 33, 33, 113, 17, 49, 33, 115, + 51, 131, 66, 145, 81, 161, 81, 0, 9, 32, 25, 12, + 240, 148, 51, 65, 81, 82, 49, 114, 17, 146, 177, 163, + 129, 34, 97, 66, 65, 97, 51, 68, 0, 6, 16, 22, + 12, 240, 148, 67, 34, 97, 66, 65, 97, 49, 129, 17, + 147, 161, 177, 177, 177, 149, 0, 6, 64, 20, 9, 240, + 56, 17, 81, 114, 113, 113, 114, 113, 113, 113, 81, 33, + 81, 24, 240, 240, 112, 18, 4, 67, 17, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 51, 14, + 7, 241, 33, 33, 33, 49, 33, 50, 19, 18, 33, 0, + 9, 18, 4, 67, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 19, 8, 5, 193, 34, 17, + 0, 8, 32, 6, 2, 97, 17, 240, 160, 10, 4, 145, + 33, 49, 51, 33, 240, 240, 192, 22, 10, 240, 240, 225, + 145, 129, 17, 97, 33, 97, 34, 85, 65, 65, 65, 66, + 35, 51, 240, 240, 176, 20, 8, 240, 240, 166, 49, 65, + 33, 65, 37, 49, 65, 33, 65, 33, 65, 22, 240, 240, + 64, 20, 9, 0, 5, 116, 17, 33, 66, 17, 97, 17, + 129, 129, 97, 33, 65, 68, 240, 240, 144, 21, 9, 240, + 240, 246, 65, 65, 49, 81, 33, 81, 33, 81, 33, 81, + 33, 65, 38, 240, 240, 144, 19, 9, 240, 240, 248, 33, + 81, 33, 49, 69, 65, 49, 65, 129, 81, 24, 240, 240, + 112, 18, 9, 240, 240, 248, 33, 81, 33, 49, 69, 65, + 49, 65, 129, 116, 240, 240, 176, 19, 9, 0, 5, 115, + 81, 50, 33, 129, 129, 52, 17, 81, 49, 65, 68, 240, + 240, 144, 22, 9, 240, 240, 243, 35, 33, 65, 49, 65, + 54, 49, 65, 49, 65, 49, 65, 35, 35, 240, 240, 112, + 13, 4, 240, 83, 33, 49, 49, 49, 49, 49, 35, 240, + 32, 15, 6, 240, 240, 20, 65, 81, 81, 81, 81, 33, + 33, 35, 240, 192, 23, 9, 240, 240, 243, 50, 33, 65, + 49, 34, 65, 17, 98, 17, 81, 49, 65, 65, 35, 35, + 240, 240, 112, 15, 7, 240, 240, 83, 81, 97, 97, 97, + 97, 97, 49, 22, 240, 224, 31, 11, 0, 6, 115, 82, + 34, 66, 49, 17, 33, 17, 49, 17, 33, 17, 49, 18, + 17, 17, 49, 34, 33, 49, 34, 33, 35, 67, 240, 240, + 240, 26, 10, 0, 6, 35, 51, 35, 49, 49, 18, 33, + 49, 33, 33, 49, 34, 17, 49, 51, 49, 66, 35, 65, + 240, 240, 192, 21, 9, 0, 5, 116, 65, 65, 33, 97, + 17, 97, 17, 97, 17, 97, 33, 65, 68, 240, 240, 144, + 17, 8, 240, 240, 166, 49, 65, 33, 65, 37, 49, 113, + 113, 99, 240, 240, 112, 25, 9, 0, 5, 116, 65, 65, + 33, 97, 17, 97, 17, 97, 17, 34, 33, 33, 18, 17, + 68, 129, 17, 114, 240, 64, 22, 10, 0, 6, 37, 97, + 49, 81, 49, 84, 97, 33, 97, 34, 81, 34, 33, 19, + 35, 240, 240, 192, 19, 6, 240, 240, 18, 17, 17, 34, + 17, 49, 19, 98, 17, 49, 17, 49, 20, 240, 176, 17, + 9, 0, 5, 103, 17, 49, 33, 81, 129, 129, 129, 129, + 101, 240, 240, 128, 22, 10, 0, 6, 35, 51, 33, 81, + 49, 81, 49, 81, 49, 81, 49, 81, 50, 49, 84, 240, + 240, 224, 20, 10, 0, 6, 36, 50, 49, 65, 65, 65, + 66, 33, 97, 33, 99, 130, 129, 240, 240, 240, 29, 14, + 0, 8, 99, 35, 35, 34, 49, 65, 65, 50, 33, 81, + 33, 17, 33, 97, 17, 17, 17, 114, 50, 114, 50, 129, + 0, 8, 16, 22, 10, 0, 6, 51, 35, 49, 49, 97, + 17, 129, 129, 17, 97, 49, 81, 50, 35, 51, 240, 240, + 176, 19, 10, 0, 6, 35, 66, 34, 65, 66, 33, 97, + 17, 129, 145, 145, 131, 240, 240, 224, 16, 7, 240, 240, + 86, 17, 49, 97, 81, 81, 81, 81, 65, 22, 240, 224, + 8, 9, 0, 9, 8, 0, 9, 16, 9, 17, 0, 17, + 15, 1, 0, 17, 16, 11, 6, 209, 33, 17, 33, 33, + 33, 0, 9, 32, 7, 6, 240, 53, 0, 9, 112, +}; + +//***************************************************************************** +// +// The font definition for the 16 point Cmsc font. +// +//***************************************************************************** +const tFont g_sFontCmsc16 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 15, + + // + // The height of the font. + // + 17, + + // + // The baseline of the font. + // + 13, + + // + // The offset to each character in the font. + // + { + 0, 5, 19, 35, 65, 93, 136, 167, + 177, 196, 216, 231, 249, 259, 267, 273, + 293, 317, 332, 350, 369, 390, 410, 432, + 449, 471, 493, 500, 511, 527, 537, 553, + 570, 610, 636, 661, 685, 710, 735, 759, + 783, 810, 825, 844, 872, 892, 933, 967, + 993, 1014, 1044, 1071, 1095, 1118, 1145, 1170, + 1210, 1235, 1257, 1277, 1295, 1309, 1327, 1335, + 1341, 1351, 1373, 1393, 1413, 1434, 1453, 1471, + 1490, 1512, 1525, 1540, 1563, 1578, 1609, 1635, + 1656, 1673, 1698, 1720, 1739, 1756, 1778, 1798, + 1827, 1849, 1868, 1884, 1892, 1901, 1912, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmsc16Data +}; diff --git a/grlib/fonts/fontcmsc18.c b/grlib/fonts/fontcmsc18.c new file mode 100644 index 0000000..063e416 --- /dev/null +++ b/grlib/fonts/fontcmsc18.c @@ -0,0 +1,281 @@ +//***************************************************************************** +// +// fontcmsc18.c - Font definition for the 18pt Cmsc font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmsc +// Size: 18 point +// Bold: no +// Italic: no +// Memory usage: 2312 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 18 point Cmsc font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmsc18Data[2112] = +{ + 5, 7, 0, 16, 80, 15, 2, 33, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 49, 17, 176, 15, 7, 226, 34, + 19, 18, 49, 33, 49, 33, 33, 33, 0, 10, 96, 35, + 14, 240, 240, 65, 49, 129, 65, 129, 49, 145, 49, 145, + 49, 77, 81, 49, 145, 49, 145, 49, 93, 65, 49, 145, + 49, 129, 65, 129, 49, 145, 49, 240, 240, 80, 33, 9, + 193, 101, 50, 17, 34, 17, 33, 34, 17, 33, 34, 18, + 17, 100, 116, 81, 34, 18, 17, 49, 18, 17, 49, 17, + 33, 33, 53, 97, 240, 240, 176, 46, 15, 19, 113, 65, + 34, 66, 49, 70, 65, 65, 49, 81, 65, 49, 81, 65, + 33, 113, 33, 33, 131, 33, 51, 129, 49, 17, 113, 49, + 49, 81, 65, 49, 66, 65, 49, 65, 81, 49, 49, 113, + 17, 195, 0, 7, 96, 35, 14, 240, 35, 161, 49, 145, + 49, 145, 49, 145, 18, 163, 68, 65, 97, 68, 65, 65, + 49, 49, 81, 50, 17, 97, 66, 81, 18, 49, 17, 50, + 36, 52, 0, 9, 10, 4, 130, 35, 49, 49, 33, 0, + 6, 32, 21, 5, 49, 49, 49, 65, 65, 49, 65, 65, + 65, 65, 65, 65, 65, 81, 65, 65, 81, 81, 96, 21, + 5, 1, 81, 65, 81, 65, 81, 65, 65, 65, 65, 65, + 65, 65, 49, 65, 49, 65, 49, 144, 17, 8, 49, 113, + 65, 33, 33, 37, 81, 85, 33, 33, 33, 65, 0, 11, + 64, 20, 14, 0, 6, 1, 209, 209, 209, 209, 209, 125, + 113, 209, 209, 209, 209, 209, 0, 6, 16, 10, 4, 0, + 6, 2, 35, 49, 49, 33, 160, 8, 6, 0, 7, 69, + 0, 6, 16, 6, 2, 240, 145, 17, 176, 21, 8, 97, + 113, 97, 113, 113, 97, 113, 97, 113, 113, 97, 113, 113, + 97, 113, 97, 113, 113, 240, 28, 8, 240, 51, 65, 49, + 33, 81, 17, 81, 17, 81, 17, 81, 17, 81, 17, 81, + 17, 81, 17, 81, 33, 49, 67, 240, 240, 208, 17, 6, + 225, 51, 81, 81, 81, 81, 81, 81, 81, 81, 81, 53, + 240, 240, 16, 23, 8, 240, 51, 50, 49, 33, 81, 17, + 81, 17, 81, 113, 97, 97, 97, 97, 82, 65, 23, 240, + 240, 176, 22, 7, 243, 49, 49, 33, 65, 17, 65, 81, + 51, 113, 113, 97, 17, 65, 17, 50, 36, 240, 240, 112, + 23, 9, 240, 129, 129, 99, 97, 17, 81, 33, 65, 49, + 65, 49, 49, 65, 56, 97, 129, 101, 0, 5, 96, 24, + 8, 240, 33, 65, 37, 49, 113, 113, 18, 66, 33, 129, + 113, 18, 65, 18, 65, 17, 65, 52, 240, 240, 208, 27, + 8, 240, 67, 65, 34, 33, 65, 17, 113, 19, 50, 49, + 33, 81, 17, 81, 17, 81, 17, 81, 33, 49, 67, 240, + 240, 208, 19, 9, 240, 65, 135, 17, 81, 113, 113, 129, + 113, 129, 129, 129, 129, 129, 0, 6, 32, 26, 9, 240, + 83, 81, 50, 33, 81, 33, 81, 50, 33, 83, 81, 20, + 33, 66, 33, 82, 17, 81, 49, 50, 68, 0, 6, 27, + 8, 240, 51, 65, 49, 33, 81, 17, 81, 17, 81, 17, + 81, 33, 50, 51, 17, 113, 17, 65, 33, 49, 67, 240, + 240, 224, 7, 2, 193, 17, 145, 17, 176, 11, 3, 240, + 50, 18, 210, 18, 33, 33, 17, 128, 18, 12, 0, 7, + 33, 146, 130, 130, 130, 130, 178, 194, 194, 194, 194, 0, + 6, 16, 11, 13, 0, 11, 60, 240, 240, 172, 0, 11, + 64, 17, 12, 0, 6, 2, 194, 194, 194, 194, 178, 130, + 115, 114, 130, 0, 8, 96, 19, 8, 240, 37, 33, 81, + 17, 81, 97, 97, 113, 97, 113, 113, 227, 83, 240, 240, + 208, 44, 14, 240, 240, 37, 114, 19, 18, 65, 33, 49, + 33, 34, 17, 81, 18, 17, 33, 81, 33, 17, 33, 81, + 33, 17, 33, 81, 33, 17, 33, 81, 33, 33, 33, 50, + 33, 34, 35, 34, 66, 129, 88, 0, 9, 28, 14, 240, + 81, 209, 195, 161, 18, 161, 34, 145, 34, 129, 65, 129, + 66, 119, 97, 97, 97, 98, 81, 98, 52, 69, 0, 8, + 112, 27, 12, 240, 153, 81, 97, 65, 113, 49, 113, 49, + 97, 71, 81, 97, 65, 113, 49, 113, 49, 113, 49, 97, + 41, 0, 7, 112, 27, 13, 240, 244, 49, 50, 68, 33, + 130, 33, 145, 17, 161, 17, 193, 193, 161, 33, 145, 33, + 129, 66, 82, 101, 0, 8, 80, 28, 13, 240, 185, 97, + 97, 81, 113, 65, 129, 49, 129, 49, 129, 49, 129, 49, + 129, 49, 129, 49, 113, 65, 97, 57, 0, 8, 80, 28, + 13, 240, 187, 65, 113, 65, 113, 65, 65, 113, 65, 118, + 113, 65, 113, 65, 49, 49, 129, 49, 113, 65, 113, 43, + 0, 8, 48, 24, 12, 240, 155, 49, 98, 49, 113, 49, + 177, 65, 97, 65, 102, 97, 65, 97, 65, 97, 177, 150, + 0, 8, 32, 25, 13, 240, 244, 114, 67, 49, 129, 49, + 129, 33, 193, 193, 193, 101, 33, 129, 49, 129, 66, 82, + 101, 0, 8, 80, 29, 13, 240, 181, 37, 49, 97, 81, + 97, 81, 97, 81, 97, 88, 81, 97, 81, 97, 81, 97, + 81, 97, 81, 97, 53, 37, 0, 8, 32, 17, 6, 197, + 49, 81, 81, 81, 81, 81, 81, 81, 81, 81, 53, 240, + 240, 16, 20, 8, 240, 53, 97, 113, 113, 113, 113, 113, + 113, 113, 34, 49, 34, 34, 52, 240, 240, 208, 30, 13, + 240, 181, 52, 49, 97, 81, 81, 97, 65, 113, 49, 129, + 34, 131, 18, 113, 65, 113, 66, 97, 82, 81, 98, 37, + 52, 0, 8, 32, 22, 11, 240, 117, 129, 161, 161, 161, + 161, 161, 161, 97, 49, 97, 49, 81, 65, 81, 41, 0, + 7, 16, 48, 16, 240, 240, 36, 131, 51, 98, 81, 17, + 81, 17, 81, 17, 81, 17, 81, 18, 65, 17, 81, 33, + 49, 33, 81, 34, 33, 33, 81, 49, 17, 49, 81, 49, + 17, 49, 81, 51, 49, 81, 65, 65, 53, 33, 37, 0, + 10, 16, 36, 14, 240, 212, 69, 51, 81, 81, 18, 65, + 81, 18, 65, 81, 34, 49, 81, 50, 33, 81, 50, 33, + 81, 66, 17, 81, 83, 81, 98, 81, 98, 53, 81, 0, + 9, 16, 28, 13, 240, 244, 114, 66, 65, 129, 49, 129, + 33, 161, 17, 161, 17, 161, 17, 161, 33, 129, 49, 129, + 66, 66, 116, 0, 8, 96, 22, 11, 240, 120, 81, 82, + 49, 97, 49, 97, 49, 82, 54, 81, 161, 161, 161, 161, + 133, 0, 7, 80, 33, 13, 240, 245, 98, 81, 66, 113, + 49, 129, 33, 161, 17, 161, 17, 161, 17, 161, 33, 129, + 50, 35, 33, 66, 17, 34, 117, 194, 17, 163, 162, 240, + 208, 29, 15, 240, 248, 145, 81, 129, 97, 113, 97, 113, + 81, 134, 145, 66, 129, 81, 129, 82, 113, 82, 113, 82, + 49, 35, 84, 0, 9, 80, 22, 9, 240, 83, 81, 50, + 33, 81, 33, 130, 133, 115, 130, 129, 17, 97, 18, 65, + 33, 20, 0, 6, 22, 13, 240, 203, 33, 65, 65, 17, + 81, 65, 113, 193, 193, 193, 193, 193, 193, 193, 151, 0, + 8, 64, 29, 14, 240, 213, 53, 49, 113, 81, 113, 81, + 113, 81, 113, 81, 113, 81, 113, 81, 113, 81, 113, 81, + 98, 97, 66, 133, 0, 9, 48, 28, 14, 240, 212, 84, + 34, 113, 81, 113, 82, 81, 113, 81, 114, 49, 130, 49, + 146, 17, 162, 17, 177, 17, 178, 209, 0, 9, 80, 45, + 19, 240, 240, 132, 52, 52, 34, 82, 81, 81, 82, 81, + 82, 66, 81, 82, 49, 18, 49, 113, 49, 33, 49, 114, + 33, 34, 17, 130, 17, 50, 17, 145, 17, 65, 17, 146, + 82, 162, 82, 177, 97, 0, 12, 80, 27, 14, 240, 213, + 52, 66, 81, 113, 65, 130, 33, 163, 194, 195, 161, 33, + 145, 50, 113, 82, 97, 98, 52, 69, 0, 8, 112, 24, + 14, 240, 213, 68, 50, 97, 97, 81, 114, 65, 130, 33, + 161, 17, 193, 209, 209, 209, 209, 181, 0, 9, 48, 23, + 10, 240, 89, 18, 81, 33, 82, 114, 129, 129, 130, 129, + 129, 81, 34, 81, 33, 82, 25, 0, 6, 48, 20, 4, + 67, 17, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 51, 16, 8, 240, 33, 49, 33, + 49, 49, 49, 51, 19, 33, 50, 0, 12, 16, 20, 4, + 67, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 19, 8, 5, 193, 34, 17, 0, + 9, 64, 7, 2, 65, 17, 240, 240, 16, 10, 4, 145, + 33, 49, 51, 34, 0, 6, 16, 22, 11, 0, 7, 50, + 129, 17, 129, 18, 97, 49, 97, 49, 102, 65, 81, 65, + 82, 35, 52, 0, 7, 22, 9, 240, 240, 247, 49, 81, + 33, 81, 38, 49, 66, 33, 81, 33, 81, 33, 66, 23, + 0, 5, 112, 23, 10, 0, 6, 83, 33, 34, 51, 18, + 97, 17, 113, 17, 145, 113, 18, 97, 34, 65, 84, 0, + 6, 80, 23, 10, 0, 6, 39, 65, 66, 49, 97, 33, + 97, 33, 97, 33, 97, 33, 97, 33, 81, 39, 0, 6, + 80, 22, 10, 0, 6, 40, 49, 145, 49, 85, 81, 49, + 81, 49, 33, 33, 97, 33, 82, 24, 0, 6, 64, 19, + 9, 240, 240, 248, 33, 81, 33, 129, 49, 69, 65, 49, + 65, 129, 116, 0, 6, 32, 21, 10, 0, 6, 68, 82, + 50, 33, 97, 33, 145, 145, 68, 33, 81, 50, 65, 69, + 0, 6, 80, 24, 10, 0, 6, 36, 20, 33, 81, 49, + 81, 55, 49, 81, 49, 81, 49, 81, 49, 81, 36, 20, + 0, 6, 48, 14, 4, 240, 83, 33, 49, 49, 49, 49, + 49, 49, 35, 240, 96, 17, 6, 240, 240, 20, 65, 81, + 81, 81, 81, 81, 33, 33, 35, 240, 240, 48, 24, 10, + 0, 6, 35, 51, 33, 65, 65, 49, 81, 33, 100, 97, + 49, 81, 65, 65, 66, 35, 51, 0, 6, 48, 18, 8, + 240, 240, 164, 81, 113, 113, 113, 113, 113, 65, 33, 65, + 23, 240, 240, 176, 36, 12, 0, 7, 67, 98, 34, 82, + 49, 17, 49, 17, 49, 17, 49, 17, 49, 18, 33, 17, + 49, 33, 17, 33, 49, 35, 33, 49, 49, 49, 35, 33, + 35, 0, 7, 80, 29, 10, 0, 6, 35, 51, 35, 49, + 49, 17, 49, 49, 18, 33, 49, 34, 17, 49, 49, 17, + 49, 66, 49, 66, 35, 65, 0, 6, 64, 23, 10, 0, + 6, 69, 66, 50, 33, 113, 17, 113, 17, 113, 17, 113, + 18, 82, 34, 50, 69, 0, 6, 80, 19, 8, 240, 240, + 166, 49, 65, 33, 65, 33, 65, 37, 49, 113, 113, 99, + 240, 240, 240, 28, 10, 0, 6, 84, 66, 65, 34, 97, + 17, 113, 17, 113, 17, 113, 33, 34, 17, 50, 18, 17, + 84, 145, 17, 130, 130, 240, 96, 24, 11, 0, 6, 118, + 97, 65, 81, 65, 85, 97, 49, 97, 49, 97, 50, 81, + 50, 33, 19, 51, 0, 7, 16, 22, 7, 240, 240, 99, + 17, 17, 50, 17, 65, 18, 100, 98, 17, 65, 18, 49, + 17, 19, 240, 240, 112, 20, 10, 0, 6, 41, 17, 49, + 49, 17, 49, 49, 81, 145, 145, 145, 145, 117, 0, 6, + 80, 24, 11, 0, 6, 116, 36, 33, 97, 49, 97, 49, + 97, 49, 97, 49, 97, 49, 97, 50, 65, 100, 0, 7, + 48, 23, 11, 0, 6, 116, 66, 49, 81, 66, 65, 81, + 49, 97, 49, 113, 17, 129, 17, 130, 161, 0, 7, 64, + 33, 15, 0, 9, 52, 35, 50, 49, 65, 65, 65, 66, + 49, 66, 33, 17, 33, 97, 33, 17, 33, 97, 17, 34, + 17, 114, 50, 130, 50, 129, 0, 10, 80, 23, 10, 0, + 6, 35, 51, 34, 49, 82, 17, 114, 145, 129, 17, 97, + 34, 65, 66, 35, 51, 0, 6, 48, 20, 10, 0, 6, + 35, 66, 34, 65, 65, 49, 97, 17, 115, 129, 145, 145, + 131, 0, 6, 96, 19, 8, 240, 240, 167, 17, 65, 98, + 97, 97, 97, 97, 65, 33, 65, 23, 240, 240, 176, 8, + 10, 0, 10, 9, 0, 12, 80, 9, 20, 0, 20, 15, + 4, 0, 25, 16, 11, 6, 209, 33, 33, 33, 17, 33, + 0, 10, 96, 9, 7, 242, 33, 17, 34, 0, 13, 48,}; + +//***************************************************************************** +// +// The font definition for the 18 point Cmsc font. +// +//***************************************************************************** +const tFont g_sFontCmsc18 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 18, + + // + // The height of the font. + // + 19, + + // + // The baseline of the font. + // + 14, + + // + // The offset to each character in the font. + // + { + 0, 5, 20, 35, 70, 103, 149, 184, + 194, 215, 236, 253, 273, 283, 291, 297, + 318, 346, 363, 386, 408, 431, 455, 482, + 501, 527, 554, 561, 572, 590, 601, 618, + 637, 681, 709, 736, 763, 791, 819, 843, + 868, 897, 914, 934, 964, 986, 1034, 1070, + 1098, 1120, 1153, 1182, 1204, 1226, 1255, 1283, + 1328, 1355, 1379, 1402, 1422, 1438, 1458, 1466, + 1473, 1483, 1505, 1527, 1550, 1573, 1595, 1614, + 1635, 1659, 1673, 1690, 1714, 1732, 1768, 1797, + 1820, 1839, 1867, 1891, 1913, 1933, 1957, 1980, + 2013, 2036, 2056, 2075, 2083, 2092, 2103, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmsc18Data +}; diff --git a/grlib/fonts/fontcmsc20.c b/grlib/fonts/fontcmsc20.c new file mode 100644 index 0000000..1165552 --- /dev/null +++ b/grlib/fonts/fontcmsc20.c @@ -0,0 +1,296 @@ +//***************************************************************************** +// +// fontcmsc20.c - Font definition for the 20pt Cmsc font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmsc +// Size: 20 point +// Bold: no +// Italic: no +// Memory usage: 2480 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 20 point Cmsc font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmsc20Data[2279] = +{ + 5, 9, 0, 22, 64, 16, 4, 2, 34, 34, 34, 34, + 34, 34, 33, 49, 49, 242, 34, 240, 112, 14, 9, 240, + 50, 49, 51, 19, 65, 49, 49, 65, 113, 0, 15, 38, + 17, 240, 240, 177, 65, 177, 49, 177, 65, 177, 65, 177, + 49, 177, 65, 111, 113, 65, 177, 49, 177, 65, 127, 97, + 49, 177, 65, 177, 65, 177, 65, 161, 65, 177, 65, 240, + 176, 36, 10, 225, 117, 65, 33, 33, 33, 49, 18, 33, + 49, 18, 34, 33, 101, 131, 113, 18, 34, 33, 33, 34, + 33, 33, 33, 49, 33, 49, 33, 17, 84, 129, 240, 240, + 240, 50, 18, 35, 129, 81, 50, 81, 81, 87, 81, 81, + 65, 97, 81, 49, 113, 81, 33, 129, 66, 33, 145, 49, + 33, 179, 33, 51, 161, 65, 33, 130, 49, 65, 98, 65, + 65, 97, 81, 65, 81, 97, 65, 66, 113, 33, 81, 131, + 0, 9, 64, 39, 17, 67, 210, 33, 193, 49, 193, 49, + 193, 33, 209, 18, 211, 84, 97, 113, 100, 81, 97, 49, + 81, 81, 66, 49, 97, 82, 17, 113, 113, 81, 49, 81, + 17, 50, 69, 52, 0, 11, 9, 5, 162, 51, 65, 49, + 0, 9, 16, 22, 6, 145, 65, 65, 81, 81, 65, 81, + 81, 81, 81, 81, 81, 81, 97, 81, 81, 97, 97, 81, + 32, 21, 6, 97, 97, 97, 81, 81, 97, 81, 81, 81, + 81, 81, 81, 81, 65, 81, 81, 65, 65, 176, 17, 9, + 49, 129, 81, 33, 33, 53, 97, 101, 49, 33, 33, 81, + 129, 0, 13, 21, 15, 0, 6, 49, 225, 225, 225, 225, + 225, 225, 141, 129, 225, 225, 225, 225, 225, 0, 6, 80, + 10, 5, 0, 8, 18, 51, 65, 65, 49, 208, 8, 7, + 0, 8, 101, 0, 8, 16, 8, 4, 0, 6, 66, 34, + 240, 112, 23, 10, 113, 145, 129, 145, 129, 145, 145, 129, + 145, 145, 129, 145, 129, 145, 145, 129, 145, 145, 129, 145, + 144, 30, 10, 240, 116, 81, 65, 49, 81, 49, 97, 33, + 97, 33, 97, 33, 97, 33, 97, 33, 97, 33, 97, 33, + 97, 49, 65, 84, 0, 6, 96, 19, 9, 240, 97, 84, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 87, 0, + 5, 112, 24, 10, 240, 116, 81, 65, 49, 97, 34, 81, + 34, 81, 145, 129, 129, 129, 114, 113, 81, 55, 40, 0, + 6, 64, 25, 10, 240, 116, 81, 65, 65, 81, 49, 81, + 129, 84, 161, 161, 145, 49, 81, 34, 81, 49, 65, 84, + 0, 6, 96, 25, 11, 240, 209, 161, 146, 129, 17, 113, + 33, 97, 49, 97, 49, 81, 65, 65, 81, 73, 129, 161, + 133, 0, 7, 16, 25, 10, 240, 102, 69, 81, 145, 145, + 19, 82, 49, 65, 81, 145, 145, 34, 81, 34, 81, 33, + 81, 69, 0, 6, 96, 29, 10, 240, 132, 81, 50, 49, + 66, 33, 145, 20, 66, 65, 49, 97, 33, 97, 33, 97, + 33, 97, 33, 97, 49, 65, 84, 0, 6, 96, 20, 11, + 240, 136, 55, 49, 81, 145, 161, 145, 161, 145, 161, 161, + 161, 161, 161, 0, 7, 96, 28, 11, 240, 148, 97, 65, + 65, 97, 49, 97, 66, 49, 100, 117, 81, 51, 49, 82, + 49, 98, 33, 97, 65, 66, 84, 0, 7, 64, 29, 10, + 240, 116, 81, 65, 49, 81, 49, 97, 33, 97, 33, 97, + 33, 97, 49, 66, 68, 17, 129, 50, 65, 50, 49, 84, + 0, 6, 112, 10, 4, 240, 210, 34, 240, 50, 34, 240, + 112, 13, 5, 240, 240, 83, 35, 240, 115, 35, 65, 65, + 49, 208, 19, 15, 0, 8, 114, 178, 178, 178, 178, 178, + 194, 243, 242, 242, 242, 242, 0, 7, 96, 11, 16, 0, + 16, 14, 0, 6, 46, 0, 14, 32, 18, 15, 0, 7, + 66, 242, 242, 243, 242, 242, 194, 163, 162, 178, 163, 0, + 10, 112, 20, 9, 240, 69, 49, 81, 33, 81, 129, 113, + 113, 129, 129, 129, 240, 162, 114, 0, 6, 16, 44, 16, + 240, 240, 101, 150, 18, 97, 17, 65, 34, 52, 81, 33, + 49, 17, 97, 49, 33, 17, 97, 49, 33, 17, 97, 49, + 33, 18, 81, 49, 49, 17, 66, 33, 65, 36, 35, 81, + 242, 114, 119, 0, 10, 80, 31, 16, 113, 226, 226, 209, + 18, 193, 18, 193, 18, 177, 50, 161, 50, 161, 50, 145, + 82, 136, 129, 82, 113, 114, 97, 114, 68, 85, 0, 10, + 32, 29, 14, 240, 218, 97, 98, 81, 114, 65, 114, 65, + 98, 87, 113, 98, 81, 129, 65, 129, 65, 129, 65, 129, + 65, 98, 58, 0, 9, 32, 28, 15, 240, 240, 69, 49, + 66, 84, 50, 130, 49, 146, 33, 177, 33, 225, 225, 225, + 177, 49, 161, 50, 129, 82, 97, 134, 0, 10, 30, 15, + 240, 249, 129, 98, 97, 129, 81, 129, 81, 145, 65, 145, + 65, 145, 65, 145, 65, 145, 65, 129, 81, 129, 81, 98, + 73, 0, 10, 16, 29, 15, 240, 252, 81, 129, 81, 129, + 81, 145, 65, 81, 129, 81, 135, 129, 81, 129, 81, 129, + 145, 65, 145, 65, 130, 44, 0, 9, 96, 25, 14, 240, + 220, 65, 129, 65, 129, 65, 209, 81, 113, 81, 119, 113, + 81, 113, 81, 113, 209, 209, 182, 0, 9, 96, 27, 15, + 240, 240, 69, 130, 83, 65, 145, 65, 145, 49, 225, 225, + 225, 117, 33, 161, 65, 145, 81, 129, 98, 82, 118, 0, + 10, 31, 15, 240, 245, 53, 65, 113, 97, 113, 97, 113, + 97, 113, 97, 113, 105, 97, 113, 97, 113, 97, 113, 97, + 113, 97, 113, 69, 53, 0, 9, 80, 18, 7, 229, 65, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 69, 240, + 240, 112, 21, 11, 240, 166, 129, 161, 161, 161, 161, 161, + 161, 161, 161, 66, 65, 66, 50, 85, 0, 7, 64, 34, + 16, 240, 240, 37, 68, 81, 113, 113, 97, 129, 81, 145, + 50, 161, 34, 177, 17, 18, 162, 50, 145, 66, 145, 82, + 129, 98, 113, 114, 69, 54, 0, 10, 32, 22, 12, 240, + 150, 129, 177, 177, 177, 177, 177, 177, 177, 177, 97, 65, + 97, 65, 82, 42, 0, 7, 96, 52, 19, 240, 240, 133, + 132, 67, 130, 97, 17, 113, 17, 97, 18, 97, 17, 97, + 33, 81, 33, 97, 34, 65, 33, 97, 34, 65, 33, 97, + 50, 33, 49, 97, 50, 33, 49, 97, 65, 17, 65, 97, + 67, 65, 97, 81, 81, 69, 49, 53, 0, 12, 16, 40, + 16, 240, 240, 36, 85, 67, 97, 97, 18, 81, 97, 19, + 65, 97, 34, 65, 97, 50, 49, 97, 66, 33, 97, 66, + 33, 97, 82, 17, 97, 99, 97, 99, 97, 114, 69, 97, + 0, 10, 64, 31, 15, 240, 240, 69, 130, 82, 82, 114, + 65, 145, 49, 177, 33, 177, 33, 177, 33, 177, 33, 177, + 49, 145, 66, 114, 82, 82, 133, 0, 10, 16, 24, 13, + 240, 185, 97, 97, 81, 113, 65, 113, 65, 113, 65, 97, + 87, 97, 193, 193, 193, 193, 165, 0, 9, 16, 40, 15, + 240, 240, 85, 130, 81, 97, 129, 65, 145, 49, 177, 33, + 177, 33, 177, 33, 177, 34, 161, 49, 82, 33, 81, 49, + 17, 33, 98, 17, 34, 149, 225, 33, 178, 17, 195, 194, + 240, 48, 31, 17, 240, 240, 73, 161, 97, 145, 113, 129, + 113, 129, 97, 151, 161, 82, 145, 97, 145, 97, 145, 98, + 129, 98, 129, 98, 49, 37, 84, 0, 11, 25, 11, 240, + 148, 97, 66, 49, 97, 49, 97, 50, 163, 150, 147, 161, + 33, 113, 33, 113, 34, 81, 85, 0, 7, 48, 25, 15, + 240, 240, 27, 50, 65, 66, 33, 81, 81, 33, 81, 81, + 129, 225, 225, 225, 225, 225, 225, 225, 183, 0, 10, 32, + 16, 240, 240, 37, 69, 65, 129, 97, 129, 97, 129, 97, + 129, 97, 129, 97, 129, 97, 129, 97, 129, 97, 129, 98, + 97, 130, 66, 164, 0, 10, 112, 29, 16, 240, 240, 37, + 84, 65, 130, 82, 113, 98, 97, 130, 81, 130, 81, 146, + 49, 162, 49, 177, 33, 194, 17, 210, 226, 226, 0, 11, + 48, 22, 240, 240, 229, 38, 52, 50, 98, 97, 98, 82, + 97, 98, 83, 81, 113, 65, 18, 65, 130, 49, 33, 65, + 130, 49, 34, 33, 161, 33, 50, 33, 162, 17, 66, 17, + 162, 17, 67, 194, 83, 194, 98, 240, 81, 0, 14, 96, + 31, 16, 240, 240, 37, 68, 82, 97, 130, 65, 162, 33, + 194, 17, 195, 226, 209, 18, 177, 50, 161, 50, 145, 82, + 113, 114, 68, 85, 0, 10, 32, 30, 17, 240, 240, 70, + 69, 67, 98, 114, 97, 146, 65, 177, 49, 194, 33, 211, + 241, 240, 17, 240, 17, 240, 17, 240, 17, 229, 0, 11, + 64, 25, 12, 240, 154, 34, 97, 49, 98, 49, 82, 146, + 162, 146, 146, 161, 162, 81, 50, 97, 49, 98, 42, 0, + 7, 96, 23, 5, 3, 33, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 67, + 32, 15, 9, 240, 65, 113, 50, 49, 49, 67, 19, 49, + 50, 0, 14, 112, 23, 5, 3, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 35, 32, 9, 7, 240, 17, 66, 18, 0, 14, 32, + 7, 4, 130, 34, 0, 8, 32, 9, 5, 242, 49, 67, + 50, 0, 8, 48, 25, 13, 0, 7, 17, 193, 179, 145, + 33, 145, 34, 113, 65, 133, 113, 66, 81, 97, 81, 98, + 51, 68, 0, 8, 48, 24, 11, 0, 6, 120, 65, 82, + 49, 97, 49, 82, 54, 81, 82, 49, 97, 49, 97, 49, + 82, 39, 0, 7, 48, 23, 12, 0, 7, 116, 33, 50, + 67, 49, 113, 33, 129, 33, 177, 177, 129, 49, 113, 50, + 66, 101, 0, 8, 25, 12, 0, 7, 71, 97, 82, 65, + 97, 65, 113, 49, 113, 49, 113, 49, 113, 49, 97, 65, + 82, 55, 0, 8, 16, 24, 12, 0, 7, 73, 65, 98, + 49, 113, 49, 65, 102, 97, 65, 97, 65, 97, 113, 49, + 98, 42, 0, 7, 96, 22, 12, 0, 7, 73, 65, 97, + 65, 113, 49, 65, 102, 97, 65, 97, 65, 97, 177, 164, + 0, 8, 64, 23, 12, 0, 7, 116, 98, 66, 50, 97, + 49, 177, 177, 84, 33, 113, 65, 97, 81, 66, 100, 0, + 8, 16, 26, 11, 0, 6, 116, 20, 49, 81, 65, 81, + 65, 81, 71, 65, 81, 65, 81, 65, 81, 65, 81, 52, + 20, 0, 7, 16, 15, 5, 240, 163, 49, 65, 65, 65, + 65, 65, 65, 65, 51, 240, 192, 19, 8, 240, 240, 196, + 97, 113, 113, 113, 113, 113, 49, 49, 49, 34, 67, 240, + 240, 224, 27, 12, 0, 7, 67, 67, 49, 81, 81, 65, + 97, 34, 113, 18, 130, 33, 113, 50, 97, 66, 81, 82, + 51, 52, 0, 7, 96, 20, 10, 0, 6, 36, 113, 145, + 145, 145, 145, 145, 81, 49, 65, 65, 65, 55, 0, 6, + 80, 38, 14, 0, 8, 99, 99, 51, 82, 65, 17, 65, + 17, 65, 17, 65, 17, 65, 18, 49, 17, 65, 33, 33, + 33, 65, 34, 17, 33, 65, 50, 49, 65, 50, 49, 51, + 99, 0, 9, 32, 12, 0, 7, 67, 67, 51, 65, 65, + 18, 49, 65, 18, 49, 65, 34, 33, 65, 50, 17, 65, + 65, 17, 65, 67, 65, 82, 51, 81, 0, 7, 112, 25, + 12, 0, 7, 116, 98, 66, 65, 97, 49, 129, 33, 129, + 33, 129, 33, 129, 49, 97, 66, 66, 100, 0, 8, 16, + 19, 10, 0, 6, 39, 65, 81, 49, 81, 49, 81, 54, + 65, 145, 145, 145, 132, 0, 7, 30, 12, 0, 7, 116, + 98, 66, 65, 97, 49, 129, 33, 129, 33, 129, 33, 129, + 49, 34, 33, 81, 17, 18, 116, 193, 17, 147, 161, 240, + 192, 26, 13, 0, 8, 22, 129, 66, 97, 81, 97, 81, + 102, 113, 50, 113, 65, 113, 66, 97, 66, 33, 36, 51, + 0, 8, 64, 24, 9, 0, 5, 100, 17, 34, 50, 33, + 81, 33, 81, 52, 116, 33, 81, 33, 81, 34, 50, 33, + 20, 0, 6, 20, 12, 0, 7, 89, 49, 49, 49, 33, + 65, 49, 113, 177, 177, 177, 177, 177, 149, 0, 8, 26, + 13, 0, 8, 20, 52, 49, 113, 65, 113, 65, 113, 65, + 113, 65, 113, 65, 113, 65, 113, 81, 66, 117, 0, 8, + 96, 23, 14, 0, 8, 100, 83, 65, 97, 98, 81, 113, + 65, 130, 49, 145, 33, 162, 17, 178, 194, 0, 11, 48, + 36, 18, 0, 11, 36, 36, 51, 65, 81, 81, 82, 65, + 65, 98, 51, 49, 113, 49, 17, 49, 114, 17, 34, 17, + 145, 17, 49, 17, 146, 66, 162, 66, 177, 81, 0, 12, + 24, 12, 0, 7, 68, 36, 50, 65, 98, 33, 131, 162, + 162, 145, 33, 113, 50, 81, 82, 51, 52, 0, 7, 96, + 22, 13, 0, 8, 20, 67, 65, 81, 98, 65, 114, 33, + 145, 17, 177, 193, 193, 193, 179, 0, 8, 112, 21, 10, + 0, 6, 40, 33, 81, 49, 66, 114, 129, 129, 129, 130, + 65, 49, 81, 40, 0, 6, 64, 8, 12, 0, 13, 74, + 0, 15, 32, 8, 23, 0, 25, 127, 6, 0, 29, 14, + 8, 240, 34, 18, 49, 33, 50, 18, 49, 33, 0, 14, + 64, 10, 9, 240, 67, 33, 33, 35, 0, 18, 48, +}; + +//***************************************************************************** +// +// The font definition for the 20 point Cmsc font. +// +//***************************************************************************** +const tFont g_sFontCmsc20 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 20, + + // + // The height of the font. + // + 20, + + // + // The baseline of the font. + // + 15, + + // + // The offset to each character in the font. + // + { + 0, 5, 21, 35, 73, 109, 159, 198, + 207, 229, 250, 267, 288, 298, 306, 314, + 337, 367, 386, 410, 435, 460, 485, 514, + 534, 562, 591, 601, 614, 633, 644, 662, + 682, 726, 757, 786, 814, 844, 873, 898, + 925, 956, 974, 995, 1029, 1051, 1103, 1143, + 1174, 1198, 1238, 1269, 1294, 1319, 1351, 1380, + 1428, 1459, 1489, 1514, 1537, 1552, 1575, 1584, + 1591, 1600, 1625, 1649, 1672, 1697, 1721, 1743, + 1766, 1792, 1807, 1826, 1853, 1873, 1911, 1943, + 1968, 1987, 2017, 2043, 2067, 2087, 2113, 2136, + 2172, 2196, 2218, 2239, 2247, 2255, 2269, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmsc20Data +}; diff --git a/grlib/fonts/fontcmsc22.c b/grlib/fonts/fontcmsc22.c new file mode 100644 index 0000000..ddf08da --- /dev/null +++ b/grlib/fonts/fontcmsc22.c @@ -0,0 +1,322 @@ +//***************************************************************************** +// +// fontcmsc22.c - Font definition for the 22pt Cmsc font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmsc +// Size: 22 point +// Bold: no +// Italic: no +// Memory usage: 2784 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 22 point Cmsc font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmsc22Data[2583] = +{ + 5, 9, 0, 24, 96, 17, 4, 66, 34, 34, 34, 34, + 34, 34, 34, 33, 49, 49, 242, 34, 240, 112, 17, 10, + 240, 82, 50, 51, 35, 65, 65, 65, 65, 49, 65, 49, + 65, 0, 18, 43, 18, 0, 6, 17, 177, 65, 193, 65, + 193, 65, 177, 65, 193, 65, 193, 65, 111, 1, 113, 65, + 193, 65, 193, 65, 127, 1, 97, 65, 193, 65, 177, 81, + 177, 65, 193, 65, 193, 65, 177, 240, 240, 48, 42, 12, + 240, 17, 150, 82, 17, 34, 50, 33, 65, 34, 33, 35, + 34, 33, 35, 35, 17, 132, 150, 129, 19, 113, 35, 35, + 17, 50, 34, 33, 50, 33, 49, 50, 49, 33, 34, 85, + 145, 0, 6, 112, 57, 19, 35, 145, 82, 33, 129, 81, + 51, 66, 82, 65, 21, 98, 65, 81, 98, 65, 65, 114, + 65, 49, 130, 65, 49, 146, 33, 49, 179, 49, 67, 161, + 66, 17, 161, 50, 49, 129, 66, 49, 113, 82, 49, 98, + 82, 49, 97, 98, 49, 81, 130, 17, 240, 19, 0, 9, + 112, 44, 18, 240, 130, 241, 33, 210, 33, 210, 33, 210, + 33, 210, 17, 226, 17, 242, 85, 98, 98, 113, 17, 97, + 113, 34, 65, 113, 66, 33, 114, 81, 17, 130, 97, 97, + 50, 65, 18, 50, 69, 52, 0, 11, 96, 11, 5, 162, + 51, 65, 65, 49, 49, 0, 9, 32, 25, 8, 81, 97, + 97, 98, 97, 98, 97, 98, 98, 98, 98, 98, 98, 98, + 98, 113, 114, 113, 114, 113, 129, 129, 32, 25, 8, 1, + 129, 129, 114, 114, 98, 113, 114, 98, 98, 98, 98, 98, + 98, 98, 97, 98, 97, 113, 97, 97, 97, 112, 21, 12, + 66, 162, 162, 114, 18, 18, 83, 18, 130, 130, 19, 66, + 34, 34, 98, 162, 0, 18, 96, 36, 17, 0, 7, 33, + 240, 17, 240, 17, 240, 17, 240, 17, 240, 17, 240, 17, + 240, 17, 159, 145, 240, 17, 240, 17, 240, 17, 240, 17, + 240, 17, 240, 17, 0, 7, 64, 11, 5, 0, 9, 50, + 51, 65, 65, 49, 49, 144, 8, 8, 0, 12, 6, 0, + 9, 32, 8, 4, 0, 7, 66, 34, 240, 112, 25, 11, + 129, 161, 145, 161, 145, 161, 161, 145, 161, 161, 145, 161, + 145, 161, 161, 145, 161, 145, 161, 161, 145, 161, 160, 33, + 12, 240, 240, 148, 98, 66, 65, 82, 50, 98, 34, 98, + 34, 98, 34, 98, 34, 98, 34, 98, 34, 98, 34, 98, + 50, 66, 66, 66, 100, 0, 8, 16, 21, 10, 240, 240, + 50, 85, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 88, 0, 6, 64, 27, 11, 240, 240, 85, 81, 66, + 49, 98, 34, 82, 34, 82, 146, 130, 145, 145, 145, 130, + 65, 49, 97, 56, 40, 0, 7, 32, 26, 12, 240, 240, + 149, 97, 66, 66, 81, 66, 81, 177, 161, 116, 194, 178, + 162, 50, 82, 35, 82, 49, 82, 86, 0, 8, 27, 12, + 240, 240, 209, 162, 162, 132, 113, 34, 113, 34, 97, 50, + 81, 66, 81, 66, 65, 82, 74, 130, 162, 134, 0, 7, + 96, 28, 11, 240, 240, 71, 69, 97, 161, 161, 20, 82, + 50, 65, 81, 162, 146, 34, 82, 34, 82, 33, 97, 65, + 66, 84, 0, 7, 64, 32, 12, 240, 240, 165, 82, 50, + 66, 66, 65, 162, 20, 83, 66, 51, 81, 50, 98, 34, + 98, 34, 98, 49, 98, 49, 97, 81, 66, 100, 0, 8, + 16, 23, 12, 240, 240, 121, 56, 49, 97, 65, 97, 161, + 161, 177, 161, 177, 177, 162, 162, 162, 162, 0, 8, 48, + 32, 12, 240, 240, 148, 113, 65, 82, 81, 66, 81, 66, + 81, 83, 33, 116, 114, 19, 82, 66, 50, 98, 34, 113, + 34, 97, 66, 66, 100, 0, 8, 16, 31, 12, 240, 240, + 148, 98, 66, 50, 97, 50, 98, 34, 98, 34, 98, 34, + 98, 50, 67, 84, 18, 162, 146, 66, 65, 82, 50, 85, + 0, 8, 32, 11, 4, 240, 240, 34, 34, 240, 114, 34, + 240, 112, 13, 5, 240, 240, 163, 35, 240, 195, 35, 65, + 65, 49, 208, 25, 16, 0, 11, 66, 194, 194, 194, 194, + 194, 194, 243, 240, 18, 240, 18, 240, 18, 240, 18, 240, + 18, 0, 8, 32, 11, 17, 0, 19, 31, 0, 6, 95, + 0, 17, 32, 24, 16, 0, 10, 2, 240, 18, 240, 18, + 240, 19, 240, 18, 240, 18, 242, 194, 179, 178, 194, 179, + 0, 11, 80, 24, 11, 240, 149, 81, 82, 34, 82, 34, + 82, 146, 129, 145, 146, 145, 161, 161, 240, 240, 19, 131, + 0, 7, 64, 53, 18, 240, 240, 182, 163, 82, 114, 51, + 49, 81, 50, 49, 49, 65, 50, 66, 18, 33, 50, 82, + 33, 33, 50, 82, 33, 33, 50, 82, 33, 33, 50, 82, + 33, 33, 66, 66, 33, 49, 50, 51, 18, 50, 67, 35, + 82, 240, 50, 114, 151, 0, 11, 112, 34, 17, 240, 145, + 240, 17, 243, 227, 209, 33, 209, 34, 193, 34, 177, 65, + 177, 66, 161, 66, 153, 129, 98, 129, 98, 113, 130, 97, + 130, 69, 70, 0, 10, 112, 34, 16, 240, 240, 43, 114, + 99, 82, 114, 82, 114, 82, 114, 82, 98, 104, 130, 98, + 98, 114, 82, 130, 66, 130, 66, 130, 66, 114, 82, 99, + 59, 0, 10, 80, 34, 16, 240, 240, 117, 49, 83, 65, + 18, 66, 115, 50, 146, 50, 161, 34, 177, 34, 226, 226, + 226, 177, 50, 161, 50, 161, 66, 129, 99, 66, 149, 0, + 10, 96, 35, 17, 240, 240, 75, 130, 98, 114, 114, 98, + 130, 82, 145, 82, 146, 66, 146, 66, 146, 66, 146, 66, + 146, 66, 145, 82, 130, 82, 114, 98, 98, 91, 0, 11, + 48, 34, 16, 240, 240, 45, 82, 130, 66, 145, 66, 145, + 66, 81, 49, 66, 81, 130, 66, 136, 130, 81, 130, 81, + 130, 226, 145, 66, 145, 66, 130, 46, 0, 10, 32, 29, + 15, 240, 252, 82, 113, 82, 129, 66, 129, 66, 129, 66, + 65, 130, 65, 135, 130, 65, 130, 65, 130, 210, 210, 210, + 183, 0, 10, 48, 36, 17, 240, 240, 148, 49, 114, 66, + 17, 98, 114, 82, 145, 82, 145, 66, 161, 66, 242, 242, + 242, 103, 49, 146, 82, 130, 98, 114, 114, 81, 17, 149, + 33, 0, 11, 16, 36, 17, 240, 240, 70, 54, 66, 114, + 98, 114, 98, 114, 98, 114, 98, 114, 98, 114, 107, 98, + 114, 98, 114, 98, 114, 98, 114, 98, 114, 98, 114, 70, + 54, 0, 10, 112, 21, 8, 240, 22, 66, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 70, 240, 240, + 192, 23, 12, 240, 199, 130, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 66, 66, 66, 51, 85, 0, 8, 32, + 38, 18, 240, 240, 102, 84, 82, 129, 114, 113, 130, 97, + 146, 81, 162, 50, 178, 35, 178, 17, 18, 179, 50, 162, + 82, 146, 82, 146, 98, 130, 114, 114, 115, 70, 70, 0, + 11, 64, 24, 14, 240, 215, 146, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 113, 66, 113, 66, 113, 66, 98, 44, + 0, 9, 59, 21, 240, 240, 197, 164, 67, 147, 97, 17, + 129, 18, 97, 18, 113, 18, 97, 18, 113, 18, 97, 34, + 81, 34, 97, 34, 81, 34, 97, 49, 65, 50, 97, 50, + 49, 50, 97, 50, 33, 66, 97, 66, 17, 66, 97, 66, + 17, 66, 97, 82, 82, 97, 82, 82, 69, 134, 0, 13, + 48, 46, 17, 240, 240, 69, 85, 67, 113, 97, 18, 97, + 97, 19, 81, 97, 34, 81, 97, 50, 65, 97, 51, 49, + 97, 66, 49, 97, 82, 33, 97, 83, 17, 97, 98, 17, + 97, 115, 97, 130, 97, 130, 69, 113, 0, 11, 16, 35, + 16, 240, 240, 117, 146, 66, 114, 98, 82, 130, 65, 161, + 50, 162, 34, 162, 34, 162, 34, 162, 34, 162, 50, 130, + 66, 130, 82, 98, 114, 66, 150, 0, 10, 96, 27, 15, + 240, 250, 114, 98, 82, 114, 66, 114, 66, 114, 66, 114, + 66, 98, 88, 114, 210, 210, 210, 210, 210, 182, 0, 10, + 64, 45, 17, 240, 240, 165, 147, 82, 98, 129, 82, 146, + 66, 162, 34, 178, 34, 178, 34, 178, 34, 178, 34, 178, + 50, 161, 66, 82, 34, 82, 49, 17, 33, 130, 17, 34, + 181, 240, 17, 49, 194, 33, 212, 211, 240, 80, 36, 18, + 240, 240, 106, 162, 98, 130, 114, 114, 114, 114, 114, 114, + 114, 114, 83, 135, 178, 82, 146, 98, 130, 98, 130, 98, + 130, 98, 130, 99, 33, 38, 84, 0, 11, 80, 32, 13, + 240, 228, 33, 66, 65, 17, 50, 98, 50, 113, 50, 113, + 51, 182, 135, 164, 179, 33, 130, 33, 130, 34, 114, 35, + 82, 49, 37, 0, 8, 96, 28, 17, 240, 240, 94, 49, + 82, 81, 49, 82, 81, 33, 98, 81, 146, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 200, 0, 11, 32, 36, 17, + 240, 240, 70, 69, 66, 129, 98, 129, 98, 129, 98, 129, + 98, 129, 98, 129, 98, 129, 98, 129, 98, 129, 98, 129, + 98, 129, 114, 97, 146, 65, 181, 0, 11, 64, 36, 18, + 240, 240, 102, 85, 66, 145, 98, 129, 130, 113, 130, 113, + 130, 97, 162, 81, 162, 65, 194, 49, 194, 33, 226, 17, + 226, 17, 227, 240, 18, 240, 17, 0, 12, 64, 53, 24, + 0, 6, 5, 54, 68, 66, 98, 113, 98, 98, 113, 98, + 99, 97, 114, 83, 81, 130, 65, 18, 81, 130, 65, 34, + 49, 162, 49, 34, 49, 162, 33, 66, 33, 162, 33, 66, + 17, 194, 17, 66, 17, 195, 99, 195, 98, 225, 114, 225, + 129, 0, 16, 35, 18, 240, 240, 102, 69, 83, 97, 146, + 81, 178, 65, 194, 33, 212, 242, 240, 34, 241, 18, 209, + 34, 193, 66, 177, 82, 145, 99, 114, 114, 85, 86, 0, + 11, 64, 35, 18, 240, 240, 102, 100, 66, 145, 114, 113, + 131, 97, 146, 81, 178, 49, 195, 33, 210, 17, 242, 240, + 18, 240, 18, 240, 18, 240, 18, 240, 18, 230, 0, 12, + 16, 29, 13, 240, 187, 34, 98, 49, 114, 49, 98, 65, + 82, 178, 162, 162, 178, 162, 162, 97, 66, 97, 50, 113, + 34, 114, 43, 0, 8, 48, 24, 5, 83, 33, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 67, 32, 19, 9, 240, 145, 49, 49, + 49, 49, 65, 49, 65, 49, 67, 19, 50, 34, 0, 14, + 112, 24, 5, 83, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 35, + 32, 11, 8, 240, 50, 81, 33, 49, 65, 0, 17, 32, + 7, 4, 194, 34, 0, 8, 96, 12, 5, 193, 49, 49, + 65, 65, 67, 50, 0, 8, 48, 27, 14, 0, 9, 65, + 194, 177, 17, 177, 18, 161, 18, 145, 49, 145, 50, 129, + 50, 120, 97, 82, 81, 113, 67, 84, 0, 9, 26, 14, + 0, 10, 74, 98, 82, 82, 97, 82, 82, 87, 114, 82, + 82, 98, 66, 98, 66, 98, 66, 82, 58, 0, 9, 32, + 26, 13, 0, 10, 36, 33, 66, 67, 50, 98, 34, 129, + 34, 129, 34, 178, 178, 129, 50, 113, 66, 66, 116, 0, + 8, 96, 27, 14, 0, 10, 73, 114, 66, 98, 82, 82, + 98, 66, 98, 66, 98, 66, 98, 66, 98, 66, 82, 82, + 66, 73, 0, 9, 48, 27, 13, 0, 9, 107, 66, 82, + 66, 97, 66, 49, 33, 66, 49, 118, 114, 49, 114, 49, + 114, 97, 66, 97, 43, 0, 8, 48, 24, 13, 0, 9, + 106, 82, 82, 66, 97, 66, 49, 33, 66, 49, 118, 114, + 49, 114, 49, 114, 178, 150, 0, 9, 27, 14, 0, 11, + 4, 33, 82, 67, 66, 113, 50, 129, 50, 194, 194, 85, + 49, 114, 66, 98, 82, 67, 116, 33, 0, 9, 16, 28, + 15, 0, 11, 38, 22, 66, 82, 98, 82, 98, 82, 98, + 82, 105, 98, 82, 98, 82, 98, 82, 98, 82, 70, 22, + 0, 9, 80, 18, 8, 0, 6, 6, 66, 98, 98, 98, + 98, 98, 98, 98, 98, 70, 240, 240, 192, 20, 9, 0, + 7, 5, 98, 114, 114, 114, 114, 114, 114, 50, 34, 50, + 34, 68, 0, 6, 16, 29, 15, 0, 11, 38, 52, 66, + 97, 98, 66, 114, 49, 146, 33, 162, 19, 147, 34, 130, + 66, 114, 81, 114, 82, 70, 52, 0, 9, 80, 20, 12, + 0, 9, 6, 130, 162, 162, 162, 162, 162, 162, 162, 81, + 66, 66, 42, 0, 7, 96, 44, 18, 0, 13, 68, 132, + 67, 99, 97, 17, 81, 18, 97, 18, 65, 18, 97, 18, + 49, 34, 97, 33, 49, 34, 97, 34, 33, 34, 97, 49, + 17, 50, 97, 51, 50, 97, 65, 66, 69, 33, 38, 0, + 11, 64, 35, 15, 0, 11, 36, 69, 67, 81, 97, 18, + 65, 97, 18, 65, 97, 34, 49, 97, 50, 33, 97, 66, + 17, 97, 81, 17, 97, 83, 97, 98, 69, 81, 0, 9, + 112, 27, 14, 0, 11, 4, 130, 66, 82, 98, 50, 130, + 34, 130, 34, 130, 34, 130, 34, 130, 50, 98, 82, 66, + 118, 0, 9, 48, 21, 13, 0, 9, 105, 98, 66, 82, + 82, 66, 82, 66, 66, 87, 98, 178, 178, 178, 150, 0, + 9, 34, 14, 0, 11, 5, 114, 66, 82, 98, 50, 130, + 34, 130, 34, 130, 34, 130, 34, 129, 66, 34, 34, 82, + 17, 19, 132, 49, 161, 33, 164, 178, 240, 240, 16, 28, + 15, 0, 11, 41, 130, 66, 114, 82, 98, 82, 98, 66, + 118, 146, 50, 130, 66, 114, 66, 114, 66, 33, 38, 51, + 0, 9, 96, 26, 11, 0, 8, 68, 17, 66, 50, 50, + 81, 50, 81, 52, 149, 162, 50, 82, 34, 82, 35, 50, + 49, 36, 0, 7, 48, 24, 14, 0, 10, 76, 33, 66, + 65, 33, 66, 65, 33, 66, 65, 114, 194, 194, 194, 194, + 194, 166, 0, 9, 48, 28, 15, 0, 11, 38, 37, 66, + 97, 98, 97, 98, 97, 98, 97, 98, 97, 98, 97, 98, + 97, 98, 97, 114, 65, 149, 0, 10, 16, 26, 14, 0, + 10, 68, 68, 50, 97, 82, 97, 98, 65, 114, 65, 129, + 49, 146, 33, 161, 17, 179, 194, 193, 0, 9, 96, 39, + 20, 0, 15, 5, 36, 52, 66, 66, 81, 98, 81, 81, + 113, 67, 49, 130, 51, 49, 130, 33, 33, 49, 145, 33, + 34, 17, 163, 65, 17, 178, 66, 194, 66, 193, 97, 0, + 13, 48, 26, 14, 0, 10, 68, 52, 82, 65, 114, 49, + 146, 17, 178, 210, 177, 17, 161, 34, 129, 66, 98, 82, + 67, 69, 0, 9, 24, 14, 0, 10, 68, 83, 50, 113, + 82, 81, 114, 49, 146, 17, 162, 17, 178, 194, 194, 194, + 166, 0, 9, 48, 22, 11, 0, 8, 41, 34, 81, 49, + 82, 130, 130, 145, 145, 146, 130, 81, 49, 82, 41, 0, + 7, 16, 8, 13, 0, 16, 43, 0, 18, 16, 9, 25, + 0, 31, 47, 8, 0, 34, 80, 14, 9, 240, 66, 34, + 50, 34, 49, 49, 49, 49, 0, 18, 64, 6, 5, 243, + 0, 11, 64, +}; + +//***************************************************************************** +// +// The font definition for the 22 point Cmsc font. +// +//***************************************************************************** +const tFont g_sFontCmsc22 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 22, + + // + // The height of the font. + // + 22, + + // + // The baseline of the font. + // + 17, + + // + // The offset to each character in the font. + // + { + 0, 5, 22, 39, 82, 124, 181, 225, + 236, 261, 286, 307, 343, 354, 362, 370, + 395, 428, 449, 476, 502, 529, 557, 589, + 612, 644, 675, 686, 699, 724, 735, 759, + 783, 836, 870, 904, 938, 973, 1007, 1036, + 1072, 1108, 1129, 1152, 1190, 1214, 1273, 1319, + 1354, 1381, 1426, 1462, 1494, 1522, 1558, 1594, + 1647, 1682, 1717, 1746, 1770, 1789, 1813, 1824, + 1831, 1843, 1870, 1896, 1922, 1949, 1976, 2000, + 2027, 2055, 2073, 2093, 2122, 2142, 2186, 2221, + 2248, 2269, 2303, 2331, 2357, 2381, 2409, 2435, + 2474, 2500, 2524, 2546, 2554, 2563, 2577, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmsc22Data +}; diff --git a/grlib/fonts/fontcmsc24.c b/grlib/fonts/fontcmsc24.c new file mode 100644 index 0000000..9421e57 --- /dev/null +++ b/grlib/fonts/fontcmsc24.c @@ -0,0 +1,338 @@ +//***************************************************************************** +// +// fontcmsc24.c - Font definition for the 24pt Cmsc font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmsc +// Size: 24 point +// Bold: no +// Italic: no +// Memory usage: 2984 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 24 point Cmsc font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmsc24Data[2782] = +{ + 4, 10, 0, 30, 20, 5, 83, 35, 35, 35, 35, 35, + 49, 65, 65, 65, 65, 65, 240, 51, 35, 240, 240, 32, + 20, 10, 240, 82, 50, 51, 35, 65, 65, 65, 65, 49, + 65, 65, 65, 49, 65, 0, 19, 32, 47, 20, 0, 6, + 1, 81, 209, 81, 209, 81, 209, 65, 209, 81, 209, 81, + 209, 65, 127, 3, 129, 81, 209, 65, 209, 81, 209, 81, + 143, 3, 113, 65, 209, 81, 209, 81, 209, 65, 209, 81, + 209, 81, 209, 81, 0, 6, 32, 43, 12, 240, 17, 150, + 82, 17, 34, 50, 33, 65, 34, 33, 35, 34, 33, 35, + 35, 17, 132, 134, 134, 113, 19, 113, 35, 35, 17, 50, + 34, 33, 50, 33, 49, 50, 49, 33, 34, 85, 145, 0, + 8, 48, 63, 20, 35, 161, 82, 33, 129, 97, 51, 82, + 82, 65, 22, 98, 65, 81, 114, 65, 81, 114, 65, 65, + 145, 65, 49, 162, 33, 65, 194, 65, 65, 209, 65, 18, + 177, 49, 49, 161, 50, 65, 129, 66, 65, 129, 66, 65, + 113, 82, 65, 97, 98, 65, 82, 113, 50, 81, 130, 33, + 240, 19, 0, 10, 64, 47, 19, 240, 147, 242, 33, 210, + 49, 210, 49, 210, 49, 210, 33, 226, 17, 240, 19, 85, + 98, 114, 113, 18, 97, 113, 34, 81, 113, 66, 65, 98, + 82, 33, 114, 99, 130, 114, 81, 50, 66, 18, 49, 85, + 68, 0, 14, 96, 12, 5, 162, 51, 65, 65, 49, 65, + 49, 0, 9, 112, 27, 8, 81, 97, 97, 113, 97, 98, + 98, 97, 98, 98, 98, 98, 98, 98, 98, 98, 113, 114, + 98, 113, 114, 114, 113, 129, 32, 27, 8, 1, 129, 129, + 114, 113, 114, 98, 113, 114, 98, 98, 98, 98, 98, 98, + 98, 97, 98, 98, 97, 98, 97, 97, 97, 112, 22, 12, + 66, 162, 162, 49, 35, 18, 34, 67, 18, 130, 130, 19, + 66, 34, 34, 98, 162, 0, 21, 96, 39, 19, 0, 8, + 17, 240, 49, 240, 49, 240, 49, 240, 49, 240, 49, 240, + 49, 240, 49, 240, 49, 175, 2, 161, 240, 49, 240, 49, + 240, 49, 240, 49, 240, 49, 240, 49, 0, 10, 96, 11, + 5, 0, 10, 2, 51, 65, 65, 49, 49, 224, 8, 9, + 0, 14, 87, 0, 11, 64, 9, 5, 0, 10, 3, 35, + 240, 240, 32, 27, 12, 145, 177, 161, 177, 161, 177, 177, + 161, 177, 161, 177, 177, 161, 177, 177, 161, 177, 161, 177, + 177, 161, 177, 161, 177, 176, 36, 13, 240, 229, 114, 50, + 82, 82, 65, 113, 50, 114, 34, 114, 34, 114, 34, 114, + 34, 114, 34, 114, 34, 114, 34, 114, 49, 113, 66, 82, + 82, 50, 117, 0, 10, 48, 23, 10, 240, 145, 115, 82, + 18, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 88, 0, 7, 96, 29, 11, 240, 148, 97, 51, 49, + 82, 49, 98, 34, 82, 34, 82, 146, 130, 146, 130, 129, + 145, 145, 81, 49, 97, 56, 40, 0, 8, 80, 30, 12, + 240, 196, 113, 66, 65, 97, 66, 81, 66, 81, 177, 161, + 116, 194, 178, 162, 50, 82, 35, 82, 50, 82, 49, 82, + 85, 0, 9, 80, 30, 14, 240, 240, 97, 194, 194, 164, + 161, 18, 145, 34, 129, 50, 113, 66, 113, 66, 97, 82, + 81, 98, 92, 146, 194, 194, 166, 0, 10, 112, 29, 11, + 240, 240, 70, 85, 97, 161, 161, 161, 20, 82, 50, 65, + 81, 162, 146, 34, 82, 34, 82, 33, 97, 65, 66, 84, + 0, 8, 112, 34, 12, 240, 212, 114, 49, 81, 66, 66, + 66, 65, 162, 162, 35, 83, 66, 51, 81, 50, 98, 34, + 98, 34, 98, 49, 98, 49, 97, 81, 66, 100, 0, 9, + 80, 24, 12, 240, 240, 121, 42, 33, 113, 49, 97, 161, + 177, 161, 177, 161, 177, 177, 162, 162, 162, 162, 0, 9, + 112, 35, 13, 240, 244, 114, 65, 97, 97, 66, 97, 66, + 97, 67, 65, 100, 17, 148, 129, 35, 82, 67, 50, 114, + 34, 114, 34, 129, 35, 97, 67, 65, 117, 0, 10, 48, + 35, 12, 240, 196, 113, 65, 81, 82, 50, 97, 50, 98, + 34, 98, 34, 98, 34, 98, 49, 83, 50, 49, 18, 83, + 34, 161, 162, 66, 65, 82, 50, 85, 0, 9, 96, 13, + 5, 240, 240, 163, 35, 240, 240, 35, 35, 240, 240, 32, + 15, 5, 240, 240, 163, 35, 240, 240, 35, 35, 65, 65, + 49, 49, 224, 27, 17, 0, 12, 34, 211, 194, 210, 210, + 210, 195, 227, 240, 19, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 0, 10, 112, 13, 18, 0, 20, 47, 1, + 0, 9, 47, 1, 0, 20, 64, 27, 17, 0, 10, 82, + 240, 34, 240, 34, 240, 34, 240, 35, 240, 34, 240, 34, + 226, 195, 195, 194, 210, 210, 225, 0, 12, 80, 23, 11, + 240, 134, 65, 82, 50, 82, 34, 82, 130, 130, 130, 145, + 145, 161, 161, 240, 240, 210, 146, 0, 9, 54, 19, 240, + 240, 230, 178, 98, 129, 146, 97, 68, 50, 65, 51, 49, + 49, 50, 50, 82, 33, 33, 50, 98, 33, 33, 50, 98, + 33, 33, 50, 98, 33, 33, 50, 98, 33, 34, 50, 82, + 33, 49, 51, 51, 33, 65, 68, 35, 82, 240, 66, 115, + 151, 0, 15, 38, 19, 240, 193, 240, 49, 240, 35, 240, + 19, 241, 19, 225, 34, 225, 34, 209, 51, 193, 66, 177, + 82, 177, 83, 169, 145, 115, 129, 130, 129, 130, 114, 131, + 69, 87, 0, 14, 64, 36, 16, 240, 240, 43, 114, 98, + 98, 114, 82, 114, 82, 114, 82, 114, 82, 98, 104, 130, + 98, 98, 114, 82, 130, 66, 130, 66, 130, 66, 114, 82, + 99, 59, 0, 12, 80, 35, 17, 240, 240, 165, 49, 98, + 81, 18, 66, 131, 50, 162, 50, 177, 34, 193, 34, 242, + 242, 242, 242, 193, 50, 177, 50, 161, 82, 145, 99, 82, + 150, 0, 13, 64, 37, 17, 240, 240, 75, 130, 98, 114, + 114, 98, 130, 82, 130, 82, 146, 66, 146, 66, 146, 66, + 146, 66, 146, 66, 146, 66, 145, 82, 130, 82, 114, 98, + 98, 90, 0, 13, 80, 37, 17, 240, 240, 78, 82, 130, + 82, 145, 82, 145, 82, 81, 146, 81, 146, 66, 152, 146, + 66, 146, 81, 146, 81, 65, 66, 161, 66, 161, 66, 145, + 82, 130, 62, 0, 13, 16, 31, 15, 240, 253, 66, 114, + 66, 129, 66, 129, 66, 129, 66, 65, 130, 65, 130, 65, + 135, 130, 65, 130, 65, 130, 210, 210, 210, 183, 0, 12, + 32, 41, 19, 240, 240, 229, 49, 130, 82, 17, 98, 146, + 82, 162, 82, 177, 66, 193, 66, 240, 34, 240, 34, 240, + 34, 135, 49, 178, 82, 162, 98, 146, 98, 146, 130, 82, + 17, 165, 49, 0, 14, 96, 37, 17, 240, 240, 70, 54, + 66, 114, 98, 114, 98, 114, 98, 114, 98, 114, 98, 114, + 107, 98, 114, 98, 114, 98, 114, 98, 114, 98, 114, 98, + 114, 98, 114, 70, 54, 0, 13, 22, 10, 240, 88, 82, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 88, 0, 7, 96, 25, 13, 240, 247, 146, 178, 178, + 178, 178, 178, 178, 178, 178, 178, 178, 67, 66, 67, 66, + 67, 50, 117, 0, 10, 64, 40, 19, 240, 240, 134, 85, + 82, 130, 114, 129, 130, 113, 146, 82, 162, 65, 194, 50, + 194, 35, 194, 17, 34, 179, 51, 162, 83, 146, 98, 146, + 114, 130, 115, 114, 131, 70, 86, 0, 14, 64, 27, 15, + 240, 247, 162, 210, 210, 210, 210, 210, 210, 210, 210, 210, + 129, 66, 129, 66, 129, 66, 113, 82, 98, 60, 0, 11, + 80, 62, 21, 240, 240, 197, 164, 67, 147, 97, 17, 129, + 18, 97, 18, 113, 18, 97, 18, 113, 18, 97, 34, 81, + 34, 97, 34, 81, 34, 97, 34, 65, 50, 97, 50, 49, + 50, 97, 50, 49, 50, 97, 65, 33, 66, 97, 66, 17, + 66, 97, 66, 17, 66, 97, 82, 82, 97, 82, 82, 69, + 134, 0, 16, 48, 18, 240, 240, 101, 101, 67, 129, 97, + 18, 113, 97, 19, 97, 97, 35, 81, 97, 50, 81, 97, + 51, 65, 97, 67, 49, 97, 82, 49, 97, 98, 33, 97, + 99, 17, 97, 114, 17, 97, 131, 97, 131, 97, 146, 69, + 129, 0, 14, 37, 18, 240, 240, 182, 163, 67, 114, 130, + 82, 162, 66, 162, 50, 194, 34, 194, 34, 194, 34, 194, + 34, 194, 34, 194, 50, 162, 66, 162, 82, 130, 115, 67, + 166, 0, 14, 48, 29, 15, 240, 250, 114, 98, 82, 114, + 66, 114, 66, 114, 66, 114, 66, 113, 82, 98, 88, 114, + 210, 210, 210, 210, 210, 182, 0, 12, 48, 47, 18, 240, + 240, 197, 178, 67, 114, 130, 82, 162, 66, 162, 50, 194, + 34, 194, 34, 194, 34, 194, 34, 194, 34, 194, 50, 162, + 66, 67, 49, 98, 33, 33, 33, 132, 50, 182, 240, 34, + 49, 209, 49, 212, 243, 240, 240, 144, 38, 19, 240, 240, + 138, 178, 83, 146, 98, 146, 114, 130, 114, 130, 114, 130, + 113, 146, 82, 167, 194, 82, 162, 98, 146, 98, 146, 98, + 146, 99, 130, 99, 49, 38, 85, 0, 14, 80, 35, 13, + 240, 228, 33, 66, 65, 17, 65, 98, 50, 113, 50, 113, + 51, 97, 68, 152, 134, 179, 33, 130, 33, 130, 33, 130, + 34, 113, 51, 82, 49, 37, 0, 10, 48, 41, 18, 240, + 240, 111, 1, 34, 82, 82, 33, 98, 97, 33, 98, 97, + 33, 98, 97, 146, 240, 18, 240, 18, 240, 18, 240, 18, + 240, 18, 240, 18, 240, 18, 240, 18, 240, 18, 216, 0, + 14, 32, 38, 18, 240, 240, 102, 85, 66, 145, 98, 145, + 98, 145, 98, 145, 98, 145, 98, 145, 98, 145, 98, 145, + 98, 145, 98, 145, 98, 145, 98, 130, 114, 113, 146, 66, + 197, 0, 14, 48, 38, 19, 240, 240, 134, 101, 66, 162, + 83, 145, 114, 129, 130, 129, 146, 97, 162, 97, 178, 81, + 178, 65, 195, 49, 210, 33, 226, 33, 243, 240, 19, 240, + 34, 240, 33, 0, 15, 64, 58, 26, 0, 6, 70, 54, + 69, 66, 114, 129, 98, 115, 113, 114, 114, 97, 130, 99, + 97, 130, 81, 19, 81, 146, 65, 34, 65, 162, 65, 34, + 65, 163, 33, 66, 49, 178, 33, 66, 33, 194, 33, 66, + 33, 196, 98, 17, 211, 99, 227, 99, 226, 129, 240, 17, + 129, 0, 20, 80, 38, 19, 240, 240, 135, 69, 98, 114, + 131, 97, 163, 65, 194, 49, 226, 17, 244, 240, 19, 240, + 19, 241, 34, 225, 35, 193, 67, 161, 98, 145, 130, 114, + 131, 70, 86, 0, 14, 64, 38, 20, 240, 240, 167, 101, + 67, 146, 115, 129, 146, 113, 178, 81, 195, 65, 210, 49, + 242, 17, 240, 20, 240, 34, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 22, 0, 16, 30, 14, 240, 220, + 35, 98, 49, 130, 49, 114, 65, 98, 194, 178, 178, 194, + 178, 178, 194, 97, 66, 113, 50, 129, 34, 115, 44, 0, + 10, 96, 27, 5, 3, 33, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 67, 32, 19, 10, 240, 113, 65, 49, 65, + 65, 65, 49, 65, 65, 65, 67, 35, 50, 50, 0, 19, + 27, 5, 3, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 35, 32, 11, 8, 240, 65, 82, 17, 49, 65, 0, + 19, 32, 7, 5, 163, 35, 0, 12, 96, 12, 5, 193, + 49, 65, 49, 65, 67, 50, 0, 9, 80, 29, 15, 0, + 10, 17, 225, 211, 177, 18, 177, 34, 161, 34, 145, 65, + 145, 66, 135, 113, 98, 97, 98, 82, 98, 68, 69, 0, + 11, 64, 28, 13, 0, 9, 105, 98, 66, 82, 81, 82, + 81, 82, 66, 86, 114, 66, 82, 82, 66, 82, 66, 82, + 66, 66, 57, 0, 10, 32, 28, 14, 0, 11, 5, 33, + 67, 67, 50, 114, 50, 129, 34, 145, 34, 194, 194, 145, + 50, 129, 50, 113, 83, 66, 117, 0, 11, 16, 29, 14, + 0, 10, 73, 114, 66, 98, 82, 82, 98, 66, 98, 66, + 98, 66, 98, 66, 98, 66, 98, 66, 82, 82, 66, 73, + 0, 11, 16, 29, 14, 0, 10, 75, 82, 82, 82, 97, + 82, 49, 130, 49, 134, 130, 49, 130, 49, 49, 66, 113, + 66, 97, 82, 97, 59, 0, 10, 112, 26, 13, 0, 9, + 107, 66, 82, 66, 97, 66, 97, 66, 49, 114, 49, 118, + 114, 49, 114, 49, 114, 178, 150, 0, 10, 80, 29, 15, + 0, 11, 101, 33, 83, 67, 66, 114, 66, 129, 50, 145, + 50, 210, 210, 101, 50, 114, 66, 114, 83, 67, 117, 33, + 0, 11, 80, 30, 15, 0, 11, 38, 22, 66, 82, 98, + 82, 98, 82, 98, 82, 105, 98, 82, 98, 82, 98, 82, + 98, 82, 98, 82, 70, 22, 0, 11, 64, 19, 8, 0, + 6, 6, 66, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 70, 0, 6, 32, 21, 10, 0, 7, 117, 114, 130, 130, + 130, 130, 130, 130, 130, 50, 50, 50, 50, 68, 0, 8, + 16, 31, 16, 0, 12, 6, 67, 82, 98, 98, 81, 130, + 65, 146, 49, 162, 34, 164, 18, 146, 66, 130, 81, 130, + 82, 114, 98, 70, 53, 0, 12, 32, 23, 13, 0, 9, + 102, 146, 178, 178, 178, 178, 178, 178, 97, 66, 97, 66, + 97, 66, 81, 58, 0, 10, 16, 47, 18, 0, 13, 68, + 132, 67, 114, 97, 17, 84, 97, 17, 81, 18, 97, 18, + 65, 18, 97, 33, 49, 34, 97, 34, 33, 34, 97, 34, + 17, 50, 97, 49, 17, 50, 97, 51, 50, 97, 65, 66, + 69, 33, 38, 0, 13, 96, 37, 15, 0, 11, 36, 69, + 67, 81, 97, 18, 65, 97, 18, 65, 97, 34, 49, 97, + 50, 33, 97, 50, 33, 97, 66, 17, 97, 83, 97, 83, + 97, 98, 69, 81, 0, 11, 96, 28, 15, 0, 11, 101, + 130, 82, 82, 114, 65, 145, 50, 146, 34, 146, 34, 146, + 34, 146, 50, 129, 66, 114, 83, 66, 133, 0, 12, 24, + 13, 0, 9, 105, 98, 66, 82, 82, 66, 82, 66, 82, + 66, 66, 87, 98, 178, 178, 178, 150, 0, 10, 80, 34, + 15, 0, 11, 101, 131, 66, 82, 114, 66, 129, 50, 146, + 34, 146, 34, 146, 34, 146, 50, 129, 66, 35, 34, 84, + 34, 149, 49, 177, 33, 180, 179, 0, 6, 30, 15, 0, + 11, 41, 130, 66, 114, 82, 98, 82, 98, 82, 98, 66, + 118, 146, 50, 130, 66, 114, 66, 114, 66, 33, 38, 51, + 0, 11, 80, 27, 11, 0, 8, 68, 17, 66, 50, 50, + 81, 50, 81, 51, 149, 133, 147, 33, 98, 33, 98, 35, + 50, 49, 36, 0, 8, 96, 23, 14, 0, 10, 76, 33, + 66, 65, 33, 66, 65, 114, 194, 194, 194, 194, 194, 194, + 194, 166, 0, 11, 16, 29, 15, 0, 11, 38, 37, 66, + 97, 98, 97, 98, 97, 98, 97, 98, 97, 98, 97, 98, + 97, 98, 97, 98, 97, 114, 50, 149, 0, 12, 28, 15, + 0, 11, 36, 84, 50, 113, 97, 113, 98, 81, 114, 81, + 130, 49, 146, 49, 162, 33, 162, 17, 195, 194, 225, 0, + 12, 32, 45, 20, 0, 15, 4, 52, 52, 50, 82, 97, + 66, 82, 81, 98, 67, 65, 98, 49, 18, 65, 98, 49, + 33, 49, 130, 33, 34, 33, 130, 17, 50, 17, 161, 17, + 65, 17, 163, 67, 162, 82, 193, 97, 0, 15, 112, 28, + 15, 0, 11, 37, 52, 82, 81, 130, 49, 146, 33, 179, + 210, 211, 177, 34, 145, 50, 129, 82, 113, 98, 68, 69, + 0, 11, 64, 25, 16, 0, 12, 5, 84, 66, 113, 114, + 81, 130, 81, 146, 49, 178, 17, 210, 226, 226, 226, 226, + 198, 0, 12, 96, 25, 12, 0, 9, 10, 34, 82, 49, + 98, 49, 82, 146, 146, 161, 162, 146, 81, 50, 97, 49, + 98, 42, 0, 9, 32, 8, 14, 0, 19, 44, 0, 21, + 32, 9, 27, 0, 37, 31, 10, 0, 40, 96, 14, 9, + 240, 66, 34, 50, 34, 49, 49, 49, 49, 0, 20, 96, + 10, 10, 240, 99, 49, 33, 51, 0, 25, 48, +}; + +//***************************************************************************** +// +// The font definition for the 24 point Cmsc font. +// +//***************************************************************************** +const tFont g_sFontCmsc24 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 24, + + // + // The height of the font. + // + 24, + + // + // The baseline of the font. + // + 18, + + // + // The offset to each character in the font. + // + { + 0, 4, 24, 44, 91, 134, 197, 244, + 256, 283, 310, 332, 371, 382, 390, 399, + 426, 462, 485, 514, 544, 574, 603, 637, + 661, 696, 731, 744, 759, 786, 799, 826, + 849, 903, 941, 977, 1012, 1049, 1086, 1117, + 1158, 1195, 1217, 1242, 1282, 1309, 1371, 1419, + 1456, 1485, 1532, 1570, 1605, 1646, 1684, 1722, + 1780, 1818, 1856, 1886, 1913, 1932, 1959, 1970, + 1977, 1989, 2018, 2046, 2074, 2103, 2132, 2158, + 2187, 2217, 2236, 2257, 2288, 2311, 2358, 2395, + 2423, 2447, 2481, 2511, 2538, 2561, 2590, 2618, + 2663, 2691, 2716, 2741, 2749, 2758, 2772, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmsc24Data +}; diff --git a/grlib/fonts/fontcmsc26.c b/grlib/fonts/fontcmsc26.c new file mode 100644 index 0000000..9ce0b52 --- /dev/null +++ b/grlib/fonts/fontcmsc26.c @@ -0,0 +1,356 @@ +//***************************************************************************** +// +// fontcmsc26.c - Font definition for the 26pt Cmsc font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmsc +// Size: 26 point +// Bold: no +// Italic: no +// Memory usage: 3192 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 26 point Cmsc font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmsc26Data[2991] = +{ + 5, 10, 0, 32, 64, 21, 5, 83, 35, 35, 35, 35, + 35, 34, 65, 65, 65, 65, 65, 65, 211, 35, 35, 240, + 240, 112, 20, 11, 240, 130, 50, 52, 35, 51, 35, 81, + 65, 81, 65, 65, 65, 65, 65, 0, 23, 112, 51, 21, + 0, 6, 49, 81, 225, 81, 209, 81, 225, 81, 225, 81, + 225, 81, 209, 81, 225, 81, 127, 4, 129, 81, 225, 81, + 225, 81, 225, 81, 143, 4, 113, 81, 225, 81, 209, 81, + 225, 81, 225, 81, 225, 81, 209, 81, 225, 81, 0, 6, + 80, 46, 13, 240, 49, 166, 82, 33, 34, 50, 49, 65, + 34, 49, 35, 34, 49, 35, 35, 33, 133, 150, 150, 129, + 19, 129, 35, 35, 33, 50, 35, 33, 50, 33, 65, 50, + 49, 49, 34, 66, 33, 19, 101, 161, 0, 10, 80, 66, + 21, 35, 177, 82, 34, 129, 97, 51, 83, 82, 65, 23, + 98, 65, 97, 114, 65, 97, 114, 65, 81, 130, 65, 65, + 161, 49, 81, 177, 33, 65, 210, 65, 81, 225, 65, 18, + 177, 65, 49, 161, 66, 65, 130, 66, 65, 129, 82, 65, + 113, 98, 65, 98, 98, 65, 97, 129, 50, 81, 146, 33, + 240, 35, 0, 13, 80, 52, 21, 240, 195, 240, 34, 33, + 242, 49, 242, 49, 242, 49, 242, 33, 240, 18, 33, 240, + 35, 86, 114, 130, 146, 129, 130, 18, 97, 129, 66, 65, + 129, 82, 65, 114, 98, 33, 130, 115, 97, 35, 114, 97, + 51, 66, 18, 65, 101, 84, 0, 18, 112, 12, 6, 210, + 52, 51, 81, 81, 65, 65, 0, 13, 32, 29, 9, 97, + 113, 113, 113, 114, 113, 114, 114, 113, 114, 114, 114, 114, + 114, 114, 114, 114, 129, 130, 114, 129, 130, 129, 145, 130, + 145, 32, 29, 8, 1, 114, 114, 113, 114, 113, 114, 98, + 114, 98, 98, 98, 98, 98, 98, 98, 98, 98, 97, 98, + 97, 113, 97, 98, 97, 97, 112, 26, 12, 66, 162, 97, + 50, 49, 34, 34, 34, 67, 18, 130, 130, 19, 66, 34, + 34, 33, 50, 49, 98, 162, 0, 23, 32, 41, 19, 0, + 10, 65, 240, 49, 240, 49, 240, 49, 240, 49, 240, 49, + 240, 49, 240, 49, 175, 2, 161, 240, 49, 240, 49, 240, + 49, 240, 49, 240, 49, 240, 49, 240, 49, 240, 49, 0, + 10, 96, 13, 5, 0, 10, 2, 51, 35, 65, 65, 49, + 65, 49, 224, 8, 9, 0, 14, 87, 0, 13, 96, 10, + 5, 0, 10, 3, 35, 35, 240, 240, 112, 29, 12, 145, + 177, 161, 177, 177, 161, 177, 161, 177, 177, 161, 177, 177, + 161, 177, 177, 161, 177, 161, 177, 177, 161, 177, 177, 161, + 177, 176, 37, 13, 240, 229, 114, 50, 82, 82, 65, 113, + 50, 114, 34, 114, 34, 114, 34, 114, 34, 114, 34, 114, + 34, 114, 34, 114, 34, 114, 49, 113, 66, 82, 82, 50, + 117, 0, 12, 23, 10, 240, 145, 115, 82, 18, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 88, + 0, 9, 30, 12, 240, 196, 98, 51, 49, 99, 35, 82, + 35, 82, 35, 82, 162, 146, 162, 146, 146, 146, 146, 161, + 81, 65, 97, 57, 41, 0, 10, 112, 32, 14, 240, 240, + 22, 113, 82, 83, 82, 67, 82, 67, 82, 194, 178, 178, + 148, 226, 210, 195, 50, 99, 36, 83, 35, 98, 66, 83, + 102, 0, 12, 112, 32, 14, 240, 240, 97, 194, 194, 164, + 161, 18, 145, 34, 129, 50, 129, 50, 113, 66, 97, 82, + 97, 82, 81, 98, 92, 146, 194, 194, 152, 0, 12, 64, + 31, 12, 240, 161, 97, 71, 86, 97, 177, 177, 177, 20, + 98, 65, 81, 82, 178, 162, 162, 34, 98, 34, 98, 33, + 113, 65, 66, 101, 0, 11, 16, 37, 13, 240, 240, 20, + 114, 65, 82, 66, 66, 82, 66, 177, 178, 36, 82, 17, + 50, 67, 82, 50, 114, 34, 114, 34, 114, 34, 114, 49, + 114, 50, 82, 82, 50, 117, 0, 12, 25, 13, 240, 177, + 203, 42, 49, 113, 65, 113, 177, 177, 177, 193, 193, 177, + 193, 178, 178, 178, 178, 178, 0, 12, 48, 37, 14, 240, + 240, 37, 114, 66, 97, 113, 66, 113, 66, 113, 67, 97, + 84, 34, 117, 165, 114, 52, 66, 98, 50, 130, 34, 130, + 34, 130, 50, 113, 67, 81, 118, 0, 12, 112, 37, 13, + 240, 229, 114, 50, 82, 82, 50, 113, 50, 114, 34, 114, + 34, 114, 34, 114, 34, 114, 50, 83, 66, 49, 18, 84, + 34, 177, 178, 66, 81, 82, 50, 117, 0, 12, 16, 14, + 5, 240, 240, 163, 35, 35, 240, 195, 35, 35, 240, 240, + 112, 17, 5, 240, 240, 163, 35, 35, 240, 194, 51, 35, + 65, 65, 49, 65, 49, 224, 29, 18, 0, 13, 2, 227, + 211, 210, 226, 226, 211, 226, 240, 35, 240, 35, 240, 50, + 240, 50, 240, 50, 240, 51, 240, 34, 0, 13, 96, 13, + 20, 0, 25, 15, 3, 0, 10, 47, 3, 0, 25, 32, + 29, 18, 0, 11, 34, 240, 35, 240, 50, 240, 50, 240, + 51, 240, 35, 240, 35, 240, 34, 226, 211, 211, 210, 226, + 226, 241, 0, 15, 80, 26, 11, 240, 149, 81, 67, 34, + 82, 34, 82, 146, 130, 130, 145, 145, 161, 161, 161, 240, + 240, 18, 147, 130, 0, 10, 48, 62, 20, 0, 5, 102, + 194, 98, 130, 36, 65, 113, 34, 50, 49, 81, 34, 81, + 65, 50, 33, 114, 34, 33, 34, 114, 49, 33, 34, 114, + 49, 33, 34, 114, 49, 33, 34, 114, 49, 33, 50, 98, + 49, 49, 34, 83, 49, 49, 50, 49, 18, 33, 81, 52, + 51, 113, 240, 82, 131, 152, 0, 18, 32, 41, 20, 240, + 210, 240, 50, 240, 50, 240, 36, 240, 17, 18, 241, 35, + 225, 50, 225, 50, 209, 67, 193, 82, 177, 98, 186, 161, + 114, 145, 131, 129, 146, 129, 146, 114, 147, 69, 103, 0, + 17, 96, 38, 19, 240, 240, 141, 146, 115, 114, 131, 98, + 131, 98, 131, 98, 131, 98, 130, 114, 99, 137, 162, 115, + 114, 131, 98, 147, 82, 147, 82, 147, 82, 131, 98, 115, + 78, 0, 17, 32, 38, 18, 240, 240, 198, 49, 99, 81, + 18, 82, 131, 66, 162, 51, 162, 50, 193, 35, 193, 35, + 243, 243, 243, 240, 18, 193, 51, 177, 66, 161, 98, 145, + 115, 82, 166, 0, 16, 64, 39, 21, 240, 240, 205, 178, + 115, 146, 146, 130, 162, 114, 163, 98, 178, 98, 179, 82, + 179, 82, 179, 82, 179, 82, 179, 82, 179, 82, 163, 98, + 162, 114, 147, 114, 115, 109, 0, 19, 48, 39, 18, 240, + 240, 111, 98, 130, 98, 145, 98, 145, 98, 161, 82, 81, + 65, 82, 81, 162, 66, 168, 162, 66, 162, 81, 162, 81, + 162, 161, 82, 161, 82, 161, 82, 131, 47, 1, 0, 16, + 37, 18, 240, 240, 111, 98, 130, 98, 145, 98, 145, 98, + 145, 98, 81, 65, 82, 81, 162, 66, 168, 162, 66, 162, + 81, 162, 81, 162, 240, 18, 240, 18, 240, 18, 216, 0, + 17, 42, 20, 0, 5, 102, 49, 131, 81, 33, 114, 131, + 98, 162, 83, 177, 82, 193, 67, 193, 67, 240, 35, 240, + 35, 240, 35, 135, 50, 178, 83, 162, 99, 146, 115, 130, + 131, 82, 17, 166, 49, 0, 18, 40, 20, 240, 240, 168, + 40, 82, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 140, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 88, 40, 0, 17, 96, 22, + 10, 240, 88, 82, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 88, 0, 9, 26, 12, 240, + 199, 130, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 67, 50, 67, 50, 67, 34, 116, 0, 11, 32, 42, + 21, 240, 240, 200, 85, 98, 146, 130, 145, 146, 114, 162, + 97, 194, 81, 210, 65, 226, 50, 226, 33, 18, 212, 35, + 194, 83, 178, 98, 178, 114, 162, 115, 146, 131, 130, 132, + 72, 71, 0, 18, 80, 29, 17, 240, 240, 72, 194, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 145, 82, 129, + 98, 129, 98, 129, 98, 99, 62, 0, 15, 32, 68, 25, + 0, 6, 38, 182, 83, 179, 129, 18, 145, 18, 129, 18, + 145, 18, 129, 19, 129, 18, 129, 34, 113, 34, 129, 34, + 113, 34, 129, 50, 81, 50, 129, 50, 81, 50, 129, 66, + 49, 66, 129, 66, 49, 66, 129, 66, 49, 66, 129, 82, + 17, 82, 129, 82, 17, 82, 129, 98, 98, 115, 82, 98, + 87, 49, 72, 0, 22, 16, 50, 21, 240, 240, 198, 103, + 84, 115, 113, 18, 129, 129, 19, 113, 129, 35, 97, 129, + 50, 97, 129, 66, 81, 129, 67, 65, 129, 83, 49, 129, + 98, 49, 129, 99, 33, 129, 115, 17, 129, 132, 129, 147, + 129, 147, 115, 146, 87, 129, 0, 19, 39, 20, 0, 5, + 102, 195, 67, 146, 130, 114, 162, 83, 163, 66, 194, 51, + 195, 35, 195, 35, 195, 35, 195, 35, 195, 51, 178, 67, + 163, 83, 146, 114, 130, 147, 67, 198, 0, 18, 64, 36, + 18, 240, 240, 108, 146, 99, 114, 130, 98, 131, 82, 131, + 82, 131, 82, 130, 98, 99, 121, 146, 240, 18, 240, 18, + 240, 18, 240, 18, 240, 18, 240, 18, 216, 0, 17, 51, + 20, 0, 5, 102, 194, 83, 146, 130, 114, 147, 83, 163, + 66, 194, 51, 195, 35, 195, 35, 195, 35, 195, 35, 195, + 50, 194, 67, 163, 82, 51, 66, 99, 17, 49, 34, 147, + 66, 214, 81, 210, 65, 210, 50, 230, 229, 240, 19, 240, + 240, 224, 41, 21, 240, 240, 204, 194, 99, 162, 115, 146, + 131, 130, 131, 130, 131, 130, 115, 146, 99, 168, 210, 83, + 178, 114, 162, 114, 162, 115, 146, 115, 146, 115, 49, 82, + 131, 33, 54, 116, 0, 18, 96, 37, 14, 240, 240, 21, + 33, 66, 66, 17, 65, 114, 50, 114, 50, 129, 51, 113, + 52, 183, 151, 165, 195, 33, 146, 33, 146, 33, 146, 34, + 129, 52, 66, 65, 53, 0, 12, 112, 44, 20, 240, 240, + 191, 1, 66, 82, 82, 65, 98, 97, 49, 114, 97, 49, + 114, 97, 49, 114, 113, 162, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 234, 0, 18, 32, 40, 21, 240, 240, 200, 71, 82, 147, + 114, 161, 130, 161, 130, 161, 130, 161, 130, 161, 130, 161, + 130, 161, 130, 161, 130, 161, 130, 161, 130, 161, 146, 129, + 162, 129, 179, 66, 229, 0, 19, 64, 42, 21, 240, 240, + 199, 102, 67, 162, 114, 161, 130, 161, 131, 129, 162, 129, + 163, 97, 194, 97, 195, 65, 226, 65, 226, 65, 242, 33, + 240, 18, 33, 240, 20, 240, 51, 240, 50, 240, 81, 0, + 19, 96, 63, 28, 0, 7, 7, 55, 69, 67, 115, 130, + 83, 115, 129, 114, 130, 113, 130, 115, 113, 131, 100, 97, + 146, 81, 34, 81, 163, 65, 35, 65, 178, 65, 50, 65, + 178, 49, 66, 49, 195, 33, 67, 33, 210, 17, 98, 17, + 226, 17, 98, 17, 228, 100, 242, 130, 240, 18, 130, 240, + 33, 145, 0, 25, 80, 43, 21, 240, 240, 199, 86, 99, + 114, 162, 113, 179, 81, 211, 49, 243, 33, 240, 18, 17, + 240, 35, 240, 67, 240, 52, 240, 17, 34, 241, 51, 209, + 83, 177, 115, 161, 130, 131, 131, 86, 103, 0, 18, 80, + 42, 22, 240, 240, 232, 102, 83, 146, 146, 145, 163, 129, + 179, 97, 210, 81, 227, 65, 243, 33, 240, 34, 17, 240, + 66, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, + 82, 240, 40, 0, 20, 32, 34, 16, 240, 240, 46, 35, + 130, 50, 131, 49, 131, 65, 130, 81, 114, 211, 195, 210, + 210, 211, 195, 113, 82, 129, 66, 145, 51, 145, 50, 131, + 46, 0, 14, 32, 28, 6, 4, 33, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 84, 128, 20, 12, 240, 177, + 81, 65, 81, 65, 81, 81, 81, 83, 51, 52, 36, 50, + 66, 0, 25, 112, 28, 6, 4, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 36, 128, 13, 9, 240, 97, + 113, 17, 81, 49, 49, 81, 0, 22, 96, 8, 5, 163, + 35, 35, 0, 13, 48, 12, 6, 225, 65, 65, 81, 83, + 52, 50, 0, 13, 16, 31, 16, 0, 10, 98, 226, 226, + 209, 18, 193, 18, 177, 35, 161, 50, 161, 50, 145, 82, + 136, 129, 82, 113, 114, 82, 114, 68, 85, 0, 14, 32, + 30, 14, 0, 10, 74, 98, 82, 82, 82, 82, 97, 82, + 82, 82, 66, 103, 114, 82, 82, 98, 66, 98, 66, 98, + 66, 82, 58, 0, 12, 96, 29, 15, 0, 11, 116, 49, + 82, 68, 65, 130, 50, 145, 34, 161, 34, 210, 210, 210, + 161, 50, 145, 66, 113, 98, 81, 134, 0, 13, 96, 31, + 15, 0, 11, 42, 114, 82, 98, 98, 82, 113, 82, 114, + 66, 114, 66, 114, 66, 114, 66, 114, 66, 113, 82, 98, + 82, 82, 73, 0, 13, 112, 30, 15, 0, 11, 44, 82, + 98, 82, 113, 82, 210, 65, 130, 65, 135, 130, 65, 130, + 65, 49, 66, 129, 66, 129, 66, 114, 44, 0, 13, 64, + 26, 13, 0, 9, 107, 66, 82, 66, 97, 66, 178, 49, + 114, 49, 118, 114, 49, 114, 49, 114, 178, 178, 150, 0, + 12, 32, 31, 16, 0, 12, 85, 33, 98, 81, 17, 82, + 114, 66, 145, 50, 161, 50, 226, 226, 226, 102, 50, 130, + 66, 130, 98, 83, 118, 33, 0, 14, 48, 32, 16, 0, + 12, 6, 38, 66, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 106, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 70, 38, 0, 14, 32, 20, 8, 0, 6, 6, 66, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 70, 0, 7, + 32, 22, 10, 0, 7, 117, 114, 130, 130, 130, 130, 130, + 130, 130, 130, 50, 50, 50, 50, 68, 0, 9, 48, 34, + 16, 0, 12, 6, 68, 66, 113, 98, 97, 114, 81, 130, + 50, 146, 34, 162, 17, 18, 147, 50, 130, 66, 130, 82, + 114, 98, 98, 99, 54, 68, 0, 14, 32, 23, 13, 0, + 9, 102, 146, 178, 178, 178, 178, 178, 178, 178, 178, 97, + 66, 97, 66, 82, 43, 0, 11, 80, 52, 19, 0, 14, + 36, 148, 67, 115, 97, 17, 97, 18, 97, 18, 81, 18, + 97, 18, 81, 18, 97, 33, 65, 34, 97, 34, 49, 34, + 97, 49, 33, 50, 97, 50, 17, 50, 97, 50, 17, 50, + 97, 66, 66, 97, 66, 66, 69, 33, 54, 0, 16, 112, + 40, 16, 0, 12, 4, 85, 67, 97, 97, 18, 81, 97, + 19, 65, 97, 34, 65, 97, 50, 49, 97, 51, 33, 97, + 66, 33, 97, 82, 17, 97, 99, 97, 99, 97, 114, 69, + 97, 0, 14, 64, 31, 16, 0, 12, 70, 146, 67, 97, + 130, 66, 130, 50, 162, 34, 162, 34, 162, 34, 162, 34, + 162, 50, 130, 67, 114, 83, 66, 150, 0, 14, 96, 25, + 14, 0, 10, 74, 98, 82, 82, 98, 66, 98, 66, 98, + 66, 82, 88, 98, 194, 194, 194, 194, 166, 0, 13, 32, + 38, 16, 0, 12, 85, 146, 67, 98, 114, 66, 130, 50, + 162, 34, 162, 34, 162, 34, 162, 34, 162, 50, 130, 66, + 51, 33, 115, 50, 150, 241, 49, 178, 33, 196, 195, 0, + 6, 48, 32, 16, 0, 12, 9, 146, 66, 130, 82, 114, + 82, 114, 82, 114, 66, 134, 162, 50, 146, 66, 130, 66, + 130, 66, 130, 67, 33, 38, 52, 0, 14, 48, 29, 12, + 0, 9, 36, 33, 66, 49, 17, 50, 82, 50, 97, 51, + 81, 68, 150, 163, 178, 33, 114, 34, 98, 35, 66, 49, + 37, 0, 11, 26, 16, 0, 12, 28, 65, 66, 65, 49, + 82, 81, 33, 82, 81, 130, 226, 226, 226, 226, 226, 226, + 226, 184, 0, 14, 80, 32, 16, 0, 12, 6, 53, 66, + 113, 98, 113, 98, 113, 98, 113, 98, 113, 98, 113, 98, + 113, 98, 113, 98, 113, 114, 81, 131, 50, 164, 0, 14, + 112, 30, 16, 0, 12, 5, 84, 50, 130, 82, 113, 98, + 97, 130, 81, 130, 65, 162, 49, 162, 49, 162, 33, 194, + 17, 195, 226, 225, 0, 15, 16, 47, 22, 0, 16, 69, + 37, 68, 50, 98, 97, 97, 98, 97, 98, 82, 81, 114, + 65, 18, 65, 130, 49, 18, 65, 130, 49, 34, 33, 146, + 33, 50, 33, 162, 17, 50, 17, 179, 83, 194, 83, 194, + 97, 209, 113, 0, 20, 32, 31, 16, 0, 12, 5, 68, + 82, 82, 130, 65, 162, 33, 178, 17, 211, 226, 209, 18, + 177, 35, 145, 66, 145, 82, 113, 114, 68, 85, 0, 14, + 32, 27, 16, 0, 12, 5, 99, 51, 114, 82, 113, 114, + 81, 146, 49, 163, 33, 178, 17, 210, 226, 226, 226, 226, + 198, 0, 14, 96, 26, 12, 0, 9, 10, 34, 82, 49, + 98, 49, 82, 146, 162, 146, 146, 161, 162, 81, 50, 97, + 49, 98, 42, 0, 10, 96, 8, 15, 0, 22, 77, 0, + 24, 80, 9, 29, 0, 43, 79, 12, 0, 47, 48, 16, + 9, 240, 66, 34, 50, 34, 49, 49, 49, 49, 65, 49, + 0, 21, 112, 12, 11, 240, 146, 65, 49, 36, 49, 66, + 0, 29, 48, +}; + +//***************************************************************************** +// +// The font definition for the 26 point Cmsc font. +// +//***************************************************************************** +const tFont g_sFontCmsc26 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 26, + + // + // The height of the font. + // + 26, + + // + // The baseline of the font. + // + 19, + + // + // The offset to each character in the font. + // + { + 0, 5, 26, 46, 97, 143, 209, 261, + 273, 302, 331, 357, 398, 411, 419, 429, + 458, 495, 518, 548, 580, 612, 643, 680, + 705, 742, 779, 793, 810, 839, 852, 881, + 907, 969, 1010, 1048, 1086, 1125, 1164, 1201, + 1243, 1283, 1305, 1331, 1373, 1402, 1470, 1520, + 1559, 1595, 1646, 1687, 1724, 1768, 1808, 1850, + 1913, 1956, 1998, 2032, 2060, 2080, 2108, 2121, + 2129, 2141, 2172, 2202, 2231, 2262, 2292, 2318, + 2349, 2381, 2401, 2423, 2457, 2480, 2532, 2572, + 2603, 2628, 2666, 2698, 2727, 2753, 2785, 2815, + 2862, 2893, 2920, 2946, 2954, 2963, 2979, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmsc26Data +}; diff --git a/grlib/fonts/fontcmsc28.c b/grlib/fonts/fontcmsc28.c new file mode 100644 index 0000000..5bbe300 --- /dev/null +++ b/grlib/fonts/fontcmsc28.c @@ -0,0 +1,378 @@ +//***************************************************************************** +// +// fontcmsc28.c - Font definition for the 28pt Cmsc font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmsc +// Size: 28 point +// Bold: no +// Italic: no +// Memory usage: 3460 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 28 point Cmsc font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmsc28Data[3260] = +{ + 5, 11, 0, 38, 64, 23, 5, 83, 35, 35, 35, 35, + 35, 35, 49, 65, 65, 65, 65, 65, 65, 65, 211, 35, + 35, 240, 240, 112, 22, 11, 240, 130, 50, 52, 35, 51, + 35, 81, 65, 81, 65, 65, 65, 81, 65, 65, 65, 0, + 25, 32, 55, 23, 0, 7, 1, 97, 241, 82, 226, 81, + 241, 97, 241, 97, 241, 81, 241, 97, 241, 97, 241, 81, + 143, 6, 145, 97, 241, 82, 226, 81, 241, 97, 159, 6, + 129, 81, 241, 97, 241, 97, 241, 81, 241, 97, 241, 97, + 241, 82, 226, 81, 241, 97, 0, 7, 32, 52, 14, 240, + 65, 182, 98, 33, 50, 65, 49, 66, 34, 49, 51, 34, + 49, 51, 34, 49, 51, 35, 33, 149, 167, 150, 145, 35, + 129, 51, 35, 33, 66, 35, 33, 66, 35, 33, 66, 33, + 65, 65, 65, 49, 50, 66, 33, 34, 117, 177, 0, 11, + 64, 72, 23, 51, 177, 98, 34, 146, 98, 51, 98, 98, + 81, 22, 17, 98, 81, 113, 114, 81, 97, 130, 81, 82, + 130, 81, 81, 146, 81, 65, 178, 49, 66, 193, 33, 81, + 226, 81, 240, 98, 68, 209, 66, 49, 177, 81, 81, 146, + 66, 81, 130, 82, 81, 129, 98, 81, 114, 98, 81, 98, + 114, 81, 97, 146, 49, 97, 162, 34, 97, 195, 0, 14, + 112, 56, 21, 240, 180, 240, 18, 34, 226, 65, 226, 65, + 226, 65, 226, 65, 226, 49, 242, 33, 240, 35, 102, 98, + 146, 131, 129, 129, 18, 113, 129, 50, 97, 113, 67, 65, + 114, 83, 33, 130, 98, 33, 130, 115, 97, 35, 114, 97, + 51, 66, 19, 49, 101, 84, 0, 18, 112, 12, 6, 210, + 52, 51, 81, 81, 65, 81, 65, 0, 14, 31, 9, 97, + 113, 113, 114, 113, 114, 113, 114, 114, 113, 114, 114, 114, + 114, 114, 114, 114, 114, 129, 130, 114, 114, 130, 114, 130, + 129, 145, 145, 32, 31, 9, 1, 145, 145, 145, 130, 129, + 130, 114, 114, 130, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 113, 114, 114, 113, 114, 113, 113, 113, 113, 128, 28, + 13, 66, 178, 178, 113, 50, 50, 35, 18, 19, 83, 18, + 146, 147, 18, 83, 18, 19, 49, 50, 50, 98, 178, 178, + 0, 25, 32, 45, 21, 0, 11, 81, 240, 81, 240, 81, + 240, 81, 240, 81, 240, 81, 240, 81, 240, 81, 240, 81, + 240, 81, 191, 4, 177, 240, 81, 240, 81, 240, 81, 240, + 81, 240, 81, 240, 81, 240, 81, 240, 81, 0, 11, 112, + 14, 6, 0, 13, 82, 52, 51, 81, 81, 65, 81, 65, + 240, 16, 9, 10, 0, 17, 72, 40, 0, 15, 32, 10, + 5, 0, 11, 35, 35, 35, 240, 240, 112, 31, 13, 161, + 193, 177, 193, 178, 177, 193, 177, 193, 193, 177, 193, 178, + 177, 193, 178, 177, 193, 177, 193, 193, 177, 193, 178, 177, + 193, 177, 193, 192, 40, 13, 240, 240, 197, 114, 50, 82, + 82, 65, 113, 50, 114, 34, 114, 34, 114, 34, 114, 34, + 114, 34, 114, 34, 114, 34, 114, 34, 114, 34, 114, 49, + 113, 66, 82, 82, 50, 117, 0, 12, 26, 12, 240, 240, + 177, 147, 99, 18, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 106, 0, 10, 96, 33, 13, + 240, 240, 197, 98, 67, 65, 98, 51, 98, 35, 98, 35, + 98, 178, 162, 178, 162, 162, 162, 162, 177, 81, 81, 97, + 65, 113, 58, 42, 0, 11, 96, 33, 15, 0, 6, 6, + 129, 83, 83, 83, 67, 83, 67, 83, 195, 194, 194, 149, + 227, 211, 211, 195, 50, 115, 35, 115, 35, 114, 66, 83, + 118, 0, 13, 112, 35, 15, 0, 6, 97, 210, 210, 177, + 18, 177, 18, 161, 34, 145, 50, 145, 50, 129, 66, 113, + 82, 113, 82, 97, 98, 81, 114, 93, 162, 210, 210, 168, + 0, 13, 48, 33, 14, 240, 240, 226, 82, 88, 102, 129, + 209, 209, 209, 36, 115, 50, 97, 98, 209, 210, 194, 50, + 114, 35, 114, 50, 114, 49, 114, 81, 82, 117, 0, 13, + 39, 13, 240, 240, 228, 114, 65, 82, 66, 81, 82, 66, + 177, 178, 36, 82, 17, 50, 67, 82, 50, 114, 34, 114, + 34, 114, 34, 114, 49, 114, 49, 114, 50, 82, 82, 50, + 117, 0, 12, 26, 13, 240, 240, 145, 203, 43, 33, 129, + 177, 177, 177, 193, 177, 193, 178, 177, 193, 178, 178, 178, + 178, 178, 0, 12, 48, 40, 14, 0, 5, 101, 129, 66, + 97, 98, 66, 113, 66, 113, 67, 97, 83, 65, 116, 17, + 149, 129, 36, 82, 83, 66, 99, 34, 130, 34, 130, 34, + 130, 50, 113, 82, 81, 118, 0, 12, 112, 39, 13, 240, + 240, 197, 114, 50, 82, 82, 50, 113, 50, 114, 34, 114, + 34, 114, 34, 114, 34, 114, 50, 83, 66, 49, 18, 84, + 34, 177, 178, 178, 66, 66, 82, 50, 116, 0, 12, 32, + 15, 5, 240, 240, 243, 35, 35, 240, 240, 35, 35, 35, + 240, 240, 112, 18, 5, 240, 240, 243, 35, 34, 240, 240, + 50, 51, 35, 65, 65, 49, 65, 49, 224, 32, 20, 0, + 17, 2, 240, 19, 242, 243, 243, 243, 242, 243, 240, 35, + 240, 82, 240, 83, 240, 67, 240, 67, 240, 82, 240, 83, + 240, 66, 0, 15, 32, 13, 21, 0, 28, 127, 4, 0, + 10, 111, 4, 0, 29, 16, 32, 20, 0, 15, 2, 240, + 67, 240, 83, 240, 67, 240, 67, 240, 82, 240, 83, 240, + 67, 240, 34, 243, 243, 242, 243, 243, 243, 240, 17, 0, + 17, 48, 29, 12, 240, 182, 81, 82, 50, 98, 34, 98, + 34, 98, 146, 146, 161, 161, 177, 161, 177, 177, 177, 240, + 240, 67, 147, 147, 0, 11, 32, 68, 21, 0, 6, 22, + 195, 83, 146, 146, 113, 68, 81, 82, 50, 49, 66, 65, + 50, 81, 65, 65, 50, 98, 34, 33, 50, 114, 49, 33, + 50, 114, 49, 33, 50, 114, 49, 33, 50, 114, 49, 33, + 50, 114, 49, 49, 50, 98, 49, 49, 50, 83, 49, 50, + 50, 49, 18, 33, 82, 52, 51, 114, 240, 83, 131, 153, + 0, 19, 16, 49, 22, 240, 240, 18, 240, 82, 240, 82, + 240, 68, 240, 49, 18, 240, 33, 35, 240, 17, 35, 240, + 17, 50, 241, 67, 225, 67, 225, 82, 209, 99, 193, 99, + 203, 161, 131, 161, 131, 145, 163, 129, 163, 114, 163, 86, + 104, 0, 19, 64, 42, 20, 240, 240, 173, 162, 115, 130, + 131, 114, 147, 98, 147, 98, 147, 98, 147, 98, 131, 114, + 115, 138, 162, 131, 114, 147, 98, 163, 82, 163, 82, 163, + 82, 163, 82, 147, 98, 131, 78, 0, 18, 32, 45, 20, + 0, 5, 118, 65, 115, 82, 18, 83, 147, 67, 163, 66, + 194, 51, 209, 50, 225, 35, 240, 35, 240, 35, 240, 35, + 240, 35, 240, 50, 225, 51, 209, 66, 209, 67, 177, 99, + 145, 147, 82, 198, 0, 18, 48, 43, 22, 240, 240, 238, + 178, 116, 146, 147, 130, 163, 114, 179, 98, 179, 98, 195, + 82, 195, 82, 195, 82, 195, 82, 195, 82, 195, 82, 195, + 82, 194, 98, 179, 98, 163, 114, 147, 130, 131, 110, 0, + 20, 32, 46, 20, 240, 240, 175, 1, 114, 147, 98, 162, + 98, 177, 98, 177, 98, 177, 98, 97, 65, 98, 97, 178, + 82, 185, 178, 82, 178, 97, 178, 97, 81, 82, 193, 82, + 177, 98, 177, 98, 177, 98, 147, 63, 2, 0, 17, 112, + 42, 19, 240, 240, 143, 1, 98, 146, 98, 161, 98, 177, + 82, 177, 82, 177, 82, 97, 162, 97, 162, 82, 169, 162, + 82, 162, 97, 162, 97, 162, 240, 34, 240, 34, 240, 34, + 240, 34, 233, 0, 17, 112, 47, 21, 0, 6, 22, 49, + 147, 81, 33, 115, 131, 99, 162, 98, 193, 83, 193, 82, + 209, 67, 240, 51, 240, 51, 240, 51, 240, 51, 136, 50, + 194, 83, 178, 98, 178, 99, 162, 115, 146, 147, 82, 17, + 182, 49, 0, 18, 112, 44, 22, 240, 240, 232, 72, 82, + 162, 130, 162, 130, 162, 130, 162, 130, 162, 130, 162, 130, + 162, 130, 162, 142, 130, 162, 130, 162, 130, 162, 130, 162, + 130, 162, 130, 162, 130, 162, 130, 162, 88, 72, 0, 19, + 64, 24, 10, 240, 88, 82, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 88, 0, + 9, 29, 13, 240, 247, 146, 178, 178, 178, 178, 178, 178, + 178, 178, 178, 178, 178, 178, 67, 66, 67, 66, 67, 66, + 81, 66, 116, 0, 12, 32, 47, 22, 240, 240, 232, 101, + 98, 162, 130, 145, 162, 129, 178, 113, 194, 97, 210, 81, + 226, 65, 242, 51, 226, 33, 19, 210, 17, 50, 211, 67, + 194, 99, 178, 115, 162, 115, 162, 131, 146, 147, 130, 148, + 72, 87, 0, 19, 64, 31, 17, 240, 240, 73, 178, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 145, + 82, 145, 82, 145, 82, 130, 82, 115, 47, 0, 15, 16, + 74, 26, 0, 6, 70, 198, 83, 195, 129, 18, 161, 18, + 129, 18, 161, 18, 129, 19, 145, 18, 129, 34, 129, 34, + 129, 34, 129, 34, 129, 50, 97, 50, 129, 50, 97, 50, + 129, 51, 81, 50, 129, 66, 65, 66, 129, 66, 65, 66, + 129, 82, 33, 82, 129, 82, 33, 82, 129, 83, 17, 82, + 129, 99, 98, 129, 99, 98, 115, 97, 114, 87, 65, 72, + 0, 23, 57, 22, 240, 240, 230, 119, 84, 131, 113, 18, + 145, 129, 19, 129, 129, 35, 113, 129, 51, 97, 129, 51, + 97, 129, 67, 81, 129, 83, 65, 129, 98, 65, 129, 99, + 49, 129, 115, 33, 129, 130, 33, 129, 131, 17, 129, 148, + 129, 163, 129, 163, 115, 162, 87, 145, 0, 19, 112, 43, + 21, 0, 6, 22, 195, 83, 147, 115, 115, 147, 98, 179, + 67, 179, 66, 211, 35, 211, 35, 211, 35, 211, 35, 211, + 35, 211, 35, 211, 51, 179, 67, 179, 83, 147, 115, 115, + 147, 83, 199, 0, 19, 48, 40, 19, 240, 240, 141, 146, + 115, 114, 131, 98, 147, 82, 147, 82, 147, 82, 147, 82, + 147, 82, 131, 98, 115, 122, 146, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 232, 0, 18, 55, 21, + 0, 6, 22, 210, 83, 147, 115, 115, 147, 98, 179, 67, + 179, 66, 210, 51, 211, 35, 211, 35, 211, 35, 211, 35, + 211, 35, 211, 51, 194, 67, 179, 83, 51, 66, 114, 33, + 49, 34, 148, 66, 215, 81, 226, 65, 226, 50, 246, 245, + 240, 35, 0, 5, 96, 45, 23, 0, 5, 109, 210, 115, + 178, 131, 162, 147, 146, 147, 146, 147, 146, 147, 146, 131, + 162, 115, 185, 226, 99, 194, 115, 178, 130, 178, 131, 162, + 131, 162, 131, 162, 131, 65, 82, 147, 34, 54, 133, 0, + 20, 64, 39, 15, 240, 240, 53, 49, 82, 68, 66, 99, + 50, 130, 50, 145, 50, 145, 51, 129, 68, 184, 152, 181, + 211, 195, 33, 162, 33, 162, 34, 146, 34, 130, 52, 82, + 65, 54, 0, 13, 96, 48, 20, 240, 240, 175, 3, 34, + 98, 98, 33, 114, 113, 33, 114, 113, 33, 114, 113, 33, + 114, 113, 162, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 234, 0, 18, 32, 44, 22, 240, 240, 232, 87, 82, + 163, 114, 177, 130, 177, 130, 177, 130, 177, 130, 177, 130, + 177, 130, 177, 130, 177, 130, 177, 130, 177, 130, 177, 130, + 177, 130, 177, 146, 145, 177, 129, 210, 81, 246, 0, 20, + 48, 47, 22, 240, 240, 231, 133, 67, 178, 114, 177, 131, + 161, 146, 161, 147, 129, 163, 129, 178, 113, 195, 97, 210, + 97, 211, 65, 242, 65, 243, 33, 240, 19, 33, 240, 34, + 17, 240, 52, 240, 67, 240, 66, 240, 82, 0, 20, 80, + 72, 30, 0, 7, 71, 71, 85, 67, 131, 131, 98, 131, + 145, 114, 146, 129, 131, 131, 113, 146, 116, 113, 147, 81, + 34, 97, 163, 81, 35, 81, 178, 81, 35, 81, 179, 49, + 66, 65, 195, 49, 67, 49, 210, 49, 82, 49, 211, 17, + 98, 33, 227, 17, 99, 17, 242, 17, 115, 240, 19, 131, + 240, 19, 131, 240, 34, 145, 240, 49, 161, 0, 27, 64, + 50, 22, 240, 240, 232, 71, 99, 130, 163, 113, 195, 81, + 211, 81, 227, 49, 240, 19, 17, 240, 35, 17, 240, 51, + 240, 83, 240, 49, 18, 240, 49, 19, 240, 17, 51, 225, + 83, 193, 99, 193, 115, 161, 147, 130, 148, 71, 103, 0, + 19, 64, 46, 22, 240, 240, 231, 118, 68, 162, 115, 161, + 147, 129, 163, 129, 179, 97, 210, 81, 227, 65, 243, 33, + 240, 34, 17, 240, 52, 240, 66, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 40, 0, 20, 32, + 36, 17, 240, 240, 79, 36, 130, 50, 147, 49, 147, 65, + 131, 81, 131, 211, 211, 226, 227, 211, 226, 227, 211, 129, + 82, 145, 66, 161, 51, 146, 50, 147, 47, 0, 15, 16, + 30, 6, 100, 33, 81, 81, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 84, 32, 22, 11, 240, 145, 65, 65, + 65, 81, 65, 65, 65, 81, 65, 83, 35, 51, 36, 50, + 50, 0, 25, 16, 30, 6, 100, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 81, 81, 36, 32, 14, 9, + 240, 97, 113, 17, 97, 33, 65, 65, 33, 0, 24, 80, + 7, 5, 243, 35, 35, 0, 14, 13, 6, 225, 65, 81, + 65, 81, 83, 52, 50, 0, 13, 112, 33, 17, 0, 13, + 81, 240, 17, 243, 227, 209, 19, 193, 34, 193, 34, 177, + 51, 161, 66, 145, 83, 137, 129, 98, 113, 115, 97, 130, + 68, 86, 0, 15, 16, 32, 15, 0, 13, 26, 114, 83, + 82, 98, 82, 98, 82, 98, 82, 82, 104, 114, 98, 82, + 114, 66, 114, 66, 114, 66, 114, 66, 98, 58, 0, 13, + 96, 31, 16, 0, 14, 85, 49, 82, 84, 66, 130, 50, + 146, 49, 177, 34, 177, 34, 226, 226, 241, 177, 50, 161, + 66, 129, 99, 66, 149, 0, 14, 96, 33, 16, 0, 14, + 10, 130, 83, 98, 114, 82, 114, 82, 130, 66, 130, 66, + 130, 66, 130, 66, 130, 66, 130, 66, 114, 82, 114, 82, + 83, 74, 0, 14, 96, 31, 15, 0, 13, 28, 82, 113, + 82, 129, 66, 129, 66, 65, 130, 65, 135, 130, 65, 130, + 65, 130, 210, 129, 66, 129, 66, 114, 45, 0, 13, 48, + 29, 15, 0, 13, 28, 82, 98, 82, 113, 82, 113, 82, + 129, 66, 65, 130, 65, 135, 130, 65, 130, 65, 130, 210, + 210, 182, 0, 14, 32, 37, 18, 0, 16, 53, 49, 114, + 82, 17, 98, 130, 82, 161, 81, 177, 66, 240, 18, 240, + 18, 240, 18, 119, 50, 146, 82, 146, 98, 130, 115, 81, + 17, 150, 33, 0, 16, 32, 34, 17, 0, 14, 118, 54, + 66, 114, 98, 114, 98, 114, 98, 114, 98, 114, 107, 98, + 114, 98, 114, 98, 114, 98, 114, 98, 114, 98, 114, 70, + 54, 0, 15, 16, 21, 8, 0, 7, 6, 66, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 70, 0, 7, + 32, 23, 11, 0, 10, 6, 130, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 50, 66, 50, 50, 85, 0, 10, 32, + 35, 17, 0, 14, 118, 84, 66, 114, 98, 98, 114, 81, + 146, 65, 162, 49, 178, 35, 164, 19, 146, 66, 146, 82, + 130, 98, 114, 99, 98, 115, 54, 69, 0, 15, 16, 25, + 14, 0, 12, 38, 162, 194, 194, 194, 194, 194, 194, 194, + 194, 113, 66, 113, 66, 98, 66, 82, 59, 0, 12, 80, + 55, 20, 0, 17, 68, 164, 67, 131, 97, 17, 113, 18, + 97, 18, 97, 18, 97, 18, 97, 18, 97, 34, 65, 34, + 97, 34, 65, 34, 97, 49, 49, 50, 97, 50, 33, 50, + 97, 50, 33, 50, 97, 67, 66, 97, 67, 66, 97, 81, + 82, 69, 49, 54, 0, 17, 96, 43, 17, 0, 14, 117, + 85, 67, 113, 97, 18, 97, 97, 19, 81, 97, 34, 81, + 97, 50, 65, 97, 66, 49, 97, 67, 33, 97, 82, 33, + 97, 98, 17, 97, 115, 97, 115, 98, 114, 69, 113, 0, + 15, 48, 33, 17, 0, 15, 69, 162, 82, 114, 114, 82, + 146, 65, 178, 34, 178, 34, 178, 34, 178, 34, 178, 35, + 162, 50, 146, 82, 114, 114, 82, 165, 0, 15, 96, 27, + 15, 0, 13, 26, 114, 98, 82, 114, 66, 114, 66, 114, + 66, 114, 66, 98, 88, 114, 210, 210, 210, 210, 182, 0, + 14, 32, 42, 17, 0, 15, 70, 147, 66, 114, 114, 82, + 146, 66, 161, 50, 178, 34, 178, 34, 178, 34, 178, 34, + 178, 50, 146, 82, 51, 33, 114, 17, 50, 166, 240, 17, + 49, 194, 33, 212, 211, 0, 6, 96, 35, 17, 0, 14, + 121, 162, 82, 130, 98, 114, 98, 114, 98, 114, 82, 135, + 162, 66, 146, 82, 130, 82, 130, 82, 130, 82, 49, 66, + 83, 33, 38, 68, 0, 15, 32, 30, 13, 0, 11, 100, + 33, 66, 67, 50, 98, 50, 113, 50, 113, 52, 167, 150, + 179, 33, 130, 33, 130, 34, 114, 35, 82, 49, 37, 0, + 12, 29, 16, 0, 14, 14, 34, 66, 66, 33, 82, 81, + 33, 82, 81, 33, 82, 81, 130, 226, 226, 226, 226, 226, + 226, 226, 184, 0, 14, 80, 34, 17, 0, 14, 118, 69, + 66, 129, 98, 129, 98, 129, 98, 129, 98, 129, 98, 129, + 98, 129, 98, 129, 98, 129, 98, 129, 114, 97, 146, 65, + 181, 0, 15, 96, 31, 17, 0, 14, 117, 100, 51, 130, + 82, 129, 99, 97, 130, 97, 130, 97, 146, 65, 162, 65, + 178, 33, 194, 33, 196, 227, 226, 240, 17, 0, 16, 51, + 23, 0, 20, 21, 53, 68, 51, 83, 98, 82, 98, 97, + 98, 98, 97, 98, 81, 18, 65, 130, 65, 18, 65, 130, + 65, 18, 65, 146, 33, 50, 33, 162, 33, 50, 33, 162, + 17, 82, 17, 179, 83, 195, 83, 194, 114, 209, 113, 0, + 21, 16, 32, 17, 0, 14, 118, 53, 83, 82, 130, 81, + 162, 49, 179, 17, 212, 226, 243, 209, 34, 177, 51, 161, + 66, 145, 98, 114, 99, 69, 70, 0, 15, 16, 32, 18, + 0, 15, 102, 100, 67, 114, 114, 113, 146, 81, 163, 65, + 178, 49, 210, 17, 228, 242, 240, 18, 240, 18, 240, 18, + 240, 18, 230, 0, 16, 80, 29, 13, 0, 11, 59, 34, + 98, 49, 114, 49, 98, 65, 82, 163, 162, 162, 162, 178, + 81, 66, 97, 50, 113, 49, 114, 43, 0, 11, 80, 8, + 16, 0, 26, 14, 0, 28, 32, 9, 31, 0, 50, 63, + 14, 0, 54, 64, 16, 11, 240, 146, 50, 66, 50, 50, + 50, 65, 65, 65, 65, 0, 29, 64, 12, 11, 240, 240, + 83, 113, 37, 33, 67, 0, 30, 80, +}; + +//***************************************************************************** +// +// The font definition for the 28 point Cmsc font. +// +//***************************************************************************** +const tFont g_sFontCmsc28 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 28, + + // + // The height of the font. + // + 28, + + // + // The baseline of the font. + // + 21, + + // + // The offset to each character in the font. + // + { + 0, 5, 28, 50, 105, 157, 229, 285, + 297, 328, 359, 387, 432, 446, 455, 465, + 496, 536, 562, 595, 628, 663, 696, 735, + 761, 801, 840, 855, 873, 905, 918, 950, + 979, 1047, 1096, 1138, 1183, 1226, 1272, 1314, + 1361, 1405, 1429, 1458, 1505, 1536, 1610, 1667, + 1710, 1750, 1805, 1850, 1889, 1937, 1981, 2028, + 2100, 2150, 2196, 2232, 2262, 2284, 2314, 2328, + 2335, 2348, 2381, 2413, 2444, 2477, 2508, 2537, + 2574, 2608, 2629, 2652, 2687, 2712, 2767, 2810, + 2843, 2870, 2912, 2947, 2977, 3006, 3040, 3071, + 3122, 3154, 3186, 3215, 3223, 3232, 3248, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmsc28Data +}; diff --git a/grlib/fonts/fontcmsc30.c b/grlib/fonts/fontcmsc30.c new file mode 100644 index 0000000..5b09f09 --- /dev/null +++ b/grlib/fonts/fontcmsc30.c @@ -0,0 +1,399 @@ +//***************************************************************************** +// +// fontcmsc30.c - Font definition for the 30pt Cmsc font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmsc +// Size: 30 point +// Bold: no +// Italic: no +// Memory usage: 3712 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 30 point Cmsc font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmsc30Data[3512] = +{ + 5, 13, 0, 47, 16, 25, 6, 99, 51, 51, 51, 51, + 51, 51, 51, 65, 81, 81, 81, 81, 81, 81, 81, 240, + 19, 51, 51, 240, 240, 240, 24, 13, 240, 179, 66, 68, + 36, 52, 51, 97, 81, 97, 81, 97, 81, 81, 81, 81, + 97, 81, 81, 0, 29, 112, 80, 25, 0, 7, 66, 82, + 240, 17, 97, 240, 33, 97, 240, 33, 97, 240, 17, 97, + 240, 33, 97, 240, 33, 97, 240, 18, 82, 240, 17, 97, + 159, 7, 162, 82, 240, 17, 97, 240, 33, 97, 240, 33, + 97, 240, 18, 82, 175, 7, 145, 97, 240, 33, 97, 240, + 17, 97, 240, 33, 97, 240, 33, 97, 240, 18, 82, 240, + 17, 97, 240, 33, 97, 240, 33, 97, 240, 18, 82, 240, + 240, 128, 54, 16, 240, 113, 199, 130, 33, 50, 82, 49, + 66, 50, 65, 51, 50, 65, 51, 50, 65, 51, 51, 49, + 164, 17, 183, 168, 182, 161, 35, 161, 51, 51, 49, 66, + 51, 49, 66, 51, 49, 66, 49, 81, 65, 81, 65, 50, + 97, 49, 34, 134, 209, 0, 13, 16, 77, 26, 51, 209, + 129, 50, 162, 114, 67, 99, 129, 97, 22, 17, 130, 97, + 114, 130, 97, 98, 146, 97, 97, 162, 97, 82, 162, 97, + 66, 193, 81, 66, 210, 65, 65, 242, 33, 66, 240, 34, + 66, 97, 240, 33, 82, 18, 226, 66, 65, 194, 81, 97, + 162, 82, 97, 161, 98, 97, 146, 98, 97, 130, 114, 97, + 114, 130, 97, 113, 162, 65, 114, 177, 50, 113, 211, 0, + 17, 65, 24, 240, 243, 240, 82, 18, 240, 50, 49, 240, + 50, 49, 240, 50, 49, 240, 50, 49, 240, 50, 33, 240, + 66, 17, 240, 99, 103, 130, 147, 162, 145, 177, 18, 129, + 161, 34, 113, 161, 66, 81, 161, 83, 65, 146, 98, 49, + 162, 114, 17, 178, 115, 129, 66, 115, 113, 67, 66, 35, + 50, 117, 101, 0, 21, 80, 14, 7, 227, 68, 52, 97, + 97, 97, 81, 81, 97, 0, 16, 48, 32, 10, 97, 129, + 130, 114, 129, 130, 129, 130, 130, 130, 114, 130, 130, 130, + 130, 130, 130, 130, 130, 146, 130, 130, 145, 146, 145, 146, + 146, 145, 161, 48, 32, 10, 1, 161, 161, 146, 145, 146, + 145, 146, 130, 145, 146, 130, 130, 130, 130, 130, 130, 130, + 130, 129, 145, 130, 129, 145, 129, 130, 129, 129, 129, 144, + 27, 15, 82, 210, 210, 130, 50, 50, 67, 18, 34, 115, + 18, 178, 179, 18, 115, 18, 34, 66, 50, 50, 130, 210, + 210, 0, 31, 47, 24, 0, 13, 33, 240, 129, 240, 129, + 240, 129, 240, 129, 240, 129, 240, 129, 240, 129, 240, 129, + 240, 129, 223, 6, 209, 240, 129, 240, 129, 240, 129, 240, + 129, 240, 129, 240, 129, 240, 129, 240, 129, 240, 129, 0, + 13, 80, 14, 7, 0, 16, 98, 68, 67, 97, 97, 97, + 81, 81, 97, 192, 9, 11, 0, 20, 88, 56, 0, 16, + 112, 10, 6, 0, 14, 35, 51, 51, 240, 240, 240, 32, + 15, 177, 210, 209, 225, 210, 209, 210, 209, 225, 210, 209, + 225, 209, 225, 210, 209, 225, 209, 225, 210, 209, 225, 210, + 209, 210, 209, 225, 210, 209, 224, 42, 15, 0, 6, 20, + 146, 66, 98, 98, 82, 98, 81, 129, 66, 130, 50, 130, + 50, 130, 50, 130, 50, 130, 50, 130, 50, 130, 50, 130, + 50, 130, 50, 130, 66, 98, 82, 98, 98, 66, 133, 0, + 14, 26, 13, 240, 240, 210, 118, 178, 178, 178, 178, 178, + 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 122, + 0, 11, 96, 34, 15, 0, 6, 6, 129, 83, 81, 114, + 67, 114, 51, 114, 51, 114, 210, 194, 210, 194, 194, 209, + 209, 209, 209, 97, 97, 113, 81, 129, 75, 59, 0, 13, + 80, 34, 16, 0, 6, 54, 145, 83, 99, 83, 83, 83, + 83, 83, 211, 210, 210, 165, 243, 227, 226, 227, 211, 66, + 115, 51, 115, 51, 114, 82, 83, 134, 0, 14, 112, 36, + 16, 0, 7, 17, 226, 211, 193, 18, 193, 18, 177, 34, + 161, 50, 161, 50, 145, 66, 129, 82, 113, 98, 113, 98, + 97, 114, 109, 178, 226, 226, 226, 184, 0, 14, 48, 34, + 15, 0, 5, 114, 82, 104, 118, 145, 225, 225, 225, 225, + 36, 131, 50, 113, 98, 225, 226, 210, 66, 114, 51, 114, + 66, 114, 65, 114, 97, 82, 133, 0, 14, 41, 15, 0, + 6, 37, 146, 50, 98, 82, 97, 98, 82, 209, 210, 37, + 98, 17, 66, 83, 98, 67, 113, 66, 130, 50, 130, 50, + 130, 50, 130, 65, 130, 65, 129, 97, 98, 98, 66, 148, + 0, 14, 29, 16, 0, 6, 28, 75, 65, 145, 81, 129, + 97, 129, 225, 225, 241, 225, 241, 226, 225, 241, 226, 226, + 226, 226, 226, 226, 0, 15, 32, 40, 15, 0, 6, 20, + 145, 82, 97, 114, 81, 129, 81, 129, 82, 113, 83, 81, + 116, 33, 149, 166, 129, 53, 81, 99, 65, 131, 49, 146, + 49, 161, 49, 146, 65, 129, 98, 66, 133, 0, 14, 42, + 15, 0, 6, 20, 146, 66, 98, 98, 81, 129, 66, 129, + 66, 130, 50, 130, 50, 130, 50, 130, 65, 130, 66, 99, + 82, 65, 18, 101, 34, 209, 210, 82, 97, 98, 82, 98, + 66, 133, 0, 14, 16, 15, 6, 0, 7, 67, 51, 51, + 240, 240, 147, 51, 51, 240, 240, 240, 19, 7, 0, 8, + 115, 52, 66, 0, 5, 114, 68, 67, 97, 97, 97, 81, + 97, 81, 192, 40, 22, 0, 18, 82, 240, 51, 240, 35, + 240, 19, 240, 35, 240, 35, 240, 35, 240, 19, 240, 50, + 240, 99, 240, 115, 240, 99, 240, 99, 240, 99, 240, 115, + 240, 99, 240, 98, 0, 16, 112, 13, 24, 0, 33, 15, + 6, 0, 15, 63, 6, 0, 33, 48, 39, 22, 0, 16, + 66, 240, 99, 240, 114, 240, 115, 240, 99, 240, 99, 240, + 115, 240, 99, 240, 98, 240, 50, 240, 35, 240, 35, 240, + 35, 240, 19, 240, 35, 240, 35, 240, 50, 0, 19, 30, + 14, 240, 247, 97, 98, 66, 114, 50, 114, 50, 114, 193, + 194, 177, 194, 193, 194, 193, 209, 209, 209, 240, 240, 163, + 164, 179, 0, 13, 16, 70, 24, 0, 6, 119, 242, 114, + 178, 178, 130, 69, 66, 113, 51, 65, 66, 81, 50, 113, + 65, 81, 50, 130, 33, 65, 50, 146, 49, 49, 50, 146, + 49, 49, 50, 146, 49, 49, 50, 146, 49, 49, 50, 146, + 49, 50, 50, 130, 49, 65, 50, 115, 49, 65, 67, 65, + 18, 33, 97, 85, 51, 129, 240, 145, 226, 131, 116, 200, + 0, 22, 16, 53, 24, 240, 240, 65, 240, 115, 240, 99, + 240, 99, 240, 81, 19, 240, 65, 19, 240, 65, 34, 240, + 49, 51, 240, 33, 51, 240, 17, 83, 241, 83, 241, 98, + 225, 115, 219, 209, 130, 193, 147, 177, 147, 161, 179, 145, + 179, 131, 163, 102, 120, 0, 21, 48, 44, 22, 240, 240, + 238, 178, 131, 146, 147, 130, 163, 114, 163, 114, 163, 114, + 163, 114, 147, 130, 130, 170, 194, 131, 146, 163, 114, 163, + 114, 179, 98, 179, 98, 179, 98, 179, 98, 163, 114, 132, + 95, 0, 20, 16, 47, 22, 0, 6, 70, 65, 131, 97, + 34, 114, 148, 98, 179, 82, 210, 67, 210, 67, 225, 51, + 241, 51, 240, 67, 240, 67, 240, 67, 240, 67, 240, 83, + 225, 67, 225, 82, 209, 114, 193, 130, 161, 163, 98, 215, + 0, 20, 32, 45, 23, 0, 5, 110, 194, 116, 162, 147, + 146, 163, 130, 178, 130, 179, 114, 194, 114, 195, 98, 195, + 98, 195, 98, 195, 98, 195, 98, 195, 98, 194, 114, 179, + 114, 179, 114, 163, 130, 147, 146, 116, 126, 0, 21, 32, + 46, 21, 240, 240, 207, 2, 114, 147, 114, 162, 114, 177, + 114, 177, 114, 177, 114, 97, 194, 97, 194, 82, 201, 194, + 82, 194, 97, 194, 97, 194, 193, 98, 193, 98, 193, 98, + 193, 98, 177, 114, 147, 79, 2, 0, 18, 112, 45, 20, + 240, 240, 175, 1, 114, 147, 98, 162, 98, 177, 98, 177, + 98, 177, 98, 97, 65, 98, 97, 178, 97, 178, 82, 185, + 178, 82, 178, 97, 178, 97, 178, 240, 50, 240, 50, 240, + 50, 240, 50, 249, 0, 18, 112, 49, 23, 0, 6, 86, + 65, 163, 82, 33, 146, 147, 130, 178, 114, 194, 99, 209, + 99, 209, 83, 225, 83, 240, 83, 240, 83, 240, 83, 240, + 83, 152, 67, 194, 99, 194, 114, 194, 115, 178, 146, 147, + 163, 98, 17, 199, 49, 0, 20, 96, 46, 23, 0, 5, + 104, 72, 98, 162, 146, 162, 146, 162, 146, 162, 146, 162, + 146, 162, 146, 162, 146, 162, 158, 146, 162, 146, 162, 146, + 162, 146, 162, 146, 162, 146, 162, 146, 162, 146, 162, 146, + 162, 104, 72, 0, 20, 64, 25, 11, 240, 120, 98, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 104, 0, 10, 31, 15, 240, 240, 72, + 178, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 83, 82, 83, 82, 83, 67, 97, 67, 133, 0, + 14, 16, 50, 24, 0, 6, 8, 102, 114, 163, 146, 161, + 178, 145, 194, 129, 210, 113, 226, 97, 242, 81, 240, 18, + 66, 240, 18, 37, 242, 17, 51, 227, 67, 226, 99, 210, + 115, 194, 115, 194, 131, 178, 147, 162, 163, 146, 164, 88, + 88, 0, 21, 48, 45, 19, 240, 240, 137, 210, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 161, 98, 161, 98, + 161, 98, 161, 98, 146, 98, 146, 98, 115, 79, 0, 17, + 16, 79, 28, 0, 7, 6, 214, 99, 211, 145, 18, 177, + 18, 145, 18, 177, 18, 145, 19, 161, 18, 145, 34, 145, + 34, 145, 35, 129, 34, 145, 50, 113, 50, 145, 50, 113, + 50, 145, 51, 97, 50, 145, 66, 81, 66, 145, 67, 65, + 66, 145, 82, 49, 82, 145, 82, 49, 82, 145, 83, 33, + 82, 145, 98, 17, 98, 145, 100, 98, 145, 114, 114, 131, + 98, 114, 103, 65, 88, 0, 24, 112, 60, 23, 0, 5, + 102, 119, 100, 131, 129, 18, 145, 145, 19, 129, 145, 35, + 113, 145, 50, 113, 145, 51, 97, 145, 67, 81, 145, 82, + 81, 145, 83, 65, 145, 99, 49, 145, 114, 49, 145, 115, + 33, 145, 131, 17, 145, 146, 17, 145, 148, 145, 163, 145, + 178, 131, 162, 103, 145, 0, 20, 112, 45, 24, 0, 6, + 119, 243, 83, 194, 146, 162, 179, 114, 210, 99, 211, 82, + 242, 67, 243, 51, 243, 51, 243, 51, 243, 51, 243, 51, + 243, 67, 226, 83, 211, 98, 210, 115, 179, 146, 146, 195, + 83, 247, 0, 22, 32, 43, 21, 240, 240, 206, 162, 131, + 130, 147, 114, 163, 98, 163, 98, 163, 98, 163, 98, 162, + 114, 147, 114, 131, 139, 162, 240, 66, 240, 66, 240, 66, + 240, 66, 240, 66, 240, 66, 240, 66, 240, 24, 0, 20, + 64, 24, 0, 7, 6, 243, 83, 194, 146, 162, 178, 131, + 179, 99, 211, 83, 211, 82, 243, 51, 243, 51, 243, 51, + 243, 51, 243, 51, 243, 66, 242, 83, 211, 98, 210, 115, + 67, 66, 147, 33, 49, 34, 196, 66, 240, 23, 97, 240, + 18, 81, 240, 33, 81, 240, 34, 50, 240, 38, 240, 69, + 240, 68, 240, 224, 47, 24, 0, 6, 12, 242, 115, 194, + 131, 178, 146, 178, 147, 162, 147, 162, 147, 162, 146, 178, + 131, 178, 114, 217, 242, 99, 210, 115, 194, 130, 194, 131, + 178, 131, 178, 131, 178, 131, 65, 98, 147, 34, 70, 133, + 0, 21, 64, 43, 17, 240, 240, 133, 49, 98, 82, 17, + 82, 115, 66, 146, 66, 146, 66, 161, 67, 145, 68, 231, + 185, 183, 228, 243, 49, 178, 49, 178, 49, 178, 50, 162, + 51, 130, 66, 18, 82, 81, 69, 0, 15, 96, 52, 23, + 0, 5, 127, 3, 82, 98, 98, 81, 114, 113, 81, 114, + 113, 65, 130, 129, 49, 130, 129, 49, 130, 129, 194, 240, + 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 42, 0, + 21, 16, 47, 23, 0, 5, 104, 87, 98, 163, 130, 177, + 146, 177, 146, 177, 146, 177, 146, 177, 146, 177, 146, 177, + 146, 177, 146, 177, 146, 177, 146, 177, 146, 177, 146, 177, + 146, 162, 162, 145, 194, 113, 226, 81, 240, 22, 0, 21, + 48, 52, 25, 0, 6, 40, 134, 99, 179, 131, 193, 147, + 177, 179, 161, 179, 161, 195, 129, 211, 129, 226, 113, 243, + 97, 243, 81, 240, 35, 65, 240, 35, 65, 240, 50, 49, + 240, 67, 33, 240, 82, 17, 240, 100, 240, 99, 240, 130, + 240, 130, 0, 23, 64, 79, 34, 0, 8, 72, 71, 87, + 83, 147, 147, 131, 131, 161, 147, 146, 145, 178, 147, 129, + 179, 116, 129, 179, 113, 19, 97, 210, 97, 35, 97, 211, + 81, 35, 97, 211, 81, 51, 65, 242, 65, 67, 65, 243, + 49, 82, 49, 240, 19, 49, 83, 33, 240, 34, 33, 99, + 33, 240, 35, 17, 114, 17, 240, 52, 132, 240, 67, 132, + 240, 67, 146, 240, 97, 162, 240, 97, 162, 0, 31, 32, + 54, 25, 0, 6, 56, 71, 132, 131, 179, 129, 227, 113, + 243, 81, 240, 19, 65, 240, 51, 33, 240, 83, 17, 240, + 99, 240, 115, 240, 116, 240, 97, 19, 240, 65, 35, 240, + 49, 67, 240, 18, 83, 241, 115, 209, 131, 193, 163, 163, + 148, 103, 120, 0, 22, 32, 50, 25, 0, 6, 40, 134, + 99, 179, 147, 161, 179, 161, 195, 129, 227, 97, 243, 97, + 240, 19, 65, 240, 50, 49, 240, 67, 33, 240, 84, 240, + 114, 240, 130, 240, 130, 240, 130, 240, 130, 240, 130, 240, + 130, 240, 130, 240, 88, 0, 23, 16, 43, 19, 240, 240, + 143, 1, 52, 131, 66, 163, 66, 147, 81, 147, 97, 147, + 97, 131, 243, 243, 240, 19, 243, 243, 240, 18, 129, 115, + 129, 99, 145, 98, 161, 83, 161, 67, 162, 66, 148, 63, + 1, 0, 17, 32, 7, 4, 49, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 100, 48, 22, + 13, 240, 209, 81, 81, 81, 97, 81, 81, 81, 97, 81, + 99, 52, 52, 36, 66, 67, 0, 31, 32, 32, 7, 4, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 52, 48, 11, 11, 240, 177, 132, 98, 34, + 65, 97, 0, 32, 9, 6, 240, 51, 51, 51, 0, 17, + 80, 13, 7, 240, 17, 81, 97, 81, 97, 100, 52, 67, + 0, 17, 37, 19, 0, 15, 18, 240, 34, 240, 34, 240, + 17, 18, 241, 18, 225, 35, 209, 50, 209, 50, 193, 67, + 177, 82, 184, 161, 114, 145, 114, 129, 131, 114, 130, 85, + 86, 0, 17, 34, 16, 0, 14, 10, 130, 83, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 82, 120, 130, 98, 98, + 114, 82, 114, 82, 114, 82, 114, 82, 98, 74, 0, 14, + 96, 33, 17, 0, 15, 69, 49, 98, 84, 82, 130, 66, + 146, 66, 161, 50, 177, 50, 242, 242, 242, 177, 66, 161, + 66, 161, 82, 129, 115, 66, 165, 0, 15, 96, 35, 18, + 0, 15, 107, 146, 98, 130, 114, 114, 130, 98, 145, 98, + 146, 82, 146, 82, 146, 82, 146, 82, 146, 82, 145, 98, + 130, 98, 129, 114, 98, 106, 0, 16, 96, 35, 18, 0, + 15, 110, 98, 130, 98, 145, 98, 145, 98, 81, 49, 98, + 81, 162, 66, 168, 162, 81, 162, 81, 162, 161, 82, 145, + 98, 145, 98, 130, 78, 0, 16, 32, 30, 17, 0, 14, + 125, 98, 115, 82, 145, 82, 145, 82, 145, 82, 81, 146, + 81, 152, 146, 66, 146, 81, 146, 242, 242, 242, 215, 0, + 16, 16, 39, 19, 0, 17, 37, 49, 131, 66, 17, 114, + 130, 98, 146, 98, 161, 82, 177, 82, 240, 34, 240, 34, + 240, 34, 119, 66, 146, 98, 146, 114, 130, 131, 81, 17, + 166, 33, 0, 17, 32, 35, 19, 0, 16, 86, 70, 82, + 130, 114, 130, 114, 130, 114, 130, 114, 130, 114, 130, 124, + 114, 130, 114, 130, 114, 130, 114, 130, 114, 130, 114, 130, + 86, 70, 0, 17, 22, 9, 0, 7, 118, 82, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 86, 0, + 8, 32, 24, 13, 0, 11, 103, 146, 178, 178, 178, 178, + 178, 178, 178, 178, 178, 178, 82, 66, 82, 50, 117, 0, + 12, 32, 37, 19, 0, 16, 86, 85, 82, 130, 114, 113, + 146, 97, 162, 81, 178, 65, 194, 35, 194, 17, 19, 179, + 50, 178, 82, 162, 83, 146, 99, 130, 114, 130, 115, 86, + 70, 0, 17, 26, 15, 0, 13, 23, 162, 210, 210, 210, + 210, 210, 210, 210, 210, 210, 113, 82, 113, 82, 113, 82, + 98, 60, 0, 13, 64, 59, 23, 0, 20, 21, 165, 83, + 163, 113, 18, 129, 18, 113, 18, 129, 18, 113, 34, 97, + 34, 113, 34, 97, 34, 113, 34, 97, 34, 113, 50, 65, + 50, 113, 50, 65, 50, 113, 66, 33, 66, 113, 66, 33, + 66, 113, 83, 82, 113, 83, 82, 114, 66, 98, 85, 65, + 70, 0, 20, 64, 46, 19, 0, 16, 85, 101, 83, 115, + 97, 18, 113, 113, 19, 97, 113, 35, 81, 113, 50, 81, + 113, 66, 65, 113, 67, 49, 113, 83, 33, 113, 99, 17, + 113, 114, 17, 113, 116, 113, 131, 114, 130, 85, 129, 0, + 17, 32, 35, 18, 0, 16, 53, 178, 82, 130, 114, 98, + 146, 81, 177, 66, 178, 50, 178, 50, 178, 50, 178, 50, + 178, 66, 146, 82, 146, 98, 114, 130, 82, 181, 0, 16, + 96, 28, 16, 0, 14, 10, 130, 98, 98, 114, 82, 114, + 82, 114, 82, 114, 82, 98, 104, 130, 226, 226, 226, 226, + 226, 198, 0, 15, 32, 44, 18, 0, 16, 53, 178, 67, + 130, 114, 98, 146, 81, 162, 66, 178, 50, 178, 50, 178, + 50, 178, 50, 178, 66, 146, 82, 51, 50, 98, 17, 33, + 34, 131, 50, 197, 65, 209, 49, 213, 212, 243, 0, 7, + 32, 36, 20, 0, 17, 74, 194, 98, 162, 114, 146, 114, + 146, 114, 146, 114, 146, 98, 168, 194, 82, 178, 98, 162, + 98, 162, 98, 162, 99, 49, 82, 99, 49, 54, 85, 0, + 18, 32, 14, 0, 12, 84, 33, 82, 65, 17, 66, 98, + 66, 113, 66, 113, 67, 198, 151, 180, 195, 49, 130, 49, + 130, 50, 114, 51, 82, 65, 37, 0, 13, 38, 19, 0, + 16, 110, 81, 82, 81, 81, 82, 81, 65, 98, 81, 65, + 98, 97, 162, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 232, 0, 17, 64, 36, + 19, 0, 16, 86, 85, 82, 130, 114, 145, 114, 145, 114, + 145, 114, 145, 114, 145, 114, 145, 114, 145, 114, 145, 114, + 145, 114, 145, 130, 113, 162, 66, 213, 0, 17, 80, 36, + 19, 0, 16, 86, 100, 82, 146, 98, 145, 115, 113, 146, + 113, 147, 97, 162, 81, 179, 65, 194, 49, 210, 49, 226, + 17, 242, 17, 243, 240, 34, 240, 34, 0, 17, 112, 54, + 26, 0, 22, 101, 54, 69, 67, 99, 113, 114, 114, 113, + 114, 114, 97, 146, 84, 81, 146, 81, 18, 81, 147, 49, + 34, 65, 178, 49, 50, 49, 178, 49, 50, 33, 195, 17, + 66, 33, 210, 17, 82, 17, 210, 17, 83, 242, 99, 242, + 114, 241, 129, 0, 24, 36, 19, 0, 16, 86, 69, 99, + 98, 147, 81, 178, 65, 210, 33, 227, 17, 243, 240, 34, + 240, 17, 18, 225, 35, 209, 51, 177, 83, 145, 114, 130, + 115, 85, 86, 0, 17, 36, 19, 0, 16, 86, 100, 82, + 146, 99, 129, 131, 97, 162, 81, 194, 49, 211, 33, 226, + 17, 240, 18, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 246, 0, 17, 80, 30, 15, 0, 13, 28, 51, 98, + 66, 99, 65, 114, 81, 98, 195, 179, 194, 194, 195, 194, + 97, 82, 113, 66, 129, 66, 99, 60, 0, 13, 64, 8, + 18, 0, 31, 79, 0, 31, 112, 10, 34, 0, 59, 79, + 15, 1, 0, 59, 112, 16, 13, 240, 210, 66, 82, 66, + 66, 66, 81, 81, 81, 81, 0, 36, 64, 11, 13, 240, + 240, 179, 65, 50, 52, 0, 39, 64, +}; + +//***************************************************************************** +// +// The font definition for the 30 point Cmsc font. +// +//***************************************************************************** +const tFont g_sFontCmsc30 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 30, + + // + // The height of the font. + // + 29, + + // + // The baseline of the font. + // + 22, + + // + // The offset to each character in the font. + // + { + 0, 5, 30, 54, 134, 188, 265, 330, + 344, 376, 408, 435, 482, 496, 505, 515, + 547, 589, 615, 649, 683, 719, 753, 794, + 823, 863, 905, 920, 939, 979, 992, 1031, + 1061, 1131, 1184, 1228, 1275, 1320, 1366, 1411, + 1460, 1506, 1531, 1562, 1612, 1657, 1736, 1796, + 1841, 1884, 1948, 1995, 2038, 2090, 2137, 2189, + 2268, 2322, 2372, 2415, 2447, 2469, 2501, 2512, + 2521, 2534, 2571, 2605, 2638, 2673, 2708, 2738, + 2777, 2812, 2834, 2858, 2895, 2921, 2980, 3026, + 3061, 3089, 3133, 3169, 3201, 3239, 3275, 3311, + 3365, 3401, 3437, 3467, 3475, 3485, 3501, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmsc30Data +}; diff --git a/grlib/fonts/fontcmsc32.c b/grlib/fonts/fontcmsc32.c new file mode 100644 index 0000000..171ef82 --- /dev/null +++ b/grlib/fonts/fontcmsc32.c @@ -0,0 +1,422 @@ +//***************************************************************************** +// +// fontcmsc32.c - Font definition for the 32pt Cmsc font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmsc +// Size: 32 point +// Bold: no +// Italic: no +// Memory usage: 3984 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 32 point Cmsc font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmsc32Data[3783] = +{ + 4, 13, 0, 52, 25, 6, 195, 51, 51, 51, 51, 51, + 51, 51, 65, 81, 81, 81, 81, 81, 81, 81, 240, 115, + 51, 51, 0, 6, 48, 25, 14, 240, 240, 195, 67, 68, + 52, 52, 52, 97, 97, 97, 97, 97, 97, 81, 97, 81, + 97, 81, 97, 0, 35, 96, 83, 27, 0, 11, 66, 97, + 240, 49, 113, 240, 49, 98, 240, 49, 97, 240, 50, 97, + 240, 49, 113, 240, 49, 98, 240, 34, 97, 240, 49, 113, + 240, 49, 98, 159, 9, 177, 113, 240, 49, 98, 240, 49, + 97, 240, 50, 97, 240, 49, 113, 191, 9, 146, 97, 240, + 49, 113, 240, 49, 98, 240, 34, 97, 240, 49, 113, 240, + 49, 98, 240, 49, 97, 240, 50, 97, 240, 49, 113, 240, + 49, 98, 0, 8, 64, 56, 16, 240, 240, 129, 199, 130, + 33, 50, 82, 49, 66, 50, 65, 51, 50, 65, 51, 50, + 65, 51, 51, 49, 163, 33, 166, 184, 167, 182, 161, 36, + 145, 51, 51, 49, 66, 51, 49, 66, 51, 49, 66, 49, + 81, 65, 81, 65, 50, 97, 49, 34, 134, 209, 0, 15, + 16, 83, 27, 52, 209, 130, 49, 178, 114, 81, 146, 130, + 83, 99, 114, 113, 22, 17, 130, 113, 113, 146, 113, 97, + 162, 113, 97, 162, 113, 81, 178, 113, 65, 209, 97, 66, + 210, 81, 65, 242, 49, 65, 240, 51, 66, 97, 240, 49, + 82, 18, 241, 82, 65, 210, 81, 81, 194, 82, 97, 177, + 98, 97, 161, 114, 97, 146, 114, 97, 130, 130, 97, 129, + 161, 97, 114, 162, 65, 114, 194, 34, 113, 227, 0, 21, + 69, 25, 0, 7, 4, 240, 82, 33, 240, 81, 65, 240, + 50, 65, 240, 50, 65, 240, 50, 65, 240, 50, 49, 240, + 66, 49, 240, 67, 17, 240, 99, 119, 130, 163, 163, 145, + 177, 18, 145, 161, 35, 113, 161, 67, 81, 161, 98, 81, + 146, 114, 49, 162, 115, 17, 178, 131, 129, 66, 131, 113, + 67, 82, 35, 50, 118, 101, 0, 25, 80, 15, 7, 240, + 99, 68, 52, 97, 97, 97, 81, 81, 81, 0, 18, 32, + 35, 11, 113, 145, 145, 145, 146, 145, 146, 145, 146, 146, + 146, 130, 146, 146, 146, 146, 146, 146, 146, 146, 146, 162, + 146, 146, 161, 162, 161, 162, 161, 177, 177, 177, 48, 35, + 11, 17, 162, 162, 161, 162, 162, 146, 162, 146, 146, 161, + 162, 146, 146, 146, 146, 146, 146, 146, 146, 146, 145, 161, + 146, 145, 161, 146, 145, 145, 146, 130, 130, 144, 31, 15, + 82, 210, 210, 129, 66, 65, 50, 50, 50, 67, 18, 19, + 115, 18, 178, 179, 18, 99, 34, 35, 50, 50, 50, 130, + 210, 210, 0, 34, 96, 49, 24, 0, 16, 33, 240, 129, + 240, 129, 240, 129, 240, 129, 240, 129, 240, 129, 240, 129, + 240, 129, 240, 129, 240, 129, 223, 6, 209, 240, 129, 240, + 129, 240, 129, 240, 129, 240, 129, 240, 129, 240, 129, 240, + 129, 240, 129, 0, 16, 80, 14, 7, 0, 18, 51, 68, + 52, 97, 97, 97, 81, 81, 240, 176, 9, 12, 0, 24, + 9, 57, 0, 21, 48, 10, 6, 0, 15, 99, 51, 51, + 0, 6, 48, 35, 16, 193, 226, 225, 241, 226, 225, 226, + 225, 241, 226, 225, 241, 226, 225, 226, 225, 241, 226, 225, + 226, 225, 241, 226, 225, 241, 226, 225, 226, 225, 241, 226, + 225, 240, 47, 16, 0, 6, 69, 162, 50, 129, 113, 98, + 114, 81, 145, 81, 146, 50, 146, 50, 146, 50, 146, 50, + 146, 50, 146, 50, 146, 50, 146, 50, 146, 50, 146, 50, + 146, 65, 145, 82, 114, 97, 113, 115, 51, 149, 0, 16, + 112, 29, 13, 240, 240, 225, 163, 115, 18, 178, 178, 178, + 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, + 178, 178, 122, 0, 13, 48, 38, 15, 0, 6, 20, 146, + 51, 97, 114, 81, 114, 65, 146, 51, 114, 51, 114, 51, + 114, 210, 194, 210, 194, 194, 209, 209, 209, 209, 97, 97, + 113, 81, 129, 75, 59, 0, 15, 64, 38, 16, 0, 6, + 69, 146, 67, 113, 99, 83, 83, 83, 83, 83, 83, 211, + 210, 211, 209, 181, 243, 227, 227, 211, 66, 115, 51, 115, + 51, 115, 66, 99, 82, 83, 134, 0, 16, 112, 39, 17, + 0, 7, 81, 242, 227, 227, 209, 18, 193, 34, 193, 34, + 177, 50, 161, 66, 161, 66, 145, 82, 129, 98, 129, 98, + 113, 114, 97, 130, 110, 194, 242, 242, 242, 200, 0, 17, + 48, 38, 16, 0, 6, 33, 129, 105, 120, 134, 161, 241, + 241, 241, 241, 37, 131, 66, 113, 114, 241, 242, 226, 66, + 130, 51, 130, 51, 130, 65, 130, 81, 130, 98, 67, 149, + 0, 16, 112, 45, 16, 0, 6, 101, 146, 81, 114, 82, + 98, 98, 97, 114, 82, 225, 241, 226, 52, 114, 17, 82, + 83, 114, 67, 129, 66, 146, 50, 146, 50, 146, 50, 146, + 65, 146, 65, 145, 97, 114, 113, 82, 149, 0, 16, 112, + 32, 17, 0, 6, 65, 240, 29, 77, 49, 162, 65, 161, + 81, 145, 241, 242, 241, 241, 242, 242, 241, 242, 242, 242, + 227, 227, 227, 227, 227, 0, 18, 32, 45, 16, 0, 6, + 69, 161, 82, 113, 113, 113, 129, 82, 129, 82, 129, 83, + 113, 100, 65, 132, 33, 165, 182, 145, 53, 82, 99, 82, + 115, 50, 146, 50, 146, 50, 161, 51, 129, 82, 129, 99, + 66, 149, 0, 16, 112, 45, 16, 0, 6, 69, 161, 81, + 129, 113, 97, 130, 66, 145, 66, 146, 50, 146, 50, 146, + 50, 146, 50, 146, 65, 131, 66, 115, 82, 66, 18, 116, + 50, 225, 226, 226, 82, 113, 98, 97, 114, 66, 149, 0, + 17, 16, 15, 6, 0, 8, 35, 51, 51, 240, 240, 243, + 51, 51, 0, 6, 48, 20, 7, 0, 9, 98, 68, 66, + 0, 6, 98, 68, 67, 97, 97, 97, 81, 97, 81, 240, + 64, 42, 23, 0, 22, 50, 240, 67, 240, 51, 240, 35, + 240, 51, 240, 51, 240, 51, 240, 36, 240, 35, 240, 83, + 240, 116, 240, 115, 240, 115, 240, 115, 240, 115, 240, 131, + 240, 115, 240, 114, 0, 20, 64, 13, 25, 0, 40, 95, + 7, 0, 16, 15, 7, 0, 37, 112, 42, 23, 0, 20, + 18, 240, 115, 240, 115, 240, 131, 240, 115, 240, 115, 240, + 115, 240, 116, 240, 115, 240, 83, 240, 36, 240, 35, 240, + 51, 240, 51, 240, 51, 240, 35, 240, 51, 240, 66, 0, + 22, 96, 30, 15, 0, 5, 119, 113, 114, 67, 114, 51, + 114, 51, 114, 194, 194, 194, 209, 209, 210, 209, 225, 225, + 225, 0, 7, 35, 196, 179, 0, 16, 75, 25, 0, 10, + 55, 240, 18, 99, 194, 178, 145, 85, 66, 113, 82, 65, + 65, 97, 82, 97, 65, 81, 66, 130, 33, 65, 66, 146, + 49, 49, 66, 146, 49, 49, 66, 146, 49, 49, 66, 146, + 49, 49, 66, 146, 49, 49, 66, 146, 49, 65, 66, 130, + 49, 65, 82, 99, 49, 81, 67, 65, 18, 33, 98, 85, + 51, 130, 240, 146, 226, 146, 132, 216, 0, 26, 16, 56, + 25, 0, 7, 66, 240, 130, 240, 130, 240, 116, 240, 100, + 240, 81, 35, 240, 65, 35, 240, 65, 35, 240, 49, 67, + 240, 33, 67, 240, 33, 82, 240, 17, 99, 241, 99, 241, + 115, 220, 209, 131, 193, 163, 177, 163, 177, 163, 161, 195, + 131, 179, 103, 120, 0, 25, 48, 47, 23, 0, 8, 95, + 178, 147, 146, 163, 130, 179, 114, 179, 114, 179, 114, 179, + 114, 163, 130, 131, 171, 194, 147, 146, 178, 130, 179, 114, + 195, 98, 195, 98, 195, 98, 195, 98, 179, 114, 164, 114, + 148, 95, 1, 0, 23, 112, 52, 23, 0, 9, 86, 81, + 147, 82, 34, 115, 145, 18, 98, 195, 83, 210, 67, 226, + 67, 241, 66, 240, 17, 51, 240, 83, 240, 83, 240, 83, + 240, 83, 240, 83, 240, 17, 67, 241, 67, 241, 83, 209, + 115, 193, 131, 161, 164, 97, 246, 0, 24, 16, 47, 25, + 0, 9, 63, 210, 147, 178, 178, 162, 194, 146, 210, 130, + 211, 114, 211, 114, 227, 98, 227, 98, 227, 98, 227, 98, + 227, 98, 227, 98, 227, 98, 226, 114, 211, 114, 210, 130, + 194, 146, 178, 162, 147, 143, 0, 26, 32, 50, 23, 0, + 8, 95, 3, 130, 163, 130, 193, 130, 193, 130, 209, 114, + 209, 114, 113, 81, 114, 113, 210, 98, 218, 210, 98, 210, + 113, 210, 113, 210, 113, 97, 98, 209, 114, 209, 114, 209, + 114, 209, 114, 194, 114, 164, 79, 4, 0, 23, 64, 48, + 22, 0, 8, 47, 3, 114, 163, 114, 178, 114, 193, 114, + 193, 114, 193, 114, 113, 81, 98, 113, 194, 113, 194, 98, + 202, 194, 98, 194, 113, 194, 113, 194, 113, 194, 240, 82, + 240, 82, 240, 82, 240, 82, 240, 41, 0, 23, 80, 52, + 25, 0, 10, 55, 65, 179, 98, 33, 147, 148, 130, 195, + 115, 210, 99, 241, 99, 241, 83, 240, 17, 83, 240, 115, + 240, 115, 240, 115, 240, 115, 184, 66, 242, 99, 226, 114, + 226, 115, 210, 131, 194, 147, 163, 179, 98, 33, 215, 65, + 0, 25, 80, 48, 24, 0, 9, 9, 57, 98, 178, 146, + 178, 146, 178, 146, 178, 146, 178, 146, 178, 146, 178, 146, + 178, 159, 146, 178, 146, 178, 146, 178, 146, 178, 146, 178, + 146, 178, 146, 178, 146, 178, 146, 178, 146, 178, 105, 57, + 0, 24, 48, 28, 11, 240, 240, 56, 98, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 104, 0, 11, 48, 31, 16, 0, 6, 88, + 194, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 226, 226, 99, 82, 84, 82, 84, 67, 98, 67, 149, + 0, 17, 54, 25, 0, 9, 56, 118, 114, 179, 146, 177, + 178, 161, 194, 145, 210, 129, 226, 98, 242, 82, 240, 18, + 66, 240, 34, 52, 240, 18, 33, 20, 242, 17, 51, 243, + 83, 226, 115, 210, 116, 194, 131, 194, 147, 178, 163, 162, + 163, 162, 165, 88, 104, 0, 25, 48, 48, 20, 0, 7, + 73, 226, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 177, 98, 177, 98, 177, 98, 161, 114, 161, 114, + 146, 114, 116, 79, 1, 0, 20, 64, 83, 29, 0, 10, + 118, 230, 100, 211, 145, 18, 193, 18, 145, 18, 193, 18, + 145, 19, 177, 18, 145, 34, 161, 34, 145, 35, 145, 34, + 145, 50, 129, 50, 145, 50, 129, 50, 145, 51, 97, 66, + 145, 66, 97, 66, 145, 67, 81, 66, 145, 82, 65, 82, + 145, 82, 65, 82, 145, 83, 33, 98, 145, 98, 33, 98, + 145, 99, 17, 98, 145, 115, 114, 145, 115, 114, 131, 98, + 130, 103, 81, 88, 0, 29, 48, 63, 25, 0, 9, 54, + 151, 100, 163, 129, 19, 161, 145, 20, 145, 145, 35, 145, + 145, 51, 129, 145, 67, 113, 145, 67, 113, 145, 83, 97, + 145, 99, 81, 145, 100, 65, 145, 115, 65, 145, 131, 49, + 145, 147, 33, 145, 148, 17, 145, 163, 17, 145, 180, 145, + 195, 145, 195, 131, 194, 103, 177, 0, 25, 96, 56, 25, + 0, 10, 54, 240, 19, 99, 194, 162, 162, 194, 131, 210, + 99, 227, 83, 227, 82, 240, 19, 51, 240, 19, 51, 240, + 19, 51, 240, 19, 51, 240, 19, 51, 240, 19, 51, 240, + 19, 67, 227, 83, 227, 99, 195, 131, 178, 163, 146, 195, + 99, 240, 22, 0, 26, 48, 46, 22, 0, 8, 46, 178, + 132, 130, 163, 114, 178, 114, 179, 98, 179, 98, 179, 98, + 178, 114, 163, 114, 131, 155, 178, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, + 41, 0, 23, 80, 77, 25, 0, 10, 54, 240, 19, 99, + 194, 147, 162, 194, 131, 195, 99, 227, 83, 227, 82, 240, + 19, 51, 240, 19, 51, 240, 19, 51, 240, 19, 51, 240, + 19, 51, 240, 19, 51, 240, 19, 67, 227, 83, 227, 98, + 84, 82, 130, 50, 49, 50, 162, 33, 65, 34, 196, 82, + 240, 39, 97, 240, 34, 81, 240, 49, 81, 240, 50, 50, + 240, 54, 240, 85, 240, 84, 0, 6, 112, 51, 26, 0, + 9, 109, 240, 18, 115, 226, 147, 194, 162, 194, 163, 178, + 163, 178, 163, 178, 162, 194, 147, 194, 115, 234, 240, 18, + 115, 226, 131, 210, 146, 210, 147, 194, 147, 194, 147, 194, + 147, 194, 148, 65, 98, 163, 50, 71, 133, 0, 26, 80, + 45, 18, 0, 7, 38, 49, 98, 82, 33, 82, 131, 81, + 162, 66, 162, 66, 177, 67, 161, 68, 245, 233, 170, 199, + 243, 240, 19, 49, 194, 49, 194, 49, 194, 50, 177, 67, + 146, 66, 18, 98, 81, 70, 0, 18, 112, 54, 23, 0, + 8, 95, 5, 51, 98, 99, 49, 130, 129, 49, 130, 129, + 49, 130, 129, 49, 130, 129, 49, 130, 129, 194, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 28, + 0, 23, 112, 49, 25, 0, 9, 57, 88, 98, 195, 130, + 209, 146, 209, 146, 209, 146, 209, 146, 209, 146, 209, 146, + 209, 146, 209, 146, 209, 146, 209, 146, 209, 146, 209, 146, + 209, 146, 209, 162, 177, 178, 177, 194, 145, 227, 82, 240, + 38, 0, 26, 48, 56, 26, 0, 9, 105, 134, 99, 210, + 131, 209, 163, 193, 163, 177, 195, 161, 195, 145, 211, 145, + 227, 129, 227, 113, 240, 19, 97, 240, 19, 81, 240, 51, + 65, 240, 51, 49, 240, 67, 49, 240, 83, 33, 240, 83, + 17, 240, 116, 240, 115, 240, 146, 240, 145, 0, 27, 96, + 85, 36, 0, 13, 72, 73, 87, 99, 147, 163, 131, 147, + 177, 147, 163, 145, 179, 147, 145, 179, 132, 145, 179, 129, + 19, 113, 211, 97, 35, 113, 211, 97, 50, 97, 242, 97, + 51, 81, 243, 65, 67, 81, 243, 65, 83, 49, 240, 35, + 49, 83, 49, 240, 35, 33, 99, 49, 240, 35, 33, 115, + 17, 240, 67, 17, 115, 17, 240, 68, 131, 17, 240, 68, + 147, 240, 98, 163, 240, 98, 177, 240, 129, 177, 0, 37, + 80, 56, 26, 0, 9, 120, 88, 132, 131, 195, 130, 212, + 113, 243, 97, 240, 35, 65, 240, 52, 34, 240, 67, 33, + 240, 100, 240, 131, 240, 132, 240, 116, 240, 97, 35, 240, + 65, 67, 240, 49, 68, 240, 17, 99, 241, 131, 210, 132, + 193, 163, 163, 164, 104, 120, 0, 26, 48, 54, 27, 0, + 10, 25, 135, 100, 179, 163, 193, 195, 161, 227, 129, 243, + 129, 240, 19, 97, 240, 50, 81, 240, 67, 65, 240, 83, + 33, 240, 114, 17, 240, 132, 240, 146, 240, 162, 240, 162, + 240, 162, 240, 162, 240, 162, 240, 162, 240, 162, 240, 120, + 0, 28, 48, 50, 20, 0, 7, 79, 2, 52, 147, 66, + 164, 66, 163, 81, 163, 97, 148, 97, 147, 240, 19, 240, + 19, 240, 35, 240, 19, 240, 19, 240, 19, 240, 35, 129, + 115, 145, 99, 161, 99, 161, 83, 162, 67, 178, 51, 164, + 63, 2, 0, 20, 48, 34, 7, 116, 49, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 100, 48, 25, 14, 240, 240, 241, 97, 81, 97, 81, + 97, 97, 97, 81, 97, 97, 97, 100, 52, 52, 52, 67, + 67, 0, 35, 48, 34, 7, 116, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 52, 48, 13, 12, 240, 240, 161, 163, 114, 34, 81, 98, + 0, 37, 112, 9, 6, 240, 51, 51, 51, 0, 19, 112, + 15, 7, 240, 145, 81, 81, 97, 81, 97, 100, 52, 67, + 0, 17, 112, 40, 20, 0, 18, 65, 240, 66, 240, 35, + 240, 35, 240, 17, 19, 241, 34, 225, 50, 225, 51, 209, + 66, 193, 83, 177, 83, 185, 161, 115, 145, 130, 145, 130, + 130, 131, 85, 102, 0, 20, 48, 36, 17, 0, 17, 11, + 130, 98, 114, 114, 98, 114, 98, 114, 98, 114, 98, 98, + 120, 146, 99, 98, 114, 98, 130, 82, 130, 82, 130, 82, + 114, 98, 99, 75, 0, 17, 96, 39, 18, 0, 18, 101, + 49, 114, 81, 18, 82, 131, 66, 162, 66, 177, 50, 193, + 50, 240, 18, 240, 18, 240, 18, 240, 18, 193, 66, 177, + 66, 161, 98, 145, 115, 82, 166, 0, 18, 112, 36, 18, + 0, 18, 11, 146, 98, 130, 114, 114, 130, 98, 145, 98, + 146, 82, 146, 82, 146, 82, 146, 82, 146, 82, 146, 82, + 145, 98, 130, 98, 114, 114, 98, 106, 0, 19, 38, 18, + 0, 18, 14, 98, 130, 98, 145, 98, 145, 98, 81, 49, + 98, 81, 162, 66, 168, 162, 66, 162, 81, 162, 81, 65, + 82, 161, 82, 161, 82, 146, 82, 130, 78, 0, 18, 64, + 33, 17, 0, 17, 14, 82, 115, 82, 145, 82, 145, 82, + 145, 82, 81, 49, 82, 81, 146, 66, 152, 146, 66, 146, + 81, 146, 242, 242, 242, 215, 0, 18, 32, 41, 20, 0, + 20, 101, 49, 146, 82, 17, 114, 146, 98, 162, 98, 177, + 82, 193, 82, 240, 50, 240, 50, 240, 50, 135, 65, 178, + 98, 162, 113, 162, 114, 146, 146, 82, 17, 182, 33, 0, + 20, 80, 38, 18, 0, 18, 6, 54, 82, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 123, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 86, + 54, 0, 18, 48, 23, 9, 0, 9, 6, 82, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 86, + 0, 9, 48, 26, 13, 0, 13, 55, 146, 178, 178, 178, + 178, 178, 178, 178, 178, 178, 178, 82, 66, 82, 66, 82, + 50, 117, 0, 13, 112, 40, 20, 0, 20, 6, 100, 98, + 130, 130, 129, 146, 113, 162, 82, 178, 65, 210, 50, 210, + 36, 194, 17, 34, 195, 66, 178, 83, 162, 99, 146, 114, + 146, 130, 130, 131, 86, 86, 0, 20, 48, 28, 16, 0, + 16, 7, 178, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 129, 82, 129, 82, 129, 82, 114, 82, 99, 60, 0, 16, + 64, 63, 23, 0, 23, 5, 165, 83, 163, 113, 18, 129, + 18, 113, 18, 129, 18, 113, 18, 129, 18, 113, 34, 97, + 34, 113, 34, 97, 34, 113, 50, 65, 50, 113, 50, 65, + 50, 113, 50, 49, 66, 113, 66, 33, 66, 113, 66, 33, + 66, 113, 83, 82, 113, 83, 82, 99, 66, 98, 85, 65, + 70, 0, 23, 48, 48, 19, 0, 19, 5, 101, 83, 115, + 100, 113, 113, 19, 97, 113, 34, 97, 113, 50, 81, 113, + 51, 65, 113, 67, 49, 113, 82, 49, 113, 83, 33, 113, + 99, 17, 113, 114, 17, 113, 131, 113, 131, 99, 130, 85, + 129, 0, 19, 80, 36, 19, 0, 19, 86, 179, 67, 130, + 130, 98, 162, 82, 162, 66, 194, 50, 194, 50, 194, 50, + 194, 50, 194, 50, 194, 66, 162, 82, 162, 98, 130, 131, + 67, 182, 0, 20, 30, 16, 0, 16, 10, 130, 98, 98, + 114, 82, 114, 82, 114, 82, 114, 82, 113, 98, 98, 104, + 130, 226, 226, 226, 226, 226, 198, 0, 17, 32, 49, 19, + 0, 19, 101, 179, 67, 130, 130, 98, 162, 82, 162, 66, + 194, 50, 194, 50, 194, 50, 194, 50, 194, 50, 194, 66, + 162, 82, 67, 50, 98, 33, 33, 34, 132, 50, 198, 240, + 65, 49, 226, 33, 229, 228, 240, 19, 0, 7, 80, 39, + 20, 0, 20, 10, 194, 98, 162, 114, 146, 114, 146, 114, + 146, 114, 146, 98, 168, 194, 82, 178, 98, 162, 98, 162, + 98, 162, 98, 162, 99, 49, 82, 99, 34, 54, 100, 0, + 20, 64, 35, 14, 0, 14, 52, 33, 82, 65, 17, 81, + 98, 66, 113, 66, 113, 67, 97, 84, 167, 150, 195, 195, + 49, 130, 49, 130, 50, 113, 67, 82, 65, 37, 0, 14, + 96, 41, 19, 0, 19, 15, 1, 50, 82, 82, 49, 98, + 97, 49, 98, 97, 49, 98, 97, 162, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 240, 34, 232, 0, 19, 112, 37, 19, 0, 19, 6, 85, + 82, 131, 98, 145, 114, 145, 114, 145, 114, 145, 114, 145, + 114, 145, 114, 145, 114, 145, 114, 145, 114, 145, 114, 130, + 130, 113, 162, 66, 213, 0, 20, 40, 20, 0, 20, 6, + 116, 82, 162, 99, 145, 130, 129, 147, 113, 162, 113, 162, + 97, 179, 81, 194, 65, 211, 49, 226, 33, 243, 17, 240, + 18, 17, 240, 19, 240, 50, 240, 49, 0, 21, 48, 59, + 28, 0, 28, 6, 54, 85, 82, 115, 114, 114, 115, 113, + 131, 114, 113, 146, 99, 97, 162, 100, 81, 163, 65, 34, + 81, 178, 65, 35, 49, 195, 49, 50, 49, 210, 33, 66, + 49, 210, 33, 67, 17, 228, 98, 17, 243, 98, 17, 243, + 99, 240, 18, 130, 240, 33, 129, 0, 29, 48, 38, 20, + 0, 20, 7, 69, 100, 98, 147, 97, 179, 65, 210, 49, + 242, 33, 244, 240, 35, 240, 36, 241, 34, 241, 35, 209, + 67, 177, 99, 145, 130, 131, 115, 85, 102, 0, 20, 48, + 40, 21, 0, 21, 7, 101, 83, 146, 131, 129, 162, 113, + 179, 97, 195, 65, 226, 49, 240, 18, 17, 240, 36, 240, + 50, 240, 66, 240, 66, 240, 66, 240, 66, 240, 66, 240, + 38, 0, 22, 16, 32, 16, 0, 16, 13, 51, 114, 66, + 115, 65, 115, 81, 114, 210, 211, 210, 210, 211, 195, 97, + 98, 113, 82, 129, 67, 129, 66, 115, 61, 0, 16, 48, + 9, 19, 0, 35, 95, 1, 0, 38, 48, 10, 36, 0, + 67, 79, 15, 3, 0, 72, 48, 19, 12, 240, 240, 130, + 50, 82, 50, 66, 50, 81, 65, 82, 50, 81, 65, 0, + 35, 32, 13, 14, 240, 240, 227, 81, 65, 53, 65, 83, + 0, 46, 16, +}; + +//***************************************************************************** +// +// The font definition for the 32 point Cmsc font. +// +//***************************************************************************** +const tFont g_sFontCmsc32 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 32, + + // + // The height of the font. + // + 32, + + // + // The baseline of the font. + // + 24, + + // + // The offset to each character in the font. + // + { + 0, 4, 29, 54, 137, 193, 276, 345, + 360, 395, 430, 461, 510, 524, 533, 543, + 578, 625, 654, 692, 730, 769, 807, 852, + 884, 929, 974, 989, 1009, 1051, 1064, 1106, + 1136, 1211, 1267, 1314, 1366, 1413, 1463, 1511, + 1563, 1611, 1639, 1670, 1724, 1772, 1855, 1918, + 1974, 2020, 2097, 2148, 2193, 2247, 2296, 2352, + 2437, 2493, 2547, 2597, 2631, 2656, 2690, 2703, + 2712, 2727, 2767, 2803, 2842, 2878, 2916, 2949, + 2990, 3028, 3051, 3077, 3117, 3145, 3208, 3256, + 3292, 3322, 3371, 3410, 3445, 3486, 3523, 3563, + 3622, 3660, 3700, 3732, 3741, 3751, 3770, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmsc32Data +}; diff --git a/grlib/fonts/fontcmsc34.c b/grlib/fonts/fontcmsc34.c new file mode 100644 index 0000000..842d3ca --- /dev/null +++ b/grlib/fonts/fontcmsc34.c @@ -0,0 +1,446 @@ +//***************************************************************************** +// +// fontcmsc34.c - Font definition for the 34pt Cmsc font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmsc +// Size: 34 point +// Bold: no +// Italic: no +// Memory usage: 4272 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 34 point Cmsc font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmsc34Data[4069] = +{ + 5, 14, 0, 57, 96, 28, 7, 130, 68, 52, 52, 52, + 52, 52, 66, 82, 82, 82, 82, 82, 82, 82, 82, 82, + 81, 240, 82, 68, 52, 66, 0, 7, 64, 26, 14, 240, + 211, 67, 68, 52, 52, 52, 52, 52, 97, 97, 97, 97, + 97, 97, 81, 97, 81, 97, 81, 97, 0, 37, 64, 92, + 28, 0, 8, 65, 113, 240, 65, 113, 240, 50, 98, 240, + 49, 113, 240, 65, 113, 240, 50, 98, 240, 50, 98, 240, + 49, 113, 240, 65, 113, 240, 50, 98, 240, 49, 113, 175, + 10, 178, 98, 240, 50, 98, 240, 49, 113, 240, 65, 113, + 240, 50, 98, 240, 50, 98, 191, 10, 161, 113, 240, 50, + 98, 240, 49, 113, 240, 65, 113, 240, 50, 98, 240, 50, + 98, 240, 49, 113, 240, 65, 113, 240, 50, 98, 240, 49, + 113, 240, 65, 113, 240, 240, 208, 60, 17, 240, 145, 215, + 131, 33, 49, 98, 65, 65, 81, 81, 81, 50, 81, 51, + 50, 81, 51, 50, 81, 51, 51, 65, 164, 33, 167, 200, + 168, 198, 177, 36, 161, 51, 51, 65, 66, 51, 65, 66, + 51, 65, 66, 49, 97, 66, 65, 81, 50, 82, 65, 50, + 98, 49, 34, 150, 225, 0, 16, 87, 29, 52, 241, 130, + 49, 210, 114, 82, 162, 130, 84, 99, 130, 113, 38, 17, + 146, 113, 130, 146, 113, 114, 162, 113, 113, 178, 113, 97, + 194, 113, 82, 209, 97, 82, 226, 81, 81, 240, 18, 49, + 82, 240, 51, 82, 240, 178, 101, 240, 17, 82, 81, 226, + 81, 97, 210, 82, 113, 178, 98, 113, 177, 114, 113, 162, + 114, 113, 146, 130, 113, 130, 146, 113, 129, 178, 81, 130, + 178, 81, 114, 210, 49, 129, 244, 0, 22, 64, 75, 27, + 240, 240, 67, 240, 129, 49, 240, 98, 65, 240, 66, 81, + 240, 66, 81, 240, 66, 81, 240, 66, 81, 240, 66, 65, + 240, 82, 49, 240, 99, 17, 240, 131, 151, 130, 194, 179, + 177, 177, 19, 145, 177, 35, 145, 161, 67, 113, 161, 99, + 81, 162, 115, 65, 162, 115, 49, 178, 131, 17, 195, 131, + 145, 66, 133, 98, 82, 82, 51, 66, 118, 117, 0, 27, + 96, 15, 7, 227, 68, 52, 52, 97, 97, 97, 81, 81, + 81, 0, 19, 16, 36, 11, 113, 145, 145, 146, 130, 145, + 146, 145, 146, 146, 146, 145, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 161, 162, 146, 146, 162, 146, 161, 162, 162, + 161, 177, 177, 48, 36, 11, 1, 177, 177, 177, 162, 161, + 162, 161, 162, 146, 146, 162, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 145, 146, 146, 145, 146, 145, 146, 145, + 145, 145, 145, 160, 34, 16, 82, 226, 226, 145, 66, 65, + 66, 50, 51, 67, 18, 19, 131, 18, 194, 195, 18, 131, + 18, 19, 82, 50, 51, 49, 66, 65, 146, 226, 226, 0, + 37, 16, 50, 26, 0, 17, 81, 240, 161, 240, 161, 240, + 161, 240, 161, 240, 161, 240, 161, 240, 161, 240, 161, 240, + 161, 240, 161, 239, 8, 225, 240, 161, 240, 161, 240, 161, + 240, 161, 240, 161, 240, 161, 240, 161, 240, 161, 240, 161, + 240, 161, 0, 18, 16, 7, 0, 18, 51, 68, 52, 52, + 97, 97, 97, 81, 97, 81, 81, 208, 9, 12, 0, 25, + 73, 57, 0, 21, 48, 11, 7, 0, 18, 66, 68, 52, + 66, 0, 7, 64, 37, 17, 209, 242, 241, 242, 242, 241, + 242, 241, 242, 242, 241, 242, 241, 242, 242, 241, 242, 241, + 242, 242, 241, 242, 241, 242, 242, 241, 242, 241, 242, 242, + 241, 242, 241, 240, 16, 49, 17, 0, 7, 5, 162, 66, + 130, 98, 98, 130, 81, 161, 81, 161, 66, 162, 50, 162, + 50, 162, 50, 162, 50, 162, 50, 162, 50, 162, 50, 162, + 50, 162, 50, 162, 50, 162, 66, 130, 82, 130, 98, 98, + 130, 66, 166, 0, 17, 112, 30, 14, 0, 6, 1, 179, + 116, 18, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 138, 0, 14, 48, + 39, 17, 0, 6, 118, 161, 68, 98, 115, 81, 131, 66, + 147, 52, 115, 52, 115, 66, 131, 227, 211, 227, 211, 211, + 226, 225, 241, 241, 113, 113, 129, 97, 145, 91, 92, 77, + 0, 17, 64, 41, 17, 0, 6, 118, 146, 83, 113, 115, + 83, 99, 83, 99, 83, 99, 227, 226, 226, 226, 181, 240, + 35, 243, 242, 243, 66, 131, 51, 131, 51, 131, 51, 130, + 81, 131, 98, 83, 150, 0, 17, 112, 45, 18, 0, 8, + 1, 240, 18, 243, 243, 225, 18, 225, 18, 209, 34, 193, + 50, 193, 50, 177, 66, 161, 82, 161, 82, 145, 98, 129, + 114, 129, 114, 113, 130, 127, 194, 240, 18, 240, 18, 240, + 18, 216, 0, 18, 64, 41, 16, 0, 6, 34, 98, 105, + 120, 134, 161, 241, 241, 241, 241, 36, 145, 17, 66, 114, + 98, 97, 129, 242, 226, 226, 66, 130, 51, 130, 51, 130, + 65, 130, 81, 130, 98, 67, 149, 0, 16, 112, 47, 17, + 0, 7, 37, 162, 81, 114, 98, 113, 114, 97, 130, 82, + 242, 241, 242, 53, 114, 18, 82, 83, 130, 67, 130, 66, + 162, 50, 162, 50, 162, 50, 162, 65, 162, 65, 162, 66, + 145, 97, 129, 130, 66, 166, 0, 17, 112, 41, 18, 0, + 6, 126, 77, 77, 81, 177, 81, 161, 97, 145, 240, 17, + 240, 33, 240, 17, 240, 18, 240, 17, 240, 18, 240, 18, + 242, 240, 18, 240, 18, 243, 243, 243, 243, 243, 243, 0, + 19, 48, 47, 17, 0, 7, 5, 162, 82, 113, 129, 113, + 145, 82, 145, 82, 145, 83, 129, 100, 81, 117, 49, 151, + 197, 177, 37, 114, 69, 82, 115, 66, 147, 50, 162, 50, + 162, 50, 162, 51, 145, 82, 130, 99, 82, 150, 0, 17, + 112, 48, 17, 0, 7, 5, 162, 66, 129, 129, 98, 130, + 81, 161, 66, 161, 66, 162, 50, 162, 50, 162, 50, 162, + 50, 162, 66, 131, 81, 113, 18, 98, 66, 18, 117, 50, + 241, 242, 241, 98, 114, 98, 98, 114, 82, 150, 0, 18, + 16, 17, 7, 0, 8, 114, 68, 52, 66, 0, 6, 98, + 68, 52, 66, 0, 7, 64, 22, 7, 0, 8, 114, 68, + 52, 66, 0, 6, 98, 68, 52, 67, 97, 97, 97, 81, + 97, 81, 97, 192, 44, 24, 0, 23, 50, 240, 83, 240, + 67, 240, 52, 240, 51, 240, 67, 240, 67, 240, 67, 240, + 52, 240, 66, 240, 131, 240, 132, 240, 131, 240, 131, 240, + 131, 240, 132, 240, 131, 240, 131, 240, 130, 0, 21, 48, + 13, 26, 0, 42, 47, 8, 0, 19, 127, 8, 0, 39, + 48, 44, 24, 0, 21, 2, 240, 131, 240, 131, 240, 132, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 132, 240, 130, + 240, 83, 240, 52, 240, 51, 240, 67, 240, 67, 240, 67, + 240, 52, 240, 51, 240, 82, 0, 23, 96, 35, 15, 240, + 240, 69, 129, 98, 81, 130, 51, 114, 51, 114, 51, 114, + 210, 194, 194, 194, 209, 225, 209, 225, 225, 225, 225, 240, + 240, 211, 180, 180, 195, 0, 15, 112, 82, 27, 0, 7, + 119, 240, 35, 99, 225, 194, 162, 226, 145, 100, 98, 113, + 82, 66, 81, 97, 82, 113, 81, 81, 66, 146, 49, 65, + 82, 146, 65, 49, 66, 162, 65, 49, 66, 162, 65, 49, + 66, 162, 65, 49, 66, 162, 65, 49, 66, 162, 65, 50, + 66, 146, 65, 65, 66, 146, 65, 65, 82, 115, 49, 97, + 82, 66, 18, 49, 98, 100, 68, 130, 240, 193, 240, 18, + 147, 148, 233, 0, 28, 16, 62, 27, 240, 240, 130, 240, + 162, 240, 163, 240, 132, 240, 132, 240, 113, 35, 240, 97, + 35, 240, 97, 35, 240, 81, 67, 240, 65, 67, 240, 65, + 67, 240, 49, 99, 240, 33, 99, 240, 17, 131, 241, 131, + 252, 225, 163, 209, 163, 209, 163, 193, 195, 177, 195, 162, + 196, 132, 180, 103, 137, 0, 27, 48, 50, 24, 0, 6, + 15, 194, 147, 162, 179, 130, 179, 130, 195, 114, 195, 114, + 195, 114, 195, 114, 179, 130, 163, 146, 147, 172, 194, 163, + 146, 179, 130, 195, 114, 211, 98, 211, 98, 211, 98, 211, + 98, 195, 114, 180, 114, 163, 111, 1, 0, 25, 63, 25, + 0, 7, 55, 81, 147, 99, 34, 130, 162, 18, 114, 196, + 98, 227, 82, 240, 18, 67, 240, 18, 67, 240, 33, 51, + 240, 49, 51, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 49, 67, 240, 33, 67, 240, 33, 82, 240, 17, + 114, 241, 115, 209, 162, 177, 196, 98, 240, 23, 0, 26, + 16, 51, 26, 0, 6, 79, 226, 147, 194, 179, 162, 195, + 146, 211, 130, 226, 130, 227, 114, 242, 114, 243, 98, 243, + 98, 243, 98, 243, 98, 243, 98, 243, 98, 243, 98, 242, + 114, 227, 114, 227, 114, 211, 130, 195, 146, 179, 162, 148, + 143, 0, 27, 48, 54, 24, 0, 6, 15, 4, 130, 179, + 130, 210, 114, 210, 114, 225, 114, 225, 114, 225, 114, 129, + 81, 114, 129, 210, 129, 210, 114, 219, 210, 114, 210, 129, + 210, 129, 210, 129, 97, 98, 241, 98, 241, 98, 226, 98, + 225, 114, 210, 114, 180, 79, 5, 0, 24, 64, 52, 23, + 0, 5, 111, 4, 114, 179, 114, 194, 114, 209, 114, 210, + 98, 225, 98, 225, 98, 129, 81, 98, 129, 194, 129, 194, + 114, 203, 194, 114, 194, 129, 194, 129, 194, 129, 194, 240, + 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 58, 0, + 24, 80, 58, 26, 0, 7, 87, 65, 180, 83, 33, 162, + 164, 146, 195, 130, 226, 115, 226, 99, 240, 17, 99, 240, + 17, 98, 240, 33, 83, 240, 131, 240, 131, 240, 131, 240, + 131, 240, 131, 185, 67, 242, 99, 242, 114, 242, 115, 226, + 131, 210, 162, 179, 180, 98, 33, 231, 65, 0, 26, 80, + 53, 25, 0, 6, 41, 73, 98, 194, 146, 194, 146, 194, + 146, 194, 146, 194, 146, 194, 146, 194, 146, 194, 146, 194, + 146, 194, 159, 1, 146, 194, 146, 194, 146, 194, 146, 194, + 146, 194, 146, 194, 146, 194, 146, 194, 146, 194, 146, 194, + 105, 73, 0, 25, 48, 29, 13, 240, 186, 114, 178, 178, + 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, + 178, 178, 178, 178, 178, 178, 122, 0, 13, 48, 35, 17, + 240, 240, 153, 194, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 114, 98, 100, 82, 100, + 82, 99, 82, 130, 66, 181, 0, 18, 16, 60, 26, 0, + 6, 72, 119, 114, 195, 146, 193, 178, 177, 194, 161, 210, + 145, 226, 129, 242, 98, 240, 18, 82, 240, 34, 67, 240, + 34, 52, 240, 34, 33, 35, 240, 18, 17, 52, 243, 84, + 226, 115, 226, 131, 210, 132, 194, 147, 194, 163, 178, 164, + 162, 179, 162, 180, 104, 105, 0, 26, 48, 52, 21, 240, + 240, 201, 242, 240, 66, 240, 66, 240, 66, 240, 66, 240, + 66, 240, 66, 240, 66, 240, 66, 240, 66, 240, 66, 240, + 66, 240, 66, 240, 66, 193, 98, 177, 114, 177, 114, 177, + 114, 177, 114, 162, 114, 162, 114, 132, 79, 2, 0, 21, + 64, 92, 31, 0, 7, 102, 240, 22, 100, 243, 145, 18, + 225, 18, 145, 19, 209, 18, 145, 19, 194, 18, 145, 34, + 193, 34, 145, 35, 177, 34, 145, 50, 161, 50, 145, 51, + 145, 50, 145, 51, 129, 66, 145, 67, 113, 66, 145, 67, + 113, 66, 145, 82, 97, 82, 145, 83, 81, 82, 145, 98, + 65, 98, 145, 99, 49, 98, 145, 99, 49, 98, 145, 114, + 33, 114, 145, 115, 17, 114, 145, 131, 130, 145, 131, 130, + 131, 114, 146, 104, 81, 89, 0, 31, 48, 67, 26, 0, + 6, 70, 152, 100, 179, 133, 177, 145, 20, 161, 145, 35, + 161, 145, 51, 145, 145, 52, 129, 145, 67, 129, 145, 83, + 113, 145, 84, 97, 145, 100, 81, 145, 115, 81, 145, 131, + 65, 145, 132, 49, 145, 147, 49, 145, 163, 33, 145, 179, + 17, 145, 181, 145, 196, 145, 211, 145, 211, 131, 210, 104, + 177, 0, 26, 96, 61, 26, 0, 7, 71, 240, 35, 83, + 211, 147, 163, 179, 131, 211, 114, 242, 99, 243, 82, 240, + 34, 67, 240, 35, 51, 240, 35, 51, 240, 35, 51, 240, + 35, 51, 240, 35, 51, 240, 35, 51, 240, 35, 67, 243, + 83, 243, 98, 242, 115, 211, 131, 179, 163, 147, 211, 83, + 240, 39, 0, 27, 48, 50, 23, 0, 5, 111, 178, 147, + 146, 178, 130, 179, 114, 195, 98, 195, 98, 195, 98, 195, + 98, 195, 98, 179, 114, 178, 130, 147, 156, 178, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 57, 0, 24, 96, 82, 26, 0, 7, 86, + 240, 35, 83, 226, 147, 178, 179, 146, 211, 115, 226, 99, + 243, 83, 243, 82, 240, 35, 51, 240, 35, 51, 240, 35, + 51, 240, 35, 51, 240, 35, 51, 240, 35, 51, 240, 35, + 67, 240, 18, 83, 243, 98, 242, 115, 84, 67, 131, 50, + 49, 50, 163, 33, 65, 34, 212, 82, 240, 40, 97, 240, + 50, 81, 240, 65, 81, 240, 66, 50, 240, 70, 240, 101, + 240, 100, 0, 7, 16, 55, 27, 0, 6, 110, 240, 18, + 131, 226, 162, 210, 163, 194, 179, 178, 179, 178, 179, 178, + 179, 178, 163, 194, 162, 210, 131, 235, 240, 18, 116, 226, + 147, 210, 162, 210, 163, 194, 163, 194, 163, 194, 163, 194, + 163, 194, 164, 65, 98, 179, 49, 72, 164, 0, 27, 80, + 50, 19, 240, 240, 198, 65, 99, 82, 33, 82, 147, 81, + 163, 66, 178, 66, 178, 66, 193, 67, 177, 83, 240, 23, + 218, 186, 200, 244, 240, 35, 49, 195, 49, 210, 49, 210, + 50, 194, 50, 193, 67, 162, 65, 35, 82, 97, 71, 0, + 19, 112, 58, 25, 0, 6, 63, 5, 82, 114, 114, 81, + 130, 129, 66, 130, 130, 49, 146, 145, 49, 146, 145, 49, + 146, 145, 49, 146, 145, 210, 240, 130, 240, 130, 240, 130, + 240, 130, 240, 130, 240, 130, 240, 130, 240, 130, 240, 130, + 240, 130, 240, 130, 240, 130, 240, 130, 240, 60, 0, 26, + 53, 26, 0, 6, 73, 104, 98, 211, 130, 225, 146, 225, + 146, 225, 146, 225, 146, 225, 146, 225, 146, 225, 146, 225, + 146, 225, 146, 225, 146, 225, 146, 225, 146, 225, 146, 225, + 146, 225, 146, 225, 162, 193, 193, 177, 210, 146, 242, 82, + 240, 69, 0, 27, 64, 62, 28, 0, 7, 9, 151, 100, + 211, 147, 210, 163, 209, 179, 209, 195, 177, 211, 177, 227, + 145, 243, 145, 244, 129, 240, 19, 113, 240, 35, 113, 240, + 51, 81, 240, 67, 81, 240, 68, 50, 240, 83, 49, 240, + 99, 49, 240, 115, 17, 240, 131, 17, 240, 148, 240, 147, + 240, 163, 240, 177, 0, 29, 112, 92, 38, 0, 9, 73, + 73, 103, 99, 163, 179, 131, 163, 193, 163, 163, 161, 179, + 163, 161, 179, 163, 161, 195, 129, 19, 129, 211, 129, 19, + 129, 211, 113, 36, 97, 243, 97, 51, 97, 243, 97, 51, + 97, 243, 81, 68, 65, 240, 35, 65, 83, 65, 240, 35, + 65, 83, 65, 240, 35, 49, 115, 33, 240, 67, 33, 115, + 33, 240, 67, 33, 115, 33, 240, 69, 148, 240, 100, 148, + 240, 100, 148, 240, 114, 178, 240, 130, 178, 240, 129, 194, + 0, 39, 80, 63, 28, 0, 7, 25, 88, 148, 147, 211, + 146, 228, 129, 240, 20, 97, 240, 51, 82, 240, 67, 65, + 240, 84, 33, 240, 115, 18, 240, 132, 240, 148, 240, 164, + 240, 133, 240, 129, 20, 240, 97, 52, 240, 66, 67, 240, + 65, 99, 240, 33, 116, 241, 147, 241, 163, 209, 180, 164, + 165, 104, 137, 0, 28, 48, 58, 27, 0, 6, 105, 135, + 100, 195, 147, 193, 180, 162, 195, 161, 227, 129, 243, 129, + 240, 19, 97, 240, 51, 65, 240, 67, 65, 240, 83, 33, + 240, 99, 17, 240, 132, 240, 146, 240, 162, 240, 162, 240, + 162, 240, 162, 240, 162, 240, 162, 240, 162, 240, 162, 240, + 120, 0, 28, 48, 54, 21, 240, 240, 223, 2, 68, 148, + 66, 164, 81, 179, 97, 163, 113, 148, 97, 163, 240, 35, + 240, 36, 240, 35, 240, 35, 240, 36, 240, 35, 240, 35, + 240, 36, 129, 131, 145, 115, 161, 100, 161, 99, 177, 83, + 178, 68, 163, 52, 149, 63, 3, 0, 21, 48, 35, 7, + 116, 49, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 100, 48, 27, 14, 240, + 240, 17, 97, 81, 97, 81, 97, 97, 97, 81, 97, 97, + 97, 100, 52, 52, 52, 52, 52, 67, 67, 0, 37, 16, + 35, 7, 116, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 52, 48, 14, + 12, 240, 209, 163, 130, 18, 98, 65, 65, 113, 0, 39, + 48, 10, 7, 240, 114, 68, 52, 66, 0, 23, 32, 16, + 7, 240, 33, 81, 81, 97, 81, 97, 100, 52, 52, 67, + 0, 18, 96, 43, 21, 0, 19, 50, 240, 66, 240, 66, + 240, 52, 240, 33, 18, 240, 17, 35, 241, 50, 225, 66, + 225, 67, 209, 82, 193, 98, 202, 177, 114, 161, 131, 145, + 146, 145, 146, 130, 147, 85, 103, 0, 21, 48, 38, 18, + 0, 18, 12, 130, 114, 114, 130, 98, 130, 98, 130, 98, + 130, 98, 130, 98, 99, 121, 146, 114, 114, 130, 98, 146, + 82, 146, 82, 146, 82, 130, 98, 115, 76, 0, 18, 96, + 41, 19, 0, 19, 102, 49, 114, 82, 18, 98, 131, 82, + 162, 66, 178, 65, 209, 50, 209, 50, 240, 34, 240, 34, + 240, 34, 209, 66, 193, 66, 193, 82, 161, 114, 130, 131, + 81, 198, 0, 19, 112, 38, 19, 0, 19, 11, 162, 99, + 130, 130, 114, 146, 98, 146, 98, 162, 82, 162, 82, 162, + 82, 162, 82, 162, 82, 162, 82, 162, 82, 146, 98, 146, + 98, 130, 114, 114, 107, 0, 20, 40, 18, 0, 18, 14, + 98, 130, 98, 145, 98, 145, 98, 161, 82, 81, 65, 82, + 81, 162, 66, 168, 162, 66, 162, 81, 162, 81, 65, 82, + 161, 82, 161, 82, 146, 82, 131, 62, 0, 18, 64, 34, + 17, 0, 17, 14, 82, 130, 82, 145, 82, 145, 82, 145, + 82, 81, 146, 81, 146, 66, 152, 146, 66, 146, 81, 146, + 81, 146, 242, 242, 242, 215, 0, 18, 32, 43, 21, 0, + 21, 102, 49, 147, 82, 17, 130, 131, 114, 162, 98, 193, + 97, 209, 82, 209, 82, 240, 66, 240, 66, 240, 66, 136, + 66, 178, 98, 178, 114, 162, 130, 146, 147, 82, 17, 182, + 49, 0, 21, 80, 40, 19, 0, 19, 6, 70, 82, 130, + 114, 130, 114, 130, 114, 130, 114, 130, 114, 130, 114, 130, + 124, 114, 130, 114, 130, 114, 130, 114, 130, 114, 130, 114, + 130, 114, 130, 86, 70, 0, 19, 48, 24, 11, 0, 11, + 8, 98, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 104, 0, 11, 48, 27, 13, 0, 13, + 55, 146, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, + 178, 82, 66, 82, 66, 82, 50, 117, 0, 13, 112, 42, + 21, 0, 21, 6, 101, 98, 146, 130, 130, 146, 113, 178, + 97, 194, 81, 210, 65, 226, 50, 226, 18, 18, 211, 51, + 194, 83, 178, 99, 162, 114, 162, 115, 146, 131, 130, 132, + 86, 87, 0, 21, 48, 28, 16, 0, 16, 7, 178, 226, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 129, 82, + 129, 82, 129, 82, 99, 61, 0, 16, 48, 68, 24, 0, + 24, 5, 181, 83, 179, 113, 18, 145, 18, 113, 18, 145, + 18, 113, 19, 129, 18, 113, 34, 113, 34, 113, 34, 113, + 34, 113, 50, 81, 50, 113, 50, 81, 50, 113, 51, 49, + 66, 113, 66, 49, 66, 113, 66, 49, 66, 113, 82, 17, + 82, 113, 82, 17, 82, 113, 98, 98, 99, 82, 98, 85, + 66, 70, 0, 24, 48, 50, 20, 0, 20, 5, 117, 84, + 115, 100, 129, 113, 19, 113, 113, 35, 97, 113, 50, 97, + 113, 51, 81, 113, 67, 65, 113, 83, 49, 113, 98, 49, + 113, 99, 33, 113, 115, 17, 113, 132, 113, 147, 113, 147, + 99, 146, 85, 145, 0, 20, 80, 39, 20, 0, 20, 101, + 210, 82, 161, 146, 113, 177, 98, 178, 81, 209, 66, 210, + 50, 210, 50, 210, 50, 210, 50, 210, 66, 193, 82, 178, + 98, 161, 115, 130, 146, 82, 213, 0, 21, 16, 31, 17, + 0, 17, 11, 130, 99, 98, 129, 98, 130, 82, 130, 82, + 130, 82, 129, 98, 99, 105, 130, 242, 242, 242, 242, 242, + 242, 214, 0, 18, 48, 50, 20, 0, 20, 101, 210, 82, + 161, 146, 114, 161, 98, 178, 81, 209, 66, 210, 50, 210, + 50, 210, 50, 210, 50, 210, 65, 210, 66, 178, 97, 67, + 65, 114, 33, 49, 34, 147, 66, 214, 240, 66, 49, 227, + 33, 245, 244, 240, 35, 0, 8, 41, 21, 0, 21, 11, + 194, 98, 178, 129, 162, 130, 146, 130, 146, 130, 146, 129, + 162, 98, 185, 194, 98, 178, 114, 162, 114, 162, 114, 162, + 114, 162, 115, 49, 82, 115, 34, 55, 100, 0, 21, 64, + 37, 15, 0, 15, 53, 33, 82, 66, 17, 81, 114, 66, + 114, 66, 129, 67, 113, 68, 199, 152, 181, 211, 49, 146, + 49, 146, 49, 146, 50, 129, 68, 82, 65, 53, 0, 15, + 96, 43, 19, 0, 19, 15, 1, 50, 82, 82, 49, 98, + 97, 49, 98, 97, 49, 98, 97, 162, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 240, 34, 240, 34, 232, 0, 19, 112, 40, 20, 0, 20, + 7, 70, 82, 147, 98, 161, 114, 161, 114, 161, 114, 161, + 114, 161, 114, 161, 114, 161, 114, 161, 114, 161, 114, 161, + 114, 161, 130, 129, 146, 129, 163, 66, 213, 0, 21, 16, + 43, 22, 0, 22, 6, 133, 83, 162, 115, 161, 146, 161, + 147, 129, 178, 129, 179, 97, 210, 97, 211, 65, 227, 65, + 242, 49, 240, 19, 33, 240, 34, 33, 240, 36, 240, 67, + 240, 66, 240, 97, 0, 23, 64, 64, 29, 0, 29, 6, + 70, 85, 83, 115, 115, 99, 115, 129, 115, 115, 113, 146, + 115, 113, 147, 100, 97, 162, 81, 34, 81, 178, 81, 34, + 81, 179, 49, 51, 49, 210, 49, 66, 49, 211, 33, 67, + 33, 211, 17, 83, 17, 242, 17, 98, 17, 244, 100, 240, + 18, 130, 240, 34, 130, 240, 34, 130, 0, 30, 32, 44, + 21, 0, 21, 7, 85, 115, 99, 147, 113, 179, 81, 211, + 49, 243, 17, 240, 19, 17, 240, 35, 240, 67, 240, 33, + 19, 240, 17, 19, 241, 51, 209, 83, 177, 115, 161, 115, + 131, 131, 86, 102, 0, 21, 48, 42, 21, 0, 21, 6, + 117, 83, 147, 114, 145, 147, 129, 163, 97, 194, 81, 211, + 65, 227, 33, 240, 18, 17, 240, 50, 240, 66, 240, 66, + 240, 66, 240, 66, 240, 66, 240, 66, 240, 38, 0, 22, + 16, 34, 16, 0, 16, 13, 51, 115, 50, 115, 65, 130, + 81, 114, 97, 99, 195, 210, 211, 195, 210, 211, 97, 83, + 113, 82, 129, 66, 130, 51, 115, 61, 0, 16, 48, 9, + 20, 0, 40, 15, 2, 0, 40, 48, 10, 38, 0, 76, + 15, 15, 5, 0, 76, 48, 18, 13, 240, 210, 66, 82, + 66, 66, 66, 82, 66, 66, 66, 81, 81, 0, 41, 48, + 13, 15, 0, 5, 116, 66, 65, 54, 65, 83, 0, 51, + 48, +}; + +//***************************************************************************** +// +// The font definition for the 34 point Cmsc font. +// +//***************************************************************************** +const tFont g_sFontCmsc34 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 34, + + // + // The height of the font. + // + 33, + + // + // The baseline of the font. + // + 25, + + // + // The offset to each character in the font. + // + { + 0, 5, 33, 59, 151, 211, 298, 373, + 388, 424, 460, 494, 544, 560, 569, 580, + 617, 666, 696, 735, 776, 821, 862, 909, + 950, 997, 1045, 1062, 1084, 1128, 1141, 1185, + 1220, 1302, 1364, 1414, 1477, 1528, 1582, 1634, + 1692, 1745, 1774, 1809, 1869, 1921, 2013, 2080, + 2141, 2191, 2273, 2328, 2378, 2436, 2489, 2551, + 2643, 2706, 2764, 2818, 2853, 2880, 2915, 2929, + 2939, 2955, 2998, 3036, 3077, 3115, 3155, 3189, + 3232, 3272, 3296, 3323, 3365, 3393, 3461, 3511, + 3550, 3581, 3631, 3672, 3709, 3752, 3792, 3835, + 3899, 3943, 3985, 4019, 4028, 4038, 4056, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmsc34Data +}; diff --git a/grlib/fonts/fontcmsc36.c b/grlib/fonts/fontcmsc36.c new file mode 100644 index 0000000..8a44a45 --- /dev/null +++ b/grlib/fonts/fontcmsc36.c @@ -0,0 +1,487 @@ +//***************************************************************************** +// +// fontcmsc36.c - Font definition for the 36pt Cmsc font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmsc +// Size: 36 point +// Bold: no +// Italic: no +// Memory usage: 4764 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 36 point Cmsc font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmsc36Data[4564] = +{ + 5, 14, 0, 64, 96, 30, 7, 130, 68, 52, 52, 52, + 52, 52, 52, 66, 82, 82, 82, 82, 82, 82, 82, 82, + 82, 82, 81, 240, 194, 68, 52, 66, 0, 8, 48, 27, + 16, 0, 6, 19, 83, 84, 53, 53, 53, 68, 68, 113, + 113, 113, 113, 97, 113, 113, 113, 97, 113, 97, 113, 0, + 48, 96, 98, 30, 0, 12, 113, 129, 240, 81, 114, 240, + 66, 113, 240, 81, 129, 240, 81, 114, 240, 66, 114, 240, + 66, 113, 240, 81, 129, 240, 81, 114, 240, 66, 113, 240, + 82, 113, 240, 81, 114, 175, 12, 194, 113, 240, 81, 114, + 240, 81, 114, 240, 66, 113, 240, 82, 113, 240, 81, 114, + 207, 12, 162, 113, 240, 81, 114, 240, 81, 114, 240, 66, + 113, 240, 81, 129, 240, 81, 114, 240, 66, 114, 240, 66, + 113, 240, 81, 129, 240, 81, 114, 240, 66, 113, 240, 82, + 113, 0, 9, 64, 69, 17, 240, 129, 240, 17, 230, 146, + 33, 50, 98, 49, 81, 81, 65, 97, 50, 65, 67, 50, + 65, 67, 50, 65, 67, 51, 49, 164, 33, 180, 17, 184, + 169, 168, 183, 161, 36, 161, 67, 145, 67, 51, 49, 82, + 51, 49, 82, 51, 49, 82, 49, 81, 82, 65, 65, 66, + 81, 65, 50, 114, 33, 34, 151, 209, 240, 17, 0, 16, + 16, 96, 30, 67, 242, 131, 34, 210, 130, 66, 163, 131, + 68, 100, 146, 97, 38, 19, 131, 97, 146, 147, 97, 130, + 163, 97, 115, 163, 97, 114, 179, 97, 98, 195, 97, 83, + 210, 97, 82, 227, 65, 82, 240, 18, 65, 82, 240, 34, + 33, 82, 240, 82, 82, 240, 210, 86, 240, 18, 82, 81, + 226, 83, 81, 226, 82, 113, 194, 83, 113, 178, 99, 113, + 178, 99, 113, 162, 115, 113, 161, 131, 113, 146, 146, 113, + 130, 163, 81, 145, 194, 81, 130, 195, 49, 145, 244, 0, + 27, 83, 29, 240, 240, 116, 240, 146, 33, 240, 130, 65, + 240, 114, 65, 240, 99, 65, 240, 99, 65, 240, 99, 65, + 240, 99, 49, 240, 115, 49, 240, 115, 33, 240, 147, 17, + 240, 148, 136, 147, 179, 210, 193, 212, 161, 209, 34, 161, + 193, 51, 129, 193, 83, 97, 193, 99, 97, 178, 115, 65, + 179, 131, 33, 195, 131, 17, 211, 148, 145, 52, 147, 145, + 68, 117, 113, 100, 66, 52, 66, 149, 133, 0, 33, 48, + 16, 8, 240, 163, 84, 53, 68, 113, 113, 97, 113, 97, + 97, 0, 24, 96, 40, 13, 130, 162, 162, 162, 162, 178, + 162, 178, 163, 162, 163, 163, 163, 162, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 179, 163, 163, 178, 179, 178, + 178, 194, 178, 194, 194, 194, 194, 48, 40, 12, 1, 178, + 178, 178, 178, 162, 178, 163, 162, 162, 163, 147, 162, 163, + 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 146, 162, + 147, 146, 162, 147, 146, 146, 162, 146, 146, 161, 161, 176, + 33, 17, 98, 242, 242, 242, 146, 66, 66, 51, 50, 51, + 83, 18, 19, 147, 18, 210, 211, 18, 131, 34, 35, 67, + 50, 51, 146, 242, 242, 242, 0, 45, 96, 57, 28, 0, + 22, 65, 240, 193, 240, 193, 240, 193, 240, 193, 240, 193, + 240, 193, 240, 193, 240, 193, 240, 193, 240, 193, 240, 193, + 255, 10, 241, 240, 193, 240, 193, 240, 193, 240, 193, 240, + 193, 240, 193, 240, 193, 240, 193, 240, 193, 240, 193, 240, + 193, 240, 193, 0, 19, 48, 17, 7, 0, 21, 3, 68, + 52, 52, 97, 97, 97, 81, 97, 81, 81, 240, 80, 9, + 13, 0, 30, 122, 58, 0, 26, 48, 11, 7, 0, 21, + 18, 68, 52, 66, 0, 8, 48, 77, 18, 225, 240, 18, + 240, 17, 240, 18, 240, 18, 240, 17, 240, 18, 240, 17, + 240, 33, 240, 18, 240, 17, 240, 18, 240, 18, 240, 17, + 240, 18, 240, 17, 240, 18, 240, 18, 240, 17, 240, 18, + 240, 18, 240, 17, 240, 18, 240, 17, 240, 18, 240, 18, + 240, 17, 240, 18, 240, 17, 240, 33, 240, 18, 240, 17, + 240, 18, 240, 18, 240, 17, 240, 18, 240, 17, 240, 32, + 55, 19, 0, 7, 102, 194, 67, 146, 99, 114, 130, 99, + 131, 82, 162, 82, 162, 67, 163, 51, 163, 51, 163, 51, + 163, 51, 163, 51, 163, 51, 163, 51, 163, 51, 163, 51, + 163, 51, 163, 51, 163, 66, 162, 83, 131, 98, 130, 115, + 99, 131, 67, 182, 0, 22, 48, 33, 16, 0, 6, 113, + 226, 196, 132, 19, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 141, 0, 18, 48, 44, 18, 0, 7, 53, 178, 67, 129, + 115, 97, 147, 66, 163, 51, 147, 52, 131, 52, 131, 66, + 147, 243, 227, 243, 227, 242, 242, 242, 242, 242, 242, 113, + 114, 129, 98, 145, 82, 161, 77, 93, 78, 0, 20, 96, + 51, 19, 0, 7, 102, 178, 83, 129, 131, 99, 116, 84, + 100, 84, 100, 98, 116, 243, 240, 19, 243, 240, 18, 240, + 18, 213, 240, 67, 240, 35, 240, 20, 240, 20, 244, 67, + 132, 52, 132, 52, 132, 51, 147, 81, 147, 114, 99, 167, + 0, 22, 48, 54, 20, 0, 9, 1, 240, 50, 240, 35, + 240, 35, 240, 20, 241, 19, 225, 35, 225, 35, 209, 51, + 193, 67, 193, 67, 177, 83, 161, 99, 161, 99, 145, 115, + 129, 131, 129, 131, 113, 147, 127, 2, 211, 240, 35, 240, + 35, 240, 35, 240, 35, 219, 0, 22, 112, 52, 18, 0, + 7, 1, 240, 35, 98, 122, 137, 151, 177, 240, 33, 240, + 33, 240, 33, 240, 33, 37, 161, 17, 67, 130, 114, 113, + 131, 240, 18, 240, 19, 243, 243, 66, 147, 51, 147, 51, + 147, 51, 146, 81, 147, 81, 146, 114, 83, 166, 0, 21, + 32, 57, 19, 0, 8, 6, 179, 66, 146, 129, 114, 115, + 99, 115, 98, 131, 83, 240, 18, 240, 34, 240, 19, 53, + 131, 33, 67, 99, 17, 114, 84, 131, 68, 146, 67, 163, + 51, 163, 51, 163, 51, 163, 66, 163, 66, 163, 66, 162, + 98, 131, 114, 114, 146, 67, 182, 0, 22, 48, 47, 18, + 0, 6, 113, 240, 31, 63, 62, 65, 177, 81, 162, 240, + 17, 240, 17, 240, 17, 240, 33, 240, 17, 240, 18, 240, + 17, 240, 18, 240, 18, 242, 240, 18, 240, 18, 240, 18, + 243, 243, 243, 243, 243, 243, 0, 21, 80, 52, 19, 0, + 7, 102, 193, 83, 145, 130, 113, 147, 82, 162, 82, 162, + 82, 162, 83, 146, 100, 98, 118, 50, 152, 214, 215, 162, + 54, 114, 101, 82, 132, 81, 179, 50, 179, 50, 194, 50, + 194, 50, 194, 66, 162, 83, 145, 131, 82, 182, 0, 22, + 48, 57, 19, 0, 7, 102, 194, 66, 147, 98, 130, 130, + 98, 147, 67, 162, 67, 162, 67, 163, 51, 163, 51, 163, + 51, 163, 51, 163, 66, 148, 67, 132, 82, 113, 19, 99, + 65, 35, 133, 51, 240, 18, 240, 34, 240, 18, 99, 130, + 99, 114, 115, 98, 145, 98, 182, 0, 22, 80, 17, 7, + 0, 10, 82, 68, 52, 66, 0, 7, 82, 68, 52, 66, + 0, 8, 48, 23, 7, 0, 10, 82, 68, 52, 66, 0, + 7, 82, 68, 52, 67, 97, 97, 97, 81, 97, 81, 81, + 240, 80, 50, 26, 0, 28, 82, 240, 115, 240, 99, 240, + 99, 240, 99, 240, 99, 240, 99, 240, 84, 240, 84, 240, + 84, 240, 84, 240, 116, 240, 148, 240, 148, 240, 148, 240, + 148, 240, 148, 240, 163, 240, 163, 240, 163, 240, 163, 240, + 162, 0, 23, 16, 13, 28, 0, 52, 79, 10, 0, 21, + 63, 10, 0, 49, 48, 48, 26, 0, 26, 2, 240, 163, + 240, 163, 240, 164, 240, 148, 240, 148, 240, 148, 240, 163, + 240, 163, 240, 164, 240, 147, 240, 115, 240, 99, 240, 84, + 240, 84, 240, 84, 240, 83, 240, 99, 240, 99, 240, 84, + 240, 99, 0, 28, 112, 36, 16, 0, 6, 55, 114, 84, + 81, 130, 67, 115, 51, 115, 51, 115, 210, 211, 194, 210, + 210, 225, 241, 225, 241, 241, 241, 241, 0, 7, 99, 211, + 211, 211, 0, 19, 16, 87, 28, 0, 11, 87, 240, 66, + 115, 226, 178, 193, 241, 161, 101, 97, 129, 83, 50, 97, + 98, 67, 97, 82, 81, 67, 116, 49, 81, 67, 131, 50, + 49, 67, 147, 65, 49, 67, 147, 65, 49, 67, 147, 65, + 49, 67, 147, 65, 49, 67, 147, 65, 49, 67, 147, 65, + 50, 67, 131, 65, 65, 67, 116, 65, 65, 83, 100, 49, + 97, 83, 50, 34, 49, 98, 101, 68, 129, 240, 210, 240, + 194, 228, 162, 148, 249, 0, 32, 96, 70, 29, 240, 240, + 178, 240, 194, 240, 194, 240, 180, 240, 164, 240, 150, 240, + 129, 35, 240, 129, 35, 240, 114, 36, 240, 97, 67, 240, + 97, 67, 240, 81, 84, 240, 65, 99, 240, 65, 99, 240, + 49, 116, 240, 33, 131, 240, 33, 131, 240, 30, 241, 163, + 241, 164, 209, 195, 209, 195, 194, 196, 177, 227, 177, 227, + 163, 212, 104, 138, 0, 33, 56, 27, 0, 10, 31, 3, + 211, 148, 179, 179, 163, 180, 147, 196, 131, 196, 131, 196, + 131, 195, 147, 180, 147, 164, 163, 147, 205, 227, 163, 179, + 180, 147, 196, 131, 196, 131, 212, 115, 212, 115, 212, 115, + 212, 115, 211, 131, 196, 131, 180, 147, 149, 111, 3, 0, + 31, 64, 66, 26, 0, 11, 7, 81, 164, 83, 34, 132, + 146, 18, 115, 196, 99, 227, 84, 242, 83, 240, 18, 68, + 240, 18, 67, 240, 49, 52, 240, 49, 52, 240, 116, 240, + 116, 240, 116, 240, 116, 240, 116, 240, 132, 240, 33, 68, + 240, 33, 83, 240, 33, 84, 241, 115, 241, 131, 209, 164, + 161, 212, 98, 240, 39, 0, 30, 48, 58, 29, 0, 10, + 127, 2, 240, 19, 148, 211, 179, 195, 195, 179, 211, 163, + 227, 147, 228, 131, 228, 131, 243, 131, 244, 115, 244, 115, + 244, 115, 244, 115, 244, 115, 244, 115, 244, 115, 243, 131, + 228, 131, 228, 131, 227, 147, 211, 163, 195, 179, 179, 195, + 148, 159, 2, 0, 34, 16, 59, 26, 0, 9, 111, 6, + 147, 164, 147, 194, 147, 209, 147, 209, 147, 209, 147, 225, + 131, 113, 97, 131, 113, 243, 113, 243, 98, 251, 243, 98, + 243, 113, 243, 113, 243, 113, 113, 115, 113, 113, 115, 225, + 131, 225, 131, 225, 131, 225, 131, 210, 131, 195, 131, 164, + 95, 6, 0, 29, 112, 55, 24, 0, 9, 15, 5, 131, + 164, 115, 194, 115, 194, 115, 209, 115, 209, 115, 209, 115, + 209, 115, 113, 211, 113, 211, 113, 211, 98, 219, 211, 98, + 211, 113, 211, 113, 211, 113, 211, 240, 99, 240, 99, 240, + 99, 240, 99, 240, 99, 240, 99, 240, 43, 0, 28, 80, + 64, 28, 0, 11, 87, 81, 211, 98, 34, 179, 146, 18, + 163, 180, 147, 211, 132, 226, 131, 242, 116, 240, 17, 115, + 240, 33, 100, 240, 33, 100, 240, 148, 240, 148, 240, 148, + 240, 148, 240, 148, 186, 67, 243, 116, 227, 131, 227, 132, + 211, 147, 211, 163, 195, 180, 145, 18, 212, 82, 34, 247, + 81, 0, 32, 32, 57, 28, 0, 10, 75, 59, 115, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 191, 2, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 123, 59, 0, 31, + 112, 32, 14, 240, 240, 203, 115, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 123, 0, 16, 16, 54, 19, 0, + 7, 107, 211, 240, 19, 240, 19, 240, 19, 240, 19, 240, + 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, + 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, + 19, 114, 115, 100, 99, 100, 84, 99, 99, 130, 83, 182, + 0, 22, 80, 67, 29, 0, 10, 123, 120, 115, 211, 163, + 209, 195, 193, 211, 177, 227, 161, 243, 145, 240, 19, 129, + 240, 35, 113, 240, 51, 82, 240, 67, 67, 240, 67, 53, + 240, 51, 34, 20, 240, 35, 17, 67, 240, 36, 99, 240, + 19, 116, 243, 132, 227, 147, 227, 148, 211, 164, 195, 179, + 195, 180, 179, 196, 163, 197, 91, 105, 0, 33, 56, 23, + 0, 8, 92, 243, 240, 83, 240, 83, 240, 83, 240, 83, + 240, 83, 240, 83, 240, 83, 240, 83, 240, 83, 240, 83, + 240, 83, 240, 83, 240, 83, 240, 83, 240, 83, 240, 83, + 193, 115, 193, 115, 193, 115, 193, 115, 178, 115, 163, 115, + 133, 63, 5, 0, 26, 32, 100, 35, 0, 13, 24, 240, + 24, 116, 240, 20, 177, 18, 241, 19, 177, 19, 225, 19, + 177, 19, 225, 19, 177, 35, 193, 35, 177, 35, 193, 35, + 177, 50, 177, 51, 177, 51, 161, 51, 177, 51, 161, 51, + 177, 67, 129, 67, 177, 67, 129, 67, 177, 82, 113, 83, + 177, 83, 97, 83, 177, 83, 97, 83, 177, 99, 65, 99, + 177, 99, 65, 99, 177, 114, 49, 115, 177, 115, 33, 115, + 177, 115, 33, 115, 177, 132, 131, 177, 132, 131, 177, 146, + 147, 163, 130, 147, 121, 82, 91, 0, 39, 96, 73, 29, + 0, 10, 120, 153, 116, 195, 165, 193, 177, 20, 177, 177, + 35, 177, 177, 51, 161, 177, 52, 145, 177, 67, 145, 177, + 83, 129, 177, 84, 113, 177, 100, 97, 177, 115, 97, 177, + 116, 81, 177, 132, 65, 177, 147, 65, 177, 163, 49, 177, + 164, 33, 177, 179, 33, 177, 195, 17, 177, 197, 177, 212, + 177, 227, 177, 227, 163, 226, 121, 193, 0, 33, 64, 65, + 28, 0, 11, 87, 240, 67, 83, 243, 147, 195, 179, 163, + 211, 131, 243, 115, 244, 84, 244, 83, 240, 35, 68, 240, + 36, 52, 240, 36, 52, 240, 36, 52, 240, 36, 52, 240, + 36, 52, 240, 36, 52, 240, 36, 68, 240, 19, 84, 244, + 84, 244, 100, 212, 131, 211, 163, 179, 195, 147, 243, 83, + 240, 71, 0, 33, 55, 25, 0, 9, 63, 2, 195, 132, + 163, 163, 147, 164, 131, 180, 115, 180, 115, 180, 115, 180, + 115, 180, 115, 164, 131, 163, 147, 132, 172, 211, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 59, 0, 29, 112, 91, + 28, 0, 11, 87, 240, 52, 83, 243, 147, 195, 179, 163, + 211, 131, 228, 115, 243, 100, 244, 83, 240, 35, 68, 240, + 36, 52, 240, 36, 52, 240, 36, 52, 240, 36, 52, 240, + 36, 52, 240, 36, 52, 240, 36, 67, 240, 35, 84, 244, + 84, 243, 115, 84, 84, 131, 50, 34, 67, 163, 33, 66, + 35, 195, 17, 81, 19, 229, 67, 240, 72, 113, 240, 51, + 97, 240, 66, 97, 240, 67, 51, 240, 72, 240, 103, 240, + 102, 240, 132, 0, 7, 96, 61, 29, 0, 10, 127, 1, + 240, 35, 131, 243, 163, 211, 164, 195, 180, 179, 180, 179, + 180, 179, 180, 179, 180, 179, 164, 195, 163, 211, 131, 252, + 240, 35, 116, 243, 147, 227, 163, 211, 163, 211, 163, 211, + 163, 211, 163, 211, 164, 195, 164, 65, 115, 179, 65, 115, + 180, 34, 73, 165, 0, 33, 16, 53, 20, 0, 8, 21, + 65, 130, 82, 33, 114, 131, 98, 147, 83, 162, 83, 162, + 83, 177, 84, 161, 84, 161, 101, 249, 203, 187, 201, 245, + 240, 21, 240, 20, 49, 211, 49, 211, 50, 195, 50, 194, + 67, 163, 68, 146, 82, 34, 83, 97, 86, 0, 23, 64, + 63, 28, 0, 10, 95, 8, 83, 115, 115, 82, 131, 130, + 81, 147, 145, 81, 147, 145, 81, 147, 145, 65, 163, 161, + 49, 163, 161, 227, 240, 163, 240, 163, 240, 163, 240, 163, + 240, 163, 240, 163, 240, 163, 240, 163, 240, 163, 240, 163, + 240, 163, 240, 163, 240, 163, 240, 163, 240, 163, 240, 93, + 0, 32, 80, 59, 29, 0, 10, 123, 105, 115, 211, 163, + 225, 179, 225, 179, 225, 179, 225, 179, 225, 179, 225, 179, + 225, 179, 225, 179, 225, 179, 225, 179, 225, 179, 225, 179, + 225, 179, 225, 179, 225, 179, 225, 179, 225, 194, 209, 211, + 193, 226, 177, 240, 18, 145, 240, 51, 82, 240, 102, 0, + 34, 32, 68, 30, 0, 11, 42, 152, 100, 228, 147, 241, + 180, 225, 195, 210, 195, 209, 212, 193, 227, 177, 244, 161, + 240, 19, 146, 240, 19, 145, 240, 36, 129, 240, 51, 113, + 240, 68, 97, 240, 83, 81, 240, 100, 65, 240, 115, 50, + 240, 115, 49, 240, 132, 33, 240, 147, 17, 240, 165, 240, + 180, 240, 179, 240, 195, 240, 209, 0, 35, 96, 102, 41, + 0, 15, 58, 74, 104, 100, 164, 179, 163, 179, 193, 179, + 179, 193, 180, 164, 177, 195, 164, 161, 211, 164, 161, 212, + 129, 20, 145, 227, 129, 35, 129, 243, 129, 35, 129, 244, + 97, 52, 97, 240, 35, 97, 67, 97, 240, 35, 97, 67, + 97, 240, 36, 65, 84, 65, 240, 67, 65, 99, 65, 240, + 67, 65, 100, 49, 240, 68, 33, 131, 33, 240, 99, 33, + 131, 33, 240, 99, 33, 132, 17, 240, 101, 164, 240, 132, + 164, 240, 131, 180, 240, 131, 194, 240, 162, 194, 240, 161, + 210, 0, 47, 112, 69, 30, 0, 11, 58, 104, 149, 148, + 212, 162, 244, 130, 240, 35, 129, 240, 52, 97, 240, 84, + 66, 240, 99, 65, 240, 116, 33, 240, 150, 240, 164, 240, + 180, 240, 196, 240, 165, 240, 161, 20, 240, 129, 52, 240, + 98, 68, 240, 81, 84, 240, 65, 116, 240, 34, 132, 240, + 17, 148, 241, 180, 210, 196, 164, 197, 105, 138, 0, 34, + 16, 64, 30, 0, 11, 42, 152, 101, 212, 148, 210, 195, + 209, 212, 178, 228, 161, 240, 19, 145, 240, 36, 114, 240, + 52, 97, 240, 68, 82, 240, 84, 65, 240, 115, 49, 240, + 132, 18, 240, 149, 240, 179, 240, 195, 240, 195, 240, 195, + 240, 195, 240, 195, 240, 195, 240, 195, 240, 195, 240, 195, + 240, 139, 0, 35, 16, 58, 22, 0, 8, 63, 3, 68, + 164, 67, 164, 82, 164, 97, 180, 97, 164, 113, 163, 129, + 148, 240, 36, 240, 51, 240, 52, 240, 36, 240, 51, 240, + 52, 240, 36, 240, 51, 145, 132, 145, 116, 161, 115, 177, + 100, 177, 84, 178, 83, 194, 68, 179, 52, 165, 63, 4, + 0, 25, 16, 39, 8, 133, 49, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 117, 48, 27, 16, 0, 6, 49, 113, + 97, 113, 97, 113, 113, 113, 97, 113, 113, 113, 116, 68, + 69, 53, 68, 53, 67, 83, 0, 48, 64, 39, 8, 133, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 53, 48, + 15, 13, 240, 240, 210, 164, 130, 34, 98, 66, 65, 129, + 0, 47, 64, 10, 7, 240, 114, 68, 52, 66, 0, 26, + 96, 16, 8, 240, 193, 97, 97, 113, 97, 113, 116, 69, + 53, 67, 0, 24, 64, 49, 23, 0, 24, 18, 240, 98, + 240, 98, 240, 84, 240, 68, 240, 49, 35, 240, 33, 35, + 240, 33, 50, 240, 17, 67, 241, 67, 241, 83, 209, 99, + 209, 99, 204, 177, 131, 177, 146, 161, 163, 145, 163, 131, + 148, 86, 119, 0, 26, 32, 42, 21, 0, 23, 94, 163, + 114, 147, 130, 131, 131, 115, 131, 115, 131, 115, 131, 115, + 115, 131, 99, 154, 179, 115, 131, 131, 115, 147, 99, 147, + 99, 147, 99, 147, 99, 131, 115, 115, 94, 0, 24, 64, + 45, 21, 0, 24, 70, 65, 131, 82, 18, 99, 147, 83, + 163, 82, 194, 67, 209, 66, 225, 51, 225, 51, 240, 51, + 240, 51, 240, 51, 240, 66, 225, 67, 209, 82, 209, 83, + 177, 115, 145, 163, 82, 214, 0, 24, 80, 42, 23, 0, + 25, 126, 195, 115, 163, 146, 147, 147, 131, 163, 115, 163, + 115, 179, 99, 179, 99, 179, 99, 179, 99, 179, 99, 179, + 99, 179, 99, 178, 115, 163, 115, 162, 131, 146, 147, 115, + 126, 0, 27, 46, 21, 0, 23, 95, 1, 131, 130, 131, + 146, 115, 161, 115, 161, 115, 161, 115, 81, 65, 115, 81, + 195, 66, 201, 195, 66, 195, 81, 195, 81, 81, 99, 177, + 99, 161, 115, 161, 115, 146, 115, 131, 79, 2, 0, 24, + 16, 42, 20, 0, 22, 79, 1, 115, 130, 115, 145, 115, + 145, 115, 161, 99, 161, 99, 81, 179, 81, 179, 66, 185, + 179, 66, 179, 81, 179, 81, 179, 240, 35, 240, 35, 240, + 35, 240, 35, 233, 0, 23, 112, 47, 23, 0, 26, 102, + 65, 163, 82, 18, 131, 132, 115, 163, 114, 194, 99, 209, + 98, 225, 83, 240, 83, 240, 83, 240, 83, 240, 83, 137, + 66, 195, 99, 179, 114, 179, 115, 163, 131, 147, 163, 82, + 18, 198, 65, 0, 26, 64, 44, 23, 0, 25, 120, 72, + 99, 131, 147, 131, 147, 131, 147, 131, 147, 131, 147, 131, + 147, 131, 147, 131, 158, 147, 131, 147, 131, 147, 131, 147, + 131, 147, 131, 147, 131, 147, 131, 147, 131, 104, 72, 0, + 26, 32, 26, 12, 0, 13, 73, 99, 147, 147, 147, 147, + 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, + 105, 0, 13, 112, 30, 15, 0, 17, 56, 163, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 83, 67, + 83, 67, 83, 66, 113, 67, 133, 0, 17, 112, 47, 24, + 0, 27, 9, 101, 115, 147, 147, 146, 163, 129, 195, 113, + 211, 97, 227, 81, 243, 65, 240, 19, 51, 243, 18, 19, + 229, 50, 228, 67, 211, 99, 195, 115, 179, 115, 179, 131, + 163, 147, 147, 148, 89, 87, 0, 27, 48, 44, 19, 0, + 21, 57, 211, 240, 19, 240, 19, 240, 19, 240, 19, 240, + 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, + 19, 145, 99, 145, 99, 145, 99, 145, 99, 130, 99, 115, + 63, 1, 0, 21, 96, 75, 28, 0, 31, 70, 214, 99, + 196, 145, 18, 161, 19, 145, 18, 161, 19, 145, 19, 145, + 19, 145, 34, 129, 35, 145, 34, 129, 35, 145, 50, 97, + 51, 145, 50, 97, 51, 145, 51, 81, 51, 145, 66, 65, + 67, 145, 66, 65, 67, 145, 67, 33, 83, 145, 82, 33, + 83, 145, 83, 17, 83, 145, 99, 99, 145, 99, 99, 131, + 82, 115, 103, 65, 73, 0, 31, 112, 56, 23, 0, 25, + 118, 119, 100, 131, 132, 145, 145, 19, 129, 145, 35, 113, + 145, 35, 113, 145, 51, 97, 145, 67, 81, 145, 83, 65, + 145, 83, 65, 145, 99, 49, 145, 115, 33, 145, 115, 33, + 145, 131, 17, 145, 148, 145, 163, 145, 163, 131, 162, 103, + 145, 0, 26, 80, 43, 22, 0, 25, 86, 211, 83, 163, + 115, 131, 147, 114, 179, 83, 179, 82, 211, 51, 211, 51, + 211, 51, 211, 51, 211, 51, 211, 51, 211, 67, 179, 83, + 179, 99, 147, 131, 115, 163, 83, 215, 0, 25, 112, 40, + 20, 0, 22, 77, 163, 99, 131, 115, 115, 131, 99, 131, + 99, 131, 99, 131, 99, 115, 115, 99, 138, 163, 240, 35, + 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, + 232, 0, 24, 57, 22, 0, 25, 86, 226, 83, 163, 115, + 131, 147, 114, 179, 83, 179, 82, 210, 67, 211, 51, 211, + 51, 211, 51, 211, 51, 211, 51, 211, 67, 194, 83, 179, + 99, 51, 66, 130, 33, 49, 34, 164, 66, 231, 81, 242, + 65, 243, 34, 240, 22, 240, 21, 240, 51, 0, 11, 80, + 45, 23, 0, 25, 125, 211, 99, 179, 115, 163, 131, 147, + 131, 147, 131, 147, 131, 147, 115, 163, 99, 186, 211, 83, + 195, 114, 179, 114, 179, 115, 163, 115, 163, 115, 163, 115, + 49, 99, 131, 33, 57, 100, 0, 26, 48, 39, 16, 0, + 18, 53, 49, 98, 68, 82, 99, 66, 130, 66, 145, 66, + 145, 67, 129, 84, 200, 168, 182, 212, 211, 49, 162, 49, + 162, 50, 146, 50, 130, 68, 82, 81, 54, 0, 18, 96, + 48, 22, 0, 24, 111, 4, 51, 83, 83, 50, 99, 98, + 49, 115, 113, 49, 115, 113, 49, 115, 113, 179, 240, 67, + 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, + 240, 67, 240, 67, 240, 67, 240, 67, 251, 0, 25, 80, + 45, 23, 0, 25, 121, 71, 99, 147, 131, 161, 147, 161, + 147, 161, 147, 161, 147, 161, 147, 161, 147, 161, 147, 161, + 147, 161, 147, 161, 147, 161, 147, 161, 147, 161, 163, 129, + 194, 114, 211, 66, 240, 21, 0, 27, 16, 48, 23, 0, + 25, 119, 133, 83, 178, 130, 177, 147, 161, 147, 161, 163, + 129, 179, 129, 194, 113, 211, 97, 226, 81, 243, 65, 243, + 65, 240, 19, 33, 240, 35, 33, 240, 50, 17, 240, 68, + 240, 68, 240, 82, 240, 98, 0, 27, 48, 73, 31, 0, + 34, 119, 71, 85, 83, 131, 131, 99, 131, 145, 130, 131, + 129, 147, 116, 113, 147, 116, 113, 162, 113, 18, 97, 179, + 81, 35, 81, 179, 81, 35, 81, 194, 65, 66, 65, 211, + 49, 67, 49, 211, 49, 67, 49, 227, 17, 98, 33, 243, + 17, 99, 17, 240, 18, 17, 100, 240, 35, 131, 240, 35, + 131, 240, 50, 130, 240, 65, 161, 0, 36, 32, 48, 23, + 0, 25, 120, 86, 116, 100, 163, 113, 195, 97, 227, 66, + 243, 49, 240, 35, 17, 240, 52, 240, 83, 240, 99, 240, + 68, 240, 50, 19, 240, 33, 51, 241, 83, 209, 99, 209, + 115, 177, 147, 131, 148, 86, 119, 0, 26, 32, 47, 24, + 0, 27, 7, 149, 84, 178, 131, 177, 163, 145, 180, 114, + 195, 113, 227, 81, 244, 50, 240, 20, 33, 240, 51, 17, + 240, 69, 240, 83, 240, 99, 240, 99, 240, 99, 240, 99, + 240, 99, 240, 99, 240, 57, 0, 28, 16, 37, 18, 0, + 20, 47, 52, 116, 50, 147, 66, 131, 81, 131, 97, 131, + 227, 227, 243, 227, 227, 242, 243, 113, 99, 129, 98, 145, + 83, 145, 67, 146, 51, 132, 63, 0, 20, 80, 9, 22, + 0, 49, 79, 4, 0, 49, 112, 10, 41, 0, 92, 47, + 15, 8, 0, 92, 80, 21, 15, 0, 6, 2, 82, 83, + 67, 82, 82, 83, 67, 82, 82, 82, 82, 97, 97, 0, + 51, 64, 14, 15, 0, 6, 3, 181, 65, 65, 54, 65, + 99, 0, 56, 112, +}; + +//***************************************************************************** +// +// The font definition for the 36 point Cmsc font. +// +//***************************************************************************** +const tFont g_sFontCmsc36 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 37, + + // + // The height of the font. + // + 37, + + // + // The baseline of the font. + // + 28, + + // + // The offset to each character in the font. + // + { + 0, 5, 35, 62, 160, 229, 325, 408, + 424, 464, 504, 537, 594, 611, 620, 631, + 708, 763, 796, 840, 891, 945, 997, 1054, + 1101, 1153, 1210, 1227, 1250, 1300, 1313, 1361, + 1397, 1484, 1554, 1610, 1676, 1734, 1793, 1848, + 1912, 1969, 2001, 2055, 2122, 2178, 2278, 2351, + 2416, 2471, 2562, 2623, 2676, 2739, 2798, 2866, + 2968, 3037, 3101, 3159, 3198, 3225, 3264, 3279, + 3289, 3305, 3354, 3396, 3441, 3483, 3529, 3571, + 3618, 3662, 3688, 3718, 3765, 3809, 3884, 3940, + 3983, 4023, 4080, 4125, 4164, 4212, 4257, 4305, + 4378, 4426, 4473, 4510, 4519, 4529, 4550, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmsc36Data +}; diff --git a/grlib/fonts/fontcmsc38.c b/grlib/fonts/fontcmsc38.c new file mode 100644 index 0000000..5be59b7 --- /dev/null +++ b/grlib/fonts/fontcmsc38.c @@ -0,0 +1,515 @@ +//***************************************************************************** +// +// fontcmsc38.c - Font definition for the 38pt Cmsc font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmsc +// Size: 38 point +// Bold: no +// Italic: no +// Memory usage: 5120 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 38 point Cmsc font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmsc38Data[4920] = +{ + 5, 15, 0, 73, 16, 31, 7, 130, 68, 52, 52, 52, + 52, 52, 52, 66, 82, 82, 82, 82, 82, 82, 82, 82, + 82, 82, 82, 97, 240, 178, 68, 52, 66, 0, 9, 32, + 31, 15, 240, 240, 19, 67, 69, 52, 53, 52, 68, 52, + 113, 97, 113, 97, 113, 97, 97, 97, 113, 97, 97, 113, + 97, 97, 97, 97, 0, 47, 80, 107, 32, 0, 9, 97, + 129, 240, 113, 129, 240, 98, 129, 240, 98, 114, 240, 97, + 130, 240, 82, 129, 240, 98, 114, 240, 97, 130, 240, 97, + 129, 240, 98, 129, 240, 98, 114, 240, 97, 130, 240, 97, + 129, 191, 14, 209, 130, 240, 97, 129, 240, 98, 129, 240, + 98, 114, 240, 97, 130, 240, 97, 129, 240, 98, 129, 223, + 14, 177, 129, 240, 98, 129, 240, 98, 114, 240, 97, 130, + 240, 97, 129, 240, 98, 129, 240, 98, 114, 240, 97, 130, + 240, 82, 129, 240, 98, 114, 240, 97, 130, 240, 97, 129, + 240, 113, 129, 0, 10, 16, 74, 18, 113, 240, 33, 231, + 162, 33, 50, 113, 65, 81, 82, 65, 97, 50, 81, 67, + 50, 81, 67, 50, 81, 67, 51, 65, 66, 67, 65, 179, + 49, 181, 17, 200, 185, 169, 199, 177, 36, 177, 52, 161, + 67, 66, 65, 82, 51, 65, 82, 51, 65, 82, 51, 65, + 82, 49, 97, 81, 81, 81, 66, 82, 65, 50, 114, 49, + 34, 166, 241, 240, 33, 0, 19, 32, 105, 32, 68, 240, + 17, 162, 49, 226, 146, 82, 179, 131, 84, 101, 146, 113, + 38, 19, 147, 113, 147, 147, 113, 131, 163, 113, 130, 179, + 113, 114, 195, 113, 99, 195, 113, 98, 226, 97, 98, 243, + 81, 83, 240, 18, 65, 98, 240, 50, 34, 82, 240, 98, + 99, 113, 240, 98, 83, 18, 240, 50, 82, 81, 240, 19, + 67, 97, 242, 82, 113, 226, 83, 129, 195, 83, 129, 194, + 99, 129, 178, 115, 129, 162, 131, 129, 162, 131, 129, 146, + 162, 114, 130, 179, 97, 146, 194, 82, 130, 226, 50, 145, + 240, 20, 0, 32, 112, 87, 30, 240, 240, 147, 240, 162, + 49, 240, 131, 65, 240, 114, 81, 240, 99, 81, 240, 99, + 81, 240, 99, 81, 240, 99, 65, 240, 115, 65, 240, 115, + 49, 240, 147, 17, 240, 164, 152, 147, 195, 211, 193, 212, + 177, 209, 35, 161, 193, 51, 145, 193, 83, 129, 178, 84, + 97, 178, 115, 81, 179, 131, 65, 179, 132, 33, 195, 147, + 17, 211, 163, 161, 67, 163, 145, 68, 129, 19, 113, 100, + 82, 67, 65, 166, 133, 0, 38, 32, 18, 8, 240, 35, + 69, 53, 68, 113, 113, 113, 97, 113, 97, 113, 97, 0, + 25, 96, 42, 13, 145, 177, 177, 177, 178, 162, 163, 162, + 163, 162, 178, 163, 163, 162, 178, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 179, 163, 163, 178, 179, 163, 178, + 179, 178, 194, 193, 194, 194, 209, 48, 42, 13, 2, 194, + 194, 194, 178, 194, 179, 178, 179, 178, 179, 163, 163, 178, + 179, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 162, + 178, 163, 163, 162, 178, 162, 178, 162, 177, 178, 162, 162, + 161, 192, 36, 17, 98, 242, 242, 242, 146, 66, 66, 51, + 50, 51, 83, 18, 19, 147, 18, 210, 211, 18, 147, 18, + 19, 83, 50, 51, 50, 66, 66, 146, 242, 242, 242, 0, + 47, 112, 61, 31, 0, 24, 114, 240, 226, 240, 226, 240, + 226, 240, 226, 240, 226, 240, 226, 240, 226, 240, 226, 240, + 226, 240, 226, 240, 226, 240, 226, 240, 31, 13, 240, 18, + 240, 226, 240, 226, 240, 226, 240, 226, 240, 226, 240, 226, + 240, 226, 240, 226, 240, 226, 240, 226, 240, 226, 240, 226, + 0, 25, 32, 18, 8, 0, 25, 19, 69, 53, 68, 113, + 113, 113, 97, 113, 98, 97, 97, 240, 112, 9, 14, 0, + 35, 11, 59, 0, 30, 16, 11, 7, 0, 22, 2, 68, + 52, 66, 0, 9, 32, 81, 19, 241, 240, 34, 240, 33, + 240, 34, 240, 34, 240, 33, 240, 34, 240, 33, 240, 34, + 240, 34, 240, 33, 240, 34, 240, 34, 240, 18, 240, 34, + 240, 33, 240, 34, 240, 34, 240, 33, 240, 34, 240, 33, + 240, 34, 240, 34, 240, 33, 240, 34, 240, 34, 240, 18, + 240, 34, 240, 33, 240, 34, 240, 34, 240, 33, 240, 34, + 240, 33, 240, 34, 240, 34, 240, 33, 240, 34, 240, 34, + 240, 32, 57, 20, 0, 8, 37, 210, 82, 162, 114, 130, + 146, 99, 147, 82, 178, 82, 178, 67, 179, 51, 179, 51, + 179, 51, 179, 51, 179, 51, 179, 51, 179, 51, 179, 51, + 179, 51, 179, 51, 179, 51, 179, 66, 178, 83, 147, 83, + 147, 98, 146, 115, 114, 147, 82, 198, 0, 26, 16, 34, + 16, 0, 6, 113, 211, 181, 132, 19, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 141, 0, 20, 48, 44, 18, 0, + 7, 53, 178, 67, 129, 115, 97, 147, 66, 163, 51, 147, + 52, 131, 52, 131, 66, 147, 243, 227, 243, 242, 242, 243, + 227, 227, 242, 242, 242, 113, 114, 129, 98, 145, 82, 145, + 93, 78, 78, 0, 23, 55, 20, 0, 8, 23, 178, 84, + 129, 147, 99, 132, 84, 116, 84, 116, 98, 132, 240, 19, + 240, 35, 240, 19, 240, 34, 240, 19, 214, 240, 67, 240, + 52, 240, 36, 240, 35, 240, 36, 240, 20, 67, 148, 52, + 148, 52, 148, 51, 148, 81, 163, 115, 84, 183, 0, 26, + 57, 21, 0, 9, 65, 240, 66, 240, 51, 240, 51, 240, + 36, 240, 17, 19, 241, 35, 241, 35, 225, 51, 209, 67, + 209, 67, 193, 83, 193, 83, 177, 99, 161, 115, 161, 115, + 145, 131, 129, 147, 129, 147, 127, 3, 227, 240, 51, 240, + 51, 240, 51, 240, 51, 235, 0, 26, 80, 55, 18, 0, + 7, 1, 161, 99, 98, 122, 137, 151, 177, 240, 33, 240, + 33, 240, 33, 240, 33, 240, 33, 38, 145, 17, 82, 130, + 114, 113, 146, 240, 18, 240, 19, 243, 66, 147, 51, 147, + 51, 147, 51, 147, 49, 178, 81, 146, 113, 115, 130, 66, + 182, 0, 23, 64, 59, 19, 0, 8, 21, 194, 81, 146, + 99, 114, 115, 114, 115, 98, 131, 83, 240, 19, 240, 18, + 240, 19, 53, 131, 33, 67, 99, 17, 114, 84, 131, 68, + 146, 67, 163, 51, 163, 51, 163, 51, 163, 66, 163, 66, + 163, 66, 163, 66, 162, 98, 131, 114, 114, 146, 67, 182, + 0, 24, 96, 59, 21, 0, 8, 1, 240, 95, 2, 79, + 1, 95, 1, 81, 194, 82, 193, 97, 193, 113, 177, 240, + 66, 240, 65, 240, 65, 240, 66, 240, 50, 240, 66, 240, + 51, 240, 51, 240, 50, 240, 51, 240, 51, 240, 51, 240, + 36, 240, 36, 240, 36, 240, 36, 240, 36, 240, 50, 0, + 27, 112, 54, 20, 0, 8, 38, 194, 83, 145, 146, 113, + 163, 97, 178, 82, 178, 82, 178, 83, 162, 100, 114, 117, + 82, 150, 34, 183, 246, 194, 23, 146, 70, 114, 117, 82, + 164, 50, 195, 50, 210, 50, 210, 50, 210, 50, 210, 66, + 178, 98, 146, 131, 83, 183, 0, 26, 58, 19, 0, 7, + 102, 194, 66, 162, 98, 130, 130, 98, 146, 98, 162, 67, + 162, 67, 162, 67, 163, 51, 163, 51, 163, 51, 163, 51, + 163, 66, 148, 67, 132, 83, 97, 19, 99, 65, 35, 133, + 51, 240, 18, 240, 34, 83, 130, 99, 130, 99, 114, 115, + 98, 145, 98, 182, 0, 25, 17, 7, 0, 10, 82, 68, + 52, 66, 0, 8, 66, 68, 52, 66, 0, 9, 32, 24, + 7, 0, 10, 67, 68, 52, 51, 0, 8, 51, 68, 52, + 52, 97, 97, 97, 81, 97, 97, 81, 81, 240, 80, 52, + 27, 0, 29, 98, 240, 132, 240, 100, 240, 99, 240, 115, + 240, 115, 240, 100, 240, 100, 240, 100, 240, 100, 240, 100, + 240, 115, 240, 164, 240, 164, 240, 164, 240, 164, 240, 164, + 240, 164, 240, 179, 240, 179, 240, 179, 240, 180, 240, 162, + 0, 27, 48, 13, 30, 0, 56, 47, 12, 0, 26, 95, + 12, 0, 56, 80, 50, 27, 0, 27, 2, 240, 179, 240, + 179, 240, 180, 240, 164, 240, 164, 240, 164, 240, 164, 240, + 179, 240, 179, 240, 179, 240, 163, 240, 115, 240, 115, 240, + 100, 240, 100, 240, 100, 240, 100, 240, 99, 240, 115, 240, + 115, 240, 115, 0, 33, 48, 43, 17, 240, 240, 134, 146, + 83, 97, 146, 67, 131, 52, 115, 52, 115, 66, 131, 211, + 227, 210, 226, 241, 242, 241, 242, 241, 240, 17, 240, 17, + 240, 17, 240, 17, 0, 8, 35, 227, 227, 227, 0, 22, + 48, 96, 29, 0, 8, 71, 240, 67, 99, 240, 17, 194, + 194, 226, 162, 240, 18, 145, 101, 114, 113, 98, 66, 97, + 97, 83, 98, 97, 81, 82, 132, 49, 81, 67, 147, 49, + 65, 82, 163, 65, 49, 67, 163, 65, 49, 67, 163, 65, + 49, 67, 163, 65, 49, 67, 163, 65, 49, 67, 163, 65, + 49, 82, 163, 65, 65, 67, 147, 65, 65, 82, 132, 65, + 66, 67, 101, 49, 97, 83, 66, 34, 49, 113, 101, 84, + 130, 240, 210, 240, 210, 244, 163, 133, 240, 25, 0, 37, + 64, 75, 30, 240, 240, 209, 240, 211, 240, 195, 240, 195, + 240, 181, 240, 161, 19, 240, 161, 19, 240, 145, 36, 240, + 129, 51, 240, 129, 52, 240, 97, 68, 240, 97, 83, 240, + 82, 84, 240, 65, 100, 240, 65, 115, 240, 50, 116, 240, + 33, 132, 240, 33, 147, 240, 31, 241, 179, 241, 179, 226, + 180, 209, 211, 209, 211, 193, 228, 178, 227, 163, 213, 104, + 154, 0, 37, 112, 60, 28, 0, 7, 15, 3, 227, 163, + 195, 180, 163, 196, 147, 196, 147, 212, 131, 212, 131, 212, + 131, 212, 131, 196, 147, 195, 163, 179, 179, 148, 206, 227, + 164, 179, 196, 147, 212, 131, 212, 131, 228, 115, 228, 115, + 228, 115, 228, 115, 212, 131, 212, 131, 196, 147, 165, 111, + 4, 0, 36, 16, 72, 27, 0, 8, 7, 97, 179, 98, + 50, 147, 162, 18, 131, 196, 115, 227, 99, 243, 83, 240, + 34, 83, 240, 34, 68, 240, 34, 67, 240, 65, 52, 240, + 65, 52, 240, 132, 240, 132, 240, 132, 240, 132, 240, 132, + 240, 147, 240, 65, 68, 240, 49, 68, 240, 49, 84, 240, + 17, 115, 240, 17, 131, 225, 163, 209, 179, 162, 227, 98, + 240, 55, 0, 35, 71, 30, 0, 7, 79, 3, 240, 19, + 148, 227, 180, 195, 211, 179, 227, 163, 228, 147, 243, 147, + 244, 131, 244, 131, 240, 19, 131, 240, 20, 115, 240, 20, + 115, 240, 20, 115, 240, 20, 115, 240, 20, 115, 240, 20, + 115, 240, 20, 115, 240, 20, 115, 240, 19, 131, 244, 131, + 243, 147, 228, 147, 227, 163, 211, 179, 195, 195, 163, 175, + 3, 0, 39, 65, 27, 0, 6, 111, 7, 147, 180, 147, + 210, 147, 225, 147, 226, 131, 241, 131, 241, 131, 241, 131, + 129, 97, 131, 129, 243, 129, 243, 129, 243, 114, 252, 243, + 114, 243, 129, 243, 129, 243, 129, 113, 115, 129, 113, 115, + 240, 17, 115, 240, 17, 115, 241, 131, 241, 131, 226, 131, + 211, 131, 196, 79, 8, 0, 34, 32, 60, 26, 0, 6, + 79, 7, 131, 180, 131, 210, 131, 210, 131, 225, 131, 225, + 131, 225, 131, 241, 115, 129, 97, 115, 129, 227, 129, 227, + 129, 227, 114, 236, 227, 99, 227, 129, 227, 129, 227, 129, + 227, 129, 227, 240, 131, 240, 131, 240, 131, 240, 131, 240, + 131, 240, 131, 240, 76, 0, 34, 32, 74, 30, 0, 8, + 103, 97, 227, 98, 50, 195, 162, 18, 179, 196, 163, 227, + 147, 243, 132, 240, 18, 131, 240, 34, 116, 240, 34, 116, + 240, 49, 115, 240, 65, 100, 240, 180, 240, 180, 240, 180, + 240, 180, 240, 180, 240, 180, 203, 68, 240, 19, 116, 240, + 19, 131, 240, 19, 132, 243, 148, 227, 164, 211, 195, 177, + 18, 212, 114, 34, 240, 24, 81, 0, 38, 32, 61, 30, + 0, 7, 75, 91, 115, 211, 179, 211, 179, 211, 179, 211, + 179, 211, 179, 211, 179, 211, 179, 211, 179, 211, 179, 211, + 179, 211, 179, 211, 191, 4, 179, 211, 179, 211, 179, 211, + 179, 211, 179, 211, 179, 211, 179, 211, 179, 211, 179, 211, + 179, 211, 179, 211, 179, 211, 123, 91, 0, 37, 112, 33, + 14, 240, 219, 115, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 123, 0, 17, 112, 58, 20, 240, 240, + 252, 227, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, + 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, + 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, + 240, 35, 240, 35, 114, 131, 100, 115, 100, 100, 99, 115, + 130, 84, 183, 0, 26, 32, 74, 30, 0, 7, 75, 136, + 115, 212, 163, 210, 195, 209, 211, 193, 227, 177, 243, 161, + 240, 19, 145, 240, 35, 129, 240, 51, 113, 240, 67, 97, + 240, 83, 68, 240, 67, 54, 240, 51, 34, 20, 240, 51, + 18, 52, 240, 37, 84, 240, 20, 100, 240, 19, 132, 243, + 148, 227, 148, 227, 164, 211, 180, 195, 180, 195, 196, 179, + 212, 163, 213, 91, 121, 0, 37, 112, 61, 24, 0, 6, + 12, 240, 19, 240, 99, 240, 99, 240, 99, 240, 99, 240, + 99, 240, 99, 240, 99, 240, 99, 240, 99, 240, 99, 240, + 99, 240, 99, 240, 99, 240, 99, 240, 99, 240, 99, 209, + 115, 209, 115, 209, 115, 209, 115, 209, 115, 194, 115, 194, + 115, 179, 115, 148, 79, 5, 0, 30, 64, 110, 36, 0, + 9, 8, 240, 40, 116, 240, 36, 177, 18, 240, 17, 19, + 177, 19, 241, 19, 177, 19, 241, 19, 177, 35, 209, 35, + 177, 35, 209, 35, 177, 50, 193, 51, 177, 51, 177, 51, + 177, 51, 177, 51, 177, 67, 145, 67, 177, 67, 145, 67, + 177, 67, 129, 83, 177, 83, 113, 83, 177, 83, 113, 83, + 177, 98, 97, 99, 177, 99, 81, 99, 177, 99, 81, 99, + 177, 115, 49, 115, 177, 115, 49, 115, 177, 115, 33, 131, + 177, 131, 17, 131, 177, 131, 17, 131, 177, 147, 147, 177, + 147, 147, 163, 130, 163, 121, 97, 107, 0, 45, 48, 79, + 30, 0, 7, 72, 169, 116, 211, 165, 209, 177, 20, 193, + 177, 35, 193, 177, 36, 177, 177, 52, 161, 177, 68, 145, + 177, 68, 145, 177, 84, 129, 177, 100, 113, 177, 115, 113, + 177, 116, 97, 177, 132, 81, 177, 147, 81, 177, 148, 65, + 177, 164, 49, 177, 179, 49, 177, 180, 33, 177, 196, 17, + 177, 211, 17, 177, 213, 177, 228, 177, 243, 177, 243, 163, + 242, 121, 209, 0, 38, 48, 77, 29, 0, 8, 71, 240, + 67, 99, 240, 18, 163, 195, 195, 163, 227, 147, 228, 115, + 240, 19, 100, 240, 20, 84, 240, 20, 83, 240, 51, 68, + 240, 52, 52, 240, 52, 52, 240, 52, 52, 240, 52, 52, + 240, 52, 52, 240, 52, 52, 240, 52, 68, 240, 35, 84, + 240, 20, 84, 240, 20, 99, 240, 19, 116, 227, 148, 196, + 163, 195, 196, 132, 244, 83, 240, 71, 0, 37, 112, 59, + 27, 0, 6, 111, 3, 211, 148, 179, 180, 147, 196, 131, + 211, 131, 212, 115, 212, 115, 212, 115, 212, 115, 212, 115, + 211, 131, 195, 147, 179, 163, 163, 190, 211, 240, 147, 240, + 147, 240, 147, 240, 147, 240, 147, 240, 147, 240, 147, 240, + 147, 240, 147, 240, 147, 240, 91, 0, 35, 96, 106, 30, + 0, 8, 103, 240, 83, 99, 240, 35, 147, 211, 195, 180, + 211, 163, 243, 131, 240, 20, 100, 240, 36, 84, 240, 36, + 83, 240, 67, 68, 240, 68, 52, 240, 68, 52, 240, 68, + 52, 240, 68, 52, 240, 68, 52, 240, 68, 52, 240, 68, + 67, 240, 67, 84, 240, 36, 84, 240, 36, 99, 240, 35, + 116, 84, 99, 147, 66, 34, 67, 179, 49, 66, 35, 211, + 33, 81, 19, 240, 21, 67, 240, 89, 129, 240, 67, 113, + 240, 82, 113, 240, 83, 82, 240, 84, 51, 240, 104, 240, + 120, 240, 134, 240, 164, 0, 8, 32, 68, 31, 0, 7, + 111, 1, 240, 67, 132, 240, 19, 164, 227, 180, 211, 195, + 211, 196, 195, 196, 195, 196, 195, 196, 195, 195, 211, 180, + 211, 164, 227, 132, 240, 29, 240, 51, 131, 240, 35, 163, + 243, 164, 227, 179, 227, 179, 227, 179, 227, 180, 211, 180, + 211, 180, 211, 180, 81, 115, 195, 81, 115, 211, 49, 89, + 181, 0, 39, 48, 58, 21, 0, 5, 118, 65, 131, 82, + 33, 114, 132, 99, 147, 98, 178, 83, 178, 83, 193, 83, + 193, 84, 177, 85, 240, 38, 250, 204, 187, 217, 240, 22, + 240, 37, 240, 36, 49, 227, 49, 227, 50, 211, 50, 211, + 50, 210, 67, 179, 68, 162, 82, 35, 83, 97, 87, 0, + 27, 32, 67, 28, 0, 7, 15, 10, 52, 115, 116, 50, + 147, 146, 50, 147, 146, 49, 163, 161, 49, 163, 161, 49, + 163, 161, 49, 163, 161, 49, 163, 161, 227, 240, 163, 240, + 163, 240, 163, 240, 163, 240, 163, 240, 163, 240, 163, 240, + 163, 240, 163, 240, 163, 240, 163, 240, 163, 240, 163, 240, + 163, 240, 163, 240, 163, 240, 79, 0, 36, 63, 30, 0, + 7, 75, 121, 115, 227, 163, 241, 179, 241, 179, 241, 179, + 241, 179, 241, 179, 241, 179, 241, 179, 241, 179, 241, 179, + 241, 179, 241, 179, 241, 179, 241, 179, 241, 179, 241, 179, + 241, 179, 241, 179, 241, 194, 241, 195, 209, 226, 209, 227, + 177, 240, 19, 145, 240, 67, 82, 240, 118, 0, 39, 16, + 74, 32, 0, 8, 11, 168, 101, 228, 164, 242, 180, 241, + 211, 241, 212, 210, 227, 209, 244, 193, 244, 177, 240, 35, + 177, 240, 36, 146, 240, 51, 145, 240, 68, 129, 240, 68, + 113, 240, 99, 113, 240, 100, 82, 240, 115, 81, 240, 132, + 65, 240, 132, 49, 240, 163, 49, 240, 164, 18, 240, 179, + 17, 240, 197, 240, 196, 240, 227, 240, 227, 240, 241, 0, + 42, 16, 111, 43, 0, 10, 106, 90, 120, 100, 180, 195, + 163, 195, 209, 180, 180, 193, 180, 180, 193, 195, 180, 177, + 212, 165, 161, 212, 165, 161, 227, 145, 35, 145, 244, 129, + 36, 129, 244, 129, 36, 129, 240, 19, 113, 67, 113, 240, + 36, 97, 68, 97, 240, 36, 97, 68, 97, 240, 51, 81, + 99, 81, 240, 68, 65, 100, 65, 240, 68, 65, 100, 65, + 240, 83, 49, 131, 49, 240, 100, 33, 132, 33, 240, 100, + 33, 132, 17, 240, 131, 17, 163, 17, 240, 133, 165, 240, + 133, 164, 240, 163, 195, 240, 163, 195, 240, 163, 194, 240, + 193, 225, 0, 55, 80, 75, 31, 0, 7, 123, 105, 134, + 149, 196, 178, 244, 161, 240, 36, 129, 240, 52, 114, 240, + 68, 97, 240, 100, 65, 240, 116, 50, 240, 132, 33, 240, + 165, 240, 181, 240, 196, 240, 212, 240, 181, 240, 177, 20, + 240, 145, 52, 240, 114, 52, 240, 113, 84, 240, 81, 116, + 240, 50, 116, 240, 34, 148, 240, 17, 180, 226, 180, 210, + 212, 180, 197, 106, 138, 0, 39, 16, 69, 32, 0, 8, + 11, 168, 116, 228, 164, 242, 196, 210, 228, 193, 244, 178, + 240, 20, 161, 240, 51, 145, 240, 68, 114, 240, 84, 97, + 240, 100, 82, 240, 116, 65, 240, 147, 49, 240, 164, 18, + 240, 181, 240, 211, 240, 227, 240, 227, 240, 227, 240, 227, + 240, 227, 240, 227, 240, 227, 240, 227, 240, 227, 240, 227, + 240, 171, 0, 41, 64, 62, 23, 0, 5, 127, 4, 69, + 164, 67, 180, 82, 180, 97, 196, 97, 180, 113, 164, 129, + 164, 129, 148, 240, 52, 240, 68, 240, 52, 240, 68, 240, + 52, 240, 52, 240, 68, 240, 52, 240, 52, 161, 132, 161, + 116, 177, 115, 193, 100, 193, 84, 194, 84, 194, 68, 195, + 52, 181, 63, 5, 0, 29, 16, 42, 9, 6, 50, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 118, + 48, 31, 15, 240, 240, 49, 97, 97, 97, 97, 113, 97, + 97, 113, 97, 97, 97, 113, 97, 113, 97, 116, 52, 68, + 53, 52, 68, 67, 67, 0, 47, 48, 42, 9, 6, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 54, 48, 17, 13, 240, 240, 17, 179, 146, 18, 114, 50, + 81, 98, 49, 129, 0, 50, 96, 10, 7, 240, 114, 68, + 52, 66, 0, 28, 64, 18, 8, 240, 65, 97, 113, 97, + 113, 97, 113, 113, 116, 69, 68, 67, 0, 25, 64, 53, + 24, 0, 25, 33, 240, 115, 240, 99, 240, 99, 240, 81, + 19, 240, 65, 19, 240, 49, 51, 240, 33, 51, 240, 33, + 51, 240, 17, 83, 241, 83, 241, 98, 225, 115, 219, 193, + 147, 177, 147, 177, 147, 161, 179, 145, 179, 131, 164, 86, + 120, 0, 30, 48, 44, 22, 0, 24, 110, 179, 115, 147, + 131, 131, 147, 115, 147, 115, 147, 115, 147, 115, 131, 131, + 115, 155, 179, 131, 131, 147, 115, 162, 115, 163, 99, 163, + 99, 163, 99, 163, 99, 147, 115, 131, 95, 0, 28, 48, + 47, 22, 0, 25, 102, 65, 131, 83, 18, 114, 148, 98, + 179, 82, 210, 67, 210, 67, 225, 51, 241, 51, 240, 67, + 240, 67, 240, 67, 240, 67, 241, 67, 225, 67, 225, 82, + 209, 114, 193, 130, 161, 163, 98, 215, 0, 28, 64, 45, + 24, 0, 27, 15, 195, 116, 163, 147, 147, 163, 131, 178, + 131, 179, 115, 194, 115, 195, 99, 195, 99, 195, 99, 195, + 99, 195, 99, 195, 99, 194, 115, 179, 115, 178, 131, 163, + 131, 147, 147, 130, 142, 0, 31, 32, 47, 22, 0, 24, + 111, 3, 115, 147, 115, 162, 115, 177, 115, 177, 115, 177, + 115, 97, 65, 115, 97, 195, 82, 202, 195, 82, 195, 97, + 195, 97, 81, 99, 193, 99, 193, 99, 193, 99, 178, 99, + 177, 115, 147, 79, 3, 0, 28, 45, 21, 0, 23, 95, + 2, 115, 131, 115, 162, 99, 162, 99, 177, 99, 177, 99, + 97, 65, 99, 97, 179, 97, 179, 82, 186, 179, 82, 179, + 97, 179, 97, 179, 240, 51, 240, 51, 240, 51, 240, 51, + 250, 0, 27, 80, 49, 24, 0, 27, 118, 81, 163, 82, + 34, 146, 148, 130, 179, 114, 210, 99, 210, 99, 225, 83, + 241, 83, 240, 99, 240, 99, 240, 99, 240, 99, 153, 67, + 195, 99, 195, 114, 195, 115, 179, 146, 163, 163, 98, 18, + 199, 65, 0, 30, 80, 46, 24, 0, 27, 9, 57, 99, + 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, + 147, 147, 147, 159, 147, 147, 147, 147, 147, 147, 147, 147, + 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 105, 57, + 0, 30, 48, 27, 12, 0, 13, 73, 99, 147, 147, 147, + 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, + 147, 147, 105, 0, 15, 48, 31, 15, 0, 17, 56, 163, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 83, 67, 83, 67, 83, 66, 113, 67, 133, 0, 19, + 96, 50, 25, 0, 28, 25, 102, 115, 163, 147, 161, 179, + 145, 195, 129, 211, 113, 227, 82, 243, 66, 240, 19, 51, + 240, 19, 37, 243, 17, 35, 244, 67, 227, 99, 211, 115, + 195, 115, 195, 131, 179, 147, 163, 148, 147, 149, 89, 88, + 0, 31, 80, 46, 20, 0, 22, 73, 227, 240, 35, 240, + 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, + 35, 240, 35, 240, 35, 240, 35, 161, 99, 161, 99, 161, + 99, 146, 99, 145, 115, 130, 115, 115, 79, 1, 0, 25, + 64, 79, 28, 0, 31, 70, 214, 99, 196, 145, 18, 161, + 19, 145, 18, 161, 19, 145, 18, 161, 19, 145, 34, 129, + 35, 145, 34, 129, 35, 145, 35, 113, 35, 145, 50, 97, + 51, 145, 50, 97, 51, 145, 66, 65, 67, 145, 66, 65, + 67, 145, 66, 65, 67, 145, 82, 33, 83, 145, 82, 33, + 83, 145, 83, 17, 83, 145, 99, 99, 145, 99, 99, 131, + 82, 115, 103, 65, 73, 0, 35, 48, 59, 24, 0, 27, + 6, 135, 100, 147, 132, 161, 145, 19, 145, 145, 35, 129, + 145, 36, 113, 145, 51, 113, 145, 67, 97, 145, 83, 81, + 145, 84, 65, 145, 99, 65, 145, 115, 49, 145, 131, 33, + 145, 132, 17, 145, 147, 17, 145, 164, 145, 179, 145, 179, + 131, 178, 103, 161, 0, 30, 96, 44, 23, 0, 26, 102, + 243, 67, 179, 131, 131, 163, 114, 194, 99, 195, 82, 226, + 67, 227, 51, 227, 51, 227, 51, 227, 51, 227, 51, 227, + 67, 210, 83, 195, 98, 194, 115, 163, 131, 131, 179, 67, + 246, 0, 30, 43, 21, 0, 23, 94, 163, 115, 131, 131, + 115, 147, 99, 147, 99, 147, 99, 147, 99, 147, 99, 131, + 115, 115, 139, 163, 240, 51, 240, 51, 240, 51, 240, 51, + 240, 51, 240, 51, 240, 51, 249, 0, 27, 96, 66, 23, + 0, 26, 102, 243, 67, 179, 131, 131, 163, 114, 194, 99, + 195, 82, 226, 67, 227, 51, 227, 51, 227, 51, 227, 51, + 227, 51, 227, 66, 226, 83, 195, 98, 68, 67, 99, 34, + 49, 50, 131, 17, 81, 18, 180, 67, 232, 65, 240, 18, + 65, 240, 19, 49, 240, 19, 34, 240, 37, 240, 53, 240, + 67, 0, 12, 16, 47, 25, 0, 28, 29, 243, 99, 211, + 115, 195, 131, 179, 131, 179, 131, 179, 131, 179, 115, 195, + 99, 218, 243, 83, 227, 99, 211, 115, 195, 115, 195, 115, + 195, 115, 195, 115, 195, 116, 65, 99, 131, 50, 57, 101, + 0, 31, 112, 41, 17, 0, 19, 85, 49, 98, 84, 82, + 115, 66, 146, 66, 146, 66, 161, 67, 145, 68, 231, 185, + 168, 213, 243, 49, 163, 49, 178, 49, 178, 50, 162, 51, + 130, 68, 98, 81, 54, 0, 22, 16, 52, 23, 0, 26, + 15, 4, 66, 99, 98, 65, 115, 113, 65, 115, 113, 65, + 115, 113, 65, 115, 113, 49, 131, 240, 83, 240, 83, 240, + 83, 240, 83, 240, 83, 240, 83, 240, 83, 240, 83, 240, + 83, 240, 83, 240, 83, 240, 83, 240, 27, 0, 29, 80, + 47, 24, 0, 27, 9, 87, 99, 163, 131, 177, 147, 177, + 147, 177, 147, 177, 147, 177, 147, 177, 147, 177, 147, 177, + 147, 177, 147, 177, 147, 177, 147, 177, 147, 177, 162, 162, + 163, 145, 195, 113, 227, 66, 240, 38, 0, 31, 32, 52, + 24, 0, 27, 7, 149, 84, 179, 115, 178, 131, 177, 163, + 161, 163, 145, 179, 145, 195, 113, 211, 113, 227, 97, 227, + 81, 240, 18, 81, 240, 19, 49, 240, 35, 49, 240, 51, + 17, 240, 67, 17, 240, 84, 240, 83, 240, 99, 240, 113, + 0, 31, 80, 78, 33, 0, 37, 23, 72, 86, 83, 132, + 131, 115, 147, 145, 147, 131, 145, 147, 131, 145, 147, 132, + 113, 179, 97, 19, 113, 179, 97, 34, 97, 210, 97, 35, + 81, 211, 65, 51, 81, 211, 65, 67, 49, 242, 65, 67, + 49, 243, 33, 83, 49, 243, 33, 99, 17, 240, 35, 17, + 99, 17, 240, 36, 115, 17, 240, 36, 131, 240, 67, 131, + 240, 66, 162, 240, 81, 161, 0, 42, 96, 50, 24, 0, + 27, 23, 87, 116, 116, 163, 114, 211, 97, 228, 66, 243, + 65, 240, 35, 33, 240, 53, 240, 84, 240, 99, 240, 100, + 240, 70, 240, 49, 35, 240, 33, 67, 241, 84, 210, 99, + 209, 131, 178, 147, 147, 148, 87, 104, 0, 30, 48, 50, + 26, 0, 29, 40, 150, 100, 179, 147, 177, 180, 146, 195, + 145, 227, 113, 244, 82, 240, 19, 81, 240, 51, 49, 240, + 68, 18, 240, 85, 240, 115, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 89, 0, 33, + 96, 40, 18, 0, 20, 47, 52, 116, 50, 147, 66, 131, + 81, 132, 81, 131, 97, 115, 243, 227, 227, 243, 227, 227, + 113, 114, 129, 99, 129, 83, 145, 82, 161, 67, 146, 51, + 132, 63, 0, 22, 112, 9, 23, 0, 51, 111, 5, 0, + 57, 112, 10, 43, 0, 96, 111, 15, 10, 0, 107, 112, + 21, 14, 240, 240, 18, 66, 83, 51, 82, 66, 83, 51, + 82, 66, 97, 81, 97, 81, 0, 53, 48, 15, 16, 0, + 6, 51, 97, 86, 50, 65, 70, 65, 100, 0, 64, 80,}; + +//***************************************************************************** +// +// The font definition for the 38 point Cmsc font. +// +//***************************************************************************** +const tFont g_sFontCmsc38 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 39, + + // + // The height of the font. + // + 39, + + // + // The baseline of the font. + // + 29, + + // + // The offset to each character in the font. + // + { + 0, 5, 36, 67, 174, 248, 353, 440, + 458, 500, 542, 578, 639, 657, 666, 677, + 758, 815, 849, 893, 948, 1005, 1060, 1119, + 1178, 1232, 1290, 1307, 1331, 1383, 1396, 1446, + 1489, 1585, 1660, 1720, 1792, 1863, 1928, 1988, + 2062, 2123, 2156, 2214, 2288, 2349, 2459, 2538, + 2615, 2674, 2780, 2848, 2906, 2973, 3036, 3110, + 3221, 3296, 3365, 3427, 3469, 3500, 3542, 3559, + 3569, 3587, 3640, 3684, 3731, 3776, 3823, 3868, + 3917, 3963, 3990, 4021, 4071, 4117, 4196, 4255, + 4299, 4342, 4408, 4455, 4496, 4548, 4595, 4647, + 4725, 4775, 4825, 4865, 4874, 4884, 4905, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmsc38Data +}; diff --git a/grlib/fonts/fontcmsc40.c b/grlib/fonts/fontcmsc40.c new file mode 100644 index 0000000..4afb512 --- /dev/null +++ b/grlib/fonts/fontcmsc40.c @@ -0,0 +1,543 @@ +//***************************************************************************** +// +// fontcmsc40.c - Font definition for the 40pt Cmsc font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmsc +// Size: 40 point +// Bold: no +// Italic: no +// Memory usage: 5440 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 40 point Cmsc font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmsc40Data[5238] = +{ + 5, 17, 0, 87, 16, 33, 8, 240, 34, 84, 68, 68, + 68, 68, 68, 68, 82, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 113, 240, 240, 130, 84, 68, 82, 0, + 10, 80, 31, 17, 0, 6, 67, 83, 85, 53, 69, 53, + 84, 68, 129, 113, 129, 113, 129, 113, 113, 113, 129, 113, + 113, 113, 129, 113, 113, 113, 0, 56, 16, 110, 34, 0, + 14, 66, 129, 240, 130, 129, 240, 129, 130, 240, 129, 130, + 240, 114, 129, 240, 130, 129, 240, 129, 130, 240, 114, 130, + 240, 114, 129, 240, 130, 129, 240, 129, 130, 240, 114, 130, + 240, 114, 129, 240, 129, 130, 207, 15, 226, 129, 240, 129, + 130, 240, 129, 130, 240, 114, 129, 240, 130, 129, 240, 129, + 130, 239, 15, 194, 129, 240, 129, 130, 240, 114, 130, 240, + 114, 129, 240, 129, 130, 240, 129, 130, 240, 114, 130, 240, + 114, 129, 240, 129, 130, 240, 129, 130, 240, 114, 129, 240, + 130, 129, 240, 129, 130, 240, 129, 130, 0, 10, 96, 80, + 20, 240, 209, 240, 65, 240, 23, 178, 49, 50, 130, 65, + 81, 98, 81, 97, 66, 97, 67, 66, 97, 67, 66, 97, + 67, 67, 81, 66, 83, 81, 196, 49, 198, 17, 217, 202, + 201, 231, 209, 36, 209, 52, 193, 67, 82, 81, 82, 68, + 65, 82, 68, 65, 82, 67, 81, 82, 65, 113, 82, 81, + 97, 66, 97, 97, 66, 113, 81, 50, 146, 49, 34, 198, + 240, 33, 240, 65, 0, 21, 48, 114, 34, 83, 240, 33, + 178, 49, 242, 162, 82, 195, 147, 98, 163, 163, 97, 18, + 100, 178, 129, 38, 34, 163, 129, 146, 179, 129, 130, 195, + 129, 130, 195, 129, 114, 211, 129, 98, 227, 129, 98, 242, + 129, 82, 240, 19, 97, 82, 240, 50, 97, 82, 240, 50, + 81, 82, 240, 82, 49, 82, 240, 131, 98, 129, 240, 114, + 99, 18, 240, 66, 98, 81, 240, 50, 83, 97, 240, 18, + 98, 113, 242, 99, 129, 226, 99, 129, 210, 115, 129, 194, + 131, 129, 194, 131, 129, 178, 147, 129, 162, 178, 114, 162, + 179, 97, 162, 210, 82, 146, 242, 50, 162, 240, 20, 0, + 35, 89, 33, 0, 9, 52, 240, 195, 49, 240, 163, 66, + 240, 146, 97, 240, 131, 97, 240, 131, 97, 240, 131, 97, + 240, 131, 81, 240, 147, 81, 240, 147, 65, 240, 164, 33, + 240, 195, 33, 240, 195, 17, 168, 164, 211, 227, 210, 229, + 193, 225, 35, 177, 225, 52, 161, 209, 84, 129, 210, 99, + 113, 210, 116, 97, 195, 132, 65, 211, 148, 33, 227, 166, + 227, 180, 161, 83, 179, 161, 84, 150, 113, 116, 83, 67, + 81, 182, 150, 0, 42, 16, 18, 9, 240, 211, 85, 69, + 84, 129, 129, 129, 113, 129, 113, 129, 113, 0, 30, 16, + 44, 14, 145, 194, 178, 178, 178, 178, 194, 178, 194, 179, + 178, 179, 179, 179, 178, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 195, 179, 179, 179, 194, 195, 194, 195, + 194, 195, 194, 210, 210, 210, 209, 64, 44, 14, 1, 225, + 225, 210, 210, 210, 194, 210, 195, 179, 194, 195, 179, 179, + 194, 195, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 178, 194, 179, 179, 178, 194, 178, 194, 178, 194, 178, 193, + 193, 193, 193, 208, 44, 19, 98, 240, 34, 240, 34, 240, + 34, 177, 82, 81, 82, 66, 67, 68, 34, 51, 115, 18, + 19, 179, 18, 242, 243, 18, 164, 18, 35, 99, 50, 52, + 66, 66, 67, 162, 240, 34, 240, 34, 240, 34, 0, 56, + 65, 32, 0, 25, 82, 240, 242, 240, 242, 240, 242, 240, + 242, 240, 242, 240, 242, 240, 242, 240, 242, 240, 242, 240, + 242, 240, 242, 240, 242, 240, 242, 240, 242, 240, 47, 13, + 240, 34, 240, 242, 240, 242, 240, 242, 240, 242, 240, 242, + 240, 242, 240, 242, 240, 242, 240, 242, 240, 242, 240, 242, + 240, 242, 0, 26, 16, 18, 9, 0, 30, 67, 85, 69, + 84, 129, 129, 129, 113, 129, 113, 129, 113, 240, 160, 9, + 15, 0, 39, 59, 75, 0, 34, 32, 11, 8, 0, 27, + 18, 84, 68, 82, 0, 10, 80, 85, 20, 241, 240, 50, + 240, 49, 240, 50, 240, 50, 240, 49, 240, 50, 240, 50, + 240, 49, 240, 50, 240, 50, 240, 34, 240, 50, 240, 49, + 240, 50, 240, 50, 240, 49, 240, 50, 240, 50, 240, 49, + 240, 50, 240, 49, 240, 50, 240, 50, 240, 49, 240, 50, + 240, 50, 240, 49, 240, 50, 240, 50, 240, 34, 240, 50, + 240, 49, 240, 50, 240, 50, 240, 49, 240, 50, 240, 50, + 240, 49, 240, 50, 240, 49, 240, 64, 59, 21, 0, 11, + 37, 226, 82, 178, 114, 146, 146, 130, 146, 114, 178, 98, + 178, 98, 179, 67, 179, 67, 179, 67, 179, 67, 179, 67, + 179, 67, 179, 67, 179, 67, 179, 67, 179, 67, 179, 67, + 179, 67, 179, 82, 178, 99, 147, 99, 147, 114, 146, 146, + 114, 178, 82, 214, 0, 27, 64, 35, 17, 0, 9, 49, + 227, 197, 148, 19, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 157, 0, 21, 96, 60, 21, 0, 11, 22, 210, + 84, 145, 132, 113, 164, 97, 164, 83, 164, 68, 148, 68, + 148, 82, 164, 240, 36, 240, 20, 240, 36, 240, 35, 240, + 35, 240, 35, 240, 35, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 145, 130, 161, 114, 162, 98, 177, 111, 95, + 1, 95, 1, 0, 26, 112, 58, 22, 0, 11, 87, 210, + 100, 145, 148, 115, 148, 100, 132, 100, 132, 114, 148, 240, + 51, 240, 67, 240, 51, 240, 51, 240, 51, 231, 240, 99, + 240, 83, 240, 83, 240, 68, 240, 68, 240, 52, 82, 180, + 68, 164, 68, 164, 68, 163, 83, 164, 98, 148, 131, 99, + 215, 0, 28, 96, 60, 22, 0, 12, 81, 240, 82, 240, + 67, 240, 52, 240, 52, 240, 33, 19, 240, 17, 35, 240, + 17, 35, 241, 51, 225, 67, 225, 67, 209, 83, 193, 99, + 193, 99, 177, 115, 161, 131, 146, 131, 145, 147, 129, 163, + 143, 3, 243, 240, 67, 240, 67, 240, 67, 240, 67, 240, + 67, 251, 0, 28, 58, 21, 0, 10, 99, 130, 140, 155, + 168, 209, 240, 81, 240, 81, 240, 81, 240, 81, 240, 81, + 240, 81, 54, 177, 18, 67, 162, 131, 129, 147, 240, 67, + 240, 51, 240, 52, 240, 36, 67, 164, 68, 148, 67, 164, + 67, 163, 81, 180, 97, 163, 129, 131, 162, 83, 213, 0, + 27, 80, 61, 22, 0, 12, 6, 227, 82, 178, 100, 147, + 100, 131, 116, 115, 131, 131, 240, 52, 240, 51, 240, 67, + 240, 52, 53, 164, 33, 67, 132, 17, 115, 101, 132, 85, + 147, 84, 164, 68, 164, 68, 164, 68, 164, 83, 164, 83, + 164, 83, 163, 114, 163, 115, 131, 147, 114, 179, 67, 230, + 0, 28, 96, 61, 22, 0, 11, 17, 240, 111, 2, 95, + 2, 95, 1, 82, 209, 97, 209, 113, 194, 113, 178, 240, + 81, 240, 81, 240, 82, 240, 66, 240, 82, 240, 66, 240, + 82, 240, 67, 240, 67, 240, 51, 240, 67, 240, 67, 240, + 67, 240, 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, + 66, 0, 29, 32, 56, 22, 0, 11, 102, 226, 98, 177, + 147, 129, 178, 129, 194, 98, 194, 98, 194, 99, 178, 101, + 130, 133, 98, 166, 50, 201, 231, 249, 194, 55, 130, 103, + 98, 149, 98, 180, 66, 211, 66, 226, 66, 226, 66, 226, + 67, 209, 98, 194, 114, 162, 147, 99, 199, 0, 28, 96, + 60, 22, 0, 11, 102, 227, 67, 179, 99, 147, 131, 115, + 147, 115, 163, 84, 163, 84, 163, 84, 164, 68, 164, 68, + 164, 68, 164, 83, 164, 83, 149, 99, 133, 115, 97, 20, + 131, 65, 36, 165, 52, 240, 51, 240, 67, 240, 52, 115, + 131, 116, 130, 132, 115, 131, 115, 162, 98, 230, 0, 29, + 17, 8, 0, 14, 18, 84, 68, 82, 0, 9, 98, 84, + 68, 82, 0, 10, 80, 24, 8, 0, 14, 3, 84, 68, + 67, 0, 9, 83, 84, 68, 68, 113, 113, 113, 97, 113, + 113, 97, 97, 240, 128, 54, 30, 0, 36, 98, 240, 180, + 240, 148, 240, 132, 240, 148, 240, 148, 240, 148, 240, 148, + 240, 147, 240, 148, 240, 148, 240, 148, 240, 180, 240, 212, + 240, 212, 240, 212, 240, 228, 240, 212, 240, 212, 240, 212, + 240, 212, 240, 213, 240, 212, 240, 210, 0, 30, 64, 13, + 32, 0, 68, 15, 13, 0, 24, 79, 13, 0, 64, 64, + 52, 30, 0, 33, 98, 240, 212, 240, 228, 240, 212, 240, + 212, 240, 212, 240, 212, 240, 228, 240, 212, 240, 212, 240, + 212, 240, 212, 240, 180, 240, 132, 240, 148, 240, 148, 240, + 148, 240, 148, 240, 132, 240, 148, 240, 148, 240, 148, 240, + 147, 0, 37, 16, 50, 19, 0, 7, 87, 162, 99, 113, + 162, 83, 147, 68, 131, 68, 131, 82, 147, 243, 243, 243, + 240, 18, 240, 18, 240, 18, 240, 33, 240, 34, 240, 33, + 240, 49, 240, 49, 240, 49, 240, 49, 0, 11, 83, 240, + 20, 244, 243, 0, 25, 16, 103, 32, 0, 13, 39, 240, + 130, 115, 240, 50, 194, 241, 242, 209, 240, 49, 177, 117, + 129, 145, 99, 66, 113, 129, 82, 114, 97, 113, 83, 129, + 113, 97, 67, 163, 65, 81, 83, 163, 66, 65, 67, 179, + 81, 65, 67, 179, 81, 65, 67, 179, 81, 65, 67, 179, + 81, 65, 67, 179, 81, 65, 67, 179, 81, 66, 67, 163, + 81, 81, 67, 163, 81, 81, 83, 132, 65, 113, 82, 117, + 65, 113, 99, 66, 35, 33, 145, 117, 84, 177, 240, 240, + 33, 240, 240, 34, 240, 19, 195, 164, 240, 58, 0, 41, + 64, 82, 33, 0, 10, 1, 240, 240, 19, 240, 243, 240, + 243, 240, 229, 240, 209, 19, 240, 194, 20, 240, 177, 36, + 240, 177, 51, 240, 162, 52, 240, 145, 68, 240, 145, 83, + 240, 129, 100, 240, 113, 115, 240, 113, 115, 240, 97, 132, + 240, 81, 147, 240, 66, 148, 240, 63, 240, 49, 179, 240, + 33, 196, 240, 17, 196, 240, 17, 211, 241, 228, 225, 228, + 225, 244, 194, 244, 180, 229, 121, 155, 0, 41, 96, 63, + 30, 0, 11, 47, 4, 243, 164, 211, 196, 179, 212, 163, + 212, 163, 228, 147, 228, 147, 228, 147, 228, 147, 212, 163, + 211, 179, 195, 195, 163, 238, 240, 19, 180, 195, 211, 179, + 227, 163, 228, 147, 244, 131, 244, 131, 244, 131, 244, 131, + 244, 131, 228, 147, 228, 147, 212, 163, 180, 143, 5, 0, + 38, 96, 77, 29, 0, 12, 39, 97, 196, 83, 50, 163, + 162, 34, 147, 212, 131, 228, 115, 240, 19, 100, 240, 34, + 99, 240, 50, 84, 240, 50, 84, 240, 65, 68, 240, 81, + 68, 240, 164, 240, 164, 240, 164, 240, 164, 240, 164, 240, + 164, 240, 180, 240, 65, 84, 240, 65, 99, 240, 65, 100, + 240, 33, 131, 240, 33, 147, 241, 179, 209, 212, 161, 240, + 20, 98, 240, 87, 0, 37, 80, 80, 32, 0, 12, 15, + 3, 240, 51, 164, 243, 195, 227, 212, 195, 228, 179, 243, + 179, 240, 19, 163, 240, 19, 163, 240, 20, 147, 240, 35, + 147, 240, 36, 131, 240, 36, 131, 240, 36, 131, 240, 36, + 131, 240, 36, 131, 240, 36, 131, 240, 36, 131, 240, 36, + 131, 240, 35, 147, 240, 20, 147, 240, 20, 147, 240, 19, + 163, 243, 179, 243, 179, 227, 195, 195, 227, 164, 191, 3, + 0, 41, 96, 77, 30, 0, 11, 47, 8, 180, 181, 164, + 211, 164, 226, 164, 226, 164, 241, 164, 241, 164, 241, 164, + 129, 97, 164, 129, 240, 36, 129, 240, 36, 129, 240, 36, + 114, 240, 45, 240, 36, 99, 240, 36, 129, 240, 36, 129, + 240, 36, 129, 129, 132, 129, 113, 148, 240, 17, 148, 240, + 17, 148, 240, 17, 148, 240, 17, 148, 242, 148, 226, 164, + 226, 164, 196, 111, 9, 0, 38, 32, 62, 28, 0, 10, + 79, 8, 148, 180, 148, 210, 148, 225, 148, 226, 132, 226, + 132, 241, 132, 241, 132, 241, 132, 129, 97, 132, 129, 244, + 129, 244, 129, 244, 114, 253, 244, 99, 244, 129, 244, 129, + 244, 129, 244, 129, 244, 240, 148, 240, 148, 240, 148, 240, + 148, 240, 148, 240, 148, 240, 93, 0, 36, 112, 79, 33, + 0, 13, 103, 113, 244, 98, 66, 212, 162, 19, 195, 213, + 179, 244, 163, 240, 35, 148, 240, 35, 147, 240, 66, 132, + 240, 66, 132, 240, 66, 131, 240, 97, 116, 240, 228, 240, + 228, 240, 228, 240, 228, 240, 228, 240, 228, 220, 84, 240, + 36, 132, 240, 36, 147, 240, 36, 148, 240, 20, 163, 240, + 20, 179, 244, 195, 213, 212, 177, 19, 244, 114, 50, 240, + 55, 113, 0, 42, 16, 63, 33, 0, 12, 60, 92, 132, + 212, 196, 212, 196, 212, 196, 212, 196, 212, 196, 212, 196, + 212, 196, 212, 196, 212, 196, 212, 196, 212, 196, 212, 207, + 6, 196, 212, 196, 212, 196, 212, 196, 212, 196, 212, 196, + 212, 196, 212, 196, 212, 196, 212, 196, 212, 196, 212, 196, + 212, 196, 212, 140, 92, 0, 41, 96, 35, 16, 0, 6, + 12, 132, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 140, 0, 20, 64, 60, 21, 0, 8, 76, + 243, 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, + 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, + 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, + 51, 240, 51, 130, 131, 116, 115, 116, 115, 116, 99, 146, + 115, 161, 84, 198, 0, 27, 96, 81, 34, 0, 12, 108, + 137, 148, 228, 196, 226, 228, 225, 244, 209, 240, 20, 178, + 240, 36, 162, 240, 52, 146, 240, 68, 130, 240, 84, 114, + 240, 100, 98, 240, 116, 83, 240, 116, 69, 240, 100, 54, + 240, 100, 33, 52, 240, 84, 17, 84, 240, 69, 100, 240, + 68, 132, 240, 52, 148, 240, 36, 148, 240, 36, 164, 240, + 20, 180, 244, 181, 228, 196, 228, 212, 212, 213, 196, 214, + 124, 123, 0, 43, 63, 27, 0, 10, 29, 240, 52, 240, + 132, 240, 132, 240, 132, 240, 132, 240, 132, 240, 132, 240, + 132, 240, 132, 240, 132, 240, 132, 240, 132, 240, 132, 240, + 132, 240, 132, 240, 132, 240, 132, 225, 132, 225, 132, 225, + 132, 225, 132, 210, 132, 210, 132, 209, 148, 194, 148, 179, + 148, 149, 95, 7, 0, 34, 48, 114, 38, 0, 14, 40, + 240, 56, 132, 240, 52, 193, 19, 240, 17, 19, 193, 19, + 240, 17, 19, 193, 19, 240, 17, 19, 193, 35, 225, 35, + 193, 35, 225, 35, 193, 51, 193, 51, 193, 51, 193, 51, + 193, 51, 193, 51, 193, 67, 161, 67, 193, 67, 161, 67, + 193, 67, 145, 83, 193, 83, 129, 83, 193, 83, 129, 83, + 193, 99, 97, 99, 193, 99, 97, 99, 193, 99, 81, 115, + 193, 115, 65, 115, 193, 115, 65, 115, 193, 131, 33, 131, + 193, 131, 33, 131, 193, 131, 33, 131, 193, 148, 147, 193, + 148, 147, 193, 147, 163, 179, 146, 163, 137, 98, 107, 0, + 48, 83, 32, 0, 12, 8, 185, 133, 211, 181, 225, 193, + 20, 209, 193, 36, 193, 193, 36, 193, 193, 52, 177, 193, + 68, 161, 193, 83, 161, 193, 84, 145, 193, 100, 129, 193, + 116, 113, 193, 116, 113, 193, 132, 97, 193, 148, 81, 193, + 148, 81, 193, 164, 65, 193, 180, 49, 193, 180, 49, 193, + 196, 33, 193, 212, 17, 193, 229, 193, 229, 193, 244, 193, + 240, 19, 193, 240, 19, 179, 240, 18, 137, 225, 0, 41, + 83, 32, 0, 13, 40, 240, 115, 99, 240, 51, 163, 243, + 195, 211, 227, 179, 240, 19, 147, 240, 51, 131, 240, 51, + 116, 240, 52, 99, 240, 83, 84, 240, 84, 68, 240, 84, + 68, 240, 84, 68, 240, 84, 68, 240, 84, 68, 240, 84, + 68, 240, 84, 68, 240, 84, 84, 240, 52, 100, 240, 52, + 115, 240, 51, 132, 240, 20, 147, 240, 19, 179, 227, 211, + 195, 243, 163, 240, 51, 99, 240, 120, 0, 41, 96, 61, + 29, 0, 10, 127, 3, 243, 164, 195, 195, 179, 211, 163, + 227, 147, 228, 131, 228, 131, 228, 131, 228, 131, 228, 131, + 227, 147, 211, 163, 195, 179, 164, 206, 243, 240, 179, 240, + 179, 240, 179, 240, 179, 240, 179, 240, 179, 240, 179, 240, + 179, 240, 179, 240, 179, 240, 179, 240, 124, 0, 38, 48, + 110, 32, 0, 13, 39, 240, 131, 84, 240, 51, 148, 243, + 195, 211, 227, 179, 240, 19, 148, 240, 20, 131, 240, 51, + 116, 240, 52, 100, 240, 52, 99, 240, 84, 68, 240, 84, + 68, 240, 84, 68, 240, 84, 68, 240, 84, 68, 240, 84, + 68, 240, 84, 68, 240, 84, 83, 240, 83, 100, 240, 52, + 100, 240, 51, 131, 240, 51, 147, 100, 99, 163, 81, 50, + 67, 195, 49, 82, 35, 242, 33, 97, 19, 240, 37, 83, + 240, 121, 129, 240, 99, 113, 240, 114, 113, 240, 115, 82, + 240, 116, 51, 240, 136, 240, 152, 240, 166, 240, 196, 0, + 8, 112, 73, 33, 0, 12, 63, 2, 240, 83, 147, 240, + 51, 179, 240, 19, 195, 243, 196, 227, 212, 211, 212, 211, + 212, 211, 212, 211, 212, 211, 196, 227, 195, 243, 179, 240, + 19, 147, 240, 61, 240, 83, 132, 240, 51, 163, 240, 35, + 164, 240, 19, 180, 243, 180, 243, 180, 243, 180, 243, 180, + 243, 181, 227, 181, 81, 131, 196, 81, 131, 212, 49, 105, + 197, 0, 42, 60, 23, 0, 9, 54, 65, 147, 83, 33, + 131, 132, 115, 163, 114, 194, 99, 194, 99, 194, 99, 209, + 100, 193, 101, 177, 117, 240, 56, 240, 28, 205, 204, 249, + 240, 53, 240, 69, 240, 68, 65, 243, 65, 243, 66, 227, + 66, 227, 67, 210, 83, 195, 85, 147, 98, 35, 99, 113, + 102, 0, 30, 72, 32, 0, 12, 31, 11, 111, 11, 99, + 132, 131, 98, 148, 146, 97, 164, 161, 97, 164, 162, 66, + 164, 162, 65, 180, 177, 65, 180, 177, 65, 180, 177, 240, + 20, 240, 212, 240, 212, 240, 212, 240, 212, 240, 212, 240, + 212, 240, 212, 240, 212, 240, 212, 240, 212, 240, 212, 240, + 212, 240, 212, 240, 212, 240, 212, 240, 213, 240, 111, 1, + 0, 41, 32, 66, 32, 0, 12, 12, 121, 132, 227, 180, + 241, 196, 241, 196, 241, 196, 241, 196, 241, 196, 241, 196, + 241, 196, 241, 196, 241, 196, 241, 196, 241, 196, 241, 196, + 241, 196, 241, 196, 241, 196, 241, 196, 241, 196, 241, 196, + 241, 211, 225, 228, 209, 243, 194, 240, 19, 177, 240, 51, + 145, 240, 84, 82, 240, 135, 0, 41, 96, 84, 34, 0, + 12, 107, 184, 132, 240, 20, 164, 240, 18, 211, 240, 18, + 212, 241, 228, 241, 244, 210, 244, 209, 240, 35, 194, 240, + 36, 177, 240, 67, 177, 240, 68, 146, 240, 68, 145, 240, + 99, 130, 240, 100, 113, 240, 131, 113, 240, 132, 82, 240, + 132, 81, 240, 163, 66, 240, 164, 49, 240, 195, 49, 240, + 196, 18, 240, 196, 17, 240, 229, 240, 228, 240, 240, 19, + 240, 240, 19, 240, 240, 18, 0, 44, 96, 120, 46, 0, + 17, 43, 91, 105, 117, 181, 196, 164, 195, 225, 196, 196, + 209, 211, 196, 194, 212, 180, 193, 228, 181, 177, 243, 181, + 161, 240, 20, 145, 35, 161, 240, 20, 145, 36, 145, 240, + 35, 145, 36, 129, 240, 52, 113, 67, 129, 240, 52, 113, + 68, 113, 240, 67, 113, 68, 97, 240, 84, 81, 99, 97, + 240, 84, 81, 100, 81, 240, 99, 81, 100, 65, 240, 116, + 49, 132, 49, 240, 116, 49, 132, 49, 240, 131, 49, 132, + 33, 240, 148, 17, 164, 17, 240, 148, 17, 164, 17, 240, + 163, 17, 180, 240, 180, 196, 240, 180, 196, 240, 195, 210, + 240, 210, 226, 240, 225, 226, 0, 59, 64, 79, 33, 0, + 12, 59, 121, 165, 165, 228, 178, 240, 20, 177, 240, 52, + 146, 240, 68, 114, 240, 85, 97, 240, 116, 82, 240, 132, + 50, 240, 149, 33, 240, 180, 18, 240, 197, 240, 213, 240, + 228, 240, 229, 240, 214, 240, 177, 36, 240, 162, 52, 240, + 145, 84, 240, 113, 100, 240, 98, 116, 240, 66, 148, 240, + 49, 164, 240, 34, 180, 242, 212, 226, 212, 197, 197, 137, + 155, 0, 41, 96, 83, 34, 0, 12, 107, 169, 117, 244, + 180, 242, 228, 225, 244, 210, 240, 20, 193, 240, 37, 162, + 240, 52, 146, 240, 84, 129, 240, 100, 114, 240, 116, 97, + 240, 148, 65, 240, 164, 50, 240, 180, 33, 240, 211, 17, + 240, 229, 240, 243, 240, 240, 19, 240, 240, 19, 240, 240, + 19, 240, 240, 19, 240, 240, 19, 240, 240, 19, 240, 240, + 19, 240, 240, 19, 240, 240, 19, 240, 240, 19, 240, 203, + 0, 44, 32, 64, 25, 0, 9, 79, 5, 85, 165, 83, + 196, 98, 196, 114, 181, 113, 196, 129, 180, 145, 180, 145, + 164, 240, 84, 240, 100, 240, 84, 240, 84, 240, 100, 240, + 84, 240, 85, 240, 84, 240, 84, 161, 164, 161, 148, 177, + 132, 193, 132, 193, 116, 194, 100, 210, 100, 195, 84, 196, + 68, 182, 79, 6, 0, 31, 96, 43, 10, 166, 66, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 134, 64, 31, 17, 0, 6, 97, 113, 113, 114, 113, 113, + 113, 113, 129, 113, 113, 113, 129, 113, 129, 113, 132, 68, + 85, 53, 84, 68, 83, 83, 0, 55, 112, 43, 10, 166, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 70, 64, 17, 15, 0, 6, 33, 211, 178, 18, + 146, 50, 113, 113, 81, 145, 0, 60, 64, 11, 8, 240, + 240, 50, 84, 68, 82, 0, 33, 80, 18, 9, 240, 241, + 114, 113, 113, 129, 113, 129, 129, 132, 85, 84, 83, 0, + 29, 112, 56, 26, 0, 30, 66, 240, 146, 240, 147, 240, + 116, 240, 116, 240, 97, 35, 240, 81, 35, 240, 81, 35, + 240, 65, 67, 240, 49, 67, 240, 49, 68, 240, 17, 99, + 240, 17, 99, 241, 131, 236, 225, 131, 209, 163, 193, 163, + 178, 179, 162, 179, 147, 180, 102, 136, 0, 33, 46, 23, + 0, 28, 110, 195, 115, 163, 131, 147, 147, 131, 147, 131, + 147, 131, 147, 131, 147, 131, 131, 147, 115, 171, 195, 131, + 147, 147, 131, 162, 131, 163, 115, 163, 115, 163, 115, 163, + 115, 147, 131, 131, 111, 0, 29, 96, 51, 24, 0, 31, + 6, 81, 163, 82, 34, 131, 148, 114, 195, 99, 210, 83, + 226, 83, 241, 82, 240, 17, 67, 240, 99, 240, 99, 240, + 99, 240, 99, 240, 99, 240, 17, 83, 241, 83, 241, 99, + 209, 131, 193, 147, 161, 180, 98, 246, 0, 31, 32, 47, + 25, 0, 31, 47, 211, 116, 179, 147, 163, 163, 147, 178, + 147, 179, 131, 194, 131, 195, 115, 195, 115, 195, 115, 195, + 115, 195, 115, 195, 115, 195, 115, 194, 131, 179, 131, 178, + 147, 163, 147, 147, 163, 115, 158, 0, 32, 80, 50, 23, + 0, 28, 111, 3, 131, 147, 131, 162, 131, 177, 131, 177, + 131, 177, 131, 97, 65, 131, 97, 211, 97, 211, 82, 218, + 211, 82, 211, 97, 211, 97, 81, 115, 193, 115, 193, 115, + 193, 115, 178, 115, 178, 115, 148, 79, 3, 0, 29, 48, + 47, 22, 0, 27, 79, 3, 115, 147, 115, 162, 115, 177, + 115, 177, 115, 177, 115, 97, 65, 115, 97, 195, 97, 195, + 82, 202, 195, 82, 195, 97, 195, 97, 195, 97, 195, 240, + 67, 240, 67, 240, 67, 240, 67, 240, 26, 0, 29, 52, + 26, 0, 33, 70, 81, 180, 82, 34, 162, 164, 146, 195, + 131, 210, 115, 226, 115, 241, 99, 240, 17, 99, 240, 131, + 240, 131, 240, 131, 240, 131, 169, 82, 227, 115, 211, 115, + 211, 131, 195, 147, 179, 163, 148, 195, 98, 18, 231, 65, + 0, 33, 32, 48, 25, 0, 31, 41, 57, 115, 147, 163, + 147, 163, 147, 163, 147, 163, 147, 163, 147, 163, 147, 163, + 147, 163, 147, 175, 163, 147, 163, 147, 163, 147, 163, 147, + 163, 147, 163, 147, 163, 147, 163, 147, 163, 147, 121, 57, + 0, 31, 96, 28, 13, 0, 16, 41, 115, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 121, 0, 16, 96, 32, 17, 0, 21, 105, + 195, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 99, 83, 99, 83, 99, 82, 129, 67, 165, + 0, 22, 64, 54, 26, 0, 32, 73, 118, 115, 164, 147, + 162, 179, 146, 195, 130, 211, 114, 227, 98, 243, 81, 240, + 35, 66, 240, 35, 52, 240, 19, 33, 19, 240, 19, 17, + 51, 244, 83, 227, 100, 211, 115, 211, 131, 195, 147, 179, + 147, 179, 163, 163, 164, 105, 103, 0, 33, 48, 21, 0, + 26, 42, 227, 240, 51, 240, 51, 240, 51, 240, 51, 240, + 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, + 51, 240, 51, 161, 115, 161, 115, 161, 115, 161, 115, 146, + 115, 146, 115, 116, 79, 2, 0, 26, 96, 83, 31, 0, + 38, 102, 246, 116, 212, 161, 18, 193, 19, 161, 18, 193, + 19, 161, 19, 177, 19, 161, 34, 161, 35, 161, 35, 145, + 35, 161, 50, 129, 51, 161, 50, 129, 51, 161, 51, 113, + 51, 161, 66, 97, 67, 161, 67, 81, 67, 161, 82, 65, + 83, 161, 82, 65, 83, 161, 83, 49, 83, 161, 98, 33, + 99, 161, 99, 17, 99, 161, 115, 115, 161, 115, 115, 147, + 99, 115, 119, 81, 89, 0, 39, 32, 62, 25, 0, 31, + 38, 135, 116, 147, 148, 161, 161, 19, 145, 161, 35, 129, + 161, 35, 129, 161, 51, 113, 161, 67, 97, 161, 68, 81, + 161, 83, 81, 161, 99, 65, 161, 100, 49, 161, 115, 49, + 161, 131, 33, 161, 147, 17, 161, 147, 17, 161, 164, 161, + 179, 161, 179, 147, 178, 119, 161, 0, 32, 16, 49, 25, + 0, 32, 23, 240, 19, 83, 210, 146, 178, 178, 146, 210, + 115, 211, 99, 226, 83, 243, 67, 243, 67, 243, 67, 243, + 67, 243, 67, 243, 67, 243, 83, 211, 99, 211, 115, 194, + 146, 178, 178, 146, 211, 83, 240, 23, 0, 32, 80, 46, + 22, 0, 27, 78, 179, 115, 147, 131, 131, 147, 115, 147, + 115, 147, 115, 147, 115, 147, 115, 131, 131, 115, 155, 179, + 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, + 240, 67, 240, 67, 240, 25, 0, 29, 16, 69, 25, 0, + 32, 38, 240, 19, 83, 210, 146, 178, 178, 147, 194, 115, + 211, 99, 211, 83, 243, 67, 243, 67, 243, 67, 243, 67, + 243, 67, 243, 67, 243, 83, 211, 99, 211, 115, 67, 82, + 146, 49, 49, 51, 162, 33, 65, 19, 196, 67, 240, 24, + 81, 240, 50, 65, 240, 51, 34, 240, 55, 240, 54, 240, + 85, 240, 99, 0, 13, 32, 51, 26, 0, 32, 77, 240, + 19, 99, 227, 115, 211, 131, 195, 131, 195, 131, 195, 131, + 195, 130, 211, 115, 211, 99, 234, 240, 19, 83, 243, 99, + 227, 115, 211, 115, 211, 115, 211, 115, 211, 115, 211, 116, + 65, 115, 131, 50, 73, 101, 0, 33, 32, 43, 18, 0, + 23, 5, 49, 114, 84, 98, 115, 97, 146, 82, 146, 82, + 161, 83, 145, 84, 245, 232, 185, 199, 243, 240, 19, 65, + 178, 65, 178, 65, 178, 66, 161, 83, 130, 85, 82, 97, + 54, 0, 23, 64, 54, 25, 0, 31, 63, 4, 83, 99, + 99, 66, 115, 114, 66, 115, 114, 65, 131, 129, 65, 131, + 129, 65, 131, 129, 211, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 59, 0, 32, 48, 49, 25, + 0, 31, 41, 87, 115, 163, 147, 177, 163, 177, 163, 177, + 163, 177, 163, 177, 163, 177, 163, 177, 163, 177, 163, 177, + 163, 177, 163, 177, 163, 177, 163, 177, 163, 177, 178, 161, + 195, 145, 211, 113, 243, 66, 240, 54, 0, 32, 80, 57, + 27, 0, 33, 104, 150, 100, 195, 147, 194, 163, 193, 195, + 177, 195, 161, 227, 145, 227, 129, 244, 113, 240, 19, 113, + 240, 19, 97, 240, 51, 81, 240, 51, 65, 240, 83, 49, + 240, 83, 33, 240, 99, 33, 240, 115, 17, 240, 116, 240, + 147, 240, 146, 240, 177, 0, 35, 80, 85, 36, 0, 45, + 8, 72, 87, 100, 132, 147, 147, 147, 146, 163, 147, 145, + 179, 147, 145, 195, 132, 129, 195, 113, 19, 113, 211, 113, + 19, 113, 227, 97, 35, 97, 227, 81, 51, 81, 243, 81, + 51, 81, 240, 19, 65, 67, 65, 240, 19, 49, 83, 49, + 240, 50, 49, 99, 33, 240, 51, 18, 99, 33, 240, 51, + 17, 115, 17, 240, 84, 132, 240, 83, 147, 240, 99, 147, + 240, 114, 162, 240, 113, 177, 0, 46, 96, 56, 26, 0, + 32, 88, 87, 133, 116, 180, 114, 227, 113, 240, 19, 82, + 240, 20, 65, 240, 51, 49, 240, 83, 17, 240, 101, 240, + 115, 240, 147, 240, 117, 240, 97, 20, 240, 65, 51, 240, + 49, 83, 240, 18, 84, 241, 115, 225, 147, 194, 148, 163, + 149, 103, 120, 0, 33, 53, 27, 0, 33, 104, 150, 101, + 179, 148, 178, 179, 177, 211, 145, 228, 114, 243, 113, 240, + 35, 81, 240, 52, 50, 240, 68, 33, 240, 99, 17, 240, + 117, 240, 131, 240, 147, 240, 147, 240, 147, 240, 147, 240, + 147, 240, 147, 240, 147, 240, 105, 0, 35, 16, 50, 20, + 0, 25, 15, 1, 68, 132, 67, 147, 82, 147, 97, 148, + 97, 147, 113, 131, 240, 19, 240, 35, 240, 19, 240, 19, + 240, 35, 240, 19, 240, 19, 129, 131, 129, 115, 145, 99, + 161, 99, 161, 83, 162, 67, 148, 79, 1, 0, 25, 64, + 8, 25, 0, 62, 79, 6, 0, 63, 10, 46, 0, 115, + 15, 15, 12, 0, 115, 64, 21, 16, 0, 6, 50, 82, + 99, 67, 99, 67, 83, 67, 98, 82, 113, 97, 114, 82, + 0, 62, 112, 15, 18, 0, 9, 51, 113, 102, 65, 97, + 70, 97, 115, 0, 75, 16, +}; + +//***************************************************************************** +// +// The font definition for the 40 point Cmsc font. +// +//***************************************************************************** +const tFont g_sFontCmsc40 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 41, + + // + // The height of the font. + // + 41, + + // + // The baseline of the font. + // + 31, + + // + // The offset to each character in the font. + // + { + 0, 5, 38, 69, 179, 259, 373, 462, + 480, 524, 568, 612, 677, 695, 704, 715, + 800, 859, 894, 954, 1012, 1072, 1130, 1191, + 1252, 1308, 1368, 1385, 1409, 1463, 1476, 1528, + 1578, 1681, 1763, 1826, 1903, 1983, 2060, 2122, + 2201, 2264, 2299, 2359, 2440, 2503, 2617, 2700, + 2783, 2844, 2954, 3027, 3087, 3159, 3225, 3309, + 3429, 3508, 3591, 3655, 3698, 3729, 3772, 3789, + 3800, 3818, 3874, 3920, 3971, 4018, 4068, 4115, + 4167, 4215, 4243, 4275, 4329, 4377, 4460, 4522, + 4571, 4617, 4686, 4737, 4780, 4834, 4883, 4940, + 5025, 5081, 5134, 5184, 5192, 5202, 5223, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmsc40Data +}; diff --git a/grlib/fonts/fontcmsc42.c b/grlib/fonts/fontcmsc42.c new file mode 100644 index 0000000..75460f3 --- /dev/null +++ b/grlib/fonts/fontcmsc42.c @@ -0,0 +1,573 @@ +//***************************************************************************** +// +// fontcmsc42.c - Font definition for the 42pt Cmsc font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmsc +// Size: 42 point +// Bold: no +// Italic: no +// Memory usage: 5796 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 42 point Cmsc font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmsc42Data[5595] = +{ + 5, 17, 0, 91, 48, 34, 8, 146, 84, 68, 68, 68, + 68, 68, 68, 68, 82, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 240, 240, 130, 84, 68, 68, 82, + 0, 11, 80, 33, 18, 0, 6, 115, 98, 100, 84, 85, + 69, 69, 69, 82, 17, 67, 17, 129, 129, 129, 129, 129, + 129, 113, 129, 114, 113, 129, 114, 98, 114, 0, 63, 112, + 115, 36, 0, 15, 50, 145, 240, 146, 130, 240, 145, 146, + 240, 130, 145, 240, 146, 130, 240, 146, 130, 240, 145, 146, + 240, 130, 130, 240, 146, 130, 240, 145, 146, 240, 130, 145, + 240, 146, 130, 240, 146, 130, 240, 145, 146, 207, 15, 2, + 242, 130, 240, 145, 145, 240, 146, 145, 240, 146, 130, 240, + 146, 130, 240, 145, 145, 240, 146, 130, 255, 15, 2, 194, + 145, 240, 146, 130, 240, 146, 130, 240, 145, 146, 240, 130, + 145, 240, 146, 130, 240, 146, 130, 240, 130, 145, 240, 146, + 130, 240, 146, 130, 240, 145, 146, 240, 130, 145, 240, 146, + 130, 240, 146, 130, 0, 15, 112, 81, 21, 240, 225, 240, + 81, 240, 40, 178, 49, 66, 130, 65, 97, 98, 81, 97, + 82, 97, 83, 66, 97, 68, 66, 97, 68, 67, 81, 82, + 83, 81, 211, 65, 213, 33, 232, 233, 218, 217, 232, 209, + 52, 209, 68, 193, 83, 82, 81, 98, 68, 65, 98, 68, + 65, 98, 67, 81, 98, 65, 113, 97, 97, 97, 82, 97, + 97, 81, 129, 81, 66, 146, 49, 35, 199, 240, 33, 240, + 81, 0, 25, 16, 122, 36, 84, 240, 49, 178, 50, 240, + 18, 162, 82, 227, 147, 99, 179, 163, 97, 19, 116, 178, + 129, 55, 33, 179, 129, 178, 179, 129, 162, 195, 129, 146, + 211, 129, 146, 211, 129, 130, 227, 129, 114, 240, 18, 129, + 113, 240, 35, 97, 114, 240, 50, 97, 98, 240, 66, 81, + 98, 240, 98, 49, 114, 240, 131, 114, 145, 240, 130, 130, + 18, 240, 98, 98, 81, 240, 66, 114, 97, 240, 34, 114, + 113, 240, 18, 130, 129, 242, 115, 129, 226, 131, 129, 210, + 147, 129, 210, 147, 129, 194, 163, 129, 178, 179, 129, 162, + 210, 113, 178, 211, 97, 162, 242, 82, 146, 240, 34, 50, + 162, 240, 52, 0, 41, 64, 96, 34, 240, 240, 227, 240, + 227, 33, 240, 195, 50, 240, 178, 81, 240, 163, 81, 240, + 163, 81, 240, 163, 81, 240, 163, 81, 240, 163, 65, 240, + 179, 65, 240, 179, 49, 240, 211, 33, 240, 211, 17, 240, + 228, 169, 179, 212, 243, 210, 244, 209, 241, 35, 177, 241, + 51, 161, 241, 83, 145, 225, 99, 129, 225, 131, 98, 210, + 132, 81, 211, 147, 65, 227, 163, 33, 243, 166, 161, 68, + 164, 177, 83, 180, 161, 99, 145, 20, 129, 132, 82, 68, + 66, 183, 134, 0, 47, 96, 19, 9, 240, 211, 84, 85, + 69, 82, 17, 129, 129, 129, 113, 114, 113, 98, 0, 32, + 48, 46, 15, 146, 194, 194, 194, 194, 210, 194, 210, 194, + 210, 195, 194, 195, 195, 195, 194, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 210, 211, 195, 195, 210, 211, + 195, 210, 211, 210, 226, 211, 210, 226, 226, 226, 64, 46, + 14, 1, 210, 210, 210, 210, 194, 210, 195, 194, 195, 179, + 194, 195, 179, 179, 195, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 178, 194, 179, 179, 178, 194, 179, 178, + 194, 178, 193, 194, 178, 178, 178, 193, 208, 47, 20, 114, + 240, 50, 240, 50, 240, 50, 193, 82, 81, 83, 66, 67, + 83, 50, 51, 131, 18, 19, 195, 18, 240, 18, 240, 19, + 18, 179, 34, 35, 100, 50, 52, 67, 66, 82, 178, 240, + 50, 240, 50, 240, 50, 0, 63, 112, 93, 34, 0, 27, + 34, 240, 240, 34, 240, 240, 34, 240, 240, 34, 240, 240, + 34, 240, 240, 34, 240, 240, 34, 240, 240, 34, 240, 240, + 34, 240, 240, 34, 240, 240, 34, 240, 240, 34, 240, 240, + 34, 240, 240, 34, 240, 240, 34, 240, 63, 15, 240, 50, + 240, 240, 34, 240, 240, 34, 240, 240, 34, 240, 240, 34, + 240, 240, 34, 240, 240, 34, 240, 240, 34, 240, 240, 34, + 240, 240, 34, 240, 240, 34, 240, 240, 34, 240, 240, 34, + 240, 240, 34, 0, 32, 20, 9, 0, 30, 67, 84, 85, + 69, 84, 129, 129, 129, 113, 129, 113, 114, 113, 240, 240, + 64, 9, 16, 0, 44, 12, 76, 0, 38, 64, 12, 8, + 0, 27, 18, 84, 68, 68, 82, 0, 11, 80, 89, 21, + 242, 240, 66, 240, 65, 240, 66, 240, 66, 240, 65, 240, + 66, 240, 66, 240, 50, 240, 66, 240, 65, 240, 66, 240, + 66, 240, 65, 240, 66, 240, 66, 240, 50, 240, 66, 240, + 66, 240, 50, 240, 66, 240, 65, 240, 66, 240, 66, 240, + 50, 240, 66, 240, 66, 240, 50, 240, 66, 240, 65, 240, + 66, 240, 66, 240, 65, 240, 66, 240, 66, 240, 50, 240, + 66, 240, 65, 240, 66, 240, 66, 240, 65, 240, 66, 240, + 66, 240, 64, 63, 22, 0, 9, 6, 227, 67, 178, 130, + 146, 162, 130, 162, 115, 163, 98, 194, 98, 194, 83, 195, + 67, 195, 67, 195, 67, 195, 67, 195, 67, 195, 67, 195, + 67, 195, 67, 195, 67, 195, 67, 195, 67, 195, 67, 195, + 82, 194, 99, 178, 99, 163, 114, 162, 131, 131, 146, 130, + 179, 67, 230, 0, 31, 64, 61, 19, 0, 8, 17, 240, + 19, 229, 165, 19, 240, 19, 240, 19, 240, 19, 240, 19, + 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, + 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, + 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, + 240, 19, 245, 159, 0, 26, 80, 65, 22, 0, 8, 119, + 225, 84, 162, 131, 145, 148, 113, 180, 97, 180, 83, 180, + 68, 164, 68, 164, 68, 164, 82, 180, 240, 52, 240, 36, + 240, 52, 240, 36, 240, 51, 240, 51, 240, 51, 240, 51, + 240, 50, 240, 66, 240, 66, 240, 66, 161, 130, 177, 114, + 178, 98, 193, 111, 1, 111, 1, 95, 2, 0, 30, 112, + 62, 21, 0, 8, 85, 226, 67, 177, 115, 145, 147, 114, + 147, 115, 132, 100, 116, 100, 116, 114, 132, 240, 35, 240, + 51, 240, 35, 240, 50, 240, 35, 230, 240, 83, 240, 68, + 240, 52, 240, 36, 240, 52, 240, 36, 82, 164, 68, 148, + 68, 148, 68, 147, 83, 148, 97, 163, 131, 84, 198, 0, + 30, 16, 70, 24, 0, 10, 97, 240, 114, 240, 99, 240, + 99, 240, 84, 240, 65, 19, 240, 65, 19, 240, 49, 35, + 240, 33, 51, 240, 33, 51, 240, 17, 67, 241, 83, 241, + 83, 225, 99, 210, 99, 209, 115, 193, 131, 178, 131, 177, + 147, 161, 163, 146, 163, 159, 5, 240, 19, 240, 99, 240, + 99, 240, 99, 240, 99, 240, 99, 240, 43, 0, 33, 80, + 60, 22, 0, 11, 46, 141, 155, 177, 23, 209, 240, 97, + 240, 97, 240, 97, 240, 97, 240, 97, 240, 97, 54, 193, + 18, 83, 163, 115, 146, 147, 240, 68, 240, 67, 240, 68, + 240, 52, 240, 52, 67, 180, 68, 164, 68, 164, 67, 179, + 81, 196, 97, 179, 129, 147, 162, 84, 214, 0, 31, 80, + 64, 23, 0, 9, 102, 243, 67, 179, 129, 163, 116, 146, + 132, 131, 132, 115, 147, 131, 240, 68, 240, 67, 240, 83, + 240, 68, 54, 164, 33, 83, 132, 17, 115, 117, 147, 101, + 163, 84, 179, 84, 180, 68, 180, 68, 180, 68, 180, 83, + 180, 83, 180, 83, 179, 115, 163, 130, 147, 147, 115, 194, + 83, 245, 0, 33, 63, 23, 0, 11, 81, 240, 127, 3, + 79, 3, 95, 2, 98, 210, 97, 210, 113, 209, 129, 193, + 240, 98, 240, 82, 240, 82, 240, 97, 240, 98, 240, 97, + 240, 98, 240, 98, 240, 83, 240, 82, 240, 83, 240, 83, + 240, 83, 240, 68, 240, 68, 240, 68, 240, 68, 240, 68, + 240, 68, 240, 82, 0, 33, 64, 62, 23, 0, 9, 70, + 226, 99, 178, 146, 146, 178, 129, 210, 98, 210, 98, 210, + 99, 194, 100, 162, 133, 130, 134, 98, 167, 50, 201, 240, + 23, 240, 25, 194, 56, 146, 103, 114, 149, 98, 181, 66, + 227, 66, 227, 66, 242, 66, 242, 66, 242, 82, 225, 99, + 194, 115, 162, 163, 98, 231, 0, 32, 112, 66, 23, 0, + 9, 70, 242, 82, 195, 114, 163, 146, 147, 147, 115, 163, + 115, 179, 84, 179, 84, 179, 84, 180, 68, 180, 68, 180, + 68, 180, 68, 180, 83, 165, 84, 149, 99, 129, 20, 115, + 113, 20, 131, 66, 36, 165, 67, 240, 83, 240, 83, 240, + 67, 131, 147, 116, 131, 132, 130, 148, 114, 178, 99, 231, + 0, 33, 16, 19, 8, 0, 13, 18, 84, 68, 68, 82, + 0, 9, 98, 84, 68, 68, 82, 0, 11, 80, 27, 9, + 0, 14, 99, 100, 69, 84, 83, 0, 10, 115, 100, 69, + 84, 84, 129, 129, 129, 113, 129, 114, 113, 113, 240, 240, + 64, 56, 31, 0, 38, 2, 240, 196, 240, 164, 240, 149, + 240, 148, 240, 164, 240, 164, 240, 164, 240, 164, 240, 148, + 240, 164, 240, 164, 240, 179, 240, 228, 240, 228, 240, 228, + 240, 229, 240, 228, 240, 228, 240, 228, 240, 228, 240, 228, + 240, 229, 240, 228, 240, 226, 0, 35, 48, 13, 33, 0, + 70, 31, 14, 0, 29, 63, 14, 0, 70, 80, 56, 31, + 0, 34, 114, 240, 228, 240, 229, 240, 228, 240, 228, 240, + 228, 240, 228, 240, 229, 240, 228, 240, 228, 240, 228, 240, + 228, 240, 227, 240, 180, 240, 149, 240, 148, 240, 164, 240, + 164, 240, 164, 240, 149, 240, 148, 240, 164, 240, 164, 240, + 164, 240, 194, 0, 38, 64, 54, 19, 0, 7, 87, 162, + 99, 113, 162, 83, 147, 68, 131, 68, 131, 82, 147, 240, + 18, 240, 19, 243, 243, 240, 18, 240, 18, 240, 33, 240, + 49, 240, 33, 240, 49, 240, 49, 240, 49, 240, 49, 240, + 49, 0, 9, 35, 244, 245, 228, 240, 19, 0, 27, 48, + 108, 33, 0, 13, 104, 240, 115, 115, 240, 66, 194, 242, + 242, 210, 240, 49, 178, 118, 113, 161, 99, 66, 98, 129, + 99, 113, 97, 113, 99, 145, 97, 97, 83, 179, 49, 97, + 83, 179, 49, 81, 83, 195, 65, 65, 83, 195, 65, 65, + 83, 195, 65, 65, 83, 195, 65, 65, 83, 195, 65, 65, + 83, 195, 65, 65, 83, 195, 65, 81, 83, 179, 65, 81, + 83, 179, 65, 82, 83, 148, 49, 113, 99, 113, 19, 49, + 114, 99, 66, 51, 33, 130, 118, 84, 162, 240, 240, 34, + 240, 240, 50, 240, 19, 211, 164, 240, 74, 0, 46, 112, + 91, 34, 0, 6, 2, 240, 240, 34, 240, 240, 20, 240, + 244, 240, 244, 240, 230, 240, 209, 20, 240, 209, 20, 240, + 194, 36, 240, 177, 52, 240, 177, 67, 240, 162, 68, 240, + 145, 84, 240, 145, 99, 240, 130, 100, 240, 113, 116, 240, + 98, 132, 240, 82, 132, 240, 81, 148, 240, 66, 164, 240, + 63, 1, 240, 49, 180, 240, 34, 196, 240, 17, 212, 240, + 17, 227, 242, 228, 225, 244, 225, 240, 19, 210, 240, 20, + 180, 244, 137, 156, 0, 47, 32, 65, 30, 0, 11, 47, + 4, 243, 164, 211, 196, 179, 212, 163, 212, 163, 228, 147, + 228, 147, 228, 147, 228, 147, 212, 163, 211, 179, 195, 195, + 163, 238, 240, 19, 180, 195, 211, 179, 212, 163, 228, 147, + 243, 147, 244, 131, 244, 131, 244, 131, 244, 131, 244, 131, + 228, 147, 212, 163, 196, 179, 180, 143, 5, 0, 42, 64, + 82, 31, 0, 13, 23, 113, 212, 99, 50, 179, 178, 34, + 163, 213, 131, 240, 20, 116, 240, 35, 115, 240, 51, 99, + 240, 82, 84, 240, 82, 84, 240, 82, 83, 240, 113, 68, + 240, 196, 240, 196, 240, 196, 240, 196, 240, 196, 240, 196, + 240, 211, 240, 113, 84, 240, 97, 84, 240, 97, 99, 240, + 97, 115, 240, 65, 132, 240, 49, 148, 240, 17, 180, 225, + 227, 178, 240, 36, 98, 240, 104, 0, 44, 16, 86, 33, + 0, 12, 63, 4, 240, 51, 164, 240, 19, 211, 227, 227, + 211, 243, 195, 240, 19, 179, 240, 20, 163, 240, 35, 163, + 240, 36, 147, 240, 36, 147, 240, 51, 147, 240, 52, 131, + 240, 52, 131, 240, 52, 131, 240, 52, 131, 240, 52, 131, + 240, 52, 131, 240, 52, 131, 240, 52, 131, 240, 51, 147, + 240, 36, 147, 240, 35, 163, 240, 35, 163, 240, 19, 179, + 243, 195, 227, 211, 211, 227, 180, 191, 4, 0, 47, 16, + 80, 30, 0, 11, 47, 9, 164, 181, 164, 211, 164, 226, + 164, 241, 164, 241, 164, 241, 164, 240, 17, 148, 129, 113, + 148, 129, 240, 36, 129, 240, 36, 129, 240, 36, 114, 240, + 45, 240, 36, 99, 240, 36, 114, 240, 36, 129, 240, 36, + 129, 240, 36, 129, 129, 132, 240, 33, 132, 240, 33, 132, + 240, 17, 148, 240, 17, 148, 240, 17, 148, 242, 148, 242, + 148, 227, 148, 196, 111, 9, 0, 42, 64, 28, 0, 10, + 79, 8, 148, 180, 148, 211, 132, 226, 132, 226, 132, 241, + 132, 241, 132, 241, 132, 241, 132, 129, 97, 132, 129, 244, + 129, 244, 129, 244, 114, 253, 244, 99, 244, 114, 244, 129, + 244, 129, 244, 129, 244, 240, 148, 240, 148, 240, 148, 240, + 148, 240, 148, 240, 148, 240, 148, 240, 93, 0, 40, 48, + 85, 34, 0, 14, 24, 113, 240, 19, 99, 66, 227, 177, + 35, 211, 213, 179, 240, 20, 179, 240, 35, 163, 240, 51, + 147, 240, 82, 147, 240, 82, 132, 240, 82, 132, 240, 82, + 116, 240, 113, 116, 240, 244, 240, 244, 240, 244, 240, 244, + 240, 244, 240, 244, 221, 84, 240, 52, 132, 240, 52, 147, + 240, 52, 148, 240, 36, 163, 240, 36, 179, 240, 20, 195, + 229, 212, 193, 19, 244, 115, 50, 240, 56, 113, 0, 47, + 80, 65, 33, 0, 12, 60, 92, 132, 212, 196, 212, 196, + 212, 196, 212, 196, 212, 196, 212, 196, 212, 196, 212, 196, + 212, 196, 212, 196, 212, 196, 212, 207, 6, 196, 212, 196, + 212, 196, 212, 196, 212, 196, 212, 196, 212, 196, 212, 196, + 212, 196, 212, 196, 212, 196, 212, 196, 212, 196, 212, 196, + 212, 140, 92, 0, 45, 112, 36, 18, 0, 6, 110, 148, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 158, 0, 25, 32, 62, 21, 0, 8, 91, 243, + 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, + 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, + 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, + 240, 51, 240, 51, 131, 115, 117, 99, 117, 99, 117, 83, + 147, 99, 161, 99, 199, 0, 30, 32, 85, 35, 0, 13, + 28, 153, 148, 229, 196, 242, 228, 226, 244, 210, 240, 20, + 194, 240, 36, 178, 240, 52, 162, 240, 68, 146, 240, 84, + 130, 240, 100, 114, 240, 116, 98, 240, 132, 84, 240, 116, + 70, 240, 100, 49, 36, 240, 100, 33, 68, 240, 86, 85, + 240, 69, 116, 240, 68, 148, 240, 52, 149, 240, 36, 164, + 240, 36, 180, 240, 20, 196, 244, 196, 244, 212, 228, 228, + 212, 229, 196, 230, 124, 139, 0, 48, 80, 65, 28, 0, + 10, 77, 240, 68, 240, 148, 240, 148, 240, 148, 240, 148, + 240, 148, 240, 148, 240, 148, 240, 148, 240, 148, 240, 148, + 240, 148, 240, 148, 240, 148, 240, 148, 240, 148, 240, 148, + 240, 148, 241, 132, 241, 132, 241, 132, 225, 148, 225, 148, + 225, 148, 210, 148, 210, 148, 195, 148, 165, 95, 8, 0, + 39, 16, 120, 39, 0, 14, 88, 240, 72, 132, 240, 68, + 193, 19, 240, 33, 19, 193, 19, 240, 33, 19, 193, 19, + 240, 33, 19, 193, 35, 241, 35, 193, 35, 241, 35, 193, + 51, 209, 51, 193, 51, 209, 51, 193, 51, 209, 51, 193, + 67, 177, 67, 193, 67, 177, 67, 193, 83, 145, 83, 193, + 83, 145, 83, 193, 83, 145, 83, 193, 99, 113, 99, 193, + 99, 113, 99, 193, 100, 81, 115, 193, 115, 81, 115, 193, + 115, 81, 115, 193, 131, 49, 131, 193, 131, 49, 131, 193, + 132, 17, 147, 193, 147, 17, 147, 193, 147, 17, 147, 193, + 163, 163, 193, 163, 163, 180, 131, 163, 137, 113, 123, 0, + 54, 16, 86, 32, 0, 12, 8, 185, 132, 227, 181, 225, + 193, 20, 209, 193, 36, 193, 193, 36, 193, 193, 52, 177, + 193, 68, 161, 193, 68, 161, 193, 84, 145, 193, 100, 129, + 193, 100, 129, 193, 116, 113, 193, 132, 97, 193, 132, 97, + 193, 148, 81, 193, 164, 65, 193, 164, 65, 193, 180, 49, + 193, 196, 33, 193, 196, 33, 193, 212, 17, 193, 229, 193, + 229, 193, 244, 193, 240, 19, 193, 240, 19, 179, 240, 18, + 137, 225, 0, 45, 86, 33, 0, 13, 103, 240, 131, 100, + 240, 51, 179, 243, 211, 211, 243, 179, 240, 35, 148, 240, + 36, 131, 240, 67, 116, 240, 68, 100, 240, 68, 99, 240, + 99, 84, 240, 100, 68, 240, 100, 68, 240, 100, 68, 240, + 100, 68, 240, 100, 68, 240, 100, 68, 240, 100, 84, 240, + 83, 100, 240, 68, 100, 240, 68, 115, 240, 67, 132, 240, + 36, 148, 240, 19, 179, 243, 211, 211, 244, 163, 240, 52, + 84, 240, 135, 0, 47, 32, 62, 29, 0, 10, 127, 3, + 243, 164, 195, 195, 179, 211, 163, 227, 147, 228, 131, 228, + 131, 228, 131, 228, 131, 228, 131, 227, 147, 211, 163, 195, + 179, 164, 206, 243, 240, 179, 240, 179, 240, 179, 240, 179, + 240, 179, 240, 179, 240, 179, 240, 179, 240, 179, 240, 179, + 240, 179, 240, 179, 240, 124, 0, 42, 113, 33, 0, 13, + 103, 240, 132, 99, 240, 67, 163, 243, 211, 211, 243, 180, + 240, 19, 163, 240, 36, 131, 240, 67, 131, 240, 68, 100, + 240, 68, 100, 240, 83, 84, 240, 100, 68, 240, 100, 68, + 240, 100, 68, 240, 100, 68, 240, 100, 68, 240, 100, 68, + 240, 100, 68, 240, 100, 84, 240, 83, 100, 240, 68, 115, + 240, 68, 116, 240, 51, 147, 116, 99, 179, 81, 66, 67, + 195, 49, 97, 51, 227, 33, 113, 18, 240, 53, 99, 240, + 122, 113, 240, 131, 97, 240, 146, 97, 240, 146, 82, 240, + 147, 51, 240, 152, 240, 183, 240, 182, 240, 212, 0, 13, + 32, 83, 34, 0, 12, 111, 2, 240, 99, 147, 240, 67, + 179, 240, 35, 195, 240, 19, 196, 243, 212, 227, 212, 227, + 212, 227, 212, 227, 212, 227, 196, 243, 195, 240, 19, 179, + 240, 35, 147, 240, 77, 240, 99, 132, 240, 67, 148, 240, + 51, 164, 240, 35, 180, 240, 19, 180, 240, 19, 180, 240, + 19, 180, 240, 19, 180, 240, 19, 181, 243, 181, 243, 181, + 97, 131, 196, 97, 131, 212, 65, 105, 198, 0, 47, 64, + 65, 24, 0, 9, 102, 81, 162, 98, 49, 131, 148, 115, + 179, 114, 195, 99, 210, 99, 210, 99, 225, 100, 209, 100, + 209, 116, 240, 87, 240, 58, 253, 205, 235, 240, 55, 240, + 69, 240, 100, 65, 244, 65, 240, 19, 65, 240, 19, 66, + 243, 66, 243, 67, 226, 84, 194, 101, 163, 98, 50, 114, + 129, 103, 0, 34, 32, 74, 32, 0, 12, 15, 13, 79, + 13, 68, 132, 132, 66, 164, 162, 66, 164, 162, 65, 180, + 177, 65, 180, 177, 65, 180, 177, 65, 180, 177, 65, 180, + 177, 240, 20, 240, 212, 240, 212, 240, 212, 240, 212, 240, + 212, 240, 212, 240, 212, 240, 212, 240, 212, 240, 212, 240, + 212, 240, 212, 240, 212, 240, 212, 240, 212, 240, 212, 240, + 198, 240, 111, 1, 0, 45, 32, 68, 32, 0, 12, 12, + 121, 132, 227, 180, 241, 196, 241, 196, 241, 196, 241, 196, + 241, 196, 241, 196, 241, 196, 241, 196, 241, 196, 241, 196, + 241, 196, 241, 196, 241, 196, 241, 196, 241, 196, 241, 196, + 241, 196, 241, 196, 241, 196, 241, 211, 225, 228, 209, 243, + 193, 240, 35, 177, 240, 51, 130, 240, 84, 82, 240, 150, + 0, 45, 96, 92, 36, 0, 13, 76, 185, 133, 240, 20, + 195, 240, 50, 212, 240, 33, 228, 240, 18, 244, 241, 240, + 20, 241, 240, 36, 210, 240, 36, 209, 240, 52, 194, 240, + 68, 177, 240, 84, 162, 240, 100, 145, 240, 116, 145, 240, + 116, 130, 240, 132, 113, 240, 148, 98, 240, 164, 81, 240, + 180, 81, 240, 180, 66, 240, 196, 49, 240, 212, 34, 240, + 228, 17, 240, 244, 17, 240, 240, 21, 240, 240, 20, 240, + 240, 36, 240, 240, 50, 240, 240, 66, 0, 51, 112, 123, + 48, 0, 18, 12, 91, 121, 132, 197, 197, 164, 212, 225, + 211, 212, 225, 212, 196, 210, 212, 212, 193, 243, 197, 193, + 244, 181, 177, 240, 20, 162, 20, 161, 240, 35, 161, 36, + 161, 240, 36, 145, 36, 145, 240, 52, 130, 52, 129, 240, + 68, 113, 68, 129, 240, 68, 113, 83, 113, 240, 84, 97, + 100, 97, 240, 100, 81, 100, 97, 240, 100, 81, 115, 81, + 240, 116, 65, 132, 65, 240, 132, 49, 132, 65, 240, 132, + 49, 147, 49, 240, 148, 33, 164, 33, 240, 164, 17, 164, + 33, 240, 164, 17, 181, 240, 181, 197, 240, 196, 197, 240, + 196, 211, 240, 211, 227, 240, 226, 227, 240, 226, 241, 0, + 68, 16, 85, 35, 0, 13, 28, 122, 166, 165, 244, 195, + 240, 36, 178, 240, 53, 146, 240, 84, 145, 240, 116, 114, + 240, 117, 82, 240, 148, 81, 240, 180, 49, 240, 197, 18, + 240, 214, 240, 244, 240, 240, 36, 240, 240, 21, 240, 245, + 240, 226, 20, 240, 194, 37, 240, 177, 68, 240, 161, 100, + 240, 130, 101, 240, 98, 132, 240, 97, 164, 240, 66, 165, + 240, 34, 196, 240, 33, 228, 242, 229, 197, 214, 138, 156, + 0, 48, 80, 86, 35, 0, 13, 28, 169, 118, 244, 181, + 243, 212, 242, 244, 225, 240, 21, 194, 240, 36, 178, 240, + 68, 161, 240, 84, 146, 240, 100, 129, 240, 132, 97, 240, + 148, 82, 240, 164, 65, 240, 180, 50, 240, 196, 18, 240, + 229, 240, 245, 240, 240, 19, 240, 240, 35, 240, 240, 35, + 240, 240, 35, 240, 240, 35, 240, 240, 35, 240, 240, 35, + 240, 240, 35, 240, 240, 35, 240, 240, 35, 240, 240, 35, + 240, 219, 0, 49, 112, 66, 26, 0, 9, 127, 6, 85, + 181, 83, 197, 98, 212, 114, 197, 113, 212, 129, 196, 145, + 181, 145, 180, 240, 100, 240, 101, 240, 100, 240, 100, 240, + 101, 240, 100, 240, 100, 240, 116, 240, 100, 240, 100, 177, + 164, 177, 148, 193, 133, 193, 132, 209, 116, 210, 101, 210, + 100, 211, 84, 212, 69, 182, 79, 7, 0, 36, 32, 45, + 10, 166, 66, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 134, 64, 33, 18, 0, 7, + 18, 114, 98, 113, 129, 129, 113, 129, 129, 113, 129, 129, + 129, 129, 129, 19, 65, 18, 85, 69, 69, 69, 84, 84, + 98, 114, 0, 63, 80, 45, 10, 166, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 70, 64, 17, 15, 0, 6, 33, 212, 162, 19, 130, 66, + 98, 98, 65, 145, 0, 64, 32, 11, 8, 240, 162, 84, + 68, 68, 82, 0, 35, 80, 19, 9, 240, 242, 97, 129, + 113, 113, 129, 129, 129, 18, 85, 69, 84, 98, 0, 32, + 16, 61, 27, 0, 31, 97, 240, 163, 240, 147, 240, 147, + 240, 129, 19, 240, 113, 19, 240, 113, 20, 240, 81, 51, + 240, 81, 51, 240, 66, 52, 240, 49, 83, 240, 49, 83, + 240, 33, 115, 240, 17, 115, 242, 116, 237, 225, 147, 210, + 148, 193, 179, 193, 179, 178, 195, 147, 180, 119, 121, 0, + 37, 80, 48, 24, 0, 30, 15, 195, 131, 163, 147, 147, + 163, 131, 163, 131, 163, 131, 163, 131, 163, 131, 147, 147, + 115, 188, 195, 131, 163, 163, 131, 163, 131, 179, 115, 179, + 115, 179, 115, 179, 115, 163, 131, 163, 131, 132, 111, 1, + 0, 34, 58, 25, 0, 32, 39, 81, 163, 98, 34, 131, + 161, 18, 115, 195, 99, 226, 98, 242, 83, 242, 82, 240, + 33, 67, 240, 33, 67, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 130, 240, 33, 83, 240, 17, 98, 240, 17, 99, + 225, 131, 193, 163, 162, 195, 98, 240, 23, 0, 35, 80, + 49, 26, 0, 32, 79, 227, 131, 195, 162, 179, 178, 163, + 194, 147, 195, 131, 195, 131, 211, 115, 211, 115, 211, 115, + 211, 115, 211, 115, 211, 115, 211, 115, 211, 115, 210, 131, + 195, 131, 194, 147, 178, 163, 162, 179, 131, 159, 0, 37, + 16, 52, 24, 0, 30, 15, 3, 147, 147, 147, 162, 147, + 177, 147, 178, 131, 193, 131, 97, 81, 131, 97, 227, 97, + 227, 82, 234, 227, 82, 227, 97, 227, 97, 227, 97, 97, + 115, 193, 131, 193, 131, 193, 131, 193, 131, 178, 131, 148, + 95, 4, 0, 33, 80, 50, 23, 0, 28, 111, 3, 131, + 147, 131, 162, 131, 177, 131, 177, 131, 177, 131, 177, 131, + 97, 66, 115, 97, 211, 97, 211, 82, 218, 211, 82, 211, + 97, 211, 97, 211, 97, 211, 240, 83, 240, 83, 240, 83, + 240, 83, 240, 42, 0, 33, 32, 55, 27, 0, 34, 103, + 81, 195, 98, 34, 163, 164, 147, 195, 131, 211, 130, 242, + 115, 242, 114, 240, 33, 99, 240, 33, 99, 240, 147, 240, + 147, 240, 147, 240, 147, 170, 82, 243, 115, 227, 130, 227, + 131, 211, 147, 195, 163, 164, 195, 99, 18, 232, 65, 0, + 37, 112, 51, 26, 0, 32, 73, 73, 115, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 175, 1, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 121, 73, 0, 36, 32, 29, 13, 0, 16, 41, 115, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 121, 0, 18, 48, 34, 17, + 0, 21, 105, 195, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 114, 83, 99, 83, 99, 83, + 99, 67, 129, 67, 165, 0, 24, 80, 58, 27, 0, 33, + 105, 119, 115, 179, 163, 178, 179, 162, 195, 145, 227, 129, + 243, 113, 240, 19, 97, 240, 35, 66, 240, 51, 52, 240, + 35, 38, 240, 19, 18, 35, 240, 21, 67, 244, 84, 227, + 115, 227, 131, 211, 132, 195, 148, 179, 163, 179, 164, 163, + 165, 105, 104, 0, 37, 80, 50, 22, 0, 27, 74, 243, + 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, + 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, + 240, 67, 177, 115, 177, 115, 177, 115, 162, 115, 162, 115, + 146, 131, 116, 95, 2, 0, 30, 112, 87, 32, 0, 40, + 6, 247, 116, 228, 161, 18, 209, 19, 161, 19, 193, 19, + 161, 19, 193, 19, 161, 34, 177, 35, 161, 35, 161, 35, + 161, 50, 145, 51, 161, 51, 129, 51, 161, 51, 113, 67, + 161, 66, 113, 67, 161, 67, 97, 67, 161, 82, 81, 83, + 161, 83, 65, 83, 161, 83, 49, 99, 161, 98, 49, 99, + 161, 99, 33, 99, 161, 114, 17, 115, 161, 116, 115, 161, + 115, 131, 147, 114, 131, 119, 82, 89, 0, 44, 64, 64, + 26, 0, 32, 70, 151, 116, 163, 149, 161, 161, 19, 161, + 161, 35, 145, 161, 36, 129, 161, 51, 129, 161, 67, 113, + 161, 68, 97, 161, 84, 81, 161, 99, 81, 161, 115, 65, + 161, 116, 49, 161, 131, 49, 161, 147, 33, 161, 148, 17, + 161, 165, 161, 180, 161, 195, 161, 195, 147, 194, 119, 177, + 0, 36, 80, 58, 26, 0, 33, 70, 240, 50, 99, 210, + 162, 178, 194, 147, 195, 130, 227, 99, 227, 98, 240, 18, + 83, 240, 19, 67, 240, 19, 67, 240, 19, 67, 240, 19, + 67, 240, 19, 67, 240, 19, 83, 242, 99, 227, 99, 227, + 115, 195, 147, 178, 179, 131, 211, 99, 240, 38, 0, 37, + 32, 48, 23, 0, 28, 111, 179, 116, 147, 147, 131, 162, + 131, 163, 115, 163, 115, 163, 115, 163, 115, 162, 131, 147, + 131, 131, 156, 179, 240, 83, 240, 83, 240, 83, 240, 83, + 240, 83, 240, 83, 240, 83, 240, 83, 240, 41, 0, 33, + 48, 78, 26, 0, 33, 71, 240, 35, 83, 211, 146, 179, + 178, 147, 195, 130, 227, 99, 227, 98, 240, 18, 83, 240, + 19, 67, 240, 19, 67, 240, 19, 67, 240, 19, 67, 240, + 19, 67, 240, 19, 82, 240, 19, 83, 227, 99, 227, 115, + 83, 82, 147, 49, 49, 50, 179, 33, 65, 18, 228, 67, + 240, 40, 81, 240, 66, 65, 240, 67, 34, 240, 71, 240, + 70, 240, 101, 240, 115, 0, 17, 55, 27, 0, 33, 109, + 240, 35, 99, 243, 131, 211, 146, 211, 147, 195, 147, 195, + 147, 195, 146, 211, 131, 211, 114, 250, 240, 35, 83, 240, + 19, 99, 243, 115, 227, 115, 227, 116, 211, 116, 211, 116, + 211, 116, 81, 115, 117, 65, 115, 132, 49, 89, 117, 0, + 37, 112, 47, 19, 0, 24, 38, 49, 114, 82, 18, 98, + 131, 97, 162, 82, 162, 82, 177, 82, 177, 83, 161, 100, + 248, 202, 185, 230, 240, 20, 240, 19, 65, 194, 65, 194, + 65, 194, 66, 177, 83, 146, 85, 98, 97, 70, 0, 27, + 16, 56, 25, 0, 31, 47, 6, 67, 99, 99, 66, 115, + 114, 65, 131, 129, 65, 131, 129, 65, 131, 129, 65, 131, + 129, 211, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 59, 0, 35, 64, 51, 26, 0, + 32, 73, 103, 115, 179, 147, 193, 163, 193, 163, 193, 163, + 193, 163, 193, 163, 193, 163, 193, 163, 193, 163, 193, 163, + 193, 163, 193, 163, 193, 163, 193, 163, 193, 163, 193, 179, + 161, 195, 161, 211, 129, 243, 82, 240, 54, 0, 37, 32, + 60, 28, 0, 35, 8, 151, 100, 211, 147, 210, 164, 193, + 195, 193, 196, 161, 227, 161, 227, 145, 240, 19, 129, 240, + 19, 129, 240, 20, 97, 240, 51, 97, 240, 52, 65, 240, + 83, 65, 240, 83, 50, 240, 99, 33, 240, 115, 33, 240, + 117, 240, 148, 240, 147, 240, 178, 240, 178, 0, 40, 48, + 90, 37, 0, 46, 40, 88, 102, 100, 148, 147, 147, 148, + 161, 163, 163, 161, 164, 147, 146, 179, 133, 129, 195, 129, + 19, 129, 211, 113, 19, 114, 211, 98, 35, 97, 227, 97, + 51, 97, 243, 81, 51, 81, 240, 19, 66, 67, 65, 240, + 19, 65, 83, 65, 240, 35, 49, 83, 49, 240, 51, 33, + 115, 33, 240, 52, 17, 115, 33, 240, 67, 17, 115, 17, + 240, 84, 148, 240, 84, 148, 240, 99, 147, 240, 114, 178, + 240, 129, 178, 0, 52, 64, 59, 28, 0, 35, 24, 103, + 149, 132, 196, 130, 244, 113, 240, 35, 98, 240, 36, 66, + 240, 68, 49, 240, 99, 33, 240, 133, 240, 132, 240, 164, + 240, 148, 240, 134, 240, 113, 36, 240, 81, 67, 240, 66, + 68, 240, 49, 100, 240, 17, 132, 225, 163, 210, 164, 180, + 149, 119, 137, 0, 39, 56, 29, 0, 36, 41, 151, 116, + 196, 164, 178, 211, 177, 228, 146, 244, 129, 240, 35, 113, + 240, 52, 82, 240, 68, 65, 240, 99, 49, 240, 116, 18, + 240, 133, 240, 163, 240, 179, 240, 179, 240, 179, 240, 179, + 240, 179, 240, 179, 240, 179, 240, 179, 240, 137, 0, 41, + 48, 52, 21, 0, 26, 63, 1, 84, 132, 82, 148, 97, + 163, 113, 148, 113, 132, 129, 131, 240, 36, 240, 20, 240, + 35, 240, 36, 240, 20, 240, 35, 240, 36, 113, 132, 129, + 131, 145, 116, 145, 100, 161, 99, 162, 84, 147, 68, 148, + 79, 2, 0, 29, 48, 8, 26, 0, 65, 15, 7, 0, + 72, 12, 48, 0, 120, 15, 15, 14, 0, 127, 240, 240, + 224, 23, 18, 0, 7, 19, 83, 115, 83, 100, 68, 99, + 83, 99, 83, 114, 98, 114, 98, 129, 113, 0, 73, 16, + 15, 19, 0, 7, 68, 113, 102, 66, 97, 71, 97, 116, + 0, 86, 48, +}; + +//***************************************************************************** +// +// The font definition for the 42 point Cmsc font. +// +//***************************************************************************** +const tFont g_sFontCmsc42 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 43, + + // + // The height of the font. + // + 43, + + // + // The baseline of the font. + // + 32, + + // + // The offset to each character in the font. + // + { + 0, 5, 39, 72, 187, 268, 390, 486, + 505, 551, 597, 644, 737, 757, 766, 778, + 867, 930, 991, 1056, 1118, 1188, 1248, 1312, + 1375, 1437, 1503, 1522, 1549, 1605, 1618, 1674, + 1728, 1836, 1927, 1992, 2074, 2160, 2240, 2304, + 2389, 2454, 2490, 2552, 2637, 2702, 2822, 2908, + 2994, 3056, 3169, 3252, 3317, 3391, 3459, 3551, + 3674, 3759, 3845, 3911, 3956, 3989, 4034, 4051, + 4062, 4081, 4142, 4190, 4248, 4297, 4349, 4399, + 4454, 4505, 4534, 4568, 4626, 4676, 4763, 4827, + 4885, 4933, 5011, 5066, 5113, 5169, 5220, 5280, + 5370, 5429, 5485, 5537, 5545, 5557, 5580, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmsc42Data +}; diff --git a/grlib/fonts/fontcmsc44.c b/grlib/fonts/fontcmsc44.c new file mode 100644 index 0000000..2513068 --- /dev/null +++ b/grlib/fonts/fontcmsc44.c @@ -0,0 +1,614 @@ +//***************************************************************************** +// +// fontcmsc44.c - Font definition for the 44pt Cmsc font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmsc +// Size: 44 point +// Bold: no +// Italic: no +// Memory usage: 6288 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 44 point Cmsc font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmsc44Data[6087] = +{ + 5, 18, 0, 101, 32, 36, 9, 240, 67, 85, 69, 69, + 69, 69, 69, 69, 83, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 113, 129, 129, 129, 129, 240, 240, 67, 85, + 69, 69, 83, 0, 13, 35, 17, 0, 6, 66, 99, 84, + 68, 85, 53, 69, 53, 67, 17, 66, 17, 129, 113, 129, + 113, 129, 113, 113, 113, 129, 113, 113, 113, 114, 113, 98, + 113, 0, 62, 64, 124, 37, 0, 15, 113, 146, 240, 146, + 146, 240, 146, 146, 240, 146, 130, 240, 161, 146, 240, 146, + 146, 240, 146, 145, 240, 162, 130, 240, 161, 146, 240, 146, + 146, 240, 146, 145, 240, 162, 130, 240, 146, 146, 240, 146, + 146, 240, 146, 130, 223, 15, 3, 242, 145, 240, 162, 130, + 240, 161, 146, 240, 146, 146, 240, 146, 146, 240, 146, 145, + 240, 162, 130, 240, 161, 146, 255, 15, 3, 210, 130, 240, + 146, 146, 240, 146, 146, 240, 146, 130, 240, 161, 146, 240, + 146, 146, 240, 146, 145, 240, 162, 130, 240, 161, 146, 240, + 146, 146, 240, 146, 145, 240, 162, 130, 240, 146, 146, 240, + 146, 146, 240, 146, 145, 0, 11, 96, 88, 22, 240, 240, + 17, 240, 97, 240, 55, 211, 33, 50, 162, 65, 81, 130, + 81, 97, 98, 97, 97, 97, 113, 113, 66, 113, 83, 66, + 113, 68, 66, 113, 68, 67, 97, 82, 83, 97, 212, 65, + 214, 33, 233, 234, 219, 233, 248, 225, 52, 225, 68, 209, + 83, 82, 97, 98, 68, 81, 98, 68, 81, 98, 67, 97, + 98, 65, 129, 97, 97, 113, 82, 98, 97, 81, 130, 81, + 66, 147, 49, 35, 200, 240, 49, 240, 97, 0, 26, 32, + 133, 37, 84, 240, 65, 179, 49, 240, 34, 163, 82, 227, + 162, 114, 195, 163, 113, 19, 114, 17, 178, 130, 55, 34, + 163, 145, 178, 179, 145, 162, 195, 145, 162, 195, 145, 146, + 211, 145, 130, 227, 145, 130, 227, 145, 114, 240, 18, 129, + 114, 240, 35, 113, 114, 240, 50, 97, 114, 240, 82, 81, + 98, 240, 114, 49, 114, 240, 147, 114, 145, 240, 146, 130, + 18, 240, 114, 113, 81, 240, 82, 114, 97, 240, 50, 115, + 97, 240, 50, 114, 113, 240, 34, 115, 129, 242, 131, 129, + 242, 131, 129, 226, 147, 129, 210, 163, 129, 195, 163, 129, + 194, 179, 129, 178, 210, 129, 162, 227, 97, 178, 227, 97, + 162, 240, 18, 81, 162, 240, 50, 50, 162, 240, 83, 0, + 38, 104, 35, 0, 9, 116, 240, 242, 49, 240, 210, 65, + 240, 194, 97, 240, 163, 97, 240, 163, 97, 240, 163, 97, + 240, 163, 97, 240, 163, 81, 240, 179, 81, 240, 179, 65, + 240, 196, 33, 240, 227, 18, 240, 229, 170, 164, 228, 227, + 241, 240, 19, 241, 241, 19, 209, 241, 35, 193, 241, 52, + 177, 225, 84, 145, 226, 99, 130, 210, 116, 113, 226, 132, + 81, 227, 132, 66, 227, 148, 49, 243, 164, 17, 240, 19, + 180, 193, 68, 179, 193, 83, 181, 145, 115, 130, 36, 129, + 131, 83, 68, 82, 182, 166, 0, 44, 96, 20, 9, 240, + 210, 100, 85, 69, 67, 17, 129, 129, 129, 113, 129, 113, + 114, 98, 0, 33, 64, 48, 15, 161, 209, 209, 210, 194, + 194, 195, 194, 195, 194, 195, 194, 210, 195, 195, 195, 194, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 210, + 211, 195, 195, 210, 211, 195, 210, 211, 210, 211, 210, 226, + 226, 210, 241, 241, 64, 48, 15, 2, 226, 226, 226, 210, + 226, 226, 210, 211, 210, 211, 210, 211, 195, 195, 195, 211, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 194, 210, 195, 195, 194, 195, 194, 210, 194, 210, 194, 209, + 210, 194, 194, 193, 224, 51, 20, 114, 240, 50, 240, 50, + 240, 50, 240, 50, 178, 82, 82, 67, 66, 67, 84, 34, + 36, 131, 17, 35, 195, 18, 240, 18, 240, 19, 18, 180, + 18, 20, 100, 50, 52, 67, 66, 67, 178, 97, 178, 240, + 50, 240, 50, 240, 50, 0, 63, 112, 98, 35, 0, 32, + 66, 240, 240, 50, 240, 240, 50, 240, 240, 50, 240, 240, + 50, 240, 240, 50, 240, 240, 50, 240, 240, 50, 240, 240, + 50, 240, 240, 50, 240, 240, 50, 240, 240, 50, 240, 240, + 50, 240, 240, 50, 240, 240, 50, 240, 240, 50, 240, 63, + 15, 1, 240, 66, 240, 240, 50, 240, 240, 50, 240, 240, + 50, 240, 240, 50, 240, 240, 50, 240, 240, 50, 240, 240, + 50, 240, 240, 50, 240, 240, 50, 240, 240, 50, 240, 240, + 50, 240, 240, 50, 240, 240, 50, 0, 32, 112, 20, 9, + 0, 32, 99, 84, 85, 69, 84, 129, 129, 129, 113, 129, + 129, 113, 113, 114, 240, 160, 10, 16, 0, 46, 12, 76, + 76, 0, 38, 64, 11, 9, 0, 32, 99, 85, 69, 69, + 83, 0, 13, 94, 22, 240, 18, 240, 82, 240, 81, 240, + 82, 240, 82, 240, 66, 240, 82, 240, 82, 240, 66, 240, + 82, 240, 81, 240, 82, 240, 82, 240, 66, 240, 82, 240, + 82, 240, 66, 240, 82, 240, 81, 240, 82, 240, 82, 240, + 66, 240, 82, 240, 82, 240, 66, 240, 82, 240, 81, 240, + 82, 240, 82, 240, 66, 240, 82, 240, 82, 240, 66, 240, + 82, 240, 81, 240, 82, 240, 82, 240, 66, 240, 82, 240, + 82, 240, 66, 240, 82, 240, 81, 240, 82, 240, 82, 240, + 80, 67, 22, 0, 11, 102, 242, 67, 178, 130, 162, 130, + 146, 162, 130, 163, 98, 194, 98, 194, 98, 194, 83, 195, + 67, 195, 67, 195, 67, 195, 67, 195, 67, 195, 67, 195, + 67, 195, 67, 195, 67, 195, 67, 195, 67, 195, 67, 195, + 67, 195, 82, 194, 99, 163, 99, 163, 114, 162, 131, 131, + 147, 114, 179, 67, 230, 0, 28, 96, 63, 19, 0, 10, + 65, 240, 19, 229, 165, 19, 240, 19, 240, 19, 240, 19, + 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, + 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, + 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, + 240, 19, 240, 19, 240, 19, 245, 159, 0, 26, 80, 67, + 22, 0, 11, 102, 226, 68, 177, 131, 145, 163, 114, 164, + 97, 180, 84, 164, 69, 148, 69, 148, 69, 148, 83, 164, + 240, 52, 240, 36, 240, 52, 240, 36, 240, 52, 240, 36, + 240, 36, 240, 36, 240, 51, 240, 50, 240, 66, 240, 66, + 240, 66, 161, 130, 177, 114, 178, 98, 193, 111, 1, 111, + 1, 95, 2, 0, 30, 112, 66, 23, 0, 12, 38, 242, + 83, 193, 132, 145, 164, 115, 148, 116, 133, 100, 133, 100, + 133, 114, 148, 240, 68, 240, 52, 240, 68, 240, 51, 240, + 67, 247, 240, 115, 240, 100, 240, 84, 240, 69, 240, 68, + 240, 69, 240, 53, 82, 181, 68, 165, 68, 165, 68, 164, + 83, 165, 97, 180, 129, 148, 162, 100, 215, 0, 30, 16, + 72, 24, 0, 13, 97, 240, 114, 240, 99, 240, 99, 240, + 84, 240, 65, 19, 240, 65, 19, 240, 49, 35, 240, 34, + 35, 240, 33, 51, 240, 17, 67, 242, 67, 241, 83, 225, + 99, 210, 99, 209, 115, 193, 131, 193, 131, 177, 147, 161, + 163, 161, 163, 145, 179, 159, 5, 240, 19, 240, 99, 240, + 99, 240, 99, 240, 99, 240, 99, 240, 43, 0, 33, 80, + 66, 22, 0, 11, 34, 162, 142, 140, 171, 177, 22, 225, + 240, 97, 240, 97, 240, 97, 240, 97, 240, 97, 240, 97, + 54, 193, 18, 83, 163, 115, 146, 147, 129, 163, 240, 83, + 240, 67, 240, 68, 240, 52, 240, 52, 67, 180, 68, 164, + 68, 164, 67, 180, 65, 211, 82, 179, 114, 163, 129, 147, + 162, 83, 230, 0, 28, 112, 69, 23, 0, 12, 86, 243, + 67, 194, 129, 163, 116, 146, 132, 131, 132, 115, 147, 131, + 240, 68, 240, 67, 240, 83, 240, 68, 54, 164, 34, 67, + 132, 17, 115, 117, 147, 101, 148, 85, 163, 84, 180, 68, + 180, 68, 180, 68, 180, 68, 180, 83, 180, 83, 180, 83, + 179, 114, 179, 115, 148, 130, 147, 162, 115, 194, 83, 245, + 0, 30, 16, 67, 24, 0, 15, 33, 240, 143, 3, 95, + 4, 95, 3, 97, 226, 113, 225, 129, 210, 114, 194, 240, + 98, 240, 113, 240, 114, 240, 98, 240, 113, 240, 114, 240, + 114, 240, 98, 240, 114, 240, 99, 240, 99, 240, 83, 240, + 99, 240, 99, 240, 99, 240, 84, 240, 84, 240, 84, 240, + 84, 240, 84, 240, 84, 240, 98, 0, 31, 112, 64, 23, + 0, 12, 54, 242, 83, 178, 146, 161, 178, 129, 210, 113, + 210, 98, 210, 99, 194, 99, 194, 101, 146, 133, 130, 135, + 82, 167, 34, 217, 240, 24, 249, 194, 55, 162, 102, 130, + 134, 98, 181, 82, 196, 66, 227, 66, 242, 66, 242, 66, + 242, 66, 242, 82, 225, 99, 193, 131, 161, 179, 98, 231, + 0, 30, 70, 23, 0, 12, 54, 242, 82, 195, 114, 163, + 146, 147, 147, 115, 163, 115, 179, 84, 179, 84, 179, 84, + 180, 68, 180, 68, 180, 68, 180, 68, 180, 83, 165, 84, + 149, 99, 129, 20, 115, 113, 20, 131, 66, 36, 165, 68, + 240, 67, 240, 83, 240, 68, 240, 67, 131, 147, 116, 146, + 132, 131, 132, 115, 161, 131, 194, 82, 246, 0, 30, 48, + 18, 9, 0, 15, 115, 85, 69, 69, 83, 0, 12, 3, + 85, 69, 69, 83, 0, 13, 27, 9, 0, 15, 115, 85, + 69, 69, 83, 0, 12, 3, 85, 69, 69, 84, 129, 129, + 129, 129, 113, 129, 113, 114, 113, 240, 160, 58, 32, 0, + 43, 34, 240, 212, 240, 180, 240, 165, 240, 164, 240, 180, + 240, 180, 240, 180, 240, 180, 240, 165, 240, 164, 240, 180, + 240, 180, 240, 212, 240, 244, 240, 244, 240, 245, 240, 229, + 240, 244, 240, 244, 240, 244, 240, 244, 240, 245, 240, 229, + 240, 244, 240, 242, 0, 36, 64, 15, 35, 0, 78, 111, + 15, 1, 0, 35, 79, 15, 1, 0, 74, 112, 58, 32, + 0, 40, 2, 240, 244, 240, 245, 240, 229, 240, 244, 240, + 244, 240, 244, 240, 244, 240, 245, 240, 229, 240, 244, 240, + 244, 240, 244, 240, 212, 240, 180, 240, 165, 240, 164, 240, + 180, 240, 180, 240, 180, 240, 180, 240, 165, 240, 164, 240, + 180, 240, 180, 240, 210, 0, 39, 96, 63, 20, 240, 240, + 246, 194, 83, 145, 146, 113, 163, 82, 179, 67, 163, 68, + 147, 68, 147, 82, 163, 240, 19, 240, 35, 240, 19, 240, + 18, 240, 34, 240, 49, 240, 50, 240, 49, 240, 65, 240, + 49, 240, 65, 240, 65, 240, 65, 240, 65, 240, 65, 0, + 9, 99, 240, 21, 245, 245, 240, 19, 0, 28, 112, 120, + 35, 0, 10, 39, 240, 163, 115, 240, 82, 210, 240, 34, + 242, 241, 240, 65, 209, 240, 97, 177, 240, 129, 161, 149, + 146, 129, 115, 82, 129, 129, 99, 129, 114, 97, 99, 161, + 113, 97, 83, 195, 65, 81, 99, 195, 66, 65, 98, 211, + 81, 65, 83, 211, 81, 65, 83, 211, 81, 65, 83, 211, + 81, 65, 83, 211, 81, 65, 83, 211, 81, 65, 83, 211, + 81, 66, 83, 195, 81, 81, 83, 195, 81, 81, 99, 164, + 65, 98, 99, 129, 19, 65, 113, 115, 82, 51, 33, 145, + 134, 100, 162, 240, 240, 65, 240, 240, 81, 240, 240, 82, + 240, 68, 178, 245, 243, 149, 240, 105, 0, 45, 64, 98, + 36, 0, 10, 114, 240, 240, 66, 240, 240, 52, 240, 240, + 36, 240, 240, 36, 240, 240, 22, 240, 241, 20, 240, 241, + 20, 240, 226, 36, 240, 209, 52, 240, 194, 53, 240, 178, + 68, 240, 177, 84, 240, 162, 85, 240, 146, 100, 240, 145, + 116, 240, 130, 117, 240, 113, 148, 240, 113, 149, 240, 82, + 164, 240, 81, 180, 240, 79, 3, 240, 50, 196, 240, 49, + 212, 240, 34, 228, 240, 17, 244, 240, 17, 244, 242, 240, + 20, 225, 240, 36, 211, 240, 21, 181, 245, 138, 172, 0, + 50, 75, 32, 0, 12, 15, 5, 240, 35, 180, 227, 211, + 211, 212, 195, 228, 179, 228, 179, 244, 163, 244, 163, 244, + 163, 244, 163, 228, 179, 228, 179, 212, 195, 196, 211, 164, + 255, 240, 35, 195, 227, 212, 195, 228, 179, 244, 163, 244, + 163, 240, 20, 147, 240, 20, 147, 240, 20, 147, 240, 20, + 147, 240, 20, 147, 244, 163, 228, 179, 212, 195, 181, 143, + 6, 0, 45, 48, 89, 32, 0, 13, 87, 113, 228, 98, + 66, 195, 178, 34, 164, 213, 148, 244, 132, 240, 20, 116, + 240, 51, 116, 240, 66, 100, 240, 82, 85, 240, 82, 85, + 240, 82, 84, 240, 113, 69, 240, 197, 240, 197, 240, 197, + 240, 197, 240, 197, 240, 197, 240, 197, 240, 212, 240, 113, + 85, 240, 97, 85, 240, 97, 100, 240, 97, 116, 240, 65, + 132, 240, 65, 148, 240, 33, 180, 240, 17, 196, 225, 243, + 178, 240, 37, 98, 240, 120, 0, 41, 64, 93, 35, 0, + 13, 31, 5, 240, 83, 180, 240, 35, 212, 243, 243, 227, + 240, 19, 211, 240, 20, 195, 240, 35, 195, 240, 51, 179, + 240, 51, 179, 240, 52, 163, 240, 67, 163, 240, 68, 147, + 240, 68, 147, 240, 68, 147, 240, 68, 147, 240, 68, 147, + 240, 68, 147, 240, 68, 147, 240, 68, 147, 240, 68, 147, + 240, 67, 163, 240, 52, 163, 240, 52, 163, 240, 51, 179, + 240, 35, 195, 240, 35, 195, 240, 19, 211, 243, 227, 212, + 243, 180, 207, 5, 0, 50, 91, 32, 0, 12, 15, 11, + 111, 11, 180, 197, 180, 227, 180, 242, 180, 240, 18, 164, + 240, 18, 164, 240, 33, 164, 240, 33, 164, 240, 33, 164, + 145, 113, 164, 145, 240, 52, 145, 240, 52, 130, 240, 52, + 115, 240, 62, 240, 52, 115, 240, 52, 130, 240, 52, 145, + 240, 52, 145, 240, 52, 145, 129, 148, 240, 49, 148, 240, + 49, 148, 240, 49, 148, 240, 34, 148, 240, 33, 164, 240, + 33, 164, 240, 18, 164, 243, 164, 213, 95, 12, 0, 44, + 80, 84, 31, 0, 11, 95, 11, 95, 11, 164, 197, 164, + 227, 164, 242, 164, 240, 17, 164, 240, 17, 164, 240, 17, + 164, 240, 18, 148, 240, 33, 148, 145, 113, 148, 145, 240, + 36, 145, 240, 36, 130, 240, 36, 115, 240, 46, 240, 36, + 115, 240, 36, 130, 240, 36, 145, 240, 36, 145, 240, 36, + 145, 240, 36, 145, 240, 36, 240, 196, 240, 196, 240, 196, + 240, 196, 240, 196, 240, 196, 240, 197, 240, 111, 0, 44, + 80, 92, 35, 0, 14, 88, 113, 240, 20, 99, 66, 243, + 162, 35, 212, 209, 19, 196, 244, 180, 240, 20, 164, 240, + 51, 164, 240, 51, 148, 240, 82, 133, 240, 82, 133, 240, + 82, 132, 240, 113, 117, 240, 245, 240, 245, 240, 245, 240, + 245, 240, 245, 240, 245, 240, 245, 221, 84, 240, 53, 133, + 240, 52, 133, 240, 52, 148, 240, 52, 149, 240, 36, 164, + 240, 36, 180, 240, 20, 196, 244, 212, 213, 243, 178, 34, + 240, 21, 99, 65, 240, 72, 0, 45, 80, 68, 36, 0, + 13, 78, 78, 133, 213, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 239, 7, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 158, 78, 0, 50, 38, 18, 0, 6, 110, 148, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 229, 142, 0, 25, 32, 67, 22, 0, 9, 12, + 244, 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, 240, + 67, 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, 240, + 67, 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, 240, + 67, 240, 67, 240, 67, 240, 67, 131, 131, 117, 115, 117, + 115, 117, 115, 116, 115, 145, 147, 161, 115, 194, 67, 230, + 0, 29, 97, 37, 0, 13, 126, 153, 164, 245, 212, 240, + 18, 244, 242, 240, 20, 226, 240, 36, 210, 240, 52, 194, + 240, 68, 178, 240, 84, 162, 240, 100, 146, 240, 116, 130, + 240, 132, 114, 240, 148, 99, 240, 148, 84, 240, 148, 65, + 20, 240, 132, 49, 37, 240, 116, 33, 68, 240, 116, 17, + 100, 240, 101, 117, 240, 84, 148, 240, 84, 164, 240, 68, + 165, 240, 52, 180, 240, 52, 196, 240, 36, 197, 240, 20, + 212, 240, 20, 228, 244, 229, 228, 245, 212, 231, 126, 124, + 0, 51, 48, 68, 30, 0, 11, 47, 240, 85, 240, 164, + 240, 180, 240, 180, 240, 180, 240, 180, 240, 180, 240, 180, + 240, 180, 240, 180, 240, 180, 240, 180, 240, 180, 240, 180, + 240, 180, 240, 180, 240, 180, 240, 180, 240, 180, 242, 148, + 241, 164, 241, 164, 241, 164, 241, 164, 241, 164, 226, 164, + 226, 164, 211, 164, 196, 164, 166, 95, 9, 0, 42, 129, + 43, 0, 16, 25, 240, 105, 149, 240, 69, 225, 19, 240, + 65, 19, 225, 19, 240, 65, 19, 225, 20, 240, 34, 19, + 225, 35, 240, 33, 35, 225, 36, 240, 17, 35, 225, 51, + 241, 51, 225, 51, 241, 51, 225, 52, 210, 51, 225, 67, + 209, 67, 225, 68, 193, 67, 225, 83, 177, 83, 225, 83, + 177, 83, 225, 84, 146, 83, 225, 99, 145, 99, 225, 100, + 129, 99, 225, 115, 113, 115, 225, 115, 113, 115, 225, 116, + 97, 115, 225, 131, 81, 131, 225, 132, 65, 131, 225, 147, + 49, 147, 225, 147, 49, 147, 225, 148, 33, 147, 225, 163, + 17, 163, 225, 165, 163, 225, 164, 179, 225, 179, 179, 197, + 147, 179, 155, 113, 125, 0, 59, 80, 96, 36, 0, 13, + 73, 203, 149, 229, 198, 241, 225, 20, 241, 225, 36, 225, + 225, 37, 209, 225, 52, 209, 225, 68, 193, 225, 69, 177, + 225, 84, 177, 225, 100, 161, 225, 116, 145, 225, 117, 129, + 225, 132, 129, 225, 148, 113, 225, 149, 97, 225, 164, 97, + 225, 180, 81, 225, 181, 65, 225, 196, 65, 225, 212, 49, + 225, 213, 33, 225, 229, 17, 225, 244, 17, 225, 240, 21, + 225, 240, 21, 225, 240, 36, 225, 240, 51, 225, 240, 51, + 197, 240, 34, 155, 241, 0, 50, 80, 95, 35, 0, 14, + 87, 240, 164, 84, 240, 84, 148, 240, 35, 211, 243, 243, + 212, 244, 180, 240, 36, 149, 240, 52, 132, 240, 68, 117, + 240, 69, 101, 240, 69, 100, 240, 100, 85, 240, 101, 69, + 240, 101, 69, 240, 101, 69, 240, 101, 69, 240, 101, 69, + 240, 101, 69, 240, 101, 69, 240, 101, 85, 240, 84, 101, + 240, 69, 101, 240, 69, 116, 240, 68, 133, 240, 37, 148, + 240, 36, 180, 244, 212, 212, 244, 195, 240, 36, 148, 240, + 84, 84, 240, 167, 0, 45, 96, 69, 32, 0, 12, 15, + 5, 240, 35, 180, 227, 212, 195, 228, 179, 229, 163, 244, + 163, 245, 147, 245, 147, 245, 147, 245, 147, 245, 147, 244, + 163, 229, 163, 228, 179, 212, 195, 180, 239, 240, 35, 240, + 227, 240, 227, 240, 227, 240, 227, 240, 227, 240, 227, 240, + 227, 240, 227, 240, 227, 240, 227, 240, 227, 240, 228, 240, + 141, 0, 46, 48, 128, 35, 0, 10, 40, 240, 148, 99, + 240, 98, 179, 240, 35, 211, 243, 243, 211, 240, 35, 179, + 240, 67, 163, 240, 68, 131, 240, 99, 131, 240, 100, 100, + 240, 100, 100, 240, 115, 84, 240, 132, 68, 240, 132, 68, + 240, 132, 68, 240, 132, 68, 240, 132, 68, 240, 132, 68, + 240, 132, 68, 240, 132, 68, 240, 132, 84, 240, 115, 100, + 240, 100, 115, 240, 100, 115, 240, 99, 147, 132, 116, 147, + 113, 65, 99, 179, 81, 97, 67, 211, 65, 97, 52, 227, + 49, 113, 20, 240, 19, 33, 116, 240, 83, 17, 84, 240, + 154, 129, 240, 162, 113, 240, 163, 97, 240, 164, 51, 240, + 169, 240, 200, 240, 200, 240, 214, 240, 244, 0, 9, 80, + 93, 36, 0, 13, 79, 4, 240, 115, 164, 240, 67, 196, + 240, 35, 212, 240, 19, 213, 243, 228, 243, 229, 227, 229, + 227, 229, 227, 229, 227, 228, 243, 213, 243, 212, 240, 19, + 196, 240, 35, 164, 240, 78, 240, 115, 148, 240, 83, 179, + 240, 67, 195, 240, 51, 211, 240, 35, 211, 240, 35, 212, + 240, 19, 212, 240, 19, 212, 240, 19, 212, 240, 19, 212, + 240, 19, 212, 240, 19, 213, 81, 147, 228, 81, 148, 212, + 66, 77, 164, 49, 240, 245, 0, 45, 96, 77, 25, 0, + 10, 23, 82, 147, 83, 50, 130, 146, 19, 114, 196, 99, + 196, 98, 227, 83, 242, 83, 242, 83, 242, 84, 226, 84, + 241, 100, 240, 103, 240, 74, 240, 28, 237, 236, 240, 41, + 240, 86, 240, 100, 240, 116, 65, 240, 20, 65, 240, 35, + 65, 240, 35, 66, 240, 19, 66, 240, 19, 66, 240, 18, + 83, 227, 84, 210, 102, 162, 114, 51, 99, 129, 119, 0, + 32, 64, 79, 34, 0, 12, 127, 13, 111, 13, 100, 132, + 132, 98, 164, 162, 82, 180, 178, 66, 180, 178, 66, 180, + 178, 65, 196, 193, 65, 196, 193, 65, 196, 193, 65, 196, + 193, 240, 36, 240, 244, 240, 244, 240, 244, 240, 244, 240, + 244, 240, 244, 240, 244, 240, 244, 240, 244, 240, 244, 240, + 244, 240, 244, 240, 244, 240, 244, 240, 244, 240, 244, 240, + 244, 240, 230, 240, 143, 1, 0, 48, 16, 99, 36, 0, + 13, 78, 123, 148, 245, 196, 240, 33, 228, 240, 33, 228, + 240, 33, 228, 240, 33, 228, 240, 33, 228, 240, 33, 228, + 240, 33, 228, 240, 33, 228, 240, 33, 228, 240, 33, 228, + 240, 33, 228, 240, 33, 228, 240, 33, 228, 240, 33, 228, + 240, 33, 228, 240, 33, 228, 240, 33, 228, 240, 33, 228, + 240, 33, 228, 240, 33, 228, 240, 33, 228, 240, 33, 243, + 240, 17, 240, 20, 241, 240, 35, 241, 240, 36, 209, 240, + 67, 193, 240, 99, 161, 240, 147, 98, 240, 199, 0, 47, + 103, 37, 0, 13, 124, 201, 133, 240, 37, 180, 240, 50, + 212, 240, 50, 228, 240, 33, 244, 240, 18, 244, 240, 17, + 240, 36, 241, 240, 36, 226, 240, 37, 209, 240, 68, 194, + 240, 68, 193, 240, 100, 177, 240, 100, 162, 240, 100, 161, + 240, 132, 130, 240, 132, 130, 240, 148, 113, 240, 164, 98, + 240, 164, 97, 240, 196, 81, 240, 196, 66, 240, 197, 49, + 240, 228, 34, 240, 228, 33, 240, 240, 20, 17, 240, 240, + 22, 240, 240, 21, 240, 240, 52, 240, 240, 52, 240, 240, + 66, 240, 240, 82, 0, 48, 80, 140, 50, 0, 18, 108, + 107, 137, 133, 197, 213, 164, 228, 227, 196, 212, 241, 212, + 212, 226, 212, 228, 209, 244, 197, 209, 244, 197, 194, 244, + 193, 20, 177, 240, 36, 162, 20, 177, 240, 36, 161, 36, + 162, 240, 36, 161, 52, 145, 240, 68, 130, 52, 145, 240, + 68, 129, 68, 130, 240, 68, 129, 84, 113, 240, 100, 98, + 84, 113, 240, 100, 97, 100, 98, 240, 100, 97, 116, 81, + 240, 132, 81, 116, 81, 240, 132, 65, 132, 81, 240, 132, + 65, 148, 49, 240, 164, 49, 148, 49, 240, 164, 33, 164, + 49, 240, 164, 33, 180, 17, 240, 196, 17, 180, 17, 240, + 197, 196, 17, 240, 197, 212, 240, 228, 212, 240, 227, 228, + 240, 227, 242, 240, 240, 18, 242, 240, 240, 17, 240, 18, + 0, 64, 80, 92, 36, 0, 13, 77, 122, 166, 182, 229, + 195, 240, 36, 194, 240, 68, 177, 240, 85, 146, 240, 100, + 130, 240, 132, 113, 240, 149, 82, 240, 164, 66, 240, 196, + 49, 240, 213, 18, 240, 230, 240, 240, 20, 240, 240, 37, + 240, 240, 36, 240, 240, 22, 240, 241, 21, 240, 210, 36, + 240, 194, 68, 240, 177, 85, 240, 146, 100, 240, 130, 132, + 240, 113, 149, 240, 82, 164, 240, 66, 196, 240, 49, 213, + 240, 18, 228, 243, 244, 198, 214, 138, 172, 0, 50, 97, + 37, 0, 13, 124, 186, 134, 245, 197, 240, 18, 244, 240, + 17, 240, 21, 226, 240, 36, 225, 240, 53, 194, 240, 68, + 178, 240, 100, 161, 240, 117, 130, 240, 132, 114, 240, 164, + 97, 240, 180, 82, 240, 196, 65, 240, 212, 50, 240, 228, + 18, 240, 240, 21, 240, 240, 37, 240, 240, 51, 240, 240, + 67, 240, 240, 67, 240, 240, 67, 240, 240, 67, 240, 240, + 67, 240, 240, 67, 240, 240, 67, 240, 240, 67, 240, 240, + 67, 240, 240, 67, 240, 240, 67, 240, 237, 0, 52, 80, + 70, 27, 0, 10, 47, 7, 86, 181, 84, 197, 99, 212, + 114, 213, 114, 197, 129, 212, 145, 197, 145, 181, 161, 180, + 240, 117, 240, 116, 240, 116, 240, 117, 240, 116, 240, 116, + 240, 117, 240, 116, 240, 116, 177, 165, 177, 164, 193, 148, + 209, 133, 209, 132, 225, 116, 226, 116, 226, 100, 227, 84, + 228, 84, 198, 79, 8, 79, 8, 0, 37, 80, 47, 10, + 166, 66, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 134, 64, 35, 18, 0, + 7, 18, 114, 113, 129, 113, 129, 113, 129, 129, 129, 113, + 129, 129, 129, 129, 129, 129, 19, 65, 19, 69, 69, 69, + 69, 84, 84, 98, 114, 0, 65, 112, 47, 10, 166, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 70, 64, 19, 16, 0, 6, 97, + 227, 194, 18, 161, 66, 129, 98, 97, 130, 65, 161, 0, + 70, 64, 12, 9, 240, 240, 115, 85, 69, 69, 83, 0, + 41, 16, 20, 9, 240, 242, 113, 113, 113, 129, 113, 129, + 129, 129, 19, 69, 69, 84, 98, 0, 33, 32, 63, 28, + 0, 36, 50, 240, 178, 240, 164, 240, 148, 240, 148, 240, + 129, 20, 240, 113, 35, 240, 113, 35, 240, 97, 67, 240, + 81, 67, 240, 66, 68, 240, 49, 99, 240, 49, 99, 240, + 33, 116, 240, 17, 131, 240, 28, 241, 163, 225, 163, 210, + 164, 193, 195, 193, 195, 178, 196, 148, 180, 119, 137, 0, + 39, 52, 25, 0, 34, 63, 1, 195, 132, 163, 163, 147, + 164, 131, 179, 131, 179, 131, 179, 131, 179, 131, 163, 147, + 163, 147, 131, 189, 195, 147, 163, 178, 147, 179, 131, 195, + 115, 195, 115, 195, 115, 195, 115, 179, 131, 179, 131, 147, + 127, 1, 0, 35, 64, 67, 26, 0, 33, 87, 81, 179, + 83, 34, 147, 146, 18, 130, 196, 114, 227, 99, 242, 98, + 240, 18, 83, 240, 18, 82, 240, 49, 67, 240, 49, 67, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 49, + 83, 240, 33, 83, 240, 33, 98, 240, 33, 99, 241, 130, + 241, 146, 209, 179, 161, 227, 98, 240, 39, 0, 33, 96, + 52, 27, 0, 37, 31, 1, 227, 132, 195, 163, 179, 194, + 163, 195, 147, 210, 147, 211, 131, 226, 131, 227, 115, 227, + 115, 227, 115, 227, 115, 227, 115, 227, 115, 227, 115, 226, + 131, 211, 131, 210, 147, 210, 147, 194, 163, 178, 179, 147, + 159, 0, 38, 80, 53, 25, 0, 34, 63, 4, 147, 163, + 147, 179, 131, 194, 131, 194, 131, 209, 131, 209, 131, 113, + 81, 131, 113, 227, 113, 227, 98, 235, 227, 98, 227, 113, + 227, 113, 227, 113, 97, 115, 225, 115, 210, 115, 209, 131, + 209, 131, 194, 131, 164, 95, 5, 0, 35, 52, 24, 0, + 33, 15, 4, 131, 163, 131, 178, 131, 193, 131, 193, 131, + 194, 115, 209, 115, 113, 81, 115, 113, 211, 113, 211, 98, + 219, 211, 98, 211, 113, 211, 113, 211, 113, 211, 240, 99, + 240, 99, 240, 99, 240, 99, 240, 100, 240, 42, 0, 34, + 96, 64, 28, 0, 36, 23, 81, 211, 83, 34, 179, 146, + 18, 162, 196, 146, 227, 131, 242, 130, 240, 18, 115, 240, + 18, 115, 240, 33, 99, 240, 49, 99, 240, 163, 240, 163, + 240, 163, 240, 163, 240, 163, 186, 82, 244, 115, 243, 115, + 243, 131, 227, 146, 227, 162, 211, 179, 161, 18, 196, 98, + 49, 247, 0, 36, 64, 53, 27, 0, 37, 25, 89, 115, + 179, 163, 179, 163, 179, 163, 179, 163, 179, 163, 179, 163, + 179, 163, 179, 163, 179, 163, 179, 175, 2, 163, 179, 163, + 179, 163, 179, 163, 179, 163, 179, 163, 179, 163, 179, 163, + 179, 163, 179, 163, 179, 121, 89, 0, 37, 80, 30, 13, + 0, 17, 121, 115, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 121, 0, 18, 48, 37, 18, 0, 25, 42, 196, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 114, 99, 99, 99, 99, 99, 99, 84, 113, 99, 130, + 67, 181, 0, 23, 96, 61, 28, 0, 38, 73, 134, 131, + 180, 163, 179, 179, 177, 211, 146, 227, 130, 243, 114, 240, + 19, 98, 240, 35, 82, 240, 51, 67, 240, 51, 53, 240, + 35, 33, 35, 240, 35, 17, 52, 240, 20, 84, 243, 115, + 243, 131, 227, 132, 211, 148, 195, 163, 195, 164, 179, 180, + 163, 181, 105, 120, 0, 39, 53, 23, 0, 31, 90, 240, + 19, 240, 83, 240, 83, 240, 83, 240, 83, 240, 83, 240, + 83, 240, 83, 240, 83, 240, 83, 240, 83, 240, 83, 240, + 83, 240, 83, 178, 115, 177, 131, 177, 131, 177, 131, 177, + 131, 162, 131, 147, 131, 132, 95, 3, 0, 32, 32, 92, + 33, 0, 45, 54, 240, 23, 116, 244, 161, 18, 225, 19, + 161, 19, 209, 19, 161, 19, 209, 19, 161, 34, 193, 35, + 161, 35, 177, 35, 161, 50, 161, 51, 161, 51, 145, 51, + 161, 51, 129, 67, 161, 67, 113, 67, 161, 67, 113, 67, + 161, 82, 97, 83, 161, 83, 81, 83, 161, 83, 65, 99, + 161, 99, 49, 99, 161, 99, 49, 99, 161, 114, 33, 115, + 161, 115, 17, 115, 161, 116, 131, 161, 131, 131, 147, 115, + 131, 119, 97, 105, 0, 45, 112, 66, 27, 0, 37, 22, + 167, 116, 179, 149, 177, 161, 19, 177, 161, 35, 161, 161, + 36, 145, 161, 52, 129, 161, 67, 129, 161, 83, 113, 161, + 84, 97, 161, 100, 81, 161, 115, 81, 161, 116, 65, 161, + 132, 49, 161, 148, 33, 161, 163, 33, 161, 164, 17, 161, + 181, 161, 196, 161, 211, 161, 211, 147, 210, 119, 193, 0, + 38, 66, 27, 0, 34, 103, 240, 51, 83, 242, 146, 210, + 178, 178, 210, 146, 242, 130, 243, 99, 243, 98, 240, 34, + 83, 240, 35, 67, 240, 35, 67, 240, 35, 67, 240, 35, + 67, 240, 35, 67, 240, 35, 67, 240, 35, 83, 240, 18, + 99, 243, 99, 243, 115, 211, 146, 210, 163, 179, 194, 146, + 243, 83, 240, 55, 0, 35, 32, 50, 24, 0, 33, 15, + 195, 131, 163, 163, 131, 178, 131, 179, 115, 179, 115, 179, + 115, 179, 115, 178, 131, 163, 131, 131, 172, 195, 240, 99, + 240, 99, 240, 99, 240, 99, 240, 99, 240, 99, 240, 99, + 240, 99, 240, 99, 240, 57, 0, 34, 112, 84, 27, 0, + 34, 118, 240, 51, 83, 242, 147, 194, 179, 162, 211, 131, + 226, 130, 243, 99, 243, 98, 240, 34, 83, 240, 35, 67, + 240, 35, 67, 240, 35, 67, 240, 35, 67, 240, 35, 67, + 240, 35, 67, 240, 35, 83, 240, 19, 83, 243, 99, 243, + 115, 84, 82, 146, 66, 34, 51, 162, 49, 66, 19, 195, + 17, 84, 229, 67, 240, 56, 81, 240, 67, 65, 240, 87, + 240, 87, 240, 86, 240, 131, 0, 17, 80, 60, 28, 0, + 38, 78, 240, 35, 115, 243, 146, 227, 162, 211, 163, 195, + 163, 195, 163, 195, 163, 195, 162, 211, 146, 227, 115, 251, + 240, 35, 99, 240, 19, 115, 243, 131, 227, 131, 227, 131, + 227, 132, 211, 132, 211, 132, 81, 115, 132, 81, 115, 148, + 65, 73, 100, 49, 240, 117, 0, 35, 96, 53, 20, 0, + 25, 70, 65, 130, 82, 18, 113, 132, 98, 147, 82, 178, + 82, 178, 82, 193, 83, 177, 83, 177, 100, 240, 24, 218, + 187, 201, 245, 240, 36, 240, 35, 65, 210, 65, 210, 65, + 210, 66, 194, 66, 178, 83, 161, 98, 18, 98, 113, 71, + 0, 26, 59, 27, 0, 37, 47, 6, 99, 99, 99, 97, + 131, 129, 82, 131, 130, 66, 131, 130, 65, 147, 145, 65, + 147, 145, 65, 147, 145, 227, 240, 147, 240, 147, 240, 147, + 240, 147, 240, 147, 240, 147, 240, 147, 240, 147, 240, 147, + 240, 147, 240, 147, 240, 147, 240, 148, 240, 75, 0, 38, + 48, 56, 27, 0, 37, 25, 119, 115, 195, 147, 209, 163, + 209, 163, 209, 163, 209, 163, 209, 163, 209, 163, 209, 163, + 209, 163, 209, 163, 209, 163, 209, 163, 209, 163, 209, 163, + 209, 163, 209, 163, 209, 178, 194, 179, 177, 210, 162, 226, + 130, 240, 19, 82, 240, 70, 0, 35, 32, 66, 29, 0, + 39, 121, 151, 116, 211, 148, 210, 179, 209, 195, 209, 196, + 177, 227, 177, 228, 146, 243, 145, 240, 19, 145, 240, 20, + 113, 240, 51, 113, 240, 52, 82, 240, 67, 81, 240, 83, + 81, 240, 84, 49, 240, 115, 49, 240, 116, 18, 240, 131, + 17, 240, 147, 17, 240, 148, 240, 179, 240, 179, 240, 193, + 0, 38, 32, 98, 39, 0, 53, 89, 73, 103, 100, 164, + 163, 147, 163, 178, 164, 148, 162, 179, 163, 161, 195, 148, + 161, 196, 133, 129, 227, 129, 19, 129, 227, 114, 19, 129, + 228, 97, 36, 97, 240, 19, 97, 51, 97, 240, 19, 82, + 51, 97, 240, 20, 65, 83, 65, 240, 51, 65, 83, 65, + 240, 51, 50, 83, 65, 240, 52, 33, 115, 33, 240, 83, + 33, 115, 33, 240, 83, 18, 115, 33, 240, 85, 148, 240, + 116, 148, 240, 116, 148, 240, 115, 178, 240, 146, 178, 240, + 146, 178, 0, 50, 64, 64, 29, 0, 40, 9, 103, 150, + 132, 196, 146, 244, 129, 240, 36, 97, 240, 67, 82, 240, + 68, 65, 240, 100, 33, 240, 131, 18, 240, 133, 240, 164, + 240, 180, 240, 149, 240, 145, 20, 240, 113, 52, 240, 82, + 67, 240, 81, 84, 240, 49, 116, 240, 17, 148, 226, 163, + 211, 164, 180, 165, 120, 137, 0, 40, 48, 59, 29, 0, + 39, 121, 151, 116, 196, 163, 210, 180, 178, 212, 161, 228, + 145, 240, 20, 114, 240, 36, 97, 240, 52, 81, 240, 84, + 50, 240, 100, 33, 240, 116, 18, 240, 133, 240, 163, 240, + 179, 240, 179, 240, 179, 240, 179, 240, 179, 240, 179, 240, + 179, 240, 179, 240, 137, 0, 41, 48, 54, 22, 0, 30, + 63, 2, 84, 148, 82, 164, 98, 148, 113, 164, 113, 148, + 129, 132, 145, 132, 240, 36, 240, 36, 240, 52, 240, 36, + 240, 36, 240, 51, 240, 52, 129, 132, 145, 131, 161, 116, + 161, 100, 162, 99, 178, 84, 163, 68, 149, 79, 3, 0, + 30, 96, 9, 27, 0, 74, 47, 8, 0, 74, 96, 14, + 50, 0, 127, 0, 10, 79, 15, 15, 1, 0, 127, 0, + 11, 23, 17, 0, 6, 99, 67, 115, 67, 100, 52, 99, + 67, 99, 67, 114, 82, 129, 97, 130, 82, 0, 73, 32, + 15, 19, 0, 9, 116, 113, 103, 66, 82, 56, 81, 116, + 0, 88, 96, +}; + +//***************************************************************************** +// +// The font definition for the 44 point Cmsc font. +// +//***************************************************************************** +const tFont g_sFontCmsc44 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 45, + + // + // The height of the font. + // + 45, + + // + // The baseline of the font. + // + 34, + + // + // The offset to each character in the font. + // + { + 0, 5, 41, 76, 200, 288, 421, 525, + 545, 593, 641, 692, 790, 810, 820, 831, + 925, 992, 1055, 1122, 1188, 1260, 1326, 1395, + 1462, 1526, 1596, 1614, 1641, 1699, 1714, 1772, + 1835, 1955, 2053, 2128, 2217, 2310, 2401, 2485, + 2577, 2645, 2683, 2750, 2847, 2915, 3044, 3140, + 3235, 3304, 3432, 3525, 3602, 3681, 3780, 3883, + 4023, 4115, 4212, 4282, 4329, 4364, 4411, 4430, + 4442, 4462, 4525, 4577, 4644, 4696, 4749, 4801, + 4865, 4918, 4948, 4985, 5046, 5099, 5191, 5257, + 5323, 5373, 5457, 5517, 5570, 5629, 5685, 5751, + 5849, 5913, 5972, 6026, 6035, 6049, 6072, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmsc44Data +}; diff --git a/grlib/fonts/fontcmsc46.c b/grlib/fonts/fontcmsc46.c new file mode 100644 index 0000000..bcec256 --- /dev/null +++ b/grlib/fonts/fontcmsc46.c @@ -0,0 +1,643 @@ +//***************************************************************************** +// +// fontcmsc46.c - Font definition for the 46pt Cmsc font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmsc +// Size: 46 point +// Bold: no +// Italic: no +// Memory usage: 6644 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 46 point Cmsc font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmsc46Data[6441] = +{ + 4, 18, 0, 108, 37, 9, 240, 211, 85, 69, 69, 69, + 69, 69, 69, 83, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 113, 129, 129, 129, 129, 240, 240, 211, 85, 69, + 69, 83, 0, 14, 16, 37, 19, 0, 9, 83, 114, 116, + 84, 86, 69, 85, 69, 83, 17, 67, 17, 145, 129, 145, + 129, 145, 129, 129, 129, 145, 129, 130, 129, 129, 129, 129, + 129, 129, 129, 0, 72, 32, 129, 39, 0, 21, 81, 161, + 240, 178, 162, 240, 162, 146, 240, 178, 146, 240, 178, 146, + 240, 162, 161, 240, 178, 146, 240, 178, 146, 240, 177, 162, + 240, 162, 146, 240, 178, 146, 240, 178, 146, 240, 162, 162, + 240, 162, 146, 240, 178, 146, 240, 178, 146, 223, 15, 5, + 240, 18, 146, 240, 177, 162, 240, 162, 161, 240, 178, 146, + 240, 178, 146, 240, 177, 162, 240, 162, 161, 240, 178, 146, + 240, 31, 15, 5, 210, 146, 240, 178, 146, 240, 178, 146, + 240, 162, 161, 240, 178, 146, 240, 178, 146, 240, 177, 162, + 240, 162, 146, 240, 178, 146, 240, 178, 146, 240, 162, 161, + 240, 178, 146, 240, 178, 146, 240, 177, 162, 240, 177, 161, + 0, 17, 32, 93, 23, 240, 240, 33, 240, 113, 240, 71, + 227, 33, 50, 178, 65, 82, 130, 81, 98, 98, 97, 113, + 98, 97, 113, 97, 113, 129, 66, 113, 99, 66, 113, 84, + 66, 113, 84, 67, 97, 98, 83, 97, 227, 81, 229, 49, + 248, 251, 220, 219, 249, 241, 38, 225, 68, 225, 84, 209, + 99, 82, 97, 114, 68, 81, 114, 68, 81, 114, 67, 97, + 114, 65, 129, 113, 97, 113, 98, 98, 97, 82, 130, 81, + 66, 163, 49, 35, 216, 240, 65, 240, 113, 0, 30, 48, + 142, 39, 240, 240, 229, 240, 81, 194, 50, 240, 50, 178, + 97, 240, 18, 178, 115, 196, 163, 129, 19, 114, 18, 178, + 146, 55, 34, 179, 161, 179, 179, 161, 178, 195, 161, 162, + 211, 161, 146, 227, 161, 146, 227, 161, 130, 243, 161, 114, + 240, 34, 161, 99, 240, 35, 129, 114, 240, 51, 129, 98, + 240, 82, 113, 99, 240, 98, 81, 114, 240, 130, 49, 114, + 240, 179, 115, 145, 240, 178, 130, 19, 240, 114, 130, 81, + 240, 82, 130, 113, 240, 51, 115, 113, 240, 50, 130, 129, + 240, 34, 131, 145, 243, 131, 145, 242, 147, 145, 226, 163, + 145, 211, 163, 145, 210, 179, 145, 194, 195, 145, 179, 210, + 130, 178, 227, 113, 178, 240, 18, 113, 162, 240, 35, 81, + 178, 240, 51, 49, 178, 240, 100, 0, 44, 112, 108, 36, + 0, 14, 100, 240, 240, 18, 49, 240, 226, 65, 240, 210, + 97, 240, 179, 97, 240, 179, 97, 240, 179, 97, 240, 179, + 97, 240, 179, 81, 240, 195, 81, 240, 195, 65, 240, 212, + 33, 240, 243, 18, 240, 245, 170, 180, 228, 243, 242, 240, + 19, 241, 240, 21, 209, 240, 17, 35, 209, 241, 52, 177, + 241, 83, 161, 241, 100, 145, 226, 116, 113, 226, 132, 98, + 226, 148, 81, 227, 164, 49, 243, 164, 34, 243, 182, 240, + 20, 180, 193, 68, 196, 177, 83, 182, 145, 115, 146, 36, + 114, 132, 83, 83, 82, 183, 166, 0, 50, 64, 22, 10, + 240, 240, 179, 116, 86, 85, 83, 17, 145, 145, 145, 129, + 145, 130, 129, 129, 129, 0, 38, 64, 51, 16, 240, 178, + 210, 210, 210, 210, 211, 210, 210, 226, 210, 226, 211, 210, + 226, 211, 211, 211, 210, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 226, 227, 211, 211, 211, 226, 227, 226, + 227, 226, 226, 242, 227, 226, 242, 242, 242, 242, 64, 50, + 15, 241, 241, 226, 226, 226, 226, 211, 210, 211, 210, 211, + 195, 210, 211, 195, 195, 210, 211, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 194, 210, 195, 195, 194, + 210, 195, 194, 210, 194, 194, 210, 194, 209, 209, 209, 209, + 224, 53, 21, 240, 210, 240, 66, 240, 66, 240, 66, 240, + 66, 194, 82, 83, 67, 66, 68, 83, 50, 52, 131, 17, + 35, 211, 18, 240, 34, 240, 35, 18, 196, 18, 35, 116, + 50, 52, 83, 66, 68, 65, 98, 97, 194, 240, 66, 240, + 66, 240, 66, 0, 72, 48, 104, 36, 0, 37, 114, 240, + 240, 66, 240, 240, 66, 240, 240, 66, 240, 240, 66, 240, + 240, 66, 240, 240, 66, 240, 240, 66, 240, 240, 66, 240, + 240, 66, 240, 240, 66, 240, 240, 66, 240, 240, 66, 240, + 240, 66, 240, 240, 66, 240, 240, 66, 240, 79, 15, 2, + 240, 66, 240, 240, 66, 240, 240, 66, 240, 240, 66, 240, + 240, 66, 240, 240, 66, 240, 240, 66, 240, 240, 66, 240, + 240, 66, 240, 240, 66, 240, 240, 66, 240, 240, 66, 240, + 240, 66, 240, 240, 66, 240, 240, 66, 240, 240, 66, 0, + 33, 112, 21, 9, 0, 35, 2, 100, 85, 69, 69, 129, + 129, 129, 113, 129, 129, 113, 113, 113, 240, 240, 80, 10, + 17, 0, 51, 13, 77, 77, 0, 45, 16, 12, 9, 0, + 35, 3, 85, 69, 69, 83, 0, 14, 16, 99, 23, 240, + 240, 162, 240, 98, 240, 82, 240, 98, 240, 98, 240, 82, + 240, 98, 240, 98, 240, 82, 240, 98, 240, 82, 240, 98, + 240, 98, 240, 82, 240, 98, 240, 98, 240, 82, 240, 98, + 240, 82, 240, 98, 240, 98, 240, 82, 240, 98, 240, 97, + 240, 98, 240, 98, 240, 82, 240, 98, 240, 98, 240, 82, + 240, 98, 240, 82, 240, 98, 240, 98, 240, 82, 240, 98, + 240, 98, 240, 82, 240, 98, 240, 82, 240, 98, 240, 98, + 240, 82, 240, 98, 240, 98, 240, 82, 240, 98, 240, 96, + 69, 23, 0, 15, 37, 240, 18, 82, 210, 114, 178, 146, + 146, 178, 130, 178, 115, 179, 98, 210, 98, 210, 83, 211, + 67, 211, 67, 211, 67, 211, 67, 211, 67, 211, 67, 211, + 67, 211, 67, 211, 67, 211, 67, 211, 67, 211, 67, 211, + 67, 211, 82, 211, 82, 210, 99, 179, 99, 179, 114, 178, + 131, 146, 163, 115, 179, 82, 246, 0, 33, 64, 19, 0, + 12, 113, 240, 19, 229, 165, 19, 240, 19, 240, 19, 240, + 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, + 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, + 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, + 19, 240, 19, 240, 19, 240, 19, 240, 19, 245, 159, 0, + 29, 69, 23, 0, 15, 23, 226, 84, 177, 147, 145, 164, + 114, 180, 97, 196, 84, 180, 69, 164, 69, 164, 69, 164, + 83, 180, 240, 68, 240, 52, 240, 68, 240, 52, 240, 67, + 240, 67, 240, 67, 240, 67, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 82, 161, 146, 177, 129, 194, 113, 209, 127, + 1, 111, 2, 95, 3, 95, 3, 0, 35, 16, 69, 24, + 0, 15, 103, 242, 99, 193, 148, 145, 180, 116, 148, 117, + 133, 101, 133, 101, 133, 115, 148, 240, 84, 240, 68, 240, + 84, 240, 67, 240, 83, 240, 23, 240, 131, 240, 116, 240, + 100, 240, 85, 240, 84, 240, 85, 240, 69, 83, 181, 69, + 165, 69, 165, 69, 165, 68, 180, 82, 197, 98, 180, 130, + 148, 179, 83, 247, 0, 34, 48, 76, 25, 0, 14, 34, + 240, 130, 240, 115, 240, 115, 240, 100, 240, 85, 240, 81, + 19, 240, 65, 35, 240, 50, 35, 240, 49, 51, 240, 33, + 67, 240, 18, 67, 240, 17, 83, 241, 99, 226, 99, 225, + 115, 210, 115, 209, 131, 193, 147, 178, 147, 177, 163, 161, + 179, 146, 179, 159, 6, 240, 35, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 101, 240, 29, 0, 38, 67, + 23, 0, 14, 98, 162, 157, 172, 187, 193, 22, 241, 240, + 113, 240, 113, 240, 113, 240, 113, 240, 113, 240, 113, 54, + 209, 18, 83, 179, 115, 162, 147, 145, 163, 240, 99, 240, + 83, 240, 84, 240, 68, 240, 68, 83, 180, 83, 180, 69, + 164, 83, 180, 83, 179, 97, 196, 98, 179, 129, 163, 161, + 146, 194, 83, 246, 0, 33, 73, 24, 0, 16, 38, 243, + 82, 210, 145, 178, 132, 146, 148, 131, 148, 115, 163, 131, + 240, 99, 240, 84, 240, 83, 240, 99, 70, 164, 34, 83, + 132, 18, 115, 116, 17, 147, 101, 164, 85, 179, 84, 196, + 68, 196, 68, 196, 68, 196, 68, 196, 83, 196, 83, 196, + 83, 196, 83, 195, 115, 179, 115, 163, 146, 163, 162, 131, + 195, 67, 240, 22, 0, 34, 48, 71, 25, 0, 15, 98, + 240, 143, 5, 95, 4, 111, 4, 111, 3, 113, 241, 129, + 225, 130, 210, 129, 210, 240, 129, 240, 129, 240, 130, 240, + 129, 240, 129, 240, 130, 240, 130, 240, 114, 240, 130, 240, + 115, 240, 115, 240, 115, 240, 99, 240, 115, 240, 115, 240, + 115, 240, 100, 240, 100, 240, 100, 240, 100, 240, 100, 240, + 100, 240, 114, 0, 36, 48, 67, 23, 0, 15, 38, 242, + 83, 178, 146, 161, 178, 129, 195, 113, 210, 98, 210, 98, + 210, 99, 194, 100, 162, 133, 130, 134, 98, 167, 50, 201, + 248, 240, 24, 226, 24, 163, 71, 130, 119, 114, 149, 98, + 181, 67, 211, 66, 227, 66, 242, 66, 242, 66, 242, 67, + 226, 82, 210, 99, 193, 131, 161, 179, 98, 231, 0, 32, + 112, 73, 24, 0, 15, 118, 240, 19, 67, 210, 130, 178, + 147, 147, 163, 115, 179, 115, 195, 84, 195, 84, 195, 84, + 195, 84, 196, 68, 196, 68, 196, 68, 196, 83, 196, 83, + 181, 99, 165, 99, 145, 20, 115, 129, 20, 131, 82, 36, + 166, 68, 240, 83, 240, 99, 240, 84, 240, 83, 131, 163, + 116, 147, 132, 146, 148, 131, 161, 146, 210, 83, 247, 0, + 34, 80, 19, 9, 0, 18, 19, 85, 69, 69, 83, 0, + 12, 3, 85, 69, 69, 83, 0, 14, 16, 28, 9, 0, + 18, 19, 85, 69, 69, 83, 0, 12, 3, 85, 69, 69, + 84, 129, 129, 129, 113, 129, 129, 113, 114, 113, 240, 240, + 64, 69, 33, 0, 48, 98, 240, 228, 240, 196, 240, 181, + 240, 181, 240, 180, 240, 196, 240, 196, 240, 196, 240, 181, + 240, 181, 240, 180, 240, 196, 240, 211, 240, 240, 20, 240, + 240, 20, 240, 240, 21, 240, 245, 240, 245, 240, 240, 20, + 240, 240, 20, 240, 240, 20, 240, 240, 21, 240, 245, 240, + 245, 240, 240, 20, 240, 240, 18, 0, 41, 96, 15, 36, + 0, 90, 15, 15, 2, 0, 36, 79, 15, 2, 0, 81, + 64, 69, 33, 0, 45, 50, 240, 240, 20, 240, 240, 21, + 240, 245, 240, 245, 240, 240, 20, 240, 240, 20, 240, 240, + 20, 240, 240, 21, 240, 245, 240, 245, 240, 240, 20, 240, + 240, 20, 240, 240, 19, 240, 212, 240, 196, 240, 181, 240, + 181, 240, 180, 240, 196, 240, 196, 240, 196, 240, 181, 240, + 181, 240, 180, 240, 196, 240, 226, 0, 45, 16, 65, 21, + 0, 8, 71, 195, 83, 146, 146, 114, 163, 97, 195, 67, + 179, 68, 163, 68, 163, 82, 179, 240, 35, 240, 51, 240, + 35, 240, 34, 240, 50, 240, 65, 240, 66, 240, 65, 240, + 81, 240, 65, 240, 81, 240, 81, 240, 81, 240, 81, 240, + 81, 0, 12, 115, 240, 37, 240, 21, 240, 21, 240, 35, + 0, 32, 112, 123, 36, 0, 15, 23, 240, 179, 115, 240, + 98, 210, 240, 49, 240, 18, 242, 240, 65, 210, 240, 97, + 193, 240, 114, 161, 165, 145, 145, 146, 82, 129, 129, 115, + 129, 113, 113, 115, 161, 113, 97, 114, 180, 65, 97, 99, + 195, 65, 81, 115, 195, 81, 65, 99, 211, 81, 65, 99, + 211, 81, 65, 99, 211, 81, 65, 99, 211, 81, 65, 99, + 211, 81, 65, 99, 211, 81, 65, 115, 195, 81, 81, 99, + 195, 81, 81, 114, 180, 81, 82, 99, 164, 65, 113, 115, + 129, 19, 65, 129, 116, 66, 51, 33, 146, 149, 100, 177, + 240, 240, 98, 240, 240, 82, 240, 99, 194, 240, 20, 244, + 149, 240, 107, 0, 55, 80, 104, 37, 0, 15, 113, 240, + 240, 83, 240, 240, 67, 240, 240, 53, 240, 240, 37, 240, + 240, 37, 240, 240, 23, 240, 241, 36, 240, 241, 36, 240, + 226, 52, 240, 209, 68, 240, 209, 68, 240, 194, 84, 240, + 177, 100, 240, 162, 101, 240, 146, 116, 240, 145, 132, 240, + 130, 133, 240, 113, 164, 240, 113, 164, 240, 98, 180, 240, + 95, 2, 240, 81, 196, 240, 66, 212, 240, 49, 228, 240, + 34, 229, 240, 17, 240, 20, 240, 17, 240, 20, 242, 240, + 21, 226, 240, 36, 211, 240, 36, 197, 240, 21, 138, 173, + 0, 56, 93, 35, 0, 17, 79, 7, 240, 51, 197, 243, + 228, 227, 245, 195, 240, 20, 195, 240, 21, 179, 240, 36, + 179, 240, 37, 163, 240, 37, 163, 240, 21, 179, 240, 21, + 179, 240, 20, 195, 244, 211, 213, 227, 181, 240, 31, 1, + 240, 67, 212, 243, 244, 211, 240, 20, 195, 240, 36, 179, + 240, 37, 163, 240, 53, 147, 240, 53, 147, 240, 53, 147, + 240, 53, 147, 240, 53, 147, 240, 37, 163, 240, 37, 163, + 240, 21, 179, 245, 195, 213, 159, 9, 0, 53, 112, 97, + 34, 0, 14, 56, 129, 229, 99, 66, 196, 178, 50, 180, + 214, 163, 240, 21, 147, 240, 52, 132, 240, 67, 116, 240, + 83, 101, 240, 98, 100, 240, 114, 85, 240, 114, 85, 240, + 114, 84, 240, 145, 69, 240, 229, 240, 229, 240, 229, 240, + 229, 240, 229, 240, 229, 240, 229, 240, 244, 240, 145, 85, + 240, 129, 85, 240, 129, 100, 240, 129, 101, 240, 97, 132, + 240, 97, 148, 240, 81, 163, 240, 65, 195, 240, 33, 228, + 225, 240, 20, 193, 240, 69, 99, 240, 136, 0, 48, 48, + 99, 37, 0, 18, 79, 7, 240, 84, 180, 240, 52, 212, + 240, 20, 243, 244, 240, 19, 228, 240, 20, 212, 240, 36, + 196, 240, 52, 180, 240, 52, 180, 240, 53, 164, 240, 53, + 164, 240, 68, 164, 240, 69, 148, 240, 69, 148, 240, 69, + 148, 240, 69, 148, 240, 69, 148, 240, 69, 148, 240, 69, + 148, 240, 69, 148, 240, 68, 164, 240, 68, 164, 240, 53, + 164, 240, 52, 180, 240, 52, 180, 240, 36, 196, 240, 35, + 212, 240, 20, 212, 243, 244, 212, 240, 20, 180, 223, 7, + 0, 57, 48, 97, 34, 0, 17, 15, 12, 127, 12, 196, + 214, 180, 240, 19, 180, 240, 34, 180, 240, 34, 180, 240, + 49, 180, 240, 49, 180, 240, 49, 180, 240, 49, 180, 161, + 114, 164, 161, 240, 68, 161, 240, 68, 146, 240, 68, 131, + 240, 79, 240, 68, 131, 240, 68, 146, 240, 68, 161, 240, + 68, 161, 240, 68, 161, 145, 148, 161, 145, 148, 240, 65, + 164, 240, 65, 164, 240, 65, 164, 240, 65, 164, 240, 50, + 164, 240, 50, 164, 240, 35, 164, 240, 19, 180, 229, 111, + 13, 0, 51, 96, 88, 32, 0, 16, 15, 12, 95, 12, + 164, 213, 164, 243, 164, 240, 18, 164, 240, 34, 148, 240, + 34, 148, 240, 34, 148, 240, 49, 148, 240, 49, 148, 161, + 113, 148, 161, 240, 36, 161, 240, 36, 161, 240, 36, 146, + 240, 36, 131, 240, 47, 240, 36, 131, 240, 36, 146, 240, + 36, 161, 240, 36, 161, 240, 36, 161, 240, 36, 161, 240, + 36, 240, 212, 240, 212, 240, 212, 240, 212, 240, 212, 240, + 212, 240, 213, 240, 127, 0, 50, 16, 108, 37, 0, 15, + 72, 129, 240, 37, 98, 82, 240, 19, 178, 35, 228, 210, + 19, 211, 240, 21, 196, 240, 36, 180, 240, 52, 164, 240, + 83, 164, 240, 83, 148, 240, 114, 148, 240, 114, 133, 240, + 114, 132, 240, 130, 132, 240, 145, 117, 240, 240, 37, 240, + 240, 37, 240, 240, 37, 240, 240, 37, 240, 240, 37, 240, + 240, 37, 240, 240, 52, 253, 85, 240, 69, 133, 240, 84, + 148, 240, 84, 149, 240, 68, 164, 240, 68, 180, 240, 52, + 180, 240, 52, 196, 240, 36, 228, 229, 244, 194, 34, 240, + 37, 114, 81, 240, 89, 0, 52, 96, 70, 37, 0, 18, + 78, 94, 134, 213, 228, 244, 228, 244, 228, 244, 228, 244, + 228, 244, 228, 244, 228, 244, 228, 244, 228, 244, 228, 244, + 228, 244, 228, 244, 228, 244, 239, 8, 228, 244, 228, 244, + 228, 244, 228, 244, 228, 244, 228, 244, 228, 244, 228, 244, + 228, 244, 228, 244, 228, 244, 228, 244, 228, 244, 228, 244, + 229, 229, 142, 94, 0, 56, 39, 18, 0, 9, 14, 134, + 212, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 229, 142, 0, 27, 64, 71, 24, 0, + 12, 110, 245, 240, 84, 240, 84, 240, 84, 240, 84, 240, + 84, 240, 84, 240, 84, 240, 84, 240, 84, 240, 84, 240, + 84, 240, 84, 240, 84, 240, 84, 240, 84, 240, 84, 240, + 84, 240, 84, 240, 84, 240, 84, 240, 84, 240, 84, 147, + 132, 133, 116, 133, 116, 133, 116, 132, 116, 161, 148, 177, + 116, 210, 67, 240, 22, 0, 34, 96, 101, 38, 0, 19, + 14, 154, 164, 240, 21, 212, 240, 19, 244, 240, 18, 240, + 20, 242, 240, 36, 226, 240, 52, 210, 240, 68, 194, 240, + 84, 177, 240, 116, 161, 240, 132, 145, 240, 148, 129, 240, + 164, 114, 240, 164, 84, 240, 164, 70, 240, 148, 50, 21, + 240, 132, 34, 53, 240, 116, 18, 84, 240, 118, 101, 240, + 101, 133, 240, 84, 164, 240, 84, 165, 240, 68, 181, 240, + 52, 196, 240, 52, 197, 240, 36, 213, 240, 20, 228, 240, + 20, 229, 244, 245, 228, 245, 229, 231, 126, 140, 0, 57, + 64, 76, 30, 0, 15, 15, 240, 85, 240, 164, 240, 180, + 240, 180, 240, 180, 240, 180, 240, 180, 240, 180, 240, 180, + 240, 180, 240, 180, 240, 180, 240, 180, 240, 180, 240, 180, + 240, 180, 240, 180, 240, 180, 240, 180, 240, 180, 240, 17, + 148, 240, 17, 148, 240, 17, 148, 240, 17, 148, 240, 17, + 148, 242, 148, 242, 148, 227, 148, 226, 164, 196, 164, 166, + 95, 10, 0, 45, 80, 132, 43, 0, 21, 73, 240, 105, + 149, 240, 84, 225, 19, 240, 65, 19, 225, 19, 240, 65, + 19, 225, 20, 240, 34, 19, 225, 35, 240, 33, 35, 225, + 35, 240, 33, 35, 225, 51, 241, 51, 225, 51, 241, 51, + 225, 52, 225, 51, 225, 67, 209, 67, 225, 67, 209, 67, + 225, 68, 177, 83, 225, 83, 177, 83, 225, 84, 161, 83, + 225, 99, 145, 99, 225, 99, 145, 99, 225, 100, 129, 99, + 225, 115, 113, 115, 225, 115, 113, 115, 225, 116, 81, 131, + 225, 131, 81, 131, 225, 132, 65, 131, 225, 147, 49, 147, + 225, 147, 49, 147, 225, 148, 17, 163, 225, 163, 17, 163, + 225, 165, 163, 225, 179, 179, 226, 163, 179, 197, 147, 180, + 139, 113, 125, 0, 65, 103, 37, 0, 18, 73, 219, 149, + 245, 198, 240, 17, 225, 20, 240, 17, 225, 36, 241, 225, + 37, 225, 225, 53, 209, 225, 68, 209, 225, 69, 193, 225, + 85, 177, 225, 100, 177, 225, 116, 161, 225, 117, 145, 225, + 133, 129, 225, 148, 129, 225, 149, 113, 225, 165, 97, 225, + 180, 97, 225, 196, 81, 225, 197, 65, 225, 213, 49, 225, + 228, 49, 225, 229, 33, 225, 245, 17, 225, 240, 20, 17, + 225, 240, 22, 225, 240, 37, 225, 240, 52, 225, 240, 67, + 226, 240, 51, 197, 240, 50, 155, 240, 17, 0, 56, 80, + 102, 37, 0, 15, 71, 240, 195, 100, 240, 115, 179, 240, + 67, 212, 244, 244, 212, 240, 36, 195, 240, 68, 164, 240, + 68, 148, 240, 100, 132, 240, 100, 117, 240, 101, 101, 240, + 116, 100, 240, 132, 85, 240, 133, 69, 240, 133, 69, 240, + 133, 69, 240, 133, 69, 240, 133, 69, 240, 133, 69, 240, + 133, 69, 240, 133, 84, 240, 132, 101, 240, 101, 101, 240, + 101, 116, 240, 100, 133, 240, 69, 148, 240, 68, 165, 240, + 37, 180, 240, 36, 212, 244, 244, 212, 240, 52, 163, 240, + 116, 99, 240, 199, 0, 53, 72, 33, 0, 16, 79, 6, + 240, 36, 180, 228, 212, 196, 228, 180, 229, 164, 244, 164, + 245, 148, 245, 148, 245, 148, 245, 148, 245, 148, 244, 164, + 229, 164, 228, 180, 212, 196, 180, 239, 1, 240, 36, 240, + 228, 240, 228, 240, 228, 240, 228, 240, 228, 240, 228, 240, + 228, 240, 228, 240, 228, 240, 228, 240, 228, 240, 228, 240, + 229, 240, 142, 0, 51, 112, 133, 37, 0, 15, 72, 240, + 180, 100, 240, 100, 163, 240, 67, 212, 244, 244, 212, 240, + 36, 196, 240, 52, 164, 240, 68, 149, 240, 84, 132, 240, + 100, 117, 240, 101, 101, 240, 101, 100, 240, 132, 85, 240, + 133, 69, 240, 133, 69, 240, 133, 69, 240, 133, 69, 240, + 133, 69, 240, 133, 69, 240, 133, 69, 240, 133, 84, 240, + 132, 101, 240, 116, 101, 240, 101, 116, 240, 100, 133, 240, + 84, 148, 132, 116, 180, 97, 65, 100, 180, 81, 97, 68, + 212, 65, 97, 52, 240, 19, 49, 113, 20, 240, 51, 33, + 117, 240, 99, 17, 84, 240, 186, 145, 240, 178, 129, 240, + 179, 98, 240, 180, 67, 240, 186, 240, 217, 240, 216, 240, + 247, 240, 240, 20, 0, 14, 112, 101, 38, 0, 19, 15, + 5, 240, 132, 149, 240, 84, 195, 240, 68, 212, 240, 36, + 213, 240, 20, 228, 240, 20, 229, 244, 229, 244, 229, 244, + 229, 244, 228, 240, 20, 213, 240, 20, 212, 240, 36, 195, + 240, 68, 148, 240, 110, 240, 148, 132, 240, 116, 164, 240, + 84, 180, 240, 68, 196, 240, 52, 196, 240, 52, 196, 240, + 52, 197, 240, 36, 197, 240, 36, 197, 240, 36, 197, 240, + 36, 197, 240, 36, 197, 113, 148, 198, 97, 148, 213, 97, + 149, 212, 81, 94, 164, 50, 240, 240, 21, 0, 53, 16, + 84, 26, 0, 10, 86, 98, 147, 99, 50, 130, 162, 19, + 114, 197, 99, 212, 98, 243, 83, 243, 83, 240, 18, 83, + 240, 18, 84, 242, 84, 242, 85, 240, 117, 240, 104, 240, + 75, 240, 29, 238, 237, 240, 42, 240, 87, 240, 101, 240, + 117, 240, 116, 65, 240, 36, 65, 240, 51, 65, 240, 51, + 66, 240, 35, 66, 240, 35, 67, 240, 18, 83, 243, 84, + 226, 99, 18, 178, 114, 51, 115, 129, 119, 0, 37, 16, + 100, 36, 0, 18, 31, 15, 111, 15, 100, 148, 148, 99, + 164, 163, 98, 180, 178, 97, 196, 193, 97, 196, 193, 97, + 196, 193, 97, 196, 193, 97, 196, 193, 82, 196, 194, 240, + 52, 240, 240, 36, 240, 240, 36, 240, 240, 36, 240, 240, + 36, 240, 240, 36, 240, 240, 36, 240, 240, 36, 240, 240, + 36, 240, 240, 36, 240, 240, 36, 240, 240, 36, 240, 240, + 36, 240, 240, 36, 240, 240, 36, 240, 240, 36, 240, 240, + 36, 240, 240, 36, 240, 240, 36, 240, 240, 22, 240, 159, + 3, 0, 55, 48, 104, 37, 0, 18, 78, 139, 148, 240, + 21, 196, 240, 49, 228, 240, 49, 228, 240, 49, 228, 240, + 49, 228, 240, 49, 228, 240, 49, 228, 240, 49, 228, 240, + 49, 228, 240, 49, 228, 240, 49, 228, 240, 49, 228, 240, + 49, 228, 240, 49, 228, 240, 49, 228, 240, 49, 228, 240, + 49, 228, 240, 49, 228, 240, 49, 228, 240, 49, 228, 240, + 49, 228, 240, 49, 228, 240, 49, 243, 240, 49, 244, 240, + 17, 240, 20, 240, 17, 240, 35, 241, 240, 67, 225, 240, + 83, 193, 240, 115, 146, 240, 148, 83, 240, 214, 0, 53, + 107, 38, 0, 19, 12, 202, 118, 240, 37, 180, 240, 67, + 197, 240, 50, 228, 240, 50, 228, 240, 49, 240, 20, 240, + 18, 240, 20, 240, 17, 240, 37, 226, 240, 52, 226, 240, + 52, 225, 240, 84, 194, 240, 84, 193, 240, 101, 177, 240, + 116, 162, 240, 116, 161, 240, 133, 130, 240, 148, 129, 240, + 165, 113, 240, 180, 98, 240, 180, 97, 240, 197, 66, 240, + 212, 66, 240, 213, 49, 240, 244, 34, 240, 244, 33, 240, + 240, 23, 240, 240, 38, 240, 240, 37, 240, 240, 68, 240, + 240, 67, 240, 240, 83, 240, 240, 98, 0, 54, 96, 144, + 51, 0, 25, 76, 108, 137, 117, 214, 213, 164, 228, 243, + 180, 228, 240, 17, 197, 213, 226, 212, 228, 225, 228, 228, + 225, 229, 198, 194, 244, 193, 20, 193, 240, 20, 193, 20, + 193, 240, 21, 161, 37, 162, 240, 36, 161, 52, 161, 240, + 52, 161, 52, 161, 240, 53, 129, 69, 130, 240, 68, 129, + 84, 129, 240, 84, 129, 84, 129, 240, 84, 113, 101, 98, + 240, 100, 97, 116, 97, 240, 116, 97, 116, 97, 240, 116, + 81, 133, 66, 240, 132, 65, 148, 65, 240, 148, 65, 148, + 65, 240, 148, 49, 165, 34, 240, 164, 33, 180, 33, 240, + 180, 33, 180, 33, 240, 180, 17, 199, 240, 197, 213, 240, + 213, 213, 240, 212, 229, 240, 227, 243, 240, 243, 243, 240, + 242, 240, 19, 240, 240, 17, 240, 33, 0, 72, 48, 99, + 38, 0, 19, 13, 139, 167, 182, 240, 20, 211, 240, 53, + 194, 240, 85, 177, 240, 116, 162, 240, 117, 130, 240, 149, + 113, 240, 180, 98, 240, 181, 66, 240, 213, 49, 240, 244, + 34, 240, 247, 240, 240, 37, 240, 240, 68, 240, 240, 69, + 240, 240, 54, 240, 240, 38, 240, 240, 18, 21, 240, 226, + 53, 240, 209, 84, 240, 194, 85, 240, 162, 117, 240, 145, + 148, 240, 130, 149, 240, 98, 181, 240, 81, 212, 240, 66, + 213, 240, 34, 245, 243, 240, 21, 198, 231, 139, 173, 0, + 57, 64, 104, 40, 0, 20, 13, 218, 134, 240, 53, 197, + 240, 51, 245, 240, 34, 240, 37, 240, 17, 240, 53, 242, + 240, 69, 210, 240, 100, 209, 240, 117, 178, 240, 133, 146, + 240, 149, 146, 240, 165, 114, 240, 197, 97, 240, 213, 82, + 240, 229, 50, 240, 240, 20, 49, 240, 240, 37, 18, 240, + 240, 54, 240, 240, 69, 240, 240, 100, 240, 240, 100, 240, + 240, 100, 240, 240, 100, 240, 240, 100, 240, 240, 100, 240, + 240, 100, 240, 240, 100, 240, 240, 100, 240, 240, 100, 240, + 240, 100, 240, 240, 101, 240, 254, 0, 61, 112, 72, 28, + 0, 14, 31, 8, 86, 197, 84, 213, 99, 213, 114, 229, + 114, 213, 129, 213, 145, 213, 145, 197, 161, 196, 240, 133, + 240, 117, 240, 132, 240, 133, 240, 117, 240, 132, 240, 133, + 240, 117, 240, 132, 240, 133, 177, 165, 193, 164, 209, 149, + 209, 148, 225, 132, 226, 117, 226, 116, 242, 100, 243, 85, + 228, 84, 199, 79, 9, 79, 8, 0, 42, 80, 50, 11, + 240, 119, 66, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 151, 64, + 37, 20, 0, 10, 65, 145, 129, 145, 129, 145, 145, 130, + 129, 145, 145, 145, 129, 145, 145, 145, 145, 145, 145, 19, + 81, 19, 86, 69, 86, 70, 85, 84, 115, 115, 0, 75, + 80, 50, 11, 240, 119, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 71, 64, 19, 16, 0, 8, 97, 227, 194, 18, 162, + 50, 130, 82, 97, 130, 65, 161, 0, 74, 64, 12, 9, + 0, 5, 99, 85, 69, 69, 83, 0, 43, 48, 22, 10, + 240, 240, 225, 129, 129, 130, 129, 145, 129, 145, 145, 145, + 19, 85, 86, 84, 115, 0, 38, 16, 66, 29, 0, 41, + 49, 240, 195, 240, 179, 240, 179, 240, 165, 240, 145, 19, + 240, 130, 20, 240, 113, 36, 240, 113, 51, 240, 98, 52, + 240, 81, 83, 240, 81, 83, 240, 65, 100, 240, 49, 115, + 240, 34, 116, 240, 17, 132, 240, 29, 242, 148, 225, 179, + 225, 179, 209, 196, 193, 211, 178, 212, 148, 196, 119, 153, + 0, 44, 54, 26, 0, 39, 15, 2, 195, 148, 163, 179, + 147, 180, 131, 195, 131, 195, 131, 195, 131, 195, 131, 179, + 147, 163, 163, 147, 189, 211, 163, 163, 179, 147, 195, 131, + 211, 115, 211, 115, 211, 115, 211, 115, 211, 115, 195, 131, + 179, 147, 163, 127, 2, 0, 40, 16, 69, 27, 0, 38, + 55, 81, 180, 83, 34, 163, 146, 18, 131, 196, 115, 227, + 115, 242, 99, 240, 18, 84, 240, 18, 84, 240, 33, 83, + 240, 49, 68, 240, 132, 240, 132, 240, 132, 240, 132, 240, + 132, 240, 147, 240, 49, 84, 240, 33, 84, 240, 33, 99, + 240, 33, 100, 241, 132, 225, 147, 209, 195, 161, 228, 98, + 240, 55, 0, 38, 48, 55, 28, 0, 42, 15, 1, 243, + 147, 211, 179, 179, 195, 163, 211, 147, 226, 147, 227, 131, + 242, 131, 243, 115, 243, 115, 243, 115, 243, 115, 243, 115, + 243, 115, 243, 115, 243, 115, 242, 131, 227, 131, 226, 147, + 211, 147, 195, 163, 179, 179, 147, 175, 1, 0, 43, 64, + 56, 26, 0, 39, 15, 6, 131, 180, 131, 210, 131, 210, + 131, 225, 131, 225, 131, 225, 131, 129, 81, 131, 129, 227, + 129, 227, 114, 236, 227, 114, 227, 129, 227, 129, 227, 129, + 97, 115, 241, 115, 241, 115, 241, 115, 226, 115, 226, 115, + 210, 131, 180, 95, 6, 0, 39, 80, 53, 25, 0, 37, + 79, 5, 131, 179, 131, 194, 131, 210, 115, 210, 115, 225, + 115, 225, 115, 225, 115, 129, 211, 129, 211, 129, 211, 114, + 220, 211, 114, 211, 129, 211, 129, 211, 129, 211, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 116, 240, 59, 0, 39, + 32, 65, 29, 0, 41, 7, 81, 227, 98, 34, 195, 146, + 18, 179, 180, 163, 211, 148, 226, 147, 242, 132, 242, 131, + 240, 33, 116, 240, 33, 116, 240, 164, 240, 164, 240, 164, + 240, 164, 240, 164, 171, 83, 228, 132, 227, 132, 227, 147, + 227, 148, 211, 163, 211, 179, 195, 196, 145, 18, 228, 82, + 49, 240, 24, 0, 41, 48, 55, 28, 0, 42, 10, 74, + 115, 195, 163, 195, 163, 195, 163, 195, 163, 195, 163, 195, + 163, 195, 163, 195, 163, 195, 163, 195, 175, 3, 163, 195, + 163, 195, 163, 195, 163, 195, 163, 195, 163, 195, 163, 195, + 163, 195, 163, 195, 163, 195, 163, 195, 122, 74, 0, 42, + 64, 30, 15, 0, 22, 75, 131, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 139, 0, 23, 37, 18, 0, 27, 74, + 196, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 114, 99, 99, 99, 99, 99, 99, + 83, 129, 99, 130, 67, 181, 0, 26, 65, 29, 0, 43, + 73, 135, 131, 196, 163, 194, 195, 178, 211, 162, 227, 146, + 243, 130, 240, 19, 113, 240, 51, 97, 240, 67, 82, 240, + 67, 53, 240, 51, 34, 19, 240, 51, 18, 36, 240, 37, + 68, 240, 20, 99, 240, 19, 116, 243, 132, 227, 148, 211, + 163, 211, 164, 195, 180, 179, 180, 179, 182, 105, 121, 0, + 44, 55, 23, 0, 34, 74, 240, 20, 240, 67, 240, 83, + 240, 83, 240, 83, 240, 83, 240, 83, 240, 83, 240, 83, + 240, 83, 240, 83, 240, 83, 240, 83, 240, 83, 240, 83, + 193, 115, 193, 115, 193, 115, 193, 115, 178, 115, 178, 115, + 163, 115, 132, 95, 3, 0, 35, 16, 94, 33, 0, 49, + 70, 240, 23, 116, 244, 164, 225, 19, 161, 19, 209, 19, + 161, 19, 209, 19, 161, 34, 193, 35, 161, 35, 177, 35, + 161, 35, 161, 51, 161, 51, 145, 51, 161, 51, 145, 51, + 161, 66, 129, 67, 161, 67, 113, 67, 161, 67, 97, 83, + 161, 83, 81, 83, 161, 83, 81, 83, 161, 98, 65, 99, + 161, 99, 49, 99, 161, 99, 49, 99, 161, 115, 17, 115, + 161, 115, 17, 115, 161, 131, 131, 161, 131, 131, 147, 115, + 131, 119, 97, 105, 0, 50, 70, 28, 0, 42, 6, 168, + 116, 195, 149, 193, 161, 20, 177, 161, 35, 177, 161, 36, + 161, 161, 52, 145, 161, 68, 129, 161, 83, 129, 161, 84, + 113, 161, 100, 97, 161, 116, 81, 161, 131, 81, 161, 132, + 65, 161, 148, 49, 161, 164, 33, 161, 179, 33, 161, 180, + 17, 161, 197, 161, 212, 161, 227, 161, 227, 147, 226, 120, + 193, 0, 42, 112, 70, 29, 0, 41, 7, 240, 83, 83, + 240, 19, 147, 211, 179, 179, 211, 148, 212, 131, 243, 116, + 244, 99, 240, 35, 99, 240, 36, 68, 240, 36, 68, 240, + 36, 68, 240, 36, 68, 240, 36, 68, 240, 36, 68, 240, + 36, 68, 240, 36, 84, 244, 100, 244, 115, 243, 132, 212, + 147, 211, 179, 179, 211, 147, 240, 19, 83, 240, 87, 0, + 41, 64, 53, 25, 0, 37, 79, 1, 195, 132, 163, 163, + 147, 179, 131, 180, 115, 180, 115, 180, 115, 180, 115, 180, + 115, 179, 131, 163, 147, 132, 173, 195, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 73, 0, 39, 64, 94, 28, 0, 39, 102, + 240, 67, 83, 243, 147, 195, 179, 163, 210, 147, 227, 130, + 240, 19, 99, 240, 19, 99, 240, 34, 98, 240, 51, 67, + 240, 51, 67, 240, 51, 67, 240, 51, 67, 240, 51, 67, + 240, 51, 67, 240, 51, 67, 240, 51, 83, 240, 34, 99, + 240, 19, 114, 240, 19, 115, 100, 82, 147, 66, 34, 51, + 163, 49, 66, 19, 195, 33, 84, 245, 67, 240, 57, 81, + 240, 83, 65, 240, 99, 34, 240, 103, 240, 102, 240, 133, + 240, 147, 0, 18, 32, 61, 29, 0, 43, 79, 240, 35, + 132, 227, 163, 211, 179, 195, 180, 179, 180, 179, 180, 179, + 180, 179, 179, 195, 163, 211, 132, 236, 240, 35, 116, 243, + 147, 227, 162, 227, 163, 211, 163, 211, 163, 211, 163, 211, + 164, 195, 164, 65, 115, 164, 65, 116, 163, 65, 74, 131, + 33, 240, 148, 0, 40, 80, 56, 20, 0, 28, 21, 65, + 130, 82, 18, 113, 132, 98, 147, 82, 178, 82, 178, 82, + 193, 82, 193, 83, 177, 84, 240, 38, 249, 202, 186, 231, + 240, 20, 240, 51, 65, 195, 65, 210, 65, 210, 65, 210, + 66, 193, 82, 178, 84, 145, 98, 18, 98, 113, 70, 0, + 28, 80, 61, 27, 0, 40, 79, 8, 67, 115, 115, 66, + 131, 130, 66, 131, 130, 65, 147, 145, 65, 147, 145, 65, + 147, 145, 65, 147, 145, 227, 240, 147, 240, 147, 240, 147, + 240, 147, 240, 147, 240, 147, 240, 147, 240, 147, 240, 147, + 240, 147, 240, 147, 240, 147, 240, 147, 240, 133, 240, 61, + 0, 41, 80, 58, 28, 0, 42, 10, 104, 115, 211, 147, + 225, 163, 225, 163, 225, 163, 225, 163, 225, 163, 225, 163, + 225, 163, 225, 163, 225, 163, 225, 163, 225, 163, 225, 163, + 225, 163, 225, 163, 225, 163, 225, 163, 225, 178, 209, 195, + 193, 210, 177, 242, 145, 240, 35, 82, 240, 86, 0, 40, + 16, 68, 30, 0, 45, 9, 167, 116, 212, 148, 226, 179, + 225, 196, 209, 211, 194, 212, 177, 228, 162, 243, 161, 240, + 20, 145, 240, 35, 130, 240, 36, 113, 240, 52, 98, 240, + 67, 97, 240, 84, 81, 240, 99, 65, 240, 116, 49, 240, + 116, 34, 240, 131, 33, 240, 148, 17, 240, 164, 240, 180, + 240, 180, 240, 194, 240, 210, 0, 43, 32, 102, 40, 0, + 60, 9, 89, 103, 101, 149, 164, 132, 163, 194, 148, 164, + 177, 179, 179, 162, 180, 148, 161, 196, 149, 145, 211, 145, + 19, 130, 212, 114, 19, 129, 228, 113, 36, 113, 243, 113, + 51, 98, 244, 81, 67, 97, 240, 20, 81, 68, 81, 240, + 35, 81, 83, 66, 240, 36, 49, 99, 65, 240, 52, 49, + 100, 49, 240, 67, 49, 115, 34, 240, 68, 17, 131, 33, + 240, 84, 17, 132, 17, 240, 99, 17, 149, 240, 100, 164, + 240, 131, 164, 240, 131, 179, 240, 130, 194, 240, 161, 194, + 0, 56, 96, 66, 30, 0, 45, 25, 104, 165, 133, 212, + 146, 244, 145, 240, 36, 113, 240, 68, 82, 240, 83, 81, + 240, 100, 49, 240, 132, 18, 240, 149, 240, 164, 240, 196, + 240, 181, 240, 165, 240, 145, 36, 240, 114, 52, 240, 82, + 83, 240, 81, 100, 240, 49, 132, 240, 18, 148, 241, 164, + 226, 180, 180, 181, 120, 153, 0, 45, 64, 63, 31, 0, + 46, 74, 167, 117, 211, 180, 210, 212, 193, 228, 177, 240, + 20, 146, 240, 36, 129, 240, 52, 114, 240, 68, 82, 240, + 100, 65, 240, 116, 50, 240, 132, 33, 240, 163, 17, 240, + 181, 240, 195, 240, 211, 240, 211, 240, 211, 240, 211, 240, + 211, 240, 211, 240, 211, 240, 211, 240, 169, 0, 48, 16, + 55, 23, 0, 34, 95, 3, 85, 148, 83, 164, 98, 164, + 113, 180, 113, 164, 129, 148, 145, 147, 240, 68, 240, 52, + 240, 52, 240, 68, 240, 52, 240, 52, 240, 68, 240, 52, + 145, 132, 161, 132, 161, 116, 177, 100, 178, 100, 178, 84, + 179, 68, 165, 79, 4, 0, 35, 9, 28, 0, 80, 79, + 9, 0, 84, 64, 15, 52, 0, 127, 0, 22, 79, 15, + 15, 3, 0, 127, 0, 29, 64, 23, 18, 0, 7, 19, + 83, 115, 83, 100, 68, 99, 83, 99, 83, 114, 98, 130, + 98, 114, 98, 0, 84, 32, 15, 20, 0, 12, 116, 129, + 103, 81, 98, 71, 97, 132, 0, 98, 48, +}; + +//***************************************************************************** +// +// The font definition for the 46 point Cmsc font. +// +//***************************************************************************** +const tFont g_sFontCmsc46 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 47, + + // + // The height of the font. + // + 48, + + // + // The baseline of the font. + // + 36, + + // + // The offset to each character in the font. + // + { + 0, 4, 41, 78, 207, 300, 442, 550, + 572, 623, 673, 726, 830, 851, 861, 873, + 972, 1041, 1105, 1174, 1243, 1319, 1386, 1459, + 1530, 1597, 1670, 1689, 1717, 1786, 1801, 1870, + 1935, 2058, 2162, 2255, 2352, 2451, 2548, 2636, + 2744, 2814, 2853, 2924, 3025, 3101, 3233, 3336, + 3438, 3510, 3643, 3744, 3828, 3928, 4032, 4139, + 4283, 4382, 4486, 4558, 4608, 4645, 4695, 4714, + 4726, 4748, 4814, 4868, 4937, 4992, 5048, 5101, + 5166, 5221, 5251, 5288, 5353, 5408, 5502, 5572, + 5642, 5695, 5789, 5850, 5906, 5967, 6025, 6093, + 6195, 6261, 6324, 6379, 6388, 6403, 6426, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmsc46Data +}; diff --git a/grlib/fonts/fontcmsc48.c b/grlib/fonts/fontcmsc48.c new file mode 100644 index 0000000..e5c11c7 --- /dev/null +++ b/grlib/fonts/fontcmsc48.c @@ -0,0 +1,666 @@ +//***************************************************************************** +// +// fontcmsc48.c - Font definition for the 48pt Cmsc font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmsc +// Size: 48 point +// Bold: no +// Italic: no +// Memory usage: 6912 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 48 point Cmsc font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmsc48Data[6709] = +{ + 5, 19, 0, 118, 96, 39, 9, 240, 211, 85, 69, 69, + 69, 69, 69, 69, 69, 83, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 113, 129, 129, 129, 129, 240, 240, + 211, 85, 69, 69, 83, 0, 14, 16, 39, 20, 0, 10, + 19, 115, 101, 85, 86, 70, 70, 70, 83, 17, 83, 17, + 145, 145, 145, 145, 145, 145, 145, 145, 129, 145, 145, 145, + 129, 145, 145, 130, 129, 145, 129, 145, 0, 78, 64, 138, + 40, 0, 22, 18, 161, 240, 194, 146, 240, 194, 146, 240, + 178, 162, 240, 178, 162, 240, 178, 146, 240, 193, 162, 240, + 178, 162, 240, 178, 146, 240, 194, 146, 240, 178, 162, 240, + 178, 162, 240, 178, 146, 240, 193, 162, 240, 178, 162, 240, + 178, 161, 239, 15, 6, 79, 15, 6, 240, 18, 162, 240, + 178, 146, 240, 194, 146, 240, 178, 162, 240, 178, 162, 240, + 178, 146, 240, 194, 146, 240, 178, 162, 240, 31, 15, 6, + 79, 15, 6, 225, 162, 240, 178, 162, 240, 178, 161, 240, + 194, 146, 240, 178, 162, 240, 178, 162, 240, 178, 146, 240, + 194, 146, 240, 178, 162, 240, 178, 161, 240, 194, 146, 240, + 178, 162, 240, 178, 162, 240, 178, 146, 240, 194, 146, 240, + 193, 162, 0, 12, 80, 98, 23, 240, 240, 33, 240, 113, + 240, 71, 235, 180, 33, 51, 147, 65, 82, 130, 81, 98, + 98, 97, 113, 98, 97, 114, 66, 113, 129, 66, 113, 99, + 66, 113, 84, 66, 113, 84, 67, 97, 98, 83, 97, 227, + 81, 229, 49, 248, 251, 220, 219, 249, 241, 38, 225, 68, + 225, 84, 209, 99, 82, 97, 114, 68, 81, 114, 68, 81, + 114, 67, 97, 114, 65, 129, 114, 66, 113, 98, 97, 113, + 98, 98, 97, 82, 130, 81, 67, 147, 49, 36, 187, 231, + 240, 65, 240, 113, 0, 27, 64, 145, 41, 0, 5, 101, + 240, 98, 199, 240, 67, 179, 52, 240, 20, 163, 100, 212, + 163, 118, 134, 179, 130, 31, 194, 146, 71, 35, 179, 161, + 195, 195, 161, 194, 211, 161, 179, 211, 161, 163, 227, 161, + 147, 243, 161, 146, 240, 19, 161, 131, 240, 34, 145, 131, + 240, 51, 129, 130, 240, 82, 114, 115, 240, 83, 97, 115, + 240, 115, 50, 115, 240, 165, 130, 240, 240, 131, 133, 240, + 147, 130, 50, 240, 115, 115, 97, 240, 99, 114, 114, 240, + 67, 115, 129, 240, 51, 130, 145, 240, 50, 131, 161, 240, + 19, 131, 161, 243, 147, 161, 227, 163, 161, 227, 163, 161, + 211, 179, 161, 195, 195, 161, 179, 226, 146, 179, 227, 129, + 179, 243, 114, 163, 240, 35, 97, 179, 240, 51, 51, 163, + 240, 87, 193, 240, 117, 0, 47, 16, 123, 38, 0, 10, + 116, 240, 240, 39, 240, 243, 50, 240, 227, 82, 240, 211, + 97, 240, 210, 113, 240, 195, 113, 240, 195, 113, 240, 195, + 113, 240, 195, 113, 240, 195, 97, 240, 211, 97, 240, 211, + 81, 240, 228, 49, 240, 240, 19, 34, 240, 240, 19, 18, + 186, 181, 202, 180, 245, 243, 240, 18, 240, 36, 241, 240, + 33, 19, 241, 240, 17, 36, 209, 240, 17, 68, 177, 240, + 17, 84, 177, 241, 116, 145, 241, 148, 113, 242, 148, 98, + 227, 164, 81, 243, 180, 49, 240, 19, 196, 17, 240, 35, + 213, 193, 68, 197, 193, 83, 213, 162, 84, 162, 36, 130, + 117, 84, 69, 82, 156, 121, 214, 198, 0, 53, 32, 23, + 10, 240, 240, 179, 101, 86, 70, 83, 17, 145, 145, 145, + 145, 129, 145, 129, 145, 129, 129, 0, 39, 96, 53, 16, + 240, 240, 209, 210, 210, 210, 210, 226, 210, 211, 210, 211, + 210, 211, 211, 210, 211, 211, 211, 210, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 227, 211, 211, 211, + 226, 227, 211, 226, 227, 226, 227, 226, 242, 227, 226, 242, + 242, 242, 64, 53, 16, 240, 240, 34, 242, 242, 242, 242, + 227, 226, 242, 226, 227, 226, 227, 226, 226, 227, 211, 211, + 226, 227, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 210, 226, 211, 211, 210, 226, 211, 210, 226, 210, 226, + 210, 226, 210, 210, 210, 210, 210, 224, 58, 23, 0, 6, + 99, 240, 83, 240, 83, 240, 83, 209, 99, 97, 84, 67, + 68, 84, 65, 69, 116, 33, 37, 179, 17, 19, 240, 21, + 240, 53, 240, 19, 17, 19, 196, 33, 36, 133, 49, 68, + 84, 82, 68, 67, 83, 83, 195, 240, 83, 240, 83, 240, + 83, 240, 83, 0, 79, 16, 107, 38, 0, 44, 98, 240, + 240, 98, 240, 240, 98, 240, 240, 98, 240, 240, 98, 240, + 240, 98, 240, 240, 98, 240, 240, 98, 240, 240, 98, 240, + 240, 98, 240, 240, 98, 240, 240, 98, 240, 240, 98, 240, + 240, 98, 240, 240, 98, 240, 240, 98, 240, 95, 15, 4, + 79, 15, 4, 240, 82, 240, 240, 98, 240, 240, 98, 240, + 240, 98, 240, 240, 98, 240, 240, 98, 240, 240, 98, 240, + 240, 98, 240, 240, 98, 240, 240, 98, 240, 240, 98, 240, + 240, 98, 240, 240, 98, 240, 240, 98, 240, 240, 98, 240, + 240, 98, 0, 35, 96, 21, 10, 0, 41, 51, 116, 86, + 85, 85, 145, 145, 145, 129, 145, 130, 129, 129, 129, 240, + 240, 128, 10, 17, 0, 55, 45, 77, 77, 0, 45, 16, + 12, 9, 0, 37, 35, 85, 69, 69, 83, 0, 14, 16, + 101, 24, 0, 8, 34, 240, 114, 240, 98, 240, 114, 240, + 114, 240, 98, 240, 114, 240, 99, 240, 98, 240, 114, 240, + 98, 240, 114, 240, 99, 240, 98, 240, 114, 240, 98, 240, + 114, 240, 114, 240, 98, 240, 114, 240, 98, 240, 114, 240, + 114, 240, 98, 240, 114, 240, 98, 240, 114, 240, 114, 240, + 98, 240, 114, 240, 98, 240, 114, 240, 114, 240, 98, 240, + 114, 240, 99, 240, 98, 240, 114, 240, 98, 240, 114, 240, + 99, 240, 98, 240, 114, 240, 98, 240, 114, 240, 114, 240, + 98, 240, 114, 240, 112, 72, 24, 0, 18, 118, 240, 18, + 83, 210, 130, 178, 162, 146, 194, 130, 194, 115, 195, 98, + 226, 98, 226, 98, 226, 83, 227, 67, 227, 67, 227, 67, + 227, 67, 227, 67, 227, 67, 227, 67, 227, 67, 227, 67, + 227, 67, 227, 67, 227, 67, 227, 67, 227, 83, 210, 99, + 195, 99, 195, 114, 194, 131, 163, 147, 131, 180, 83, 218, + 240, 22, 0, 34, 48, 67, 20, 0, 16, 2, 240, 20, + 170, 164, 51, 240, 35, 240, 35, 240, 35, 240, 35, 240, + 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, + 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, + 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, + 35, 240, 35, 240, 35, 240, 21, 175, 95, 0, 30, 64, + 70, 24, 0, 18, 103, 252, 179, 101, 146, 149, 114, 181, + 97, 212, 84, 196, 69, 180, 69, 180, 69, 180, 83, 196, + 240, 84, 240, 68, 240, 84, 240, 83, 240, 83, 240, 84, + 240, 68, 240, 82, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 161, 162, 177, 146, 193, 130, 194, 113, 225, 127, + 2, 111, 3, 95, 4, 95, 4, 0, 36, 80, 70, 25, + 0, 19, 87, 243, 84, 194, 148, 145, 181, 116, 164, 117, + 149, 101, 149, 101, 149, 115, 164, 240, 100, 240, 84, 240, + 100, 240, 83, 240, 99, 240, 23, 240, 57, 240, 117, 240, + 116, 240, 116, 240, 101, 240, 101, 240, 85, 83, 197, 69, + 181, 69, 181, 69, 181, 69, 180, 84, 181, 98, 196, 115, + 164, 148, 101, 204, 248, 0, 35, 96, 79, 26, 0, 18, + 18, 240, 146, 240, 131, 240, 116, 240, 116, 240, 101, 240, + 82, 19, 240, 81, 35, 240, 66, 35, 240, 50, 51, 240, + 49, 67, 240, 34, 67, 240, 18, 83, 240, 17, 99, 242, + 99, 226, 115, 225, 131, 210, 131, 194, 147, 193, 163, 177, + 179, 162, 179, 161, 195, 159, 7, 79, 7, 240, 51, 240, + 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 61, 221, + 0, 39, 64, 69, 24, 0, 18, 51, 147, 158, 173, 187, + 209, 23, 241, 240, 129, 240, 129, 240, 129, 240, 129, 240, + 129, 240, 129, 70, 209, 42, 177, 19, 84, 163, 132, 146, + 163, 240, 100, 240, 99, 240, 100, 240, 84, 240, 84, 83, + 196, 84, 180, 69, 180, 68, 196, 83, 195, 97, 212, 98, + 195, 130, 164, 131, 132, 164, 84, 203, 246, 0, 34, 64, + 74, 24, 0, 19, 38, 243, 82, 210, 145, 178, 132, 146, + 148, 131, 148, 115, 163, 131, 240, 99, 240, 84, 240, 83, + 69, 195, 56, 148, 34, 83, 132, 18, 115, 116, 17, 147, + 101, 164, 85, 179, 84, 196, 68, 196, 68, 196, 68, 196, + 68, 196, 83, 196, 83, 196, 83, 196, 83, 195, 115, 179, + 115, 164, 130, 163, 147, 131, 180, 68, 218, 240, 22, 0, + 34, 48, 75, 25, 0, 15, 98, 240, 143, 5, 95, 5, + 95, 4, 111, 3, 98, 242, 98, 226, 113, 241, 129, 225, + 145, 210, 240, 129, 240, 129, 240, 130, 240, 129, 240, 129, + 240, 130, 240, 130, 240, 114, 240, 130, 240, 115, 240, 115, + 240, 115, 240, 99, 240, 115, 240, 115, 240, 115, 240, 100, + 240, 100, 240, 100, 240, 100, 240, 100, 240, 100, 240, 100, + 240, 114, 0, 36, 48, 71, 24, 0, 18, 119, 242, 99, + 193, 162, 161, 194, 129, 211, 113, 226, 98, 226, 99, 210, + 99, 210, 100, 178, 133, 146, 135, 98, 167, 66, 202, 249, + 240, 40, 226, 40, 178, 72, 131, 119, 114, 165, 98, 197, + 67, 212, 66, 243, 66, 240, 18, 66, 240, 18, 66, 240, + 18, 67, 242, 82, 226, 99, 210, 115, 163, 148, 100, 188, + 246, 0, 34, 48, 73, 24, 0, 18, 118, 240, 19, 67, + 210, 130, 178, 162, 147, 163, 115, 179, 115, 195, 84, 195, + 84, 195, 84, 196, 68, 196, 68, 196, 68, 196, 68, 196, + 83, 181, 84, 165, 99, 150, 100, 129, 20, 116, 82, 36, + 152, 52, 166, 67, 240, 99, 240, 99, 240, 84, 240, 83, + 240, 99, 131, 147, 132, 147, 132, 131, 148, 115, 178, 100, + 218, 247, 0, 34, 80, 19, 9, 0, 19, 35, 85, 69, + 69, 83, 0, 13, 19, 85, 69, 69, 83, 0, 14, 16, + 28, 9, 0, 19, 35, 85, 69, 69, 83, 0, 13, 19, + 85, 69, 69, 84, 129, 129, 129, 113, 129, 129, 113, 114, + 98, 240, 240, 64, 76, 35, 0, 56, 18, 240, 240, 20, + 240, 213, 240, 213, 240, 213, 240, 212, 240, 213, 240, 213, + 240, 213, 240, 212, 240, 213, 240, 213, 240, 213, 240, 213, + 240, 244, 240, 240, 53, 240, 240, 37, 240, 240, 37, 240, + 240, 52, 240, 240, 53, 240, 240, 37, 240, 240, 37, 240, + 240, 37, 240, 240, 52, 240, 240, 53, 240, 240, 37, 240, + 240, 37, 240, 240, 50, 0, 44, 32, 20, 38, 0, 95, + 15, 15, 4, 79, 15, 4, 0, 38, 79, 15, 4, 79, + 15, 4, 0, 86, 76, 35, 0, 52, 66, 240, 240, 53, + 240, 240, 37, 240, 240, 37, 240, 240, 37, 240, 240, 52, + 240, 240, 53, 240, 240, 37, 240, 240, 37, 240, 240, 52, + 240, 240, 53, 240, 240, 37, 240, 240, 37, 240, 240, 37, + 240, 240, 20, 240, 213, 240, 213, 240, 213, 240, 213, 240, + 212, 240, 213, 240, 213, 240, 213, 240, 212, 240, 228, 240, + 213, 240, 213, 240, 242, 0, 47, 112, 68, 22, 0, 9, + 7, 219, 148, 100, 115, 163, 98, 179, 82, 211, 67, 195, + 68, 179, 68, 179, 82, 195, 240, 66, 240, 67, 240, 51, + 240, 50, 240, 66, 240, 66, 240, 81, 240, 82, 240, 81, + 240, 97, 240, 81, 240, 97, 240, 97, 240, 97, 240, 97, + 240, 97, 0, 13, 67, 240, 53, 240, 37, 240, 37, 240, + 51, 0, 34, 64, 131, 37, 0, 15, 56, 240, 205, 240, + 116, 133, 240, 67, 211, 240, 34, 240, 34, 242, 240, 66, + 210, 240, 98, 178, 134, 146, 146, 121, 146, 129, 116, 83, + 129, 129, 99, 130, 130, 97, 99, 177, 129, 97, 83, 196, + 81, 97, 83, 211, 82, 65, 99, 211, 97, 65, 83, 227, + 97, 65, 83, 227, 97, 65, 83, 227, 97, 65, 83, 227, + 97, 65, 83, 227, 97, 65, 83, 227, 97, 65, 99, 211, + 97, 81, 83, 211, 97, 81, 84, 180, 97, 81, 99, 180, + 81, 98, 99, 145, 19, 81, 113, 116, 83, 35, 50, 114, + 121, 71, 146, 133, 132, 178, 240, 240, 83, 240, 240, 83, + 240, 115, 179, 240, 37, 213, 151, 240, 63, 1, 240, 138, + 0, 52, 96, 111, 38, 0, 16, 34, 240, 240, 98, 240, + 240, 84, 240, 240, 68, 240, 240, 68, 240, 240, 54, 240, + 240, 33, 20, 240, 240, 33, 21, 240, 242, 21, 240, 241, + 52, 240, 226, 53, 240, 210, 68, 240, 209, 84, 240, 194, + 85, 240, 178, 100, 240, 177, 116, 240, 162, 117, 240, 145, + 148, 240, 130, 149, 240, 114, 149, 240, 113, 180, 240, 98, + 181, 240, 95, 3, 240, 95, 3, 240, 66, 213, 240, 50, + 213, 240, 49, 244, 240, 34, 245, 240, 18, 240, 20, 242, + 240, 37, 226, 240, 37, 211, 240, 52, 197, 240, 22, 138, + 189, 74, 189, 0, 57, 64, 91, 35, 0, 21, 127, 7, + 223, 10, 243, 198, 227, 230, 195, 245, 195, 240, 21, 179, + 240, 21, 179, 240, 37, 163, 240, 37, 163, 240, 21, 179, + 240, 21, 179, 245, 195, 229, 211, 197, 255, 2, 240, 63, + 4, 240, 19, 213, 227, 245, 195, 240, 21, 179, 240, 37, + 163, 240, 37, 163, 240, 53, 147, 240, 53, 147, 240, 53, + 147, 240, 53, 147, 240, 53, 147, 240, 37, 163, 240, 37, + 163, 240, 21, 179, 246, 179, 214, 143, 11, 159, 8, 0, + 54, 102, 35, 0, 14, 120, 129, 253, 82, 214, 115, 66, + 181, 195, 19, 165, 226, 19, 149, 240, 21, 133, 240, 52, + 117, 240, 83, 116, 240, 99, 101, 240, 114, 100, 240, 130, + 85, 240, 130, 85, 240, 130, 84, 240, 161, 69, 240, 245, + 240, 245, 240, 245, 240, 245, 240, 245, 240, 245, 240, 245, + 240, 240, 20, 240, 161, 85, 240, 145, 85, 240, 145, 100, + 240, 145, 101, 240, 129, 116, 240, 113, 133, 240, 97, 149, + 240, 65, 181, 240, 34, 197, 242, 230, 194, 240, 38, 116, + 240, 93, 240, 168, 0, 49, 96, 98, 37, 0, 23, 31, + 7, 255, 9, 240, 52, 182, 240, 20, 213, 244, 244, 228, + 240, 20, 212, 240, 21, 196, 240, 37, 180, 240, 52, 180, + 240, 53, 164, 240, 53, 164, 240, 68, 164, 240, 69, 148, + 240, 69, 148, 240, 69, 148, 240, 69, 148, 240, 69, 148, + 240, 69, 148, 240, 69, 148, 240, 69, 148, 240, 69, 148, + 240, 68, 164, 240, 53, 164, 240, 53, 164, 240, 52, 180, + 240, 37, 180, 240, 36, 196, 240, 20, 212, 244, 228, 213, + 244, 182, 191, 9, 223, 6, 0, 57, 64, 98, 34, 0, + 21, 47, 13, 111, 13, 180, 229, 180, 240, 19, 180, 240, + 34, 180, 240, 34, 180, 240, 49, 180, 240, 50, 164, 240, + 50, 164, 240, 65, 164, 161, 129, 164, 161, 240, 68, 161, + 240, 68, 146, 240, 68, 131, 240, 79, 240, 79, 240, 68, + 131, 240, 68, 146, 240, 68, 161, 240, 68, 161, 240, 68, + 161, 145, 148, 240, 81, 148, 240, 81, 148, 240, 66, 148, + 240, 66, 148, 240, 65, 164, 240, 50, 164, 240, 35, 164, + 240, 20, 164, 230, 95, 14, 95, 13, 0, 51, 96, 90, + 33, 0, 20, 95, 12, 111, 12, 180, 214, 164, 240, 19, + 164, 240, 34, 164, 240, 34, 164, 240, 34, 164, 240, 49, + 164, 240, 49, 164, 240, 49, 164, 161, 114, 148, 161, 240, + 52, 161, 240, 52, 146, 240, 52, 131, 240, 63, 240, 63, + 240, 52, 131, 240, 52, 146, 240, 52, 161, 240, 52, 161, + 240, 52, 161, 240, 52, 161, 240, 52, 240, 228, 240, 228, + 240, 228, 240, 228, 240, 228, 240, 228, 240, 229, 240, 143, + 240, 63, 0, 51, 96, 114, 39, 0, 16, 55, 145, 240, + 77, 82, 240, 38, 115, 66, 245, 194, 35, 229, 226, 19, + 212, 240, 37, 197, 240, 52, 181, 240, 83, 180, 240, 99, + 165, 240, 114, 164, 240, 130, 149, 240, 130, 149, 240, 130, + 148, 240, 161, 133, 240, 240, 69, 240, 240, 69, 240, 240, + 69, 240, 240, 69, 240, 240, 69, 240, 240, 69, 240, 240, + 69, 240, 30, 84, 240, 30, 85, 240, 85, 149, 240, 100, + 164, 240, 100, 165, 240, 84, 180, 240, 84, 181, 240, 68, + 197, 240, 52, 213, 240, 36, 229, 245, 246, 194, 19, 240, + 38, 116, 50, 240, 77, 97, 240, 120, 0, 55, 96, 72, + 37, 0, 23, 30, 94, 78, 94, 148, 244, 228, 244, 228, + 244, 228, 244, 228, 244, 228, 244, 228, 244, 228, 244, 228, + 244, 228, 244, 228, 244, 228, 244, 228, 244, 239, 8, 239, + 8, 228, 244, 228, 244, 228, 244, 228, 244, 228, 244, 228, + 244, 228, 244, 228, 244, 228, 244, 228, 244, 228, 244, 228, + 244, 228, 244, 228, 244, 158, 94, 78, 94, 0, 56, 40, + 18, 0, 11, 46, 78, 134, 212, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 229, 142, 78, + 0, 27, 64, 72, 25, 0, 16, 63, 175, 240, 21, 240, + 100, 240, 100, 240, 100, 240, 100, 240, 100, 240, 100, 240, + 100, 240, 100, 240, 100, 240, 100, 240, 100, 240, 100, 240, + 100, 240, 100, 240, 100, 240, 100, 240, 100, 240, 100, 240, + 100, 240, 100, 240, 100, 240, 100, 147, 148, 133, 132, 133, + 132, 133, 117, 132, 132, 162, 132, 195, 84, 234, 240, 38, + 0, 36, 16, 104, 39, 0, 24, 62, 170, 94, 170, 164, + 240, 37, 212, 240, 35, 244, 240, 33, 240, 36, 240, 17, + 240, 52, 226, 240, 68, 210, 240, 84, 194, 240, 100, 178, + 240, 116, 162, 240, 132, 145, 240, 164, 129, 240, 180, 99, + 240, 180, 85, 240, 164, 71, 240, 148, 50, 37, 240, 132, + 34, 68, 240, 132, 17, 101, 240, 117, 133, 240, 100, 165, + 240, 84, 180, 240, 84, 181, 240, 68, 197, 240, 52, 212, + 240, 52, 213, 240, 36, 229, 240, 20, 245, 244, 240, 20, + 244, 240, 21, 229, 247, 126, 141, 78, 141, 0, 59, 80, + 31, 0, 19, 63, 240, 31, 240, 101, 240, 180, 240, 196, + 240, 196, 240, 196, 240, 196, 240, 196, 240, 196, 240, 196, + 240, 196, 240, 196, 240, 196, 240, 196, 240, 196, 240, 196, + 240, 196, 240, 196, 240, 196, 240, 196, 240, 33, 148, 240, + 33, 148, 240, 33, 148, 240, 18, 148, 240, 18, 148, 240, + 18, 148, 240, 17, 164, 242, 164, 227, 164, 212, 164, 182, + 95, 11, 95, 11, 0, 47, 16, 135, 45, 0, 28, 25, + 240, 137, 74, 240, 106, 149, 240, 101, 225, 20, 240, 81, + 19, 225, 20, 240, 66, 19, 225, 20, 240, 65, 35, 225, + 36, 240, 34, 35, 225, 36, 240, 34, 35, 225, 52, 240, + 17, 51, 225, 52, 242, 51, 225, 68, 225, 67, 225, 68, + 210, 67, 225, 68, 210, 67, 225, 84, 193, 83, 225, 84, + 178, 83, 225, 100, 161, 99, 225, 100, 146, 99, 225, 100, + 145, 115, 225, 116, 129, 115, 225, 116, 114, 115, 225, 132, + 97, 131, 225, 132, 82, 131, 225, 133, 65, 147, 225, 148, + 65, 147, 225, 148, 50, 147, 225, 164, 33, 163, 225, 164, + 18, 163, 225, 181, 179, 225, 181, 179, 226, 164, 195, 197, + 163, 196, 139, 115, 125, 75, 129, 141, 0, 68, 102, 37, + 0, 23, 25, 219, 74, 203, 150, 229, 198, 240, 17, 225, + 21, 241, 225, 37, 225, 225, 37, 225, 225, 53, 209, 225, + 69, 193, 225, 85, 177, 225, 85, 177, 225, 101, 161, 225, + 117, 145, 225, 117, 145, 225, 133, 129, 225, 149, 113, 225, + 150, 97, 225, 165, 97, 225, 181, 81, 225, 197, 65, 225, + 197, 65, 225, 213, 49, 225, 229, 33, 225, 230, 17, 225, + 245, 17, 225, 240, 22, 225, 240, 37, 225, 240, 37, 225, + 240, 52, 225, 240, 67, 197, 240, 35, 155, 242, 155, 240, + 17, 0, 56, 80, 109, 38, 0, 15, 120, 240, 206, 240, + 118, 102, 240, 69, 165, 240, 36, 228, 244, 240, 20, 212, + 240, 52, 180, 240, 84, 164, 240, 84, 148, 240, 116, 132, + 240, 116, 117, 240, 117, 101, 240, 132, 100, 240, 149, 69, + 240, 149, 69, 240, 149, 69, 240, 149, 69, 240, 149, 69, + 240, 149, 69, 240, 149, 69, 240, 149, 69, 240, 149, 85, + 240, 133, 85, 240, 117, 101, 240, 117, 101, 240, 117, 117, + 240, 85, 148, 240, 84, 165, 240, 53, 181, 240, 36, 212, + 240, 20, 244, 228, 240, 37, 165, 240, 70, 102, 240, 126, + 240, 200, 0, 54, 48, 73, 33, 0, 20, 95, 6, 207, + 9, 228, 181, 212, 213, 180, 228, 180, 229, 164, 245, 148, + 245, 148, 245, 148, 245, 148, 245, 148, 245, 148, 229, 164, + 228, 180, 213, 180, 181, 223, 4, 239, 1, 240, 36, 240, + 228, 240, 228, 240, 228, 240, 228, 240, 228, 240, 228, 240, + 228, 240, 228, 240, 228, 240, 228, 240, 228, 240, 229, 240, + 142, 240, 78, 0, 51, 112, 139, 38, 0, 15, 120, 240, + 206, 240, 133, 102, 240, 69, 165, 240, 36, 228, 244, 240, + 20, 212, 240, 52, 181, 240, 53, 164, 240, 85, 133, 240, + 85, 132, 240, 117, 101, 240, 117, 101, 240, 117, 100, 240, + 149, 69, 240, 149, 69, 240, 149, 69, 240, 149, 69, 240, + 149, 69, 240, 149, 69, 240, 149, 69, 240, 149, 69, 240, + 149, 84, 240, 148, 101, 240, 132, 101, 240, 117, 116, 240, + 116, 133, 240, 100, 148, 132, 132, 165, 103, 100, 180, 97, + 67, 68, 212, 65, 113, 67, 244, 49, 114, 35, 240, 36, + 33, 129, 19, 240, 71, 115, 240, 142, 145, 240, 39, 50, + 129, 240, 194, 129, 240, 195, 98, 240, 196, 67, 240, 202, + 240, 233, 240, 232, 240, 240, 23, 240, 240, 36, 0, 15, + 32, 102, 38, 0, 23, 111, 5, 240, 63, 7, 240, 100, + 150, 240, 68, 197, 240, 36, 213, 240, 20, 213, 240, 20, + 229, 244, 229, 244, 229, 244, 229, 244, 229, 244, 213, 240, + 20, 212, 240, 36, 196, 240, 52, 150, 240, 79, 1, 240, + 127, 240, 132, 133, 240, 100, 164, 240, 84, 180, 240, 68, + 196, 240, 52, 196, 240, 52, 197, 240, 36, 197, 240, 36, + 197, 240, 36, 197, 240, 36, 197, 240, 36, 197, 240, 36, + 198, 97, 148, 198, 97, 148, 213, 82, 78, 149, 50, 107, + 201, 240, 240, 21, 0, 53, 16, 91, 27, 0, 11, 7, + 113, 171, 66, 132, 115, 35, 115, 178, 19, 114, 213, 99, + 228, 98, 240, 19, 83, 240, 19, 83, 240, 34, 83, 240, + 34, 84, 240, 18, 84, 240, 18, 85, 240, 133, 240, 120, + 240, 91, 240, 46, 239, 238, 240, 43, 240, 88, 240, 117, + 240, 133, 240, 132, 65, 240, 52, 65, 240, 67, 65, 240, + 67, 66, 240, 51, 66, 240, 51, 67, 240, 34, 84, 243, + 85, 211, 102, 179, 114, 52, 116, 114, 76, 145, 135, 0, + 38, 64, 103, 36, 0, 22, 95, 15, 111, 15, 85, 148, + 149, 67, 180, 179, 66, 196, 194, 66, 196, 194, 66, 196, + 194, 65, 212, 209, 65, 212, 209, 65, 212, 209, 65, 212, + 209, 240, 52, 240, 240, 36, 240, 240, 36, 240, 240, 36, + 240, 240, 36, 240, 240, 36, 240, 240, 36, 240, 240, 36, + 240, 240, 36, 240, 240, 36, 240, 240, 36, 240, 240, 36, + 240, 240, 36, 240, 240, 36, 240, 240, 36, 240, 240, 36, + 240, 240, 36, 240, 240, 36, 240, 240, 36, 240, 240, 22, + 240, 159, 3, 240, 63, 3, 0, 55, 48, 104, 37, 0, + 23, 30, 139, 78, 139, 133, 240, 21, 196, 240, 49, 228, + 240, 49, 228, 240, 49, 228, 240, 49, 228, 240, 49, 228, + 240, 49, 228, 240, 49, 228, 240, 49, 228, 240, 49, 228, + 240, 49, 228, 240, 49, 228, 240, 49, 228, 240, 49, 228, + 240, 49, 228, 240, 49, 228, 240, 49, 228, 240, 49, 228, + 240, 49, 228, 240, 49, 228, 240, 49, 228, 240, 49, 228, + 240, 49, 243, 240, 34, 244, 240, 17, 240, 20, 242, 240, + 36, 225, 240, 68, 194, 240, 84, 162, 240, 117, 84, 240, + 156, 240, 214, 0, 53, 111, 39, 0, 24, 61, 202, 77, + 202, 133, 240, 69, 165, 240, 67, 212, 240, 81, 229, 240, + 50, 229, 240, 49, 240, 20, 240, 34, 240, 21, 240, 18, + 240, 36, 240, 17, 240, 53, 226, 240, 68, 225, 240, 84, + 210, 240, 85, 194, 240, 100, 193, 240, 117, 162, 240, 132, + 161, 240, 148, 146, 240, 149, 130, 240, 164, 129, 240, 181, + 98, 240, 196, 97, 240, 212, 82, 240, 213, 66, 240, 228, + 65, 240, 245, 34, 240, 240, 20, 33, 240, 240, 39, 240, + 240, 39, 240, 240, 53, 240, 240, 69, 240, 240, 83, 240, + 240, 99, 240, 240, 113, 0, 56, 32, 153, 53, 0, 33, + 28, 109, 138, 76, 109, 138, 118, 214, 229, 164, 244, 240, + 18, 197, 228, 240, 18, 212, 229, 241, 228, 244, 241, 229, + 229, 225, 244, 214, 209, 240, 20, 209, 20, 209, 240, 21, + 193, 21, 178, 240, 36, 177, 37, 177, 240, 52, 177, 52, + 177, 240, 53, 161, 53, 146, 240, 68, 145, 84, 145, 240, + 84, 145, 84, 145, 240, 85, 129, 85, 114, 240, 100, 113, + 116, 113, 240, 116, 113, 116, 113, 240, 117, 82, 117, 82, + 240, 132, 81, 148, 81, 240, 149, 65, 148, 81, 240, 149, + 50, 149, 50, 240, 164, 49, 180, 49, 240, 181, 33, 180, + 49, 240, 181, 18, 181, 18, 240, 196, 17, 212, 17, 240, + 214, 212, 17, 240, 229, 213, 240, 244, 244, 240, 244, 244, + 240, 240, 19, 243, 240, 240, 34, 240, 34, 240, 240, 34, + 240, 34, 0, 75, 16, 100, 39, 0, 24, 77, 139, 125, + 139, 183, 183, 245, 211, 240, 69, 194, 240, 85, 194, 240, + 101, 162, 240, 133, 130, 240, 165, 98, 240, 181, 98, 240, + 197, 66, 240, 229, 34, 240, 245, 33, 240, 240, 39, 240, + 240, 53, 240, 240, 85, 240, 240, 69, 240, 240, 70, 240, + 240, 34, 21, 240, 242, 53, 240, 225, 69, 240, 210, 85, + 240, 178, 117, 240, 146, 133, 240, 145, 165, 240, 114, 181, + 240, 82, 213, 240, 50, 229, 240, 50, 245, 240, 19, 240, + 21, 213, 247, 139, 189, 75, 189, 0, 59, 105, 40, 0, + 25, 13, 218, 77, 218, 134, 240, 53, 197, 240, 66, 245, + 240, 34, 240, 21, 240, 34, 240, 37, 242, 240, 69, 210, + 240, 85, 210, 240, 101, 178, 240, 133, 146, 240, 149, 146, + 240, 165, 114, 240, 197, 82, 240, 213, 82, 240, 229, 50, + 240, 240, 21, 18, 240, 240, 52, 17, 240, 240, 70, 240, + 240, 84, 240, 240, 100, 240, 240, 100, 240, 240, 100, 240, + 240, 100, 240, 240, 100, 240, 240, 100, 240, 240, 100, 240, + 240, 100, 240, 240, 100, 240, 240, 100, 240, 240, 101, 240, + 254, 240, 190, 0, 61, 112, 74, 29, 0, 18, 47, 9, + 95, 9, 86, 197, 100, 229, 99, 229, 114, 229, 130, 229, + 129, 229, 145, 213, 161, 213, 161, 197, 240, 133, 240, 149, + 240, 133, 240, 133, 240, 148, 240, 149, 240, 133, 240, 148, + 240, 149, 240, 133, 193, 180, 209, 165, 209, 149, 225, 148, + 241, 133, 226, 117, 242, 116, 243, 101, 243, 85, 229, 84, + 215, 79, 10, 79, 9, 0, 44, 16, 52, 11, 240, 119, + 71, 66, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 151, 71, 64, + 39, 19, 0, 10, 1, 129, 129, 129, 129, 130, 129, 129, + 129, 129, 145, 129, 129, 145, 129, 129, 145, 129, 145, 129, + 145, 19, 65, 19, 85, 70, 69, 70, 84, 85, 98, 115, + 0, 74, 32, 52, 11, 240, 119, 71, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 71, 71, 64, 20, 17, 0, 9, 33, + 243, 213, 179, 19, 147, 51, 115, 98, 98, 130, 65, 177, + 0, 81, 32, 12, 9, 0, 6, 115, 85, 69, 69, 83, + 0, 44, 64, 23, 10, 240, 240, 225, 129, 130, 129, 129, + 145, 145, 129, 145, 145, 145, 19, 86, 70, 85, 99, 0, + 39, 48, 69, 30, 0, 46, 66, 240, 210, 240, 196, 240, + 180, 240, 180, 240, 161, 20, 240, 145, 35, 240, 145, 35, + 240, 129, 52, 240, 113, 67, 240, 98, 68, 240, 81, 99, + 240, 81, 99, 240, 65, 116, 240, 49, 131, 240, 49, 131, + 240, 46, 240, 30, 242, 164, 225, 180, 225, 195, 210, 196, + 193, 212, 178, 228, 148, 212, 119, 154, 0, 45, 64, 55, + 25, 0, 40, 95, 1, 195, 132, 163, 163, 147, 164, 131, + 179, 131, 179, 131, 179, 131, 179, 131, 163, 147, 163, 147, + 132, 173, 206, 179, 148, 147, 164, 131, 179, 131, 195, 115, + 195, 115, 195, 115, 195, 115, 195, 115, 179, 131, 163, 147, + 147, 127, 1, 0, 38, 80, 72, 28, 0, 43, 39, 97, + 203, 65, 165, 99, 34, 148, 162, 18, 131, 212, 115, 243, + 100, 240, 18, 99, 240, 34, 84, 240, 34, 84, 240, 49, + 68, 240, 65, 68, 240, 148, 240, 148, 240, 148, 240, 148, + 240, 148, 240, 65, 84, 240, 49, 84, 240, 49, 84, 240, + 49, 100, 240, 17, 132, 241, 148, 209, 180, 178, 197, 100, + 251, 240, 71, 0, 39, 112, 57, 28, 0, 45, 79, 1, + 243, 147, 211, 179, 179, 195, 163, 210, 163, 226, 147, 227, + 131, 227, 131, 242, 131, 243, 115, 243, 115, 243, 115, 243, + 115, 243, 115, 243, 115, 243, 115, 242, 131, 242, 131, 227, + 131, 226, 147, 210, 163, 195, 163, 178, 195, 147, 175, 1, + 0, 43, 64, 57, 27, 0, 43, 127, 6, 147, 180, 147, + 210, 147, 210, 147, 225, 147, 225, 147, 226, 131, 129, 82, + 131, 129, 243, 129, 243, 114, 252, 252, 243, 114, 243, 129, + 243, 129, 243, 129, 98, 115, 241, 131, 241, 131, 241, 131, + 241, 131, 226, 131, 211, 131, 181, 95, 6, 0, 41, 32, + 55, 24, 0, 39, 15, 5, 115, 164, 115, 194, 115, 194, + 115, 209, 115, 209, 115, 209, 115, 113, 81, 115, 113, 211, + 113, 211, 98, 219, 219, 211, 98, 211, 113, 211, 113, 211, + 113, 211, 240, 99, 240, 99, 240, 99, 240, 99, 240, 99, + 240, 100, 240, 42, 0, 37, 96, 67, 30, 0, 46, 38, + 97, 235, 65, 212, 99, 34, 180, 165, 164, 196, 148, 227, + 148, 242, 132, 240, 18, 132, 240, 33, 116, 240, 49, 116, + 240, 180, 240, 180, 240, 180, 240, 180, 240, 180, 187, 68, + 187, 84, 228, 132, 243, 147, 243, 148, 227, 164, 211, 180, + 195, 196, 161, 18, 213, 99, 18, 236, 49, 240, 39, 0, + 42, 112, 56, 27, 0, 43, 121, 89, 115, 179, 163, 179, + 163, 179, 163, 179, 163, 179, 163, 179, 163, 179, 163, 179, + 163, 179, 163, 179, 175, 2, 175, 2, 163, 179, 163, 179, + 163, 179, 163, 179, 163, 179, 163, 179, 163, 179, 163, 179, + 163, 179, 163, 179, 163, 179, 121, 89, 0, 41, 31, 15, + 0, 24, 59, 131, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 139, 0, 23, 54, 20, 0, 33, 12, 212, 240, + 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, + 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, + 35, 240, 35, 240, 35, 240, 35, 240, 35, 130, 115, 115, + 115, 115, 115, 115, 99, 146, 84, 153, 213, 0, 29, 70, + 30, 0, 48, 105, 151, 131, 197, 163, 195, 195, 194, 211, + 177, 243, 161, 240, 19, 145, 240, 35, 114, 240, 51, 98, + 240, 67, 82, 240, 83, 68, 240, 67, 53, 240, 67, 34, + 20, 240, 51, 18, 52, 240, 37, 83, 240, 35, 116, 240, + 19, 132, 243, 148, 227, 148, 227, 164, 211, 180, 195, 195, + 195, 196, 179, 197, 121, 137, 0, 45, 64, 57, 24, 0, + 39, 10, 240, 36, 240, 83, 240, 99, 240, 99, 240, 99, + 240, 99, 240, 99, 240, 99, 240, 99, 240, 99, 240, 99, + 240, 99, 240, 99, 240, 99, 240, 99, 240, 99, 194, 115, + 194, 115, 193, 131, 193, 131, 193, 131, 178, 131, 163, 131, + 133, 95, 4, 0, 36, 80, 99, 34, 0, 55, 39, 240, + 23, 116, 240, 20, 164, 241, 19, 161, 19, 225, 19, 161, + 19, 225, 19, 161, 35, 193, 35, 161, 35, 193, 35, 161, + 35, 177, 51, 161, 51, 161, 51, 161, 51, 161, 51, 161, + 67, 129, 67, 161, 67, 129, 67, 161, 67, 113, 83, 161, + 83, 97, 83, 161, 83, 97, 83, 161, 99, 65, 99, 161, + 99, 65, 99, 161, 99, 49, 115, 161, 115, 33, 115, 161, + 115, 33, 115, 161, 132, 131, 161, 132, 131, 161, 131, 147, + 147, 130, 147, 119, 98, 105, 0, 51, 64, 73, 28, 0, + 45, 70, 168, 116, 195, 149, 193, 161, 20, 177, 161, 20, + 177, 161, 36, 161, 161, 52, 145, 161, 67, 145, 161, 68, + 129, 161, 84, 113, 161, 100, 97, 161, 100, 97, 161, 116, + 81, 161, 132, 65, 161, 147, 65, 161, 148, 49, 161, 164, + 33, 161, 180, 17, 161, 180, 17, 161, 197, 161, 212, 161, + 227, 161, 227, 147, 226, 120, 193, 0, 42, 112, 74, 30, + 0, 46, 39, 240, 92, 240, 36, 101, 212, 164, 180, 196, + 163, 228, 131, 240, 19, 116, 240, 20, 100, 240, 20, 99, + 240, 51, 84, 240, 52, 68, 240, 52, 68, 240, 52, 68, + 240, 52, 68, 240, 52, 68, 240, 52, 68, 240, 52, 84, + 240, 35, 100, 240, 20, 100, 240, 20, 116, 228, 132, 228, + 148, 196, 180, 164, 213, 101, 240, 28, 240, 87, 0, 43, + 54, 25, 0, 40, 95, 1, 195, 132, 163, 163, 147, 179, + 131, 180, 115, 180, 115, 180, 115, 180, 115, 180, 115, 179, + 131, 164, 131, 133, 158, 188, 211, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 73, 0, 39, 64, 96, 29, 0, 44, 102, 240, + 92, 240, 20, 100, 212, 163, 179, 211, 163, 227, 131, 243, + 115, 240, 35, 99, 240, 35, 99, 240, 51, 67, 240, 67, + 67, 240, 67, 67, 240, 67, 67, 240, 67, 67, 240, 67, + 67, 240, 67, 67, 240, 67, 83, 240, 50, 99, 240, 35, + 99, 240, 35, 115, 115, 83, 147, 85, 66, 164, 50, 50, + 35, 180, 33, 81, 19, 215, 67, 240, 43, 97, 215, 18, + 81, 240, 98, 81, 240, 99, 50, 240, 104, 240, 118, 240, + 134, 240, 148, 0, 18, 112, 62, 29, 0, 47, 31, 240, + 35, 132, 227, 163, 211, 179, 195, 180, 179, 180, 179, 180, + 179, 180, 179, 179, 195, 164, 195, 133, 222, 253, 240, 19, + 116, 243, 147, 227, 163, 211, 163, 211, 163, 211, 163, 211, + 163, 211, 164, 195, 164, 65, 115, 164, 65, 116, 163, 65, + 74, 131, 33, 240, 148, 0, 40, 80, 59, 20, 0, 28, + 21, 65, 136, 49, 115, 82, 18, 98, 132, 98, 147, 82, + 178, 82, 178, 82, 193, 82, 193, 83, 177, 84, 240, 38, + 249, 202, 186, 231, 240, 20, 240, 51, 65, 195, 65, 210, + 65, 210, 65, 210, 66, 194, 66, 178, 84, 146, 85, 99, + 97, 57, 113, 85, 0, 28, 80, 63, 29, 0, 47, 47, + 8, 111, 8, 99, 115, 115, 98, 131, 130, 97, 147, 145, + 97, 147, 145, 82, 147, 146, 66, 147, 146, 66, 147, 146, + 243, 240, 179, 240, 179, 240, 179, 240, 179, 240, 179, 240, + 179, 240, 179, 240, 179, 240, 179, 240, 179, 240, 179, 240, + 179, 240, 179, 240, 165, 240, 93, 0, 44, 96, 59, 28, + 0, 45, 74, 104, 115, 211, 147, 225, 163, 225, 163, 225, + 163, 225, 163, 225, 163, 225, 163, 225, 163, 225, 163, 225, + 163, 225, 163, 225, 163, 225, 163, 225, 163, 225, 163, 225, + 163, 225, 163, 225, 163, 210, 179, 193, 195, 178, 211, 146, + 244, 83, 240, 42, 240, 86, 0, 40, 16, 71, 31, 0, + 50, 58, 167, 117, 212, 163, 242, 180, 225, 196, 225, 211, + 210, 212, 193, 243, 178, 244, 161, 240, 20, 161, 240, 35, + 146, 240, 36, 129, 240, 67, 114, 240, 68, 97, 240, 84, + 97, 240, 99, 82, 240, 100, 65, 240, 131, 50, 240, 132, + 33, 240, 148, 33, 240, 163, 18, 240, 165, 240, 196, 240, + 195, 240, 211, 240, 226, 0, 44, 80, 107, 42, 0, 68, + 41, 90, 119, 116, 165, 164, 148, 179, 194, 179, 180, 178, + 179, 180, 177, 196, 164, 177, 211, 165, 145, 227, 150, 145, + 228, 129, 35, 145, 243, 129, 36, 113, 240, 20, 98, 36, + 113, 240, 20, 97, 67, 113, 240, 35, 97, 68, 81, 240, + 52, 66, 68, 81, 240, 52, 65, 99, 81, 240, 67, 65, + 100, 49, 240, 84, 34, 100, 49, 240, 84, 33, 131, 49, + 240, 99, 33, 132, 17, 240, 118, 132, 17, 240, 117, 163, + 17, 240, 132, 164, 240, 148, 164, 240, 147, 195, 240, 162, + 194, 240, 178, 194, 0, 59, 80, 69, 31, 0, 50, 74, + 104, 165, 149, 212, 162, 240, 20, 130, 240, 36, 129, 240, + 68, 98, 240, 84, 66, 240, 100, 65, 240, 132, 34, 240, + 150, 240, 180, 240, 196, 240, 212, 240, 182, 240, 161, 20, + 240, 145, 52, 240, 114, 68, 240, 97, 85, 240, 65, 116, + 240, 50, 132, 240, 18, 164, 241, 180, 226, 196, 181, 181, + 121, 138, 0, 47, 64, 31, 0, 50, 58, 167, 117, 212, + 164, 210, 196, 210, 212, 178, 244, 161, 240, 20, 146, 240, + 36, 114, 240, 68, 97, 240, 84, 82, 240, 100, 50, 240, + 132, 33, 240, 148, 18, 240, 165, 240, 195, 240, 211, 240, + 211, 240, 211, 240, 211, 240, 211, 240, 211, 240, 211, 240, + 211, 240, 211, 240, 169, 0, 48, 16, 57, 23, 0, 37, + 79, 3, 85, 148, 83, 164, 98, 164, 113, 180, 113, 164, + 129, 148, 145, 148, 240, 52, 240, 52, 240, 68, 240, 52, + 240, 52, 240, 68, 240, 52, 240, 67, 145, 148, 145, 132, + 161, 132, 161, 116, 162, 100, 178, 100, 178, 84, 179, 68, + 165, 79, 4, 0, 35, 11, 29, 0, 87, 15, 10, 79, + 10, 0, 87, 64, 19, 54, 0, 127, 0, 35, 15, 15, + 15, 5, 79, 15, 15, 5, 0, 127, 0, 35, 64, 24, + 19, 0, 9, 114, 114, 131, 99, 100, 84, 99, 99, 114, + 114, 115, 99, 114, 114, 114, 114, 129, 129, 0, 89, 14, + 21, 0, 16, 36, 129, 104, 66, 98, 72, 97, 132, 0, + 106, +}; + +//***************************************************************************** +// +// The font definition for the 48 point Cmsc font. +// +//***************************************************************************** +const tFont g_sFontCmsc48 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 49, + + // + // The height of the font. + // + 50, + + // + // The baseline of the font. + // + 38, + + // + // The offset to each character in the font. + // + { + 0, 5, 44, 83, 221, 319, 464, 587, + 610, 663, 716, 774, 881, 902, 912, 924, + 1025, 1097, 1164, 1234, 1304, 1383, 1452, 1526, + 1601, 1672, 1745, 1764, 1792, 1868, 1888, 1964, + 2032, 2163, 2274, 2365, 2467, 2565, 2663, 2753, + 2867, 2939, 2979, 3051, 3155, 3235, 3370, 3472, + 3581, 3654, 3793, 3895, 3986, 4089, 4193, 4304, + 4457, 4557, 4662, 4736, 4788, 4827, 4879, 4899, + 4911, 4934, 5003, 5058, 5130, 5187, 5244, 5299, + 5366, 5422, 5453, 5507, 5577, 5634, 5733, 5806, + 5880, 5934, 6030, 6092, 6151, 6214, 6273, 6344, + 6451, 6520, 6584, 6641, 6652, 6671, 6695, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmsc48Data +}; diff --git a/grlib/fonts/fontcmss12.c b/grlib/fonts/fontcmss12.c new file mode 100644 index 0000000..a18525e --- /dev/null +++ b/grlib/fonts/fontcmss12.c @@ -0,0 +1,215 @@ +//***************************************************************************** +// +// fontcmss12.c - Font definition for the 12pt Cmss font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 12 point +// Bold: no +// Italic: no +// Memory usage: 1500 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 12 point Cmss font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss12Data[1300] = +{ + 5, 5, 0, 8, 16, 10, 2, 65, 17, 17, 17, 17, + 17, 49, 112, 9, 4, 129, 17, 17, 17, 240, 240, 112, + 21, 9, 240, 145, 81, 17, 81, 33, 56, 49, 33, 56, + 33, 33, 81, 33, 81, 33, 81, 240, 16, 16, 5, 17, + 66, 36, 18, 50, 50, 67, 33, 17, 33, 17, 19, 49, + 208, 28, 9, 161, 113, 17, 33, 49, 17, 17, 65, 17, + 17, 65, 18, 97, 17, 113, 20, 49, 17, 33, 33, 33, + 33, 33, 50, 240, 80, 20, 9, 240, 98, 97, 17, 97, + 17, 98, 114, 33, 34, 17, 33, 33, 50, 67, 19, 240, + 208, 6, 2, 65, 17, 240, 64, 15, 4, 33, 33, 49, + 33, 49, 49, 49, 49, 49, 49, 65, 49, 65, 16, 4, + 1, 65, 49, 65, 49, 49, 49, 49, 49, 49, 33, 49, + 33, 48, 10, 4, 17, 49, 49, 35, 19, 33, 240, 240, + 13, 8, 240, 193, 113, 113, 71, 65, 113, 113, 113, 240, + 80, 6, 2, 240, 49, 17, 80, 6, 4, 240, 211, 240, + 96, 5, 2, 240, 49, 112, 14, 5, 129, 49, 65, 65, + 49, 65, 65, 65, 49, 65, 65, 144, 18, 6, 211, 33, + 49, 17, 49, 17, 49, 17, 49, 17, 49, 17, 34, 35, + 240, 80, 11, 4, 145, 34, 49, 49, 49, 49, 49, 35, + 208, 13, 6, 211, 33, 49, 81, 81, 65, 65, 65, 84, + 240, 64, 13, 5, 178, 33, 33, 65, 34, 81, 65, 65, + 19, 240, 32, 15, 6, 241, 66, 49, 17, 49, 17, 33, + 33, 37, 65, 81, 240, 80, 13, 5, 164, 17, 65, 67, + 33, 33, 65, 65, 19, 240, 32, 16, 6, 227, 33, 65, + 81, 18, 34, 33, 17, 49, 17, 49, 35, 240, 80, 12, + 5, 164, 65, 49, 65, 65, 49, 65, 65, 240, 48, 17, + 6, 211, 33, 49, 17, 49, 35, 34, 18, 17, 49, 17, + 49, 35, 240, 80, 16, 6, 211, 33, 49, 17, 49, 17, + 49, 17, 49, 36, 65, 36, 240, 80, 5, 2, 161, 113, + 112, 6, 2, 161, 113, 17, 80, 11, 2, 129, 17, 17, + 17, 17, 17, 17, 17, 48, 9, 8, 240, 240, 167, 151, + 240, 240, 176, 12, 4, 240, 33, 49, 49, 49, 33, 49, + 49, 51, 80, 11, 5, 163, 81, 65, 49, 49, 65, 145, + 240, 48, 23, 7, 240, 19, 49, 19, 17, 17, 33, 17, + 17, 33, 17, 17, 33, 17, 17, 33, 33, 18, 67, 240, + 128, 19, 8, 240, 65, 97, 17, 81, 17, 81, 17, 65, + 49, 53, 49, 49, 33, 81, 240, 160, 17, 7, 229, 33, + 65, 17, 65, 21, 33, 50, 17, 65, 17, 50, 21, 240, + 128, 14, 7, 240, 20, 33, 49, 17, 97, 97, 97, 113, + 116, 240, 112, 18, 7, 228, 49, 49, 33, 65, 17, 65, + 17, 65, 17, 65, 17, 49, 36, 240, 144, 12, 6, 197, + 17, 81, 85, 17, 81, 81, 85, 240, 64, 12, 6, 197, + 17, 81, 84, 33, 81, 81, 81, 240, 128, 16, 7, 240, + 20, 33, 81, 97, 97, 50, 17, 65, 33, 49, 52, 240, + 112, 19, 7, 225, 65, 17, 65, 17, 65, 22, 17, 65, + 17, 65, 17, 65, 17, 65, 240, 112, 11, 2, 65, 17, + 17, 17, 17, 17, 17, 17, 112, 12, 5, 209, 65, 65, + 65, 65, 65, 65, 19, 240, 32, 20, 7, 225, 50, 17, + 34, 33, 33, 49, 17, 66, 17, 49, 34, 33, 49, 33, + 65, 240, 112, 12, 6, 193, 81, 81, 81, 81, 81, 81, + 85, 240, 64, 29, 9, 240, 50, 66, 18, 66, 18, 49, + 17, 17, 17, 33, 17, 17, 17, 33, 17, 17, 34, 33, + 17, 34, 33, 17, 34, 33, 240, 208, 24, 7, 226, 49, + 18, 49, 17, 17, 33, 17, 17, 33, 17, 33, 17, 17, + 33, 17, 17, 50, 17, 50, 240, 112, 19, 8, 240, 51, + 65, 49, 33, 81, 17, 81, 17, 81, 17, 81, 33, 49, + 67, 240, 192, 15, 6, 196, 33, 49, 17, 49, 17, 49, + 20, 33, 81, 81, 240, 128, 20, 8, 240, 51, 65, 49, + 33, 81, 17, 81, 17, 81, 17, 81, 33, 34, 68, 113, + 240, 48, 18, 7, 229, 33, 65, 17, 65, 21, 33, 33, + 49, 49, 33, 49, 33, 65, 240, 112, 12, 6, 211, 33, + 81, 98, 98, 81, 81, 35, 240, 80, 13, 8, 240, 23, + 65, 113, 113, 113, 113, 113, 113, 240, 208, 19, 7, 225, + 65, 17, 65, 17, 65, 17, 65, 17, 65, 17, 65, 18, + 34, 36, 240, 128, 19, 8, 240, 17, 81, 33, 65, 33, + 49, 49, 49, 65, 33, 65, 17, 98, 97, 240, 208, 30, + 11, 240, 113, 65, 49, 33, 34, 49, 33, 34, 49, 33, + 33, 17, 17, 49, 17, 33, 17, 66, 33, 17, 66, 34, + 82, 49, 240, 240, 96, 18, 7, 225, 49, 34, 33, 49, + 17, 81, 98, 65, 17, 49, 49, 33, 65, 240, 112, 17, + 8, 240, 17, 81, 33, 49, 50, 17, 81, 17, 97, 113, + 113, 113, 240, 208, 12, 6, 197, 81, 65, 65, 81, 65, + 65, 85, 240, 64, 14, 3, 50, 17, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 34, 9, 4, 129, 17, 17, 17, + 240, 240, 112, 14, 3, 50, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 18, 7, 4, 146, 17, 240, 240, 144, + 5, 2, 65, 240, 96, 6, 2, 65, 17, 240, 64, 11, + 5, 240, 178, 81, 35, 17, 33, 20, 240, 16, 15, 5, + 161, 65, 65, 67, 33, 33, 17, 33, 17, 33, 19, 240, + 32, 10, 5, 240, 179, 17, 65, 65, 83, 240, 16, 16, + 6, 240, 17, 81, 81, 36, 17, 49, 17, 49, 17, 49, + 36, 240, 64, 12, 6, 240, 240, 19, 33, 49, 21, 17, + 100, 240, 64, 12, 5, 194, 33, 65, 51, 49, 65, 65, + 65, 240, 48, 15, 6, 240, 240, 20, 33, 17, 49, 17, + 50, 68, 17, 49, 35, 128, 16, 5, 161, 65, 65, 68, + 17, 33, 17, 33, 17, 33, 17, 33, 240, 16, 9, 2, + 65, 81, 17, 17, 17, 17, 112, 11, 4, 161, 177, 49, + 49, 49, 49, 49, 19, 80, 16, 5, 161, 65, 65, 65, + 33, 17, 17, 35, 33, 17, 33, 33, 240, 16, 11, 2, + 65, 17, 17, 17, 17, 17, 17, 17, 112, 19, 8, 240, + 240, 167, 17, 33, 33, 17, 33, 33, 17, 33, 33, 17, + 33, 33, 240, 160, 14, 5, 240, 164, 17, 33, 17, 33, + 17, 33, 17, 33, 240, 16, 14, 6, 240, 240, 19, 33, + 49, 17, 49, 17, 49, 35, 240, 80, 14, 5, 240, 163, + 33, 33, 17, 33, 17, 33, 19, 33, 65, 144, 15, 6, + 240, 240, 20, 17, 49, 17, 49, 17, 49, 36, 81, 81, + 112, 9, 4, 240, 83, 17, 49, 49, 49, 240, 10, 5, + 240, 164, 17, 82, 81, 20, 240, 16, 12, 5, 240, 17, + 65, 52, 33, 65, 65, 67, 240, 16, 14, 5, 240, 161, + 33, 17, 33, 17, 33, 17, 33, 20, 240, 16, 14, 6, + 240, 241, 49, 33, 17, 49, 17, 49, 17, 65, 240, 96, + 19, 8, 240, 240, 161, 33, 33, 33, 18, 17, 34, 17, + 17, 34, 18, 65, 33, 240, 176, 14, 6, 240, 242, 17, + 49, 17, 65, 65, 17, 33, 49, 240, 64, 14, 6, 240, + 241, 49, 33, 17, 49, 17, 66, 65, 81, 50, 160, 10, + 5, 240, 164, 49, 49, 65, 52, 240, 16, 8, 7, 240, + 240, 198, 240, 240, 208, 8, 12, 0, 9, 11, 0, 9, + 16, 9, 5, 177, 17, 17, 17, 0, 5, 112, 6, 4, + 131, 240, 240, 176, +}; + +//***************************************************************************** +// +// The font definition for the 12 point Cmss font. +// +//***************************************************************************** +const tFont g_sFontCmss12 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 10, + + // + // The height of the font. + // + 13, + + // + // The baseline of the font. + // + 10, + + // + // The offset to each character in the font. + // + { + 0, 5, 15, 24, 45, 61, 89, 109, + 115, 130, 146, 156, 169, 175, 181, 186, + 200, 218, 229, 242, 255, 270, 283, 299, + 311, 328, 344, 349, 355, 366, 375, 387, + 398, 421, 440, 457, 471, 489, 501, 513, + 529, 548, 559, 571, 591, 603, 632, 656, + 675, 690, 710, 728, 740, 753, 772, 791, + 821, 839, 856, 868, 882, 891, 905, 912, + 917, 923, 934, 949, 959, 975, 987, 999, + 1014, 1030, 1039, 1050, 1066, 1077, 1096, 1110, + 1124, 1138, 1153, 1162, 1172, 1184, 1198, 1212, + 1231, 1245, 1259, 1269, 1277, 1285, 1294, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss12Data +}; diff --git a/grlib/fonts/fontcmss12b.c b/grlib/fonts/fontcmss12b.c new file mode 100644 index 0000000..f92753b --- /dev/null +++ b/grlib/fonts/fontcmss12b.c @@ -0,0 +1,230 @@ +//***************************************************************************** +// +// fontcmss12b.c - Font definition for the 12pt Cmss bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 12 point +// Bold: yes +// Italic: no +// Memory usage: 1680 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 12 point Cmss bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss12bData[1479] = +{ + 5, 5, 0, 8, 96, 11, 3, 98, 18, 18, 18, 18, + 18, 66, 18, 160, 10, 6, 194, 18, 18, 18, 17, 33, + 0, 7, 26, 11, 240, 178, 17, 113, 33, 113, 33, 113, + 33, 58, 65, 33, 113, 33, 74, 49, 33, 113, 33, 113, + 33, 113, 18, 80, 17, 6, 33, 81, 68, 19, 17, 19, + 51, 67, 67, 51, 17, 19, 20, 65, 240, 33, 12, 211, + 65, 50, 18, 33, 66, 18, 33, 66, 18, 17, 99, 33, + 161, 19, 97, 18, 18, 81, 18, 18, 65, 34, 18, 65, + 34, 18, 49, 67, 240, 176, 23, 10, 240, 115, 98, 18, + 82, 18, 82, 17, 99, 50, 35, 49, 34, 18, 18, 34, + 35, 57, 240, 240, 16, 7, 3, 98, 18, 17, 240, 224, + 16, 5, 34, 49, 50, 49, 50, 50, 50, 50, 50, 50, + 65, 66, 65, 66, 17, 5, 2, 65, 66, 65, 66, 50, + 50, 50, 50, 50, 49, 50, 49, 50, 48, 16, 7, 34, + 49, 18, 17, 22, 50, 54, 17, 18, 17, 50, 0, 6, + 64, 15, 11, 240, 178, 146, 146, 146, 146, 90, 82, 146, + 146, 146, 240, 192, 7, 3, 240, 194, 18, 17, 128, 8, + 5, 240, 240, 84, 240, 240, 16, 6, 3, 240, 194, 18, + 160, 17, 6, 65, 81, 65, 81, 81, 65, 81, 81, 81, + 65, 81, 81, 65, 81, 80, 20, 7, 244, 34, 34, 18, + 34, 18, 34, 18, 34, 18, 34, 18, 34, 18, 34, 36, + 240, 128, 13, 6, 196, 66, 66, 66, 66, 66, 66, 66, + 37, 240, 64, 14, 7, 244, 34, 34, 82, 82, 66, 82, + 65, 81, 86, 240, 112, 14, 6, 196, 33, 34, 66, 65, + 50, 98, 66, 66, 20, 240, 80, 17, 7, 240, 19, 67, + 52, 49, 18, 34, 18, 33, 34, 38, 66, 82, 240, 128, + 15, 6, 197, 18, 66, 68, 34, 18, 66, 66, 17, 34, + 20, 240, 80, 18, 7, 240, 19, 50, 66, 85, 34, 34, + 18, 34, 18, 34, 18, 34, 36, 240, 128, 13, 7, 230, + 81, 81, 82, 82, 66, 82, 82, 82, 240, 160, 19, 7, + 244, 34, 34, 18, 34, 18, 34, 50, 50, 34, 18, 34, + 18, 34, 36, 240, 128, 17, 7, 244, 34, 34, 18, 34, + 18, 34, 18, 34, 37, 82, 81, 51, 240, 144, 7, 3, + 242, 18, 114, 18, 160, 8, 3, 242, 18, 114, 18, 17, + 128, 11, 3, 242, 18, 18, 18, 18, 18, 18, 18, 18, + 10, 10, 0, 7, 73, 240, 105, 240, 240, 176, 15, 6, + 240, 240, 18, 66, 66, 66, 50, 66, 65, 81, 49, 20, + 32, 12, 6, 196, 82, 66, 50, 50, 66, 162, 66, 240, + 96, 20, 9, 240, 85, 55, 20, 34, 20, 34, 20, 34, + 20, 34, 18, 20, 50, 50, 53, 240, 224, 20, 8, 240, + 51, 83, 66, 17, 66, 18, 49, 34, 34, 34, 39, 17, + 66, 17, 66, 240, 160, 20, 8, 240, 22, 34, 49, 34, + 50, 18, 49, 37, 50, 50, 18, 50, 18, 50, 22, 240, + 176, 16, 8, 240, 53, 34, 49, 18, 98, 98, 98, 98, + 114, 49, 53, 240, 160, 21, 9, 240, 54, 50, 50, 34, + 66, 18, 66, 18, 66, 18, 66, 18, 66, 18, 50, 38, + 240, 240, 13, 7, 230, 18, 82, 82, 86, 18, 82, 82, + 86, 240, 112, 13, 7, 230, 18, 82, 82, 85, 34, 82, + 82, 82, 240, 176, 18, 8, 240, 53, 34, 49, 18, 98, + 98, 98, 35, 18, 50, 34, 34, 53, 240, 160, 22, 9, + 240, 50, 66, 18, 66, 18, 66, 18, 66, 24, 18, 66, + 18, 66, 18, 66, 18, 66, 240, 208, 12, 3, 98, 18, + 18, 18, 18, 18, 18, 18, 18, 160, 14, 6, 242, 66, + 66, 66, 66, 66, 66, 17, 34, 20, 240, 80, 22, 9, + 240, 50, 66, 18, 50, 34, 34, 50, 18, 69, 67, 18, + 50, 34, 50, 50, 34, 66, 240, 208, 13, 7, 226, 82, + 82, 82, 82, 82, 82, 82, 86, 240, 112, 33, 11, 240, + 115, 67, 19, 67, 19, 67, 18, 17, 33, 18, 18, 17, + 33, 18, 18, 17, 33, 18, 18, 34, 34, 18, 34, 34, + 18, 34, 34, 240, 240, 64, 26, 9, 240, 51, 50, 19, + 50, 20, 34, 18, 17, 34, 18, 18, 18, 18, 33, 18, + 18, 36, 18, 51, 18, 51, 240, 208, 21, 9, 240, 84, + 66, 34, 34, 66, 18, 66, 18, 66, 18, 66, 18, 66, + 34, 34, 68, 240, 240, 17, 8, 240, 22, 34, 50, 18, + 50, 18, 50, 22, 34, 98, 98, 98, 240, 240, 23, 9, + 240, 84, 66, 34, 34, 66, 18, 66, 18, 66, 18, 66, + 18, 18, 18, 34, 19, 68, 130, 240, 80, 21, 8, 240, + 22, 34, 50, 18, 50, 18, 50, 22, 34, 33, 50, 34, + 34, 49, 34, 50, 240, 160, 15, 7, 244, 34, 33, 34, + 84, 68, 83, 82, 17, 50, 21, 240, 128, 15, 9, 240, + 56, 66, 114, 114, 114, 114, 114, 114, 114, 240, 240, 16, + 22, 8, 240, 18, 50, 18, 50, 18, 50, 18, 50, 18, + 50, 18, 50, 18, 50, 18, 50, 37, 240, 176, 21, 9, + 240, 50, 81, 34, 50, 34, 50, 34, 49, 66, 18, 66, + 18, 66, 17, 99, 99, 240, 240, 33, 13, 240, 178, 50, + 65, 33, 51, 34, 33, 51, 34, 34, 18, 17, 33, 50, + 18, 17, 33, 65, 17, 36, 65, 17, 36, 67, 50, 83, + 50, 240, 240, 192, 19, 9, 240, 50, 50, 50, 34, 68, + 83, 114, 100, 66, 33, 66, 34, 34, 66, 240, 208, 18, + 9, 240, 50, 66, 19, 50, 34, 34, 68, 84, 98, 114, + 114, 114, 240, 240, 16, 14, 8, 240, 23, 83, 82, 82, + 83, 82, 82, 82, 103, 240, 160, 15, 4, 67, 18, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 35, 11, 6, + 209, 33, 18, 18, 18, 18, 0, 6, 112, 15, 4, 67, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 19, + 8, 4, 130, 33, 17, 240, 240, 176, 7, 3, 98, 18, + 240, 240, 16, 7, 3, 113, 18, 18, 240, 208, 14, 7, + 240, 240, 100, 98, 67, 19, 18, 18, 34, 37, 240, 112, + 17, 7, 226, 82, 82, 85, 34, 34, 18, 34, 18, 34, + 18, 34, 21, 240, 128, 12, 6, 240, 240, 20, 18, 66, + 66, 66, 84, 240, 64, 18, 7, 240, 50, 82, 82, 37, + 18, 34, 18, 34, 18, 34, 18, 34, 37, 240, 112, 14, + 7, 240, 240, 100, 34, 34, 22, 18, 82, 49, 37, 240, + 112, 13, 6, 227, 34, 66, 52, 50, 66, 66, 66, 66, + 240, 96, 18, 8, 240, 240, 182, 18, 33, 50, 33, 68, + 49, 118, 33, 66, 18, 50, 37, 32, 18, 6, 194, 66, + 66, 69, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 240, 64, 11, 3, 98, 18, 66, 18, 18, 18, 18, 18, + 160, 14, 5, 194, 50, 130, 50, 50, 50, 50, 50, 50, + 50, 19, 32, 18, 7, 226, 82, 82, 82, 33, 34, 17, + 52, 50, 17, 50, 18, 34, 34, 240, 112, 12, 3, 98, + 18, 18, 18, 18, 18, 18, 18, 18, 160, 24, 10, 0, + 6, 37, 19, 18, 19, 18, 18, 18, 34, 18, 18, 34, + 18, 18, 34, 18, 18, 34, 240, 240, 16, 16, 6, 240, + 245, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 240, + 64, 16, 8, 240, 240, 181, 34, 50, 18, 50, 18, 50, + 18, 50, 37, 240, 176, 18, 7, 240, 240, 85, 34, 34, + 18, 34, 18, 34, 18, 34, 21, 34, 82, 82, 80, 17, + 7, 240, 240, 101, 18, 34, 18, 34, 18, 34, 18, 34, + 37, 82, 82, 82, 11, 5, 240, 164, 18, 50, 50, 50, + 50, 240, 48, 14, 6, 240, 240, 20, 18, 33, 20, 52, + 17, 34, 20, 240, 80, 13, 6, 210, 66, 66, 53, 34, + 66, 66, 66, 68, 240, 64, 16, 6, 240, 242, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 21, 240, 64, 15, 6, + 240, 241, 49, 18, 18, 33, 17, 49, 17, 51, 51, 240, + 80, 22, 9, 240, 240, 241, 34, 33, 18, 18, 18, 33, + 18, 17, 50, 17, 17, 50, 19, 50, 34, 240, 224, 15, + 6, 240, 242, 18, 33, 17, 65, 67, 49, 17, 34, 33, + 240, 64, 17, 6, 240, 241, 49, 18, 18, 33, 17, 49, + 17, 51, 66, 65, 81, 50, 64, 11, 6, 240, 245, 65, + 66, 50, 65, 69, 240, 64, 8, 8, 0, 7, 7, 0, + 6, 16, 8, 14, 0, 12, 45, 0, 10, 80, 8, 5, + 164, 17, 17, 0, 6, 64, 9, 5, 162, 17, 17, 18, + 0, 6, 48, +}; + +//***************************************************************************** +// +// The font definition for the 12 point Cmss bold font. +// +//***************************************************************************** +const tFont g_sFontCmss12b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 12, + + // + // The height of the font. + // + 14, + + // + // The baseline of the font. + // + 11, + + // + // The offset to each character in the font. + // + { + 0, 5, 16, 26, 52, 69, 102, 125, + 132, 148, 165, 181, 196, 203, 211, 217, + 234, 254, 267, 281, 295, 312, 327, 345, + 358, 377, 394, 401, 409, 420, 430, 445, + 457, 477, 497, 517, 533, 554, 567, 580, + 598, 620, 632, 646, 668, 681, 714, 740, + 761, 778, 801, 822, 837, 852, 874, 895, + 928, 947, 965, 979, 994, 1005, 1020, 1028, + 1035, 1042, 1056, 1073, 1085, 1103, 1117, 1130, + 1148, 1166, 1177, 1191, 1209, 1221, 1245, 1261, + 1277, 1295, 1312, 1323, 1337, 1350, 1366, 1381, + 1403, 1418, 1435, 1446, 1454, 1462, 1470, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss12bData +}; diff --git a/grlib/fonts/fontcmss12i.c b/grlib/fonts/fontcmss12i.c new file mode 100644 index 0000000..a0ad01d --- /dev/null +++ b/grlib/fonts/fontcmss12i.c @@ -0,0 +1,216 @@ +//***************************************************************************** +// +// fontcmss12i.c - Font definition for the 12pt Cmss italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 12 point +// Bold: no +// Italic: yes +// Memory usage: 1532 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 12 point Cmss italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss12iData[1332] = +{ + 5, 5, 0, 8, 16, 10, 4, 161, 49, 33, 49, 49, + 49, 97, 240, 9, 4, 129, 17, 17, 17, 240, 240, 112, + 20, 9, 240, 241, 33, 81, 17, 56, 49, 17, 72, 33, + 33, 81, 17, 81, 33, 81, 240, 32, 17, 7, 147, 68, + 33, 17, 17, 33, 17, 66, 99, 65, 17, 67, 36, 240, + 144, 28, 8, 146, 49, 17, 17, 33, 33, 17, 33, 33, + 17, 17, 50, 17, 97, 113, 19, 33, 33, 17, 17, 49, + 17, 17, 50, 240, 48, 20, 8, 240, 66, 81, 17, 81, + 17, 82, 82, 49, 17, 17, 33, 33, 34, 51, 19, 240, + 160, 6, 2, 65, 17, 240, 64, 16, 5, 49, 49, 65, + 49, 65, 65, 49, 65, 65, 65, 65, 65, 81, 48, 16, + 5, 33, 81, 65, 65, 65, 65, 65, 49, 65, 65, 49, + 65, 49, 64, 10, 6, 129, 81, 17, 35, 37, 0, 6, + 16, 12, 8, 240, 240, 81, 113, 71, 65, 97, 113, 240, + 224, 5, 2, 240, 49, 112, 6, 4, 240, 211, 240, 96, + 5, 2, 240, 49, 112, 16, 8, 97, 97, 113, 97, 113, + 97, 113, 97, 113, 97, 113, 97, 113, 112, 18, 6, 226, + 49, 33, 33, 33, 17, 49, 17, 49, 17, 33, 33, 33, + 50, 240, 96, 12, 5, 209, 35, 49, 65, 65, 65, 65, + 36, 240, 16, 14, 7, 240, 34, 65, 33, 97, 97, 81, + 66, 65, 85, 240, 128, 15, 7, 240, 19, 49, 49, 81, + 66, 113, 97, 33, 34, 51, 240, 144, 14, 6, 240, 17, + 66, 50, 49, 17, 33, 33, 37, 65, 240, 176, 15, 7, + 240, 20, 49, 81, 99, 65, 33, 97, 33, 34, 51, 240, + 144, 15, 6, 242, 34, 65, 69, 18, 33, 17, 49, 17, + 33, 50, 240, 96, 12, 6, 197, 65, 81, 65, 65, 81, + 65, 81, 240, 128, 18, 7, 240, 19, 49, 49, 33, 33, + 66, 65, 33, 33, 49, 33, 34, 51, 240, 144, 16, 6, + 226, 49, 33, 17, 49, 17, 49, 17, 34, 20, 66, 34, + 240, 112, 6, 3, 240, 17, 161, 176, 7, 3, 240, 17, + 161, 33, 128, 12, 4, 240, 49, 33, 49, 49, 49, 49, + 33, 49, 112, 9, 9, 240, 240, 248, 168, 0, 5, 96, + 13, 5, 240, 129, 49, 65, 65, 49, 49, 65, 33, 19, + 112, 12, 5, 179, 17, 33, 65, 49, 49, 49, 145, 240, + 64, 23, 8, 240, 67, 65, 19, 33, 17, 18, 17, 17, + 33, 33, 17, 33, 33, 17, 33, 34, 18, 68, 240, 192, + 18, 7, 240, 49, 82, 65, 17, 65, 17, 49, 49, 37, + 17, 65, 17, 65, 240, 112, 17, 7, 245, 33, 49, 33, + 49, 36, 33, 50, 17, 65, 17, 50, 20, 240, 144, 13, + 8, 240, 68, 34, 97, 97, 113, 113, 114, 116, 240, 192, + 19, 8, 240, 37, 49, 50, 33, 65, 33, 65, 17, 81, + 17, 65, 33, 50, 36, 240, 208, 13, 8, 240, 53, 33, + 113, 117, 49, 113, 97, 117, 240, 192, 13, 7, 240, 20, + 33, 97, 100, 49, 97, 81, 97, 240, 192, 16, 7, 240, + 35, 34, 81, 81, 97, 35, 17, 65, 18, 33, 52, 240, + 128, 20, 8, 240, 49, 49, 33, 65, 33, 65, 38, 33, + 50, 33, 49, 33, 65, 33, 65, 240, 176, 11, 4, 161, + 49, 33, 49, 49, 49, 33, 49, 240, 13, 6, 240, 17, + 81, 65, 81, 81, 81, 66, 35, 240, 96, 21, 8, 240, + 49, 49, 33, 49, 49, 33, 65, 17, 82, 17, 65, 33, + 49, 50, 33, 65, 240, 176, 12, 6, 225, 65, 81, 81, + 81, 81, 65, 85, 240, 64, 32, 10, 240, 113, 81, 34, + 66, 33, 17, 33, 17, 33, 17, 33, 17, 33, 17, 17, + 17, 49, 17, 17, 17, 33, 34, 33, 33, 34, 33, 240, + 240, 32, 25, 8, 240, 49, 49, 33, 17, 33, 33, 17, + 33, 33, 17, 33, 33, 17, 33, 17, 50, 33, 50, 33, + 50, 240, 176, 20, 9, 240, 100, 65, 50, 33, 81, 17, + 97, 17, 97, 17, 81, 34, 49, 68, 240, 240, 16, 17, + 8, 240, 52, 65, 49, 33, 65, 33, 50, 37, 49, 113, + 97, 240, 240, 16, 20, 9, 240, 100, 65, 50, 33, 81, + 17, 97, 17, 97, 17, 81, 34, 34, 68, 145, 240, 96, + 19, 8, 240, 52, 65, 49, 33, 65, 37, 49, 33, 65, + 33, 49, 49, 49, 65, 240, 176, 13, 6, 227, 33, 81, + 83, 82, 81, 17, 34, 20, 240, 80, 13, 8, 240, 23, + 65, 97, 113, 113, 113, 113, 97, 240, 240, 20, 8, 240, + 33, 65, 33, 49, 49, 49, 33, 65, 33, 65, 33, 49, + 49, 49, 67, 240, 208, 19, 8, 240, 17, 81, 17, 65, + 33, 49, 49, 49, 65, 17, 81, 17, 82, 97, 240, 240, + 32, 11, 240, 113, 49, 65, 17, 33, 17, 33, 33, 33, + 17, 33, 33, 33, 17, 17, 49, 17, 33, 17, 49, 17, + 34, 66, 50, 66, 49, 240, 240, 128, 19, 8, 240, 33, + 65, 49, 33, 65, 17, 97, 98, 81, 33, 65, 33, 49, + 65, 240, 176, 17, 8, 240, 17, 81, 18, 49, 49, 33, + 65, 17, 97, 113, 97, 113, 240, 240, 13, 8, 240, 38, + 97, 97, 97, 97, 97, 97, 117, 240, 192, 15, 5, 114, + 49, 49, 65, 65, 65, 49, 65, 65, 65, 65, 65, 64, + 7, 4, 193, 17, 240, 240, 112, 15, 5, 114, 65, 49, + 65, 65, 65, 65, 49, 65, 65, 65, 50, 48, 8, 4, + 145, 33, 17, 240, 240, 112, 5, 2, 65, 240, 96, 5, + 2, 97, 240, 64, 11, 5, 240, 179, 65, 35, 17, 33, + 19, 240, 32, 15, 6, 240, 65, 81, 84, 33, 33, 17, + 49, 17, 34, 20, 240, 80, 11, 6, 240, 240, 20, 18, + 65, 81, 99, 240, 80, 16, 7, 240, 65, 81, 97, 52, + 34, 33, 33, 49, 33, 33, 52, 240, 144, 11, 5, 240, + 179, 17, 33, 20, 17, 67, 240, 32, 12, 5, 194, 33, + 65, 51, 49, 49, 65, 65, 240, 64, 16, 7, 240, 240, + 114, 17, 33, 33, 49, 33, 51, 68, 33, 49, 36, 160, + 16, 6, 225, 65, 81, 84, 33, 33, 33, 33, 17, 49, + 17, 33, 240, 80, 9, 4, 161, 161, 49, 49, 33, 49, + 240, 13, 6, 240, 17, 240, 17, 81, 81, 81, 65, 81, + 51, 144, 15, 5, 240, 17, 65, 65, 17, 34, 35, 33, + 17, 33, 33, 240, 16, 11, 4, 161, 49, 33, 49, 49, + 49, 33, 49, 240, 19, 9, 0, 5, 103, 33, 33, 33, + 33, 33, 33, 17, 33, 49, 17, 33, 33, 240, 224, 15, + 6, 240, 240, 20, 33, 33, 33, 33, 17, 49, 17, 33, + 240, 80, 14, 6, 240, 240, 19, 34, 33, 17, 49, 17, + 34, 35, 240, 80, 15, 6, 240, 240, 20, 33, 33, 17, + 49, 17, 34, 20, 33, 240, 32, 15, 6, 240, 240, 20, + 18, 33, 17, 49, 17, 33, 36, 81, 81, 128, 10, 5, + 240, 179, 33, 49, 65, 65, 240, 64, 11, 6, 240, 240, + 35, 33, 83, 81, 35, 240, 96, 10, 4, 209, 49, 35, + 33, 33, 49, 50, 224, 15, 6, 240, 240, 17, 33, 17, + 49, 17, 33, 33, 33, 36, 240, 80, 13, 6, 240, 241, + 49, 17, 33, 49, 17, 50, 65, 240, 112, 20, 8, 240, + 240, 161, 33, 33, 17, 18, 33, 17, 18, 17, 34, 17, + 17, 49, 33, 240, 192, 11, 5, 240, 161, 33, 34, 65, + 35, 81, 240, 16, 14, 7, 240, 240, 97, 49, 33, 33, + 66, 82, 81, 97, 66, 192, 11, 6, 240, 240, 20, 65, + 65, 65, 69, 240, 64, 8, 7, 240, 240, 198, 240, 240, + 208, 8, 12, 0, 9, 11, 0, 9, 16, 9, 5, 177, + 17, 17, 17, 0, 5, 112, 6, 5, 164, 0, 6, 48,}; + +//***************************************************************************** +// +// The font definition for the 12 point Cmss italic font. +// +//***************************************************************************** +const tFont g_sFontCmss12i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 10, + + // + // The height of the font. + // + 13, + + // + // The baseline of the font. + // + 10, + + // + // The offset to each character in the font. + // + { + 0, 5, 15, 24, 44, 61, 89, 109, + 115, 131, 147, 157, 169, 174, 180, 185, + 201, 219, 231, 245, 260, 274, 289, 304, + 316, 334, 350, 356, 363, 375, 384, 397, + 409, 432, 450, 467, 480, 499, 512, 525, + 541, 561, 572, 585, 606, 618, 650, 675, + 695, 712, 732, 751, 764, 777, 797, 816, + 848, 867, 884, 897, 912, 919, 934, 942, + 947, 952, 963, 978, 989, 1005, 1016, 1028, + 1044, 1060, 1069, 1082, 1097, 1108, 1127, 1142, + 1156, 1171, 1186, 1196, 1207, 1217, 1232, 1245, + 1265, 1276, 1290, 1301, 1309, 1317, 1326, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss12iData +}; diff --git a/grlib/fonts/fontcmss14.c b/grlib/fonts/fontcmss14.c new file mode 100644 index 0000000..95d1629 --- /dev/null +++ b/grlib/fonts/fontcmss14.c @@ -0,0 +1,235 @@ +//***************************************************************************** +// +// fontcmss14.c - Font definition for the 14pt Cmss font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 14 point +// Bold: no +// Italic: no +// Memory usage: 1748 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 14 point Cmss font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss14Data[1545] = +{ + 5, 6, 0, 11, 32, 11, 2, 33, 17, 17, 17, 17, + 17, 17, 81, 144, 9, 5, 81, 33, 17, 33, 0, 7, + 80, 27, 10, 225, 33, 81, 33, 97, 33, 97, 33, 57, + 49, 33, 97, 33, 73, 49, 33, 97, 17, 97, 33, 97, + 33, 97, 33, 240, 24, 6, 33, 68, 17, 17, 17, 17, + 17, 49, 17, 67, 67, 49, 17, 49, 17, 17, 17, 17, + 35, 65, 240, 96, 36, 10, 17, 129, 17, 49, 49, 17, + 33, 65, 17, 33, 65, 17, 17, 97, 33, 129, 34, 81, + 17, 33, 49, 33, 33, 49, 33, 33, 33, 49, 33, 33, + 66, 240, 240, 32, 24, 9, 178, 97, 33, 81, 33, 81, + 17, 99, 98, 65, 17, 18, 33, 33, 36, 33, 50, 67, + 19, 240, 240, 112, 6, 2, 33, 17, 240, 160, 17, 4, + 33, 33, 49, 33, 49, 49, 49, 49, 49, 49, 49, 65, + 49, 65, 80, 17, 4, 1, 65, 49, 65, 49, 49, 49, + 49, 49, 49, 49, 33, 49, 33, 112, 11, 6, 33, 81, + 53, 49, 53, 49, 0, 7, 16, 16, 10, 240, 145, 145, + 145, 145, 145, 89, 81, 145, 145, 145, 240, 240, 80, 6, + 2, 240, 81, 17, 112, 6, 4, 240, 211, 240, 224, 5, + 2, 240, 81, 144, 17, 6, 65, 81, 65, 81, 81, 65, + 81, 81, 65, 81, 81, 65, 81, 81, 176, 20, 6, 211, + 34, 18, 17, 49, 17, 49, 17, 49, 17, 49, 17, 49, + 18, 18, 35, 240, 176, 13, 6, 195, 81, 81, 81, 81, + 81, 81, 81, 53, 240, 160, 14, 6, 211, 33, 34, 81, + 81, 65, 65, 65, 65, 85, 240, 160, 15, 6, 211, 33, + 49, 81, 50, 97, 81, 81, 17, 49, 35, 240, 176, 17, + 6, 241, 66, 49, 17, 49, 17, 33, 33, 33, 33, 37, + 65, 81, 240, 176, 15, 7, 245, 33, 97, 100, 49, 49, + 97, 97, 18, 34, 36, 240, 240, 18, 6, 227, 33, 65, + 81, 18, 34, 33, 17, 49, 17, 49, 17, 49, 35, 240, + 176, 13, 6, 197, 65, 81, 65, 81, 65, 81, 81, 81, + 240, 208, 19, 6, 211, 33, 49, 17, 49, 17, 49, 35, + 34, 18, 17, 49, 17, 49, 35, 240, 176, 17, 6, 211, + 33, 49, 17, 49, 17, 49, 17, 49, 36, 81, 65, 35, + 240, 192, 5, 2, 161, 145, 144, 7, 2, 161, 145, 17, + 17, 80, 12, 2, 129, 49, 17, 17, 17, 17, 17, 17, + 17, 48, 10, 10, 0, 6, 41, 240, 105, 0, 7, 80, + 14, 5, 240, 97, 145, 65, 65, 65, 49, 65, 65, 33, + 19, 112, 12, 5, 83, 81, 65, 50, 34, 49, 65, 225, + 240, 128, 27, 8, 164, 50, 33, 49, 20, 17, 18, 18, + 17, 17, 49, 17, 17, 49, 17, 18, 18, 33, 19, 50, + 49, 52, 240, 240, 64, 22, 8, 177, 98, 97, 17, 65, + 33, 65, 33, 65, 49, 53, 33, 65, 33, 81, 17, 81, + 240, 240, 48, 22, 8, 134, 33, 66, 17, 81, 17, 66, + 21, 49, 65, 33, 81, 17, 81, 17, 66, 21, 240, 240, + 80, 16, 8, 164, 50, 97, 97, 113, 113, 113, 129, 114, + 49, 52, 240, 240, 64, 23, 8, 133, 49, 50, 33, 65, + 33, 81, 17, 81, 17, 81, 17, 81, 17, 66, 17, 65, + 37, 240, 240, 80, 14, 7, 118, 17, 97, 97, 101, 33, + 97, 97, 97, 102, 240, 224, 14, 6, 101, 17, 81, 81, + 81, 85, 17, 81, 81, 81, 240, 224, 19, 8, 165, 34, + 49, 33, 97, 113, 113, 113, 51, 33, 65, 34, 49, 52, + 240, 240, 64, 24, 8, 129, 81, 17, 81, 17, 81, 17, + 81, 23, 17, 81, 17, 81, 17, 81, 17, 81, 17, 81, + 240, 240, 48, 13, 2, 33, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 144, 14, 5, 129, 65, 65, 65, 65, 65, + 65, 65, 65, 19, 240, 112, 25, 8, 129, 65, 33, 50, + 33, 34, 49, 33, 65, 18, 66, 17, 65, 49, 49, 50, + 33, 65, 33, 66, 240, 240, 48, 14, 6, 97, 81, 81, + 81, 81, 81, 81, 81, 81, 85, 240, 160, 38, 10, 162, + 82, 18, 82, 18, 82, 17, 17, 49, 17, 17, 17, 49, + 17, 17, 17, 49, 17, 17, 33, 17, 33, 17, 33, 17, + 33, 17, 33, 17, 33, 17, 49, 49, 240, 240, 176, 31, + 8, 130, 65, 18, 65, 17, 17, 49, 17, 17, 49, 17, + 33, 33, 17, 33, 33, 17, 49, 17, 17, 49, 17, 17, + 66, 17, 66, 240, 240, 48, 23, 9, 180, 65, 65, 49, + 65, 33, 97, 17, 97, 17, 97, 17, 97, 33, 65, 50, + 34, 68, 240, 240, 144, 19, 7, 117, 33, 50, 17, 65, + 17, 65, 17, 50, 21, 33, 97, 97, 97, 240, 240, 64, + 25, 9, 180, 66, 34, 49, 65, 33, 97, 17, 97, 17, + 97, 17, 97, 33, 33, 17, 50, 19, 68, 145, 129, 240, + 80, 23, 8, 133, 49, 66, 17, 81, 17, 81, 17, 65, + 37, 49, 49, 49, 50, 33, 66, 17, 81, 240, 240, 48, + 15, 6, 115, 33, 81, 81, 98, 98, 81, 81, 17, 49, + 35, 240, 176, 15, 8, 135, 65, 113, 113, 113, 113, 113, + 113, 113, 113, 240, 240, 96, 24, 8, 129, 81, 17, 81, + 17, 81, 17, 81, 17, 81, 17, 81, 17, 81, 17, 81, + 33, 49, 67, 240, 240, 80, 23, 9, 146, 81, 33, 81, + 33, 66, 34, 49, 65, 49, 65, 33, 82, 17, 97, 17, + 98, 114, 240, 240, 160, 36, 13, 209, 66, 65, 33, 50, + 65, 33, 50, 49, 49, 49, 17, 33, 50, 17, 33, 33, + 65, 17, 33, 33, 65, 17, 33, 17, 81, 17, 50, 82, + 66, 97, 65, 0, 7, 22, 9, 161, 66, 34, 49, 65, + 33, 99, 98, 114, 98, 17, 81, 34, 49, 65, 34, 81, + 240, 240, 112, 20, 8, 129, 81, 18, 65, 33, 49, 50, + 18, 65, 17, 97, 113, 113, 113, 113, 240, 240, 96, 14, + 7, 118, 82, 81, 81, 97, 81, 82, 81, 81, 102, 240, + 224, 17, 3, 2, 17, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 34, 10, 5, 81, 33, 17, 33, + 17, 33, 0, 7, 17, 3, 2, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 18, 9, 5, 113, + 49, 17, 17, 33, 0, 7, 5, 2, 65, 240, 160, 7, + 2, 33, 17, 17, 240, 128, 13, 5, 240, 178, 81, 35, + 17, 33, 17, 33, 20, 240, 96, 18, 6, 97, 81, 81, + 81, 84, 33, 49, 17, 49, 17, 49, 17, 34, 20, 240, + 176, 12, 6, 240, 240, 20, 18, 65, 81, 82, 84, 240, + 160, 18, 7, 193, 97, 97, 97, 37, 18, 49, 17, 65, + 17, 65, 18, 49, 37, 240, 224, 13, 6, 240, 240, 19, + 33, 49, 21, 17, 82, 84, 240, 160, 14, 5, 114, 33, + 65, 65, 51, 49, 65, 65, 65, 65, 240, 128, 18, 7, + 240, 240, 116, 33, 33, 49, 33, 51, 65, 100, 33, 65, + 33, 49, 51, 144, 20, 6, 97, 81, 81, 81, 81, 19, + 18, 33, 17, 49, 17, 49, 17, 49, 17, 49, 240, 160, + 10, 2, 65, 81, 17, 17, 17, 17, 17, 144, 13, 4, + 161, 177, 49, 49, 49, 49, 49, 49, 49, 19, 80, 18, + 6, 97, 81, 81, 81, 81, 33, 33, 17, 51, 51, 49, + 33, 33, 49, 240, 160, 13, 2, 33, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 144, 25, 9, 240, 240, 241, 18, + 19, 18, 33, 33, 17, 49, 33, 17, 49, 33, 17, 49, + 33, 17, 49, 33, 240, 240, 112, 17, 6, 240, 241, 19, + 18, 33, 17, 49, 17, 49, 17, 49, 17, 49, 240, 160, + 16, 7, 240, 240, 100, 34, 34, 17, 65, 17, 65, 18, + 34, 36, 240, 240, 17, 6, 240, 244, 33, 34, 17, 49, + 17, 49, 17, 34, 20, 33, 81, 81, 176, 19, 7, 240, + 240, 99, 17, 18, 34, 17, 65, 17, 65, 18, 49, 37, + 97, 97, 97, 128, 12, 4, 240, 81, 17, 18, 33, 49, + 49, 49, 240, 64, 12, 6, 240, 240, 20, 17, 83, 98, + 81, 20, 240, 176, 13, 5, 177, 65, 65, 52, 33, 65, + 65, 65, 67, 240, 96, 16, 6, 240, 241, 49, 17, 49, + 17, 49, 17, 49, 17, 49, 21, 240, 160, 16, 7, 240, + 240, 81, 50, 33, 33, 49, 33, 51, 82, 82, 240, 240, + 16, 25, 9, 240, 240, 241, 49, 33, 33, 18, 33, 33, + 17, 17, 17, 33, 17, 17, 17, 34, 34, 65, 34, 240, + 240, 128, 16, 7, 240, 240, 82, 33, 49, 18, 66, 82, + 65, 33, 34, 34, 240, 224, 17, 7, 240, 240, 81, 50, + 33, 33, 49, 33, 66, 82, 82, 81, 97, 81, 192, 11, + 6, 240, 245, 65, 65, 66, 65, 69, 240, 160, 8, 7, + 0, 6, 22, 0, 6, 32, 8, 14, 0, 12, 45, 0, + 12, 48, 11, 5, 97, 17, 17, 17, 33, 17, 0, 7, + 16, 8, 5, 162, 17, 17, 18, 0, 7, +}; + +//***************************************************************************** +// +// The font definition for the 14 point Cmss font. +// +//***************************************************************************** +const tFont g_sFontCmss14 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 12, + + // + // The height of the font. + // + 15, + + // + // The baseline of the font. + // + 11, + + // + // The offset to each character in the font. + // + { + 0, 5, 16, 25, 52, 76, 112, 136, + 142, 159, 176, 187, 203, 209, 215, 220, + 237, 257, 270, 284, 299, 316, 331, 349, + 362, 381, 398, 403, 410, 422, 432, 446, + 458, 485, 507, 529, 545, 568, 582, 596, + 615, 639, 652, 666, 691, 705, 743, 774, + 797, 816, 841, 864, 879, 894, 918, 941, + 977, 999, 1019, 1033, 1050, 1060, 1077, 1086, + 1091, 1098, 1111, 1129, 1141, 1159, 1172, 1186, + 1204, 1224, 1234, 1247, 1265, 1278, 1303, 1320, + 1336, 1353, 1372, 1384, 1396, 1409, 1425, 1441, + 1466, 1482, 1499, 1510, 1518, 1526, 1537, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss14Data +}; diff --git a/grlib/fonts/fontcmss14b.c b/grlib/fonts/fontcmss14b.c new file mode 100644 index 0000000..a20a811 --- /dev/null +++ b/grlib/fonts/fontcmss14b.c @@ -0,0 +1,232 @@ +//***************************************************************************** +// +// fontcmss14b.c - Font definition for the 14pt Cmss bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 14 point +// Bold: yes +// Italic: no +// Memory usage: 1704 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 14 point Cmss bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss14bData[1503] = +{ + 5, 6, 0, 10, 64, 11, 3, 98, 18, 18, 18, 18, + 18, 66, 18, 160, 10, 6, 194, 18, 18, 18, 17, 33, + 0, 7, 26, 12, 240, 225, 33, 129, 33, 114, 33, 113, + 34, 59, 66, 33, 113, 34, 75, 50, 33, 113, 34, 113, + 33, 129, 33, 96, 20, 7, 33, 97, 85, 19, 33, 19, + 67, 84, 68, 49, 18, 17, 17, 18, 21, 65, 240, 48, + 33, 14, 243, 82, 50, 18, 65, 66, 18, 49, 82, 18, + 34, 99, 34, 193, 20, 113, 18, 34, 81, 34, 34, 66, + 34, 34, 65, 50, 34, 49, 84, 240, 240, 23, 12, 240, + 195, 130, 18, 114, 18, 114, 17, 131, 50, 67, 49, 66, + 18, 18, 51, 35, 90, 240, 240, 112, 7, 3, 98, 18, + 17, 240, 224, 16, 5, 49, 49, 50, 49, 50, 50, 50, + 50, 50, 50, 65, 66, 65, 66, 17, 5, 2, 65, 66, + 65, 66, 50, 50, 50, 50, 50, 49, 50, 49, 50, 48, + 16, 7, 34, 49, 18, 17, 22, 50, 54, 17, 18, 17, + 50, 0, 6, 64, 15, 10, 240, 145, 145, 145, 145, 145, + 89, 81, 145, 145, 145, 240, 160, 7, 3, 240, 194, 18, + 17, 128, 8, 5, 240, 240, 84, 240, 240, 16, 6, 3, + 240, 194, 18, 160, 17, 7, 81, 82, 81, 97, 82, 81, + 97, 81, 97, 82, 81, 97, 82, 81, 96, 20, 7, 244, + 34, 34, 18, 34, 18, 34, 18, 34, 18, 34, 18, 34, + 18, 34, 36, 240, 128, 13, 7, 228, 82, 82, 82, 82, + 82, 82, 82, 54, 240, 112, 15, 7, 244, 33, 50, 17, + 50, 82, 66, 81, 81, 81, 86, 240, 112, 15, 7, 244, + 34, 34, 82, 81, 66, 114, 82, 17, 50, 36, 240, 128, + 17, 8, 240, 67, 83, 68, 65, 18, 49, 34, 49, 34, + 39, 82, 98, 240, 176, 16, 8, 240, 38, 34, 98, 101, + 50, 34, 98, 98, 18, 50, 37, 240, 176, 18, 7, 240, + 19, 50, 66, 85, 34, 34, 18, 34, 18, 34, 18, 34, + 36, 240, 128, 13, 7, 230, 81, 82, 66, 82, 66, 82, + 82, 82, 240, 160, 19, 7, 244, 34, 34, 18, 34, 18, + 34, 50, 50, 34, 18, 34, 18, 34, 36, 240, 128, 17, + 7, 244, 34, 34, 18, 34, 18, 34, 18, 34, 37, 82, + 81, 51, 240, 144, 7, 3, 242, 18, 114, 18, 160, 8, + 3, 242, 18, 114, 18, 17, 128, 11, 3, 242, 18, 18, + 18, 18, 18, 18, 18, 18, 10, 11, 0, 8, 42, 240, + 138, 240, 240, 240, 15, 7, 240, 240, 114, 82, 82, 82, + 66, 82, 66, 82, 49, 36, 32, 12, 6, 196, 82, 66, + 50, 50, 66, 162, 66, 240, 96, 20, 9, 240, 85, 55, + 20, 34, 20, 34, 20, 34, 20, 34, 18, 20, 50, 50, + 53, 240, 224, 19, 9, 240, 98, 100, 84, 66, 34, 50, + 34, 50, 34, 40, 18, 66, 17, 82, 240, 208, 20, 9, + 240, 55, 34, 65, 34, 66, 18, 65, 38, 50, 66, 18, + 66, 18, 66, 23, 240, 224, 16, 9, 240, 86, 34, 65, + 18, 114, 114, 114, 114, 130, 65, 54, 240, 208, 22, 10, + 240, 87, 50, 66, 34, 82, 18, 82, 18, 82, 18, 82, + 18, 82, 18, 66, 39, 240, 240, 48, 14, 8, 240, 23, + 18, 98, 98, 102, 34, 98, 98, 103, 240, 160, 13, 7, + 230, 18, 82, 82, 86, 18, 82, 82, 82, 240, 176, 18, + 9, 240, 86, 34, 65, 18, 114, 114, 114, 51, 18, 66, + 34, 50, 54, 240, 208, 23, 10, 240, 82, 82, 18, 82, + 18, 82, 18, 82, 25, 18, 82, 18, 82, 18, 82, 18, + 82, 240, 240, 16, 12, 3, 98, 18, 18, 18, 18, 18, + 18, 18, 18, 160, 14, 6, 242, 66, 66, 66, 66, 66, + 66, 17, 34, 20, 240, 80, 22, 9, 240, 50, 66, 18, + 50, 34, 34, 50, 18, 69, 67, 18, 50, 50, 34, 66, + 18, 66, 240, 208, 13, 7, 226, 82, 82, 82, 82, 82, + 82, 82, 86, 240, 112, 34, 12, 240, 147, 83, 19, 83, + 20, 52, 18, 17, 49, 18, 18, 17, 49, 18, 18, 18, + 18, 18, 18, 33, 17, 34, 18, 35, 34, 18, 49, 50, + 240, 240, 112, 29, 10, 240, 83, 66, 20, 50, 18, 17, + 50, 18, 18, 34, 18, 33, 34, 18, 34, 18, 18, 49, + 18, 18, 52, 18, 67, 240, 240, 16, 22, 10, 240, 117, + 66, 50, 34, 82, 18, 82, 18, 82, 18, 82, 18, 82, + 34, 50, 69, 240, 240, 48, 18, 9, 240, 55, 34, 66, + 18, 66, 18, 66, 23, 34, 114, 114, 114, 240, 240, 64, + 23, 10, 240, 117, 66, 50, 34, 82, 18, 82, 18, 82, + 18, 82, 18, 34, 18, 34, 20, 69, 146, 240, 112, 21, + 9, 240, 55, 34, 66, 18, 66, 18, 66, 23, 34, 34, + 50, 50, 34, 50, 34, 66, 240, 208, 16, 8, 240, 37, + 34, 49, 34, 100, 85, 99, 98, 17, 66, 22, 240, 176, + 15, 9, 240, 56, 66, 114, 114, 114, 114, 114, 114, 114, + 240, 240, 16, 22, 9, 240, 50, 66, 18, 66, 18, 66, + 18, 66, 18, 66, 18, 66, 18, 66, 18, 66, 37, 240, + 240, 21, 11, 240, 115, 82, 34, 66, 50, 66, 66, 49, + 82, 34, 82, 34, 100, 116, 131, 240, 240, 112, 32, 15, + 240, 242, 66, 66, 33, 67, 50, 34, 36, 49, 50, 34, + 17, 34, 65, 33, 34, 18, 68, 34, 17, 84, 34, 17, + 83, 67, 98, 67, 0, 6, 21, 10, 240, 83, 50, 50, + 35, 66, 18, 99, 115, 100, 98, 18, 66, 50, 34, 82, + 240, 240, 16, 18, 11, 240, 115, 67, 35, 50, 66, 34, + 100, 116, 130, 146, 146, 146, 240, 240, 128, 14, 9, 240, + 56, 98, 99, 98, 98, 98, 99, 98, 104, 240, 208, 15, + 4, 67, 18, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 35, 11, 6, 209, 33, 18, 18, 18, 18, 0, 6, + 112, 15, 4, 67, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 19, 8, 5, 178, 33, 18, 0, 6, 48, + 7, 3, 98, 18, 240, 240, 16, 7, 3, 113, 18, 18, + 240, 208, 14, 7, 240, 240, 100, 98, 67, 19, 18, 18, + 34, 37, 240, 112, 17, 7, 226, 82, 82, 85, 34, 34, + 18, 34, 18, 34, 18, 34, 21, 240, 128, 14, 7, 240, + 240, 101, 18, 49, 18, 82, 82, 49, 37, 240, 112, 18, + 8, 240, 98, 98, 98, 38, 18, 50, 18, 50, 18, 50, + 18, 50, 38, 240, 160, 14, 8, 240, 240, 181, 34, 50, + 23, 18, 98, 65, 37, 240, 176, 13, 6, 227, 34, 66, + 52, 50, 66, 66, 66, 66, 240, 96, 18, 8, 240, 240, + 182, 18, 33, 50, 33, 68, 49, 118, 33, 66, 18, 50, + 37, 32, 19, 7, 226, 82, 82, 82, 19, 19, 18, 18, + 34, 18, 34, 18, 34, 18, 34, 240, 112, 11, 3, 98, + 18, 66, 18, 18, 18, 18, 18, 160, 14, 5, 194, 50, + 130, 50, 50, 50, 50, 50, 50, 50, 19, 32, 17, 7, + 226, 82, 82, 82, 34, 18, 18, 36, 53, 34, 18, 34, + 34, 240, 112, 12, 3, 98, 18, 18, 18, 18, 18, 18, + 18, 18, 160, 25, 11, 0, 6, 114, 19, 19, 19, 19, + 18, 18, 34, 34, 18, 34, 34, 18, 34, 34, 18, 34, + 34, 240, 240, 64, 18, 7, 240, 240, 82, 19, 19, 18, + 18, 34, 18, 34, 18, 34, 18, 34, 240, 112, 16, 8, + 240, 240, 181, 34, 50, 18, 50, 18, 50, 18, 50, 37, + 240, 176, 18, 7, 240, 240, 85, 34, 34, 18, 34, 18, + 34, 18, 34, 21, 34, 82, 82, 80, 17, 8, 240, 240, + 182, 18, 50, 18, 50, 18, 50, 18, 50, 38, 98, 98, + 98, 12, 5, 240, 162, 17, 19, 34, 50, 50, 50, 240, + 48, 14, 7, 240, 240, 101, 18, 49, 21, 68, 17, 50, + 21, 240, 128, 13, 6, 210, 66, 66, 53, 34, 66, 66, + 66, 68, 240, 64, 17, 7, 240, 240, 82, 34, 18, 34, + 18, 34, 18, 34, 18, 34, 22, 240, 112, 15, 7, 240, + 240, 82, 34, 18, 34, 33, 33, 52, 52, 66, 240, 144, + 22, 11, 0, 6, 114, 34, 34, 18, 34, 34, 33, 34, + 33, 51, 20, 51, 20, 66, 34, 240, 240, 96, 14, 7, + 240, 240, 82, 34, 36, 66, 82, 68, 34, 34, 240, 112, + 17, 7, 240, 240, 82, 34, 18, 34, 34, 17, 52, 67, + 66, 97, 82, 51, 64, 12, 7, 240, 240, 86, 66, 66, + 82, 66, 70, 240, 112, 8, 9, 0, 7, 120, 0, 6, + 112, 8, 16, 0, 14, 15, 0, 12, 16, 9, 6, 194, + 18, 17, 33, 0, 7, 96, 9, 6, 195, 17, 17, 19, + 0, 7, 80, +}; + +//***************************************************************************** +// +// The font definition for the 14 point Cmss bold font. +// +//***************************************************************************** +const tFont g_sFontCmss14b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 14, + + // + // The height of the font. + // + 14, + + // + // The baseline of the font. + // + 11, + + // + // The offset to each character in the font. + // + { + 0, 5, 16, 26, 52, 72, 105, 128, + 135, 151, 168, 184, 199, 206, 214, 220, + 237, 257, 270, 285, 300, 317, 333, 351, + 364, 383, 400, 407, 415, 426, 436, 451, + 463, 483, 502, 522, 538, 560, 574, 587, + 605, 628, 640, 654, 676, 689, 723, 752, + 774, 792, 815, 836, 852, 867, 889, 910, + 942, 963, 981, 995, 1010, 1021, 1036, 1044, + 1051, 1058, 1072, 1089, 1103, 1121, 1135, 1148, + 1166, 1185, 1196, 1210, 1227, 1239, 1264, 1282, + 1298, 1316, 1333, 1345, 1359, 1372, 1389, 1404, + 1426, 1440, 1457, 1469, 1477, 1485, 1494, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss14bData +}; diff --git a/grlib/fonts/fontcmss14i.c b/grlib/fonts/fontcmss14i.c new file mode 100644 index 0000000..ecb5b43 --- /dev/null +++ b/grlib/fonts/fontcmss14i.c @@ -0,0 +1,239 @@ +//***************************************************************************** +// +// fontcmss14i.c - Font definition for the 14pt Cmss italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 14 point +// Bold: no +// Italic: yes +// Memory usage: 1788 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 14 point Cmss italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss14iData[1586] = +{ + 5, 6, 0, 11, 32, 12, 4, 97, 49, 33, 49, 49, + 49, 49, 161, 240, 64, 10, 5, 84, 33, 17, 17, 17, + 0, 7, 16, 25, 11, 240, 193, 33, 97, 33, 113, 33, + 73, 65, 33, 113, 33, 73, 65, 33, 97, 33, 113, 33, + 113, 33, 240, 208, 20, 7, 148, 35, 17, 33, 17, 65, + 17, 67, 98, 65, 17, 65, 17, 66, 52, 240, 240, 16, + 37, 10, 34, 65, 33, 17, 49, 33, 33, 33, 49, 33, + 33, 49, 17, 33, 67, 17, 129, 35, 65, 33, 17, 49, + 33, 33, 33, 49, 33, 17, 65, 17, 33, 67, 240, 240, + 32, 24, 9, 195, 81, 33, 81, 33, 81, 17, 98, 113, + 65, 35, 33, 33, 33, 17, 49, 34, 68, 19, 240, 240, + 112, 8, 3, 50, 33, 17, 240, 240, 80, 16, 5, 129, + 49, 49, 65, 65, 49, 65, 65, 65, 65, 65, 65, 81, + 128, 16, 5, 33, 81, 65, 65, 65, 65, 65, 65, 49, + 65, 65, 49, 49, 224, 9, 6, 129, 68, 49, 52, 0, + 7, 96, 16, 10, 240, 161, 129, 145, 145, 145, 89, 81, + 129, 145, 145, 240, 240, 96, 7, 3, 240, 242, 17, 33, + 128, 8, 5, 240, 240, 84, 240, 240, 96, 5, 2, 240, + 81, 144, 18, 9, 113, 113, 129, 113, 129, 113, 129, 113, + 113, 129, 113, 129, 113, 129, 240, 32, 22, 7, 240, 19, + 50, 33, 33, 49, 33, 49, 17, 65, 17, 49, 33, 49, + 33, 34, 51, 240, 240, 16, 13, 6, 227, 66, 65, 81, + 81, 66, 65, 81, 53, 240, 160, 16, 7, 240, 19, 49, + 49, 33, 49, 97, 81, 81, 81, 66, 85, 240, 240, 17, + 8, 240, 67, 65, 34, 98, 97, 82, 129, 113, 33, 50, + 51, 240, 240, 96, 18, 7, 240, 50, 82, 66, 65, 17, + 49, 33, 34, 33, 38, 65, 97, 240, 240, 16, 17, 8, + 240, 53, 49, 113, 115, 81, 33, 113, 113, 33, 49, 67, + 240, 240, 96, 20, 8, 240, 68, 50, 81, 113, 19, 35, + 33, 33, 65, 33, 65, 33, 49, 67, 240, 240, 96, 14, + 7, 230, 81, 82, 81, 81, 81, 97, 82, 81, 240, 240, + 64, 21, 7, 240, 19, 49, 49, 33, 49, 33, 33, 66, + 65, 33, 33, 49, 33, 34, 51, 240, 240, 16, 17, 6, + 226, 49, 33, 17, 49, 17, 49, 17, 34, 21, 65, 65, + 50, 240, 208, 6, 3, 240, 17, 209, 224, 9, 4, 240, + 113, 240, 34, 33, 49, 176, 13, 4, 240, 49, 97, 49, + 49, 49, 49, 33, 49, 49, 112, 10, 10, 0, 6, 56, + 240, 104, 0, 7, 96, 13, 5, 240, 129, 145, 49, 65, + 49, 50, 49, 65, 68, 96, 13, 6, 116, 81, 81, 65, + 65, 65, 81, 240, 18, 240, 208, 27, 8, 179, 65, 49, + 33, 35, 33, 17, 33, 17, 17, 49, 17, 17, 49, 17, + 17, 33, 33, 34, 65, 49, 52, 240, 240, 80, 22, 8, + 194, 98, 81, 17, 81, 17, 65, 33, 65, 34, 38, 33, + 65, 17, 81, 17, 81, 240, 240, 48, 22, 9, 181, 65, + 50, 33, 81, 33, 65, 53, 65, 50, 49, 65, 33, 81, + 33, 65, 53, 240, 240, 160, 16, 8, 180, 49, 97, 113, + 97, 113, 113, 113, 129, 49, 52, 240, 240, 80, 23, 9, + 181, 50, 49, 49, 81, 33, 81, 33, 81, 33, 81, 17, + 81, 33, 81, 33, 65, 53, 240, 240, 160, 15, 9, 182, + 49, 129, 129, 118, 49, 129, 129, 129, 118, 240, 240, 144, + 15, 9, 182, 49, 129, 129, 114, 117, 65, 129, 129, 113, + 240, 240, 224, 18, 8, 180, 49, 97, 113, 97, 113, 113, + 51, 17, 65, 49, 49, 53, 240, 240, 64, 24, 10, 193, + 81, 49, 66, 49, 65, 65, 65, 55, 49, 81, 49, 66, + 49, 65, 65, 65, 49, 81, 240, 240, 208, 14, 4, 97, + 49, 34, 33, 49, 49, 49, 34, 33, 49, 240, 64, 15, + 7, 193, 97, 82, 81, 97, 97, 97, 81, 97, 51, 240, + 240, 32, 25, 10, 193, 66, 49, 50, 65, 34, 81, 18, + 81, 18, 98, 18, 81, 49, 81, 49, 81, 65, 49, 81, + 240, 240, 208, 14, 7, 145, 97, 97, 97, 81, 97, 97, + 97, 97, 86, 240, 224, 34, 12, 226, 82, 50, 82, 50, + 67, 50, 66, 49, 17, 49, 17, 49, 33, 33, 17, 49, + 33, 17, 33, 49, 34, 34, 49, 34, 33, 49, 49, 49, + 0, 6, 48, 29, 10, 194, 65, 50, 65, 51, 33, 65, + 17, 33, 49, 33, 33, 49, 33, 33, 49, 33, 33, 49, + 50, 65, 50, 49, 66, 240, 240, 208, 23, 9, 196, 65, + 49, 49, 81, 33, 81, 17, 97, 17, 97, 17, 81, 33, + 81, 49, 49, 68, 240, 240, 160, 19, 9, 181, 65, 65, + 49, 65, 49, 65, 34, 49, 53, 65, 129, 129, 114, 240, + 240, 208, 25, 9, 196, 65, 49, 49, 81, 33, 81, 17, + 97, 17, 97, 17, 81, 33, 33, 33, 49, 34, 68, 130, + 129, 240, 96, 23, 9, 181, 65, 65, 49, 65, 49, 65, + 34, 49, 53, 65, 34, 65, 49, 65, 49, 49, 81, 240, + 240, 128, 17, 8, 180, 49, 49, 33, 113, 131, 114, 113, + 113, 33, 49, 52, 240, 240, 96, 15, 9, 152, 81, 113, + 129, 129, 129, 129, 113, 129, 129, 240, 240, 192, 24, 9, + 161, 81, 33, 65, 49, 65, 49, 65, 33, 81, 33, 66, + 33, 65, 49, 65, 49, 49, 83, 240, 240, 176, 23, 9, + 145, 97, 18, 81, 33, 65, 49, 49, 65, 49, 65, 33, + 81, 33, 81, 17, 99, 113, 240, 240, 192, 38, 13, 209, + 66, 65, 17, 66, 49, 34, 33, 17, 49, 34, 33, 17, + 33, 50, 17, 33, 33, 65, 17, 33, 17, 81, 17, 33, + 17, 82, 49, 17, 82, 50, 97, 66, 0, 7, 16, 23, + 9, 177, 65, 49, 50, 65, 33, 81, 17, 113, 114, 97, + 18, 66, 33, 50, 50, 33, 81, 240, 240, 128, 20, 9, + 146, 81, 33, 65, 49, 50, 65, 33, 81, 17, 98, 114, + 113, 129, 129, 240, 240, 192, 15, 9, 182, 113, 114, 113, + 113, 113, 113, 114, 113, 118, 240, 240, 144, 18, 6, 35, + 49, 81, 81, 81, 65, 81, 81, 81, 81, 65, 81, 81, + 81, 82, 64, 8, 5, 97, 17, 20, 20, 0, 7, 18, + 6, 35, 65, 81, 81, 81, 81, 65, 81, 81, 81, 81, + 65, 81, 81, 66, 64, 8, 5, 113, 50, 33, 33, 0, + 7, 5, 2, 65, 240, 160, 8, 3, 65, 18, 18, 240, + 240, 64, 14, 6, 240, 240, 20, 81, 36, 17, 49, 17, + 33, 36, 240, 176, 21, 7, 145, 97, 97, 97, 81, 19, + 34, 33, 33, 49, 33, 49, 18, 33, 33, 18, 240, 240, + 16, 13, 6, 240, 240, 35, 33, 65, 81, 81, 49, 35, + 240, 176, 19, 7, 193, 97, 97, 97, 50, 17, 33, 33, + 33, 49, 33, 49, 33, 49, 52, 240, 240, 13, 6, 240, + 240, 35, 33, 33, 21, 17, 81, 99, 240, 176, 14, 6, + 146, 49, 65, 81, 67, 65, 81, 81, 65, 81, 240, 224, + 19, 8, 240, 240, 210, 17, 49, 33, 65, 33, 52, 65, + 132, 34, 49, 33, 65, 52, 176, 19, 6, 114, 65, 81, + 81, 84, 18, 33, 17, 49, 17, 49, 17, 33, 33, 33, + 240, 176, 11, 4, 161, 161, 49, 49, 49, 33, 49, 240, + 64, 15, 7, 240, 65, 240, 65, 97, 97, 82, 81, 97, + 97, 82, 51, 176, 19, 6, 129, 81, 81, 65, 81, 33, + 33, 17, 50, 65, 17, 33, 33, 33, 49, 240, 160, 14, + 4, 97, 49, 33, 49, 49, 49, 49, 33, 49, 49, 240, + 64, 25, 10, 0, 6, 49, 18, 19, 34, 18, 33, 33, + 33, 49, 18, 33, 49, 17, 49, 33, 33, 49, 33, 240, + 240, 192, 17, 6, 240, 240, 20, 18, 33, 17, 49, 17, + 49, 17, 33, 33, 33, 240, 176, 17, 7, 240, 240, 115, + 49, 49, 17, 65, 17, 65, 17, 49, 51, 240, 240, 16, + 20, 7, 240, 240, 97, 19, 34, 33, 33, 49, 33, 49, + 33, 33, 33, 18, 49, 97, 97, 208, 19, 7, 240, 240, + 114, 17, 33, 34, 17, 49, 33, 49, 33, 49, 52, 81, + 97, 97, 160, 12, 5, 240, 177, 17, 34, 49, 65, 49, + 65, 240, 144, 14, 7, 240, 240, 116, 33, 98, 114, 33, + 49, 36, 240, 240, 16, 13, 5, 177, 65, 65, 52, 33, + 49, 65, 65, 67, 240, 112, 17, 6, 240, 240, 17, 33, + 33, 33, 17, 49, 17, 49, 17, 34, 20, 240, 176, 17, + 7, 240, 240, 82, 49, 33, 33, 49, 33, 49, 17, 66, + 82, 240, 240, 32, 24, 10, 0, 6, 34, 33, 49, 33, + 18, 33, 49, 18, 33, 50, 17, 17, 66, 17, 17, 65, + 49, 240, 240, 224, 16, 7, 240, 240, 113, 33, 49, 17, + 81, 82, 66, 17, 34, 34, 240, 224, 18, 8, 240, 240, + 193, 49, 49, 33, 65, 33, 65, 17, 82, 98, 97, 113, + 82, 224, 12, 7, 240, 240, 116, 81, 81, 81, 81, 85, + 240, 240, 8, 8, 0, 7, 7, 0, 7, 16, 8, 14, + 0, 12, 45, 0, 12, 48, 11, 6, 113, 33, 33, 17, + 33, 33, 0, 8, 64, 9, 6, 209, 33, 17, 18, 0, + 8, 64, +}; + +//***************************************************************************** +// +// The font definition for the 14 point Cmss italic font. +// +//***************************************************************************** +const tFont g_sFontCmss14i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 12, + + // + // The height of the font. + // + 15, + + // + // The baseline of the font. + // + 11, + + // + // The offset to each character in the font. + // + { + 0, 5, 17, 27, 52, 72, 109, 133, + 141, 157, 173, 182, 198, 205, 213, 218, + 236, 258, 271, 287, 304, 322, 339, 359, + 373, 394, 411, 417, 426, 439, 449, 462, + 475, 502, 524, 546, 562, 585, 600, 615, + 633, 657, 671, 686, 711, 725, 759, 788, + 811, 830, 855, 878, 895, 910, 934, 957, + 995, 1018, 1038, 1053, 1071, 1079, 1097, 1105, + 1110, 1118, 1132, 1153, 1166, 1185, 1198, 1212, + 1231, 1250, 1261, 1276, 1295, 1309, 1334, 1351, + 1368, 1388, 1407, 1419, 1433, 1446, 1463, 1480, + 1504, 1520, 1538, 1550, 1558, 1566, 1577, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss14iData +}; diff --git a/grlib/fonts/fontcmss16.c b/grlib/fonts/fontcmss16.c new file mode 100644 index 0000000..1143686 --- /dev/null +++ b/grlib/fonts/fontcmss16.c @@ -0,0 +1,252 @@ +//***************************************************************************** +// +// fontcmss16.c - Font definition for the 16pt Cmss font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 16 point +// Bold: no +// Italic: no +// Memory usage: 1944 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 16 point Cmss font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss16Data[1741] = +{ + 5, 6, 0, 12, 96, 12, 2, 65, 17, 17, 17, 17, + 17, 17, 17, 81, 144, 9, 4, 129, 17, 17, 17, 0, + 6, 80, 29, 12, 240, 225, 161, 49, 113, 49, 113, 33, + 129, 33, 75, 65, 49, 113, 33, 91, 49, 49, 113, 49, + 113, 33, 129, 33, 177, 240, 48, 27, 7, 33, 98, 69, + 17, 17, 33, 17, 17, 65, 17, 67, 84, 65, 18, 49, + 33, 49, 33, 17, 17, 18, 36, 65, 240, 160, 38, 12, + 210, 145, 33, 65, 49, 33, 49, 65, 33, 49, 65, 33, + 33, 98, 33, 177, 34, 97, 33, 33, 81, 33, 33, 65, + 49, 33, 65, 49, 33, 49, 65, 33, 146, 240, 240, 128, + 28, 10, 240, 114, 113, 33, 97, 33, 97, 33, 97, 17, + 114, 65, 50, 65, 33, 18, 33, 49, 36, 49, 50, 83, + 20, 240, 240, 176, 6, 2, 65, 17, 240, 192, 19, 4, + 33, 49, 33, 49, 33, 49, 49, 49, 49, 49, 49, 49, + 49, 65, 49, 65, 49, 20, 4, 1, 49, 65, 49, 65, + 49, 49, 49, 49, 49, 49, 49, 49, 33, 49, 33, 49, + 48, 15, 6, 33, 81, 49, 17, 17, 21, 49, 53, 49, + 81, 0, 7, 16, 18, 12, 240, 240, 177, 177, 177, 177, + 177, 107, 97, 177, 177, 177, 177, 240, 240, 192, 6, 2, + 240, 145, 17, 112, 8, 5, 240, 240, 244, 240, 240, 96, + 5, 2, 240, 145, 144, 20, 7, 81, 97, 81, 97, 97, + 81, 97, 97, 81, 97, 97, 81, 97, 97, 81, 97, 97, + 96, 25, 7, 240, 18, 65, 33, 33, 65, 17, 65, 17, + 65, 17, 65, 17, 65, 17, 65, 17, 65, 33, 33, 52, + 240, 240, 15, 6, 225, 51, 81, 81, 81, 81, 81, 81, + 81, 81, 53, 240, 160, 17, 7, 244, 49, 34, 17, 65, + 97, 97, 81, 97, 81, 81, 81, 86, 240, 224, 18, 7, + 240, 19, 49, 49, 97, 97, 82, 51, 113, 97, 97, 18, + 49, 51, 240, 240, 21, 7, 240, 49, 82, 65, 17, 65, + 17, 50, 17, 49, 33, 34, 33, 38, 81, 97, 97, 240, + 240, 17, 7, 245, 33, 97, 97, 100, 49, 34, 97, 97, + 97, 18, 33, 52, 240, 240, 22, 7, 240, 20, 33, 97, + 81, 97, 19, 34, 34, 17, 65, 17, 65, 17, 65, 33, + 33, 52, 240, 240, 16, 7, 230, 97, 81, 97, 81, 97, + 97, 81, 97, 97, 97, 240, 240, 32, 23, 7, 244, 34, + 34, 17, 65, 17, 65, 18, 34, 50, 50, 34, 17, 65, + 17, 65, 18, 34, 36, 240, 240, 24, 7, 240, 18, 65, + 33, 33, 65, 17, 65, 17, 65, 17, 65, 18, 34, 35, + 17, 81, 97, 36, 240, 240, 16, 5, 2, 193, 177, 144, + 7, 2, 193, 177, 17, 17, 80, 13, 2, 161, 49, 17, + 17, 17, 17, 17, 17, 17, 17, 48, 10, 11, 0, 9, + 90, 240, 138, 0, 8, 48, 16, 6, 240, 240, 33, 177, + 81, 81, 65, 81, 65, 81, 81, 49, 36, 112, 15, 6, + 211, 33, 49, 81, 81, 65, 65, 81, 81, 240, 33, 240, + 192, 31, 9, 240, 99, 81, 49, 49, 36, 17, 34, 18, + 17, 33, 49, 17, 33, 49, 17, 33, 49, 17, 34, 18, + 33, 35, 65, 65, 68, 240, 240, 128, 24, 9, 240, 98, + 114, 100, 81, 33, 81, 33, 66, 34, 49, 65, 54, 34, + 66, 17, 97, 17, 97, 240, 240, 112, 25, 9, 240, 54, + 49, 81, 33, 97, 17, 97, 17, 81, 38, 49, 81, 33, + 97, 17, 97, 17, 81, 38, 240, 240, 144, 17, 8, 240, + 68, 34, 97, 97, 113, 113, 113, 113, 129, 114, 132, 240, + 240, 48, 26, 10, 240, 86, 65, 81, 49, 97, 33, 113, + 17, 113, 17, 113, 17, 113, 17, 113, 17, 97, 33, 82, + 38, 240, 240, 224, 17, 8, 240, 22, 33, 113, 113, 113, + 118, 33, 113, 113, 113, 119, 240, 240, 48, 16, 7, 230, + 17, 97, 97, 97, 102, 17, 97, 97, 97, 97, 240, 240, + 64, 22, 9, 240, 100, 50, 65, 33, 113, 129, 129, 129, + 67, 17, 97, 33, 81, 49, 65, 68, 240, 240, 128, 27, + 9, 240, 49, 97, 17, 97, 17, 97, 17, 97, 17, 97, + 24, 17, 97, 17, 97, 17, 97, 17, 97, 17, 97, 240, + 240, 112, 14, 2, 65, 17, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 144, 17, 6, 240, 17, 81, 81, 81, 81, + 81, 81, 81, 81, 17, 49, 20, 240, 176, 27, 9, 240, + 49, 81, 33, 65, 49, 50, 49, 34, 65, 18, 85, 66, + 33, 65, 50, 49, 65, 49, 81, 33, 82, 240, 240, 112, + 15, 7, 225, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 102, 240, 224, 42, 10, 240, 82, 82, 18, 82, 18, 82, + 17, 17, 49, 17, 17, 17, 49, 17, 17, 17, 49, 17, + 17, 33, 17, 33, 17, 33, 17, 33, 17, 33, 17, 33, + 17, 34, 49, 17, 49, 49, 240, 240, 176, 35, 9, 240, + 50, 81, 19, 65, 17, 17, 65, 17, 18, 49, 17, 33, + 49, 17, 34, 33, 17, 49, 33, 17, 50, 17, 17, 65, + 17, 17, 67, 17, 82, 240, 240, 112, 26, 10, 240, 131, + 82, 50, 49, 81, 33, 113, 17, 113, 17, 113, 17, 113, + 17, 113, 33, 81, 50, 50, 83, 240, 240, 224, 21, 9, + 240, 54, 49, 81, 33, 97, 17, 97, 17, 81, 38, 49, + 129, 129, 129, 129, 240, 240, 224, 28, 10, 240, 131, 82, + 50, 49, 81, 33, 113, 17, 113, 17, 113, 17, 113, 17, + 113, 33, 34, 17, 50, 35, 84, 146, 145, 240, 112, 26, + 9, 240, 54, 49, 81, 33, 97, 17, 97, 17, 82, 22, + 49, 50, 49, 65, 49, 81, 33, 82, 17, 97, 240, 240, + 112, 16, 7, 244, 34, 81, 97, 98, 115, 98, 97, 97, + 17, 50, 36, 240, 240, 17, 10, 240, 89, 81, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 240, 240, 240, 27, 9, + 240, 49, 97, 17, 97, 17, 97, 17, 97, 17, 97, 17, + 97, 17, 97, 17, 97, 17, 97, 33, 65, 68, 240, 240, + 144, 25, 11, 240, 114, 98, 33, 97, 50, 81, 50, 65, + 81, 65, 82, 49, 97, 33, 113, 33, 116, 130, 146, 0, + 6, 16, 40, 15, 240, 242, 66, 81, 33, 66, 66, 33, + 66, 65, 50, 49, 17, 49, 50, 33, 33, 49, 65, 33, + 33, 33, 81, 33, 34, 17, 84, 49, 17, 98, 65, 17, + 98, 66, 114, 66, 0, 8, 25, 9, 240, 49, 82, 33, + 65, 50, 33, 81, 18, 98, 114, 99, 97, 33, 65, 50, + 34, 66, 17, 97, 240, 240, 112, 22, 10, 240, 82, 97, + 33, 81, 50, 50, 65, 49, 97, 17, 115, 129, 145, 145, + 145, 145, 240, 240, 240, 17, 8, 240, 23, 98, 97, 98, + 82, 97, 98, 97, 97, 98, 103, 240, 240, 48, 18, 3, + 50, 17, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 34, 11, 5, 161, 33, 17, 33, 17, 33, + 0, 7, 80, 18, 3, 50, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 18, 8, 5, 178, + 33, 18, 0, 8, 32, 5, 2, 65, 240, 224, 7, 2, + 65, 17, 17, 240, 160, 15, 6, 240, 240, 115, 97, 81, + 36, 17, 49, 17, 49, 21, 240, 160, 21, 7, 225, 97, + 97, 97, 97, 19, 34, 34, 17, 65, 17, 65, 17, 65, + 17, 50, 21, 240, 240, 13, 6, 240, 240, 116, 33, 65, + 81, 81, 97, 84, 240, 160, 21, 6, 240, 17, 81, 81, + 81, 36, 18, 33, 17, 49, 17, 49, 17, 49, 18, 33, + 36, 240, 160, 15, 6, 240, 240, 115, 33, 49, 21, 17, + 81, 97, 33, 36, 240, 160, 15, 6, 227, 33, 81, 81, + 68, 49, 81, 81, 81, 81, 81, 240, 208, 20, 7, 240, + 240, 213, 17, 49, 33, 49, 33, 49, 36, 49, 101, 33, + 65, 17, 65, 36, 144, 22, 6, 193, 81, 81, 81, 81, + 18, 34, 33, 17, 49, 17, 49, 17, 49, 17, 49, 17, + 49, 240, 160, 11, 2, 65, 113, 17, 17, 17, 17, 17, + 17, 144, 14, 4, 161, 241, 49, 49, 49, 49, 49, 49, + 49, 49, 18, 96, 20, 6, 193, 81, 81, 81, 81, 34, + 17, 18, 35, 51, 49, 33, 33, 34, 17, 49, 240, 160, + 14, 2, 65, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 144, 28, 11, 0, 8, 33, 18, 35, 34, 34, 49, + 17, 49, 65, 17, 49, 65, 17, 49, 65, 17, 49, 65, + 17, 49, 65, 240, 240, 240, 20, 6, 240, 240, 97, 18, + 34, 33, 17, 49, 17, 49, 17, 49, 17, 49, 17, 49, + 240, 160, 18, 7, 240, 240, 212, 49, 33, 33, 65, 17, + 65, 17, 65, 33, 33, 52, 240, 240, 21, 7, 240, 240, + 193, 19, 34, 34, 17, 65, 17, 65, 17, 65, 17, 50, + 21, 33, 97, 97, 208, 20, 6, 240, 240, 116, 18, 33, + 17, 49, 17, 49, 17, 49, 18, 33, 36, 81, 81, 81, + 112, 13, 5, 240, 241, 18, 18, 49, 65, 65, 65, 65, + 240, 144, 13, 5, 240, 240, 19, 17, 65, 82, 81, 65, + 19, 240, 112, 15, 5, 240, 17, 65, 65, 52, 33, 65, + 65, 65, 65, 67, 240, 96, 19, 6, 240, 240, 97, 49, + 17, 49, 17, 49, 17, 49, 17, 49, 17, 49, 21, 240, + 160, 20, 8, 0, 6, 2, 50, 33, 49, 49, 49, 50, + 17, 81, 17, 81, 17, 97, 240, 240, 96, 27, 11, 0, + 8, 34, 34, 49, 33, 34, 34, 33, 34, 33, 49, 33, + 17, 17, 66, 33, 17, 66, 34, 82, 34, 0, 5, 112, + 18, 7, 240, 240, 194, 49, 34, 17, 67, 81, 81, 17, + 49, 34, 18, 49, 240, 224, 20, 7, 240, 240, 194, 49, + 33, 49, 34, 33, 49, 17, 65, 17, 82, 81, 97, 81, + 82, 176, 13, 7, 240, 240, 198, 81, 81, 82, 66, 81, + 86, 240, 224, 8, 9, 0, 9, 8, 0, 9, 16, 8, + 16, 0, 16, 15, 0, 16, 16, 9, 5, 177, 17, 17, + 17, 0, 8, 48, 9, 6, 210, 17, 17, 34, 0, 9, + 112, +}; + +//***************************************************************************** +// +// The font definition for the 16 point Cmss font. +// +//***************************************************************************** +const tFont g_sFontCmss16 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 14, + + // + // The height of the font. + // + 17, + + // + // The baseline of the font. + // + 13, + + // + // The offset to each character in the font. + // + { + 0, 5, 17, 26, 55, 82, 120, 148, + 154, 173, 193, 208, 226, 232, 240, 245, + 265, 290, 305, 322, 340, 361, 378, 400, + 416, 439, 463, 468, 475, 488, 498, 514, + 529, 560, 584, 609, 626, 652, 669, 685, + 707, 734, 748, 765, 792, 807, 849, 884, + 910, 931, 959, 985, 1001, 1018, 1045, 1070, + 1110, 1135, 1157, 1174, 1192, 1203, 1221, 1229, + 1234, 1241, 1256, 1277, 1290, 1311, 1326, 1341, + 1361, 1383, 1394, 1408, 1428, 1442, 1470, 1490, + 1508, 1529, 1549, 1562, 1575, 1590, 1609, 1629, + 1656, 1674, 1694, 1707, 1715, 1723, 1732, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss16Data +}; diff --git a/grlib/fonts/fontcmss16b.c b/grlib/fonts/fontcmss16b.c new file mode 100644 index 0000000..646c405 --- /dev/null +++ b/grlib/fonts/fontcmss16b.c @@ -0,0 +1,251 @@ +//***************************************************************************** +// +// fontcmss16b.c - Font definition for the 16pt Cmss bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 16 point +// Bold: yes +// Italic: no +// Memory usage: 1940 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 16 point Cmss bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss16bData[1738] = +{ + 4, 6, 0, 12, 13, 3, 50, 18, 18, 18, 18, 18, + 18, 18, 66, 18, 208, 13, 6, 98, 18, 18, 18, 18, + 18, 17, 33, 0, 8, 64, 31, 13, 240, 50, 33, 129, + 49, 129, 34, 129, 33, 130, 33, 76, 81, 34, 129, 33, + 130, 33, 92, 65, 34, 114, 33, 129, 49, 129, 34, 240, + 64, 23, 8, 49, 85, 39, 18, 17, 33, 18, 17, 68, + 85, 84, 65, 18, 17, 33, 18, 23, 37, 81, 240, 208, + 38, 15, 240, 20, 97, 50, 34, 65, 66, 34, 50, 66, + 34, 34, 82, 34, 33, 116, 33, 209, 51, 114, 34, 18, + 82, 50, 18, 81, 66, 18, 65, 82, 18, 50, 99, 0, + 5, 112, 26, 12, 243, 130, 18, 114, 18, 114, 18, 116, + 49, 82, 50, 52, 50, 34, 34, 18, 51, 35, 90, 51, + 36, 0, 6, 16, 9, 3, 50, 18, 18, 17, 240, 240, + 80, 18, 5, 49, 49, 50, 50, 34, 50, 50, 50, 50, + 50, 50, 50, 66, 50, 65, 81, 19, 5, 1, 81, 66, + 50, 66, 50, 50, 50, 50, 50, 50, 50, 34, 50, 49, + 49, 64, 16, 7, 34, 49, 18, 17, 22, 50, 54, 17, + 18, 17, 50, 0, 8, 32, 17, 12, 240, 225, 177, 177, + 177, 177, 177, 107, 97, 177, 177, 177, 177, 240, 240, 7, + 3, 240, 242, 18, 17, 176, 8, 6, 0, 6, 5, 240, + 240, 208, 6, 3, 240, 242, 18, 208, 19, 8, 97, 98, + 97, 98, 98, 97, 98, 97, 113, 98, 97, 98, 98, 97, + 98, 97, 112, 25, 8, 163, 65, 34, 34, 50, 18, 50, + 18, 50, 18, 50, 18, 50, 18, 50, 18, 50, 34, 18, + 67, 240, 240, 80, 15, 7, 146, 52, 82, 82, 82, 82, + 82, 82, 82, 82, 54, 240, 224, 17, 8, 163, 69, 34, + 50, 98, 98, 82, 97, 97, 82, 87, 23, 240, 240, 48, + 18, 7, 132, 33, 49, 33, 50, 81, 82, 66, 114, 82, + 82, 17, 50, 21, 240, 240, 21, 8, 179, 83, 68, 65, + 18, 50, 18, 49, 34, 34, 34, 34, 34, 39, 82, 98, + 240, 240, 64, 18, 8, 149, 53, 50, 98, 101, 50, 34, + 98, 98, 98, 18, 50, 37, 240, 240, 64, 22, 8, 164, + 50, 82, 98, 98, 19, 35, 34, 18, 50, 18, 50, 18, + 50, 33, 50, 52, 240, 240, 64, 16, 7, 118, 22, 82, + 66, 81, 82, 82, 66, 82, 82, 82, 240, 240, 32, 24, + 8, 149, 34, 50, 18, 50, 18, 50, 18, 50, 51, 50, + 50, 18, 50, 18, 50, 18, 50, 37, 240, 240, 64, 23, + 8, 163, 65, 49, 34, 50, 18, 50, 18, 50, 18, 50, + 18, 35, 35, 18, 98, 82, 52, 240, 240, 80, 7, 3, + 242, 18, 162, 18, 208, 8, 3, 242, 18, 162, 18, 17, + 176, 12, 3, 242, 66, 18, 18, 18, 18, 18, 18, 18, + 64, 11, 13, 0, 9, 108, 240, 240, 172, 0, 8, 32, + 15, 7, 240, 240, 114, 194, 82, 82, 66, 67, 66, 82, + 49, 37, 128, 16, 7, 132, 34, 34, 82, 67, 66, 66, + 82, 82, 194, 82, 240, 240, 16, 30, 11, 229, 67, 50, + 50, 22, 18, 18, 50, 18, 18, 50, 18, 18, 50, 18, + 18, 50, 18, 18, 50, 34, 21, 51, 66, 70, 0, 5, + 96, 23, 11, 227, 132, 101, 98, 18, 98, 19, 67, 34, + 66, 50, 66, 51, 41, 34, 82, 34, 83, 240, 240, 240, + 24, 10, 167, 50, 66, 34, 82, 18, 81, 34, 66, 39, + 50, 67, 18, 82, 18, 82, 18, 82, 24, 240, 240, 192, + 17, 10, 213, 56, 34, 114, 130, 130, 130, 130, 146, 81, + 40, 69, 240, 240, 192, 25, 11, 183, 66, 82, 34, 82, + 34, 98, 18, 98, 18, 98, 18, 98, 18, 98, 18, 97, + 34, 82, 40, 0, 5, 112, 16, 9, 151, 39, 34, 114, + 114, 119, 34, 114, 114, 120, 24, 240, 240, 112, 16, 8, + 135, 23, 18, 98, 98, 102, 34, 98, 98, 98, 98, 240, + 240, 128, 20, 11, 230, 57, 35, 66, 19, 130, 146, 146, + 68, 18, 98, 35, 66, 41, 70, 0, 5, 96, 26, 11, + 178, 98, 18, 98, 18, 98, 18, 98, 18, 98, 26, 18, + 98, 18, 98, 18, 98, 18, 98, 18, 98, 240, 240, 240, + 14, 3, 50, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 208, 15, 7, 178, 82, 82, 82, 82, 82, 82, 82, + 82, 22, 36, 240, 240, 26, 10, 162, 82, 18, 66, 34, + 50, 50, 34, 66, 18, 86, 67, 19, 50, 50, 50, 66, + 34, 67, 18, 82, 240, 240, 176, 16, 8, 130, 98, 98, + 98, 98, 98, 98, 98, 98, 103, 23, 240, 240, 48, 40, + 14, 227, 115, 20, 84, 20, 84, 20, 81, 18, 18, 18, + 50, 18, 18, 18, 50, 18, 18, 34, 18, 34, 18, 34, + 18, 34, 18, 49, 17, 50, 18, 51, 50, 18, 51, 50, + 0, 7, 16, 32, 11, 179, 82, 20, 66, 20, 66, 18, + 18, 50, 18, 19, 34, 18, 34, 34, 18, 35, 18, 18, + 50, 18, 18, 68, 18, 68, 18, 83, 240, 240, 240, 25, + 11, 214, 66, 66, 49, 97, 34, 98, 18, 98, 18, 98, + 18, 98, 18, 98, 34, 66, 50, 66, 70, 0, 5, 112, + 20, 10, 167, 50, 66, 34, 82, 18, 82, 18, 82, 18, + 66, 39, 50, 130, 130, 130, 0, 6, 27, 11, 214, 66, + 66, 49, 97, 34, 98, 18, 98, 18, 98, 18, 98, 18, + 98, 33, 35, 18, 34, 36, 70, 162, 240, 240, 80, 25, + 10, 167, 50, 67, 18, 82, 18, 82, 18, 67, 24, 34, + 35, 50, 50, 50, 66, 34, 66, 34, 82, 240, 240, 176, + 18, 9, 180, 55, 34, 65, 34, 117, 86, 115, 114, 18, + 66, 24, 37, 240, 240, 144, 16, 11, 186, 26, 82, 146, + 146, 146, 146, 146, 146, 146, 146, 0, 6, 16, 26, 10, + 162, 82, 18, 82, 18, 82, 18, 82, 18, 82, 18, 82, + 18, 82, 18, 82, 18, 82, 34, 50, 69, 240, 240, 208, + 24, 12, 195, 98, 34, 83, 35, 66, 66, 66, 66, 51, + 67, 34, 98, 34, 98, 18, 117, 132, 131, 0, 6, 80, + 39, 17, 240, 34, 83, 66, 34, 67, 66, 34, 52, 65, + 50, 52, 50, 51, 33, 34, 34, 66, 18, 34, 34, 66, + 18, 34, 18, 82, 18, 49, 18, 99, 68, 99, 67, 115, + 67, 0, 9, 23, 11, 179, 66, 51, 35, 66, 19, 85, + 116, 130, 132, 98, 19, 67, 35, 50, 66, 35, 67, 240, + 240, 240, 20, 11, 178, 98, 19, 67, 35, 35, 66, 34, + 100, 116, 130, 146, 146, 146, 146, 0, 6, 16, 16, 10, + 169, 25, 114, 114, 115, 99, 99, 114, 114, 121, 25, 240, + 240, 176, 17, 5, 84, 18, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 52, 13, 6, 113, 33, 33, + 33, 18, 18, 18, 18, 0, 8, 48, 17, 5, 84, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 20, 10, 6, 114, 50, 17, 33, 49, 0, 9, 16, 7, + 3, 50, 18, 240, 240, 160, 9, 3, 65, 33, 18, 18, + 240, 240, 64, 16, 7, 240, 240, 100, 49, 34, 82, 37, + 18, 34, 18, 34, 37, 240, 224, 21, 8, 130, 98, 98, + 98, 102, 34, 50, 18, 50, 18, 50, 18, 50, 18, 50, + 22, 240, 240, 64, 15, 7, 240, 240, 101, 18, 49, 18, + 82, 82, 82, 49, 37, 240, 224, 21, 8, 210, 98, 98, + 98, 38, 18, 50, 18, 50, 18, 50, 18, 50, 18, 50, + 38, 240, 240, 48, 17, 8, 240, 240, 181, 34, 50, 18, + 50, 23, 18, 98, 65, 37, 240, 240, 64, 17, 7, 148, + 34, 33, 34, 82, 69, 50, 82, 82, 82, 82, 82, 240, + 240, 32, 20, 9, 0, 5, 103, 18, 34, 50, 34, 50, + 34, 68, 71, 40, 17, 82, 18, 66, 38, 176, 23, 8, + 130, 98, 98, 98, 98, 19, 35, 34, 18, 50, 18, 50, + 18, 50, 18, 50, 18, 50, 240, 240, 48, 12, 3, 50, + 18, 114, 18, 18, 18, 18, 18, 18, 208, 15, 5, 114, + 50, 210, 50, 50, 50, 50, 50, 50, 50, 50, 19, 112, + 21, 8, 130, 98, 98, 98, 98, 35, 18, 18, 52, 68, + 66, 18, 50, 34, 34, 50, 240, 240, 48, 14, 3, 50, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 208, 28, + 13, 0, 8, 18, 20, 19, 35, 35, 34, 18, 50, 50, + 18, 50, 50, 18, 50, 50, 18, 50, 50, 18, 50, 50, + 0, 6, 80, 21, 8, 240, 240, 162, 19, 35, 34, 18, + 50, 18, 50, 18, 50, 18, 50, 18, 50, 240, 240, 48, + 19, 8, 240, 240, 181, 34, 50, 18, 50, 18, 50, 18, + 50, 18, 50, 37, 240, 240, 64, 20, 8, 240, 240, 166, + 34, 50, 18, 50, 18, 50, 18, 50, 18, 35, 22, 34, + 98, 98, 224, 20, 8, 240, 240, 182, 19, 34, 18, 50, + 18, 50, 18, 50, 18, 50, 38, 98, 98, 98, 144, 13, + 6, 240, 242, 18, 19, 50, 66, 66, 66, 66, 240, 208, + 15, 7, 240, 240, 101, 18, 49, 19, 84, 83, 17, 50, + 21, 240, 240, 14, 6, 210, 66, 66, 53, 34, 66, 66, + 66, 66, 68, 240, 160, 21, 8, 240, 240, 162, 50, 18, + 50, 18, 50, 18, 50, 18, 50, 18, 35, 35, 18, 240, + 240, 48, 19, 8, 240, 240, 162, 50, 18, 50, 34, 18, + 50, 18, 50, 18, 67, 83, 240, 240, 80, 25, 12, 0, + 7, 66, 49, 50, 18, 35, 34, 34, 19, 33, 50, 19, + 18, 52, 20, 51, 36, 66, 35, 0, 6, 48, 18, 8, + 240, 240, 162, 50, 34, 18, 67, 97, 99, 66, 18, 34, + 50, 240, 240, 48, 19, 8, 240, 240, 162, 50, 18, 50, + 34, 18, 50, 18, 68, 67, 98, 97, 98, 67, 208, 13, + 7, 240, 240, 86, 67, 66, 66, 66, 66, 86, 240, 224, + 8, 10, 0, 8, 105, 0, 10, 16, 9, 18, 0, 15, + 111, 2, 0, 18, 16, 8, 6, 98, 18, 17, 33, 0, + 10, 9, 7, 130, 33, 17, 34, 0, 11, 80, +}; + +//***************************************************************************** +// +// The font definition for the 16 point Cmss bold font. +// +//***************************************************************************** +const tFont g_sFontCmss16b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 16, + + // + // The height of the font. + // + 16, + + // + // The baseline of the font. + // + 12, + + // + // The offset to each character in the font. + // + { + 0, 4, 17, 30, 61, 84, 122, 148, + 157, 175, 194, 210, 227, 234, 242, 248, + 267, 292, 307, 324, 342, 363, 381, 403, + 419, 443, 466, 473, 481, 493, 504, 519, + 535, 565, 588, 612, 629, 654, 670, 686, + 706, 732, 746, 761, 787, 803, 843, 875, + 900, 920, 947, 972, 990, 1006, 1032, 1056, + 1095, 1118, 1138, 1154, 1171, 1184, 1201, 1211, + 1218, 1227, 1243, 1264, 1279, 1300, 1317, 1334, + 1354, 1377, 1389, 1404, 1425, 1439, 1467, 1488, + 1507, 1527, 1547, 1560, 1575, 1589, 1610, 1629, + 1654, 1672, 1691, 1704, 1712, 1721, 1729, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss16bData +}; diff --git a/grlib/fonts/fontcmss16i.c b/grlib/fonts/fontcmss16i.c new file mode 100644 index 0000000..392a888 --- /dev/null +++ b/grlib/fonts/fontcmss16i.c @@ -0,0 +1,256 @@ +//***************************************************************************** +// +// fontcmss16i.c - Font definition for the 16pt Cmss italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 16 point +// Bold: no +// Italic: yes +// Memory usage: 1992 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 16 point Cmss italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss16iData[1789] = +{ + 5, 6, 0, 12, 96, 13, 5, 194, 50, 49, 65, 65, + 50, 49, 65, 210, 240, 128, 11, 6, 194, 18, 33, 33, + 17, 33, 0, 9, 32, 29, 12, 240, 241, 177, 33, 113, + 33, 129, 33, 113, 33, 90, 65, 49, 113, 33, 90, 65, + 33, 129, 33, 113, 33, 129, 33, 177, 240, 64, 23, 7, + 162, 68, 35, 17, 33, 17, 65, 17, 67, 83, 65, 17, + 65, 17, 65, 17, 66, 52, 240, 240, 16, 40, 10, 194, + 65, 33, 17, 49, 33, 33, 49, 33, 33, 33, 49, 17, + 33, 67, 17, 145, 34, 65, 33, 17, 49, 33, 33, 49, + 33, 33, 33, 49, 33, 17, 65, 17, 33, 66, 240, 240, + 48, 28, 11, 240, 179, 129, 17, 113, 33, 113, 17, 130, + 145, 66, 50, 65, 49, 33, 33, 49, 49, 17, 65, 50, + 99, 35, 0, 5, 96, 8, 3, 98, 33, 17, 240, 240, + 128, 20, 6, 65, 65, 81, 65, 81, 65, 81, 81, 65, + 81, 81, 81, 81, 81, 81, 81, 97, 64, 20, 6, 49, + 81, 97, 81, 81, 81, 81, 81, 81, 65, 81, 81, 65, + 81, 65, 81, 65, 80, 16, 7, 49, 97, 65, 17, 17, + 36, 66, 51, 17, 65, 97, 0, 8, 48, 16, 11, 0, + 6, 17, 161, 161, 145, 106, 81, 161, 161, 161, 0, 6, + 32, 8, 3, 240, 240, 98, 17, 33, 128, 8, 5, 240, + 240, 244, 240, 240, 96, 5, 2, 240, 145, 144, 20, 10, + 129, 129, 145, 129, 145, 129, 145, 129, 145, 129, 145, 129, + 145, 129, 145, 129, 145, 144, 26, 8, 240, 67, 65, 49, + 33, 65, 33, 65, 33, 65, 17, 81, 17, 65, 33, 65, + 33, 65, 33, 49, 67, 240, 240, 96, 16, 6, 240, 17, + 51, 66, 65, 81, 81, 81, 66, 65, 81, 53, 240, 160, + 19, 8, 240, 67, 65, 49, 33, 65, 113, 113, 97, 97, + 97, 82, 81, 118, 240, 240, 64, 19, 8, 240, 67, 65, + 34, 113, 97, 113, 67, 129, 113, 113, 33, 49, 67, 240, + 240, 96, 21, 8, 240, 98, 83, 82, 81, 17, 65, 33, + 50, 33, 34, 34, 39, 81, 113, 113, 240, 240, 80, 20, + 8, 240, 53, 49, 113, 98, 97, 18, 66, 33, 113, 113, + 113, 33, 49, 52, 240, 240, 96, 23, 8, 240, 83, 50, + 82, 97, 113, 18, 51, 33, 33, 65, 33, 65, 33, 50, + 33, 49, 67, 240, 240, 96, 17, 8, 240, 23, 97, 98, + 97, 97, 97, 113, 97, 113, 98, 97, 240, 240, 144, 25, + 8, 240, 67, 65, 49, 33, 65, 33, 65, 34, 33, 67, + 65, 49, 33, 65, 33, 65, 33, 49, 67, 240, 240, 96, + 23, 8, 240, 67, 65, 49, 49, 49, 33, 65, 33, 65, + 33, 65, 33, 50, 52, 113, 97, 52, 240, 240, 96, 8, + 4, 240, 162, 240, 98, 240, 48, 9, 4, 240, 177, 240, + 98, 33, 49, 176, 14, 5, 240, 194, 129, 65, 65, 50, + 49, 65, 65, 50, 50, 128, 10, 12, 0, 10, 90, 240, + 170, 0, 9, 32, 16, 6, 240, 240, 50, 161, 81, 65, + 81, 65, 65, 81, 81, 49, 20, 128, 15, 6, 211, 33, + 49, 81, 65, 65, 65, 81, 81, 240, 17, 240, 224, 31, + 10, 240, 148, 81, 50, 49, 36, 33, 33, 34, 17, 33, + 50, 17, 33, 49, 33, 33, 49, 33, 33, 34, 33, 50, + 81, 81, 69, 240, 240, 208, 25, 9, 240, 130, 114, 97, + 17, 97, 18, 65, 34, 65, 34, 49, 65, 39, 33, 81, + 18, 81, 17, 97, 240, 240, 112, 25, 10, 240, 118, 65, + 65, 65, 81, 34, 65, 50, 50, 53, 81, 66, 49, 81, + 34, 81, 33, 81, 54, 240, 240, 224, 18, 9, 240, 116, + 50, 113, 113, 113, 129, 129, 129, 129, 145, 65, 68, 240, + 240, 144, 26, 10, 240, 117, 66, 65, 50, 81, 33, 97, + 33, 97, 33, 97, 18, 97, 17, 97, 33, 82, 33, 66, + 53, 240, 240, 240, 17, 9, 240, 86, 34, 114, 113, 129, + 134, 34, 114, 113, 129, 134, 240, 240, 144, 17, 9, 240, + 86, 34, 114, 113, 129, 133, 50, 114, 113, 129, 129, 240, + 240, 224, 21, 9, 240, 116, 50, 98, 113, 113, 129, 129, + 52, 17, 81, 33, 81, 49, 65, 68, 240, 240, 144, 27, + 10, 240, 113, 81, 34, 81, 34, 81, 33, 82, 33, 82, + 39, 34, 81, 34, 81, 33, 82, 33, 82, 33, 81, 240, + 240, 208, 15, 5, 194, 50, 49, 65, 65, 50, 49, 65, + 65, 50, 50, 240, 128, 17, 8, 240, 113, 113, 98, 97, + 113, 113, 98, 98, 97, 98, 52, 240, 240, 96, 27, 10, + 240, 113, 81, 34, 65, 50, 49, 65, 34, 81, 18, 100, + 83, 18, 66, 49, 65, 66, 49, 81, 49, 82, 240, 240, + 192, 16, 7, 240, 17, 82, 82, 81, 97, 97, 82, 82, + 81, 97, 102, 240, 224, 41, 13, 240, 210, 98, 35, 83, + 35, 82, 49, 17, 65, 17, 49, 17, 65, 17, 49, 17, + 49, 33, 34, 18, 33, 18, 33, 49, 17, 33, 49, 51, + 33, 49, 50, 49, 49, 49, 65, 0, 6, 112, 34, 10, + 240, 114, 65, 35, 65, 33, 17, 65, 33, 18, 49, 33, + 33, 34, 33, 33, 33, 34, 33, 33, 33, 50, 17, 33, + 67, 33, 67, 33, 66, 240, 240, 208, 26, 10, 240, 147, + 82, 49, 65, 81, 33, 97, 17, 113, 17, 113, 17, 98, + 17, 97, 33, 82, 49, 50, 83, 240, 240, 240, 20, 10, + 240, 118, 66, 65, 49, 81, 49, 81, 49, 65, 54, 65, + 145, 145, 145, 130, 0, 6, 28, 10, 240, 147, 82, 49, + 65, 81, 33, 97, 17, 113, 17, 113, 17, 113, 17, 97, + 33, 49, 18, 49, 35, 84, 145, 146, 240, 128, 26, 10, + 240, 118, 65, 66, 49, 81, 49, 81, 34, 65, 54, 65, + 49, 81, 50, 65, 65, 50, 65, 49, 82, 240, 240, 192, + 19, 8, 240, 68, 49, 49, 33, 113, 114, 115, 129, 113, + 113, 33, 49, 52, 240, 240, 96, 17, 10, 240, 89, 66, + 130, 129, 145, 145, 130, 130, 129, 145, 145, 0, 5, 112, + 27, 10, 240, 98, 66, 33, 81, 49, 81, 49, 81, 49, + 81, 33, 82, 33, 81, 49, 81, 49, 66, 50, 34, 84, + 240, 240, 240, 26, 10, 240, 81, 113, 17, 97, 33, 82, + 34, 65, 50, 49, 66, 49, 81, 33, 97, 33, 97, 17, + 115, 114, 0, 5, 112, 41, 14, 240, 209, 81, 81, 17, + 66, 66, 17, 66, 65, 33, 49, 17, 50, 33, 49, 17, + 49, 49, 33, 33, 34, 49, 33, 34, 17, 65, 17, 52, + 65, 17, 51, 82, 67, 82, 66, 0, 7, 96, 25, 11, + 240, 146, 81, 65, 65, 82, 33, 113, 17, 130, 146, 131, + 114, 33, 82, 49, 81, 66, 49, 98, 0, 5, 96, 22, + 10, 240, 81, 98, 18, 81, 34, 65, 65, 49, 82, 17, + 115, 114, 129, 145, 145, 130, 0, 5, 112, 17, 11, 240, + 152, 130, 145, 145, 145, 146, 130, 130, 145, 145, 152, 0, + 5, 112, 19, 6, 146, 65, 81, 65, 81, 81, 81, 66, + 65, 81, 81, 81, 66, 65, 81, 82, 64, 11, 6, 209, + 33, 18, 18, 18, 18, 0, 9, 16, 19, 6, 146, 81, + 81, 81, 65, 81, 81, 81, 66, 65, 81, 81, 81, 66, + 65, 66, 64, 8, 5, 178, 33, 18, 0, 8, 32, 5, + 2, 65, 240, 224, 8, 3, 113, 18, 18, 240, 240, 112, + 16, 7, 240, 240, 227, 49, 49, 97, 52, 18, 34, 17, + 49, 37, 240, 240, 22, 8, 240, 65, 98, 97, 113, 116, + 65, 49, 34, 49, 33, 65, 33, 65, 33, 49, 37, 240, + 240, 80, 13, 7, 240, 240, 228, 33, 81, 97, 97, 97, + 116, 240, 240, 22, 8, 240, 113, 113, 113, 113, 53, 33, + 49, 33, 65, 33, 65, 33, 50, 33, 49, 68, 240, 240, + 80, 14, 7, 240, 240, 227, 49, 49, 22, 17, 97, 98, + 100, 240, 240, 17, 7, 240, 35, 49, 97, 97, 68, 65, + 97, 97, 97, 81, 97, 240, 240, 64, 21, 10, 0, 7, + 115, 18, 50, 33, 81, 49, 81, 34, 69, 81, 165, 50, + 65, 49, 66, 68, 240, 23, 7, 240, 17, 97, 97, 82, + 81, 19, 34, 33, 33, 49, 33, 49, 18, 34, 17, 49, + 33, 49, 240, 240, 12, 4, 161, 225, 49, 49, 49, 33, + 49, 49, 240, 64, 16, 8, 240, 98, 240, 241, 113, 98, + 97, 113, 113, 98, 97, 113, 67, 208, 23, 8, 240, 50, + 97, 113, 113, 113, 34, 34, 17, 65, 17, 83, 81, 33, + 65, 33, 49, 50, 240, 240, 64, 15, 5, 209, 50, 49, + 65, 65, 50, 49, 65, 65, 50, 49, 240, 144, 28, 11, + 0, 8, 49, 19, 19, 34, 34, 33, 33, 49, 49, 18, + 49, 49, 17, 50, 34, 17, 49, 49, 33, 49, 49, 0, + 5, 96, 20, 7, 240, 240, 209, 19, 34, 33, 33, 49, + 33, 49, 18, 34, 17, 49, 33, 49, 240, 240, 19, 8, + 0, 6, 36, 49, 65, 17, 81, 17, 81, 17, 66, 17, + 50, 52, 240, 240, 80, 21, 8, 0, 6, 33, 19, 50, + 33, 34, 49, 33, 65, 33, 65, 33, 49, 52, 49, 113, + 113, 240, 20, 8, 0, 6, 37, 33, 49, 33, 65, 33, + 65, 33, 50, 33, 49, 68, 113, 113, 98, 176, 14, 6, + 240, 240, 129, 17, 35, 50, 65, 81, 81, 65, 240, 224, + 15, 7, 240, 240, 228, 33, 97, 115, 97, 33, 49, 36, + 240, 240, 16, 15, 5, 240, 17, 65, 65, 52, 33, 65, + 49, 65, 65, 67, 240, 112, 20, 7, 240, 240, 209, 49, + 33, 49, 33, 34, 17, 50, 17, 49, 33, 34, 35, 17, + 240, 240, 18, 7, 240, 240, 193, 65, 17, 49, 33, 34, + 33, 33, 52, 66, 81, 240, 240, 48, 29, 10, 0, 7, + 65, 49, 49, 17, 34, 49, 17, 34, 33, 33, 17, 17, + 33, 33, 17, 17, 17, 50, 33, 17, 50, 49, 240, 240, + 224, 18, 9, 0, 7, 1, 50, 50, 18, 83, 98, 99, + 82, 33, 50, 50, 240, 240, 128, 20, 9, 0, 7, 1, + 65, 49, 49, 65, 34, 66, 17, 98, 114, 113, 129, 113, + 98, 240, 16, 13, 7, 240, 240, 213, 82, 66, 66, 66, + 66, 85, 240, 240, 8, 9, 0, 9, 8, 0, 9, 16, + 8, 16, 0, 16, 15, 0, 16, 16, 8, 6, 209, 18, + 17, 33, 0, 10, 9, 6, 210, 17, 17, 34, 0, 9, + 112, +}; + +//***************************************************************************** +// +// The font definition for the 16 point Cmss italic font. +// +//***************************************************************************** +const tFont g_sFontCmss16i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 14, + + // + // The height of the font. + // + 17, + + // + // The baseline of the font. + // + 13, + + // + // The offset to each character in the font. + // + { + 0, 5, 18, 29, 58, 81, 121, 149, + 157, 177, 197, 213, 229, 237, 245, 250, + 270, 296, 312, 331, 350, 371, 391, 414, + 431, 456, 479, 487, 496, 510, 520, 536, + 551, 582, 607, 632, 650, 676, 693, 710, + 731, 758, 773, 790, 817, 833, 874, 908, + 934, 954, 982, 1008, 1027, 1044, 1071, 1097, + 1138, 1163, 1185, 1202, 1221, 1232, 1251, 1259, + 1264, 1272, 1288, 1310, 1323, 1345, 1359, 1376, + 1397, 1420, 1432, 1448, 1471, 1486, 1514, 1534, + 1553, 1574, 1594, 1608, 1623, 1638, 1658, 1676, + 1705, 1723, 1743, 1756, 1764, 1772, 1780, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss16iData +}; diff --git a/grlib/fonts/fontcmss18.c b/grlib/fonts/fontcmss18.c new file mode 100644 index 0000000..8cbfd2a --- /dev/null +++ b/grlib/fonts/fontcmss18.c @@ -0,0 +1,275 @@ +//***************************************************************************** +// +// fontcmss18.c - Font definition for the 18pt Cmss font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 18 point +// Bold: no +// Italic: no +// Memory usage: 2224 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 18 point Cmss font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss18Data[2021] = +{ + 5, 7, 0, 17, 64, 14, 2, 65, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 81, 176, 11, 5, 161, 33, 17, + 33, 17, 33, 0, 9, 64, 36, 13, 240, 240, 81, 129, + 49, 129, 49, 129, 33, 129, 49, 129, 49, 76, 81, 33, + 129, 49, 129, 49, 92, 65, 49, 129, 33, 129, 49, 129, + 49, 129, 49, 129, 240, 128, 31, 7, 49, 83, 53, 18, + 17, 17, 17, 33, 49, 33, 50, 17, 67, 83, 83, 65, + 17, 65, 17, 65, 17, 17, 33, 17, 36, 81, 240, 240, + 16, 44, 13, 226, 161, 33, 81, 49, 33, 65, 65, 33, + 65, 65, 33, 49, 81, 33, 33, 97, 33, 33, 114, 33, + 193, 50, 97, 49, 33, 81, 49, 33, 65, 65, 33, 65, + 65, 33, 49, 81, 33, 162, 0, 6, 96, 31, 11, 240, + 162, 129, 33, 113, 33, 113, 33, 113, 17, 130, 146, 66, + 35, 65, 49, 17, 65, 33, 49, 33, 49, 52, 50, 50, + 84, 20, 0, 7, 8, 2, 65, 17, 17, 240, 240, 16, + 22, 5, 34, 49, 49, 65, 65, 49, 65, 65, 65, 65, + 65, 65, 65, 65, 81, 65, 65, 81, 66, 96, 22, 5, + 2, 65, 81, 65, 65, 81, 65, 65, 65, 65, 65, 65, + 65, 65, 49, 65, 65, 49, 50, 128, 18, 6, 33, 81, + 81, 49, 17, 17, 35, 51, 33, 17, 17, 49, 81, 0, + 8, 80, 19, 12, 0, 6, 81, 177, 177, 177, 177, 177, + 107, 97, 177, 177, 177, 177, 0, 6, 96, 6, 2, 240, + 209, 17, 144, 8, 6, 0, 7, 69, 0, 6, 112, 5, + 2, 240, 209, 176, 22, 8, 97, 113, 97, 113, 113, 97, + 113, 113, 97, 113, 113, 97, 113, 97, 113, 113, 97, 113, + 113, 240, 28, 7, 240, 130, 65, 33, 33, 65, 17, 65, + 17, 65, 17, 65, 17, 65, 17, 65, 17, 65, 17, 65, + 33, 33, 66, 240, 240, 128, 18, 6, 240, 81, 51, 81, + 81, 81, 81, 81, 81, 81, 81, 81, 53, 240, 240, 16, + 20, 7, 240, 116, 33, 49, 33, 65, 97, 97, 97, 81, + 81, 81, 81, 81, 102, 240, 240, 96, 21, 7, 240, 116, + 34, 49, 17, 65, 97, 82, 51, 97, 113, 97, 97, 17, + 50, 36, 240, 240, 112, 23, 8, 240, 209, 98, 98, 81, + 17, 66, 17, 65, 33, 50, 33, 49, 49, 55, 81, 113, + 113, 240, 240, 208, 20, 8, 240, 166, 33, 113, 113, 116, + 66, 33, 129, 113, 113, 113, 18, 49, 67, 240, 240, 208, + 25, 7, 240, 132, 33, 97, 81, 97, 19, 34, 34, 17, + 65, 17, 65, 17, 65, 17, 65, 33, 33, 66, 240, 240, + 128, 18, 8, 240, 151, 97, 113, 97, 113, 97, 113, 113, + 97, 113, 113, 113, 240, 240, 240, 27, 7, 240, 116, 34, + 34, 17, 65, 17, 65, 18, 34, 50, 65, 33, 33, 65, + 17, 65, 17, 65, 33, 33, 52, 240, 240, 112, 25, 7, + 240, 130, 65, 33, 33, 65, 17, 65, 17, 65, 17, 65, + 18, 34, 35, 17, 97, 81, 97, 51, 240, 240, 128, 5, + 2, 225, 209, 176, 7, 2, 225, 209, 17, 17, 112, 15, + 2, 193, 49, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 48, 11, 12, 0, 12, 11, 240, 240, 123, 0, 10, + 80, 18, 6, 240, 240, 129, 177, 81, 81, 81, 65, 81, + 65, 81, 81, 81, 49, 36, 112, 18, 7, 244, 33, 50, + 97, 97, 82, 66, 81, 81, 97, 97, 240, 81, 240, 240, + 144, 37, 10, 240, 132, 82, 49, 49, 52, 33, 33, 34, + 17, 33, 65, 17, 33, 65, 17, 33, 65, 17, 33, 65, + 17, 33, 65, 33, 33, 33, 49, 50, 82, 65, 69, 0, + 6, 64, 29, 11, 240, 178, 129, 17, 129, 17, 129, 18, + 98, 18, 97, 49, 97, 50, 66, 50, 71, 65, 82, 34, + 82, 33, 113, 33, 114, 0, 7, 28, 9, 240, 54, 49, + 81, 33, 97, 17, 97, 17, 97, 17, 66, 38, 49, 81, + 33, 97, 17, 97, 17, 97, 17, 81, 38, 0, 6, 21, + 9, 240, 101, 49, 65, 33, 129, 113, 129, 129, 129, 129, + 145, 129, 145, 65, 69, 0, 5, 96, 30, 10, 240, 86, + 65, 81, 49, 97, 33, 97, 33, 113, 17, 113, 17, 113, + 17, 113, 17, 113, 17, 97, 33, 97, 33, 81, 54, 0, + 6, 96, 19, 8, 240, 23, 17, 113, 113, 113, 113, 119, + 17, 113, 113, 113, 113, 119, 240, 240, 176, 19, 8, 240, + 23, 17, 113, 113, 113, 113, 118, 33, 113, 113, 113, 113, + 113, 0, 5, 112, 24, 10, 240, 133, 66, 65, 34, 129, + 129, 145, 145, 145, 145, 68, 33, 97, 33, 97, 50, 65, + 69, 0, 6, 64, 31, 9, 240, 49, 97, 17, 97, 17, + 97, 17, 97, 17, 97, 17, 97, 24, 17, 97, 17, 97, + 17, 97, 17, 97, 17, 97, 17, 97, 0, 5, 96, 16, + 2, 65, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 17, 176, 19, 6, 240, 17, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 66, 20, 240, 240, 32, 31, 10, + 240, 81, 97, 33, 81, 49, 65, 65, 50, 65, 34, 81, + 18, 101, 82, 34, 65, 65, 65, 66, 49, 81, 49, 82, + 33, 98, 0, 6, 48, 18, 7, 225, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 102, 240, 240, 96, 51, + 12, 240, 146, 114, 18, 114, 19, 83, 17, 17, 81, 17, + 17, 17, 81, 17, 17, 18, 50, 17, 17, 33, 49, 33, + 17, 33, 49, 33, 17, 34, 18, 33, 17, 49, 17, 49, + 17, 49, 17, 49, 17, 49, 17, 49, 17, 65, 65, 0, + 7, 80, 39, 9, 240, 50, 81, 19, 65, 19, 65, 17, + 17, 65, 17, 18, 49, 17, 33, 49, 17, 34, 33, 17, + 49, 33, 17, 50, 17, 17, 65, 17, 17, 67, 17, 67, + 17, 82, 0, 5, 96, 30, 11, 240, 164, 97, 65, 65, + 97, 49, 97, 33, 129, 17, 129, 17, 129, 17, 129, 17, + 129, 33, 97, 49, 97, 65, 65, 100, 0, 7, 48, 25, + 8, 240, 21, 49, 65, 33, 81, 17, 81, 17, 81, 17, + 81, 17, 65, 37, 49, 113, 113, 113, 113, 0, 5, 112, + 34, 11, 240, 164, 97, 65, 65, 97, 49, 97, 33, 129, + 17, 129, 17, 129, 17, 129, 17, 129, 33, 34, 34, 33, + 50, 17, 65, 51, 85, 162, 161, 240, 240, 80, 30, 9, + 240, 54, 49, 81, 33, 97, 17, 97, 17, 97, 17, 81, + 38, 49, 49, 65, 65, 49, 66, 33, 81, 33, 82, 17, + 97, 0, 5, 96, 21, 8, 240, 52, 49, 49, 33, 113, + 113, 130, 116, 113, 129, 113, 113, 17, 65, 52, 240, 240, + 208, 19, 10, 240, 89, 81, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 0, 6, 112, 30, 9, 240, 49, + 97, 17, 97, 17, 97, 17, 97, 17, 97, 17, 97, 17, + 97, 17, 97, 17, 97, 17, 97, 17, 97, 33, 65, 68, + 0, 6, 30, 12, 240, 146, 114, 33, 113, 50, 97, 50, + 82, 65, 81, 82, 65, 97, 50, 97, 49, 114, 33, 129, + 18, 129, 17, 147, 162, 0, 8, 16, 51, 17, 240, 240, + 66, 82, 82, 33, 82, 81, 49, 82, 81, 50, 52, 50, + 50, 49, 33, 50, 65, 49, 33, 49, 81, 49, 33, 49, + 82, 18, 34, 18, 82, 17, 65, 17, 113, 17, 65, 17, + 113, 17, 65, 17, 115, 67, 129, 97, 0, 11, 32, 29, + 11, 240, 114, 82, 49, 81, 66, 50, 82, 18, 113, 17, + 131, 145, 145, 17, 114, 18, 97, 50, 65, 81, 50, 82, + 33, 114, 0, 7, 25, 12, 240, 146, 114, 34, 82, 65, + 81, 82, 50, 98, 33, 129, 17, 147, 161, 177, 177, 177, + 177, 177, 0, 8, 32, 19, 9, 240, 56, 114, 113, 114, + 98, 114, 98, 113, 114, 113, 114, 98, 120, 0, 5, 96, + 21, 4, 67, 17, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 51, 13, 6, 193, + 49, 17, 49, 17, 49, 17, 49, 0, 10, 80, 21, 4, + 67, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 19, 10, 6, 226, 49, 18, + 18, 33, 0, 11, 48, 7, 2, 97, 17, 240, 240, 16, + 8, 2, 65, 17, 17, 17, 240, 224, 18, 6, 240, 240, + 211, 97, 81, 36, 18, 33, 17, 49, 17, 49, 36, 240, + 240, 16, 26, 8, 240, 17, 113, 113, 113, 113, 113, 20, + 34, 49, 33, 81, 17, 81, 17, 81, 17, 81, 17, 65, + 37, 240, 240, 208, 17, 7, 0, 6, 52, 33, 49, 17, + 97, 97, 97, 113, 49, 52, 240, 240, 96, 26, 7, 240, + 65, 97, 97, 97, 97, 37, 33, 49, 17, 65, 17, 65, + 17, 65, 17, 65, 33, 34, 35, 17, 240, 240, 96, 18, + 7, 0, 6, 51, 49, 34, 17, 65, 22, 17, 97, 113, + 49, 51, 240, 240, 112, 18, 6, 227, 33, 81, 81, 81, + 68, 49, 81, 81, 81, 81, 81, 81, 240, 240, 64, 24, + 9, 0, 8, 22, 33, 49, 65, 49, 65, 49, 65, 49, + 68, 81, 134, 49, 81, 18, 81, 33, 66, 52, 192, 26, + 7, 225, 97, 97, 97, 97, 97, 19, 34, 49, 17, 65, + 17, 65, 17, 65, 17, 65, 17, 65, 17, 65, 240, 240, + 96, 13, 2, 97, 17, 81, 17, 17, 17, 17, 17, 17, + 17, 176, 18, 5, 240, 49, 65, 225, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 19, 112, 24, 7, 225, 97, + 97, 97, 97, 97, 49, 33, 34, 33, 18, 51, 68, 49, + 34, 33, 49, 33, 50, 240, 240, 96, 16, 2, 65, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 176, + 31, 12, 0, 10, 65, 19, 35, 34, 50, 49, 17, 65, + 65, 17, 65, 65, 17, 65, 65, 17, 65, 65, 17, 65, + 65, 17, 65, 65, 0, 7, 80, 23, 7, 0, 6, 17, + 19, 34, 49, 17, 65, 17, 65, 17, 65, 17, 65, 17, + 65, 17, 65, 240, 240, 96, 21, 8, 0, 7, 35, 65, + 49, 33, 81, 17, 81, 17, 81, 17, 81, 33, 49, 67, + 240, 240, 208, 24, 8, 0, 7, 1, 20, 34, 49, 33, + 81, 17, 81, 17, 81, 17, 81, 17, 65, 37, 49, 113, + 113, 113, 240, 25, 7, 0, 6, 35, 17, 33, 34, 17, + 65, 17, 65, 17, 65, 17, 65, 33, 34, 35, 17, 97, + 97, 97, 97, 128, 15, 5, 240, 240, 81, 18, 18, 49, + 65, 65, 65, 65, 65, 240, 224, 16, 6, 240, 240, 212, + 17, 81, 84, 67, 81, 17, 49, 20, 240, 240, 32, 16, + 5, 240, 97, 65, 65, 52, 33, 65, 65, 65, 65, 65, + 67, 240, 176, 23, 7, 0, 6, 17, 65, 17, 65, 17, + 65, 17, 65, 17, 65, 17, 65, 17, 50, 20, 17, 240, + 240, 96, 20, 8, 0, 7, 2, 65, 33, 65, 34, 34, + 34, 33, 65, 33, 68, 82, 98, 240, 240, 208, 32, 12, + 0, 10, 66, 49, 65, 33, 50, 34, 33, 33, 17, 34, + 34, 17, 17, 33, 65, 17, 18, 17, 65, 17, 35, 66, + 50, 82, 50, 0, 7, 112, 20, 8, 0, 7, 2, 65, + 34, 33, 68, 82, 98, 81, 18, 50, 34, 18, 65, 240, + 240, 176, 22, 8, 0, 7, 2, 65, 33, 65, 34, 34, + 49, 33, 65, 33, 68, 82, 98, 98, 97, 113, 82, 208, + 15, 7, 0, 6, 22, 81, 82, 81, 81, 82, 81, 86, + 240, 240, 96, 8, 9, 0, 11, 40, 0, 10, 32, 9, + 18, 0, 22, 79, 2, 0, 20, 48, 11, 6, 209, 33, + 17, 33, 33, 33, 0, 11, 64, 10, 7, 240, 114, 33, + 18, 18, 0, 13, 48, +}; + +//***************************************************************************** +// +// The font definition for the 18 point Cmss font. +// +//***************************************************************************** +const tFont g_sFontCmss18 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 16, + + // + // The height of the font. + // + 20, + + // + // The baseline of the font. + // + 15, + + // + // The offset to each character in the font. + // + { + 0, 5, 19, 30, 66, 97, 141, 172, + 180, 202, 224, 242, 261, 267, 275, 280, + 302, 330, 348, 368, 389, 412, 432, 457, + 475, 502, 527, 532, 539, 554, 565, 583, + 601, 638, 667, 695, 716, 746, 765, 784, + 808, 839, 855, 874, 905, 923, 974, 1013, + 1043, 1068, 1102, 1132, 1153, 1172, 1202, 1232, + 1283, 1312, 1337, 1356, 1377, 1390, 1411, 1421, + 1428, 1436, 1454, 1480, 1497, 1523, 1541, 1559, + 1583, 1609, 1622, 1640, 1664, 1680, 1711, 1734, + 1755, 1779, 1804, 1819, 1835, 1851, 1874, 1894, + 1926, 1946, 1968, 1983, 1991, 2000, 2011, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss18Data +}; diff --git a/grlib/fonts/fontcmss18b.c b/grlib/fonts/fontcmss18b.c new file mode 100644 index 0000000..48f7dab --- /dev/null +++ b/grlib/fonts/fontcmss18b.c @@ -0,0 +1,267 @@ +//***************************************************************************** +// +// fontcmss18b.c - Font definition for the 18pt Cmss bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 18 point +// Bold: yes +// Italic: no +// Memory usage: 2124 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 18 point Cmss bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss18bData[1922] = +{ + 5, 7, 0, 15, 96, 13, 3, 98, 18, 18, 18, 18, + 18, 18, 18, 114, 18, 208, 13, 7, 226, 34, 18, 34, + 18, 34, 17, 49, 0, 10, 96, 32, 15, 240, 240, 98, + 34, 145, 50, 145, 49, 146, 34, 78, 30, 82, 34, 146, + 34, 94, 30, 66, 34, 145, 50, 145, 49, 146, 34, 146, + 34, 240, 112, 27, 9, 49, 129, 102, 40, 18, 17, 34, + 18, 17, 84, 101, 85, 81, 19, 65, 34, 17, 33, 34, + 23, 53, 97, 240, 240, 32, 42, 17, 21, 98, 70, 67, + 50, 50, 66, 66, 50, 50, 82, 50, 34, 98, 50, 19, + 117, 34, 226, 227, 36, 130, 34, 34, 98, 50, 34, 82, + 66, 34, 67, 66, 34, 66, 86, 65, 116, 0, 6, 80, + 32, 14, 240, 240, 20, 146, 34, 130, 34, 130, 34, 130, + 18, 49, 84, 66, 67, 66, 66, 18, 50, 50, 35, 18, + 67, 36, 93, 52, 37, 0, 7, 16, 9, 3, 98, 18, + 18, 17, 240, 240, 128, 20, 5, 49, 50, 34, 50, 49, + 50, 50, 50, 50, 50, 50, 50, 50, 65, 66, 50, 66, + 65, 21, 5, 1, 66, 66, 50, 65, 66, 50, 50, 50, + 50, 50, 50, 50, 49, 50, 49, 50, 49, 64, 20, 9, + 50, 114, 66, 18, 18, 35, 18, 82, 83, 18, 34, 18, + 18, 66, 114, 0, 10, 80, 21, 14, 240, 240, 65, 209, + 209, 209, 209, 209, 125, 29, 113, 209, 209, 209, 209, 209, + 240, 240, 80, 9, 3, 240, 240, 98, 18, 18, 17, 128, + 9, 6, 0, 6, 101, 21, 240, 240, 208, 7, 3, 240, + 240, 98, 18, 208, 21, 9, 98, 114, 113, 114, 114, 113, + 114, 113, 114, 114, 113, 114, 113, 114, 114, 113, 114, 114, + 112, 28, 8, 240, 51, 66, 18, 34, 50, 18, 50, 18, + 50, 18, 50, 18, 50, 18, 50, 18, 50, 18, 50, 34, + 18, 67, 240, 240, 80, 16, 7, 228, 52, 82, 82, 82, + 82, 82, 82, 82, 82, 82, 54, 240, 224, 20, 8, 240, + 36, 54, 34, 35, 17, 66, 98, 98, 82, 82, 82, 82, + 87, 23, 240, 240, 48, 20, 8, 240, 52, 53, 49, 50, + 97, 68, 68, 114, 98, 98, 17, 66, 22, 68, 240, 240, + 64, 22, 10, 240, 147, 115, 100, 82, 18, 81, 34, 66, + 34, 50, 50, 57, 25, 98, 130, 130, 240, 240, 208, 20, + 8, 240, 37, 53, 50, 101, 53, 50, 34, 98, 98, 98, + 18, 50, 37, 67, 240, 240, 80, 24, 8, 240, 52, 53, + 49, 98, 19, 38, 35, 34, 18, 50, 18, 50, 18, 50, + 18, 50, 37, 67, 240, 240, 80, 18, 9, 240, 56, 24, + 98, 98, 114, 98, 114, 113, 114, 114, 114, 114, 240, 240, + 176, 24, 8, 240, 37, 39, 18, 50, 18, 50, 37, 53, + 34, 50, 18, 50, 18, 50, 18, 50, 37, 53, 240, 240, + 64, 23, 8, 240, 51, 69, 34, 50, 18, 50, 18, 50, + 18, 50, 23, 35, 18, 98, 82, 53, 52, 240, 240, 80, + 8, 3, 240, 50, 18, 210, 18, 208, 10, 3, 240, 50, + 18, 210, 18, 18, 17, 128, 14, 3, 242, 18, 66, 18, + 18, 18, 18, 18, 18, 18, 18, 64, 12, 14, 0, 10, + 77, 29, 240, 237, 29, 0, 10, 80, 17, 7, 240, 240, + 114, 82, 194, 82, 82, 66, 82, 66, 82, 82, 49, 37, + 128, 18, 8, 240, 37, 33, 66, 98, 83, 66, 82, 98, + 98, 240, 114, 98, 240, 240, 96, 33, 12, 240, 198, 67, + 21, 50, 23, 18, 19, 35, 18, 18, 66, 18, 18, 66, + 18, 18, 66, 18, 19, 35, 18, 38, 50, 36, 82, 82, + 70, 0, 6, 48, 25, 12, 240, 211, 133, 117, 114, 18, + 98, 35, 82, 50, 67, 50, 73, 57, 35, 82, 34, 99, + 18, 114, 0, 6, 16, 24, 10, 240, 87, 56, 34, 67, + 18, 66, 40, 40, 34, 67, 18, 82, 18, 82, 18, 67, + 25, 24, 240, 240, 192, 20, 11, 240, 166, 56, 51, 65, + 35, 130, 146, 146, 146, 147, 147, 66, 41, 70, 0, 5, + 96, 25, 11, 240, 119, 73, 34, 82, 34, 98, 18, 98, + 18, 98, 18, 98, 18, 98, 18, 98, 18, 82, 41, 39, + 0, 6, 18, 9, 240, 56, 24, 18, 114, 114, 119, 39, + 34, 114, 114, 120, 24, 240, 240, 112, 18, 9, 240, 56, + 24, 18, 114, 114, 119, 39, 34, 114, 114, 114, 114, 240, + 240, 208, 23, 12, 240, 199, 73, 35, 82, 19, 146, 162, + 162, 84, 18, 84, 19, 98, 35, 82, 57, 86, 0, 6, + 32, 28, 11, 240, 114, 98, 18, 98, 18, 98, 18, 98, + 18, 98, 26, 26, 18, 98, 18, 98, 18, 98, 18, 98, + 18, 98, 240, 240, 240, 15, 3, 98, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 208, 18, 7, 240, 50, + 82, 82, 82, 82, 82, 82, 82, 82, 17, 50, 22, 36, + 240, 240, 28, 11, 240, 114, 98, 18, 67, 34, 51, 50, + 35, 66, 19, 86, 87, 67, 34, 66, 66, 50, 67, 34, + 83, 18, 98, 240, 240, 240, 18, 8, 240, 18, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 103, 23, 240, 240, 48, + 42, 15, 240, 243, 131, 20, 100, 20, 100, 21, 69, 18, + 18, 66, 18, 18, 18, 66, 18, 18, 34, 34, 34, 18, + 34, 34, 34, 18, 37, 50, 18, 52, 50, 18, 52, 50, + 18, 66, 66, 0, 7, 80, 36, 11, 240, 115, 82, 20, + 66, 20, 66, 18, 18, 50, 18, 18, 50, 18, 34, 34, + 18, 34, 34, 18, 50, 18, 18, 50, 18, 18, 68, 18, + 68, 18, 83, 240, 240, 240, 28, 12, 240, 197, 83, 51, + 50, 82, 34, 114, 18, 114, 18, 114, 18, 114, 18, 114, + 18, 114, 34, 82, 51, 51, 85, 0, 6, 64, 20, 10, + 240, 87, 56, 34, 82, 18, 82, 18, 82, 24, 39, 50, + 130, 130, 130, 130, 0, 6, 29, 12, 240, 197, 83, 51, + 50, 82, 34, 114, 18, 114, 18, 114, 18, 114, 18, 114, + 18, 114, 34, 38, 35, 36, 86, 163, 162, 240, 176, 26, + 10, 240, 87, 56, 34, 82, 18, 82, 18, 82, 24, 39, + 50, 35, 50, 51, 34, 66, 34, 66, 34, 82, 240, 240, + 176, 20, 10, 240, 117, 71, 34, 81, 34, 131, 134, 101, + 131, 130, 18, 82, 24, 69, 240, 240, 208, 18, 11, 240, + 122, 26, 82, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 0, 6, 16, 28, 11, 240, 114, 98, 18, 98, 18, 98, + 18, 98, 18, 98, 18, 98, 18, 98, 18, 98, 18, 98, + 19, 67, 40, 70, 0, 5, 112, 28, 13, 240, 179, 114, + 35, 98, 35, 83, 50, 82, 67, 66, 67, 51, 82, 50, + 99, 19, 99, 18, 130, 18, 133, 147, 0, 7, 16, 43, + 19, 240, 240, 131, 83, 82, 34, 68, 82, 34, 68, 66, + 51, 53, 50, 66, 50, 18, 50, 66, 34, 34, 35, 66, + 34, 34, 34, 83, 18, 50, 18, 100, 66, 18, 100, 68, + 116, 68, 116, 83, 0, 10, 25, 13, 240, 179, 83, 51, + 51, 83, 35, 102, 132, 147, 164, 134, 99, 35, 82, 51, + 67, 67, 35, 99, 0, 6, 80, 22, 13, 240, 179, 99, + 35, 67, 67, 50, 83, 35, 102, 132, 163, 162, 178, 178, + 178, 178, 0, 7, 32, 18, 11, 240, 122, 26, 115, 130, + 131, 115, 115, 115, 130, 130, 138, 26, 240, 240, 240, 20, + 5, 4, 20, 18, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 52, 20, 13, 7, 241, 49, 18, + 34, 18, 34, 18, 34, 0, 10, 80, 20, 5, 4, 20, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 20, 20, 8, 6, 211, 34, 33, 0, 10, 80, + 7, 3, 98, 18, 240, 240, 208, 9, 3, 113, 18, 18, + 18, 240, 240, 112, 19, 8, 0, 6, 21, 49, 50, 98, + 53, 19, 34, 18, 50, 18, 50, 38, 240, 240, 48, 24, + 9, 240, 50, 114, 114, 114, 119, 34, 50, 34, 66, 18, + 66, 18, 66, 18, 66, 18, 50, 38, 240, 240, 144, 17, + 8, 0, 6, 37, 33, 65, 18, 98, 98, 98, 114, 49, + 53, 240, 240, 48, 24, 9, 240, 146, 114, 114, 114, 39, + 34, 50, 18, 66, 18, 66, 18, 66, 18, 66, 34, 50, + 54, 240, 240, 112, 18, 9, 0, 7, 5, 50, 50, 18, + 66, 24, 18, 114, 130, 50, 53, 240, 240, 128, 19, 7, + 240, 20, 34, 33, 34, 82, 69, 50, 82, 82, 82, 82, + 82, 82, 240, 240, 32, 21, 9, 0, 6, 119, 18, 34, + 50, 34, 50, 34, 54, 53, 71, 40, 17, 82, 18, 66, + 38, 176, 26, 8, 240, 18, 98, 98, 98, 98, 19, 35, + 34, 18, 50, 18, 50, 18, 50, 18, 50, 18, 50, 18, + 50, 240, 240, 48, 13, 3, 98, 18, 114, 18, 18, 18, + 18, 18, 18, 18, 208, 17, 6, 242, 66, 240, 18, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 20, 128, 23, 8, + 240, 18, 98, 98, 98, 98, 35, 18, 19, 37, 52, 69, + 50, 19, 34, 35, 18, 50, 240, 240, 48, 15, 3, 98, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 208, + 31, 14, 0, 10, 66, 21, 19, 35, 51, 34, 18, 66, + 50, 18, 66, 50, 18, 66, 50, 18, 66, 50, 18, 66, + 50, 18, 66, 50, 0, 7, 16, 23, 8, 0, 6, 2, + 19, 35, 34, 18, 50, 18, 50, 18, 50, 18, 50, 18, + 50, 18, 50, 240, 240, 48, 21, 9, 0, 7, 4, 66, + 34, 34, 66, 18, 66, 18, 66, 18, 66, 34, 34, 68, + 240, 240, 144, 23, 9, 0, 6, 103, 34, 51, 18, 66, + 18, 66, 18, 66, 18, 66, 18, 50, 38, 50, 114, 114, + 240, 16, 22, 8, 0, 6, 22, 19, 34, 18, 50, 18, + 50, 18, 50, 18, 50, 19, 34, 38, 98, 98, 98, 144, + 15, 6, 240, 240, 98, 18, 21, 19, 50, 66, 66, 66, + 66, 240, 208, 16, 7, 240, 240, 213, 18, 49, 18, 85, + 53, 82, 17, 50, 21, 240, 240, 17, 7, 240, 114, 82, + 82, 69, 50, 82, 82, 82, 82, 82, 33, 36, 240, 240, + 23, 8, 0, 6, 2, 50, 18, 50, 18, 50, 18, 50, + 18, 50, 18, 50, 18, 35, 35, 18, 240, 240, 48, 20, + 9, 0, 6, 98, 66, 19, 50, 34, 34, 50, 34, 51, + 18, 68, 84, 84, 240, 240, 144, 32, 13, 0, 9, 98, + 50, 50, 18, 50, 50, 34, 19, 34, 50, 17, 18, 18, + 50, 17, 18, 18, 50, 17, 18, 18, 67, 35, 82, 51, + 0, 6, 112, 19, 9, 0, 6, 98, 51, 34, 34, 68, + 98, 99, 100, 66, 34, 34, 66, 240, 240, 112, 21, 9, + 0, 6, 98, 66, 19, 35, 34, 34, 51, 18, 66, 18, + 68, 99, 98, 114, 113, 83, 240, 15, 8, 0, 6, 7, + 83, 67, 82, 82, 83, 67, 87, 240, 240, 48, 9, 11, + 0, 11, 10, 26, 0, 11, 16, 11, 20, 0, 20, 15, + 4, 31, 4, 0, 20, 16, 11, 7, 227, 18, 18, 18, + 33, 34, 0, 11, 80, 9, 7, 242, 33, 17, 34, 0, + 12, 64, +}; + +//***************************************************************************** +// +// The font definition for the 18 point Cmss bold font. +// +//***************************************************************************** +const tFont g_sFontCmss18b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 18, + + // + // The height of the font. + // + 18, + + // + // The baseline of the font. + // + 14, + + // + // The offset to each character in the font. + // + { + 0, 5, 18, 31, 63, 90, 132, 164, + 173, 193, 214, 234, 255, 264, 273, 280, + 301, 329, 345, 365, 385, 407, 427, 451, + 469, 493, 516, 524, 534, 548, 560, 577, + 595, 628, 653, 677, 697, 722, 740, 758, + 781, 809, 824, 842, 870, 888, 930, 966, + 994, 1014, 1043, 1069, 1089, 1107, 1135, 1163, + 1206, 1231, 1253, 1271, 1291, 1304, 1324, 1332, + 1339, 1348, 1367, 1391, 1408, 1432, 1450, 1469, + 1490, 1516, 1529, 1546, 1569, 1584, 1615, 1638, + 1659, 1682, 1704, 1719, 1735, 1752, 1775, 1795, + 1827, 1846, 1867, 1882, 1891, 1902, 1913, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss18bData +}; diff --git a/grlib/fonts/fontcmss18i.c b/grlib/fonts/fontcmss18i.c new file mode 100644 index 0000000..1ec74de --- /dev/null +++ b/grlib/fonts/fontcmss18i.c @@ -0,0 +1,278 @@ +//***************************************************************************** +// +// fontcmss18i.c - Font definition for the 18pt Cmss italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 18 point +// Bold: no +// Italic: yes +// Memory usage: 2260 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 18 point Cmss italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss18iData[2060] = +{ + 5, 7, 0, 17, 64, 15, 5, 194, 50, 49, 65, 65, + 65, 50, 49, 65, 65, 210, 240, 208, 13, 7, 241, 49, + 33, 49, 17, 49, 33, 49, 0, 12, 64, 35, 14, 0, + 6, 17, 49, 129, 49, 145, 49, 129, 49, 145, 49, 92, + 81, 49, 145, 49, 129, 49, 108, 81, 49, 129, 49, 145, + 49, 129, 49, 145, 49, 240, 240, 96, 30, 9, 81, 115, + 85, 65, 17, 17, 49, 33, 81, 33, 81, 17, 99, 115, + 115, 97, 17, 81, 33, 81, 33, 34, 17, 17, 68, 0, + 6, 16, 46, 12, 226, 97, 33, 33, 65, 49, 33, 49, + 49, 49, 49, 49, 49, 33, 65, 33, 33, 81, 33, 33, + 98, 33, 161, 50, 81, 49, 33, 65, 34, 33, 49, 49, + 49, 33, 65, 34, 17, 81, 33, 33, 98, 0, 6, 48, + 32, 12, 240, 227, 145, 17, 129, 33, 129, 33, 129, 17, + 146, 161, 81, 66, 65, 50, 18, 34, 33, 65, 33, 49, + 67, 65, 66, 100, 35, 0, 7, 96, 9, 3, 113, 33, + 17, 33, 240, 240, 224, 22, 7, 81, 81, 81, 82, 81, + 82, 81, 97, 97, 81, 97, 97, 97, 97, 97, 97, 97, + 113, 97, 192, 22, 7, 65, 97, 113, 97, 97, 97, 97, + 97, 97, 97, 81, 97, 97, 81, 97, 97, 81, 81, 81, + 208, 17, 8, 65, 113, 97, 81, 17, 18, 52, 67, 50, + 19, 66, 97, 0, 11, 80, 19, 12, 0, 6, 97, 177, + 177, 161, 177, 177, 107, 97, 161, 177, 177, 177, 0, 6, + 112, 8, 3, 240, 240, 194, 17, 33, 176, 8, 6, 0, + 7, 69, 0, 6, 112, 5, 2, 240, 209, 176, 23, 11, + 145, 145, 161, 145, 161, 145, 161, 145, 161, 145, 161, 145, + 161, 145, 161, 145, 161, 145, 161, 240, 96, 28, 8, 240, + 195, 65, 49, 33, 65, 33, 65, 33, 65, 17, 81, 17, + 66, 17, 65, 33, 65, 33, 50, 33, 49, 67, 240, 240, + 224, 18, 7, 240, 177, 52, 81, 97, 97, 82, 82, 81, + 97, 97, 82, 54, 240, 240, 96, 21, 9, 240, 240, 19, + 66, 34, 49, 65, 129, 129, 113, 113, 113, 113, 113, 98, + 119, 0, 5, 112, 23, 9, 240, 240, 19, 66, 34, 49, + 65, 113, 114, 83, 145, 129, 129, 33, 81, 34, 49, 68, + 0, 6, 16, 23, 9, 240, 240, 50, 99, 83, 97, 17, + 81, 33, 66, 18, 50, 34, 34, 49, 56, 82, 114, 114, + 0, 6, 20, 9, 240, 245, 50, 114, 113, 132, 81, 49, + 129, 129, 129, 113, 50, 34, 68, 0, 6, 16, 25, 8, + 240, 211, 50, 97, 97, 113, 18, 51, 33, 34, 49, 33, + 65, 33, 65, 33, 49, 49, 49, 67, 240, 240, 224, 18, + 9, 240, 215, 113, 114, 98, 98, 113, 114, 113, 114, 113, + 114, 114, 0, 6, 64, 27, 9, 240, 244, 66, 34, 34, + 65, 34, 65, 34, 49, 83, 66, 34, 34, 65, 33, 81, + 33, 81, 33, 65, 68, 0, 6, 16, 26, 9, 240, 240, + 19, 81, 49, 49, 65, 33, 81, 33, 81, 33, 66, 33, + 51, 51, 17, 129, 113, 113, 68, 0, 6, 32, 8, 4, + 240, 226, 240, 162, 240, 112, 12, 5, 240, 240, 114, 240, + 240, 18, 65, 49, 240, 64, 17, 5, 240, 240, 34, 129, + 65, 65, 50, 49, 65, 65, 65, 50, 50, 49, 144, 11, + 13, 0, 13, 27, 240, 240, 171, 0, 11, 80, 18, 6, + 240, 240, 161, 161, 81, 81, 66, 65, 66, 65, 65, 81, + 81, 49, 36, 112, 18, 7, 244, 49, 49, 97, 97, 81, + 81, 81, 97, 81, 97, 240, 66, 240, 240, 160, 37, 10, + 240, 163, 82, 49, 49, 36, 33, 34, 18, 33, 33, 49, + 17, 33, 65, 17, 33, 65, 17, 33, 50, 17, 33, 49, + 33, 33, 34, 34, 35, 66, 65, 69, 0, 6, 80, 28, + 11, 240, 210, 146, 129, 17, 129, 18, 97, 34, 97, 34, + 81, 50, 66, 50, 71, 50, 81, 49, 97, 34, 98, 17, + 114, 0, 7, 29, 11, 240, 165, 82, 65, 66, 66, 49, + 97, 49, 81, 50, 66, 54, 82, 65, 65, 97, 49, 97, + 34, 97, 34, 66, 55, 0, 7, 48, 21, 10, 240, 149, + 65, 65, 49, 129, 145, 129, 145, 145, 145, 145, 146, 145, + 65, 84, 0, 6, 96, 30, 12, 240, 198, 97, 81, 81, + 82, 50, 97, 50, 97, 49, 113, 49, 113, 34, 113, 34, + 97, 50, 97, 49, 97, 65, 81, 71, 0, 8, 16, 19, + 11, 240, 152, 49, 161, 161, 146, 146, 151, 65, 146, 146, + 146, 145, 168, 0, 7, 32, 19, 10, 240, 119, 49, 145, + 145, 130, 130, 135, 49, 130, 130, 130, 129, 145, 0, 7, + 48, 24, 10, 240, 149, 66, 49, 49, 130, 129, 145, 129, + 145, 145, 67, 33, 97, 33, 97, 49, 66, 69, 0, 6, + 80, 30, 12, 240, 178, 82, 49, 98, 49, 97, 65, 97, + 50, 97, 50, 82, 57, 49, 97, 65, 97, 50, 97, 50, + 82, 49, 98, 49, 97, 0, 8, 17, 5, 194, 50, 50, + 49, 65, 50, 50, 50, 49, 65, 50, 50, 50, 240, 208, + 20, 9, 240, 161, 114, 114, 113, 129, 129, 114, 114, 113, + 129, 129, 49, 50, 52, 0, 6, 32, 33, 12, 240, 178, + 82, 49, 82, 65, 66, 81, 50, 82, 34, 98, 18, 113, + 17, 17, 114, 34, 97, 65, 82, 66, 66, 66, 65, 97, + 65, 98, 0, 7, 112, 19, 8, 240, 50, 97, 113, 113, + 98, 98, 97, 113, 113, 98, 98, 97, 119, 240, 240, 176, + 49, 15, 240, 240, 34, 115, 51, 98, 67, 83, 65, 17, + 81, 17, 50, 17, 68, 50, 17, 65, 18, 49, 33, 50, + 17, 65, 33, 49, 33, 65, 33, 33, 49, 50, 34, 17, + 34, 50, 35, 50, 49, 66, 49, 65, 65, 65, 0, 9, + 112, 39, 12, 240, 179, 66, 51, 66, 49, 17, 65, 65, + 17, 65, 50, 18, 49, 50, 18, 34, 49, 49, 34, 49, + 49, 33, 65, 50, 17, 50, 50, 17, 49, 83, 49, 83, + 49, 82, 0, 8, 30, 12, 240, 228, 98, 50, 65, 98, + 33, 129, 33, 129, 17, 145, 17, 145, 17, 130, 17, 129, + 33, 114, 34, 82, 66, 50, 100, 0, 8, 32, 24, 11, + 240, 166, 81, 66, 50, 81, 50, 81, 50, 81, 49, 81, + 65, 66, 54, 82, 146, 145, 161, 146, 0, 8, 34, 12, + 240, 228, 98, 50, 65, 98, 34, 113, 33, 129, 17, 145, + 17, 145, 17, 145, 17, 129, 33, 50, 34, 34, 49, 33, + 66, 35, 101, 178, 178, 240, 240, 144, 30, 11, 240, 166, + 66, 66, 50, 81, 50, 81, 49, 97, 49, 66, 55, 66, + 49, 81, 65, 81, 66, 65, 81, 50, 81, 50, 82, 0, + 7, 16, 21, 10, 240, 149, 65, 65, 49, 145, 145, 147, + 147, 146, 145, 145, 129, 50, 50, 68, 0, 6, 112, 19, + 11, 240, 122, 82, 146, 145, 161, 146, 146, 146, 145, 161, + 146, 146, 146, 0, 7, 96, 31, 11, 240, 130, 82, 34, + 81, 49, 97, 49, 97, 49, 82, 49, 82, 34, 81, 49, + 97, 49, 97, 49, 82, 49, 81, 66, 49, 100, 0, 7, + 80, 30, 11, 240, 114, 113, 18, 98, 18, 97, 34, 82, + 49, 81, 65, 66, 65, 65, 82, 33, 98, 33, 98, 17, + 114, 17, 130, 146, 0, 7, 96, 50, 16, 240, 240, 33, + 97, 97, 18, 67, 66, 18, 67, 65, 34, 49, 18, 50, + 34, 49, 18, 49, 50, 34, 18, 34, 50, 33, 34, 33, + 66, 18, 34, 33, 66, 17, 50, 17, 82, 17, 65, 17, + 98, 82, 114, 82, 113, 98, 0, 10, 96, 29, 13, 240, + 210, 98, 66, 66, 82, 50, 114, 18, 132, 162, 178, 161, + 17, 146, 18, 114, 49, 98, 66, 81, 97, 65, 114, 0, + 8, 64, 25, 11, 240, 114, 113, 18, 98, 33, 82, 50, + 50, 81, 49, 98, 17, 115, 146, 145, 161, 146, 146, 145, + 0, 7, 112, 19, 12, 240, 200, 161, 162, 146, 146, 146, + 161, 162, 146, 146, 161, 161, 169, 0, 7, 112, 22, 7, + 163, 66, 81, 97, 97, 82, 82, 81, 97, 97, 82, 82, + 81, 97, 97, 82, 82, 81, 99, 64, 13, 6, 209, 33, + 33, 33, 17, 33, 34, 18, 0, 10, 80, 22, 7, 163, + 82, 82, 81, 97, 97, 82, 82, 81, 97, 97, 82, 82, + 81, 97, 97, 82, 82, 66, 80, 10, 6, 226, 49, 17, + 33, 49, 0, 11, 48, 7, 2, 97, 17, 240, 240, 16, + 9, 3, 113, 33, 17, 34, 240, 240, 208, 20, 8, 0, + 7, 36, 49, 65, 113, 53, 33, 50, 17, 66, 17, 50, + 36, 17, 240, 240, 192, 26, 8, 240, 50, 97, 113, 113, + 98, 101, 50, 34, 33, 65, 33, 65, 18, 65, 18, 49, + 34, 34, 33, 19, 240, 240, 208, 16, 8, 0, 7, 52, + 34, 97, 97, 113, 113, 114, 49, 52, 240, 240, 208, 25, + 9, 240, 161, 129, 114, 114, 113, 67, 17, 50, 34, 49, + 50, 33, 66, 33, 65, 49, 65, 49, 50, 69, 0, 6, + 17, 8, 0, 7, 51, 50, 49, 33, 65, 23, 17, 113, + 114, 116, 240, 240, 208, 19, 8, 240, 83, 65, 98, 97, + 113, 85, 66, 98, 97, 113, 113, 98, 97, 0, 5, 112, + 26, 11, 0, 10, 19, 18, 65, 49, 81, 65, 81, 65, + 81, 49, 85, 97, 181, 81, 81, 49, 97, 50, 65, 85, + 240, 16, 27, 8, 240, 65, 113, 98, 97, 113, 113, 19, + 35, 33, 34, 49, 33, 65, 33, 65, 33, 50, 18, 49, + 34, 49, 240, 240, 192, 15, 5, 240, 34, 50, 209, 50, + 50, 49, 65, 65, 50, 49, 240, 224, 20, 8, 240, 226, + 98, 240, 113, 113, 98, 97, 113, 113, 113, 98, 98, 97, + 65, 33, 67, 208, 26, 9, 240, 97, 129, 129, 114, 113, + 129, 50, 49, 34, 50, 17, 84, 82, 17, 81, 34, 65, + 49, 50, 50, 0, 5, 112, 17, 5, 209, 50, 49, 65, + 65, 65, 50, 49, 65, 65, 65, 50, 49, 240, 224, 31, + 12, 0, 10, 81, 19, 35, 34, 35, 33, 33, 50, 49, + 18, 49, 65, 18, 49, 65, 17, 65, 50, 17, 50, 49, + 33, 50, 49, 0, 7, 96, 23, 8, 0, 7, 33, 19, + 50, 33, 34, 49, 33, 65, 33, 65, 33, 50, 18, 49, + 34, 49, 240, 240, 192, 21, 9, 0, 8, 36, 65, 50, + 33, 81, 17, 97, 17, 97, 17, 81, 34, 49, 68, 0, + 6, 16, 25, 9, 0, 8, 21, 66, 34, 49, 65, 49, + 65, 34, 65, 34, 49, 50, 34, 49, 19, 65, 114, 114, + 113, 240, 32, 24, 8, 0, 7, 35, 17, 34, 34, 33, + 50, 17, 66, 17, 65, 33, 65, 34, 34, 53, 98, 97, + 113, 113, 176, 16, 7, 0, 6, 49, 18, 50, 66, 82, + 81, 97, 97, 82, 240, 240, 160, 16, 7, 0, 6, 52, + 33, 97, 99, 83, 97, 33, 49, 36, 240, 240, 128, 16, + 5, 240, 98, 49, 65, 52, 33, 65, 49, 65, 65, 65, + 67, 240, 192, 22, 8, 0, 7, 17, 50, 33, 50, 33, + 49, 33, 65, 33, 65, 33, 50, 33, 50, 37, 240, 240, + 208, 21, 8, 0, 7, 1, 81, 18, 49, 34, 34, 34, + 33, 65, 18, 65, 17, 83, 82, 240, 240, 240, 32, 12, + 0, 10, 65, 50, 50, 17, 50, 49, 33, 50, 34, 34, + 17, 17, 33, 50, 17, 17, 18, 51, 33, 17, 67, 33, + 17, 81, 50, 0, 8, 16, 20, 10, 0, 9, 2, 50, + 65, 34, 84, 114, 115, 98, 17, 82, 34, 50, 65, 0, + 6, 80, 25, 10, 0, 9, 1, 81, 50, 49, 66, 34, + 81, 33, 97, 18, 97, 17, 113, 17, 114, 129, 145, 129, + 114, 240, 48, 15, 8, 0, 7, 22, 97, 98, 82, 82, + 82, 82, 102, 240, 240, 192, 8, 10, 0, 12, 73, 0, + 11, 48, 9, 18, 0, 22, 79, 2, 0, 20, 48, 11, + 7, 242, 18, 33, 33, 33, 33, 0, 13, 64, 10, 7, + 240, 114, 33, 17, 34, 0, 13, 48, +}; + +//***************************************************************************** +// +// The font definition for the 18 point Cmss italic font. +// +//***************************************************************************** +const tFont g_sFontCmss18i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 16, + + // + // The height of the font. + // + 20, + + // + // The baseline of the font. + // + 15, + + // + // The offset to each character in the font. + // + { + 0, 5, 20, 33, 68, 98, 144, 176, + 185, 207, 229, 246, 265, 273, 281, 286, + 309, 337, 355, 376, 399, 422, 442, 467, + 485, 512, 538, 546, 558, 575, 586, 604, + 622, 659, 687, 716, 737, 767, 786, 805, + 829, 859, 876, 896, 929, 948, 997, 1036, + 1066, 1090, 1124, 1154, 1175, 1194, 1225, 1255, + 1305, 1334, 1359, 1378, 1400, 1413, 1435, 1445, + 1452, 1461, 1481, 1507, 1523, 1548, 1565, 1584, + 1610, 1637, 1652, 1672, 1698, 1715, 1746, 1769, + 1790, 1815, 1839, 1855, 1871, 1887, 1909, 1930, + 1962, 1982, 2007, 2022, 2030, 2039, 2050, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss18iData +}; diff --git a/grlib/fonts/fontcmss20.c b/grlib/fonts/fontcmss20.c new file mode 100644 index 0000000..403ff1a --- /dev/null +++ b/grlib/fonts/fontcmss20.c @@ -0,0 +1,293 @@ +//***************************************************************************** +// +// fontcmss20.c - Font definition for the 20pt Cmss font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 20 point +// Bold: no +// Italic: no +// Memory usage: 2444 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 20 point Cmss font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss20Data[2241] = +{ + 5, 9, 0, 23, 80, 17, 4, 66, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 162, 34, 240, 112, 15, 7, + 114, 18, 34, 18, 49, 33, 33, 33, 49, 33, 0, 13, + 64, 39, 16, 240, 193, 161, 65, 161, 49, 177, 49, 161, + 65, 161, 65, 161, 49, 110, 97, 65, 161, 65, 161, 49, + 126, 81, 65, 161, 65, 161, 49, 177, 49, 161, 65, 161, + 65, 161, 240, 224, 33, 10, 50, 117, 65, 18, 33, 34, + 18, 82, 18, 82, 18, 82, 18, 100, 117, 100, 98, 18, + 82, 18, 82, 18, 82, 18, 33, 36, 69, 114, 240, 240, + 240, 46, 16, 240, 35, 209, 33, 81, 82, 34, 49, 98, + 34, 49, 98, 34, 33, 114, 34, 33, 132, 33, 241, 225, + 36, 145, 33, 34, 113, 34, 34, 113, 34, 34, 97, 50, + 34, 81, 66, 34, 81, 81, 33, 210, 0, 8, 64, 37, + 15, 240, 67, 177, 34, 146, 34, 146, 34, 146, 34, 146, + 18, 164, 194, 97, 83, 82, 66, 18, 65, 66, 35, 34, + 66, 50, 33, 82, 68, 98, 51, 133, 21, 0, 9, 80, + 10, 4, 66, 34, 49, 33, 49, 0, 7, 112, 24, 7, + 65, 81, 82, 66, 82, 82, 66, 82, 82, 82, 82, 82, + 82, 82, 82, 98, 82, 82, 98, 97, 113, 32, 24, 7, + 1, 113, 98, 98, 82, 82, 98, 82, 82, 82, 82, 82, + 82, 82, 82, 66, 82, 82, 66, 81, 81, 96, 17, 10, + 50, 130, 130, 17, 70, 98, 116, 66, 18, 18, 82, 130, + 0, 15, 80, 21, 15, 0, 6, 49, 225, 225, 225, 225, + 225, 225, 141, 129, 225, 225, 225, 225, 225, 0, 8, 64, + 9, 4, 0, 7, 2, 34, 34, 33, 240, 8, 7, 0, + 9, 85, 0, 8, 16, 8, 4, 0, 7, 2, 34, 240, + 112, 24, 9, 97, 129, 113, 129, 129, 113, 129, 129, 113, + 129, 129, 129, 113, 129, 129, 113, 129, 129, 113, 129, 129, + 128, 32, 10, 240, 116, 82, 34, 65, 65, 50, 66, 34, + 66, 34, 66, 34, 66, 34, 66, 34, 66, 34, 66, 34, + 66, 49, 65, 66, 34, 84, 0, 6, 96, 20, 8, 240, + 65, 68, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 70, 240, 240, 192, 23, 10, 240, 116, 81, 50, 49, + 82, 33, 82, 130, 130, 114, 130, 114, 114, 114, 114, 129, + 136, 0, 6, 64, 24, 10, 240, 116, 82, 34, 65, 65, + 145, 145, 130, 99, 146, 146, 130, 130, 33, 82, 49, 50, + 84, 0, 6, 96, 26, 11, 240, 194, 131, 116, 113, 18, + 98, 18, 97, 34, 82, 34, 81, 50, 66, 50, 73, 114, + 146, 146, 146, 0, 7, 48, 23, 10, 240, 87, 50, 130, + 130, 130, 134, 67, 34, 50, 66, 130, 130, 130, 130, 33, + 66, 69, 0, 6, 96, 28, 10, 240, 132, 82, 114, 129, + 130, 130, 19, 67, 34, 50, 66, 34, 66, 34, 66, 34, + 66, 49, 66, 50, 34, 84, 0, 6, 96, 19, 10, 240, + 88, 130, 129, 130, 114, 130, 129, 130, 130, 129, 130, 130, + 130, 130, 0, 7, 31, 10, 240, 116, 82, 34, 50, 66, + 34, 66, 34, 66, 50, 34, 98, 98, 34, 50, 66, 34, + 66, 34, 66, 34, 66, 50, 34, 84, 0, 6, 96, 30, + 10, 240, 116, 82, 34, 65, 65, 50, 66, 34, 66, 34, + 66, 34, 66, 34, 66, 50, 35, 67, 18, 129, 130, 65, + 49, 84, 0, 6, 112, 10, 4, 240, 210, 34, 240, 114, + 34, 240, 112, 11, 4, 240, 210, 34, 240, 114, 34, 34, + 33, 240, 17, 4, 240, 146, 98, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 96, 11, 15, 0, 15, 13, + 0, 5, 125, 0, 15, 32, 20, 9, 0, 7, 2, 240, + 18, 114, 114, 114, 99, 98, 99, 98, 114, 114, 114, 50, + 53, 192, 20, 9, 149, 65, 66, 114, 114, 99, 83, 98, + 99, 98, 114, 114, 240, 162, 114, 0, 6, 32, 40, 13, + 240, 37, 114, 50, 82, 66, 66, 38, 49, 34, 35, 34, + 18, 66, 34, 18, 66, 34, 18, 66, 34, 18, 66, 34, + 18, 66, 49, 34, 34, 66, 36, 98, 194, 65, 117, 0, + 8, 80, 32, 13, 240, 34, 179, 163, 146, 17, 145, 34, + 129, 34, 114, 34, 114, 50, 97, 66, 82, 66, 88, 81, + 98, 50, 98, 50, 113, 49, 130, 0, 8, 48, 31, 12, + 199, 82, 66, 66, 82, 50, 97, 50, 82, 50, 82, 50, + 66, 70, 98, 67, 50, 83, 34, 98, 34, 98, 34, 98, + 34, 82, 56, 0, 8, 23, 12, 240, 22, 82, 65, 66, + 146, 161, 162, 162, 162, 162, 162, 178, 162, 178, 178, 65, + 101, 0, 7, 112, 33, 13, 215, 98, 67, 66, 97, 66, + 98, 50, 113, 50, 114, 34, 114, 34, 114, 34, 114, 34, + 114, 34, 114, 34, 98, 50, 98, 50, 67, 71, 0, 8, + 112, 20, 11, 185, 34, 146, 146, 146, 146, 146, 152, 50, + 146, 146, 146, 146, 146, 153, 0, 7, 16, 20, 10, 168, + 34, 130, 130, 130, 130, 130, 136, 34, 130, 130, 130, 130, + 130, 130, 0, 7, 32, 27, 13, 240, 38, 98, 66, 66, + 162, 178, 162, 178, 178, 178, 178, 69, 34, 114, 50, 98, + 66, 82, 82, 66, 102, 0, 8, 64, 34, 12, 194, 98, + 34, 98, 34, 98, 34, 98, 34, 98, 34, 98, 34, 98, + 42, 34, 98, 34, 98, 34, 98, 34, 98, 34, 98, 34, + 98, 34, 98, 0, 7, 96, 19, 4, 66, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 240, + 112, 20, 9, 226, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 33, 51, 53, 0, 6, 35, 12, 194, + 98, 34, 82, 50, 66, 66, 66, 66, 50, 82, 34, 98, + 19, 100, 17, 99, 34, 83, 50, 66, 66, 66, 82, 50, + 82, 50, 98, 34, 113, 0, 7, 96, 20, 10, 162, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 136, 0, 6, 64, 55, 15, 243, 115, 35, 115, 35, 115, + 36, 84, 34, 17, 81, 18, 34, 17, 81, 18, 34, 18, + 50, 18, 34, 33, 49, 34, 34, 33, 49, 34, 34, 34, + 18, 34, 34, 34, 18, 34, 34, 49, 17, 50, 34, 49, + 17, 50, 34, 51, 50, 34, 65, 66, 0, 9, 80, 44, + 12, 195, 82, 35, 82, 36, 66, 34, 17, 66, 34, 18, + 50, 34, 18, 50, 34, 33, 50, 34, 34, 34, 34, 49, + 34, 34, 50, 18, 34, 50, 18, 34, 65, 18, 34, 68, + 34, 83, 34, 83, 0, 7, 96, 34, 14, 240, 52, 130, + 66, 97, 97, 82, 98, 65, 130, 34, 130, 34, 130, 34, + 130, 34, 130, 34, 130, 34, 130, 50, 98, 81, 97, 98, + 66, 132, 0, 9, 64, 26, 11, 183, 66, 66, 50, 82, + 34, 82, 34, 82, 34, 82, 34, 82, 34, 66, 55, 66, + 146, 146, 146, 146, 146, 0, 8, 38, 14, 240, 52, 130, + 66, 97, 97, 82, 98, 65, 130, 34, 130, 34, 130, 34, + 130, 34, 130, 34, 130, 34, 130, 50, 49, 34, 81, 50, + 18, 82, 51, 133, 210, 210, 240, 240, 240, 33, 11, 183, + 66, 66, 50, 82, 34, 82, 34, 82, 34, 82, 34, 66, + 55, 66, 49, 82, 50, 66, 65, 66, 66, 50, 66, 50, + 82, 34, 82, 0, 7, 16, 22, 11, 214, 66, 65, 50, + 146, 146, 147, 148, 133, 147, 147, 146, 146, 146, 34, 66, + 70, 0, 7, 48, 20, 14, 236, 114, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 0, 9, 80, + 34, 12, 194, 98, 34, 98, 34, 98, 34, 98, 34, 98, + 34, 98, 34, 98, 34, 98, 34, 98, 34, 98, 34, 98, + 34, 98, 50, 66, 66, 51, 100, 0, 8, 16, 33, 14, + 226, 130, 50, 114, 50, 113, 66, 98, 82, 82, 82, 81, + 98, 66, 114, 50, 114, 49, 130, 34, 146, 18, 146, 17, + 177, 17, 179, 178, 0, 9, 80, 55, 19, 240, 66, 98, + 97, 49, 98, 97, 50, 67, 82, 50, 65, 18, 66, 50, + 65, 18, 65, 81, 65, 33, 65, 82, 34, 33, 50, 82, + 34, 34, 34, 82, 33, 50, 33, 113, 33, 65, 33, 114, + 17, 65, 18, 116, 68, 115, 83, 146, 98, 146, 98, 0, + 12, 64, 31, 13, 210, 98, 65, 97, 82, 66, 98, 34, + 129, 34, 132, 162, 178, 164, 145, 34, 114, 34, 98, 66, + 82, 82, 50, 98, 49, 130, 0, 8, 48, 27, 14, 226, + 130, 50, 113, 66, 98, 82, 66, 98, 66, 114, 34, 146, + 17, 164, 178, 194, 194, 194, 194, 194, 194, 0, 9, 80, + 20, 12, 201, 162, 146, 162, 146, 162, 146, 162, 146, 162, + 146, 162, 146, 146, 170, 0, 7, 96, 23, 6, 100, 34, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 68, 32, 15, 8, 145, 49, 49, + 49, 34, 34, 33, 49, 50, 34, 0, 15, 32, 23, 6, + 100, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 36, 32, 12, 8, 162, + 97, 17, 65, 34, 34, 49, 0, 16, 32, 7, 4, 130, + 34, 0, 8, 96, 10, 4, 81, 49, 34, 33, 50, 0, + 7, 96, 20, 9, 0, 8, 5, 65, 50, 114, 114, 69, + 35, 34, 34, 50, 34, 50, 54, 0, 5, 112, 28, 10, + 162, 130, 130, 130, 130, 130, 130, 19, 67, 34, 50, 66, + 34, 66, 34, 66, 34, 66, 34, 66, 34, 50, 54, 0, + 6, 96, 17, 10, 0, 9, 5, 66, 114, 130, 130, 130, + 130, 146, 65, 69, 0, 6, 80, 29, 10, 240, 18, 130, + 130, 130, 130, 130, 70, 50, 50, 34, 66, 34, 66, 34, + 66, 34, 66, 34, 66, 50, 35, 67, 18, 0, 6, 64, + 18, 9, 0, 8, 20, 66, 34, 34, 65, 39, 34, 114, + 129, 130, 49, 68, 0, 6, 20, 8, 179, 65, 98, 98, + 98, 98, 85, 66, 98, 98, 98, 98, 98, 98, 98, 240, + 240, 240, 25, 11, 0, 10, 6, 50, 50, 66, 50, 66, + 50, 81, 50, 69, 98, 151, 72, 50, 66, 34, 82, 50, + 51, 69, 240, 29, 10, 162, 130, 130, 130, 130, 130, 130, + 20, 51, 50, 34, 66, 34, 66, 34, 66, 34, 66, 34, + 66, 34, 66, 34, 66, 0, 6, 64, 15, 4, 130, 34, + 226, 34, 34, 34, 34, 34, 34, 34, 34, 240, 112, 20, + 7, 240, 34, 82, 240, 178, 82, 82, 82, 82, 82, 82, + 82, 82, 82, 82, 82, 36, 160, 27, 10, 162, 130, 130, + 130, 130, 130, 130, 50, 50, 34, 66, 18, 84, 101, 83, + 18, 66, 49, 66, 50, 50, 66, 0, 6, 64, 19, 4, + 66, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 240, 112, 34, 15, 0, 13, 18, 20, 35, + 51, 51, 34, 34, 66, 50, 34, 66, 50, 34, 66, 50, + 34, 66, 50, 34, 66, 50, 34, 66, 50, 34, 66, 50, + 0, 9, 80, 25, 10, 0, 8, 98, 20, 51, 50, 34, + 66, 34, 66, 34, 66, 34, 66, 34, 66, 34, 66, 34, + 66, 0, 6, 64, 23, 11, 0, 9, 117, 82, 50, 50, + 82, 34, 82, 34, 82, 34, 82, 34, 82, 50, 50, 85, + 0, 7, 48, 27, 10, 0, 8, 98, 19, 67, 34, 50, + 66, 34, 66, 34, 66, 34, 66, 34, 66, 34, 50, 54, + 66, 130, 130, 130, 240, 48, 27, 10, 0, 9, 3, 18, + 50, 35, 34, 66, 34, 66, 34, 66, 34, 66, 34, 66, + 50, 35, 67, 18, 130, 130, 130, 130, 192, 17, 7, 0, + 6, 18, 18, 36, 51, 66, 82, 82, 82, 82, 82, 240, + 240, 160, 18, 8, 0, 7, 21, 34, 49, 34, 99, 100, + 99, 98, 33, 50, 37, 240, 240, 208, 20, 9, 240, 240, + 130, 114, 114, 87, 66, 114, 114, 114, 114, 114, 114, 33, + 84, 0, 5, 112, 25, 10, 0, 8, 98, 66, 34, 66, + 34, 66, 34, 66, 34, 66, 34, 66, 34, 66, 34, 51, + 52, 18, 0, 6, 64, 23, 10, 0, 8, 98, 81, 49, + 66, 50, 49, 66, 49, 81, 34, 82, 17, 113, 17, 115, + 114, 0, 6, 112, 33, 14, 0, 12, 34, 65, 65, 49, + 50, 65, 50, 35, 34, 50, 33, 17, 34, 65, 18, 17, + 33, 81, 17, 36, 83, 51, 83, 50, 114, 50, 0, 9, + 32, 22, 10, 0, 8, 98, 66, 50, 34, 82, 17, 115, + 114, 131, 97, 34, 66, 49, 50, 81, 0, 6, 64, 27, + 10, 0, 8, 98, 81, 49, 66, 50, 49, 81, 49, 82, + 18, 82, 17, 113, 17, 113, 17, 129, 145, 130, 129, 114, + 240, 32, 16, 9, 0, 7, 119, 113, 114, 98, 113, 114, + 98, 113, 119, 0, 5, 112, 7, 11, 0, 13, 105, 0, + 14, 9, 21, 0, 26, 47, 4, 0, 26, 64, 13, 8, + 146, 18, 49, 33, 50, 18, 50, 18, 0, 16, 48, 10, + 8, 240, 19, 33, 33, 34, 0, 17, 48, +}; + +//***************************************************************************** +// +// The font definition for the 20 point Cmss font. +// +//***************************************************************************** +const tFont g_sFontCmss20 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 18, + + // + // The height of the font. + // + 21, + + // + // The baseline of the font. + // + 16, + + // + // The offset to each character in the font. + // + { + 0, 5, 22, 37, 76, 109, 155, 192, + 202, 226, 250, 267, 288, 297, 305, 313, + 337, 369, 389, 412, 436, 462, 485, 513, + 532, 563, 593, 603, 614, 631, 642, 662, + 682, 722, 754, 785, 808, 841, 861, 881, + 908, 942, 961, 981, 1016, 1036, 1091, 1135, + 1169, 1195, 1233, 1266, 1288, 1308, 1342, 1375, + 1430, 1461, 1488, 1508, 1531, 1546, 1569, 1581, + 1588, 1598, 1618, 1646, 1663, 1692, 1710, 1730, + 1755, 1784, 1799, 1819, 1846, 1865, 1899, 1924, + 1947, 1974, 2001, 2018, 2036, 2056, 2081, 2104, + 2137, 2159, 2186, 2202, 2209, 2218, 2231, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss20Data +}; diff --git a/grlib/fonts/fontcmss20b.c b/grlib/fonts/fontcmss20b.c new file mode 100644 index 0000000..4c5de31 --- /dev/null +++ b/grlib/fonts/fontcmss20b.c @@ -0,0 +1,289 @@ +//***************************************************************************** +// +// fontcmss20b.c - Font definition for the 20pt Cmss bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 20 point +// Bold: yes +// Italic: no +// Memory usage: 2392 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 20 point Cmss bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss20bData[2192] = +{ + 5, 9, 0, 23, 80, 17, 5, 163, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 115, 35, 35, 240, 192, 16, 9, + 240, 51, 19, 35, 19, 35, 19, 49, 49, 50, 34, 0, + 16, 16, 42, 18, 240, 240, 210, 49, 194, 49, 193, 50, + 178, 50, 178, 50, 178, 49, 111, 1, 47, 1, 114, 49, + 193, 50, 127, 1, 47, 1, 97, 50, 178, 50, 178, 50, + 178, 49, 193, 50, 193, 50, 240, 192, 30, 11, 65, 161, + 134, 72, 35, 17, 34, 35, 17, 99, 17, 101, 118, 102, + 117, 97, 19, 97, 19, 34, 33, 19, 40, 85, 129, 0, + 6, 32, 47, 21, 240, 132, 130, 102, 99, 83, 35, 82, + 99, 35, 66, 115, 35, 50, 131, 35, 35, 131, 35, 34, + 166, 34, 240, 50, 240, 50, 54, 147, 35, 35, 130, 51, + 35, 114, 67, 35, 98, 83, 35, 83, 102, 98, 132, 0, + 11, 35, 17, 240, 240, 132, 194, 35, 147, 35, 147, 35, + 147, 34, 163, 18, 66, 100, 82, 99, 98, 70, 66, 67, + 35, 35, 67, 39, 83, 53, 111, 69, 53, 0, 10, 112, + 10, 5, 163, 35, 35, 49, 50, 0, 9, 16, 24, 8, + 66, 82, 82, 98, 83, 82, 83, 83, 83, 83, 83, 83, + 83, 83, 83, 98, 99, 98, 98, 114, 114, 32, 24, 8, + 2, 114, 114, 98, 99, 98, 99, 83, 83, 83, 83, 83, + 83, 83, 83, 82, 83, 82, 98, 82, 82, 96, 23, 11, + 51, 131, 82, 19, 18, 35, 17, 19, 69, 101, 67, 17, + 19, 34, 19, 18, 83, 131, 0, 15, 96, 21, 16, 0, + 6, 98, 226, 226, 226, 226, 226, 226, 142, 46, 130, 226, + 226, 226, 226, 226, 0, 7, 11, 5, 0, 8, 19, 35, + 35, 49, 50, 240, 48, 9, 8, 0, 10, 6, 38, 0, + 9, 32, 9, 5, 0, 8, 19, 35, 35, 240, 192, 24, + 10, 113, 130, 130, 129, 130, 130, 129, 130, 130, 114, 130, + 130, 114, 130, 129, 130, 130, 129, 130, 130, 129, 144, 32, + 11, 240, 149, 83, 19, 66, 50, 51, 51, 35, 51, 35, + 51, 35, 51, 35, 51, 35, 51, 35, 51, 35, 51, 50, + 50, 67, 19, 85, 0, 7, 48, 20, 10, 240, 146, 70, + 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 87, + 0, 6, 64, 22, 11, 240, 148, 103, 50, 52, 34, 67, + 131, 131, 115, 131, 115, 114, 130, 130, 137, 41, 0, 7, + 16, 22, 11, 240, 164, 87, 66, 50, 146, 131, 100, 116, + 162, 147, 131, 131, 34, 67, 55, 85, 0, 7, 48, 25, + 12, 240, 212, 132, 117, 113, 19, 98, 19, 97, 35, 82, + 35, 66, 51, 66, 51, 74, 42, 115, 147, 147, 0, 8, + 22, 11, 240, 135, 71, 67, 131, 131, 134, 87, 67, 35, + 131, 131, 131, 34, 67, 55, 85, 0, 7, 48, 27, 11, + 240, 164, 101, 83, 115, 131, 19, 72, 52, 35, 35, 51, + 35, 51, 35, 51, 35, 51, 51, 35, 55, 85, 0, 7, + 48, 20, 11, 240, 121, 41, 130, 131, 130, 131, 130, 131, + 131, 115, 131, 131, 131, 131, 0, 7, 80, 28, 11, 240, + 149, 87, 51, 51, 35, 51, 35, 51, 55, 85, 82, 50, + 51, 51, 35, 51, 35, 51, 35, 51, 55, 85, 0, 7, + 48, 27, 11, 240, 149, 87, 51, 50, 51, 51, 35, 51, + 35, 51, 35, 51, 35, 36, 56, 67, 19, 131, 115, 70, + 100, 0, 7, 64, 13, 5, 240, 240, 83, 35, 35, 240, + 35, 35, 35, 240, 192, 15, 5, 240, 240, 83, 35, 35, + 240, 35, 35, 35, 49, 50, 240, 48, 18, 5, 240, 243, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 112, 13, 16, 0, 16, 14, 46, 240, 240, 78, 46, + 0, 14, 32, 20, 10, 0, 7, 99, 115, 115, 115, 115, + 115, 115, 99, 114, 115, 114, 130, 130, 66, 54, 208, 21, + 10, 240, 87, 50, 51, 115, 115, 99, 99, 115, 99, 115, + 115, 240, 35, 115, 115, 0, 6, 112, 39, 15, 240, 240, + 71, 100, 51, 67, 38, 67, 24, 35, 20, 20, 35, 19, + 51, 35, 19, 51, 35, 19, 51, 35, 19, 51, 35, 20, + 20, 51, 23, 67, 37, 100, 67, 103, 0, 9, 112, 29, + 15, 240, 240, 68, 181, 165, 150, 146, 35, 115, 35, 115, + 35, 114, 67, 83, 67, 90, 91, 51, 99, 51, 99, 50, + 131, 0, 9, 80, 28, 13, 240, 184, 90, 51, 67, 51, + 82, 51, 67, 51, 67, 57, 73, 67, 67, 51, 83, 35, + 83, 35, 68, 42, 57, 0, 8, 80, 23, 14, 240, 240, + 39, 89, 68, 81, 67, 163, 179, 179, 179, 179, 179, 195, + 180, 82, 74, 102, 0, 9, 32, 30, 14, 240, 217, 90, + 67, 68, 51, 83, 51, 99, 35, 99, 35, 99, 35, 99, + 35, 99, 35, 99, 35, 83, 51, 68, 58, 73, 0, 9, + 48, 20, 12, 240, 154, 42, 35, 147, 147, 147, 153, 57, + 51, 147, 147, 147, 154, 42, 0, 7, 96, 20, 11, 240, + 121, 41, 35, 131, 131, 131, 136, 56, 51, 131, 131, 131, + 131, 131, 0, 7, 112, 27, 14, 240, 240, 39, 90, 52, + 82, 51, 113, 35, 179, 179, 179, 179, 69, 35, 69, 51, + 83, 52, 67, 74, 103, 0, 9, 16, 31, 14, 240, 211, + 99, 35, 99, 35, 99, 35, 99, 35, 99, 35, 99, 44, + 44, 35, 99, 35, 99, 35, 99, 35, 99, 35, 99, 35, + 99, 0, 9, 18, 5, 163, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 240, 192, 21, 10, 240, + 163, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 49, + 51, 39, 69, 0, 6, 96, 31, 14, 240, 211, 99, 35, + 83, 51, 67, 67, 51, 83, 35, 99, 19, 119, 120, 100, + 35, 83, 67, 67, 67, 67, 83, 51, 99, 35, 114, 0, + 9, 20, 11, 240, 115, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 137, 41, 0, 7, 16, 51, 18, 240, + 240, 100, 132, 37, 101, 37, 101, 37, 101, 35, 18, 66, + 19, 35, 18, 66, 19, 35, 18, 66, 19, 35, 34, 34, + 35, 35, 34, 34, 35, 35, 34, 34, 35, 35, 52, 51, + 35, 52, 51, 35, 52, 51, 35, 66, 67, 0, 11, 64, + 39, 14, 240, 212, 83, 37, 67, 37, 67, 38, 51, 35, + 18, 51, 35, 18, 51, 35, 34, 35, 35, 34, 35, 35, + 50, 19, 35, 50, 19, 35, 54, 35, 69, 35, 69, 35, + 84, 0, 9, 30, 15, 240, 240, 70, 121, 84, 52, 67, + 83, 51, 115, 35, 115, 35, 115, 35, 115, 35, 115, 35, + 115, 51, 83, 68, 52, 89, 119, 0, 10, 25, 13, 240, + 185, 74, 51, 68, 35, 83, 35, 83, 35, 83, 35, 68, + 42, 57, 67, 163, 163, 163, 163, 0, 9, 48, 32, 15, + 240, 240, 70, 121, 84, 52, 67, 83, 51, 115, 35, 115, + 35, 115, 35, 115, 35, 115, 35, 115, 51, 38, 68, 37, + 89, 120, 195, 211, 0, 6, 30, 13, 240, 185, 74, 51, + 68, 35, 83, 35, 83, 35, 68, 42, 56, 83, 35, 83, + 51, 67, 66, 67, 67, 51, 82, 51, 83, 0, 8, 48, + 22, 12, 240, 182, 88, 51, 66, 51, 147, 150, 119, 103, + 148, 147, 33, 99, 34, 83, 41, 86, 0, 8, 20, 15, + 240, 253, 45, 115, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 0, 10, 32, 32, 13, 240, 179, 83, 35, + 83, 35, 83, 35, 83, 35, 83, 35, 83, 35, 83, 35, + 83, 35, 83, 35, 83, 35, 83, 51, 52, 57, 101, 0, + 8, 96, 31, 15, 240, 242, 131, 35, 115, 35, 99, 67, + 83, 67, 82, 83, 67, 99, 51, 99, 50, 115, 35, 131, + 19, 131, 18, 150, 165, 164, 0, 10, 32, 51, 22, 240, + 240, 227, 99, 98, 50, 84, 83, 51, 68, 82, 67, 69, + 66, 67, 51, 18, 66, 82, 50, 34, 51, 83, 34, 35, + 34, 99, 34, 35, 34, 114, 19, 50, 19, 114, 18, 66, + 19, 117, 69, 133, 69, 148, 84, 147, 99, 0, 14, 64, + 29, 15, 240, 244, 83, 67, 67, 99, 51, 100, 19, 134, + 165, 179, 181, 165, 147, 19, 115, 51, 84, 52, 67, 83, + 51, 115, 0, 9, 80, 26, 15, 240, 243, 115, 36, 99, + 51, 83, 83, 51, 100, 20, 115, 19, 149, 165, 179, 195, + 195, 195, 195, 195, 0, 10, 32, 20, 13, 240, 187, 43, + 147, 148, 147, 147, 147, 163, 147, 147, 147, 163, 155, 43, + 0, 8, 48, 23, 7, 117, 37, 35, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 69, + 37, 32, 16, 10, 240, 98, 50, 49, 65, 51, 35, 35, + 35, 35, 35, 0, 17, 96, 23, 7, 117, 37, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 37, 37, 32, 11, 8, 240, 51, 66, 18, 34, + 49, 0, 16, 32, 7, 5, 163, 35, 0, 10, 112, 9, + 5, 178, 49, 51, 35, 35, 0, 9, 20, 10, 0, 8, + 118, 65, 51, 115, 115, 55, 35, 35, 35, 35, 35, 35, + 55, 0, 6, 64, 26, 12, 240, 147, 147, 147, 147, 147, + 152, 67, 51, 51, 67, 35, 67, 35, 67, 35, 67, 35, + 67, 35, 51, 56, 0, 8, 18, 10, 0, 9, 5, 71, + 35, 65, 35, 115, 115, 116, 49, 55, 69, 0, 6, 80, + 27, 11, 240, 211, 131, 131, 131, 131, 71, 51, 35, 35, + 51, 35, 51, 35, 51, 35, 51, 35, 51, 51, 35, 71, + 0, 7, 16, 20, 11, 0, 9, 117, 83, 34, 51, 51, + 35, 51, 41, 35, 131, 147, 50, 70, 0, 7, 32, 20, + 9, 240, 100, 51, 99, 99, 99, 86, 67, 99, 99, 99, + 99, 99, 99, 99, 0, 6, 32, 24, 11, 0, 9, 104, + 35, 34, 67, 34, 67, 34, 86, 70, 82, 152, 72, 34, + 82, 34, 82, 35, 51, 70, 224, 29, 11, 240, 115, 131, + 131, 131, 131, 131, 20, 52, 35, 35, 51, 35, 51, 35, + 51, 35, 51, 35, 51, 35, 51, 35, 51, 0, 7, 16, + 16, 5, 163, 35, 35, 195, 35, 35, 35, 35, 35, 35, + 35, 35, 240, 192, 21, 8, 240, 67, 83, 83, 240, 99, + 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 38, 52, + 176, 26, 11, 240, 115, 131, 131, 131, 131, 131, 51, 35, + 35, 51, 19, 70, 86, 87, 67, 35, 51, 50, 51, 51, + 0, 7, 16, 18, 5, 163, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 240, 192, 34, 17, 0, + 14, 115, 20, 36, 52, 36, 35, 35, 51, 51, 35, 51, + 51, 35, 51, 51, 35, 51, 51, 35, 51, 51, 35, 51, + 51, 35, 51, 51, 0, 10, 112, 25, 11, 0, 9, 83, + 20, 52, 35, 35, 51, 35, 51, 35, 51, 35, 51, 35, + 51, 35, 51, 35, 51, 0, 7, 16, 22, 11, 0, 9, + 117, 82, 50, 51, 51, 35, 51, 35, 51, 35, 51, 35, + 51, 55, 85, 0, 7, 48, 26, 12, 0, 10, 67, 20, + 73, 51, 52, 35, 67, 35, 67, 35, 67, 35, 67, 35, + 51, 56, 67, 147, 147, 147, 240, 96, 25, 11, 0, 9, + 115, 19, 56, 36, 35, 35, 51, 35, 51, 35, 51, 35, + 51, 51, 35, 71, 131, 131, 131, 131, 208, 17, 8, 0, + 7, 3, 18, 38, 36, 67, 83, 83, 83, 83, 83, 240, + 240, 240, 17, 9, 0, 8, 6, 34, 50, 34, 117, 86, + 114, 34, 50, 39, 53, 0, 6, 19, 9, 240, 240, 115, + 99, 99, 87, 51, 99, 99, 99, 99, 99, 33, 54, 68, + 0, 6, 25, 11, 0, 9, 83, 51, 35, 51, 35, 51, + 35, 51, 35, 51, 35, 51, 35, 51, 35, 36, 52, 19, + 0, 7, 16, 23, 11, 0, 9, 82, 82, 35, 51, 50, + 50, 66, 50, 67, 19, 82, 18, 98, 18, 101, 115, 0, + 7, 64, 33, 16, 0, 14, 2, 66, 66, 35, 50, 51, + 50, 36, 34, 66, 33, 18, 34, 67, 17, 18, 19, 69, + 18, 19, 84, 21, 99, 52, 99, 52, 0, 10, 64, 22, + 11, 0, 9, 83, 51, 51, 19, 82, 18, 115, 131, 117, + 98, 18, 82, 50, 51, 66, 0, 7, 16, 24, 11, 0, + 9, 82, 82, 35, 51, 50, 50, 67, 19, 82, 19, 85, + 116, 116, 130, 146, 130, 101, 100, 240, 48, 16, 10, 0, + 8, 104, 115, 99, 99, 114, 115, 99, 99, 120, 0, 6, + 64, 9, 13, 0, 14, 91, 43, 0, 16, 64, 11, 24, + 0, 27, 15, 7, 47, 7, 0, 30, 32, 12, 9, 240, + 51, 19, 34, 34, 50, 33, 0, 18, 64, 11, 9, 240, + 67, 33, 39, 33, 35, 0, 18, 48, +}; + +//***************************************************************************** +// +// The font definition for the 20 point Cmss bold font. +// +//***************************************************************************** +const tFont g_sFontCmss20b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 21, + + // + // The height of the font. + // + 21, + + // + // The baseline of the font. + // + 16, + + // + // The offset to each character in the font. + // + { + 0, 5, 22, 38, 80, 110, 157, 192, + 202, 226, 250, 273, 294, 305, 314, 323, + 347, 379, 399, 421, 443, 468, 490, 517, + 537, 565, 592, 605, 620, 638, 651, 671, + 692, 731, 760, 788, 811, 841, 861, 881, + 908, 939, 957, 978, 1009, 1029, 1080, 1119, + 1149, 1174, 1206, 1236, 1258, 1278, 1310, 1341, + 1392, 1421, 1447, 1467, 1490, 1506, 1529, 1540, + 1547, 1556, 1576, 1602, 1620, 1647, 1667, 1687, + 1711, 1740, 1756, 1777, 1803, 1821, 1855, 1880, + 1902, 1928, 1953, 1970, 1987, 2006, 2031, 2054, + 2087, 2109, 2133, 2149, 2158, 2169, 2181, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss20bData +}; diff --git a/grlib/fonts/fontcmss20i.c b/grlib/fonts/fontcmss20i.c new file mode 100644 index 0000000..665496f --- /dev/null +++ b/grlib/fonts/fontcmss20i.c @@ -0,0 +1,296 @@ +//***************************************************************************** +// +// fontcmss20i.c - Font definition for the 20pt Cmss italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 20 point +// Bold: no +// Italic: yes +// Memory usage: 2472 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 20 point Cmss italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss20iData[2271] = +{ + 5, 9, 0, 23, 80, 19, 7, 162, 82, 81, 97, 82, + 82, 81, 97, 82, 82, 81, 240, 66, 82, 240, 240, 160, + 15, 7, 129, 33, 49, 33, 49, 33, 33, 33, 49, 33, + 0, 13, 64, 39, 16, 240, 145, 241, 49, 161, 49, 177, + 49, 161, 65, 161, 49, 161, 65, 109, 113, 49, 161, 49, + 177, 49, 125, 97, 49, 177, 49, 161, 49, 177, 49, 161, + 65, 161, 49, 241, 240, 176, 34, 12, 98, 149, 82, 17, + 33, 81, 33, 114, 33, 114, 18, 114, 17, 133, 148, 148, + 129, 18, 113, 34, 113, 34, 49, 49, 18, 66, 33, 17, + 101, 145, 0, 7, 47, 15, 240, 35, 113, 50, 18, 81, + 65, 34, 65, 66, 34, 65, 66, 34, 49, 82, 18, 49, + 115, 49, 209, 225, 35, 129, 34, 18, 97, 49, 34, 81, + 50, 34, 65, 66, 34, 65, 66, 33, 65, 82, 18, 49, + 115, 0, 8, 37, 15, 240, 99, 178, 18, 161, 34, 146, + 34, 146, 18, 162, 17, 179, 194, 97, 83, 82, 66, 17, + 66, 66, 34, 49, 66, 50, 33, 82, 67, 98, 67, 117, + 37, 0, 9, 80, 10, 4, 81, 49, 49, 33, 49, 0, + 7, 112, 24, 9, 97, 113, 114, 98, 113, 114, 114, 98, + 114, 114, 98, 114, 114, 114, 114, 114, 114, 114, 129, 130, + 129, 96, 24, 9, 65, 130, 129, 130, 114, 114, 114, 114, + 114, 114, 114, 98, 114, 114, 98, 114, 113, 114, 98, 113, + 113, 128, 19, 10, 65, 145, 97, 33, 33, 50, 20, 82, + 101, 66, 17, 18, 97, 145, 0, 15, 96, 21, 15, 0, + 6, 65, 225, 225, 225, 209, 225, 225, 141, 129, 209, 225, + 225, 225, 225, 0, 8, 80, 9, 4, 0, 7, 17, 49, + 33, 49, 240, 8, 7, 0, 9, 85, 0, 8, 16, 8, + 4, 0, 7, 2, 34, 240, 112, 24, 13, 161, 193, 177, + 177, 193, 177, 193, 177, 193, 177, 193, 177, 193, 177, 193, + 177, 193, 177, 193, 177, 193, 192, 32, 11, 240, 180, 97, + 50, 66, 50, 65, 66, 50, 66, 50, 66, 49, 82, 34, + 81, 50, 66, 50, 66, 50, 65, 66, 50, 66, 49, 100, + 0, 7, 80, 20, 9, 240, 145, 69, 113, 129, 114, 114, + 114, 113, 129, 114, 114, 114, 113, 87, 0, 5, 112, 22, + 12, 240, 213, 97, 51, 66, 66, 65, 82, 162, 146, 162, + 146, 146, 146, 146, 145, 146, 168, 0, 8, 23, 11, 240, + 180, 82, 50, 65, 66, 146, 130, 130, 115, 162, 162, 146, + 146, 130, 65, 50, 100, 0, 7, 80, 26, 11, 240, 226, + 131, 115, 114, 17, 98, 18, 98, 18, 82, 34, 66, 49, + 66, 65, 73, 114, 146, 145, 161, 0, 7, 64, 23, 12, + 240, 199, 82, 161, 177, 177, 166, 98, 50, 81, 66, 162, + 162, 162, 146, 66, 50, 101, 0, 8, 32, 29, 11, 240, + 196, 82, 49, 66, 146, 130, 146, 19, 68, 34, 51, 50, + 50, 66, 50, 66, 50, 65, 66, 50, 66, 49, 100, 0, + 7, 80, 19, 11, 240, 136, 145, 146, 130, 130, 145, 146, + 130, 146, 130, 146, 145, 146, 146, 0, 8, 31, 12, 240, + 228, 98, 50, 81, 81, 66, 66, 66, 66, 81, 50, 115, + 114, 34, 82, 66, 50, 82, 50, 82, 50, 66, 67, 34, + 116, 0, 8, 32, 29, 12, 240, 228, 98, 49, 82, 66, + 66, 66, 50, 82, 50, 82, 50, 82, 50, 67, 51, 35, + 84, 18, 146, 161, 161, 101, 0, 8, 48, 11, 5, 240, + 240, 113, 50, 240, 194, 49, 240, 224, 14, 6, 240, 240, + 226, 66, 240, 240, 49, 81, 81, 65, 240, 128, 18, 7, + 240, 240, 242, 193, 82, 82, 81, 97, 82, 82, 82, 81, + 97, 82, 82, 192, 11, 15, 0, 15, 28, 0, 5, 124, + 0, 15, 48, 20, 9, 0, 7, 50, 240, 17, 114, 113, + 129, 114, 98, 98, 114, 98, 114, 114, 50, 53, 192, 20, + 9, 165, 49, 66, 114, 114, 98, 98, 98, 113, 114, 113, + 129, 240, 162, 113, 0, 6, 80, 40, 14, 240, 85, 115, + 50, 82, 82, 66, 53, 50, 50, 34, 50, 34, 50, 34, + 34, 66, 34, 34, 66, 34, 34, 65, 50, 34, 50, 50, + 34, 49, 66, 52, 98, 210, 66, 117, 0, 9, 64, 33, + 13, 240, 82, 178, 161, 17, 146, 18, 129, 34, 114, 34, + 114, 34, 98, 50, 98, 50, 82, 66, 88, 66, 98, 49, + 114, 34, 114, 33, 130, 0, 8, 48, 33, 14, 240, 39, + 113, 82, 97, 98, 66, 98, 66, 98, 66, 82, 81, 82, + 102, 114, 82, 82, 98, 66, 98, 65, 114, 65, 98, 66, + 82, 88, 0, 9, 64, 23, 13, 240, 69, 98, 65, 82, + 162, 162, 178, 162, 178, 178, 178, 178, 178, 194, 179, 65, + 117, 0, 8, 96, 34, 15, 240, 55, 130, 67, 97, 98, + 97, 114, 66, 114, 66, 114, 66, 114, 65, 130, 65, 130, + 50, 114, 66, 114, 66, 98, 81, 98, 97, 82, 104, 0, + 10, 32, 21, 13, 240, 24, 66, 178, 178, 178, 177, 178, + 184, 82, 178, 177, 178, 178, 178, 185, 0, 8, 80, 21, + 13, 240, 24, 66, 178, 178, 177, 193, 178, 184, 82, 177, + 193, 178, 178, 178, 178, 0, 9, 64, 27, 13, 240, 69, + 98, 65, 82, 162, 162, 178, 177, 178, 178, 178, 68, 50, + 98, 50, 98, 66, 82, 67, 65, 117, 0, 8, 96, 35, + 14, 240, 33, 113, 66, 98, 66, 98, 66, 98, 66, 98, + 65, 113, 66, 113, 74, 66, 98, 66, 98, 65, 113, 66, + 113, 66, 98, 66, 98, 66, 98, 0, 9, 32, 20, 7, + 162, 82, 81, 82, 82, 82, 82, 81, 82, 82, 82, 82, + 81, 82, 82, 240, 240, 160, 22, 11, 240, 65, 146, 146, + 146, 145, 161, 146, 146, 146, 145, 161, 146, 146, 65, 50, + 85, 0, 7, 80, 35, 14, 240, 33, 98, 66, 82, 82, + 66, 98, 50, 113, 50, 129, 34, 130, 19, 134, 131, 34, + 114, 50, 113, 82, 82, 82, 82, 82, 82, 98, 66, 98, + 0, 9, 32, 20, 10, 209, 130, 130, 130, 130, 129, 130, + 130, 130, 130, 129, 130, 130, 130, 136, 0, 6, 64, 55, + 17, 240, 82, 130, 67, 115, 67, 115, 68, 84, 65, 18, + 81, 18, 65, 18, 66, 17, 66, 18, 65, 33, 66, 33, + 50, 18, 66, 33, 49, 34, 65, 49, 34, 34, 65, 49, + 33, 49, 66, 49, 18, 49, 66, 51, 50, 66, 51, 50, + 65, 66, 66, 0, 11, 16, 44, 14, 240, 34, 97, 68, + 81, 68, 66, 68, 66, 65, 33, 66, 65, 33, 65, 66, + 34, 49, 66, 34, 34, 66, 49, 34, 65, 65, 34, 65, + 66, 17, 66, 66, 17, 66, 68, 66, 83, 65, 99, 0, + 9, 32, 34, 15, 240, 100, 146, 51, 98, 82, 82, 114, + 50, 130, 50, 130, 49, 146, 34, 146, 34, 131, 34, 130, + 50, 130, 50, 114, 82, 82, 99, 50, 148, 0, 10, 48, + 28, 14, 240, 39, 114, 66, 97, 98, 81, 98, 66, 98, + 66, 98, 66, 82, 81, 82, 103, 98, 194, 194, 193, 209, + 194, 0, 10, 32, 38, 15, 240, 100, 146, 51, 98, 82, + 82, 114, 50, 130, 50, 130, 49, 146, 34, 146, 34, 146, + 34, 130, 50, 130, 50, 50, 34, 82, 49, 18, 99, 35, + 149, 226, 226, 0, 6, 32, 34, 14, 240, 39, 113, 82, + 97, 98, 66, 98, 66, 98, 66, 82, 81, 82, 103, 98, + 50, 114, 50, 114, 65, 113, 82, 97, 82, 82, 97, 82, + 98, 0, 9, 32, 24, 13, 240, 54, 98, 65, 81, 178, + 178, 179, 180, 165, 179, 178, 178, 178, 49, 98, 66, 66, + 102, 0, 8, 112, 19, 14, 236, 114, 194, 193, 209, 194, + 194, 194, 193, 209, 194, 194, 194, 194, 193, 0, 10, 35, + 14, 240, 18, 98, 66, 97, 82, 97, 81, 113, 66, 98, + 66, 98, 66, 97, 82, 97, 66, 113, 66, 98, 66, 98, + 66, 97, 82, 82, 98, 50, 132, 0, 9, 96, 31, 14, + 226, 130, 34, 129, 65, 114, 65, 113, 82, 82, 82, 81, + 98, 66, 98, 65, 114, 50, 129, 49, 145, 34, 146, 17, + 163, 179, 178, 0, 10, 57, 19, 240, 66, 98, 97, 34, + 83, 82, 34, 83, 81, 50, 68, 66, 50, 65, 18, 65, + 81, 65, 18, 50, 81, 49, 34, 49, 97, 49, 49, 49, + 97, 34, 49, 34, 97, 33, 65, 33, 113, 18, 65, 18, + 113, 17, 81, 17, 129, 17, 83, 130, 98, 146, 98, 0, + 12, 112, 32, 15, 240, 50, 98, 82, 82, 114, 65, 130, + 49, 161, 34, 164, 194, 210, 195, 178, 18, 146, 34, 130, + 66, 98, 82, 97, 114, 65, 130, 0, 9, 112, 26, 14, + 226, 130, 50, 98, 66, 97, 82, 82, 98, 50, 114, 34, + 146, 17, 163, 179, 178, 194, 194, 194, 193, 209, 0, 10, + 21, 14, 240, 41, 194, 178, 178, 179, 178, 178, 178, 179, + 178, 178, 178, 194, 178, 186, 0, 9, 32, 23, 9, 211, + 97, 129, 114, 114, 113, 129, 114, 114, 113, 129, 129, 114, + 114, 113, 129, 129, 114, 114, 115, 96, 15, 7, 129, 33, + 49, 33, 33, 33, 49, 33, 49, 33, 0, 13, 64, 23, + 10, 228, 129, 145, 145, 130, 130, 129, 145, 130, 130, 130, + 129, 145, 130, 130, 129, 145, 145, 130, 100, 96, 11, 9, + 194, 100, 66, 33, 50, 50, 0, 18, 32, 7, 4, 130, + 34, 0, 8, 96, 10, 4, 81, 49, 33, 49, 49, 0, + 7, 112, 20, 10, 0, 9, 20, 81, 50, 130, 130, 70, + 50, 49, 50, 50, 50, 50, 54, 0, 6, 96, 28, 11, + 225, 161, 146, 146, 146, 145, 161, 20, 67, 35, 50, 66, + 50, 66, 49, 82, 49, 81, 50, 66, 50, 50, 70, 0, + 7, 64, 18, 10, 0, 9, 21, 66, 49, 50, 129, 130, + 130, 130, 146, 49, 84, 0, 6, 96, 29, 12, 240, 97, + 162, 162, 161, 177, 177, 102, 82, 50, 66, 65, 81, 81, + 66, 81, 66, 66, 66, 66, 67, 34, 100, 17, 0, 8, + 16, 19, 11, 0, 10, 5, 82, 50, 50, 66, 41, 34, + 146, 146, 162, 49, 100, 0, 7, 64, 20, 10, 243, 97, + 129, 130, 130, 130, 102, 97, 130, 130, 129, 145, 145, 130, + 130, 0, 7, 32, 26, 13, 0, 11, 119, 82, 34, 98, + 50, 98, 50, 98, 34, 117, 113, 214, 104, 66, 82, 66, + 82, 67, 50, 102, 240, 64, 28, 10, 194, 130, 129, 145, + 145, 130, 134, 66, 50, 50, 50, 49, 66, 34, 65, 50, + 50, 50, 50, 49, 66, 49, 65, 0, 6, 96, 17, 6, + 226, 66, 240, 113, 66, 66, 65, 81, 81, 66, 66, 65, + 240, 240, 80, 23, 10, 240, 178, 130, 240, 240, 114, 130, + 130, 129, 145, 145, 130, 130, 129, 145, 145, 81, 33, 100, + 240, 16, 27, 10, 194, 130, 129, 145, 145, 130, 130, 50, + 49, 50, 65, 33, 99, 101, 82, 33, 81, 50, 65, 50, + 65, 66, 0, 6, 80, 20, 6, 145, 66, 66, 65, 81, + 81, 81, 66, 65, 81, 81, 81, 66, 66, 65, 240, 240, + 80, 34, 16, 0, 14, 33, 20, 36, 66, 51, 34, 65, + 66, 50, 50, 65, 66, 50, 50, 65, 66, 50, 50, 65, + 66, 50, 65, 65, 66, 50, 65, 65, 0, 10, 64, 24, + 10, 0, 8, 118, 66, 50, 50, 50, 49, 66, 34, 65, + 50, 50, 50, 50, 49, 66, 49, 65, 0, 6, 96, 23, + 11, 0, 10, 4, 98, 34, 66, 66, 34, 82, 34, 82, + 34, 82, 34, 66, 66, 34, 100, 0, 7, 64, 27, 12, + 0, 10, 113, 20, 98, 35, 66, 66, 66, 66, 65, 82, + 65, 81, 81, 66, 66, 50, 86, 97, 177, 177, 162, 240, + 112, 27, 11, 0, 10, 6, 66, 50, 50, 66, 49, 81, + 50, 81, 50, 66, 50, 66, 51, 34, 84, 17, 161, 146, + 146, 145, 240, 16, 18, 8, 0, 7, 18, 18, 49, 17, + 82, 97, 98, 98, 97, 113, 113, 0, 5, 112, 17, 10, + 0, 9, 21, 50, 130, 131, 132, 131, 130, 49, 66, 53, + 0, 6, 112, 20, 8, 240, 240, 66, 98, 97, 86, 50, + 98, 98, 97, 98, 98, 98, 33, 52, 240, 240, 224, 24, + 10, 0, 9, 1, 65, 50, 65, 50, 65, 50, 50, 49, + 66, 34, 65, 50, 65, 50, 50, 55, 0, 6, 80, 22, + 10, 0, 8, 98, 66, 34, 65, 50, 50, 65, 49, 81, + 34, 81, 33, 100, 99, 114, 0, 7, 16, 36, 14, 0, + 12, 34, 50, 65, 34, 50, 50, 34, 33, 17, 49, 50, + 33, 17, 34, 50, 18, 17, 33, 81, 17, 33, 18, 83, + 33, 17, 98, 51, 98, 50, 0, 9, 64, 21, 12, 0, + 10, 98, 66, 82, 34, 98, 18, 131, 146, 148, 114, 33, + 98, 50, 66, 81, 0, 8, 25, 12, 0, 10, 98, 66, + 66, 65, 97, 50, 97, 49, 113, 34, 114, 17, 131, 147, + 161, 177, 161, 162, 131, 240, 96, 16, 10, 0, 8, 119, + 129, 130, 114, 114, 114, 114, 114, 135, 0, 6, 80, 8, + 12, 0, 15, 10, 0, 15, 32, 9, 21, 0, 26, 47, + 4, 0, 26, 64, 13, 9, 177, 34, 50, 33, 65, 34, + 50, 33, 0, 18, 64, 10, 9, 240, 67, 18, 33, 35, + 0, 19, 64, +}; + +//***************************************************************************** +// +// The font definition for the 20 point Cmss italic font. +// +//***************************************************************************** +const tFont g_sFontCmss20i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 18, + + // + // The height of the font. + // + 21, + + // + // The baseline of the font. + // + 16, + + // + // The offset to each character in the font. + // + { + 0, 5, 24, 39, 78, 112, 159, 196, + 206, 230, 254, 273, 294, 303, 311, 319, + 343, 375, 395, 417, 440, 466, 489, 518, + 537, 568, 597, 608, 622, 640, 651, 671, + 691, 731, 764, 797, 820, 854, 875, 896, + 923, 958, 978, 1000, 1035, 1055, 1110, 1154, + 1188, 1216, 1254, 1288, 1312, 1331, 1366, 1397, + 1454, 1486, 1512, 1533, 1556, 1571, 1594, 1605, + 1612, 1622, 1642, 1670, 1688, 1717, 1736, 1756, + 1782, 1810, 1827, 1850, 1877, 1897, 1931, 1955, + 1978, 2005, 2032, 2050, 2067, 2087, 2111, 2133, + 2169, 2190, 2215, 2231, 2239, 2248, 2261, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss20iData +}; diff --git a/grlib/fonts/fontcmss22.c b/grlib/fonts/fontcmss22.c new file mode 100644 index 0000000..4240f48 --- /dev/null +++ b/grlib/fonts/fontcmss22.c @@ -0,0 +1,294 @@ +//***************************************************************************** +// +// fontcmss22.c - Font definition for the 22pt Cmss font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 22 point +// Bold: no +// Italic: no +// Memory usage: 2448 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 22 point Cmss font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss22Data[2248] = +{ + 5, 9, 0, 23, 80, 17, 4, 66, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 162, 34, 240, 112, 15, 8, + 130, 34, 34, 34, 49, 49, 33, 49, 49, 49, 0, 15, + 48, 41, 17, 240, 145, 65, 177, 49, 177, 65, 177, 65, + 177, 65, 177, 49, 177, 65, 111, 113, 65, 177, 49, 177, + 65, 127, 97, 65, 177, 49, 177, 65, 177, 65, 177, 49, + 177, 65, 177, 65, 240, 176, 33, 10, 50, 117, 65, 18, + 33, 34, 18, 82, 18, 82, 18, 82, 18, 100, 117, 100, + 98, 18, 82, 18, 82, 18, 82, 18, 33, 36, 69, 114, + 240, 240, 240, 47, 17, 240, 51, 113, 97, 33, 97, 82, + 34, 65, 98, 34, 49, 114, 34, 49, 114, 34, 33, 148, + 49, 241, 240, 17, 36, 145, 49, 34, 113, 50, 34, 113, + 50, 34, 97, 66, 34, 97, 66, 34, 81, 97, 33, 226, + 0, 9, 37, 15, 240, 67, 177, 34, 146, 34, 146, 34, + 146, 34, 146, 18, 164, 194, 97, 83, 97, 66, 18, 66, + 50, 35, 49, 66, 50, 34, 66, 68, 98, 51, 133, 21, + 0, 9, 80, 10, 4, 66, 34, 49, 33, 49, 0, 7, + 112, 24, 7, 65, 81, 82, 66, 82, 82, 66, 82, 82, + 82, 82, 82, 82, 82, 82, 98, 82, 82, 98, 97, 113, + 32, 24, 7, 1, 113, 98, 98, 82, 82, 98, 82, 82, + 82, 82, 82, 82, 82, 82, 66, 82, 82, 66, 81, 81, + 96, 18, 10, 50, 130, 81, 34, 33, 54, 98, 102, 50, + 18, 18, 82, 130, 0, 15, 80, 21, 15, 0, 6, 49, + 225, 225, 225, 225, 225, 225, 141, 129, 225, 225, 225, 225, + 225, 0, 8, 64, 9, 4, 0, 7, 2, 34, 34, 33, + 240, 8, 7, 0, 9, 85, 0, 8, 16, 8, 4, 0, + 7, 2, 34, 240, 112, 24, 10, 113, 145, 129, 145, 145, + 129, 145, 129, 145, 145, 129, 145, 145, 129, 145, 145, 129, + 145, 145, 129, 145, 144, 32, 11, 240, 163, 98, 50, 66, + 50, 50, 82, 34, 82, 34, 82, 34, 82, 34, 82, 34, + 82, 34, 82, 34, 82, 50, 50, 66, 50, 85, 0, 7, + 48, 20, 10, 240, 145, 85, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 88, 0, 6, 64, 22, 10, 240, + 101, 66, 50, 49, 82, 130, 130, 130, 114, 130, 114, 114, + 114, 114, 114, 136, 0, 6, 64, 24, 10, 240, 116, 81, + 50, 49, 81, 145, 145, 130, 84, 146, 146, 130, 130, 33, + 82, 34, 50, 84, 0, 6, 96, 26, 11, 240, 194, 131, + 116, 113, 18, 98, 18, 97, 34, 82, 34, 81, 50, 66, + 50, 73, 114, 146, 146, 146, 0, 7, 48, 23, 10, 240, + 102, 66, 130, 130, 130, 133, 82, 34, 66, 50, 130, 130, + 130, 130, 34, 50, 84, 0, 6, 96, 28, 10, 240, 132, + 82, 114, 129, 130, 130, 19, 67, 34, 50, 66, 34, 66, + 34, 66, 34, 66, 49, 66, 50, 34, 84, 0, 6, 96, + 19, 10, 240, 88, 145, 129, 130, 129, 130, 129, 130, 130, + 129, 130, 130, 130, 130, 0, 7, 31, 11, 240, 149, 82, + 50, 50, 82, 34, 82, 34, 82, 50, 50, 99, 98, 50, + 50, 82, 34, 82, 34, 82, 34, 82, 50, 50, 85, 0, + 7, 48, 30, 10, 240, 116, 82, 34, 65, 65, 50, 66, + 34, 66, 34, 66, 34, 66, 34, 66, 50, 35, 67, 18, + 129, 130, 65, 49, 84, 0, 6, 112, 10, 4, 240, 210, + 34, 240, 114, 34, 240, 112, 11, 4, 240, 210, 34, 240, + 114, 34, 34, 33, 240, 17, 4, 240, 146, 98, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 96, 11, 16, + 0, 16, 14, 0, 6, 46, 0, 16, 32, 20, 10, 0, + 7, 114, 240, 50, 130, 130, 130, 114, 130, 114, 114, 130, + 130, 130, 66, 69, 208, 20, 9, 149, 65, 66, 114, 114, + 99, 83, 98, 99, 98, 114, 114, 240, 162, 114, 0, 6, + 32, 40, 14, 240, 68, 130, 66, 82, 82, 66, 54, 50, + 34, 35, 34, 34, 66, 34, 34, 66, 34, 34, 66, 34, + 34, 66, 34, 34, 66, 50, 34, 34, 66, 52, 98, 210, + 81, 133, 0, 9, 32, 32, 14, 240, 66, 179, 177, 18, + 161, 18, 146, 18, 146, 34, 129, 50, 114, 50, 114, 66, + 82, 82, 89, 82, 98, 50, 114, 50, 114, 49, 146, 0, + 9, 32, 13, 216, 82, 82, 66, 98, 50, 98, 50, 98, + 50, 98, 50, 82, 71, 98, 82, 66, 98, 50, 114, 34, + 114, 34, 114, 34, 83, 56, 0, 8, 96, 23, 13, 240, + 38, 98, 65, 82, 162, 178, 162, 178, 178, 178, 178, 194, + 178, 194, 194, 66, 102, 0, 8, 64, 33, 14, 232, 98, + 82, 82, 98, 66, 114, 50, 114, 50, 130, 34, 130, 34, + 130, 34, 130, 34, 130, 34, 129, 50, 114, 50, 98, 66, + 82, 88, 0, 9, 64, 20, 12, 201, 50, 162, 162, 162, + 162, 162, 169, 50, 162, 162, 162, 162, 162, 170, 0, 7, + 96, 19, 11, 185, 34, 146, 146, 146, 146, 146, 152, 50, + 146, 146, 146, 146, 146, 146, 0, 8, 27, 13, 240, 38, + 98, 66, 66, 162, 178, 162, 178, 178, 178, 178, 69, 34, + 114, 50, 98, 66, 82, 82, 66, 102, 0, 8, 64, 34, + 12, 194, 98, 34, 98, 34, 98, 34, 98, 34, 98, 34, + 98, 34, 98, 42, 34, 98, 34, 98, 34, 98, 34, 98, + 34, 98, 34, 98, 34, 98, 0, 7, 96, 19, 4, 66, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 240, 112, 21, 9, 226, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 33, 51, 37, 0, 6, + 16, 35, 13, 210, 114, 34, 98, 50, 82, 66, 66, 82, + 50, 98, 34, 114, 19, 116, 18, 99, 34, 99, 50, 82, + 82, 66, 82, 66, 98, 50, 114, 34, 114, 0, 8, 48, + 20, 10, 162, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 136, 0, 6, 64, 54, 16, 240, 19, + 131, 35, 131, 36, 100, 36, 100, 34, 17, 97, 18, 34, + 18, 66, 18, 34, 18, 66, 18, 34, 33, 65, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 49, 33, 50, 34, + 52, 50, 34, 52, 50, 34, 66, 66, 34, 66, 66, 0, + 10, 32, 44, 13, 211, 98, 36, 82, 36, 82, 34, 18, + 66, 34, 18, 66, 34, 33, 66, 34, 34, 50, 34, 49, + 50, 34, 50, 34, 34, 65, 34, 34, 66, 18, 34, 66, + 18, 34, 84, 34, 84, 34, 99, 0, 8, 48, 34, 15, + 240, 69, 146, 50, 114, 82, 82, 114, 65, 145, 50, 146, + 34, 146, 34, 146, 34, 146, 34, 146, 50, 114, 66, 114, + 82, 82, 114, 50, 149, 0, 10, 16, 27, 12, 199, 82, + 67, 50, 82, 50, 98, 34, 98, 34, 98, 34, 82, 50, + 82, 55, 82, 162, 162, 162, 162, 162, 0, 8, 96, 36, + 15, 240, 69, 146, 50, 114, 82, 82, 114, 65, 145, 50, + 146, 34, 146, 34, 146, 34, 146, 34, 146, 49, 146, 50, + 50, 34, 82, 52, 114, 36, 134, 226, 226, 0, 6, 33, + 12, 199, 82, 82, 50, 98, 34, 98, 34, 98, 34, 98, + 34, 82, 56, 66, 50, 82, 65, 82, 66, 66, 82, 50, + 82, 50, 98, 34, 98, 0, 7, 96, 22, 11, 214, 66, + 65, 50, 146, 146, 147, 148, 133, 147, 147, 146, 146, 146, + 34, 66, 70, 0, 7, 48, 20, 14, 236, 114, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 0, + 9, 80, 34, 12, 194, 98, 34, 98, 34, 98, 34, 98, + 34, 98, 34, 98, 34, 98, 34, 98, 34, 98, 34, 98, + 34, 98, 34, 98, 50, 66, 66, 51, 100, 0, 8, 16, + 32, 15, 242, 146, 50, 130, 50, 129, 81, 114, 82, 98, + 82, 97, 114, 66, 114, 65, 130, 50, 146, 34, 146, 33, + 162, 18, 180, 179, 210, 0, 10, 32, 58, 21, 240, 98, + 114, 98, 50, 83, 97, 66, 81, 17, 82, 66, 81, 17, + 82, 81, 66, 18, 66, 82, 50, 18, 65, 98, 49, 49, + 50, 98, 49, 50, 34, 113, 34, 50, 33, 130, 18, 50, + 33, 130, 17, 81, 18, 130, 17, 84, 145, 17, 83, 163, + 83, 162, 114, 0, 13, 112, 31, 14, 226, 114, 66, 82, + 82, 82, 98, 50, 130, 18, 161, 18, 163, 179, 179, 162, + 18, 130, 50, 114, 66, 82, 82, 66, 114, 50, 130, 0, + 9, 27, 14, 226, 145, 34, 130, 50, 98, 67, 82, 82, + 66, 114, 34, 131, 18, 148, 178, 194, 194, 194, 194, 194, + 194, 0, 9, 80, 20, 12, 202, 162, 146, 147, 146, 146, + 162, 146, 162, 146, 146, 162, 146, 162, 154, 0, 7, 96, + 23, 6, 100, 34, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 68, 32, 15, + 8, 145, 49, 49, 49, 34, 34, 33, 49, 50, 34, 0, + 15, 32, 23, 6, 100, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 36, + 32, 12, 9, 179, 97, 17, 81, 49, 50, 50, 0, 18, + 32, 7, 4, 130, 34, 0, 8, 96, 10, 4, 81, 49, + 34, 33, 50, 0, 7, 96, 20, 9, 0, 8, 5, 65, + 50, 114, 114, 69, 35, 34, 34, 50, 34, 50, 54, 0, + 5, 112, 28, 10, 162, 130, 130, 130, 130, 130, 130, 19, + 67, 34, 50, 66, 34, 66, 34, 66, 34, 66, 34, 66, + 34, 50, 54, 0, 6, 96, 18, 10, 0, 9, 21, 50, + 65, 49, 130, 130, 130, 130, 146, 65, 84, 0, 6, 80, + 29, 10, 240, 18, 130, 130, 130, 130, 130, 70, 50, 50, + 34, 66, 34, 66, 34, 66, 34, 66, 34, 66, 50, 35, + 67, 18, 0, 6, 64, 19, 10, 0, 9, 4, 82, 49, + 50, 81, 40, 34, 130, 146, 130, 65, 84, 0, 6, 80, + 20, 8, 179, 65, 98, 98, 98, 98, 85, 66, 98, 98, + 98, 98, 98, 98, 98, 240, 240, 240, 26, 12, 0, 10, + 119, 50, 50, 82, 50, 82, 50, 97, 50, 85, 114, 167, + 88, 66, 82, 34, 98, 50, 67, 70, 240, 16, 29, 9, + 146, 114, 114, 114, 114, 114, 114, 19, 51, 34, 34, 50, + 34, 50, 34, 50, 34, 50, 34, 50, 34, 50, 34, 50, + 0, 5, 112, 15, 4, 130, 34, 226, 34, 34, 34, 34, + 34, 34, 34, 34, 240, 112, 20, 7, 240, 34, 82, 240, + 178, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, + 36, 160, 27, 10, 162, 130, 130, 130, 130, 130, 130, 50, + 50, 34, 66, 18, 85, 85, 83, 18, 66, 50, 50, 50, + 50, 66, 0, 6, 64, 19, 4, 66, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 240, 112, + 34, 15, 0, 13, 18, 19, 36, 51, 35, 50, 34, 50, + 66, 34, 50, 66, 34, 50, 66, 34, 50, 66, 34, 50, + 66, 34, 50, 66, 34, 50, 66, 0, 9, 80, 25, 9, + 0, 7, 114, 19, 51, 34, 34, 50, 34, 50, 34, 50, + 34, 50, 34, 50, 34, 50, 34, 50, 0, 5, 112, 23, + 11, 0, 9, 117, 82, 50, 50, 82, 34, 82, 34, 82, + 34, 82, 34, 82, 50, 50, 85, 0, 7, 48, 27, 10, + 0, 8, 98, 19, 67, 34, 50, 66, 34, 66, 34, 66, + 34, 66, 34, 66, 34, 50, 54, 66, 130, 130, 130, 240, + 48, 27, 10, 0, 9, 3, 18, 50, 35, 34, 66, 34, + 66, 34, 66, 34, 66, 34, 66, 50, 35, 67, 18, 130, + 130, 130, 130, 192, 17, 7, 0, 6, 18, 18, 36, 51, + 66, 82, 82, 82, 82, 82, 240, 240, 160, 17, 9, 0, + 8, 6, 34, 65, 34, 116, 101, 115, 114, 33, 66, 38, + 0, 6, 20, 9, 240, 240, 130, 114, 114, 87, 66, 114, + 114, 114, 114, 114, 114, 33, 84, 0, 5, 112, 25, 9, + 0, 7, 114, 50, 34, 50, 34, 50, 34, 50, 34, 50, + 34, 50, 34, 50, 34, 35, 51, 18, 0, 5, 112, 23, + 11, 0, 9, 82, 82, 50, 65, 66, 50, 81, 50, 82, + 33, 98, 18, 113, 18, 115, 131, 0, 7, 64, 34, 15, + 0, 13, 18, 66, 65, 49, 66, 50, 50, 35, 50, 50, + 33, 18, 33, 81, 33, 18, 33, 84, 33, 18, 83, 49, + 17, 114, 51, 114, 66, 0, 9, 112, 23, 11, 0, 9, + 97, 82, 50, 50, 82, 18, 115, 145, 145, 17, 114, 18, + 82, 50, 50, 82, 0, 7, 16, 25, 11, 0, 9, 82, + 82, 50, 65, 66, 50, 81, 50, 82, 33, 113, 18, 115, + 131, 146, 145, 161, 145, 131, 240, 48, 16, 10, 0, 8, + 104, 114, 115, 114, 114, 114, 114, 130, 120, 0, 6, 64, + 8, 12, 0, 15, 10, 0, 15, 32, 9, 22, 0, 27, + 79, 5, 0, 27, 96, 13, 8, 146, 18, 49, 33, 50, + 18, 50, 18, 0, 16, 48, 10, 8, 240, 19, 33, 33, + 35, 0, 17, 32, +}; + +//***************************************************************************** +// +// The font definition for the 22 point Cmss font. +// +//***************************************************************************** +const tFont g_sFontCmss22 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 19, + + // + // The height of the font. + // + 21, + + // + // The baseline of the font. + // + 16, + + // + // The offset to each character in the font. + // + { + 0, 5, 22, 37, 78, 111, 158, 195, + 205, 229, 253, 271, 292, 301, 309, 317, + 341, 373, 393, 415, 439, 465, 488, 516, + 535, 566, 596, 606, 617, 634, 645, 665, + 685, 725, 757, 789, 812, 845, 865, 884, + 911, 945, 964, 985, 1020, 1040, 1094, 1138, + 1172, 1199, 1235, 1268, 1290, 1310, 1344, 1376, + 1434, 1465, 1492, 1512, 1535, 1550, 1573, 1585, + 1592, 1602, 1622, 1650, 1668, 1697, 1716, 1736, + 1762, 1791, 1806, 1826, 1853, 1872, 1906, 1931, + 1954, 1981, 2008, 2025, 2042, 2062, 2087, 2110, + 2144, 2167, 2192, 2208, 2216, 2225, 2238, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss22Data +}; diff --git a/grlib/fonts/fontcmss22b.c b/grlib/fonts/fontcmss22b.c new file mode 100644 index 0000000..d43eff0 --- /dev/null +++ b/grlib/fonts/fontcmss22b.c @@ -0,0 +1,301 @@ +//***************************************************************************** +// +// fontcmss22b.c - Font definition for the 22pt Cmss bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 22 point +// Bold: yes +// Italic: no +// Memory usage: 2536 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 22 point Cmss bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss22bData[2334] = +{ + 5, 9, 0, 24, 96, 17, 5, 163, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 195, 35, 35, 240, 192, 16, 10, + 240, 83, 35, 35, 35, 35, 35, 49, 65, 50, 50, 0, + 19, 16, 44, 19, 0, 5, 97, 65, 194, 50, 194, 50, + 194, 50, 178, 50, 194, 50, 111, 2, 47, 2, 114, 50, + 194, 50, 194, 50, 127, 2, 47, 2, 98, 50, 194, 50, + 178, 50, 194, 50, 194, 50, 193, 65, 240, 224, 33, 12, + 66, 162, 135, 73, 35, 18, 34, 35, 18, 99, 18, 102, + 119, 103, 103, 98, 19, 98, 19, 33, 50, 19, 34, 34, + 19, 41, 86, 130, 0, 6, 96, 53, 22, 37, 130, 103, + 99, 83, 36, 82, 99, 51, 66, 115, 51, 51, 115, 51, + 50, 131, 51, 34, 162, 35, 34, 183, 19, 240, 66, 240, + 66, 54, 163, 35, 35, 131, 51, 35, 130, 67, 35, 114, + 83, 35, 99, 83, 35, 98, 118, 113, 148, 0, 11, 64, + 36, 19, 240, 240, 212, 215, 180, 35, 163, 51, 163, 51, + 163, 35, 183, 82, 100, 98, 101, 98, 87, 66, 83, 36, + 35, 83, 55, 99, 69, 127, 2, 70, 54, 0, 12, 16, + 10, 5, 163, 35, 35, 49, 50, 0, 9, 96, 25, 8, + 66, 82, 83, 82, 83, 83, 82, 83, 83, 83, 83, 83, + 83, 83, 83, 98, 99, 83, 98, 99, 98, 114, 32, 25, + 8, 2, 114, 99, 98, 99, 83, 98, 99, 83, 83, 83, + 83, 83, 83, 83, 82, 83, 83, 82, 83, 82, 82, 96, + 19, 10, 50, 130, 82, 18, 18, 40, 68, 100, 72, 34, + 18, 18, 82, 130, 0, 15, 80, 37, 18, 0, 7, 82, + 240, 18, 240, 18, 240, 18, 240, 18, 240, 18, 240, 18, + 159, 1, 47, 1, 146, 240, 18, 240, 18, 240, 18, 240, + 18, 240, 18, 240, 18, 0, 7, 112, 11, 5, 0, 8, + 99, 35, 35, 49, 50, 240, 48, 9, 8, 0, 11, 6, + 38, 0, 9, 32, 9, 5, 0, 8, 99, 35, 35, 240, + 192, 25, 11, 114, 146, 145, 146, 146, 145, 146, 146, 130, + 146, 146, 130, 146, 146, 130, 146, 145, 146, 146, 145, 146, + 146, 144, 32, 12, 240, 196, 104, 67, 35, 51, 67, 35, + 67, 35, 67, 35, 67, 35, 67, 35, 67, 35, 67, 35, + 67, 35, 67, 51, 35, 72, 100, 0, 8, 16, 21, 10, + 240, 146, 70, 115, 115, 115, 115, 115, 115, 115, 115, 115, + 115, 115, 72, 40, 0, 6, 64, 24, 11, 240, 148, 88, + 50, 51, 49, 83, 33, 83, 131, 131, 115, 115, 115, 130, + 130, 130, 137, 41, 0, 7, 16, 22, 12, 240, 197, 88, + 66, 51, 147, 147, 147, 101, 117, 163, 163, 147, 147, 34, + 68, 56, 86, 0, 8, 28, 13, 240, 240, 20, 148, 133, + 133, 114, 19, 99, 19, 98, 35, 83, 35, 82, 51, 67, + 51, 75, 43, 131, 163, 163, 0, 8, 80, 25, 11, 240, + 135, 71, 67, 131, 131, 134, 87, 67, 35, 50, 51, 131, + 131, 49, 67, 34, 52, 55, 85, 0, 7, 48, 28, 12, + 240, 212, 102, 83, 146, 147, 20, 73, 52, 36, 35, 67, + 35, 67, 35, 67, 35, 67, 35, 67, 51, 36, 56, 101, + 0, 8, 21, 12, 240, 154, 42, 131, 146, 147, 131, 147, + 131, 147, 147, 131, 147, 147, 147, 147, 0, 8, 48, 29, + 12, 240, 182, 88, 51, 67, 35, 67, 35, 67, 35, 67, + 56, 86, 82, 66, 51, 67, 35, 67, 35, 67, 35, 67, + 56, 86, 0, 8, 29, 12, 240, 181, 104, 52, 35, 51, + 67, 35, 67, 35, 67, 35, 67, 35, 52, 57, 68, 19, + 147, 146, 65, 67, 71, 101, 0, 8, 16, 13, 5, 240, + 240, 83, 35, 35, 240, 115, 35, 35, 240, 192, 15, 5, + 240, 240, 83, 35, 35, 240, 115, 35, 35, 49, 50, 240, + 48, 18, 5, 240, 243, 35, 35, 115, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 112, 16, 18, 0, 18, 15, + 1, 47, 1, 0, 7, 15, 1, 47, 1, 0, 16, 21, + 10, 0, 7, 114, 130, 130, 240, 50, 130, 130, 115, 114, + 115, 114, 115, 130, 50, 55, 68, 224, 21, 10, 240, 101, + 71, 49, 67, 115, 115, 99, 99, 99, 115, 115, 240, 195, + 115, 115, 0, 6, 112, 39, 16, 240, 240, 103, 123, 68, + 23, 67, 25, 35, 20, 36, 35, 19, 67, 35, 19, 67, + 35, 19, 67, 35, 19, 67, 35, 20, 36, 51, 24, 67, + 38, 100, 83, 90, 134, 0, 10, 80, 31, 16, 240, 240, + 116, 181, 182, 166, 147, 19, 147, 35, 131, 35, 115, 52, + 99, 67, 99, 67, 92, 76, 67, 99, 51, 116, 35, 131, + 0, 10, 32, 30, 14, 240, 217, 91, 51, 83, 51, 83, + 51, 83, 51, 83, 58, 74, 67, 83, 51, 99, 35, 99, + 35, 99, 35, 84, 43, 58, 0, 9, 32, 24, 14, 240, + 240, 39, 90, 52, 82, 51, 163, 179, 179, 179, 179, 179, + 179, 195, 180, 97, 74, 103, 0, 9, 16, 33, 16, 240, + 240, 42, 108, 67, 100, 51, 115, 51, 131, 35, 131, 35, + 131, 35, 131, 35, 131, 35, 131, 35, 131, 35, 115, 51, + 100, 60, 74, 0, 10, 96, 21, 13, 240, 186, 58, 51, + 163, 163, 163, 170, 58, 51, 163, 163, 163, 163, 171, 43, + 0, 8, 48, 21, 12, 240, 154, 42, 35, 147, 147, 147, + 153, 57, 51, 147, 147, 147, 147, 147, 147, 0, 8, 80, + 29, 15, 240, 240, 72, 91, 52, 98, 51, 129, 36, 179, + 195, 195, 195, 85, 35, 85, 36, 99, 51, 99, 52, 83, + 75, 104, 0, 9, 96, 34, 15, 240, 243, 115, 35, 115, + 35, 115, 35, 115, 35, 115, 35, 115, 45, 45, 35, 115, + 35, 115, 35, 115, 35, 115, 35, 115, 35, 115, 35, 115, + 0, 9, 80, 19, 5, 163, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 240, 192, 22, 10, + 240, 163, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, + 115, 33, 67, 39, 69, 0, 6, 96, 35, 15, 240, 243, + 115, 35, 99, 51, 83, 67, 67, 83, 51, 99, 35, 115, + 19, 136, 117, 19, 100, 36, 83, 67, 83, 83, 67, 99, + 51, 100, 35, 115, 0, 9, 80, 21, 11, 240, 115, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 137, + 41, 0, 7, 16, 56, 19, 240, 240, 132, 148, 37, 117, + 37, 117, 37, 117, 35, 18, 82, 19, 35, 18, 82, 19, + 35, 19, 51, 19, 35, 34, 50, 35, 35, 34, 50, 35, + 35, 35, 19, 35, 35, 50, 18, 51, 35, 50, 18, 51, + 35, 53, 51, 35, 67, 67, 35, 67, 67, 0, 12, 16, + 43, 15, 240, 245, 83, 37, 83, 37, 83, 38, 67, 35, + 18, 67, 35, 19, 51, 35, 34, 51, 35, 35, 35, 35, + 50, 35, 35, 51, 19, 35, 66, 19, 35, 70, 35, 85, + 35, 85, 35, 85, 0, 9, 80, 33, 17, 240, 240, 135, + 139, 84, 84, 67, 115, 51, 147, 35, 147, 35, 147, 35, + 147, 35, 147, 35, 147, 35, 147, 51, 115, 68, 84, 91, + 135, 0, 11, 48, 26, 14, 240, 217, 91, 51, 84, 35, + 99, 35, 99, 35, 99, 35, 84, 43, 57, 83, 179, 179, + 179, 179, 179, 0, 10, 16, 37, 17, 240, 240, 135, 139, + 84, 84, 67, 115, 51, 147, 35, 147, 35, 147, 35, 147, + 35, 147, 35, 147, 35, 51, 51, 51, 51, 19, 68, 54, + 91, 137, 227, 228, 0, 6, 96, 31, 14, 240, 218, 75, + 51, 84, 35, 99, 35, 99, 35, 84, 43, 57, 83, 51, + 83, 51, 83, 67, 67, 68, 51, 83, 51, 99, 35, 99, + 0, 9, 25, 13, 240, 215, 89, 52, 66, 51, 97, 51, + 165, 151, 120, 118, 164, 163, 33, 115, 35, 68, 42, 87, + 0, 8, 80, 21, 15, 240, 253, 45, 115, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 0, 10, 32, + 33, 15, 240, 243, 115, 35, 115, 35, 115, 35, 115, 35, + 115, 35, 115, 35, 115, 35, 115, 35, 115, 35, 115, 35, + 115, 35, 115, 51, 83, 89, 119, 0, 10, 33, 16, 240, + 240, 35, 131, 35, 131, 36, 115, 51, 99, 67, 99, 68, + 67, 99, 67, 99, 67, 100, 35, 131, 35, 131, 35, 150, + 166, 165, 196, 0, 10, 112, 56, 23, 0, 5, 98, 100, + 99, 35, 84, 99, 35, 85, 82, 51, 85, 82, 66, 67, + 18, 67, 67, 50, 34, 67, 67, 50, 35, 50, 83, 50, + 35, 35, 98, 35, 50, 35, 99, 18, 67, 18, 115, 18, + 67, 18, 115, 18, 70, 133, 85, 132, 100, 148, 100, 0, + 15, 16, 31, 16, 240, 240, 36, 99, 68, 67, 99, 52, + 100, 35, 135, 166, 180, 196, 182, 166, 147, 35, 115, 52, + 84, 68, 67, 99, 51, 116, 0, 10, 32, 28, 17, 240, + 240, 68, 131, 52, 99, 68, 84, 84, 52, 116, 35, 147, + 19, 167, 181, 211, 227, 227, 227, 227, 227, 227, 0, 11, + 80, 20, 14, 240, 220, 44, 163, 164, 148, 163, 163, 164, + 148, 163, 164, 148, 163, 172, 44, 0, 9, 25, 7, 5, + 37, 35, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 69, 37, 32, 16, 9, + 240, 66, 34, 49, 49, 51, 19, 35, 19, 35, 19, 0, + 17, 16, 25, 7, 5, 37, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 37, 37, 32, 10, 8, 240, 35, 69, 50, 34, 0, 17, + 32, 8, 5, 163, 35, 35, 0, 10, 112, 10, 5, 178, + 49, 51, 35, 35, 0, 9, 80, 22, 11, 0, 9, 102, + 82, 51, 131, 131, 56, 35, 51, 35, 51, 35, 51, 56, + 67, 19, 0, 7, 16, 28, 12, 240, 147, 147, 147, 147, + 147, 147, 20, 73, 51, 52, 35, 67, 35, 67, 35, 67, + 35, 67, 35, 52, 41, 51, 20, 0, 8, 19, 11, 0, + 9, 118, 72, 36, 50, 35, 131, 131, 131, 132, 50, 56, + 70, 0, 7, 32, 30, 12, 240, 240, 19, 147, 147, 147, + 147, 68, 19, 57, 36, 51, 35, 67, 35, 67, 35, 67, + 35, 67, 36, 51, 57, 68, 19, 0, 7, 96, 19, 12, + 0, 10, 102, 88, 52, 51, 35, 67, 42, 35, 147, 163, + 66, 57, 85, 0, 8, 20, 10, 240, 132, 71, 51, 115, + 115, 102, 70, 83, 115, 115, 115, 115, 115, 115, 115, 0, + 7, 26, 12, 0, 10, 101, 18, 57, 35, 50, 67, 50, + 67, 50, 87, 71, 82, 169, 73, 34, 98, 34, 98, 57, + 70, 240, 16, 31, 12, 240, 147, 147, 147, 147, 147, 147, + 36, 51, 22, 36, 51, 35, 67, 35, 67, 35, 67, 35, + 67, 35, 67, 35, 67, 35, 67, 0, 7, 96, 17, 5, + 163, 35, 35, 195, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 240, 192, 22, 8, 240, 67, 83, 83, 240, 99, 83, + 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 38, 52, + 176, 28, 12, 240, 147, 147, 147, 147, 147, 147, 51, 51, + 35, 67, 19, 86, 102, 103, 83, 35, 67, 35, 67, 51, + 51, 67, 0, 7, 96, 19, 5, 163, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 240, 192, + 37, 18, 0, 15, 99, 21, 36, 52, 52, 35, 35, 67, + 51, 35, 67, 51, 35, 67, 51, 35, 67, 51, 35, 67, + 51, 35, 67, 51, 35, 67, 51, 35, 67, 51, 0, 11, + 64, 27, 12, 0, 10, 67, 36, 51, 22, 36, 51, 35, + 67, 35, 67, 35, 67, 35, 67, 35, 67, 35, 67, 35, + 67, 0, 7, 96, 22, 12, 0, 10, 102, 88, 52, 36, + 35, 67, 35, 67, 35, 67, 35, 67, 36, 36, 56, 86, + 0, 8, 28, 12, 0, 10, 67, 20, 73, 51, 52, 35, + 67, 35, 67, 35, 67, 35, 67, 35, 52, 41, 51, 20, + 67, 147, 147, 147, 240, 96, 27, 12, 0, 10, 100, 19, + 57, 36, 51, 35, 67, 35, 67, 35, 67, 35, 67, 36, + 51, 57, 68, 19, 147, 147, 147, 147, 224, 18, 9, 0, + 7, 115, 19, 39, 36, 83, 99, 99, 99, 99, 99, 99, + 0, 6, 48, 18, 9, 0, 8, 5, 55, 34, 50, 34, + 132, 101, 114, 34, 50, 39, 53, 0, 6, 20, 9, 240, + 211, 99, 99, 99, 87, 39, 51, 99, 99, 99, 99, 99, + 33, 54, 68, 0, 6, 27, 12, 0, 10, 67, 67, 35, + 67, 35, 67, 35, 67, 35, 67, 35, 67, 35, 67, 35, + 67, 35, 52, 53, 19, 0, 7, 96, 23, 12, 0, 10, + 67, 67, 35, 67, 50, 66, 67, 35, 67, 35, 82, 34, + 102, 102, 116, 132, 0, 8, 16, 36, 17, 0, 14, 115, + 51, 66, 35, 51, 51, 50, 51, 50, 66, 36, 50, 67, + 21, 19, 67, 18, 18, 19, 82, 17, 34, 18, 100, 37, + 100, 37, 99, 67, 0, 11, 32, 22, 12, 0, 10, 67, + 67, 51, 35, 86, 116, 131, 148, 118, 98, 34, 83, 50, + 51, 67, 0, 7, 96, 25, 11, 0, 9, 82, 82, 35, + 51, 50, 50, 67, 34, 82, 19, 85, 116, 116, 115, 146, + 146, 130, 101, 100, 240, 48, 17, 11, 0, 9, 89, 41, + 115, 115, 115, 130, 131, 115, 121, 41, 0, 7, 16, 9, + 14, 0, 17, 76, 44, 0, 17, 96, 11, 26, 0, 32, + 79, 9, 47, 9, 0, 32, 96, 12, 9, 240, 51, 19, + 34, 34, 50, 33, 0, 19, 80, 11, 10, 240, 99, 34, + 40, 34, 35, 0, 21, 80, +}; + +//***************************************************************************** +// +// The font definition for the 22 point Cmss bold font. +// +//***************************************************************************** +const tFont g_sFontCmss22b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 23, + + // + // The height of the font. + // + 22, + + // + // The baseline of the font. + // + 17, + + // + // The offset to each character in the font. + // + { + 0, 5, 22, 38, 82, 115, 168, 204, + 214, 239, 264, 283, 320, 331, 340, 349, + 374, 406, 427, 451, 473, 501, 526, 554, + 575, 604, 633, 646, 661, 679, 695, 716, + 737, 776, 807, 837, 861, 894, 915, 936, + 965, 999, 1018, 1040, 1075, 1096, 1152, 1195, + 1228, 1254, 1291, 1322, 1347, 1368, 1401, 1434, + 1490, 1521, 1549, 1569, 1594, 1610, 1635, 1645, + 1653, 1663, 1685, 1713, 1732, 1762, 1781, 1801, + 1827, 1858, 1875, 1897, 1925, 1944, 1981, 2008, + 2030, 2058, 2085, 2103, 2121, 2141, 2168, 2191, + 2227, 2249, 2274, 2291, 2300, 2311, 2323, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss22bData +}; diff --git a/grlib/fonts/fontcmss22i.c b/grlib/fonts/fontcmss22i.c new file mode 100644 index 0000000..82b8e9f --- /dev/null +++ b/grlib/fonts/fontcmss22i.c @@ -0,0 +1,297 @@ +//***************************************************************************** +// +// fontcmss22i.c - Font definition for the 22pt Cmss italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 22 point +// Bold: no +// Italic: yes +// Memory usage: 2488 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 22 point Cmss italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss22iData[2285] = +{ + 5, 9, 0, 23, 80, 19, 7, 162, 82, 81, 97, 82, + 82, 81, 97, 82, 82, 81, 240, 66, 82, 240, 240, 160, + 15, 9, 162, 34, 50, 34, 50, 34, 49, 49, 49, 49, + 0, 17, 48, 41, 17, 240, 177, 49, 177, 65, 177, 49, + 177, 65, 177, 49, 177, 65, 177, 49, 126, 113, 65, 177, + 49, 177, 65, 126, 97, 65, 177, 49, 177, 65, 177, 49, + 177, 65, 177, 65, 177, 49, 240, 208, 33, 12, 98, 149, + 82, 17, 33, 81, 33, 114, 33, 114, 18, 114, 17, 133, + 148, 148, 114, 18, 113, 34, 113, 34, 113, 18, 66, 33, + 17, 101, 145, 0, 7, 48, 16, 240, 67, 113, 50, 34, + 81, 66, 34, 65, 66, 50, 49, 82, 35, 33, 98, 34, + 49, 116, 49, 225, 225, 51, 129, 50, 18, 97, 65, 34, + 81, 66, 34, 81, 66, 34, 65, 82, 33, 65, 98, 18, + 49, 131, 0, 8, 64, 37, 16, 240, 131, 178, 34, 161, + 50, 146, 50, 146, 34, 162, 18, 180, 194, 113, 83, 98, + 66, 18, 66, 66, 34, 65, 66, 66, 33, 82, 68, 98, + 68, 118, 22, 0, 10, 32, 10, 5, 98, 50, 50, 49, + 49, 0, 9, 112, 24, 10, 98, 114, 114, 129, 130, 114, + 130, 114, 130, 130, 130, 114, 130, 130, 130, 130, 130, 130, + 145, 146, 145, 112, 24, 10, 81, 146, 145, 146, 130, 130, + 130, 130, 130, 130, 114, 130, 130, 130, 114, 130, 114, 129, + 130, 114, 114, 128, 19, 10, 65, 145, 97, 33, 33, 50, + 20, 82, 101, 66, 17, 18, 97, 145, 0, 15, 96, 21, + 16, 0, 7, 1, 241, 225, 241, 241, 241, 241, 142, 129, + 241, 241, 241, 225, 241, 0, 9, 32, 10, 5, 0, 8, + 114, 50, 49, 49, 240, 64, 8, 8, 0, 11, 6, 0, + 9, 32, 8, 4, 0, 7, 2, 34, 240, 112, 24, 14, + 177, 193, 209, 193, 209, 193, 209, 193, 209, 193, 193, 209, + 193, 209, 193, 209, 193, 209, 193, 193, 209, 208, 32, 12, + 240, 228, 98, 35, 66, 66, 65, 82, 50, 82, 50, 82, + 50, 82, 34, 82, 50, 82, 50, 82, 50, 66, 66, 66, + 67, 34, 100, 0, 8, 48, 20, 9, 240, 145, 69, 113, + 129, 114, 114, 114, 113, 129, 114, 114, 114, 113, 87, 0, + 5, 112, 22, 12, 240, 212, 113, 51, 65, 82, 65, 82, + 162, 146, 162, 146, 146, 130, 146, 146, 146, 168, 0, 8, + 24, 12, 240, 213, 98, 50, 65, 82, 162, 146, 146, 131, + 178, 178, 162, 162, 49, 82, 66, 50, 101, 0, 8, 32, + 26, 11, 240, 226, 131, 115, 114, 17, 98, 18, 98, 18, + 82, 34, 66, 49, 66, 65, 73, 114, 146, 145, 161, 0, + 7, 64, 24, 12, 240, 199, 81, 177, 162, 162, 166, 98, + 50, 81, 66, 162, 162, 161, 65, 82, 66, 50, 100, 0, + 8, 48, 28, 12, 240, 229, 98, 146, 146, 146, 162, 20, + 83, 50, 51, 66, 50, 82, 50, 82, 50, 81, 66, 66, + 67, 34, 100, 0, 8, 48, 19, 11, 240, 136, 145, 146, + 130, 130, 145, 146, 130, 146, 130, 146, 145, 146, 146, 0, + 8, 31, 11, 240, 180, 97, 50, 66, 65, 65, 66, 65, + 66, 66, 34, 99, 113, 49, 82, 50, 50, 66, 50, 66, + 50, 50, 66, 50, 84, 0, 7, 80, 29, 12, 240, 228, + 98, 49, 82, 66, 66, 66, 50, 82, 50, 82, 50, 82, + 50, 67, 51, 35, 84, 18, 146, 161, 161, 101, 0, 8, + 48, 13, 6, 240, 240, 226, 66, 240, 240, 34, 66, 240, + 240, 64, 14, 6, 240, 240, 226, 66, 240, 240, 49, 81, + 81, 65, 240, 128, 18, 7, 240, 240, 242, 193, 82, 82, + 81, 97, 82, 82, 82, 81, 97, 82, 82, 192, 11, 16, + 0, 16, 29, 0, 6, 45, 0, 16, 48, 20, 9, 0, + 7, 50, 240, 17, 129, 114, 113, 114, 98, 98, 114, 98, + 114, 114, 65, 53, 192, 20, 10, 197, 65, 66, 130, 130, + 114, 114, 114, 114, 129, 145, 130, 240, 209, 130, 0, 7, + 32, 40, 15, 240, 101, 146, 50, 98, 97, 82, 54, 65, + 50, 35, 50, 34, 50, 50, 49, 81, 50, 34, 66, 50, + 34, 66, 50, 34, 65, 66, 35, 33, 82, 52, 114, 226, + 81, 134, 0, 10, 16, 32, 14, 240, 114, 179, 177, 17, + 162, 17, 146, 33, 146, 34, 114, 50, 114, 50, 98, 66, + 98, 66, 89, 81, 98, 66, 114, 34, 130, 34, 130, 0, + 9, 33, 15, 240, 56, 114, 82, 98, 98, 82, 98, 81, + 114, 66, 98, 82, 82, 103, 130, 82, 97, 114, 66, 114, + 66, 114, 66, 98, 81, 98, 88, 0, 10, 32, 23, 14, + 240, 86, 98, 81, 82, 178, 178, 194, 193, 194, 194, 194, + 194, 194, 210, 210, 66, 117, 0, 9, 64, 34, 15, 240, + 55, 114, 83, 82, 98, 82, 114, 65, 130, 50, 130, 50, + 130, 50, 130, 50, 130, 49, 130, 50, 130, 50, 114, 66, + 98, 82, 82, 103, 0, 10, 48, 21, 14, 240, 41, 81, + 209, 194, 194, 194, 194, 185, 82, 194, 194, 194, 178, 194, + 201, 0, 9, 48, 21, 14, 240, 41, 81, 209, 194, 194, + 194, 194, 184, 98, 194, 194, 193, 194, 194, 194, 0, 10, + 32, 27, 14, 240, 86, 98, 81, 82, 178, 193, 194, 193, + 194, 194, 194, 84, 50, 114, 50, 113, 82, 97, 98, 66, + 118, 0, 9, 48, 34, 15, 240, 50, 113, 82, 98, 81, + 114, 66, 114, 66, 114, 66, 113, 82, 98, 75, 66, 114, + 66, 114, 66, 113, 81, 114, 66, 114, 66, 114, 66, 113, + 0, 10, 20, 7, 162, 82, 81, 82, 82, 82, 82, 81, + 82, 82, 82, 82, 81, 82, 82, 240, 240, 160, 22, 12, + 240, 82, 162, 162, 161, 162, 162, 162, 161, 162, 162, 162, + 162, 161, 81, 66, 85, 0, 8, 48, 36, 16, 240, 66, + 99, 82, 82, 113, 82, 114, 66, 130, 50, 146, 34, 162, + 19, 146, 20, 148, 18, 146, 66, 130, 66, 129, 98, 98, + 98, 98, 114, 82, 114, 0, 10, 80, 20, 10, 210, 130, + 129, 130, 130, 130, 130, 114, 130, 130, 130, 130, 114, 130, + 136, 0, 6, 64, 58, 19, 240, 115, 131, 83, 131, 83, + 113, 17, 82, 17, 100, 82, 17, 97, 18, 82, 17, 82, + 18, 81, 34, 65, 34, 81, 34, 50, 33, 82, 34, 49, + 34, 82, 34, 34, 34, 82, 34, 33, 50, 81, 65, 18, + 49, 82, 65, 17, 65, 82, 67, 50, 82, 66, 66, 0, + 12, 64, 44, 15, 240, 51, 97, 83, 97, 81, 17, 82, + 66, 18, 66, 66, 18, 66, 66, 18, 65, 81, 49, 65, + 66, 50, 34, 66, 50, 34, 66, 50, 34, 66, 65, 33, + 81, 84, 66, 84, 66, 84, 66, 98, 0, 10, 33, 16, + 240, 117, 146, 66, 114, 98, 82, 130, 65, 146, 50, 146, + 49, 162, 34, 162, 34, 146, 50, 146, 50, 130, 66, 130, + 82, 98, 99, 51, 149, 0, 11, 28, 14, 240, 39, 98, + 82, 82, 98, 66, 98, 66, 98, 65, 114, 50, 98, 66, + 82, 87, 114, 178, 194, 194, 194, 193, 0, 10, 48, 38, + 16, 240, 117, 146, 66, 114, 98, 82, 130, 65, 146, 50, + 146, 50, 146, 34, 162, 34, 161, 50, 146, 50, 146, 50, + 66, 34, 82, 50, 18, 114, 51, 150, 242, 226, 0, 6, + 96, 34, 15, 240, 56, 114, 82, 98, 98, 82, 98, 81, + 114, 66, 98, 82, 82, 103, 129, 66, 114, 66, 114, 81, + 114, 82, 98, 82, 97, 113, 82, 114, 0, 9, 112, 24, + 13, 240, 54, 98, 65, 81, 178, 178, 179, 180, 165, 179, + 178, 178, 178, 49, 98, 66, 66, 102, 0, 8, 112, 19, + 14, 236, 114, 193, 194, 194, 194, 194, 193, 194, 194, 194, + 194, 193, 194, 194, 0, 10, 35, 14, 240, 18, 113, 66, + 113, 66, 98, 66, 98, 50, 114, 50, 113, 66, 98, 66, + 98, 50, 114, 50, 113, 66, 113, 66, 98, 66, 97, 98, + 50, 132, 0, 9, 96, 32, 14, 225, 146, 34, 129, 50, + 114, 50, 113, 66, 98, 66, 97, 82, 82, 97, 66, 114, + 49, 130, 34, 130, 33, 146, 18, 146, 17, 179, 178, 0, + 10, 56, 21, 240, 98, 114, 98, 49, 99, 97, 65, 99, + 82, 66, 68, 81, 82, 65, 18, 66, 82, 50, 18, 65, + 98, 49, 34, 50, 98, 34, 34, 49, 114, 33, 50, 34, + 114, 18, 65, 33, 130, 17, 81, 18, 132, 81, 17, 147, + 97, 17, 147, 98, 162, 114, 0, 14, 32, 32, 16, 240, + 66, 114, 98, 82, 114, 66, 146, 34, 162, 33, 196, 195, + 210, 212, 178, 18, 162, 50, 130, 66, 129, 98, 98, 98, + 82, 130, 0, 10, 64, 27, 15, 243, 130, 50, 114, 66, + 113, 98, 82, 98, 66, 130, 34, 146, 18, 164, 194, 210, + 210, 209, 210, 210, 210, 0, 10, 80, 21, 15, 240, 58, + 195, 194, 194, 194, 195, 179, 194, 194, 194, 195, 194, 194, + 194, 203, 0, 9, 112, 23, 10, 228, 98, 129, 145, 130, + 130, 130, 129, 130, 130, 130, 129, 145, 130, 130, 129, 145, + 130, 130, 131, 112, 15, 9, 177, 49, 49, 49, 50, 34, + 50, 34, 50, 34, 0, 17, 32, 23, 10, 243, 130, 130, + 129, 145, 130, 130, 130, 129, 145, 130, 130, 129, 145, 130, + 130, 130, 129, 145, 100, 96, 11, 9, 194, 100, 66, 33, + 50, 50, 0, 18, 32, 7, 4, 130, 34, 0, 8, 96, + 10, 5, 113, 49, 50, 50, 50, 0, 9, 96, 21, 11, + 0, 10, 5, 81, 66, 146, 146, 86, 50, 50, 50, 66, + 50, 51, 53, 17, 0, 7, 48, 29, 11, 225, 146, 146, + 145, 161, 146, 146, 20, 67, 35, 49, 82, 49, 82, 34, + 82, 34, 81, 50, 66, 50, 50, 65, 20, 0, 7, 64, + 18, 11, 0, 10, 21, 66, 65, 50, 145, 146, 146, 146, + 162, 49, 101, 0, 7, 48, 29, 13, 240, 114, 177, 193, + 178, 178, 178, 100, 17, 98, 50, 82, 66, 81, 82, 66, + 82, 66, 81, 82, 81, 83, 50, 103, 0, 8, 96, 19, + 11, 0, 10, 5, 82, 50, 50, 66, 41, 34, 146, 146, + 162, 49, 100, 0, 7, 64, 20, 10, 243, 97, 129, 130, + 130, 130, 102, 97, 130, 130, 129, 145, 145, 130, 130, 0, + 7, 32, 26, 14, 0, 12, 119, 82, 50, 98, 66, 98, + 66, 98, 50, 117, 129, 231, 105, 67, 82, 66, 98, 67, + 66, 102, 240, 96, 29, 11, 226, 145, 161, 146, 146, 146, + 145, 20, 82, 50, 50, 66, 50, 66, 50, 65, 65, 66, + 65, 66, 50, 66, 50, 65, 0, 7, 48, 18, 7, 240, + 34, 82, 240, 162, 81, 97, 82, 82, 82, 81, 82, 82, + 240, 240, 160, 22, 11, 240, 226, 146, 240, 240, 178, 146, + 145, 161, 146, 146, 145, 161, 146, 146, 145, 146, 100, 240, + 48, 28, 10, 209, 130, 130, 130, 129, 145, 130, 50, 50, + 34, 66, 18, 81, 18, 100, 83, 18, 66, 49, 66, 50, + 49, 66, 0, 6, 80, 20, 7, 162, 82, 81, 97, 82, + 82, 82, 81, 82, 82, 82, 81, 97, 82, 82, 240, 240, + 160, 34, 16, 0, 14, 18, 20, 21, 51, 35, 50, 50, + 50, 66, 49, 66, 66, 34, 66, 65, 50, 65, 66, 50, + 65, 66, 49, 66, 66, 49, 66, 65, 0, 10, 64, 25, + 11, 0, 9, 113, 20, 82, 50, 50, 66, 50, 66, 50, + 65, 65, 66, 65, 66, 50, 66, 50, 65, 0, 7, 48, + 23, 12, 0, 11, 4, 98, 50, 66, 82, 49, 98, 34, + 98, 34, 98, 34, 82, 66, 50, 100, 0, 8, 32, 28, + 12, 0, 10, 98, 20, 83, 35, 66, 66, 65, 82, 50, + 82, 50, 81, 66, 66, 66, 50, 81, 20, 82, 162, 162, + 161, 240, 128, 26, 11, 0, 10, 4, 17, 66, 50, 50, + 66, 49, 82, 34, 82, 34, 81, 50, 81, 51, 50, 71, + 145, 161, 146, 146, 240, 17, 8, 0, 7, 18, 18, 52, + 66, 98, 97, 98, 98, 98, 97, 0, 5, 112, 17, 10, + 0, 9, 21, 50, 130, 131, 132, 131, 130, 49, 66, 53, + 0, 6, 112, 20, 8, 240, 240, 66, 98, 98, 70, 50, + 98, 98, 97, 98, 98, 98, 33, 52, 240, 240, 224, 25, + 11, 0, 9, 113, 66, 50, 66, 50, 66, 50, 65, 65, + 66, 50, 66, 50, 66, 50, 50, 69, 17, 0, 7, 48, + 23, 11, 0, 9, 82, 82, 34, 66, 65, 65, 81, 50, + 82, 33, 98, 18, 98, 17, 116, 130, 0, 7, 96, 35, + 15, 0, 13, 18, 66, 65, 34, 51, 50, 34, 51, 49, + 65, 36, 34, 65, 33, 18, 33, 81, 18, 33, 18, 81, + 17, 49, 17, 99, 51, 98, 66, 0, 10, 16, 22, 11, + 0, 9, 98, 81, 66, 49, 97, 33, 115, 145, 147, 113, + 34, 81, 65, 65, 82, 0, 7, 32, 26, 13, 0, 11, + 82, 82, 81, 66, 97, 65, 114, 34, 114, 33, 130, 18, + 145, 17, 162, 178, 177, 178, 177, 147, 240, 128, 16, 11, + 0, 9, 119, 130, 130, 130, 130, 130, 130, 130, 151, 0, + 7, 48, 8, 12, 0, 15, 10, 0, 15, 32, 8, 23, + 0, 28, 111, 6, 0, 29, 13, 9, 177, 34, 50, 33, + 65, 34, 50, 33, 0, 18, 64, 10, 9, 240, 67, 33, + 34, 19, 0, 19, 64, +}; + +//***************************************************************************** +// +// The font definition for the 22 point Cmss italic font. +// +//***************************************************************************** +const tFont g_sFontCmss22i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 20, + + // + // The height of the font. + // + 21, + + // + // The baseline of the font. + // + 16, + + // + // The offset to each character in the font. + // + { + 0, 5, 24, 39, 80, 113, 161, 198, + 208, 232, 256, 275, 296, 306, 314, 322, + 346, 378, 398, 420, 444, 470, 494, 522, + 541, 572, 601, 614, 628, 646, 657, 677, + 697, 737, 769, 802, 825, 859, 880, 901, + 928, 962, 982, 1004, 1040, 1060, 1118, 1162, + 1195, 1223, 1261, 1295, 1319, 1338, 1373, 1405, + 1461, 1493, 1520, 1541, 1564, 1579, 1602, 1613, + 1620, 1630, 1651, 1680, 1698, 1727, 1746, 1766, + 1792, 1821, 1839, 1861, 1889, 1909, 1943, 1968, + 1991, 2019, 2045, 2062, 2079, 2099, 2124, 2147, + 2182, 2204, 2230, 2246, 2254, 2262, 2275, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss22iData +}; diff --git a/grlib/fonts/fontcmss24.c b/grlib/fonts/fontcmss24.c new file mode 100644 index 0000000..49cfda7 --- /dev/null +++ b/grlib/fonts/fontcmss24.c @@ -0,0 +1,312 @@ +//***************************************************************************** +// +// fontcmss24.c - Font definition for the 24pt Cmss font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 24 point +// Bold: no +// Italic: no +// Memory usage: 2672 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 24 point Cmss font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss24Data[2469] = +{ + 4, 10, 0, 30, 18, 4, 130, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 162, 34, 240, 176, 14, 8, + 240, 18, 34, 34, 34, 34, 34, 33, 49, 0, 18, 48, + 47, 18, 0, 6, 17, 177, 65, 193, 65, 193, 65, 177, + 65, 193, 65, 193, 65, 193, 65, 111, 1, 113, 65, 193, + 65, 193, 65, 127, 1, 97, 65, 193, 65, 193, 65, 177, + 65, 193, 65, 193, 65, 193, 65, 177, 240, 240, 48, 35, + 11, 66, 146, 118, 72, 35, 18, 33, 34, 34, 82, 34, + 82, 34, 101, 117, 132, 114, 18, 98, 18, 98, 18, 98, + 18, 34, 34, 18, 55, 100, 130, 0, 7, 64, 56, 18, + 240, 83, 113, 98, 18, 97, 82, 50, 65, 98, 50, 65, + 98, 50, 49, 114, 50, 49, 130, 18, 49, 149, 33, 240, + 33, 240, 17, 52, 161, 49, 33, 145, 50, 34, 129, 50, + 34, 113, 66, 34, 113, 66, 34, 97, 82, 34, 97, 97, + 33, 97, 130, 0, 11, 96, 39, 17, 240, 240, 132, 194, + 34, 162, 50, 162, 50, 162, 50, 162, 34, 181, 211, 98, + 99, 98, 84, 97, 82, 19, 66, 66, 51, 34, 82, 66, + 34, 82, 69, 114, 53, 133, 38, 0, 13, 9, 4, 130, + 34, 34, 33, 0, 9, 48, 27, 7, 65, 82, 66, 82, + 66, 82, 82, 66, 82, 82, 82, 82, 82, 82, 82, 82, + 82, 98, 82, 82, 98, 82, 98, 97, 32, 27, 7, 1, + 98, 98, 82, 98, 82, 82, 98, 82, 82, 82, 82, 82, + 82, 82, 82, 82, 66, 82, 82, 81, 82, 66, 81, 96, + 19, 10, 50, 130, 130, 82, 18, 18, 54, 98, 102, 50, + 18, 18, 82, 130, 0, 18, 16, 34, 17, 0, 9, 49, + 240, 17, 240, 17, 240, 17, 240, 17, 240, 17, 240, 17, + 240, 17, 159, 145, 240, 17, 240, 17, 240, 17, 240, 17, + 240, 17, 0, 11, 96, 10, 4, 0, 8, 2, 34, 49, + 33, 49, 240, 8, 8, 0, 13, 6, 0, 10, 32, 8, + 4, 0, 8, 2, 34, 240, 176, 27, 11, 129, 161, 145, + 161, 161, 145, 161, 161, 145, 161, 145, 161, 161, 145, 161, + 161, 145, 161, 161, 145, 161, 161, 145, 161, 160, 35, 11, + 240, 240, 99, 98, 50, 66, 50, 50, 82, 34, 82, 34, + 82, 34, 82, 34, 82, 34, 82, 34, 82, 34, 82, 34, + 82, 50, 50, 66, 50, 84, 0, 8, 112, 22, 10, 240, + 240, 65, 85, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 88, 0, 7, 96, 25, 11, 240, 240, 85, + 81, 66, 49, 98, 33, 98, 146, 146, 130, 146, 130, 129, + 145, 145, 145, 153, 41, 0, 8, 64, 26, 11, 240, 240, + 85, 81, 66, 49, 82, 146, 146, 130, 115, 178, 161, 162, + 146, 146, 33, 98, 34, 66, 84, 0, 8, 112, 29, 12, + 240, 240, 179, 147, 132, 129, 18, 114, 18, 113, 34, 98, + 34, 97, 50, 82, 50, 66, 66, 74, 130, 162, 162, 162, + 0, 9, 64, 26, 11, 240, 240, 71, 66, 146, 146, 146, + 146, 150, 83, 34, 66, 66, 146, 146, 146, 33, 98, 35, + 50, 84, 0, 8, 112, 31, 11, 240, 240, 116, 82, 130, + 146, 130, 146, 20, 67, 50, 50, 82, 34, 82, 34, 82, + 34, 82, 34, 82, 50, 65, 66, 50, 99, 0, 8, 112, + 22, 11, 240, 240, 57, 41, 145, 146, 130, 145, 146, 146, + 130, 146, 146, 130, 146, 146, 146, 0, 9, 16, 34, 11, + 240, 240, 85, 82, 50, 50, 82, 34, 82, 34, 82, 50, + 50, 99, 98, 50, 65, 82, 34, 82, 34, 82, 34, 82, + 34, 82, 50, 50, 85, 0, 8, 96, 32, 11, 240, 240, + 100, 82, 50, 65, 81, 50, 82, 34, 82, 34, 82, 34, + 82, 34, 82, 50, 51, 68, 18, 146, 145, 146, 65, 50, + 85, 0, 8, 112, 11, 4, 240, 240, 34, 34, 240, 178, + 34, 240, 176, 13, 4, 240, 240, 34, 34, 240, 178, 34, + 49, 33, 49, 240, 18, 4, 240, 210, 162, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 96, 11, 17, + 0, 21, 47, 0, 6, 95, 0, 19, 48, 21, 10, 0, + 9, 18, 240, 210, 130, 130, 130, 114, 130, 115, 99, 114, + 130, 130, 146, 50, 69, 208, 22, 10, 240, 102, 50, 51, + 130, 130, 130, 114, 115, 114, 114, 130, 130, 130, 240, 210, + 130, 0, 8, 16, 44, 15, 240, 240, 85, 131, 51, 82, + 98, 66, 70, 50, 34, 51, 34, 50, 51, 34, 34, 82, + 34, 34, 82, 34, 34, 82, 34, 34, 82, 34, 50, 65, + 66, 34, 50, 66, 67, 114, 227, 66, 134, 0, 11, 96, + 35, 15, 240, 240, 83, 195, 180, 178, 18, 161, 34, 146, + 34, 146, 50, 129, 66, 114, 66, 114, 82, 105, 82, 98, + 82, 114, 65, 130, 50, 131, 34, 146, 0, 11, 64, 35, + 14, 240, 216, 98, 83, 66, 114, 50, 114, 50, 114, 50, + 114, 50, 83, 72, 98, 98, 66, 114, 50, 130, 34, 130, + 34, 130, 34, 114, 50, 99, 57, 0, 11, 16, 25, 14, + 240, 240, 54, 98, 81, 82, 178, 194, 178, 194, 194, 194, + 194, 194, 210, 194, 210, 210, 82, 118, 0, 10, 112, 36, + 15, 240, 248, 114, 98, 82, 114, 66, 130, 50, 130, 50, + 146, 34, 146, 34, 146, 34, 146, 34, 146, 34, 146, 34, + 130, 50, 130, 50, 114, 66, 98, 88, 0, 12, 16, 22, + 12, 240, 154, 42, 34, 162, 162, 162, 162, 169, 50, 162, + 162, 162, 162, 162, 170, 42, 0, 9, 32, 22, 12, 240, + 154, 42, 34, 162, 162, 162, 162, 162, 169, 50, 162, 162, + 162, 162, 162, 162, 0, 10, 32, 28, 14, 240, 240, 54, + 98, 82, 66, 113, 50, 194, 194, 178, 194, 194, 194, 194, + 85, 50, 114, 51, 98, 67, 82, 89, 117, 0, 11, 36, + 13, 240, 178, 114, 34, 114, 34, 114, 34, 114, 34, 114, + 34, 114, 34, 114, 43, 34, 114, 34, 114, 34, 114, 34, + 114, 34, 114, 34, 114, 34, 114, 34, 114, 0, 10, 20, + 4, 130, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 240, 176, 22, 10, 240, 178, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 34, 50, 69, 0, 8, 38, 14, 240, 210, 115, 34, 99, + 50, 83, 66, 82, 82, 66, 98, 50, 114, 34, 130, 20, + 116, 19, 99, 50, 98, 82, 82, 82, 82, 98, 66, 114, + 50, 114, 50, 130, 0, 10, 96, 22, 11, 240, 114, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 153, 41, 0, 8, 64, 60, 17, 240, 240, 67, 147, 35, + 147, 36, 116, 36, 116, 34, 17, 113, 18, 34, 18, 82, + 18, 34, 18, 82, 18, 34, 33, 81, 34, 34, 34, 50, + 34, 34, 34, 50, 34, 34, 49, 49, 50, 34, 50, 18, + 50, 34, 50, 18, 50, 34, 65, 17, 66, 34, 67, 66, + 34, 67, 66, 0, 13, 48, 14, 240, 211, 114, 36, 98, + 36, 98, 34, 18, 82, 34, 18, 82, 34, 34, 66, 34, + 34, 66, 34, 50, 50, 34, 50, 50, 34, 66, 34, 34, + 66, 34, 34, 82, 18, 34, 82, 18, 34, 100, 34, 100, + 34, 115, 0, 10, 96, 37, 16, 240, 240, 116, 162, 66, + 114, 98, 82, 130, 66, 130, 50, 162, 34, 162, 34, 162, + 34, 162, 34, 162, 34, 162, 50, 130, 66, 130, 82, 98, + 114, 66, 164, 0, 12, 112, 29, 13, 240, 184, 82, 83, + 50, 98, 50, 114, 34, 114, 34, 114, 34, 98, 50, 83, + 56, 82, 178, 178, 178, 178, 178, 178, 0, 11, 16, 42, + 16, 240, 240, 116, 162, 66, 114, 98, 82, 130, 66, 130, + 50, 162, 34, 162, 34, 162, 34, 162, 34, 162, 34, 162, + 50, 130, 66, 66, 34, 82, 50, 18, 114, 51, 166, 227, + 226, 242, 0, 6, 48, 35, 13, 240, 184, 82, 83, 50, + 98, 50, 114, 34, 114, 34, 114, 34, 98, 50, 83, 56, + 82, 66, 82, 66, 82, 82, 66, 83, 50, 98, 50, 114, + 34, 114, 0, 10, 24, 12, 240, 197, 88, 66, 66, 50, + 162, 162, 179, 165, 149, 163, 162, 162, 162, 34, 82, 72, + 85, 0, 9, 80, 22, 16, 240, 240, 46, 46, 130, 226, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 0, 13, 37, 13, 240, 178, 114, 34, 114, 34, 114, 34, + 114, 34, 114, 34, 114, 34, 114, 34, 114, 34, 114, 34, + 114, 34, 114, 34, 114, 34, 114, 50, 82, 82, 50, 117, + 0, 10, 48, 37, 16, 240, 240, 35, 146, 50, 146, 50, + 145, 82, 114, 82, 114, 82, 113, 114, 82, 114, 82, 115, + 50, 146, 50, 146, 49, 178, 18, 178, 18, 178, 17, 211, + 211, 0, 12, 112, 60, 22, 240, 240, 226, 115, 113, 50, + 99, 98, 50, 99, 98, 50, 97, 17, 98, 66, 66, 18, + 66, 82, 66, 18, 66, 82, 65, 34, 66, 82, 50, 50, + 49, 114, 34, 50, 34, 114, 34, 50, 34, 114, 33, 66, + 34, 129, 18, 82, 17, 148, 84, 147, 100, 147, 114, 178, + 114, 0, 17, 32, 35, 15, 240, 242, 130, 66, 98, 83, + 82, 98, 66, 130, 34, 162, 18, 164, 194, 211, 178, 18, + 146, 34, 130, 66, 114, 82, 82, 99, 50, 130, 50, 146, + 0, 11, 64, 29, 16, 240, 240, 34, 162, 50, 130, 67, + 114, 82, 98, 114, 66, 131, 50, 146, 34, 180, 196, 210, + 226, 226, 226, 226, 226, 226, 0, 13, 21, 13, 240, 202, + 163, 162, 162, 178, 162, 163, 162, 162, 163, 162, 162, 178, + 162, 171, 43, 0, 10, 26, 6, 100, 34, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 68, 32, 16, 8, 240, 33, 49, + 49, 49, 34, 34, 33, 49, 50, 34, 0, 17, 32, 26, + 6, 100, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 36, + 32, 13, 9, 240, 98, 97, 18, 66, 33, 50, 65, 0, + 20, 64, 7, 4, 194, 34, 0, 9, 96, 10, 4, 145, + 49, 34, 33, 50, 0, 8, 96, 23, 10, 0, 10, 21, + 81, 51, 130, 130, 85, 50, 50, 34, 66, 34, 66, 35, + 35, 52, 18, 0, 7, 96, 32, 11, 240, 114, 146, 146, + 146, 146, 146, 146, 20, 67, 50, 50, 67, 34, 82, 34, + 82, 34, 82, 34, 82, 34, 66, 51, 50, 50, 20, 0, + 8, 96, 19, 11, 0, 11, 53, 66, 65, 66, 130, 146, + 146, 146, 162, 147, 50, 85, 0, 8, 80, 32, 11, 240, + 226, 146, 146, 146, 146, 146, 68, 18, 50, 51, 50, 66, + 34, 82, 34, 82, 34, 82, 34, 82, 50, 66, 50, 51, + 68, 18, 0, 8, 64, 21, 11, 0, 11, 52, 83, 34, + 66, 66, 34, 97, 41, 34, 146, 162, 147, 65, 85, 0, + 8, 80, 22, 10, 240, 148, 82, 114, 130, 130, 130, 102, + 98, 130, 130, 130, 130, 130, 130, 130, 130, 0, 8, 32, + 30, 13, 0, 13, 56, 66, 34, 98, 66, 82, 66, 82, + 66, 98, 34, 102, 114, 184, 89, 66, 83, 34, 114, 34, + 114, 51, 66, 101, 240, 48, 32, 10, 240, 82, 130, 130, + 130, 130, 130, 130, 20, 51, 50, 34, 66, 34, 66, 34, + 66, 34, 66, 34, 66, 34, 66, 34, 66, 34, 66, 0, + 7, 96, 16, 4, 194, 34, 226, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 240, 176, 22, 7, 240, 146, 82, 240, + 178, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, + 82, 82, 36, 160, 31, 11, 240, 114, 146, 146, 146, 146, + 146, 146, 66, 50, 50, 66, 34, 82, 18, 101, 99, 18, + 82, 35, 66, 50, 66, 66, 50, 82, 0, 8, 64, 20, + 4, 130, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 240, 176, 37, 16, 0, 16, 2, + 20, 36, 51, 36, 35, 34, 66, 66, 34, 66, 66, 34, + 66, 66, 34, 66, 66, 34, 66, 66, 34, 66, 66, 34, + 66, 66, 34, 66, 66, 0, 12, 32, 27, 10, 0, 10, + 2, 20, 51, 50, 34, 66, 34, 66, 34, 66, 34, 66, + 34, 66, 34, 66, 34, 66, 34, 66, 0, 7, 96, 25, + 12, 0, 12, 52, 113, 66, 66, 66, 50, 98, 34, 98, + 34, 98, 34, 98, 50, 66, 67, 50, 100, 0, 9, 80, + 31, 11, 0, 11, 2, 20, 67, 50, 50, 67, 34, 82, + 34, 82, 34, 82, 34, 82, 34, 66, 51, 35, 50, 20, + 66, 146, 146, 146, 146, 240, 80, 30, 11, 0, 11, 36, + 18, 51, 35, 50, 66, 34, 82, 34, 82, 34, 82, 34, + 82, 50, 66, 51, 35, 68, 18, 146, 146, 146, 146, 146, + 208, 18, 8, 0, 8, 2, 34, 37, 51, 82, 98, 98, + 98, 98, 98, 98, 0, 6, 96, 19, 9, 0, 9, 22, + 34, 65, 34, 115, 117, 85, 114, 114, 33, 66, 38, 0, + 7, 16, 20, 9, 240, 240, 130, 114, 114, 114, 87, 66, + 114, 114, 114, 114, 114, 114, 114, 132, 0, 7, 27, 10, + 0, 10, 2, 66, 34, 66, 34, 66, 34, 66, 34, 66, + 34, 66, 34, 66, 34, 66, 34, 51, 52, 18, 0, 7, + 96, 24, 12, 0, 12, 2, 98, 50, 66, 66, 66, 81, + 66, 82, 34, 98, 34, 114, 17, 132, 132, 146, 0, 9, + 96, 41, 17, 0, 17, 2, 81, 82, 50, 51, 65, 66, + 49, 17, 50, 66, 49, 17, 50, 82, 18, 18, 33, 98, + 18, 18, 18, 98, 17, 49, 18, 113, 17, 49, 17, 131, + 51, 130, 67, 0, 13, 48, 23, 12, 0, 12, 18, 66, + 66, 66, 82, 34, 116, 146, 162, 148, 114, 34, 82, 66, + 50, 98, 0, 9, 32, 29, 11, 0, 11, 1, 98, 34, + 81, 50, 66, 66, 50, 66, 34, 82, 34, 98, 17, 114, + 17, 131, 130, 146, 146, 145, 146, 115, 240, 64, 17, 10, + 0, 10, 8, 114, 130, 114, 114, 130, 114, 114, 130, 120, + 0, 7, 96, 8, 13, 0, 17, 123, 0, 19, 96, 9, + 24, 0, 33, 15, 7, 0, 36, 32, 14, 9, 240, 66, + 34, 49, 49, 50, 34, 50, 34, 0, 20, 80, 11, 9, + 240, 210, 49, 39, 33, 50, 0, 20, 80, +}; + +//***************************************************************************** +// +// The font definition for the 24 point Cmss font. +// +//***************************************************************************** +const tFont g_sFontCmss24 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 21, + + // + // The height of the font. + // + 24, + + // + // The baseline of the font. + // + 18, + + // + // The offset to each character in the font. + // + { + 0, 4, 22, 36, 83, 118, 174, 213, + 222, 249, 276, 295, 329, 339, 347, 355, + 382, 417, 439, 464, 490, 519, 545, 576, + 598, 632, 664, 675, 688, 706, 717, 738, + 760, 804, 839, 874, 899, 935, 957, 979, + 1007, 1043, 1063, 1085, 1123, 1145, 1205, 1253, + 1290, 1319, 1361, 1396, 1420, 1442, 1479, 1516, + 1576, 1611, 1640, 1661, 1687, 1703, 1729, 1742, + 1749, 1759, 1782, 1814, 1833, 1865, 1886, 1908, + 1938, 1970, 1986, 2008, 2039, 2059, 2096, 2123, + 2148, 2179, 2209, 2227, 2246, 2266, 2293, 2317, + 2358, 2381, 2410, 2427, 2435, 2444, 2458, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss24Data +}; diff --git a/grlib/fonts/fontcmss24b.c b/grlib/fonts/fontcmss24b.c new file mode 100644 index 0000000..e097177 --- /dev/null +++ b/grlib/fonts/fontcmss24b.c @@ -0,0 +1,324 @@ +//***************************************************************************** +// +// fontcmss24b.c - Font definition for the 24pt Cmss bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 24 point +// Bold: yes +// Italic: no +// Memory usage: 2808 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 24 point Cmss bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss24bData[2607] = +{ + 5, 10, 0, 31, 32, 21, 5, 163, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 115, 35, 35, 240, + 240, 32, 18, 10, 240, 83, 35, 35, 35, 35, 35, 50, + 50, 34, 50, 50, 50, 0, 21, 80, 51, 21, 0, 6, + 49, 66, 210, 66, 210, 66, 210, 50, 211, 50, 210, 66, + 210, 51, 111, 4, 47, 4, 130, 66, 210, 50, 226, 50, + 210, 66, 143, 4, 47, 4, 99, 50, 210, 66, 210, 51, + 210, 50, 210, 66, 210, 66, 210, 65, 240, 240, 32, 37, + 13, 82, 178, 150, 90, 36, 18, 34, 35, 34, 99, 34, + 100, 18, 103, 120, 104, 119, 118, 114, 19, 114, 19, 33, + 66, 19, 35, 34, 19, 42, 73, 116, 162, 0, 7, 32, + 57, 24, 240, 181, 162, 103, 131, 83, 36, 99, 99, 51, + 98, 115, 51, 82, 131, 51, 67, 131, 51, 51, 162, 35, + 51, 183, 50, 240, 98, 240, 99, 54, 179, 66, 35, 147, + 67, 35, 146, 83, 35, 131, 83, 35, 115, 99, 35, 99, + 115, 35, 98, 150, 113, 180, 0, 15, 64, 41, 20, 0, + 5, 100, 231, 211, 35, 179, 51, 179, 51, 179, 51, 179, + 35, 199, 82, 116, 99, 116, 99, 87, 67, 83, 35, 67, + 83, 36, 35, 84, 55, 115, 69, 143, 2, 86, 54, 0, + 15, 32, 10, 5, 163, 35, 35, 50, 34, 50, 0, 11, + 28, 8, 66, 98, 82, 83, 82, 83, 83, 82, 83, 83, + 83, 83, 83, 83, 83, 83, 83, 98, 99, 83, 98, 99, + 98, 99, 98, 32, 28, 8, 2, 99, 98, 99, 98, 99, + 83, 98, 99, 83, 83, 83, 83, 83, 83, 83, 83, 82, + 83, 83, 82, 98, 82, 83, 82, 96, 29, 13, 67, 163, + 113, 35, 33, 51, 33, 35, 51, 17, 19, 101, 133, 99, + 17, 19, 51, 33, 35, 49, 35, 33, 115, 163, 0, 21, + 112, 43, 20, 0, 8, 66, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 175, 3, + 47, 3, 162, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 0, 8, 96, 12, 5, 0, 10, + 3, 35, 35, 50, 34, 50, 240, 48, 9, 9, 0, 13, + 71, 39, 0, 12, 80, 10, 5, 0, 10, 3, 35, 35, + 240, 240, 32, 28, 12, 130, 162, 147, 146, 162, 146, 162, + 162, 146, 162, 162, 146, 162, 162, 146, 162, 162, 146, 162, + 162, 146, 162, 147, 146, 162, 160, 36, 13, 240, 229, 119, + 83, 51, 66, 82, 51, 83, 35, 83, 35, 83, 35, 83, + 35, 83, 35, 83, 35, 83, 35, 83, 35, 83, 51, 66, + 67, 51, 87, 117, 0, 10, 48, 23, 11, 240, 178, 131, + 86, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 89, 41, 0, 8, 64, 26, 12, 240, 181, 104, 51, + 51, 50, 83, 49, 83, 147, 147, 131, 147, 131, 131, 130, + 146, 146, 154, 42, 42, 0, 9, 32, 27, 12, 240, 181, + 104, 51, 51, 65, 67, 147, 147, 147, 101, 117, 163, 163, + 147, 147, 33, 99, 34, 68, 41, 85, 0, 9, 80, 30, + 14, 240, 240, 68, 149, 149, 134, 130, 19, 115, 19, 114, + 35, 99, 35, 98, 51, 83, 51, 82, 67, 76, 59, 147, + 179, 179, 179, 0, 11, 27, 12, 240, 168, 72, 67, 147, + 147, 147, 151, 88, 67, 51, 50, 67, 147, 147, 147, 34, + 83, 35, 51, 72, 85, 0, 9, 80, 33, 13, 240, 245, + 118, 99, 147, 162, 163, 36, 67, 22, 52, 51, 51, 83, + 35, 83, 35, 83, 35, 83, 35, 83, 50, 83, 51, 51, + 88, 101, 0, 10, 48, 23, 12, 240, 154, 42, 42, 146, + 146, 147, 146, 147, 146, 147, 147, 146, 147, 147, 147, 147, + 147, 0, 9, 112, 34, 13, 240, 230, 89, 52, 52, 35, + 83, 35, 83, 35, 83, 51, 51, 87, 103, 83, 51, 51, + 83, 35, 83, 35, 83, 35, 83, 36, 52, 57, 101, 0, + 10, 48, 34, 13, 240, 229, 104, 83, 51, 51, 82, 51, + 83, 35, 83, 35, 83, 35, 83, 35, 83, 51, 52, 54, + 19, 68, 35, 163, 147, 65, 68, 72, 101, 0, 10, 64, + 14, 5, 240, 240, 163, 35, 35, 240, 195, 35, 35, 240, + 240, 32, 16, 5, 240, 240, 163, 35, 35, 240, 195, 35, + 35, 50, 34, 50, 240, 48, 21, 5, 240, 240, 83, 35, + 35, 115, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 112, 17, 20, 0, 22, 79, 3, 47, 3, 0, + 10, 47, 3, 47, 3, 0, 20, 32, 24, 11, 0, 10, + 3, 131, 131, 240, 67, 131, 131, 131, 115, 131, 115, 115, + 131, 131, 81, 35, 66, 56, 69, 240, 25, 12, 240, 182, + 73, 51, 67, 49, 83, 147, 147, 116, 131, 131, 131, 147, + 147, 147, 240, 99, 147, 147, 0, 9, 96, 44, 17, 240, + 240, 151, 138, 100, 83, 68, 55, 51, 41, 35, 51, 36, + 35, 35, 67, 35, 35, 67, 35, 35, 67, 35, 35, 67, + 35, 35, 67, 35, 51, 35, 67, 40, 68, 37, 116, 99, + 91, 135, 0, 13, 48, 36, 18, 240, 240, 196, 214, 198, + 179, 19, 179, 20, 163, 20, 147, 51, 147, 52, 131, 52, + 115, 83, 115, 84, 108, 93, 83, 116, 67, 116, 51, 147, + 51, 148, 0, 13, 96, 35, 16, 240, 240, 43, 92, 67, + 100, 51, 115, 51, 115, 51, 115, 51, 100, 59, 92, 67, + 100, 51, 116, 35, 131, 35, 131, 35, 131, 35, 116, 45, + 59, 0, 12, 80, 27, 16, 240, 240, 119, 122, 84, 82, + 67, 129, 67, 195, 211, 211, 211, 211, 211, 211, 227, 211, + 228, 82, 107, 119, 0, 12, 64, 37, 17, 240, 240, 75, + 108, 83, 100, 67, 131, 51, 131, 51, 147, 35, 147, 35, + 147, 35, 147, 35, 147, 35, 147, 35, 147, 35, 146, 51, + 131, 51, 100, 76, 90, 0, 13, 80, 23, 14, 240, 219, + 59, 59, 51, 179, 179, 179, 186, 74, 67, 179, 179, 179, + 179, 187, 60, 43, 0, 10, 112, 22, 13, 240, 187, 43, + 43, 35, 163, 163, 163, 163, 170, 58, 51, 163, 163, 163, + 163, 163, 163, 0, 11, 32, 17, 240, 240, 152, 124, 68, + 99, 52, 130, 51, 211, 227, 227, 227, 227, 102, 35, 102, + 35, 147, 51, 131, 52, 115, 68, 99, 92, 120, 0, 13, + 32, 39, 16, 240, 240, 35, 131, 35, 131, 35, 131, 35, + 131, 35, 131, 35, 131, 35, 131, 46, 46, 35, 131, 35, + 131, 35, 131, 35, 131, 35, 131, 35, 131, 35, 131, 35, + 131, 0, 12, 32, 22, 5, 163, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 240, + 240, 32, 24, 11, 240, 211, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 49, 67, 40, 85, 0, + 8, 96, 39, 16, 240, 240, 35, 131, 35, 116, 35, 100, + 51, 84, 67, 67, 99, 51, 115, 20, 136, 137, 117, 20, + 100, 51, 99, 68, 83, 84, 67, 99, 67, 115, 51, 116, + 35, 131, 0, 12, 32, 23, 12, 240, 147, 147, 147, 147, + 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 154, + 42, 0, 9, 32, 59, 21, 240, 240, 197, 149, 37, 149, + 37, 149, 38, 118, 38, 118, 35, 19, 83, 19, 35, 19, + 83, 19, 35, 34, 82, 35, 35, 35, 51, 35, 35, 35, + 51, 35, 35, 51, 34, 51, 35, 51, 19, 51, 35, 66, + 18, 67, 35, 69, 67, 35, 69, 67, 35, 83, 83, 35, + 211, 0, 16, 49, 17, 240, 240, 69, 115, 37, 115, 38, + 99, 39, 83, 35, 19, 83, 35, 20, 67, 35, 35, 67, + 35, 36, 51, 35, 51, 51, 35, 52, 35, 35, 67, 35, + 35, 68, 19, 35, 83, 19, 35, 87, 35, 102, 35, 117, + 35, 117, 0, 13, 37, 18, 240, 240, 182, 170, 115, 84, + 83, 131, 67, 131, 51, 163, 35, 163, 35, 163, 35, 163, + 35, 163, 35, 163, 35, 163, 51, 131, 67, 131, 84, 68, + 122, 166, 0, 14, 48, 29, 15, 240, 250, 92, 51, 100, + 35, 115, 35, 115, 35, 115, 35, 115, 35, 99, 60, 58, + 83, 195, 195, 195, 195, 195, 195, 0, 12, 96, 42, 18, + 240, 240, 182, 170, 116, 68, 83, 131, 67, 131, 51, 163, + 35, 163, 35, 163, 35, 163, 35, 163, 35, 163, 35, 163, + 51, 51, 36, 51, 52, 19, 84, 39, 107, 153, 228, 244, + 228, 0, 7, 16, 36, 15, 240, 250, 92, 51, 100, 35, + 115, 35, 115, 35, 115, 35, 100, 44, 58, 83, 52, 83, + 67, 83, 68, 67, 83, 67, 84, 51, 99, 51, 115, 35, + 115, 0, 11, 64, 28, 14, 240, 240, 23, 90, 52, 67, + 51, 113, 51, 180, 183, 121, 120, 150, 164, 179, 33, 131, + 35, 84, 43, 74, 102, 0, 11, 16, 24, 17, 240, 240, + 79, 47, 47, 131, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 0, 13, 96, 39, 16, 240, 240, + 35, 131, 35, 131, 35, 131, 35, 131, 35, 131, 35, 131, + 35, 131, 35, 131, 35, 131, 35, 131, 35, 131, 35, 131, + 35, 131, 36, 115, 52, 83, 90, 134, 0, 12, 96, 36, + 18, 240, 240, 99, 163, 36, 132, 36, 131, 67, 131, 68, + 100, 68, 99, 99, 84, 100, 67, 116, 67, 132, 36, 132, + 35, 163, 35, 168, 167, 198, 198, 197, 0, 14, 64, 61, + 25, 0, 6, 35, 116, 114, 35, 101, 99, 35, 101, 99, + 35, 101, 99, 51, 67, 19, 82, 67, 67, 19, 67, 67, + 67, 19, 67, 68, 50, 35, 67, 83, 35, 51, 35, 99, + 35, 51, 35, 99, 35, 51, 35, 100, 18, 83, 18, 134, + 86, 134, 86, 133, 102, 133, 116, 164, 116, 0, 19, 64, + 35, 18, 240, 240, 101, 100, 68, 84, 100, 68, 116, 36, + 132, 20, 167, 198, 212, 228, 214, 184, 148, 20, 148, 36, + 116, 68, 84, 100, 68, 100, 52, 132, 0, 13, 96, 31, + 17, 240, 240, 67, 147, 36, 116, 52, 99, 68, 84, 84, + 52, 116, 35, 132, 20, 151, 181, 196, 227, 227, 227, 227, + 227, 227, 227, 0, 13, 96, 23, 15, 240, 253, 45, 164, + 180, 164, 164, 179, 180, 164, 179, 180, 164, 179, 179, 189, + 45, 45, 0, 11, 64, 27, 7, 117, 37, 35, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 69, 37, 32, 18, 10, 240, 98, + 50, 50, 50, 34, 50, 51, 35, 35, 35, 35, 35, 0, + 21, 64, 27, 7, 117, 37, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 37, 37, 32, 12, 9, 240, 83, 85, 51, 19, + 34, 50, 0, 21, 80, 8, 5, 163, 35, 35, 0, 12, + 96, 11, 5, 178, 50, 34, 51, 35, 35, 0, 10, 112, + 23, 12, 0, 12, 38, 88, 66, 67, 147, 147, 72, 35, + 67, 35, 67, 35, 52, 57, 67, 35, 0, 9, 32, 32, + 13, 240, 179, 163, 163, 163, 163, 163, 163, 21, 74, 51, + 68, 35, 83, 35, 83, 35, 83, 35, 83, 35, 83, 35, + 67, 58, 51, 20, 0, 10, 48, 20, 12, 0, 12, 53, + 89, 51, 65, 51, 147, 147, 147, 147, 163, 66, 57, 85, + 0, 9, 64, 32, 13, 240, 240, 67, 163, 163, 163, 163, + 163, 69, 19, 58, 51, 67, 35, 83, 35, 83, 35, 83, + 35, 83, 35, 83, 51, 52, 58, 69, 19, 0, 10, 22, + 13, 0, 13, 53, 105, 67, 52, 35, 83, 35, 83, 43, + 35, 163, 179, 82, 58, 86, 0, 10, 32, 24, 10, 240, + 133, 70, 51, 49, 51, 115, 115, 102, 70, 83, 115, 115, + 115, 115, 115, 115, 115, 115, 0, 8, 32, 30, 13, 0, + 13, 38, 18, 58, 35, 51, 67, 51, 67, 51, 67, 51, + 88, 86, 120, 89, 74, 34, 99, 34, 114, 35, 83, 57, + 87, 240, 32, 33, 13, 240, 179, 163, 163, 163, 163, 163, + 163, 37, 51, 23, 36, 67, 35, 83, 35, 83, 35, 83, + 35, 83, 35, 83, 35, 83, 35, 83, 35, 83, 0, 10, + 20, 5, 163, 35, 35, 240, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 240, 240, 32, 24, 8, 240, 67, + 83, 83, 240, 227, 83, 83, 83, 83, 83, 83, 83, 83, + 83, 83, 83, 83, 83, 38, 37, 176, 30, 12, 240, 147, + 147, 147, 147, 147, 147, 147, 52, 35, 36, 51, 20, 71, + 86, 103, 88, 67, 35, 67, 51, 51, 52, 35, 67, 0, + 9, 32, 22, 5, 163, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 240, 240, 32, + 40, 20, 0, 20, 3, 37, 52, 51, 23, 22, 36, 68, + 51, 35, 83, 67, 35, 83, 67, 35, 83, 67, 35, 83, + 67, 35, 83, 67, 35, 83, 67, 35, 83, 67, 35, 83, + 67, 0, 15, 32, 28, 13, 0, 13, 3, 37, 51, 23, + 36, 67, 35, 83, 35, 83, 35, 83, 35, 83, 35, 83, + 35, 83, 35, 83, 35, 83, 0, 10, 25, 13, 0, 13, + 53, 105, 67, 51, 51, 83, 35, 83, 35, 83, 35, 83, + 35, 83, 51, 51, 73, 101, 0, 10, 48, 31, 13, 0, + 13, 3, 21, 74, 51, 68, 35, 83, 35, 83, 35, 83, + 35, 83, 35, 83, 35, 67, 58, 51, 20, 83, 163, 163, + 163, 163, 240, 128, 30, 13, 0, 13, 52, 19, 58, 51, + 52, 35, 83, 35, 83, 35, 83, 35, 83, 35, 83, 51, + 52, 58, 69, 19, 163, 163, 163, 163, 163, 240, 20, 9, + 0, 9, 3, 34, 35, 19, 37, 68, 83, 99, 99, 99, + 99, 99, 99, 0, 7, 64, 20, 10, 0, 10, 37, 71, + 35, 50, 35, 118, 86, 116, 130, 34, 66, 40, 69, 0, + 7, 112, 22, 11, 0, 5, 99, 131, 131, 131, 104, 56, + 83, 131, 131, 131, 131, 131, 131, 135, 84, 0, 8, 96, + 28, 13, 0, 13, 3, 83, 35, 83, 35, 83, 35, 83, + 35, 83, 35, 83, 35, 83, 35, 83, 35, 83, 35, 68, + 54, 19, 0, 10, 26, 13, 0, 13, 3, 83, 35, 83, + 51, 51, 67, 51, 67, 51, 83, 19, 99, 19, 99, 19, + 117, 133, 133, 0, 10, 48, 36, 19, 0, 19, 3, 67, + 67, 35, 67, 67, 36, 51, 66, 67, 37, 35, 67, 37, + 35, 67, 37, 35, 85, 34, 34, 101, 38, 101, 38, 101, + 53, 115, 68, 0, 14, 112, 24, 13, 0, 13, 3, 83, + 51, 51, 83, 19, 102, 133, 147, 149, 115, 19, 83, 51, + 67, 51, 51, 83, 0, 10, 30, 12, 0, 12, 3, 67, + 35, 67, 51, 50, 67, 35, 82, 35, 83, 18, 99, 18, + 117, 116, 147, 147, 146, 162, 97, 35, 101, 116, 240, 80, + 18, 12, 0, 12, 10, 42, 131, 131, 131, 132, 116, 131, + 131, 138, 42, 0, 9, 32, 9, 15, 0, 20, 93, 45, + 0, 22, 96, 11, 28, 0, 38, 79, 11, 47, 11, 0, + 42, 32, 14, 10, 240, 84, 19, 35, 34, 50, 35, 50, + 34, 0, 24, 32, 11, 11, 240, 132, 34, 41, 34, 36, + 0, 27, 112, +}; + +//***************************************************************************** +// +// The font definition for the 24 point Cmss bold font. +// +//***************************************************************************** +const tFont g_sFontCmss24b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 25, + + // + // The height of the font. + // + 25, + + // + // The baseline of the font. + // + 19, + + // + // The offset to each character in the font. + // + { + 0, 5, 26, 44, 95, 132, 189, 230, + 240, 268, 296, 325, 368, 380, 389, 399, + 427, 463, 486, 512, 539, 569, 596, 629, + 652, 686, 720, 734, 750, 771, 788, 812, + 837, 881, 917, 952, 979, 1016, 1039, 1061, + 1093, 1132, 1154, 1178, 1217, 1240, 1299, 1348, + 1385, 1414, 1456, 1492, 1520, 1544, 1583, 1619, + 1680, 1715, 1746, 1769, 1796, 1814, 1841, 1853, + 1861, 1872, 1895, 1927, 1947, 1979, 2001, 2025, + 2055, 2088, 2108, 2132, 2162, 2184, 2224, 2252, + 2277, 2308, 2338, 2358, 2378, 2400, 2428, 2454, + 2490, 2514, 2544, 2562, 2571, 2582, 2596, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss24bData +}; diff --git a/grlib/fonts/fontcmss24i.c b/grlib/fonts/fontcmss24i.c new file mode 100644 index 0000000..86d40c7 --- /dev/null +++ b/grlib/fonts/fontcmss24i.c @@ -0,0 +1,314 @@ +//***************************************************************************** +// +// fontcmss24i.c - Font definition for the 24pt Cmss italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 24 point +// Bold: no +// Italic: yes +// Memory usage: 2696 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 24 point Cmss italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss24iData[2494] = +{ + 4, 10, 0, 30, 21, 7, 240, 34, 82, 81, 97, 82, + 82, 82, 81, 97, 82, 82, 81, 240, 66, 82, 0, 5, + 112, 14, 9, 240, 66, 34, 50, 34, 49, 49, 49, 49, + 0, 20, 96, 49, 19, 0, 6, 1, 65, 209, 65, 193, + 65, 209, 65, 193, 65, 209, 65, 193, 65, 209, 65, 127, + 1, 129, 65, 193, 81, 193, 65, 143, 1, 113, 65, 209, + 65, 193, 65, 209, 65, 193, 65, 209, 65, 193, 65, 209, + 65, 240, 240, 16, 35, 13, 98, 178, 150, 104, 82, 17, + 33, 82, 33, 130, 33, 130, 18, 132, 165, 164, 145, 18, + 130, 18, 129, 34, 129, 33, 82, 33, 18, 87, 132, 162, + 0, 9, 16, 54, 16, 240, 51, 129, 50, 18, 97, 66, + 18, 81, 66, 34, 81, 66, 34, 65, 82, 33, 65, 98, + 18, 49, 131, 65, 225, 225, 51, 129, 50, 18, 113, 50, + 18, 97, 50, 34, 81, 66, 34, 65, 82, 34, 65, 82, + 18, 65, 98, 18, 49, 131, 0, 10, 64, 40, 17, 240, + 240, 179, 209, 34, 177, 50, 162, 50, 162, 34, 178, 18, + 196, 211, 98, 98, 113, 85, 82, 66, 34, 66, 81, 50, + 50, 82, 66, 18, 98, 68, 114, 68, 134, 22, 0, 13, + 16, 9, 5, 178, 50, 49, 49, 0, 11, 96, 27, 10, + 113, 129, 130, 114, 129, 130, 114, 130, 130, 114, 130, 130, + 115, 114, 130, 130, 130, 130, 130, 130, 130, 146, 130, 146, + 96, 27, 10, 66, 146, 130, 146, 130, 130, 130, 130, 130, + 130, 130, 130, 114, 130, 130, 129, 130, 130, 114, 130, 114, + 114, 129, 129, 144, 20, 11, 81, 161, 146, 98, 18, 18, + 70, 99, 98, 20, 50, 18, 18, 97, 161, 0, 20, 16, + 27, 17, 0, 11, 81, 240, 17, 240, 17, 240, 17, 241, + 240, 17, 240, 17, 159, 145, 241, 240, 17, 240, 17, 240, + 17, 0, 14, 11, 5, 0, 10, 18, 50, 49, 65, 49, + 240, 64, 8, 8, 0, 13, 6, 0, 10, 32, 8, 4, + 0, 8, 2, 34, 240, 176, 27, 15, 193, 225, 209, 209, + 225, 209, 225, 209, 225, 209, 225, 209, 225, 209, 225, 209, + 225, 209, 225, 209, 209, 225, 209, 225, 224, 35, 12, 240, + 240, 180, 98, 35, 81, 66, 66, 66, 50, 82, 50, 82, + 50, 82, 49, 98, 34, 82, 50, 82, 50, 82, 50, 66, + 66, 66, 67, 34, 100, 0, 9, 112, 22, 10, 240, 240, + 113, 85, 114, 130, 130, 130, 130, 114, 130, 130, 130, 129, + 130, 130, 88, 0, 7, 96, 25, 13, 240, 240, 228, 114, + 51, 66, 82, 65, 98, 178, 177, 178, 162, 161, 177, 177, + 161, 177, 185, 73, 0, 10, 32, 26, 13, 240, 240, 229, + 113, 66, 81, 82, 178, 162, 162, 132, 194, 194, 178, 178, + 178, 49, 98, 82, 50, 116, 0, 10, 80, 30, 12, 240, + 240, 226, 147, 129, 17, 130, 17, 114, 18, 98, 34, 98, + 34, 82, 49, 82, 50, 66, 66, 74, 129, 162, 162, 162, + 0, 9, 80, 25, 13, 240, 240, 215, 97, 178, 178, 178, + 177, 183, 99, 35, 82, 66, 178, 178, 177, 178, 66, 66, + 101, 0, 10, 80, 31, 13, 240, 240, 245, 98, 162, 162, + 178, 162, 21, 83, 51, 51, 82, 51, 82, 50, 98, 50, + 98, 50, 82, 66, 81, 98, 49, 132, 0, 10, 80, 22, + 12, 240, 240, 121, 57, 161, 161, 161, 162, 146, 146, 162, + 146, 161, 162, 162, 146, 162, 0, 10, 32, 34, 12, 240, + 240, 180, 98, 50, 81, 66, 66, 66, 66, 66, 81, 50, + 115, 114, 34, 82, 66, 65, 82, 50, 82, 50, 82, 50, + 66, 82, 34, 116, 0, 9, 96, 32, 12, 240, 240, 180, + 98, 35, 66, 66, 66, 66, 50, 82, 50, 82, 50, 82, + 50, 67, 51, 35, 84, 18, 162, 146, 161, 81, 65, 101, + 0, 9, 112, 13, 6, 0, 6, 34, 66, 240, 240, 130, + 66, 240, 240, 160, 15, 7, 0, 7, 50, 82, 240, 240, + 242, 82, 81, 97, 81, 240, 192, 20, 7, 0, 6, 66, + 240, 65, 82, 82, 81, 97, 97, 82, 82, 82, 81, 97, + 82, 82, 192, 11, 18, 0, 22, 95, 0, 7, 15, 0, + 20, 80, 21, 10, 0, 9, 65, 240, 210, 129, 145, 130, + 129, 130, 114, 114, 114, 130, 130, 130, 66, 54, 208, 22, + 10, 240, 102, 50, 66, 130, 130, 114, 115, 98, 114, 130, + 114, 130, 129, 240, 210, 130, 0, 8, 64, 43, 15, 240, + 240, 117, 130, 51, 97, 98, 81, 69, 66, 34, 35, 50, + 34, 66, 50, 34, 66, 34, 34, 82, 34, 34, 81, 50, + 34, 66, 50, 34, 65, 66, 50, 34, 67, 51, 114, 226, + 82, 118, 0, 12, 35, 15, 240, 240, 131, 195, 180, 177, + 18, 162, 33, 161, 50, 130, 50, 114, 66, 114, 66, 98, + 82, 105, 82, 98, 81, 130, 50, 130, 34, 146, 34, 146, + 0, 11, 64, 36, 15, 240, 240, 56, 113, 98, 82, 114, + 66, 114, 66, 114, 66, 98, 81, 83, 88, 114, 83, 82, + 99, 66, 114, 50, 130, 50, 130, 50, 114, 66, 83, 88, + 0, 12, 16, 25, 15, 240, 240, 103, 114, 66, 82, 194, + 209, 210, 210, 194, 210, 210, 210, 210, 226, 211, 81, 120, + 133, 0, 12, 16, 37, 17, 240, 240, 136, 145, 98, 114, + 114, 98, 130, 82, 130, 82, 130, 66, 146, 66, 146, 66, + 146, 66, 130, 82, 130, 66, 130, 82, 130, 82, 114, 98, + 83, 105, 0, 13, 96, 23, 15, 240, 240, 58, 90, 82, + 210, 210, 194, 210, 217, 98, 194, 210, 210, 210, 209, 219, + 74, 0, 11, 112, 23, 15, 240, 240, 58, 90, 82, 210, + 210, 194, 210, 210, 216, 99, 194, 210, 210, 210, 194, 210, + 0, 12, 112, 27, 15, 240, 240, 117, 136, 99, 66, 82, + 194, 195, 194, 210, 194, 210, 210, 85, 50, 129, 67, 98, + 83, 82, 105, 118, 0, 12, 38, 17, 240, 240, 114, 130, + 82, 130, 82, 114, 98, 114, 98, 114, 82, 130, 82, 130, + 91, 98, 114, 82, 130, 82, 130, 82, 114, 98, 114, 98, + 114, 82, 130, 82, 130, 0, 13, 48, 22, 7, 240, 34, + 82, 81, 82, 82, 82, 82, 82, 66, 82, 82, 82, 82, + 81, 82, 82, 0, 5, 112, 24, 13, 240, 240, 82, 178, + 178, 162, 178, 178, 178, 177, 178, 178, 178, 178, 162, 178, + 82, 50, 117, 0, 10, 80, 39, 17, 240, 240, 114, 130, + 82, 114, 98, 83, 114, 67, 130, 50, 146, 50, 162, 34, + 178, 20, 164, 18, 148, 35, 131, 66, 130, 82, 130, 98, + 114, 98, 98, 130, 82, 130, 0, 13, 48, 22, 11, 240, + 162, 146, 146, 146, 146, 130, 146, 146, 146, 130, 146, 146, + 146, 145, 153, 41, 0, 8, 64, 60, 21, 240, 240, 243, + 163, 84, 131, 100, 116, 100, 116, 97, 18, 98, 18, 82, + 18, 97, 33, 98, 18, 82, 18, 98, 33, 81, 34, 98, + 34, 50, 34, 97, 50, 49, 50, 82, 50, 34, 34, 98, + 50, 18, 50, 98, 50, 18, 50, 98, 52, 66, 82, 82, + 81, 98, 82, 66, 0, 16, 64, 47, 17, 240, 240, 116, + 98, 84, 98, 84, 97, 100, 82, 97, 34, 66, 82, 34, + 66, 82, 34, 66, 82, 34, 65, 98, 50, 34, 82, 66, + 34, 82, 66, 34, 82, 66, 33, 98, 84, 97, 100, 82, + 100, 82, 100, 0, 13, 48, 36, 16, 240, 240, 133, 161, + 66, 114, 98, 82, 130, 65, 146, 50, 146, 50, 146, 34, + 162, 34, 162, 34, 146, 50, 146, 50, 130, 66, 130, 82, + 98, 114, 50, 165, 0, 13, 30, 15, 240, 240, 56, 114, + 82, 82, 114, 66, 114, 66, 114, 66, 114, 66, 98, 66, + 98, 88, 114, 210, 209, 210, 210, 210, 210, 0, 12, 112, + 42, 16, 240, 240, 133, 161, 66, 114, 98, 82, 130, 66, + 130, 50, 146, 50, 146, 34, 162, 34, 162, 34, 146, 50, + 146, 50, 145, 66, 66, 34, 82, 50, 18, 114, 51, 150, + 242, 226, 227, 0, 6, 80, 37, 16, 240, 240, 104, 129, + 98, 98, 114, 82, 114, 82, 114, 82, 114, 66, 114, 82, + 98, 104, 130, 50, 146, 66, 114, 82, 114, 98, 98, 98, + 98, 98, 82, 130, 0, 12, 64, 25, 13, 240, 240, 21, + 119, 82, 81, 66, 178, 178, 179, 181, 165, 178, 178, 178, + 162, 66, 67, 72, 117, 0, 10, 64, 23, 16, 240, 240, + 46, 45, 146, 210, 226, 226, 226, 210, 226, 226, 226, 226, + 210, 226, 226, 226, 0, 13, 48, 38, 15, 240, 240, 34, + 129, 66, 114, 66, 114, 66, 114, 65, 129, 66, 114, 66, + 114, 66, 114, 66, 114, 50, 129, 66, 114, 66, 114, 66, + 113, 82, 98, 98, 66, 133, 0, 12, 32, 36, 16, 240, + 240, 34, 162, 34, 146, 50, 145, 66, 130, 67, 98, 98, + 98, 98, 82, 114, 81, 130, 66, 130, 50, 146, 50, 162, + 18, 178, 17, 196, 195, 211, 0, 13, 48, 61, 22, 240, + 240, 226, 114, 114, 34, 99, 98, 50, 99, 98, 50, 84, + 82, 66, 81, 18, 82, 66, 66, 18, 81, 82, 65, 34, + 66, 82, 50, 49, 65, 98, 49, 65, 50, 98, 34, 66, + 33, 114, 33, 82, 18, 114, 18, 82, 17, 145, 17, 100, + 145, 17, 99, 162, 115, 162, 114, 0, 17, 96, 36, 17, + 240, 240, 115, 114, 98, 99, 99, 82, 130, 66, 147, 34, + 178, 18, 196, 226, 227, 210, 18, 178, 35, 146, 66, 146, + 67, 114, 98, 98, 115, 66, 146, 0, 13, 32, 31, 16, + 240, 240, 34, 162, 35, 130, 66, 114, 82, 98, 99, 66, + 130, 50, 147, 18, 178, 18, 180, 210, 225, 226, 226, 226, + 226, 210, 0, 13, 64, 23, 17, 240, 240, 139, 226, 226, + 226, 226, 227, 211, 226, 226, 226, 226, 226, 226, 241, 251, + 91, 0, 13, 64, 27, 11, 240, 20, 113, 146, 146, 146, + 145, 161, 146, 146, 146, 145, 146, 146, 146, 146, 145, 146, + 146, 146, 145, 146, 146, 148, 112, 16, 9, 240, 81, 49, + 49, 49, 50, 34, 50, 34, 50, 34, 0, 19, 64, 27, + 11, 240, 20, 146, 145, 146, 146, 146, 146, 145, 146, 146, + 146, 145, 161, 146, 146, 146, 145, 146, 146, 146, 146, 145, + 116, 112, 13, 9, 240, 98, 97, 18, 65, 49, 49, 66, + 0, 20, 64, 7, 4, 194, 34, 0, 9, 96, 9, 5, + 193, 49, 50, 50, 50, 0, 11, 23, 11, 0, 11, 53, + 81, 66, 146, 146, 86, 50, 50, 50, 66, 50, 66, 50, + 51, 68, 17, 0, 8, 96, 31, 12, 240, 194, 162, 161, + 162, 162, 162, 161, 21, 82, 51, 50, 82, 50, 82, 50, + 82, 49, 98, 49, 82, 50, 82, 51, 50, 70, 0, 9, + 96, 19, 11, 0, 11, 69, 66, 65, 50, 146, 130, 146, + 146, 146, 162, 65, 85, 0, 8, 96, 31, 13, 240, 240, + 97, 178, 178, 178, 178, 177, 118, 82, 51, 66, 82, 66, + 82, 50, 82, 66, 82, 66, 82, 66, 82, 67, 50, 103, + 0, 10, 48, 20, 11, 0, 11, 68, 82, 35, 50, 66, + 50, 66, 41, 34, 146, 146, 162, 164, 0, 8, 112, 22, + 11, 240, 196, 97, 146, 145, 161, 146, 118, 114, 145, 146, + 146, 146, 145, 161, 146, 146, 0, 9, 48, 30, 14, 0, + 14, 87, 98, 34, 114, 50, 114, 50, 114, 50, 114, 34, + 118, 129, 215, 120, 82, 67, 66, 98, 66, 98, 67, 66, + 117, 240, 96, 32, 12, 240, 209, 177, 162, 162, 162, 161, + 162, 20, 83, 50, 66, 66, 66, 66, 65, 82, 50, 66, + 66, 66, 66, 66, 65, 82, 50, 81, 0, 9, 64, 19, + 7, 240, 146, 82, 240, 162, 81, 97, 82, 82, 82, 81, + 97, 82, 82, 0, 5, 112, 25, 12, 240, 240, 226, 162, + 240, 240, 242, 161, 162, 162, 162, 162, 161, 162, 162, 162, + 161, 177, 162, 161, 116, 240, 80, 30, 11, 240, 162, 146, + 145, 146, 146, 146, 146, 50, 65, 50, 66, 34, 82, 18, + 101, 101, 97, 50, 66, 50, 66, 66, 50, 66, 0, 8, + 80, 22, 7, 240, 34, 82, 81, 97, 82, 82, 82, 81, + 97, 82, 82, 82, 81, 97, 82, 82, 0, 5, 112, 36, + 18, 0, 18, 34, 20, 36, 83, 51, 50, 66, 66, 66, + 65, 82, 66, 50, 81, 82, 50, 66, 66, 66, 66, 66, + 66, 66, 66, 65, 81, 82, 50, 66, 81, 0, 14, 27, + 12, 0, 12, 34, 20, 83, 50, 66, 66, 66, 66, 65, + 82, 50, 66, 66, 66, 66, 66, 65, 82, 50, 81, 0, + 9, 64, 25, 12, 0, 12, 68, 98, 50, 66, 82, 50, + 82, 34, 98, 34, 98, 34, 82, 50, 82, 66, 50, 100, + 0, 9, 96, 29, 13, 0, 13, 55, 98, 51, 66, 82, + 66, 82, 66, 82, 66, 82, 65, 82, 66, 82, 67, 50, + 86, 114, 177, 178, 178, 178, 240, 144, 29, 12, 0, 12, + 70, 66, 51, 50, 82, 50, 82, 34, 97, 50, 82, 50, + 82, 50, 82, 51, 50, 87, 162, 162, 162, 161, 162, 240, + 32, 19, 9, 0, 9, 33, 34, 65, 19, 51, 98, 114, + 113, 129, 114, 114, 114, 0, 7, 80, 19, 11, 0, 11, + 54, 66, 65, 50, 147, 134, 117, 146, 146, 49, 66, 70, + 0, 8, 112, 22, 8, 240, 240, 66, 98, 98, 98, 70, + 50, 98, 98, 98, 97, 98, 98, 98, 33, 53, 0, 6, + 48, 27, 12, 0, 12, 33, 82, 65, 81, 66, 66, 66, + 66, 66, 66, 65, 82, 50, 81, 66, 66, 66, 51, 69, + 18, 0, 9, 64, 25, 11, 0, 11, 1, 98, 34, 66, + 50, 66, 50, 50, 66, 49, 82, 34, 82, 18, 113, 18, + 115, 130, 0, 9, 32, 38, 17, 0, 17, 2, 82, 66, + 49, 67, 50, 66, 51, 50, 66, 33, 18, 34, 82, 33, + 18, 34, 82, 17, 34, 18, 98, 17, 34, 18, 99, 52, + 115, 51, 130, 82, 0, 13, 80, 24, 13, 0, 13, 50, + 66, 82, 50, 114, 18, 132, 162, 178, 161, 18, 129, 50, + 97, 66, 67, 82, 0, 10, 16, 28, 14, 0, 14, 49, + 98, 82, 66, 98, 66, 98, 50, 114, 49, 130, 34, 145, + 33, 164, 163, 178, 194, 193, 194, 193, 163, 240, 160, 17, + 12, 0, 12, 40, 146, 146, 146, 146, 146, 146, 147, 131, + 152, 0, 9, 64, 8, 13, 0, 17, 123, 0, 19, 96, + 9, 24, 0, 33, 15, 7, 0, 36, 32, 13, 10, 240, + 114, 34, 50, 34, 66, 33, 66, 34, 0, 23, 12, 10, + 240, 240, 34, 34, 54, 50, 35, 0, 22, 112, +}; + +//***************************************************************************** +// +// The font definition for the 24 point Cmss italic font. +// +//***************************************************************************** +const tFont g_sFontCmss24i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 21, + + // + // The height of the font. + // + 24, + + // + // The baseline of the font. + // + 18, + + // + // The offset to each character in the font. + // + { + 0, 4, 25, 39, 88, 123, 177, 217, + 226, 253, 280, 300, 327, 338, 346, 354, + 381, 416, 438, 463, 489, 519, 544, 575, + 597, 631, 663, 676, 691, 711, 722, 743, + 765, 808, 843, 879, 904, 941, 964, 987, + 1014, 1052, 1074, 1098, 1137, 1159, 1219, 1266, + 1302, 1332, 1374, 1411, 1436, 1459, 1497, 1533, + 1594, 1630, 1661, 1684, 1711, 1727, 1754, 1767, + 1774, 1783, 1806, 1837, 1856, 1887, 1907, 1929, + 1959, 1991, 2010, 2035, 2065, 2087, 2123, 2150, + 2175, 2204, 2233, 2252, 2271, 2293, 2320, 2345, + 2383, 2407, 2435, 2452, 2460, 2469, 2482, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss24iData +}; diff --git a/grlib/fonts/fontcmss26.c b/grlib/fonts/fontcmss26.c new file mode 100644 index 0000000..a77b584 --- /dev/null +++ b/grlib/fonts/fontcmss26.c @@ -0,0 +1,331 @@ +//***************************************************************************** +// +// fontcmss26.c - Font definition for the 26pt Cmss font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 26 point +// Bold: no +// Italic: no +// Memory usage: 2896 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 26 point Cmss font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss26Data[2696] = +{ + 5, 10, 0, 33, 96, 20, 4, 130, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 162, 34, 240, + 240, 18, 8, 240, 18, 34, 34, 34, 49, 49, 34, 34, + 33, 49, 49, 49, 0, 19, 48, 52, 19, 0, 5, 97, + 65, 209, 65, 193, 81, 193, 81, 193, 65, 209, 65, 193, + 81, 193, 81, 193, 65, 127, 2, 129, 65, 193, 81, 193, + 65, 143, 2, 97, 81, 193, 81, 193, 65, 209, 65, 193, + 81, 193, 81, 193, 65, 209, 65, 209, 65, 0, 6, 40, + 12, 240, 18, 149, 104, 50, 18, 34, 34, 34, 98, 34, + 98, 34, 99, 18, 117, 134, 133, 114, 19, 98, 34, 98, + 34, 98, 34, 98, 34, 34, 34, 18, 57, 86, 130, 162, + 0, 8, 32, 62, 20, 35, 145, 101, 114, 98, 18, 113, + 98, 50, 81, 114, 50, 81, 114, 50, 65, 130, 50, 65, + 130, 50, 49, 146, 50, 49, 162, 18, 49, 180, 50, 240, + 49, 240, 49, 69, 161, 66, 18, 145, 66, 50, 129, 66, + 50, 113, 82, 50, 113, 82, 50, 97, 99, 19, 82, 117, + 97, 147, 0, 15, 64, 42, 18, 240, 240, 179, 229, 210, + 34, 178, 50, 178, 50, 178, 50, 178, 34, 197, 227, 113, + 99, 114, 85, 98, 66, 35, 66, 66, 67, 50, 66, 82, + 34, 82, 85, 99, 69, 120, 22, 84, 69, 0, 16, 11, + 4, 130, 34, 49, 34, 33, 49, 0, 9, 112, 29, 8, + 194, 82, 97, 98, 97, 98, 98, 98, 82, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 114, 98, 98, 113, 114, 113, + 114, 114, 32, 29, 8, 130, 114, 113, 114, 114, 98, 98, + 113, 114, 98, 98, 98, 98, 98, 98, 98, 98, 98, 97, + 98, 98, 97, 98, 97, 98, 82, 96, 24, 10, 210, 130, + 81, 34, 33, 34, 18, 18, 54, 98, 102, 50, 18, 18, + 33, 34, 33, 82, 130, 0, 19, 48, 39, 19, 0, 12, + 113, 240, 49, 240, 49, 240, 49, 240, 49, 240, 49, 240, + 49, 240, 49, 175, 2, 161, 240, 49, 240, 49, 240, 49, + 240, 49, 240, 49, 240, 49, 240, 49, 0, 13, 16, 11, + 4, 0, 9, 2, 34, 49, 33, 49, 240, 64, 9, 8, + 0, 13, 6, 38, 0, 12, 32, 8, 4, 0, 9, 2, + 34, 240, 240, 30, 11, 240, 65, 161, 145, 161, 161, 145, + 161, 161, 145, 161, 161, 145, 161, 161, 145, 161, 161, 145, + 161, 161, 161, 145, 161, 161, 145, 161, 160, 37, 12, 240, + 240, 148, 118, 82, 51, 66, 66, 50, 98, 34, 98, 34, + 98, 34, 98, 34, 98, 34, 98, 34, 98, 34, 98, 34, + 98, 50, 67, 51, 35, 86, 116, 0, 11, 16, 24, 10, + 240, 240, 65, 85, 82, 18, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 88, 0, 9, 27, 12, + 240, 240, 148, 119, 66, 51, 65, 83, 34, 98, 162, 162, + 162, 146, 146, 146, 146, 146, 146, 146, 154, 42, 0, 10, + 96, 28, 12, 240, 240, 148, 118, 82, 66, 65, 82, 162, + 162, 147, 101, 117, 178, 178, 162, 162, 33, 114, 35, 66, + 72, 100, 0, 11, 16, 31, 12, 240, 240, 179, 147, 132, + 129, 18, 114, 18, 114, 18, 98, 34, 98, 34, 82, 50, + 82, 50, 66, 66, 74, 42, 130, 162, 162, 162, 0, 11, + 29, 12, 240, 240, 120, 72, 66, 162, 162, 162, 162, 19, + 104, 67, 50, 66, 82, 162, 162, 162, 33, 114, 35, 66, + 71, 116, 0, 11, 16, 34, 12, 240, 240, 165, 102, 82, + 146, 162, 146, 36, 66, 22, 51, 66, 50, 98, 34, 98, + 34, 98, 34, 98, 34, 98, 50, 67, 50, 66, 86, 116, + 0, 11, 16, 24, 12, 240, 240, 106, 42, 162, 161, 161, + 162, 161, 162, 162, 146, 162, 162, 161, 162, 162, 162, 162, + 0, 11, 48, 35, 12, 240, 240, 148, 104, 66, 67, 34, + 98, 34, 98, 34, 98, 50, 66, 86, 102, 82, 66, 50, + 98, 34, 98, 34, 98, 34, 98, 50, 66, 72, 100, 0, + 11, 16, 35, 12, 240, 240, 148, 118, 83, 50, 51, 66, + 50, 98, 34, 98, 34, 98, 34, 98, 34, 98, 50, 67, + 54, 18, 68, 34, 146, 162, 65, 66, 86, 116, 0, 11, + 32, 11, 4, 240, 240, 98, 34, 240, 242, 34, 240, 240, + 14, 4, 240, 240, 98, 34, 240, 242, 34, 49, 33, 49, + 240, 64, 20, 4, 240, 210, 34, 162, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 160, 12, 18, + 0, 24, 111, 1, 0, 7, 15, 1, 0, 25, 24, 10, + 0, 9, 18, 130, 240, 210, 130, 130, 130, 114, 130, 115, + 99, 114, 130, 130, 131, 65, 55, 68, 240, 144, 25, 11, + 240, 149, 72, 50, 67, 146, 146, 146, 130, 131, 115, 130, + 130, 146, 146, 146, 240, 240, 18, 146, 0, 10, 48, 47, + 16, 240, 240, 133, 152, 115, 67, 83, 53, 67, 55, 50, + 50, 51, 34, 51, 51, 34, 50, 82, 34, 50, 82, 34, + 50, 82, 34, 50, 82, 34, 51, 66, 50, 50, 50, 67, + 53, 99, 51, 131, 113, 105, 149, 0, 14, 80, 38, 16, + 240, 240, 130, 212, 196, 193, 18, 178, 34, 162, 34, 161, + 50, 146, 66, 130, 66, 129, 82, 114, 98, 106, 106, 82, + 115, 66, 130, 65, 146, 50, 147, 34, 162, 0, 14, 32, + 38, 15, 240, 249, 98, 99, 66, 115, 50, 130, 50, 130, + 50, 130, 50, 115, 50, 99, 73, 106, 82, 100, 50, 130, + 50, 146, 34, 146, 34, 146, 34, 130, 50, 114, 74, 0, + 13, 96, 27, 14, 240, 240, 54, 105, 68, 66, 66, 178, + 194, 178, 194, 194, 194, 194, 194, 210, 194, 210, 196, 81, + 89, 118, 0, 12, 80, 41, 16, 240, 240, 41, 114, 99, + 82, 130, 66, 130, 66, 146, 50, 146, 50, 162, 34, 162, + 34, 162, 34, 162, 34, 162, 34, 162, 34, 161, 50, 146, + 50, 145, 66, 130, 66, 99, 89, 0, 14, 112, 24, 13, + 240, 187, 43, 34, 178, 178, 178, 178, 178, 186, 58, 50, + 178, 178, 178, 178, 178, 187, 43, 0, 11, 80, 24, 12, + 240, 154, 42, 34, 162, 162, 162, 162, 162, 169, 57, 50, + 162, 162, 162, 162, 162, 162, 162, 0, 11, 96, 32, 14, + 240, 240, 53, 121, 67, 82, 51, 178, 194, 178, 194, 194, + 194, 194, 85, 34, 85, 50, 114, 50, 114, 66, 98, 67, + 82, 89, 117, 0, 12, 96, 40, 14, 240, 210, 130, 34, + 130, 34, 130, 34, 130, 34, 130, 34, 130, 34, 130, 34, + 130, 44, 44, 34, 130, 34, 130, 34, 130, 34, 130, 34, + 130, 34, 130, 34, 130, 34, 130, 0, 12, 64, 22, 4, + 130, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 240, 240, 25, 10, 240, 178, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 33, 67, 39, 69, 0, 9, 32, 42, 15, 240, + 242, 130, 50, 115, 50, 99, 66, 83, 82, 67, 98, 51, + 114, 50, 130, 35, 130, 20, 132, 34, 115, 51, 99, 66, + 98, 83, 82, 98, 82, 114, 66, 115, 50, 130, 50, 131, + 0, 13, 48, 24, 12, 240, 146, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 170, 42, + 0, 10, 96, 69, 19, 240, 240, 131, 179, 36, 148, 36, + 148, 36, 148, 34, 18, 114, 18, 34, 18, 114, 18, 34, + 18, 114, 18, 34, 34, 82, 34, 34, 34, 82, 34, 34, + 34, 82, 34, 34, 50, 50, 50, 34, 50, 50, 50, 34, + 51, 33, 66, 34, 66, 18, 66, 34, 66, 18, 66, 34, + 81, 17, 82, 34, 83, 82, 34, 83, 82, 0, 16, 112, + 54, 15, 240, 244, 114, 36, 114, 36, 114, 34, 18, 98, + 34, 18, 98, 34, 34, 82, 34, 34, 82, 34, 50, 66, + 34, 50, 66, 34, 66, 50, 34, 66, 50, 34, 82, 34, + 34, 82, 34, 34, 98, 18, 34, 98, 18, 34, 116, 34, + 116, 34, 116, 0, 13, 48, 39, 17, 240, 240, 149, 169, + 115, 83, 98, 114, 82, 146, 66, 146, 50, 178, 34, 178, + 34, 178, 34, 178, 34, 178, 34, 178, 50, 146, 66, 146, + 82, 114, 100, 67, 121, 165, 0, 15, 96, 32, 14, 240, + 217, 82, 98, 66, 114, 50, 130, 34, 130, 34, 130, 34, + 130, 34, 114, 50, 99, 58, 73, 82, 194, 194, 194, 194, + 194, 194, 0, 13, 96, 45, 17, 240, 240, 149, 169, 115, + 83, 98, 114, 82, 146, 66, 146, 50, 178, 34, 178, 34, + 178, 34, 178, 34, 178, 34, 178, 50, 146, 66, 66, 50, + 82, 66, 18, 99, 68, 121, 167, 243, 242, 240, 18, 0, + 8, 112, 39, 14, 240, 217, 82, 98, 66, 114, 50, 130, + 34, 130, 34, 130, 34, 115, 34, 99, 58, 72, 98, 67, + 82, 82, 82, 83, 66, 98, 66, 99, 50, 114, 50, 130, + 34, 130, 0, 12, 64, 26, 13, 240, 229, 120, 67, 66, + 50, 178, 178, 179, 180, 166, 150, 178, 194, 178, 178, 33, + 130, 34, 98, 72, 117, 0, 12, 24, 16, 240, 240, 46, + 46, 130, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 226, 0, 15, 40, 14, 240, 210, 130, + 34, 130, 34, 130, 34, 130, 34, 130, 34, 130, 34, 130, + 34, 130, 34, 130, 34, 130, 34, 130, 34, 130, 34, 130, + 34, 130, 49, 129, 66, 98, 82, 66, 132, 0, 13, 39, + 16, 240, 240, 34, 162, 34, 162, 34, 162, 50, 130, 66, + 130, 67, 114, 82, 98, 98, 98, 99, 82, 114, 66, 130, + 66, 131, 49, 162, 34, 162, 34, 178, 17, 196, 196, 210, + 0, 15, 69, 24, 0, 6, 3, 115, 114, 50, 115, 114, + 50, 115, 114, 50, 100, 98, 82, 82, 18, 82, 82, 82, + 18, 82, 82, 81, 34, 81, 99, 50, 34, 66, 114, 50, + 50, 50, 114, 50, 50, 50, 114, 49, 66, 49, 131, 18, + 66, 34, 146, 18, 82, 18, 146, 17, 98, 18, 146, 17, + 98, 17, 164, 100, 179, 115, 178, 131, 0, 21, 96, 38, + 16, 240, 240, 35, 130, 66, 115, 67, 98, 99, 66, 130, + 51, 146, 34, 165, 195, 226, 212, 181, 178, 34, 146, 51, + 115, 66, 114, 98, 82, 115, 51, 131, 34, 162, 0, 14, + 32, 40, 18, 240, 240, 99, 163, 51, 146, 82, 130, 99, + 99, 114, 98, 146, 66, 163, 50, 178, 34, 212, 228, 242, + 240, 18, 240, 18, 240, 18, 240, 18, 240, 18, 240, 18, + 240, 18, 0, 16, 112, 24, 14, 240, 235, 59, 179, 178, + 178, 179, 178, 178, 179, 178, 179, 178, 178, 179, 178, 178, + 188, 44, 0, 12, 64, 29, 6, 4, 36, 34, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 68, 36, 128, 18, 9, + 240, 65, 65, 49, 65, 34, 50, 33, 65, 50, 50, 34, + 50, 0, 21, 80, 29, 6, 4, 36, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 36, 36, 128, 14, 10, 240, + 130, 116, 97, 34, 66, 49, 50, 66, 0, 25, 32, 7, + 4, 194, 34, 0, 11, 32, 11, 4, 145, 49, 34, 33, + 50, 34, 0, 9, 96, 23, 11, 0, 12, 85, 87, 65, + 67, 146, 86, 56, 35, 66, 34, 82, 35, 51, 41, 52, + 34, 0, 9, 112, 33, 12, 240, 146, 162, 162, 162, 162, + 162, 162, 162, 36, 73, 51, 51, 50, 83, 34, 98, 34, + 98, 34, 98, 34, 98, 35, 51, 57, 50, 20, 0, 11, + 16, 19, 11, 0, 12, 101, 87, 51, 65, 35, 130, 146, + 146, 147, 147, 65, 71, 85, 0, 10, 33, 11, 240, 226, + 146, 146, 146, 146, 146, 146, 68, 18, 56, 50, 51, 34, + 82, 34, 82, 34, 82, 34, 82, 34, 82, 50, 51, 56, + 67, 34, 0, 9, 112, 20, 11, 0, 12, 100, 87, 66, + 66, 41, 41, 34, 146, 147, 147, 65, 71, 84, 0, 10, + 16, 24, 10, 240, 148, 85, 67, 114, 130, 130, 130, 103, + 82, 130, 130, 130, 130, 130, 130, 130, 130, 130, 0, 9, + 64, 31, 12, 0, 13, 119, 66, 18, 98, 50, 82, 50, + 82, 50, 98, 19, 86, 101, 114, 167, 88, 66, 67, 34, + 98, 34, 98, 50, 66, 86, 240, 208, 33, 10, 240, 82, + 130, 130, 130, 130, 130, 130, 130, 20, 56, 35, 50, 34, + 66, 34, 66, 34, 66, 34, 66, 34, 66, 34, 66, 34, + 66, 34, 66, 0, 9, 18, 4, 194, 34, 240, 50, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 240, 240, 25, + 8, 240, 210, 98, 240, 240, 130, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 37, 68, 240, 64, + 33, 11, 240, 114, 146, 146, 146, 146, 146, 146, 146, 66, + 50, 51, 50, 35, 66, 19, 85, 102, 83, 18, 82, 50, + 66, 66, 50, 66, 50, 82, 0, 9, 112, 22, 4, 130, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 240, 240, 39, 17, 0, 19, 18, + 20, 52, 55, 23, 35, 36, 51, 34, 66, 82, 34, 66, + 82, 34, 66, 82, 34, 66, 82, 34, 66, 82, 34, 66, + 82, 34, 66, 82, 34, 66, 82, 0, 15, 16, 27, 10, + 0, 11, 34, 20, 56, 35, 50, 34, 66, 34, 66, 34, + 66, 34, 66, 34, 66, 34, 66, 34, 66, 34, 66, 0, + 9, 25, 12, 0, 13, 116, 118, 82, 66, 50, 98, 34, + 98, 34, 98, 34, 98, 35, 82, 50, 66, 86, 116, 0, + 11, 16, 32, 12, 0, 13, 66, 36, 73, 51, 51, 50, + 83, 34, 98, 34, 98, 34, 98, 34, 83, 35, 51, 57, + 50, 20, 82, 162, 162, 162, 162, 240, 240, 64, 31, 11, + 0, 12, 84, 18, 56, 50, 51, 35, 66, 34, 82, 34, + 82, 34, 82, 35, 66, 50, 51, 56, 68, 18, 146, 146, + 146, 146, 146, 240, 144, 19, 8, 0, 9, 2, 34, 38, + 35, 83, 82, 98, 98, 98, 98, 98, 98, 0, 7, 96, + 20, 10, 0, 11, 69, 71, 34, 81, 34, 132, 118, 131, + 130, 33, 82, 39, 84, 0, 9, 32, 21, 10, 0, 7, + 98, 130, 130, 103, 82, 130, 130, 130, 130, 130, 130, 130, + 134, 83, 0, 9, 32, 28, 10, 0, 11, 34, 66, 34, + 66, 34, 66, 34, 66, 34, 66, 34, 66, 34, 66, 34, + 66, 34, 66, 34, 51, 52, 18, 0, 9, 27, 11, 0, + 12, 50, 82, 34, 82, 34, 82, 50, 50, 66, 50, 66, + 50, 82, 18, 98, 18, 98, 18, 115, 131, 0, 10, 32, + 43, 18, 0, 20, 34, 82, 82, 50, 66, 82, 50, 67, + 50, 66, 52, 50, 82, 33, 33, 50, 82, 33, 34, 18, + 98, 18, 34, 18, 113, 18, 34, 18, 115, 65, 17, 131, + 65, 17, 131, 67, 0, 16, 48, 26, 13, 0, 14, 98, + 82, 67, 50, 98, 35, 114, 18, 147, 162, 179, 146, 18, + 114, 50, 82, 82, 51, 83, 0, 11, 80, 30, 11, 0, + 12, 50, 82, 34, 82, 34, 82, 50, 50, 66, 50, 82, + 34, 82, 18, 113, 18, 115, 131, 146, 145, 146, 146, 100, + 115, 240, 240, 18, 11, 0, 12, 57, 41, 130, 130, 130, + 130, 146, 130, 130, 137, 41, 0, 9, 112, 8, 14, 0, + 21, 12, 44, 0, 23, 11, 26, 0, 39, 15, 9, 47, + 9, 0, 42, 64, 16, 9, 240, 66, 34, 50, 34, 49, + 49, 50, 34, 50, 34, 0, 22, 112, 12, 10, 240, 240, + 19, 34, 40, 34, 35, 0, 26, 80, +}; + +//***************************************************************************** +// +// The font definition for the 26 point Cmss font. +// +//***************************************************************************** +const tFont g_sFontCmss26 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 23, + + // + // The height of the font. + // + 27, + + // + // The baseline of the font. + // + 20, + + // + // The offset to each character in the font. + // + { + 0, 5, 25, 43, 95, 135, 197, 239, + 250, 279, 308, 332, 371, 382, 391, 399, + 429, 466, 490, 517, 545, 576, 605, 639, + 663, 698, 733, 744, 758, 778, 790, 814, + 839, 886, 924, 962, 989, 1030, 1054, 1078, + 1110, 1150, 1172, 1197, 1239, 1263, 1332, 1386, + 1425, 1457, 1502, 1541, 1567, 1591, 1631, 1670, + 1739, 1777, 1817, 1841, 1870, 1888, 1917, 1931, + 1938, 1949, 1972, 2005, 2024, 2057, 2077, 2101, + 2132, 2165, 2183, 2208, 2241, 2263, 2302, 2329, + 2354, 2386, 2417, 2436, 2456, 2477, 2505, 2532, + 2575, 2601, 2631, 2649, 2657, 2668, 2684, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss26Data +}; diff --git a/grlib/fonts/fontcmss26b.c b/grlib/fonts/fontcmss26b.c new file mode 100644 index 0000000..18ee8fb --- /dev/null +++ b/grlib/fonts/fontcmss26b.c @@ -0,0 +1,338 @@ +//***************************************************************************** +// +// fontcmss26b.c - Font definition for the 26pt Cmss bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 26 point +// Bold: yes +// Italic: no +// Memory usage: 2976 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 26 point Cmss bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss26bData[2773] = +{ + 5, 10, 0, 33, 96, 21, 6, 196, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 228, 36, 36, 240, + 240, 224, 17, 12, 240, 148, 36, 36, 36, 36, 36, 51, + 51, 35, 51, 50, 66, 0, 29, 53, 23, 0, 7, 1, + 82, 227, 51, 226, 66, 242, 66, 227, 51, 226, 66, 242, + 66, 127, 6, 47, 6, 146, 66, 227, 66, 226, 67, 226, + 66, 159, 6, 47, 6, 114, 66, 242, 66, 227, 66, 226, + 67, 226, 66, 242, 66, 227, 51, 226, 81, 0, 7, 32, + 34, 14, 66, 194, 167, 106, 75, 38, 51, 38, 134, 134, + 136, 121, 105, 120, 98, 21, 98, 36, 33, 50, 36, 34, + 34, 21, 43, 59, 87, 146, 194, 0, 9, 96, 60, 26, + 53, 162, 120, 131, 115, 36, 114, 116, 36, 98, 132, 36, + 83, 132, 36, 67, 148, 36, 66, 164, 36, 50, 195, 35, + 51, 200, 50, 229, 66, 240, 130, 70, 211, 56, 194, 52, + 36, 162, 68, 36, 146, 84, 36, 131, 84, 36, 130, 100, + 36, 114, 116, 36, 99, 136, 114, 166, 0, 20, 44, 22, + 0, 6, 36, 240, 24, 227, 36, 196, 36, 196, 36, 196, + 36, 196, 20, 230, 99, 117, 114, 132, 115, 103, 83, 99, + 36, 52, 84, 52, 20, 100, 71, 117, 54, 159, 4, 79, + 3, 86, 70, 0, 19, 80, 11, 6, 196, 36, 36, 51, + 35, 50, 0, 14, 96, 30, 10, 83, 99, 114, 115, 99, + 115, 100, 100, 99, 100, 100, 100, 100, 100, 100, 100, 100, + 100, 115, 116, 100, 115, 115, 131, 130, 131, 131, 32, 30, + 10, 3, 131, 131, 115, 131, 115, 116, 100, 115, 116, 100, + 100, 100, 100, 100, 100, 100, 100, 99, 115, 100, 99, 115, + 99, 115, 99, 99, 112, 28, 13, 67, 163, 113, 35, 99, + 19, 19, 36, 17, 20, 57, 115, 121, 52, 17, 20, 35, + 19, 19, 99, 33, 115, 163, 0, 23, 64, 43, 20, 0, + 11, 2, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 175, 3, 47, 3, 162, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 0, 11, 32, 12, 6, 0, 12, 100, 36, 36, 51, + 35, 50, 240, 208, 9, 10, 0, 16, 40, 40, 0, 15, + 32, 10, 6, 0, 12, 100, 36, 36, 240, 240, 224, 30, + 13, 146, 178, 163, 162, 178, 163, 162, 163, 162, 178, 163, + 162, 178, 163, 162, 178, 163, 162, 178, 163, 162, 163, 162, + 178, 163, 162, 178, 176, 39, 14, 240, 240, 22, 120, 84, + 36, 67, 67, 52, 68, 36, 68, 36, 68, 36, 68, 36, + 68, 36, 68, 36, 68, 36, 68, 36, 68, 36, 68, 51, + 67, 68, 36, 88, 118, 0, 12, 112, 25, 13, 240, 240, + 19, 103, 88, 148, 148, 148, 148, 148, 148, 148, 148, 148, + 148, 148, 148, 148, 106, 58, 0, 11, 80, 28, 14, 240, + 240, 21, 136, 90, 51, 69, 35, 84, 49, 100, 164, 164, + 148, 163, 163, 163, 163, 162, 178, 187, 44, 44, 0, 12, + 64, 29, 14, 240, 240, 22, 105, 67, 68, 65, 84, 164, + 164, 148, 133, 150, 180, 180, 164, 164, 164, 33, 116, 35, + 68, 59, 87, 0, 12, 112, 33, 15, 240, 240, 101, 150, + 150, 135, 130, 20, 115, 20, 114, 36, 99, 36, 98, 52, + 83, 52, 82, 68, 67, 68, 77, 45, 148, 180, 180, 180, + 0, 13, 80, 28, 14, 240, 234, 74, 74, 68, 164, 164, + 168, 106, 68, 36, 67, 68, 164, 164, 164, 164, 34, 100, + 35, 68, 73, 118, 0, 12, 112, 36, 14, 240, 240, 38, + 119, 99, 163, 179, 164, 36, 68, 22, 53, 36, 52, 68, + 36, 68, 36, 68, 36, 68, 36, 68, 36, 68, 51, 68, + 52, 36, 88, 133, 0, 12, 112, 25, 15, 240, 240, 27, + 61, 59, 195, 179, 179, 180, 179, 180, 179, 180, 180, 179, + 180, 180, 180, 180, 180, 0, 14, 16, 37, 14, 240, 240, + 22, 106, 52, 68, 36, 68, 36, 68, 36, 68, 51, 67, + 88, 104, 84, 36, 52, 68, 36, 68, 36, 68, 36, 68, + 36, 68, 52, 36, 74, 102, 0, 12, 112, 34, 14, 240, + 240, 22, 120, 84, 36, 52, 67, 52, 68, 36, 68, 36, + 68, 36, 68, 36, 68, 52, 37, 59, 84, 20, 164, 163, + 164, 81, 67, 88, 118, 0, 13, 15, 6, 0, 6, 4, + 36, 36, 240, 240, 132, 36, 36, 240, 240, 224, 17, 6, + 0, 6, 4, 36, 36, 240, 240, 132, 36, 36, 51, 35, + 50, 240, 208, 21, 6, 240, 240, 196, 36, 36, 228, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 224, + 17, 21, 0, 23, 95, 4, 47, 4, 0, 10, 111, 4, + 47, 4, 0, 26, 64, 26, 12, 0, 10, 115, 147, 147, + 240, 240, 51, 147, 147, 147, 131, 147, 131, 131, 147, 147, + 81, 51, 67, 57, 70, 240, 208, 25, 12, 240, 182, 73, + 51, 52, 132, 132, 132, 116, 116, 132, 116, 132, 132, 132, + 240, 240, 36, 132, 132, 0, 11, 16, 41, 18, 240, 240, + 198, 155, 101, 68, 68, 40, 68, 26, 51, 20, 37, 40, + 68, 40, 68, 40, 68, 40, 68, 40, 68, 40, 68, 36, + 20, 36, 68, 25, 69, 22, 117, 99, 92, 135, 0, 16, + 64, 37, 19, 240, 240, 229, 229, 215, 199, 195, 20, 164, + 20, 163, 36, 148, 52, 132, 52, 131, 68, 116, 84, 100, + 84, 109, 95, 68, 116, 67, 132, 52, 148, 35, 164, 0, + 16, 112, 37, 18, 240, 240, 108, 110, 68, 101, 52, 116, + 52, 116, 52, 116, 52, 100, 76, 109, 84, 101, 52, 116, + 52, 132, 36, 132, 36, 132, 36, 132, 36, 116, 63, 61, + 0, 16, 48, 27, 17, 240, 240, 168, 108, 77, 54, 83, + 52, 212, 196, 212, 212, 212, 212, 212, 213, 212, 214, 98, + 77, 92, 135, 0, 15, 48, 39, 19, 240, 240, 140, 126, + 84, 101, 68, 132, 52, 132, 52, 148, 36, 148, 36, 148, + 36, 148, 36, 148, 36, 148, 36, 148, 36, 148, 36, 132, + 52, 132, 52, 101, 78, 92, 0, 17, 64, 24, 15, 240, + 253, 45, 45, 36, 180, 180, 180, 180, 188, 60, 52, 180, + 180, 180, 180, 189, 45, 45, 0, 13, 48, 24, 14, 240, + 220, 44, 44, 36, 164, 164, 164, 164, 171, 59, 52, 164, + 164, 164, 164, 164, 164, 164, 0, 13, 64, 32, 17, 240, + 240, 167, 124, 77, 54, 83, 52, 129, 68, 196, 212, 212, + 212, 212, 86, 36, 86, 37, 115, 52, 115, 54, 83, 77, + 92, 119, 0, 15, 64, 42, 18, 240, 240, 100, 132, 36, + 132, 36, 132, 36, 132, 36, 132, 36, 132, 36, 132, 36, + 132, 47, 1, 47, 1, 36, 132, 36, 132, 36, 132, 36, + 132, 36, 132, 36, 132, 36, 132, 36, 132, 0, 16, 23, + 6, 196, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 240, 240, 224, 25, 12, + 240, 244, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 34, 68, 42, 41, 85, 0, 11, 16, 40, + 18, 240, 240, 100, 132, 36, 117, 36, 101, 52, 84, 84, + 68, 100, 52, 116, 36, 132, 20, 154, 139, 118, 20, 117, + 52, 100, 84, 84, 100, 68, 100, 68, 116, 52, 132, 36, + 147, 0, 16, 24, 14, 240, 212, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 172, 44, 44, + 0, 12, 64, 63, 24, 0, 6, 6, 166, 38, 166, 38, + 151, 39, 135, 39, 135, 36, 19, 99, 20, 36, 19, 99, + 20, 36, 34, 98, 36, 36, 35, 67, 36, 36, 35, 67, + 36, 36, 51, 35, 52, 36, 51, 35, 52, 36, 51, 34, + 68, 36, 70, 68, 36, 70, 68, 36, 84, 84, 36, 84, + 84, 36, 228, 0, 21, 32, 53, 19, 240, 240, 134, 116, + 38, 116, 39, 100, 39, 100, 36, 19, 84, 36, 19, 84, + 36, 35, 68, 36, 35, 68, 36, 51, 52, 36, 51, 52, + 36, 67, 36, 36, 67, 36, 36, 83, 20, 36, 83, 20, + 36, 103, 36, 103, 36, 118, 36, 118, 0, 16, 112, 39, + 19, 240, 240, 215, 171, 116, 84, 84, 116, 68, 116, 52, + 148, 36, 148, 36, 148, 36, 148, 36, 148, 36, 148, 36, + 148, 36, 148, 52, 116, 68, 116, 84, 84, 123, 167, 0, + 17, 64, 32, 17, 240, 240, 76, 93, 68, 100, 52, 116, + 36, 116, 36, 116, 36, 116, 36, 116, 36, 100, 61, 75, + 100, 212, 212, 212, 212, 212, 212, 0, 16, 64, 43, 19, + 240, 240, 215, 171, 116, 84, 84, 116, 68, 116, 52, 148, + 36, 148, 36, 148, 36, 148, 36, 148, 36, 148, 36, 148, + 36, 148, 52, 36, 20, 68, 56, 84, 54, 123, 169, 245, + 244, 245, 0, 9, 112, 39, 17, 240, 240, 76, 94, 52, + 100, 52, 116, 36, 116, 36, 116, 36, 116, 36, 100, 61, + 75, 100, 52, 100, 68, 84, 68, 84, 84, 68, 99, 68, + 100, 52, 116, 36, 116, 0, 15, 16, 29, 15, 240, 240, + 55, 122, 75, 53, 66, 68, 97, 68, 181, 184, 122, 121, + 151, 165, 180, 34, 116, 36, 69, 44, 74, 119, 0, 13, + 96, 42, 20, 240, 240, 191, 1, 63, 3, 63, 1, 164, + 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, + 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, + 240, 20, 240, 20, 0, 18, 80, 41, 18, 240, 240, 100, + 132, 36, 132, 36, 132, 36, 132, 36, 132, 36, 132, 36, + 132, 36, 132, 36, 132, 36, 132, 36, 132, 36, 132, 36, + 132, 36, 132, 52, 100, 69, 69, 92, 136, 0, 16, 64, + 39, 19, 240, 240, 132, 163, 36, 148, 36, 148, 52, 131, + 68, 116, 68, 116, 84, 99, 100, 84, 115, 83, 132, 67, + 132, 52, 148, 35, 164, 35, 164, 20, 183, 199, 199, 213, + 0, 17, 80, 67, 27, 0, 6, 99, 117, 115, 35, 117, + 115, 36, 101, 115, 36, 102, 99, 51, 83, 19, 83, 67, + 83, 19, 83, 68, 67, 19, 83, 68, 51, 36, 52, 83, + 51, 51, 51, 99, 51, 51, 51, 100, 35, 52, 35, 100, + 19, 83, 19, 131, 19, 83, 19, 131, 19, 83, 19, 134, + 103, 149, 117, 165, 117, 165, 117, 0, 24, 48, 37, 19, + 240, 240, 133, 116, 69, 84, 100, 69, 116, 52, 133, 20, + 168, 199, 213, 228, 245, 215, 180, 20, 148, 36, 148, 52, + 116, 84, 84, 101, 68, 116, 52, 148, 0, 16, 112, 39, + 20, 240, 240, 164, 164, 37, 133, 53, 116, 85, 84, 116, + 68, 133, 52, 149, 20, 184, 200, 214, 244, 240, 20, 240, + 20, 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, 0, + 18, 80, 25, 16, 240, 240, 46, 46, 46, 180, 180, 196, + 180, 180, 180, 195, 196, 180, 180, 195, 196, 190, 46, 46, + 0, 14, 32, 29, 9, 7, 39, 36, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 87, 39, 176, 18, 12, 240, 178, + 66, 51, 51, 35, 51, 52, 36, 36, 36, 36, 36, 0, + 28, 96, 29, 9, 7, 39, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 39, 54, 176, 12, 10, 240, 116, 101, + 66, 35, 34, 66, 0, 26, 64, 8, 6, 196, 36, 36, + 0, 16, 96, 11, 6, 226, 51, 35, 52, 36, 36, 0, + 14, 64, 25, 14, 0, 14, 55, 90, 67, 68, 164, 164, + 89, 52, 52, 36, 68, 36, 68, 37, 37, 59, 68, 36, + 0, 12, 64, 34, 14, 240, 212, 164, 164, 164, 164, 164, + 164, 21, 75, 52, 52, 52, 68, 36, 68, 36, 68, 36, + 68, 36, 68, 36, 68, 36, 52, 59, 52, 20, 0, 12, + 112, 21, 13, 0, 13, 70, 89, 52, 66, 36, 148, 148, + 148, 148, 148, 164, 66, 73, 87, 0, 11, 96, 35, 15, + 240, 240, 148, 180, 180, 180, 180, 180, 85, 20, 75, 52, + 68, 36, 84, 36, 84, 36, 84, 36, 84, 36, 84, 36, + 84, 52, 53, 60, 85, 20, 0, 13, 48, 24, 14, 0, + 14, 69, 121, 68, 52, 36, 83, 36, 83, 44, 36, 164, + 164, 113, 52, 67, 74, 102, 0, 12, 96, 25, 11, 240, + 166, 71, 52, 49, 52, 116, 116, 103, 71, 84, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 0, 10, 48, 33, 15, + 0, 15, 39, 19, 60, 36, 51, 84, 52, 68, 52, 68, + 51, 105, 97, 22, 114, 218, 91, 76, 35, 100, 35, 115, + 36, 84, 59, 103, 240, 240, 80, 36, 13, 240, 180, 148, + 148, 148, 148, 148, 148, 21, 52, 22, 37, 36, 36, 52, + 36, 52, 36, 52, 36, 52, 36, 52, 36, 52, 36, 52, + 36, 52, 36, 52, 0, 11, 80, 21, 6, 196, 36, 36, + 36, 228, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 240, 240, 224, 27, 10, 240, 148, 100, 100, 100, 240, + 180, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, + 100, 100, 100, 39, 69, 240, 144, 33, 14, 240, 212, 164, + 164, 164, 164, 164, 164, 68, 36, 52, 52, 36, 68, 20, + 88, 104, 105, 85, 19, 84, 36, 68, 52, 52, 68, 36, + 83, 0, 12, 64, 23, 6, 196, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 240, 240, 224, 43, 21, 0, 21, 4, 20, 69, 52, 22, + 23, 37, 37, 52, 36, 52, 68, 36, 52, 68, 36, 52, + 68, 36, 52, 68, 36, 52, 68, 36, 52, 68, 36, 52, + 68, 36, 52, 68, 36, 52, 68, 0, 18, 80, 31, 13, + 0, 13, 4, 21, 52, 22, 37, 36, 36, 52, 36, 52, + 36, 52, 36, 52, 36, 52, 36, 52, 36, 52, 36, 52, + 36, 52, 0, 11, 80, 27, 15, 0, 15, 55, 121, 84, + 52, 52, 84, 36, 84, 36, 84, 36, 84, 36, 84, 36, + 84, 52, 52, 89, 119, 0, 13, 96, 34, 14, 0, 14, + 4, 21, 75, 52, 52, 52, 68, 36, 68, 36, 68, 36, + 68, 36, 68, 36, 68, 36, 52, 59, 52, 20, 84, 164, + 164, 164, 164, 240, 240, 128, 33, 14, 0, 14, 52, 20, + 59, 52, 37, 36, 68, 36, 68, 36, 68, 36, 68, 36, + 68, 36, 68, 52, 37, 59, 84, 20, 164, 164, 164, 164, + 164, 240, 240, 21, 10, 0, 10, 4, 34, 36, 19, 38, + 69, 84, 100, 100, 100, 100, 100, 100, 100, 0, 9, 64, + 21, 12, 0, 12, 39, 73, 35, 67, 35, 149, 135, 103, + 148, 33, 99, 35, 67, 41, 86, 0, 11, 23, 12, 0, + 6, 36, 132, 132, 132, 105, 57, 84, 132, 132, 132, 132, + 132, 132, 132, 49, 72, 85, 0, 11, 30, 13, 0, 13, + 4, 52, 36, 52, 36, 52, 36, 52, 36, 52, 36, 52, + 36, 52, 36, 52, 36, 52, 36, 37, 58, 68, 20, 0, + 11, 80, 26, 14, 0, 14, 3, 99, 36, 83, 51, 67, + 67, 67, 68, 51, 83, 35, 99, 35, 100, 19, 118, 134, + 134, 148, 0, 13, 43, 20, 0, 20, 3, 82, 83, 35, + 68, 67, 36, 52, 52, 51, 52, 51, 67, 49, 18, 51, + 67, 34, 19, 35, 83, 18, 19, 19, 99, 18, 19, 19, + 101, 54, 101, 54, 116, 53, 131, 84, 0, 18, 16, 26, + 14, 0, 14, 4, 68, 51, 67, 83, 35, 104, 118, 148, + 164, 150, 115, 35, 84, 36, 67, 67, 51, 99, 0, 12, + 64, 32, 13, 0, 13, 3, 83, 35, 83, 51, 51, 67, + 51, 83, 35, 83, 34, 99, 19, 118, 117, 148, 148, 162, + 178, 163, 97, 50, 118, 116, 240, 240, 80, 19, 13, 0, + 13, 11, 43, 132, 147, 148, 132, 132, 132, 147, 147, 155, + 43, 0, 11, 80, 9, 16, 0, 22, 14, 46, 0, 28, + 32, 11, 31, 0, 42, 95, 14, 47, 14, 0, 54, 64, + 14, 11, 240, 131, 20, 35, 35, 51, 35, 50, 50, 0, + 29, 48, 11, 11, 240, 132, 34, 41, 34, 36, 0, 30, + 80, +}; + +//***************************************************************************** +// +// The font definition for the 26 point Cmss bold font. +// +//***************************************************************************** +const tFont g_sFontCmss26b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 28, + + // + // The height of the font. + // + 27, + + // + // The baseline of the font. + // + 20, + + // + // The offset to each character in the font. + // + { + 0, 5, 26, 43, 96, 130, 190, 234, + 245, 275, 305, 333, 376, 388, 397, 407, + 437, 476, 501, 529, 558, 591, 619, 655, + 680, 717, 751, 766, 783, 804, 821, 847, + 872, 913, 950, 987, 1014, 1053, 1077, 1101, + 1133, 1175, 1198, 1223, 1263, 1287, 1350, 1403, + 1442, 1474, 1517, 1556, 1585, 1627, 1668, 1707, + 1774, 1811, 1850, 1875, 1904, 1922, 1951, 1963, + 1971, 1982, 2007, 2041, 2062, 2097, 2121, 2146, + 2179, 2215, 2236, 2263, 2296, 2319, 2362, 2393, + 2420, 2454, 2487, 2508, 2529, 2552, 2582, 2608, + 2651, 2677, 2709, 2728, 2737, 2748, 2762, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss26bData +}; diff --git a/grlib/fonts/fontcmss26i.c b/grlib/fonts/fontcmss26i.c new file mode 100644 index 0000000..6738b02 --- /dev/null +++ b/grlib/fonts/fontcmss26i.c @@ -0,0 +1,336 @@ +//***************************************************************************** +// +// fontcmss26i.c - Font definition for the 26pt Cmss italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 26 point +// Bold: no +// Italic: yes +// Memory usage: 2952 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 26 point Cmss italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss26iData[2751] = +{ + 5, 10, 0, 33, 96, 23, 8, 240, 82, 98, 82, 98, + 98, 98, 98, 82, 98, 98, 98, 97, 98, 98, 240, 98, + 98, 0, 7, 96, 18, 10, 240, 98, 50, 50, 50, 50, + 50, 49, 65, 50, 50, 49, 65, 0, 24, 32, 53, 20, + 0, 6, 49, 65, 209, 81, 209, 65, 209, 81, 209, 65, + 225, 65, 209, 81, 209, 65, 209, 81, 127, 2, 129, 81, + 209, 65, 209, 81, 143, 2, 113, 81, 209, 65, 209, 81, + 209, 65, 225, 65, 209, 81, 209, 65, 209, 81, 209, 65, + 0, 6, 80, 40, 14, 240, 98, 180, 136, 83, 17, 34, + 82, 18, 130, 34, 130, 33, 146, 33, 149, 166, 165, 145, + 19, 145, 34, 130, 34, 130, 34, 129, 34, 82, 33, 19, + 88, 118, 162, 194, 0, 9, 112, 62, 18, 51, 145, 69, + 113, 66, 34, 113, 66, 34, 97, 82, 34, 81, 82, 50, + 65, 98, 50, 65, 98, 49, 65, 114, 34, 49, 130, 33, + 49, 164, 34, 240, 17, 81, 161, 68, 129, 66, 34, 98, + 66, 34, 97, 66, 50, 81, 82, 50, 65, 98, 34, 66, + 98, 34, 65, 117, 65, 147, 0, 14, 16, 43, 18, 240, + 240, 212, 214, 178, 50, 178, 50, 162, 66, 162, 50, 178, + 34, 197, 211, 129, 98, 130, 69, 98, 66, 34, 82, 81, + 51, 50, 82, 67, 19, 82, 69, 114, 69, 135, 22, 69, + 69, 0, 16, 16, 11, 5, 178, 50, 50, 49, 50, 49, + 0, 12, 48, 30, 11, 240, 50, 130, 130, 145, 146, 130, + 146, 130, 146, 146, 130, 146, 146, 146, 130, 146, 146, 146, + 146, 146, 146, 146, 161, 162, 146, 162, 112, 30, 11, 240, + 18, 162, 146, 161, 162, 146, 146, 146, 146, 146, 146, 146, + 146, 130, 146, 146, 145, 146, 146, 130, 146, 130, 145, 146, + 130, 130, 144, 24, 12, 240, 34, 162, 113, 33, 49, 51, + 17, 19, 70, 130, 134, 67, 17, 19, 49, 49, 162, 162, + 0, 23, 48, 39, 18, 0, 12, 49, 240, 33, 240, 33, + 240, 17, 240, 33, 240, 33, 240, 33, 240, 33, 159, 1, + 145, 240, 33, 240, 33, 240, 33, 240, 17, 240, 33, 240, + 33, 240, 33, 0, 12, 80, 11, 5, 0, 11, 50, 50, + 49, 65, 49, 240, 144, 9, 9, 0, 14, 87, 39, 0, + 13, 96, 8, 4, 0, 9, 2, 34, 240, 240, 41, 17, + 240, 240, 17, 242, 241, 241, 240, 17, 241, 240, 17, 241, + 240, 17, 241, 241, 240, 17, 241, 240, 17, 241, 240, 17, + 241, 242, 241, 241, 240, 17, 241, 240, 17, 241, 240, 17, + 241, 240, 16, 37, 13, 240, 240, 228, 134, 98, 51, 66, + 82, 66, 82, 50, 98, 50, 98, 50, 98, 50, 83, 34, + 98, 50, 98, 50, 98, 50, 82, 66, 82, 67, 50, 102, + 132, 0, 12, 32, 24, 11, 240, 240, 177, 86, 85, 146, + 146, 146, 131, 130, 146, 146, 146, 130, 146, 146, 146, 146, + 89, 0, 9, 112, 27, 14, 0, 6, 4, 135, 114, 51, + 81, 98, 81, 98, 194, 194, 178, 178, 178, 178, 177, 193, + 178, 178, 186, 74, 0, 12, 96, 28, 13, 240, 240, 244, + 119, 82, 66, 81, 82, 178, 162, 163, 117, 133, 179, 178, + 178, 178, 49, 98, 66, 67, 72, 116, 0, 12, 32, 31, + 13, 0, 5, 115, 163, 145, 17, 148, 130, 18, 129, 34, + 114, 34, 98, 34, 98, 50, 82, 66, 82, 66, 75, 43, + 130, 178, 178, 178, 0, 12, 29, 13, 240, 240, 200, 88, + 82, 178, 177, 178, 178, 19, 119, 98, 51, 81, 82, 178, + 178, 163, 49, 98, 66, 66, 87, 117, 0, 12, 32, 34, + 13, 240, 240, 245, 118, 83, 162, 162, 163, 20, 82, 21, + 83, 51, 51, 82, 51, 82, 50, 98, 50, 98, 50, 82, + 66, 82, 67, 50, 102, 132, 0, 12, 32, 24, 13, 240, + 240, 170, 58, 177, 177, 178, 162, 162, 162, 178, 162, 163, + 162, 178, 162, 178, 162, 178, 0, 12, 96, 35, 13, 240, + 240, 229, 119, 82, 66, 66, 82, 66, 82, 66, 82, 66, + 66, 102, 118, 98, 51, 66, 82, 50, 98, 50, 98, 50, + 82, 67, 51, 87, 116, 0, 12, 32, 34, 13, 240, 240, + 228, 134, 98, 51, 66, 82, 66, 82, 50, 98, 50, 98, + 50, 98, 50, 83, 51, 51, 85, 18, 84, 19, 162, 162, + 163, 87, 116, 0, 12, 48, 13, 6, 0, 7, 2, 66, + 240, 240, 226, 66, 0, 5, 96, 16, 7, 0, 8, 34, + 82, 0, 6, 66, 82, 81, 97, 81, 240, 240, 64, 23, + 8, 0, 7, 66, 98, 240, 98, 98, 97, 98, 98, 98, + 98, 82, 98, 98, 98, 98, 82, 98, 240, 112, 13, 19, + 0, 26, 47, 1, 0, 7, 63, 1, 0, 26, 64, 24, + 10, 0, 9, 66, 130, 240, 194, 130, 129, 130, 130, 114, + 114, 114, 130, 114, 130, 130, 66, 40, 53, 240, 144, 25, + 11, 240, 164, 88, 49, 82, 146, 146, 131, 115, 115, 130, + 130, 130, 146, 145, 146, 240, 240, 18, 130, 0, 10, 96, + 48, 16, 240, 240, 149, 152, 115, 66, 99, 35, 18, 67, + 39, 66, 34, 51, 50, 34, 67, 50, 34, 66, 50, 34, + 82, 50, 34, 82, 50, 34, 82, 50, 34, 66, 66, 35, + 35, 67, 38, 98, 51, 131, 98, 105, 149, 0, 14, 112, + 38, 16, 240, 240, 179, 211, 196, 193, 18, 178, 18, 177, + 50, 146, 50, 130, 66, 130, 66, 114, 82, 114, 82, 106, + 107, 66, 115, 66, 130, 50, 146, 34, 162, 34, 162, 0, + 14, 32, 39, 16, 240, 240, 89, 114, 83, 98, 114, 82, + 114, 66, 130, 66, 130, 66, 114, 82, 83, 104, 122, 98, + 99, 82, 115, 66, 130, 66, 130, 50, 146, 50, 130, 66, + 99, 89, 0, 14, 112, 27, 16, 240, 240, 150, 137, 99, + 82, 83, 195, 210, 210, 226, 210, 226, 226, 226, 226, 227, + 226, 227, 82, 121, 149, 0, 14, 112, 41, 18, 240, 240, + 169, 146, 83, 130, 114, 98, 130, 98, 146, 82, 146, 82, + 146, 82, 146, 66, 162, 66, 162, 66, 146, 82, 146, 67, + 146, 66, 146, 82, 130, 98, 114, 114, 98, 121, 0, 16, + 112, 25, 17, 240, 240, 139, 106, 99, 226, 242, 242, 242, + 227, 234, 122, 114, 242, 227, 226, 242, 242, 251, 91, 0, + 15, 80, 25, 16, 240, 240, 106, 106, 83, 210, 226, 226, + 226, 211, 218, 105, 114, 226, 211, 210, 226, 226, 226, 210, + 0, 15, 96, 32, 16, 240, 240, 150, 137, 99, 82, 83, + 195, 210, 210, 226, 210, 226, 226, 85, 66, 85, 66, 130, + 67, 114, 82, 114, 83, 82, 121, 149, 0, 14, 112, 41, + 18, 240, 240, 162, 130, 98, 130, 83, 130, 82, 146, 82, + 130, 98, 130, 98, 130, 83, 130, 93, 92, 98, 130, 98, + 130, 83, 130, 82, 131, 82, 130, 98, 130, 98, 130, 82, + 146, 0, 16, 48, 24, 8, 240, 82, 98, 82, 98, 98, + 98, 83, 82, 98, 98, 98, 83, 82, 98, 98, 98, 82, + 98, 0, 7, 96, 26, 14, 240, 240, 130, 194, 179, 178, + 194, 194, 194, 178, 194, 194, 194, 179, 178, 194, 194, 97, + 67, 88, 132, 0, 13, 32, 43, 18, 240, 240, 162, 130, + 98, 114, 99, 98, 114, 98, 130, 82, 146, 51, 162, 35, + 163, 19, 178, 21, 165, 18, 163, 51, 146, 82, 131, 82, + 130, 99, 114, 114, 114, 115, 98, 130, 82, 146, 0, 16, + 48, 24, 12, 240, 210, 162, 147, 146, 162, 162, 162, 147, + 146, 162, 162, 162, 146, 162, 162, 162, 169, 42, 0, 10, + 96, 69, 22, 0, 6, 3, 163, 99, 163, 99, 148, 82, + 18, 114, 18, 82, 18, 116, 98, 18, 98, 18, 98, 18, + 98, 18, 83, 18, 82, 34, 82, 34, 82, 34, 82, 34, + 66, 34, 98, 49, 66, 34, 98, 50, 34, 50, 82, 66, + 33, 66, 82, 66, 18, 66, 82, 66, 17, 66, 98, 68, + 66, 98, 67, 82, 82, 83, 82, 0, 19, 112, 55, 18, + 240, 240, 163, 114, 100, 98, 82, 18, 98, 82, 18, 98, + 82, 18, 82, 98, 19, 66, 98, 34, 66, 82, 50, 66, + 82, 50, 66, 82, 51, 34, 98, 66, 34, 98, 66, 34, + 82, 82, 34, 82, 82, 34, 82, 100, 98, 100, 98, 100, + 82, 116, 0, 16, 48, 38, 17, 240, 240, 181, 168, 131, + 67, 98, 114, 82, 146, 66, 146, 50, 162, 50, 162, 34, + 178, 34, 178, 34, 162, 50, 162, 50, 146, 67, 115, 82, + 114, 99, 67, 136, 165, 0, 16, 33, 16, 240, 240, 89, + 114, 98, 98, 114, 82, 114, 66, 130, 66, 130, 66, 114, + 82, 114, 82, 83, 90, 104, 130, 226, 226, 211, 210, 226, + 226, 0, 15, 96, 44, 17, 240, 240, 181, 168, 131, 67, + 98, 114, 82, 146, 66, 146, 50, 162, 50, 162, 34, 178, + 34, 178, 34, 162, 50, 162, 50, 146, 66, 66, 50, 82, + 66, 18, 99, 52, 136, 167, 243, 242, 242, 0, 9, 32, + 40, 17, 240, 240, 137, 130, 98, 114, 114, 82, 130, 82, + 130, 82, 130, 82, 114, 98, 83, 106, 120, 146, 66, 146, + 67, 130, 82, 114, 98, 114, 99, 98, 114, 98, 114, 83, + 130, 0, 15, 48, 28, 15, 240, 240, 101, 137, 83, 81, + 98, 194, 210, 210, 212, 198, 196, 211, 210, 210, 210, 65, + 114, 82, 83, 88, 149, 0, 14, 16, 25, 17, 240, 240, + 94, 47, 131, 226, 242, 242, 242, 226, 242, 242, 242, 227, + 226, 242, 242, 242, 227, 226, 0, 16, 48, 42, 16, 240, + 240, 67, 114, 66, 130, 66, 130, 66, 130, 66, 129, 67, + 114, 66, 130, 66, 130, 66, 130, 66, 129, 66, 130, 66, + 130, 66, 130, 66, 129, 82, 114, 82, 98, 114, 66, 149, + 0, 15, 16, 41, 17, 240, 240, 66, 178, 35, 161, 51, + 146, 66, 130, 82, 130, 82, 114, 98, 114, 98, 98, 115, + 81, 146, 66, 146, 50, 162, 50, 162, 34, 178, 34, 178, + 18, 194, 17, 227, 226, 0, 16, 48, 69, 24, 0, 6, + 2, 130, 130, 34, 115, 114, 50, 113, 17, 114, 50, 98, + 17, 98, 67, 82, 17, 98, 67, 66, 34, 66, 83, 66, + 34, 66, 98, 65, 50, 65, 114, 50, 50, 50, 114, 49, + 66, 49, 130, 34, 66, 34, 130, 33, 82, 33, 146, 18, + 82, 18, 146, 17, 98, 18, 148, 100, 163, 116, 163, 115, + 179, 115, 0, 22, 32, 41, 19, 240, 240, 194, 146, 99, + 114, 130, 98, 147, 66, 178, 50, 195, 18, 229, 228, 240, + 18, 240, 19, 242, 18, 210, 34, 194, 51, 163, 66, 147, + 83, 130, 114, 114, 131, 82, 162, 0, 17, 32, 33, 17, + 240, 240, 67, 162, 35, 146, 66, 130, 83, 99, 98, 98, + 115, 66, 146, 50, 162, 34, 181, 212, 211, 226, 242, 242, + 242, 227, 226, 242, 0, 16, 48, 27, 18, 240, 240, 172, + 107, 240, 18, 242, 242, 242, 242, 242, 240, 18, 242, 242, + 242, 242, 242, 243, 242, 252, 93, 0, 16, 48, 30, 11, + 84, 116, 114, 146, 130, 146, 146, 146, 146, 130, 146, 146, + 146, 145, 146, 146, 146, 146, 145, 146, 146, 146, 146, 145, + 148, 116, 240, 48, 18, 10, 240, 113, 65, 49, 65, 65, + 65, 50, 50, 50, 50, 50, 50, 0, 24, 16, 30, 12, + 85, 116, 162, 162, 162, 161, 162, 162, 162, 162, 161, 162, + 162, 162, 162, 161, 162, 162, 162, 162, 146, 162, 162, 162, + 117, 116, 240, 80, 15, 10, 240, 146, 113, 17, 97, 34, + 66, 49, 50, 66, 0, 25, 32, 6, 5, 243, 35, 0, + 14, 11, 5, 193, 49, 65, 50, 50, 50, 0, 12, 32, + 23, 11, 0, 12, 116, 87, 65, 66, 146, 86, 56, 35, + 50, 50, 66, 50, 51, 56, 67, 33, 0, 10, 16, 33, + 13, 240, 242, 177, 178, 178, 178, 178, 162, 178, 36, 89, + 67, 51, 66, 82, 50, 98, 50, 98, 50, 98, 50, 82, + 66, 66, 73, 66, 20, 0, 12, 16, 20, 12, 0, 14, + 5, 103, 66, 81, 50, 147, 146, 162, 162, 163, 65, 87, + 101, 0, 11, 16, 34, 14, 240, 240, 130, 194, 194, 194, + 193, 194, 194, 116, 18, 89, 82, 66, 82, 82, 67, 82, + 66, 98, 66, 98, 66, 82, 83, 51, 104, 115, 34, 0, + 12, 112, 20, 12, 0, 14, 5, 103, 66, 66, 57, 42, + 34, 162, 162, 163, 66, 71, 101, 0, 11, 16, 24, 12, + 240, 244, 117, 98, 146, 162, 162, 161, 135, 114, 162, 162, + 146, 162, 162, 162, 161, 162, 162, 0, 11, 96, 33, 16, + 0, 18, 104, 98, 50, 145, 66, 130, 66, 130, 66, 130, + 50, 150, 146, 19, 161, 248, 137, 98, 83, 82, 114, 82, + 114, 83, 82, 134, 240, 240, 160, 33, 12, 240, 194, 162, + 162, 162, 162, 146, 162, 162, 35, 88, 67, 50, 51, 66, + 50, 82, 50, 82, 50, 66, 50, 82, 50, 82, 50, 82, + 50, 66, 0, 11, 21, 8, 240, 210, 83, 240, 240, 98, + 98, 98, 98, 83, 82, 98, 98, 98, 82, 98, 0, 7, + 96, 27, 12, 240, 240, 226, 162, 0, 7, 18, 161, 162, + 162, 162, 162, 161, 162, 162, 162, 162, 161, 162, 162, 101, + 131, 240, 240, 32, 33, 12, 240, 209, 162, 162, 162, 162, + 161, 162, 162, 66, 66, 50, 82, 34, 82, 34, 101, 118, + 99, 18, 98, 35, 66, 66, 66, 67, 50, 82, 0, 10, + 112, 24, 8, 240, 82, 98, 82, 98, 98, 98, 98, 82, + 98, 98, 98, 82, 98, 98, 98, 98, 82, 98, 0, 7, + 96, 40, 19, 0, 21, 82, 36, 51, 82, 21, 22, 67, + 52, 50, 66, 67, 66, 51, 66, 82, 50, 82, 82, 50, + 82, 66, 66, 81, 82, 66, 66, 82, 50, 82, 82, 50, + 82, 66, 0, 17, 16, 27, 12, 0, 13, 98, 35, 88, + 67, 50, 51, 66, 50, 82, 50, 82, 50, 66, 50, 82, + 50, 82, 50, 82, 50, 66, 0, 11, 25, 13, 0, 15, + 21, 119, 82, 67, 50, 98, 34, 114, 34, 114, 34, 99, + 34, 98, 51, 66, 87, 117, 0, 12, 16, 32, 14, 0, + 16, 18, 36, 105, 83, 51, 82, 82, 66, 98, 66, 98, + 66, 98, 66, 82, 82, 51, 89, 82, 35, 114, 194, 193, + 194, 194, 240, 240, 160, 33, 13, 0, 15, 20, 18, 73, + 67, 50, 66, 82, 51, 82, 50, 98, 50, 98, 50, 82, + 67, 51, 85, 18, 84, 34, 162, 178, 178, 178, 178, 240, + 240, 16, 19, 10, 0, 11, 66, 34, 70, 67, 114, 114, + 130, 130, 130, 114, 130, 130, 0, 9, 96, 20, 12, 0, + 14, 5, 103, 67, 65, 66, 164, 149, 163, 162, 65, 67, + 56, 101, 0, 11, 16, 21, 9, 0, 7, 2, 114, 114, + 87, 50, 114, 114, 114, 113, 114, 114, 114, 117, 68, 0, + 8, 64, 28, 12, 0, 13, 98, 66, 65, 82, 50, 82, + 50, 82, 50, 66, 66, 66, 65, 82, 50, 82, 50, 67, + 50, 51, 69, 18, 0, 11, 26, 12, 0, 13, 66, 98, + 34, 82, 50, 82, 50, 66, 66, 50, 83, 34, 98, 18, + 114, 18, 116, 131, 147, 0, 11, 64, 42, 17, 0, 19, + 18, 66, 82, 34, 66, 82, 34, 52, 50, 50, 49, 18, + 49, 66, 34, 18, 34, 66, 33, 34, 33, 82, 18, 34, + 18, 82, 17, 50, 17, 100, 52, 99, 67, 130, 67, 0, + 15, 96, 25, 14, 0, 16, 18, 82, 83, 50, 114, 34, + 148, 163, 194, 179, 161, 34, 130, 34, 114, 66, 67, 83, + 0, 12, 80, 31, 15, 0, 17, 34, 98, 82, 82, 98, + 81, 114, 66, 130, 34, 146, 34, 146, 18, 162, 18, 164, + 194, 210, 194, 210, 194, 164, 179, 240, 240, 192, 18, 13, + 0, 14, 121, 72, 177, 177, 177, 177, 162, 162, 162, 169, + 73, 0, 11, 112, 8, 14, 0, 21, 12, 44, 0, 23, + 11, 26, 0, 39, 15, 9, 47, 9, 0, 42, 64, 16, + 10, 240, 114, 34, 65, 34, 66, 34, 65, 49, 66, 34, + 0, 25, 64, 12, 10, 240, 240, 34, 49, 55, 34, 35, + 0, 26, 80, +}; + +//***************************************************************************** +// +// The font definition for the 26 point Cmss italic font. +// +//***************************************************************************** +const tFont g_sFontCmss26i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 23, + + // + // The height of the font. + // + 27, + + // + // The baseline of the font. + // + 20, + + // + // The offset to each character in the font. + // + { + 0, 5, 28, 46, 99, 139, 201, 244, + 255, 285, 315, 339, 378, 389, 398, 406, + 447, 484, 508, 535, 563, 594, 623, 657, + 681, 716, 750, 763, 779, 802, 815, 839, + 864, 912, 950, 989, 1016, 1057, 1082, 1107, + 1139, 1180, 1204, 1230, 1273, 1297, 1366, 1421, + 1459, 1492, 1536, 1576, 1604, 1629, 1671, 1712, + 1781, 1822, 1855, 1882, 1912, 1930, 1960, 1975, + 1981, 1992, 2015, 2048, 2068, 2102, 2122, 2146, + 2179, 2212, 2233, 2260, 2293, 2317, 2357, 2384, + 2409, 2441, 2474, 2493, 2513, 2534, 2562, 2588, + 2630, 2655, 2686, 2704, 2712, 2723, 2739, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss26iData +}; diff --git a/grlib/fonts/fontcmss28.c b/grlib/fonts/fontcmss28.c new file mode 100644 index 0000000..29e8d89 --- /dev/null +++ b/grlib/fonts/fontcmss28.c @@ -0,0 +1,345 @@ +//***************************************************************************** +// +// fontcmss28.c - Font definition for the 28pt Cmss font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 28 point +// Bold: no +// Italic: no +// Memory usage: 3060 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 28 point Cmss font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss28Data[2860] = +{ + 5, 11, 0, 38, 64, 20, 4, 130, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 226, 34, 240, + 240, 18, 9, 240, 50, 50, 34, 50, 49, 65, 34, 50, + 33, 65, 49, 65, 0, 22, 112, 55, 21, 0, 6, 49, + 81, 225, 81, 209, 97, 209, 81, 225, 81, 225, 81, 209, + 81, 225, 81, 225, 81, 127, 4, 129, 81, 225, 81, 225, + 81, 225, 81, 143, 4, 113, 81, 225, 81, 225, 81, 209, + 81, 225, 81, 225, 81, 209, 97, 209, 81, 225, 81, 0, + 6, 80, 42, 13, 82, 178, 151, 89, 51, 18, 34, 34, + 50, 98, 50, 98, 50, 99, 34, 115, 18, 119, 134, 149, + 130, 19, 114, 34, 114, 34, 114, 34, 114, 34, 34, 50, + 18, 73, 87, 146, 178, 0, 8, 112, 68, 21, 36, 145, + 102, 114, 98, 34, 113, 98, 66, 81, 114, 66, 81, 114, + 66, 65, 130, 66, 65, 130, 66, 49, 146, 66, 49, 162, + 34, 49, 196, 65, 240, 65, 240, 81, 68, 177, 66, 18, + 162, 50, 50, 145, 66, 50, 130, 66, 50, 129, 82, 50, + 114, 82, 50, 113, 98, 50, 98, 114, 18, 113, 133, 98, + 147, 0, 13, 80, 47, 19, 240, 240, 211, 245, 226, 34, + 194, 50, 194, 50, 194, 50, 194, 34, 210, 18, 243, 113, + 130, 130, 99, 114, 98, 18, 98, 82, 35, 66, 82, 67, + 50, 82, 83, 18, 98, 100, 115, 69, 136, 23, 84, 70, + 0, 16, 112, 11, 4, 130, 34, 49, 34, 33, 49, 0, + 10, 48, 31, 8, 66, 97, 98, 82, 98, 82, 98, 98, + 97, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 114, + 98, 98, 98, 114, 98, 114, 113, 114, 32, 31, 8, 2, + 114, 98, 114, 98, 114, 98, 98, 114, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 82, 98, 98, 82, 98, + 82, 98, 82, 96, 21, 12, 66, 162, 162, 113, 34, 34, + 56, 100, 132, 104, 51, 18, 19, 98, 162, 162, 0, 24, + 96, 41, 19, 0, 12, 113, 240, 49, 240, 49, 240, 49, + 240, 49, 240, 49, 240, 49, 240, 49, 240, 49, 175, 2, + 161, 240, 49, 240, 49, 240, 49, 240, 49, 240, 49, 240, + 49, 240, 49, 0, 13, 16, 11, 4, 0, 9, 66, 34, + 49, 34, 33, 49, 240, 9, 9, 0, 15, 103, 39, 0, + 13, 96, 8, 4, 0, 9, 66, 34, 240, 240, 31, 12, + 145, 177, 161, 177, 177, 161, 177, 177, 161, 177, 177, 161, + 177, 177, 161, 177, 177, 161, 177, 177, 161, 177, 177, 161, + 177, 177, 161, 177, 176, 38, 13, 240, 240, 197, 119, 83, + 51, 66, 82, 65, 114, 34, 114, 34, 114, 34, 114, 34, + 114, 34, 114, 34, 114, 34, 114, 34, 114, 35, 83, 50, + 82, 67, 51, 87, 117, 0, 12, 25, 10, 240, 240, 50, + 85, 82, 18, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 88, 40, 0, 9, 29, 12, 240, 240, + 148, 103, 67, 51, 50, 83, 33, 114, 33, 114, 162, 162, + 146, 161, 161, 161, 161, 146, 161, 161, 170, 42, 0, 10, + 96, 29, 12, 240, 240, 148, 103, 67, 66, 49, 98, 162, + 162, 147, 101, 117, 178, 178, 162, 162, 162, 33, 114, 35, + 66, 71, 116, 0, 11, 16, 33, 14, 0, 6, 3, 179, + 164, 161, 18, 146, 18, 130, 34, 130, 34, 114, 50, 114, + 50, 98, 66, 98, 66, 92, 44, 146, 194, 194, 194, 194, + 0, 12, 112, 30, 12, 240, 240, 120, 72, 66, 162, 162, + 162, 162, 19, 104, 67, 50, 66, 82, 162, 162, 162, 162, + 33, 99, 35, 66, 71, 116, 0, 11, 16, 35, 13, 240, + 240, 229, 103, 83, 146, 178, 177, 51, 82, 23, 52, 51, + 51, 83, 34, 114, 34, 114, 34, 114, 34, 114, 49, 114, + 50, 82, 67, 51, 87, 117, 0, 12, 25, 13, 240, 240, + 155, 43, 177, 178, 162, 177, 178, 162, 178, 177, 178, 178, + 178, 162, 178, 178, 178, 178, 0, 12, 48, 36, 13, 240, + 240, 197, 105, 66, 82, 50, 114, 34, 114, 34, 114, 50, + 82, 87, 103, 83, 51, 66, 83, 34, 114, 34, 114, 34, + 114, 35, 98, 51, 51, 87, 117, 0, 12, 36, 13, 240, + 240, 197, 119, 83, 51, 66, 82, 50, 114, 34, 114, 34, + 114, 34, 114, 35, 83, 51, 52, 55, 18, 68, 50, 177, + 178, 163, 65, 67, 87, 116, 0, 12, 32, 12, 4, 240, + 240, 98, 34, 240, 240, 66, 34, 240, 240, 15, 4, 240, + 240, 98, 34, 240, 240, 66, 34, 49, 34, 33, 49, 240, + 20, 4, 240, 210, 34, 226, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 160, 13, 19, 0, 26, + 31, 2, 0, 9, 111, 2, 0, 26, 48, 25, 12, 0, + 11, 2, 162, 0, 5, 98, 162, 162, 162, 146, 162, 146, + 146, 146, 162, 162, 163, 82, 57, 70, 240, 208, 25, 11, + 240, 149, 72, 50, 67, 146, 146, 146, 130, 131, 115, 130, + 130, 146, 146, 146, 240, 240, 194, 146, 0, 10, 48, 50, + 17, 240, 240, 166, 153, 115, 83, 83, 54, 67, 56, 50, + 51, 36, 35, 50, 67, 34, 50, 98, 34, 50, 98, 34, + 50, 98, 34, 50, 98, 34, 50, 98, 35, 50, 66, 66, + 51, 35, 67, 54, 99, 52, 132, 113, 106, 150, 0, 15, + 64, 41, 17, 240, 240, 163, 227, 225, 18, 194, 18, 194, + 18, 178, 50, 162, 50, 162, 50, 146, 82, 130, 82, 129, + 98, 123, 107, 98, 114, 82, 146, 66, 146, 66, 147, 34, + 178, 34, 178, 0, 15, 16, 39, 16, 240, 240, 41, 123, + 82, 116, 50, 131, 50, 146, 50, 146, 50, 131, 50, 115, + 74, 107, 82, 115, 66, 146, 50, 162, 34, 162, 34, 162, + 34, 147, 34, 116, 60, 74, 0, 14, 96, 28, 15, 240, + 240, 102, 121, 83, 82, 66, 195, 194, 195, 194, 210, 210, + 210, 210, 211, 210, 211, 210, 227, 82, 105, 118, 0, 13, + 80, 41, 17, 240, 240, 74, 123, 98, 115, 82, 131, 66, + 147, 50, 162, 50, 163, 34, 178, 34, 178, 34, 178, 34, + 178, 34, 178, 34, 178, 34, 162, 50, 162, 50, 146, 66, + 115, 91, 106, 0, 15, 96, 25, 14, 240, 219, 59, 50, + 194, 194, 194, 194, 194, 203, 59, 50, 194, 194, 194, 194, + 194, 194, 204, 44, 0, 12, 64, 25, 13, 240, 187, 43, + 34, 178, 178, 178, 178, 178, 186, 58, 50, 178, 178, 178, + 178, 178, 178, 178, 178, 0, 12, 96, 34, 15, 240, 240, + 86, 137, 83, 82, 66, 129, 51, 194, 195, 194, 210, 210, + 210, 210, 101, 35, 85, 50, 130, 51, 114, 66, 114, 68, + 82, 105, 118, 0, 13, 80, 42, 15, 240, 242, 146, 34, + 146, 34, 146, 34, 146, 34, 146, 34, 146, 34, 146, 34, + 146, 45, 45, 34, 146, 34, 146, 34, 146, 34, 146, 34, + 146, 34, 146, 34, 146, 34, 146, 34, 146, 0, 13, 48, + 23, 4, 130, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 240, 240, 26, + 11, 240, 226, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 34, 67, 40, 85, 0, 10, + 16, 44, 16, 240, 240, 34, 146, 50, 130, 66, 114, 82, + 99, 82, 83, 98, 67, 114, 51, 130, 35, 146, 20, 152, + 132, 35, 115, 66, 114, 83, 98, 99, 82, 114, 82, 115, + 66, 130, 66, 146, 50, 147, 0, 14, 32, 25, 12, 240, + 146, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 170, 42, 0, 10, 96, 73, 19, + 240, 240, 131, 179, 36, 148, 36, 148, 36, 148, 34, 18, + 114, 18, 34, 18, 114, 18, 34, 18, 114, 18, 34, 34, + 82, 34, 34, 34, 82, 34, 34, 34, 82, 34, 34, 50, + 50, 50, 34, 50, 50, 50, 34, 50, 50, 50, 34, 66, + 33, 66, 34, 66, 18, 66, 34, 66, 18, 66, 34, 81, + 17, 82, 34, 83, 82, 34, 83, 82, 0, 16, 112, 58, + 16, 240, 240, 36, 130, 36, 130, 37, 114, 34, 18, 114, + 34, 19, 98, 34, 34, 98, 34, 35, 82, 34, 50, 82, + 34, 51, 66, 34, 66, 66, 34, 67, 50, 34, 82, 50, + 34, 83, 34, 34, 98, 34, 34, 99, 18, 34, 114, 18, + 34, 117, 34, 132, 34, 132, 0, 14, 32, 41, 18, 240, + 240, 197, 184, 147, 67, 114, 130, 82, 162, 66, 162, 50, + 194, 34, 194, 34, 194, 34, 194, 34, 194, 34, 194, 35, + 163, 50, 162, 67, 146, 82, 130, 115, 67, 152, 182, 0, + 16, 80, 32, 15, 240, 249, 107, 66, 115, 50, 131, 34, + 146, 34, 146, 34, 146, 34, 131, 34, 115, 59, 73, 98, + 210, 210, 210, 210, 210, 210, 210, 0, 14, 96, 52, 18, + 240, 240, 197, 184, 147, 67, 114, 130, 82, 162, 66, 162, + 50, 194, 34, 194, 34, 194, 34, 194, 34, 194, 34, 194, + 34, 194, 50, 66, 66, 67, 66, 50, 82, 67, 18, 115, + 52, 152, 184, 240, 18, 240, 19, 240, 19, 240, 18, 0, + 7, 16, 40, 15, 240, 249, 107, 66, 115, 50, 131, 34, + 146, 34, 146, 34, 131, 34, 115, 59, 74, 82, 82, 98, + 83, 82, 98, 82, 99, 66, 114, 66, 115, 50, 130, 50, + 146, 34, 146, 0, 13, 48, 28, 14, 240, 240, 37, 121, + 67, 82, 51, 178, 194, 195, 195, 198, 151, 180, 195, 194, + 194, 194, 33, 131, 35, 83, 73, 117, 0, 13, 44, 18, + 240, 240, 111, 1, 47, 1, 146, 240, 18, 240, 18, 240, + 18, 240, 18, 240, 18, 240, 18, 240, 18, 240, 18, 240, + 18, 240, 18, 240, 18, 240, 18, 240, 18, 240, 18, 240, + 18, 240, 18, 0, 16, 112, 42, 15, 240, 242, 146, 34, + 146, 34, 146, 34, 146, 34, 146, 34, 146, 34, 146, 34, + 146, 34, 146, 34, 146, 34, 146, 34, 146, 34, 146, 34, + 146, 35, 130, 50, 114, 67, 82, 104, 149, 0, 13, 112, + 42, 18, 240, 240, 98, 179, 34, 178, 51, 162, 66, 146, + 82, 146, 83, 130, 98, 114, 115, 98, 115, 98, 130, 82, + 147, 66, 162, 51, 162, 50, 179, 34, 194, 18, 210, 18, + 213, 227, 243, 0, 16, 112, 71, 26, 0, 6, 67, 131, + 130, 50, 131, 115, 50, 116, 114, 67, 100, 114, 82, 98, + 18, 98, 82, 97, 34, 82, 98, 82, 34, 82, 99, 66, + 34, 82, 114, 66, 50, 66, 114, 65, 66, 50, 131, 34, + 66, 50, 146, 34, 66, 50, 146, 34, 82, 34, 146, 33, + 98, 18, 165, 98, 18, 180, 98, 18, 180, 115, 195, 131, + 195, 131, 0, 23, 80, 41, 17, 240, 240, 67, 146, 67, + 115, 82, 99, 99, 82, 131, 51, 146, 35, 163, 18, 197, + 211, 227, 213, 194, 18, 178, 50, 146, 67, 115, 83, 98, + 114, 83, 115, 51, 147, 34, 178, 0, 15, 16, 42, 18, + 240, 240, 99, 178, 50, 162, 67, 131, 83, 114, 114, 98, + 131, 82, 146, 66, 163, 35, 179, 18, 212, 228, 242, 240, + 18, 240, 18, 240, 18, 240, 18, 240, 18, 240, 18, 240, + 18, 0, 16, 112, 26, 15, 240, 240, 28, 60, 195, 179, + 194, 195, 194, 194, 195, 194, 194, 195, 194, 195, 179, 194, + 195, 204, 45, 0, 13, 48, 31, 6, 4, 36, 34, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 68, 36, + 32, 16, 9, 240, 65, 65, 49, 65, 33, 65, 50, 50, + 34, 50, 0, 23, 112, 31, 6, 4, 36, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 36, 36, 32, + 15, 11, 240, 163, 129, 17, 113, 34, 82, 50, 50, 82, + 0, 29, 16, 7, 4, 194, 34, 0, 11, 96, 10, 4, + 145, 49, 33, 50, 34, 0, 10, 96, 24, 11, 0, 12, + 85, 87, 65, 67, 146, 146, 86, 56, 35, 66, 34, 82, + 35, 51, 41, 52, 34, 0, 9, 112, 35, 12, 240, 146, + 162, 162, 162, 162, 162, 162, 162, 36, 73, 51, 51, 50, + 83, 34, 98, 34, 98, 34, 98, 34, 98, 34, 83, 35, + 51, 56, 66, 20, 0, 11, 16, 20, 12, 0, 13, 117, + 104, 51, 65, 66, 146, 162, 162, 162, 178, 163, 66, 72, + 85, 0, 11, 36, 12, 240, 240, 34, 162, 162, 162, 162, + 162, 162, 83, 34, 72, 51, 51, 35, 82, 34, 98, 34, + 98, 34, 98, 34, 98, 35, 82, 51, 51, 57, 83, 34, + 0, 10, 96, 21, 12, 0, 13, 117, 103, 67, 51, 49, + 98, 42, 42, 34, 162, 178, 163, 81, 72, 85, 0, 11, + 25, 10, 240, 148, 85, 67, 114, 130, 130, 130, 103, 55, + 82, 130, 130, 130, 130, 130, 130, 130, 130, 130, 0, 9, + 64, 34, 13, 0, 15, 4, 19, 73, 51, 34, 98, 66, + 82, 66, 82, 66, 98, 35, 87, 98, 19, 114, 184, 89, + 51, 83, 34, 114, 35, 83, 57, 101, 240, 240, 16, 37, + 11, 240, 114, 146, 146, 146, 146, 146, 146, 146, 36, 50, + 21, 51, 51, 34, 82, 34, 82, 34, 82, 34, 82, 34, + 82, 34, 82, 34, 82, 34, 82, 34, 82, 0, 9, 112, + 19, 4, 194, 34, 240, 50, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 240, 240, 27, 8, 240, 210, 98, + 240, 240, 130, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 33, 50, 37, 67, 240, 80, 36, 12, + 240, 146, 162, 162, 162, 162, 162, 162, 162, 67, 50, 51, + 66, 50, 82, 34, 98, 18, 118, 99, 18, 99, 34, 82, + 51, 66, 66, 66, 82, 50, 83, 0, 10, 96, 23, 4, + 130, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 240, 240, 42, 18, 0, + 20, 34, 35, 68, 50, 21, 22, 51, 52, 51, 34, 82, + 82, 34, 82, 82, 34, 82, 82, 34, 82, 82, 34, 82, + 82, 34, 82, 82, 34, 82, 82, 34, 82, 82, 34, 82, + 82, 0, 16, 31, 11, 0, 12, 50, 36, 50, 21, 51, + 51, 34, 82, 34, 82, 34, 82, 34, 82, 34, 82, 34, + 82, 34, 82, 34, 82, 34, 82, 0, 9, 112, 26, 13, + 0, 15, 5, 119, 83, 51, 66, 83, 34, 114, 34, 114, + 34, 114, 34, 114, 35, 83, 51, 51, 87, 117, 0, 12, + 34, 12, 0, 13, 66, 36, 73, 51, 51, 50, 83, 34, + 98, 34, 98, 34, 98, 34, 98, 34, 83, 35, 51, 56, + 66, 20, 82, 162, 162, 162, 162, 240, 240, 64, 33, 12, + 0, 13, 115, 34, 72, 51, 51, 35, 82, 34, 98, 34, + 98, 34, 98, 34, 98, 35, 82, 51, 51, 57, 68, 34, + 162, 162, 162, 162, 162, 240, 176, 21, 8, 0, 9, 2, + 34, 34, 19, 36, 67, 82, 98, 98, 98, 98, 98, 98, + 98, 0, 7, 96, 21, 10, 0, 11, 69, 71, 34, 81, + 34, 131, 133, 101, 146, 130, 34, 66, 39, 84, 0, 9, + 32, 24, 10, 0, 6, 66, 130, 130, 130, 104, 40, 66, + 130, 130, 130, 130, 130, 130, 130, 49, 70, 84, 0, 9, + 16, 30, 11, 0, 12, 50, 82, 34, 82, 34, 82, 34, + 82, 34, 82, 34, 82, 34, 82, 34, 82, 34, 82, 34, + 67, 41, 52, 34, 0, 9, 112, 28, 12, 0, 13, 66, + 98, 34, 98, 34, 83, 50, 66, 66, 66, 67, 34, 98, + 34, 98, 34, 98, 18, 132, 132, 131, 0, 11, 32, 47, + 18, 0, 20, 34, 82, 82, 34, 67, 82, 34, 67, 66, + 51, 49, 18, 50, 66, 49, 18, 50, 66, 34, 18, 50, + 66, 34, 34, 18, 98, 17, 50, 18, 98, 17, 50, 18, + 100, 65, 17, 115, 83, 130, 83, 0, 16, 48, 27, 13, + 0, 14, 98, 98, 51, 66, 83, 34, 114, 19, 132, 162, + 163, 164, 130, 34, 98, 66, 66, 83, 35, 98, 0, 11, + 80, 32, 12, 0, 13, 66, 98, 34, 98, 35, 67, 50, + 66, 67, 50, 82, 34, 98, 34, 114, 18, 116, 132, 146, + 162, 162, 146, 162, 116, 131, 240, 240, 48, 19, 12, 0, + 13, 74, 42, 146, 146, 146, 146, 147, 146, 146, 146, 154, + 42, 0, 10, 96, 9, 15, 0, 24, 61, 45, 0, 24, + 80, 11, 28, 0, 45, 79, 11, 47, 11, 0, 45, 96, + 16, 10, 240, 114, 34, 50, 34, 66, 34, 65, 49, 66, + 34, 0, 26, 96, 12, 11, 240, 240, 67, 50, 55, 50, + 51, 0, 30, 80, +}; + +//***************************************************************************** +// +// The font definition for the 28 point Cmss font. +// +//***************************************************************************** +const tFont g_sFontCmss28 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 25, + + // + // The height of the font. + // + 28, + + // + // The baseline of the font. + // + 21, + + // + // The offset to each character in the font. + // + { + 0, 5, 25, 43, 98, 140, 208, 255, + 266, 297, 328, 349, 390, 401, 410, 418, + 449, 487, 512, 541, 570, 603, 633, 668, + 693, 729, 765, 777, 792, 812, 825, 850, + 875, 925, 966, 1005, 1033, 1074, 1099, 1124, + 1158, 1200, 1223, 1249, 1293, 1318, 1391, 1449, + 1490, 1522, 1574, 1614, 1642, 1686, 1728, 1770, + 1841, 1882, 1924, 1950, 1981, 1997, 2028, 2043, + 2050, 2060, 2084, 2119, 2139, 2175, 2196, 2221, + 2255, 2292, 2311, 2338, 2374, 2397, 2439, 2470, + 2496, 2530, 2563, 2584, 2605, 2629, 2659, 2687, + 2734, 2761, 2793, 2812, 2821, 2832, 2848, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss28Data +}; diff --git a/grlib/fonts/fontcmss28b.c b/grlib/fonts/fontcmss28b.c new file mode 100644 index 0000000..8aa4f58 --- /dev/null +++ b/grlib/fonts/fontcmss28b.c @@ -0,0 +1,360 @@ +//***************************************************************************** +// +// fontcmss28b.c - Font definition for the 28pt Cmss bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 28 point +// Bold: yes +// Italic: no +// Memory usage: 3240 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 28 point Cmss bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss28bData[3039] = +{ + 5, 11, 0, 39, 112, 24, 6, 196, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 132, 36, + 36, 36, 240, 240, 224, 20, 12, 240, 148, 36, 36, 36, + 36, 36, 36, 36, 50, 66, 51, 51, 50, 66, 0, 30, + 64, 59, 24, 0, 7, 34, 81, 240, 18, 67, 227, 66, + 243, 66, 242, 67, 242, 66, 243, 66, 242, 67, 127, 7, + 47, 7, 47, 7, 146, 67, 242, 66, 243, 66, 159, 7, + 47, 7, 47, 7, 115, 66, 242, 67, 242, 66, 243, 66, + 242, 67, 242, 67, 227, 66, 240, 17, 82, 0, 7, 64, + 41, 14, 82, 194, 166, 106, 74, 52, 18, 34, 52, 18, + 49, 52, 18, 116, 18, 119, 136, 105, 120, 135, 119, 114, + 20, 114, 20, 33, 66, 20, 35, 34, 20, 43, 74, 88, + 146, 194, 0, 9, 80, 68, 27, 240, 245, 193, 120, 162, + 115, 36, 131, 100, 51, 115, 116, 51, 114, 132, 51, 99, + 132, 51, 83, 148, 51, 67, 180, 20, 66, 200, 67, 229, + 67, 240, 146, 69, 243, 40, 211, 52, 19, 195, 52, 51, + 178, 68, 51, 163, 68, 51, 147, 84, 51, 146, 100, 51, + 131, 100, 51, 115, 132, 19, 130, 152, 129, 197, 0, 17, + 48, 48, 22, 0, 6, 36, 240, 39, 227, 36, 195, 67, + 195, 67, 195, 67, 195, 51, 212, 19, 231, 99, 117, 115, + 116, 115, 103, 99, 83, 21, 67, 84, 37, 36, 84, 57, + 100, 71, 116, 85, 159, 4, 58, 24, 86, 86, 0, 19, + 64, 12, 6, 196, 36, 36, 36, 50, 51, 50, 0, 15, + 64, 32, 10, 98, 114, 115, 99, 100, 99, 100, 100, 100, + 99, 100, 100, 100, 100, 100, 100, 100, 100, 100, 115, 116, + 100, 100, 115, 116, 115, 131, 130, 146, 32, 32, 10, 2, + 147, 115, 131, 116, 115, 116, 100, 115, 116, 100, 100, 100, + 100, 100, 100, 100, 100, 100, 100, 99, 100, 100, 99, 100, + 99, 99, 114, 114, 128, 29, 13, 67, 163, 163, 99, 19, + 34, 36, 17, 35, 38, 20, 85, 133, 84, 22, 35, 33, + 20, 34, 35, 19, 99, 163, 163, 0, 25, 16, 49, 22, + 0, 12, 18, 240, 82, 240, 82, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 82, 191, 5, 47, 5, 47, + 5, 178, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 82, 240, 82, 240, 82, 0, 9, 80, 13, + 6, 0, 13, 68, 36, 36, 36, 50, 51, 50, 240, 208, + 9, 10, 0, 18, 104, 40, 0, 15, 32, 11, 6, 0, + 13, 68, 36, 36, 36, 240, 240, 224, 32, 14, 162, 179, + 179, 178, 179, 179, 178, 179, 178, 194, 179, 178, 179, 179, + 178, 179, 179, 178, 179, 178, 194, 179, 178, 179, 179, 178, + 179, 179, 178, 192, 43, 15, 240, 240, 69, 137, 84, 52, + 68, 52, 67, 84, 36, 84, 36, 84, 36, 84, 36, 84, + 36, 84, 36, 84, 36, 84, 36, 84, 36, 84, 36, 84, + 36, 84, 52, 52, 68, 52, 89, 133, 0, 13, 112, 27, + 13, 240, 240, 19, 88, 88, 148, 148, 148, 148, 148, 148, + 148, 148, 148, 148, 148, 148, 148, 148, 148, 106, 58, 0, + 11, 80, 30, 15, 240, 240, 69, 137, 91, 67, 68, 51, + 85, 50, 100, 180, 180, 180, 164, 179, 179, 179, 179, 179, + 179, 179, 188, 60, 60, 0, 13, 48, 30, 15, 240, 240, + 70, 121, 91, 67, 68, 180, 180, 165, 119, 134, 151, 196, + 196, 180, 180, 180, 49, 116, 36, 69, 59, 89, 133, 0, + 13, 112, 36, 17, 240, 240, 181, 182, 182, 167, 162, 20, + 147, 20, 147, 20, 131, 36, 131, 36, 115, 52, 115, 52, + 99, 68, 99, 68, 94, 63, 61, 180, 212, 212, 212, 0, + 15, 64, 31, 15, 240, 240, 27, 75, 75, 68, 180, 180, + 180, 185, 107, 68, 52, 67, 84, 180, 180, 180, 180, 34, + 116, 36, 68, 60, 74, 118, 0, 13, 112, 38, 15, 240, + 240, 85, 136, 105, 85, 164, 179, 180, 36, 84, 23, 53, + 52, 53, 68, 36, 84, 36, 84, 36, 84, 36, 84, 36, + 84, 51, 84, 52, 52, 90, 89, 133, 0, 13, 112, 26, + 15, 240, 253, 45, 45, 179, 179, 180, 179, 180, 179, 180, + 179, 180, 180, 180, 164, 180, 180, 180, 180, 180, 0, 14, + 16, 39, 15, 240, 240, 55, 122, 75, 53, 53, 36, 84, + 36, 84, 36, 84, 52, 52, 89, 105, 84, 52, 52, 84, + 36, 84, 36, 84, 36, 84, 36, 84, 37, 53, 59, 89, + 119, 0, 13, 96, 38, 15, 240, 240, 69, 137, 91, 68, + 52, 52, 83, 52, 84, 36, 84, 36, 84, 36, 84, 36, + 84, 36, 84, 52, 53, 70, 20, 84, 36, 180, 164, 81, + 69, 74, 89, 133, 0, 14, 17, 6, 0, 6, 100, 36, + 36, 36, 240, 240, 36, 36, 36, 36, 240, 240, 224, 19, + 6, 0, 6, 100, 36, 36, 36, 240, 240, 36, 36, 36, + 36, 50, 51, 50, 240, 208, 23, 6, 0, 6, 4, 36, + 36, 36, 132, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 224, 20, 23, 0, 28, 111, 6, 47, + 6, 47, 6, 0, 8, 127, 6, 47, 6, 47, 6, 0, + 29, 27, 12, 0, 12, 51, 147, 147, 147, 240, 99, 147, + 147, 147, 131, 147, 132, 116, 131, 147, 147, 82, 35, 67, + 42, 70, 240, 208, 28, 13, 240, 214, 90, 51, 68, 34, + 84, 148, 148, 133, 117, 132, 132, 148, 132, 148, 148, 148, + 240, 116, 148, 148, 148, 0, 12, 16, 52, 19, 240, 240, + 246, 171, 117, 53, 84, 100, 68, 57, 52, 42, 51, 36, + 37, 36, 20, 68, 36, 20, 68, 36, 20, 68, 36, 20, + 68, 36, 20, 68, 36, 20, 68, 36, 20, 68, 52, 20, + 36, 68, 40, 100, 38, 118, 99, 108, 151, 0, 17, 48, + 40, 20, 0, 5, 117, 230, 231, 200, 200, 195, 36, 164, + 36, 164, 36, 163, 68, 132, 68, 132, 68, 131, 100, 100, + 100, 110, 111, 79, 1, 68, 132, 68, 133, 36, 164, 36, + 164, 0, 17, 96, 41, 18, 240, 240, 108, 110, 68, 100, + 68, 116, 52, 116, 52, 116, 52, 116, 52, 116, 52, 85, + 76, 109, 84, 101, 52, 116, 52, 132, 36, 132, 36, 132, + 36, 132, 36, 116, 63, 61, 0, 16, 48, 30, 18, 240, + 240, 200, 140, 93, 69, 99, 53, 212, 213, 212, 228, 228, + 228, 228, 228, 229, 228, 229, 145, 69, 99, 93, 108, 136, + 0, 16, 32, 43, 19, 240, 240, 140, 126, 84, 101, 68, + 117, 52, 132, 52, 147, 52, 148, 36, 148, 36, 148, 36, + 148, 36, 148, 36, 148, 36, 148, 36, 148, 36, 147, 52, + 132, 52, 132, 52, 101, 78, 92, 0, 17, 64, 27, 16, + 240, 240, 45, 62, 45, 52, 196, 196, 196, 196, 205, 61, + 61, 52, 196, 196, 196, 196, 196, 206, 46, 46, 0, 14, + 32, 26, 15, 240, 253, 45, 45, 36, 180, 180, 180, 180, + 180, 188, 60, 60, 52, 180, 180, 180, 180, 180, 180, 180, + 0, 14, 64, 35, 19, 240, 240, 232, 157, 94, 69, 100, + 53, 145, 68, 229, 228, 244, 244, 244, 244, 103, 36, 103, + 37, 87, 52, 132, 53, 116, 69, 100, 79, 109, 136, 0, + 17, 32, 47, 19, 240, 240, 132, 148, 36, 148, 36, 148, + 36, 148, 36, 148, 36, 148, 36, 148, 36, 148, 47, 2, + 47, 2, 47, 2, 36, 148, 36, 148, 36, 148, 36, 148, + 36, 148, 36, 148, 36, 148, 36, 148, 36, 148, 0, 16, + 112, 25, 6, 196, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 240, + 240, 224, 27, 13, 240, 240, 52, 148, 148, 148, 148, 148, + 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 50, 53, + 58, 42, 86, 0, 12, 45, 19, 240, 240, 132, 148, 36, + 133, 36, 117, 52, 101, 68, 85, 84, 69, 100, 52, 132, + 36, 148, 21, 154, 155, 134, 36, 117, 53, 100, 84, 100, + 100, 84, 116, 68, 117, 52, 132, 52, 148, 36, 148, 0, + 16, 112, 26, 14, 240, 212, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 172, 44, + 44, 0, 12, 64, 70, 24, 0, 6, 6, 166, 38, 166, + 38, 166, 39, 135, 39, 135, 36, 18, 130, 20, 36, 19, + 99, 20, 36, 19, 99, 20, 36, 35, 67, 36, 36, 35, + 67, 36, 36, 35, 67, 36, 36, 51, 35, 52, 36, 51, + 35, 52, 36, 51, 35, 52, 36, 70, 68, 36, 70, 68, + 36, 69, 84, 36, 84, 84, 36, 84, 84, 36, 228, 0, + 21, 32, 57, 19, 240, 240, 134, 116, 38, 116, 39, 100, + 39, 100, 40, 84, 36, 19, 84, 36, 20, 68, 36, 35, + 68, 36, 35, 68, 36, 51, 52, 36, 51, 52, 36, 67, + 36, 36, 67, 36, 36, 68, 20, 36, 83, 20, 36, 88, + 36, 103, 36, 103, 36, 118, 36, 118, 0, 16, 112, 43, + 20, 0, 5, 103, 187, 117, 69, 99, 132, 68, 132, 67, + 163, 52, 164, 36, 164, 36, 164, 36, 164, 36, 164, 36, + 164, 36, 164, 36, 164, 52, 147, 68, 132, 69, 116, 85, + 69, 124, 168, 0, 18, 48, 34, 17, 240, 240, 76, 93, + 68, 100, 52, 116, 36, 116, 36, 116, 36, 116, 36, 116, + 36, 100, 62, 61, 75, 100, 212, 212, 212, 212, 212, 212, + 212, 0, 16, 64, 51, 20, 0, 5, 103, 187, 117, 69, + 100, 101, 68, 132, 68, 132, 52, 164, 36, 164, 36, 164, + 36, 164, 36, 164, 36, 164, 36, 164, 36, 164, 52, 51, + 52, 52, 52, 20, 69, 56, 85, 39, 124, 170, 240, 21, + 240, 20, 240, 21, 0, 10, 48, 43, 17, 240, 240, 75, + 109, 68, 100, 52, 116, 36, 116, 36, 116, 36, 116, 36, + 116, 36, 100, 61, 75, 100, 52, 100, 67, 100, 68, 84, + 84, 68, 84, 68, 100, 52, 100, 52, 116, 36, 116, 0, + 15, 16, 31, 16, 240, 240, 103, 123, 76, 53, 82, 68, + 113, 68, 197, 182, 185, 138, 122, 151, 197, 196, 196, 34, + 132, 36, 85, 45, 75, 119, 0, 14, 96, 46, 20, 240, + 240, 175, 3, 47, 3, 47, 3, 148, 240, 20, 240, 20, + 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, + 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, + 240, 20, 240, 20, 0, 18, 80, 45, 18, 240, 240, 100, + 132, 36, 132, 36, 132, 36, 132, 36, 132, 36, 132, 36, + 132, 36, 132, 36, 132, 36, 132, 36, 132, 36, 132, 36, + 132, 36, 132, 36, 132, 36, 132, 52, 100, 69, 69, 92, + 135, 0, 16, 80, 44, 21, 240, 240, 196, 180, 36, 180, + 37, 148, 68, 148, 68, 147, 85, 116, 100, 116, 100, 100, + 117, 84, 132, 84, 133, 52, 164, 52, 164, 52, 165, 20, + 196, 20, 196, 20, 200, 231, 230, 240, 21, 0, 19, 64, + 73, 29, 0, 7, 35, 133, 131, 36, 117, 131, 36, 118, + 115, 36, 103, 100, 51, 99, 19, 99, 68, 83, 19, 99, + 68, 83, 20, 83, 68, 68, 20, 68, 83, 67, 51, 67, + 100, 51, 51, 67, 100, 51, 52, 51, 100, 35, 68, 36, + 115, 35, 83, 35, 132, 19, 83, 35, 132, 19, 84, 19, + 135, 104, 150, 118, 166, 118, 166, 118, 180, 148, 0, 26, + 32, 41, 21, 240, 240, 212, 133, 69, 101, 101, 84, 133, + 53, 133, 37, 165, 20, 201, 215, 230, 240, 21, 246, 247, + 217, 181, 21, 149, 52, 148, 69, 117, 85, 85, 117, 53, + 149, 37, 149, 0, 18, 80, 44, 22, 240, 240, 229, 180, + 53, 148, 84, 132, 101, 101, 117, 84, 148, 68, 165, 37, + 181, 20, 216, 232, 246, 240, 36, 240, 52, 240, 52, 240, + 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, 52, 0, + 20, 64, 32, 18, 240, 240, 111, 1, 47, 1, 47, 1, + 197, 212, 213, 197, 197, 212, 213, 197, 212, 212, 213, 197, + 212, 212, 223, 1, 47, 1, 47, 1, 0, 16, 31, 9, + 151, 39, 36, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 87, 39, 32, 20, 12, 240, 178, 66, 51, 51, + 50, 66, 52, 36, 36, 36, 36, 36, 36, 36, 0, 30, + 32, 31, 9, 151, 39, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 39, 39, 32, 14, 11, 240, 163, + 117, 83, 19, 66, 51, 34, 82, 0, 30, 64, 8, 6, + 196, 36, 36, 0, 18, 32, 12, 6, 226, 51, 50, 52, + 36, 36, 36, 0, 15, 32, 28, 14, 0, 16, 23, 90, + 67, 68, 49, 100, 164, 134, 69, 20, 52, 52, 36, 68, + 36, 68, 37, 37, 59, 68, 36, 0, 12, 64, 37, 15, + 240, 244, 180, 180, 180, 180, 180, 180, 180, 36, 92, 53, + 52, 52, 84, 36, 84, 36, 84, 36, 84, 36, 84, 36, + 84, 36, 84, 37, 52, 59, 68, 21, 0, 13, 96, 23, + 14, 0, 16, 38, 106, 52, 66, 67, 164, 164, 164, 164, + 164, 164, 113, 52, 67, 74, 102, 0, 12, 96, 38, 15, + 240, 240, 148, 180, 180, 180, 180, 180, 180, 85, 20, 75, + 52, 68, 36, 84, 36, 84, 36, 84, 36, 84, 36, 84, + 36, 84, 36, 84, 52, 53, 75, 85, 20, 0, 13, 48, + 25, 14, 0, 16, 37, 121, 68, 52, 51, 83, 36, 83, + 44, 44, 36, 164, 179, 113, 52, 67, 74, 102, 0, 12, + 96, 27, 12, 240, 213, 88, 52, 50, 52, 132, 132, 132, + 120, 72, 84, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 0, 11, 48, 35, 16, 0, 18, 54, 35, 61, 36, + 67, 84, 68, 68, 68, 68, 68, 68, 67, 106, 97, 22, + 130, 234, 108, 62, 35, 116, 35, 131, 36, 100, 60, 89, + 240, 240, 112, 39, 14, 240, 212, 164, 164, 164, 164, 164, + 164, 164, 36, 68, 22, 53, 52, 36, 68, 36, 68, 36, + 68, 36, 68, 36, 68, 36, 68, 36, 68, 36, 68, 36, + 68, 36, 68, 0, 12, 64, 23, 6, 196, 36, 36, 36, + 240, 84, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 240, 240, 224, 30, 10, 240, 148, 100, 100, 100, + 240, 240, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, + 100, 100, 100, 100, 100, 33, 52, 39, 69, 240, 144, 35, + 15, 240, 244, 180, 180, 180, 180, 180, 180, 180, 68, 52, + 53, 52, 37, 68, 20, 104, 120, 120, 121, 100, 36, 84, + 52, 68, 52, 68, 68, 52, 84, 0, 13, 48, 25, 6, + 196, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 240, 240, 224, 46, + 23, 0, 25, 116, 36, 69, 68, 23, 23, 53, 54, 52, + 36, 69, 68, 36, 68, 84, 36, 68, 84, 36, 68, 84, + 36, 68, 84, 36, 68, 84, 36, 68, 84, 36, 68, 84, + 36, 68, 84, 36, 68, 84, 0, 20, 48, 33, 14, 0, + 15, 100, 36, 68, 22, 53, 52, 36, 68, 36, 68, 36, + 68, 36, 68, 36, 68, 36, 68, 36, 68, 36, 68, 36, + 68, 36, 68, 0, 12, 64, 29, 16, 0, 18, 70, 138, + 84, 68, 67, 100, 36, 100, 36, 100, 36, 100, 36, 100, + 36, 100, 36, 100, 52, 68, 90, 134, 0, 14, 96, 36, + 15, 0, 16, 116, 36, 92, 53, 52, 52, 84, 36, 84, + 36, 84, 36, 84, 36, 84, 36, 84, 36, 84, 37, 52, + 59, 68, 21, 84, 180, 180, 180, 180, 240, 240, 176, 36, + 15, 0, 17, 37, 20, 75, 52, 53, 37, 68, 36, 84, + 36, 84, 36, 84, 36, 84, 36, 84, 37, 68, 52, 53, + 75, 85, 20, 180, 180, 180, 180, 180, 240, 240, 32, 22, + 11, 0, 12, 52, 35, 36, 20, 41, 38, 85, 100, 116, + 116, 116, 116, 116, 116, 116, 0, 10, 64, 22, 12, 0, + 13, 102, 88, 51, 66, 51, 148, 136, 88, 103, 132, 33, + 99, 35, 67, 41, 86, 0, 11, 24, 12, 0, 7, 100, + 132, 132, 132, 106, 42, 68, 132, 132, 132, 132, 132, 132, + 132, 132, 49, 72, 85, 0, 11, 33, 14, 0, 15, 100, + 68, 36, 68, 36, 68, 36, 68, 36, 68, 36, 68, 36, + 68, 36, 68, 36, 68, 36, 68, 36, 53, 54, 20, 68, + 36, 0, 12, 64, 30, 15, 0, 16, 115, 115, 36, 84, + 51, 83, 67, 83, 68, 52, 68, 51, 99, 51, 100, 20, + 100, 19, 131, 19, 135, 134, 165, 0, 13, 112, 43, 21, + 0, 23, 83, 83, 83, 35, 83, 83, 36, 67, 68, 51, + 53, 51, 67, 53, 51, 68, 37, 51, 83, 22, 35, 99, + 18, 35, 19, 99, 18, 35, 19, 102, 39, 116, 54, 132, + 69, 132, 69, 0, 19, 29, 15, 0, 16, 116, 83, 68, + 52, 68, 36, 100, 19, 134, 165, 179, 181, 147, 19, 116, + 20, 84, 52, 67, 83, 52, 84, 0, 13, 48, 34, 14, + 0, 15, 99, 99, 36, 83, 51, 67, 68, 51, 83, 51, + 83, 35, 100, 19, 115, 19, 118, 149, 149, 163, 179, 179, + 178, 113, 51, 118, 133, 240, 240, 112, 20, 13, 0, 14, + 91, 43, 147, 148, 132, 132, 147, 148, 132, 132, 147, 155, + 43, 0, 11, 80, 8, 17, 0, 27, 95, 47, 0, 30, + 12, 33, 0, 53, 95, 15, 1, 47, 15, 1, 0, 58, + 13, 12, 240, 164, 20, 36, 35, 51, 50, 66, 51, 0, + 35, 14, 12, 240, 179, 50, 53, 34, 34, 37, 50, 52, + 0, 34, 112, +}; + +//***************************************************************************** +// +// The font definition for the 28 point Cmss bold font. +// +//***************************************************************************** +const tFont g_sFontCmss28b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 30, + + // + // The height of the font. + // + 29, + + // + // The baseline of the font. + // + 22, + + // + // The offset to each character in the font. + // + { + 0, 5, 29, 49, 108, 149, 217, 265, + 277, 309, 341, 370, 419, 432, 441, 452, + 484, 527, 554, 584, 614, 650, 681, 719, + 745, 784, 822, 839, 858, 881, 901, 928, + 956, 1008, 1048, 1089, 1119, 1162, 1189, 1215, + 1250, 1297, 1322, 1349, 1394, 1420, 1490, 1547, + 1590, 1624, 1675, 1718, 1749, 1795, 1840, 1884, + 1957, 1998, 2042, 2074, 2105, 2125, 2156, 2170, + 2178, 2190, 2218, 2255, 2278, 2316, 2341, 2368, + 2403, 2442, 2465, 2495, 2530, 2555, 2601, 2634, + 2663, 2699, 2735, 2757, 2779, 2803, 2836, 2866, + 2909, 2938, 2972, 2992, 3000, 3012, 3025, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss28bData +}; diff --git a/grlib/fonts/fontcmss28i.c b/grlib/fonts/fontcmss28i.c new file mode 100644 index 0000000..1768fa9 --- /dev/null +++ b/grlib/fonts/fontcmss28i.c @@ -0,0 +1,349 @@ +//***************************************************************************** +// +// fontcmss28i.c - Font definition for the 28pt Cmss italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 28 point +// Bold: no +// Italic: yes +// Memory usage: 3108 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 28 point Cmss italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss28iData[2907] = +{ + 5, 11, 0, 38, 64, 23, 8, 240, 82, 98, 82, 98, + 98, 98, 98, 82, 98, 98, 98, 97, 98, 98, 240, 226, + 98, 0, 7, 96, 18, 10, 240, 98, 50, 50, 50, 50, + 50, 49, 65, 50, 50, 49, 65, 0, 25, 64, 55, 22, + 0, 7, 1, 81, 225, 97, 225, 81, 241, 81, 225, 81, + 241, 81, 225, 81, 241, 81, 225, 81, 143, 4, 145, 81, + 241, 81, 225, 81, 241, 81, 159, 4, 129, 81, 225, 81, + 241, 81, 225, 81, 241, 81, 225, 81, 241, 81, 225, 82, + 225, 81, 0, 7, 32, 42, 16, 146, 226, 183, 137, 99, + 18, 34, 98, 34, 146, 50, 146, 49, 162, 34, 163, 18, + 182, 182, 182, 162, 34, 162, 34, 161, 50, 146, 50, 146, + 34, 83, 34, 19, 105, 134, 194, 226, 0, 11, 32, 68, + 19, 67, 145, 85, 113, 82, 34, 113, 66, 50, 97, 82, + 50, 81, 82, 66, 66, 82, 66, 65, 98, 50, 65, 114, + 50, 49, 130, 34, 50, 148, 65, 240, 33, 81, 177, 83, + 146, 65, 34, 129, 66, 34, 113, 82, 34, 97, 82, 50, + 97, 82, 50, 81, 98, 35, 65, 114, 34, 65, 130, 34, + 65, 148, 65, 163, 0, 12, 64, 46, 19, 0, 5, 100, + 230, 194, 50, 194, 50, 178, 66, 178, 50, 194, 34, 210, + 18, 228, 113, 114, 130, 99, 130, 67, 18, 98, 66, 50, + 82, 81, 67, 50, 82, 83, 18, 98, 100, 115, 69, 136, + 23, 69, 69, 0, 17, 10, 5, 178, 50, 50, 49, 50, + 49, 0, 13, 31, 11, 129, 145, 146, 130, 130, 146, 130, + 146, 130, 146, 146, 130, 146, 146, 146, 130, 146, 146, 146, + 146, 146, 146, 146, 146, 162, 146, 161, 162, 112, 31, 12, + 98, 178, 162, 162, 178, 162, 162, 162, 162, 162, 162, 162, + 162, 147, 146, 162, 162, 146, 162, 162, 146, 162, 146, 162, + 146, 146, 161, 146, 160, 20, 13, 98, 177, 178, 114, 34, + 34, 72, 101, 132, 120, 67, 18, 19, 114, 177, 178, 0, + 27, 41, 19, 0, 13, 17, 240, 49, 240, 33, 240, 49, + 240, 49, 240, 49, 240, 49, 240, 33, 240, 49, 175, 2, + 161, 240, 49, 240, 33, 240, 49, 240, 49, 240, 49, 240, + 49, 240, 33, 0, 13, 48, 12, 5, 0, 12, 2, 50, + 50, 49, 50, 49, 240, 64, 9, 9, 0, 15, 103, 39, + 0, 13, 96, 8, 4, 0, 9, 66, 34, 240, 240, 59, + 18, 241, 240, 18, 240, 17, 240, 17, 240, 33, 240, 17, + 240, 33, 240, 17, 240, 18, 240, 17, 240, 18, 240, 17, + 240, 17, 240, 33, 240, 17, 240, 33, 240, 17, 240, 18, + 240, 17, 240, 18, 240, 17, 240, 17, 240, 33, 240, 17, + 240, 33, 240, 17, 240, 18, 240, 17, 240, 32, 39, 14, + 0, 6, 4, 135, 99, 51, 82, 82, 66, 98, 66, 98, + 50, 114, 50, 114, 50, 99, 35, 98, 50, 114, 50, 114, + 50, 98, 66, 98, 66, 82, 83, 51, 103, 132, 0, 13, + 32, 25, 11, 240, 240, 177, 86, 85, 146, 146, 146, 131, + 130, 146, 146, 146, 130, 146, 146, 146, 146, 89, 41, 0, + 9, 112, 29, 15, 0, 6, 68, 151, 114, 67, 82, 98, + 81, 114, 81, 114, 210, 194, 209, 209, 209, 194, 194, 193, + 209, 194, 203, 74, 0, 13, 96, 30, 14, 0, 6, 5, + 135, 83, 66, 81, 98, 194, 179, 163, 133, 149, 194, 210, + 194, 194, 49, 130, 49, 114, 67, 66, 103, 133, 0, 13, + 16, 33, 14, 0, 6, 51, 161, 18, 148, 161, 18, 146, + 18, 130, 34, 114, 34, 114, 50, 99, 50, 98, 66, 82, + 67, 76, 44, 146, 194, 179, 178, 194, 0, 13, 30, 15, + 0, 6, 25, 104, 114, 194, 210, 210, 210, 19, 151, 115, + 51, 98, 82, 210, 210, 210, 194, 81, 114, 83, 51, 119, + 148, 0, 14, 32, 36, 13, 240, 240, 245, 118, 98, 162, + 162, 178, 20, 82, 21, 83, 51, 51, 82, 51, 82, 50, + 98, 50, 98, 50, 98, 50, 82, 66, 82, 67, 50, 102, + 132, 0, 12, 32, 25, 14, 240, 240, 219, 59, 178, 178, + 178, 179, 178, 178, 178, 194, 178, 179, 178, 179, 178, 194, + 179, 178, 0, 13, 96, 37, 14, 0, 6, 5, 120, 83, + 66, 82, 82, 66, 98, 66, 98, 67, 66, 103, 118, 114, + 66, 82, 98, 66, 98, 50, 114, 50, 114, 50, 98, 67, + 66, 103, 133, 0, 13, 16, 36, 14, 0, 6, 4, 135, + 99, 51, 66, 98, 66, 98, 50, 114, 50, 114, 50, 99, + 50, 99, 51, 52, 86, 18, 84, 35, 178, 179, 163, 81, + 67, 103, 132, 0, 13, 48, 13, 7, 0, 8, 34, 67, + 0, 7, 35, 66, 0, 6, 96, 16, 7, 0, 8, 34, + 82, 0, 7, 50, 82, 82, 81, 82, 81, 240, 192, 23, + 8, 0, 7, 66, 98, 240, 226, 98, 97, 98, 98, 98, + 98, 82, 98, 98, 98, 98, 82, 98, 240, 112, 13, 20, + 0, 27, 95, 2, 0, 10, 47, 2, 0, 27, 112, 25, + 11, 0, 10, 50, 146, 240, 240, 193, 146, 146, 145, 146, + 130, 130, 130, 146, 130, 146, 146, 82, 40, 69, 240, 192, + 25, 11, 240, 149, 88, 34, 82, 146, 146, 131, 115, 115, + 115, 130, 130, 145, 146, 146, 240, 240, 178, 146, 0, 10, + 96, 50, 17, 240, 240, 197, 168, 131, 67, 98, 54, 82, + 55, 66, 50, 51, 51, 35, 66, 50, 50, 82, 50, 34, + 98, 34, 50, 98, 34, 50, 82, 50, 50, 82, 50, 50, + 67, 50, 51, 35, 67, 54, 99, 51, 132, 113, 106, 150, + 0, 15, 96, 40, 17, 240, 240, 227, 227, 212, 194, 18, + 193, 34, 178, 35, 161, 51, 146, 66, 145, 82, 130, 82, + 129, 98, 122, 108, 82, 115, 66, 131, 66, 146, 50, 162, + 50, 162, 34, 178, 0, 15, 16, 39, 17, 240, 240, 137, + 123, 99, 84, 82, 130, 82, 130, 82, 130, 67, 114, 82, + 99, 105, 138, 114, 99, 83, 115, 66, 146, 66, 146, 66, + 146, 51, 130, 66, 115, 91, 105, 0, 15, 112, 28, 17, + 240, 240, 198, 153, 100, 81, 99, 226, 226, 226, 242, 242, + 226, 242, 242, 242, 242, 243, 242, 244, 82, 121, 165, 0, + 15, 112, 41, 19, 240, 240, 201, 171, 130, 100, 114, 130, + 99, 131, 82, 162, 82, 162, 82, 162, 82, 162, 67, 162, + 66, 178, 66, 162, 82, 162, 67, 146, 82, 147, 82, 131, + 98, 100, 123, 122, 0, 17, 96, 26, 17, 240, 240, 124, + 92, 82, 242, 227, 227, 226, 242, 250, 107, 99, 226, 242, + 242, 227, 226, 242, 252, 91, 0, 15, 80, 26, 17, 240, + 240, 124, 91, 98, 242, 227, 227, 226, 242, 250, 106, 114, + 242, 242, 242, 227, 226, 242, 242, 242, 0, 16, 96, 33, + 17, 240, 240, 197, 169, 100, 82, 83, 226, 226, 227, 226, + 242, 226, 242, 242, 101, 66, 101, 66, 146, 67, 130, 82, + 114, 100, 82, 122, 150, 0, 15, 96, 43, 19, 240, 240, + 179, 131, 82, 146, 98, 146, 98, 146, 98, 131, 83, 131, + 82, 146, 98, 146, 109, 94, 83, 131, 82, 146, 98, 146, + 98, 146, 83, 131, 82, 147, 82, 146, 98, 146, 98, 146, + 0, 17, 48, 25, 8, 240, 82, 98, 82, 98, 98, 98, + 98, 82, 98, 98, 98, 98, 82, 98, 98, 98, 98, 82, + 98, 0, 7, 96, 27, 15, 240, 240, 178, 195, 195, 194, + 210, 210, 195, 194, 210, 210, 195, 195, 194, 210, 210, 195, + 97, 67, 104, 149, 0, 14, 16, 44, 19, 240, 240, 179, + 131, 82, 131, 98, 115, 114, 99, 130, 82, 147, 66, 162, + 66, 178, 35, 194, 20, 185, 165, 34, 164, 51, 146, 83, + 146, 99, 115, 99, 114, 130, 114, 131, 98, 146, 98, 147, + 0, 17, 32, 25, 12, 240, 195, 146, 162, 162, 162, 147, + 146, 162, 162, 147, 146, 162, 162, 162, 147, 146, 162, 170, + 42, 0, 10, 96, 69, 23, 0, 6, 20, 179, 84, 164, + 84, 149, 84, 148, 100, 130, 18, 85, 130, 18, 82, 34, + 98, 34, 82, 34, 98, 18, 98, 34, 82, 34, 83, 34, + 82, 34, 82, 50, 66, 50, 82, 50, 65, 51, 82, 50, + 50, 50, 98, 51, 18, 66, 83, 66, 18, 66, 82, 84, + 82, 82, 84, 67, 82, 83, 82, 98, 83, 82, 0, 20, + 112, 57, 19, 240, 240, 180, 130, 84, 114, 100, 114, 98, + 18, 98, 98, 18, 98, 82, 34, 83, 82, 34, 82, 98, + 35, 66, 98, 50, 66, 83, 50, 66, 82, 67, 35, 82, + 67, 34, 98, 82, 34, 98, 82, 34, 83, 83, 18, 82, + 102, 82, 116, 98, 116, 98, 116, 0, 17, 48, 41, 19, + 0, 5, 101, 201, 147, 68, 114, 130, 98, 147, 66, 178, + 50, 194, 50, 194, 50, 194, 34, 210, 34, 194, 50, 194, + 50, 179, 50, 178, 67, 146, 98, 130, 116, 67, 153, 197, + 0, 17, 112, 33, 17, 240, 240, 137, 123, 98, 115, 82, + 130, 82, 130, 82, 130, 67, 130, 66, 130, 82, 99, 106, + 105, 131, 226, 242, 242, 227, 226, 242, 242, 0, 16, 96, + 52, 19, 0, 5, 101, 201, 147, 68, 114, 130, 98, 147, + 66, 178, 51, 178, 50, 194, 50, 194, 34, 210, 34, 194, + 50, 194, 50, 194, 50, 67, 66, 67, 67, 34, 98, 67, + 18, 116, 52, 153, 200, 240, 19, 240, 34, 240, 35, 240, + 19, 0, 7, 112, 41, 17, 240, 240, 121, 139, 98, 115, + 82, 130, 82, 130, 67, 130, 66, 130, 82, 100, 90, 105, + 130, 82, 130, 82, 130, 83, 114, 98, 99, 98, 98, 115, + 82, 130, 82, 130, 82, 131, 0, 15, 48, 28, 17, 240, + 240, 197, 169, 114, 97, 114, 226, 242, 242, 244, 230, 199, + 228, 227, 242, 242, 242, 81, 130, 83, 83, 121, 165, 0, + 16, 36, 18, 240, 240, 111, 1, 47, 146, 240, 18, 240, + 18, 240, 18, 243, 242, 240, 18, 240, 18, 243, 243, 242, + 240, 18, 240, 18, 243, 242, 240, 18, 240, 18, 0, 17, + 48, 43, 17, 240, 240, 99, 130, 67, 130, 66, 146, 66, + 146, 66, 130, 67, 130, 66, 146, 66, 146, 66, 131, 66, + 130, 66, 146, 66, 146, 66, 146, 66, 130, 82, 130, 83, + 98, 114, 67, 136, 180, 0, 16, 16, 42, 19, 240, 240, + 131, 179, 50, 178, 66, 162, 82, 162, 83, 130, 99, 115, + 99, 114, 130, 98, 146, 98, 146, 82, 162, 82, 163, 50, + 179, 50, 179, 34, 210, 18, 226, 18, 228, 244, 243, 0, + 18, 32, 74, 26, 0, 6, 67, 130, 146, 35, 116, 114, + 66, 116, 114, 66, 98, 18, 98, 82, 98, 18, 98, 82, + 82, 34, 82, 98, 82, 34, 82, 98, 81, 50, 66, 114, + 66, 50, 66, 114, 65, 66, 50, 130, 50, 66, 50, 130, + 49, 82, 34, 146, 34, 82, 34, 146, 34, 82, 33, 162, + 18, 98, 18, 162, 18, 98, 17, 180, 116, 180, 115, 210, + 131, 0, 24, 16, 42, 20, 240, 240, 227, 146, 114, 130, + 131, 98, 162, 83, 163, 51, 194, 35, 214, 244, 240, 19, + 240, 35, 240, 20, 242, 34, 211, 34, 195, 51, 163, 82, + 162, 99, 130, 131, 98, 147, 82, 179, 0, 18, 43, 19, + 240, 240, 131, 179, 50, 163, 67, 146, 98, 130, 115, 98, + 131, 82, 163, 51, 163, 35, 194, 19, 213, 243, 240, 18, + 240, 34, 240, 34, 240, 19, 240, 18, 240, 34, 240, 34, + 240, 34, 0, 18, 32, 26, 18, 240, 240, 172, 108, 242, + 242, 242, 242, 243, 227, 242, 242, 242, 242, 242, 243, 227, + 242, 242, 253, 93, 0, 16, 48, 31, 12, 100, 132, 114, + 162, 162, 162, 162, 146, 162, 162, 162, 162, 146, 162, 162, + 162, 146, 162, 162, 162, 162, 146, 162, 162, 162, 162, 149, + 117, 112, 16, 10, 240, 113, 65, 49, 65, 50, 50, 50, + 50, 50, 50, 0, 26, 80, 31, 12, 100, 132, 162, 162, + 146, 162, 162, 162, 162, 146, 162, 162, 162, 146, 162, 162, + 162, 162, 146, 162, 162, 162, 162, 146, 162, 162, 117, 117, + 112, 15, 11, 240, 179, 114, 17, 98, 34, 66, 65, 50, + 82, 0, 29, 16, 7, 5, 243, 35, 0, 14, 80, 10, + 5, 193, 49, 50, 50, 50, 0, 13, 64, 23, 12, 0, + 14, 5, 88, 66, 66, 162, 162, 102, 71, 66, 66, 50, + 82, 50, 67, 57, 68, 18, 0, 11, 35, 14, 240, 240, + 34, 194, 194, 194, 179, 178, 194, 194, 36, 104, 83, 67, + 66, 98, 66, 98, 66, 98, 66, 98, 50, 98, 66, 98, + 67, 51, 88, 83, 20, 0, 13, 21, 13, 0, 15, 37, + 104, 67, 65, 66, 178, 162, 178, 178, 178, 179, 81, 88, + 101, 0, 12, 16, 36, 15, 240, 240, 178, 210, 210, 194, + 210, 210, 210, 116, 34, 104, 99, 51, 82, 98, 82, 98, + 66, 99, 66, 98, 82, 98, 82, 98, 83, 52, 104, 131, + 34, 0, 13, 112, 22, 13, 0, 15, 36, 120, 67, 51, + 50, 98, 58, 43, 34, 178, 178, 179, 82, 72, 101, 0, + 12, 16, 25, 12, 240, 244, 117, 98, 146, 162, 162, 161, + 135, 87, 114, 162, 162, 146, 162, 162, 162, 161, 162, 162, + 0, 11, 96, 35, 17, 0, 19, 116, 35, 122, 98, 66, + 131, 66, 130, 82, 130, 67, 131, 50, 151, 146, 20, 161, + 240, 24, 154, 98, 114, 82, 130, 83, 98, 121, 150, 240, + 240, 208, 37, 13, 240, 242, 178, 178, 162, 178, 178, 178, + 178, 20, 82, 22, 67, 66, 66, 82, 66, 82, 51, 82, + 50, 82, 66, 82, 66, 82, 66, 82, 51, 82, 50, 82, + 0, 11, 112, 22, 8, 240, 210, 83, 240, 240, 98, 98, + 98, 98, 98, 82, 98, 98, 98, 98, 82, 98, 0, 7, + 96, 28, 13, 0, 6, 2, 163, 0, 7, 98, 162, 178, + 178, 178, 177, 178, 178, 178, 178, 162, 178, 178, 178, 162, + 118, 132, 240, 240, 64, 35, 14, 240, 240, 34, 194, 194, + 178, 194, 194, 194, 194, 67, 66, 66, 98, 50, 114, 19, + 133, 134, 135, 115, 34, 114, 51, 98, 66, 82, 82, 82, + 98, 0, 12, 96, 25, 8, 240, 82, 98, 82, 98, 98, + 98, 98, 82, 98, 98, 98, 98, 82, 98, 98, 98, 98, + 82, 98, 0, 7, 96, 42, 20, 0, 22, 98, 36, 52, + 82, 22, 22, 67, 52, 66, 66, 82, 82, 66, 82, 82, + 50, 98, 82, 50, 82, 82, 66, 82, 82, 66, 82, 82, + 51, 82, 82, 50, 83, 82, 50, 82, 82, 0, 18, 31, + 13, 0, 15, 2, 20, 82, 22, 67, 66, 66, 82, 66, + 82, 51, 82, 50, 82, 66, 82, 66, 82, 66, 82, 51, + 82, 50, 82, 0, 11, 112, 27, 14, 0, 16, 53, 120, + 83, 67, 50, 114, 50, 114, 34, 130, 34, 130, 34, 114, + 50, 99, 51, 67, 88, 117, 0, 13, 16, 34, 15, 0, + 17, 50, 36, 120, 100, 51, 82, 98, 82, 98, 82, 98, + 82, 98, 66, 98, 82, 83, 83, 51, 104, 98, 36, 114, + 210, 210, 210, 194, 240, 240, 208, 34, 14, 0, 16, 36, + 19, 88, 83, 51, 67, 82, 66, 98, 50, 98, 66, 98, + 66, 98, 66, 98, 67, 52, 88, 115, 34, 194, 194, 178, + 194, 194, 240, 240, 64, 21, 11, 0, 12, 82, 50, 66, + 20, 68, 115, 130, 131, 130, 146, 146, 146, 130, 146, 0, + 10, 96, 21, 12, 0, 14, 5, 103, 67, 65, 66, 163, + 150, 133, 162, 162, 65, 67, 56, 101, 0, 11, 16, 23, + 9, 0, 6, 1, 114, 114, 114, 87, 39, 50, 114, 114, + 114, 113, 114, 114, 114, 118, 52, 0, 8, 64, 31, 13, + 0, 14, 114, 82, 66, 82, 50, 82, 66, 82, 66, 82, + 66, 82, 65, 83, 50, 82, 66, 82, 66, 67, 70, 18, + 83, 50, 0, 11, 112, 29, 13, 0, 14, 82, 114, 34, + 98, 50, 83, 51, 66, 82, 50, 98, 50, 98, 34, 114, + 34, 114, 18, 130, 18, 132, 162, 0, 12, 64, 45, 18, + 0, 20, 34, 82, 82, 34, 82, 82, 34, 67, 66, 50, + 65, 17, 66, 50, 50, 18, 34, 66, 49, 34, 34, 67, + 18, 34, 18, 98, 17, 50, 18, 100, 50, 17, 115, 68, + 115, 67, 130, 83, 0, 16, 80, 28, 15, 0, 17, 34, + 98, 98, 66, 115, 34, 146, 18, 164, 194, 196, 162, 18, + 147, 34, 115, 50, 114, 82, 67, 99, 0, 13, 64, 33, + 16, 0, 18, 50, 114, 82, 98, 99, 66, 130, 66, 130, + 50, 146, 50, 146, 34, 162, 33, 196, 193, 17, 211, 210, + 226, 210, 210, 181, 179, 240, 240, 240, 19, 14, 0, 16, + 10, 73, 178, 178, 178, 178, 178, 178, 178, 178, 186, 73, + 0, 12, 112, 9, 15, 0, 24, 61, 45, 0, 24, 80, + 11, 28, 0, 45, 79, 11, 47, 11, 0, 45, 96, 16, + 11, 240, 146, 50, 66, 34, 66, 49, 82, 34, 66, 49, + 0, 29, 64, 12, 11, 240, 240, 83, 34, 56, 34, 51, + 0, 30, 80, +}; + +//***************************************************************************** +// +// The font definition for the 28 point Cmss italic font. +// +//***************************************************************************** +const tFont g_sFontCmss28i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 25, + + // + // The height of the font. + // + 28, + + // + // The baseline of the font. + // + 21, + + // + // The offset to each character in the font. + // + { + 0, 5, 28, 46, 101, 143, 211, 257, + 267, 298, 329, 349, 390, 402, 411, 419, + 478, 517, 542, 571, 601, 634, 664, 700, + 725, 762, 798, 811, 827, 850, 863, 888, + 913, 963, 1003, 1042, 1070, 1111, 1137, 1163, + 1196, 1239, 1264, 1291, 1335, 1360, 1429, 1486, + 1527, 1560, 1612, 1653, 1681, 1717, 1760, 1802, + 1876, 1918, 1961, 1987, 2018, 2034, 2065, 2080, + 2087, 2097, 2120, 2155, 2176, 2212, 2234, 2259, + 2294, 2331, 2353, 2381, 2416, 2441, 2483, 2514, + 2541, 2575, 2609, 2630, 2651, 2674, 2705, 2734, + 2779, 2807, 2840, 2859, 2868, 2879, 2895, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss28iData +}; diff --git a/grlib/fonts/fontcmss30.c b/grlib/fonts/fontcmss30.c new file mode 100644 index 0000000..ef53e66 --- /dev/null +++ b/grlib/fonts/fontcmss30.c @@ -0,0 +1,369 @@ +//***************************************************************************** +// +// fontcmss30.c - Font definition for the 30pt Cmss font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 30 point +// Bold: no +// Italic: no +// Memory usage: 3352 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 30 point Cmss font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss30Data[3151] = +{ + 5, 13, 0, 50, 48, 24, 5, 162, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 240, + 50, 50, 240, 240, 208, 18, 10, 240, 82, 50, 50, 50, + 65, 65, 50, 50, 49, 65, 65, 65, 0, 29, 32, 66, + 23, 0, 6, 114, 81, 241, 97, 241, 81, 240, 17, 81, + 242, 81, 241, 97, 241, 81, 240, 17, 81, 242, 81, 241, + 97, 143, 5, 161, 81, 241, 97, 241, 97, 241, 81, 240, + 17, 81, 175, 5, 129, 97, 241, 82, 241, 81, 240, 17, + 81, 241, 97, 241, 82, 241, 81, 240, 17, 81, 241, 97, + 241, 81, 0, 7, 48, 46, 13, 66, 178, 150, 104, 82, + 18, 33, 66, 34, 114, 34, 114, 34, 114, 34, 115, 18, + 133, 134, 134, 149, 130, 19, 114, 34, 114, 34, 114, 34, + 114, 34, 49, 50, 34, 50, 34, 18, 73, 102, 146, 178, + 0, 10, 80, 73, 23, 35, 162, 117, 145, 130, 18, 130, + 114, 50, 113, 130, 50, 98, 130, 50, 97, 146, 50, 82, + 146, 50, 81, 162, 50, 65, 194, 18, 81, 197, 65, 227, + 81, 240, 97, 68, 225, 54, 193, 66, 34, 193, 50, 51, + 161, 66, 66, 161, 66, 66, 145, 82, 66, 130, 82, 66, + 129, 98, 66, 114, 98, 66, 113, 130, 34, 114, 134, 113, + 164, 0, 17, 112, 53, 21, 0, 6, 3, 240, 37, 240, + 18, 34, 226, 50, 226, 50, 226, 50, 226, 34, 242, 34, + 245, 240, 35, 114, 146, 130, 131, 130, 99, 18, 98, 99, + 34, 98, 83, 66, 66, 98, 83, 35, 98, 102, 115, 100, + 147, 69, 168, 23, 101, 85, 0, 21, 48, 11, 5, 162, + 50, 65, 50, 49, 65, 0, 14, 112, 34, 10, 81, 130, + 114, 129, 130, 130, 114, 130, 130, 130, 114, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 146, 130, 130, 130, 146, + 130, 145, 146, 146, 146, 48, 34, 9, 1, 130, 130, 130, + 114, 114, 130, 114, 114, 130, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 98, 114, 114, 98, 114, 113, + 114, 98, 113, 128, 27, 13, 66, 178, 178, 129, 34, 34, + 51, 18, 19, 72, 116, 148, 134, 83, 18, 19, 50, 34, + 34, 114, 178, 178, 0, 28, 64, 42, 22, 0, 17, 81, + 240, 97, 240, 97, 240, 97, 240, 97, 240, 97, 240, 97, + 240, 97, 240, 97, 207, 4, 193, 240, 97, 240, 97, 240, + 97, 240, 97, 240, 97, 240, 97, 240, 97, 240, 97, 0, + 18, 12, 5, 0, 13, 18, 50, 65, 50, 49, 65, 240, + 144, 9, 11, 0, 20, 88, 56, 0, 19, 80, 9, 5, + 0, 13, 18, 50, 240, 240, 208, 34, 14, 161, 209, 193, + 209, 209, 193, 209, 209, 193, 209, 209, 193, 209, 209, 193, + 209, 209, 193, 209, 209, 193, 209, 209, 193, 209, 209, 193, + 209, 209, 193, 209, 208, 43, 15, 0, 6, 20, 152, 114, + 67, 82, 98, 82, 98, 66, 130, 50, 130, 50, 130, 50, + 130, 50, 130, 50, 130, 50, 130, 50, 130, 50, 130, 50, + 130, 66, 99, 66, 98, 83, 67, 104, 148, 0, 15, 112, + 28, 13, 240, 240, 225, 163, 118, 115, 18, 178, 178, 178, + 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 122, + 58, 0, 13, 48, 31, 14, 240, 240, 245, 135, 98, 67, + 66, 99, 50, 114, 49, 130, 194, 194, 194, 178, 178, 194, + 178, 178, 178, 178, 178, 178, 187, 59, 0, 14, 48, 31, + 14, 240, 240, 245, 135, 98, 67, 66, 98, 194, 194, 194, + 178, 133, 149, 211, 194, 210, 194, 194, 194, 49, 115, 51, + 67, 88, 133, 0, 14, 96, 36, 15, 0, 6, 51, 195, + 180, 180, 162, 18, 162, 18, 146, 34, 146, 34, 130, 50, + 130, 50, 114, 66, 99, 66, 98, 82, 108, 60, 162, 210, + 210, 210, 210, 0, 15, 96, 32, 14, 240, 240, 217, 89, + 82, 194, 194, 194, 194, 194, 20, 120, 99, 51, 82, 82, + 210, 194, 194, 194, 194, 50, 98, 67, 67, 88, 132, 0, + 14, 112, 39, 15, 0, 6, 38, 135, 114, 194, 194, 210, + 209, 52, 98, 23, 84, 67, 67, 98, 66, 130, 50, 130, + 50, 130, 50, 130, 50, 130, 66, 114, 66, 98, 98, 67, + 104, 148, 0, 15, 112, 27, 14, 240, 240, 203, 59, 194, + 178, 193, 194, 178, 194, 178, 194, 194, 178, 194, 194, 194, + 178, 194, 194, 194, 194, 0, 15, 16, 41, 15, 0, 6, + 6, 136, 99, 67, 66, 130, 50, 130, 50, 130, 51, 114, + 67, 67, 104, 135, 99, 67, 82, 98, 66, 130, 50, 130, + 50, 130, 50, 130, 66, 98, 83, 67, 104, 148, 0, 15, + 112, 39, 14, 0, 5, 100, 135, 99, 51, 82, 82, 66, + 113, 66, 114, 50, 114, 50, 114, 50, 114, 50, 114, 66, + 83, 67, 52, 86, 18, 99, 50, 193, 194, 178, 97, 67, + 103, 132, 0, 15, 13, 5, 0, 6, 34, 50, 0, 6, + 2, 50, 240, 240, 208, 16, 5, 0, 6, 34, 50, 0, + 6, 2, 50, 65, 50, 49, 65, 240, 144, 24, 5, 240, + 240, 162, 50, 240, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 208, 13, 22, 0, + 33, 15, 4, 0, 14, 31, 4, 0, 33, 48, 27, 12, + 0, 12, 50, 162, 0, 5, 98, 162, 162, 162, 162, 146, + 162, 147, 146, 146, 162, 162, 162, 163, 66, 72, 85, 240, + 224, 26, 13, 240, 213, 105, 66, 83, 178, 178, 178, 163, + 147, 147, 162, 162, 178, 162, 178, 178, 178, 0, 6, 34, + 178, 0, 14, 54, 18, 240, 240, 197, 185, 132, 67, 99, + 114, 98, 70, 82, 72, 66, 51, 36, 50, 66, 67, 50, + 50, 98, 50, 50, 98, 50, 50, 98, 50, 50, 98, 50, + 50, 98, 51, 50, 66, 82, 51, 35, 82, 70, 114, 68, + 131, 240, 20, 83, 121, 182, 0, 18, 96, 45, 20, 0, + 5, 115, 240, 35, 240, 21, 245, 242, 18, 226, 35, 210, + 35, 195, 50, 194, 67, 178, 67, 163, 82, 162, 99, 146, + 99, 140, 141, 114, 131, 99, 146, 98, 163, 82, 163, 67, + 178, 66, 195, 0, 20, 48, 43, 17, 240, 240, 73, 139, + 98, 100, 82, 131, 66, 146, 66, 146, 66, 146, 66, 131, + 66, 100, 90, 123, 98, 115, 82, 146, 66, 147, 50, 162, + 50, 162, 50, 162, 50, 146, 66, 116, 76, 90, 0, 17, + 112, 32, 17, 240, 240, 166, 154, 99, 98, 83, 226, 226, + 242, 226, 242, 242, 242, 242, 242, 242, 240, 18, 242, 240, + 18, 243, 243, 98, 122, 150, 0, 17, 80, 45, 18, 240, + 240, 105, 155, 114, 115, 98, 131, 82, 147, 66, 162, 66, + 162, 66, 178, 50, 178, 50, 178, 50, 178, 50, 178, 50, + 178, 50, 178, 50, 162, 66, 162, 66, 147, 66, 131, 82, + 115, 107, 121, 0, 19, 16, 27, 15, 240, 252, 60, 50, + 210, 210, 210, 210, 210, 210, 219, 75, 66, 210, 210, 210, + 210, 210, 210, 210, 220, 60, 0, 15, 48, 27, 15, 240, + 252, 60, 50, 210, 210, 210, 210, 210, 210, 210, 219, 75, + 66, 210, 210, 210, 210, 210, 210, 210, 210, 0, 16, 80, + 43, 18, 240, 240, 199, 155, 100, 83, 83, 145, 82, 242, + 240, 18, 242, 240, 18, 240, 18, 240, 18, 240, 18, 240, + 18, 118, 51, 102, 66, 162, 66, 162, 82, 146, 83, 130, + 100, 98, 123, 150, 0, 18, 96, 47, 17, 240, 240, 66, + 162, 50, 162, 50, 162, 50, 162, 50, 162, 50, 162, 50, + 162, 50, 162, 50, 162, 62, 62, 50, 162, 50, 162, 50, + 162, 50, 162, 50, 162, 50, 162, 50, 162, 50, 162, 50, + 162, 50, 162, 0, 17, 48, 26, 5, 162, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 240, 240, 208, 29, 12, 240, 240, + 18, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 50, 67, 56, 101, 0, 12, + 80, 49, 18, 240, 240, 98, 147, 66, 146, 82, 131, 82, + 115, 98, 99, 114, 83, 130, 67, 146, 51, 162, 35, 178, + 21, 165, 19, 148, 35, 148, 51, 131, 83, 114, 99, 114, + 115, 98, 130, 98, 131, 82, 147, 66, 147, 66, 163, 0, + 18, 48, 27, 14, 240, 210, 194, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 203, 59, 0, 14, 48, 80, 22, 240, 240, 227, 211, 52, + 180, 52, 180, 52, 180, 50, 18, 146, 18, 50, 18, 146, + 18, 50, 19, 130, 18, 50, 34, 114, 34, 50, 34, 114, + 34, 50, 35, 83, 34, 50, 50, 82, 50, 50, 50, 82, + 50, 50, 51, 51, 50, 50, 66, 50, 66, 50, 66, 50, + 66, 50, 67, 19, 66, 50, 82, 18, 82, 50, 82, 18, + 82, 50, 85, 82, 50, 99, 98, 50, 99, 98, 0, 22, + 48, 64, 17, 240, 240, 68, 130, 52, 130, 53, 114, 50, + 18, 114, 50, 18, 114, 50, 19, 98, 50, 34, 98, 50, + 35, 82, 50, 50, 82, 50, 51, 66, 50, 66, 66, 50, + 67, 50, 50, 82, 50, 50, 83, 34, 50, 98, 34, 50, + 99, 18, 50, 114, 18, 50, 114, 18, 50, 117, 50, 132, + 50, 132, 0, 17, 48, 45, 20, 0, 5, 101, 217, 163, + 83, 131, 115, 114, 147, 82, 178, 82, 178, 66, 210, 50, + 210, 50, 210, 50, 210, 50, 210, 50, 210, 51, 194, 66, + 178, 82, 178, 98, 146, 115, 115, 131, 83, 169, 213, 0, + 21, 16, 36, 16, 240, 240, 41, 123, 82, 100, 66, 130, + 66, 146, 50, 146, 50, 146, 50, 146, 50, 130, 66, 115, + 75, 89, 114, 226, 226, 226, 226, 226, 226, 226, 226, 0, + 17, 96, 55, 20, 0, 5, 101, 217, 163, 83, 131, 115, + 114, 147, 82, 178, 82, 178, 66, 210, 50, 210, 50, 210, + 50, 210, 50, 210, 50, 210, 50, 210, 66, 178, 82, 82, + 66, 98, 67, 35, 99, 70, 131, 68, 169, 216, 240, 35, + 240, 51, 240, 51, 240, 35, 0, 10, 64, 45, 17, 240, + 240, 73, 139, 98, 115, 82, 131, 66, 146, 66, 146, 66, + 146, 66, 131, 66, 115, 91, 105, 130, 82, 130, 82, 130, + 98, 114, 98, 114, 114, 98, 114, 98, 130, 82, 130, 82, + 146, 66, 147, 0, 17, 48, 32, 15, 240, 240, 69, 137, + 83, 82, 82, 113, 66, 210, 210, 211, 211, 214, 167, 181, + 210, 211, 210, 210, 210, 49, 130, 67, 83, 89, 133, 0, + 15, 112, 48, 19, 240, 240, 143, 1, 63, 1, 162, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 0, + 20, 32, 47, 16, 240, 240, 34, 146, 50, 146, 50, 146, + 50, 146, 50, 146, 50, 146, 50, 146, 50, 146, 50, 146, + 50, 146, 50, 146, 50, 146, 50, 146, 50, 146, 50, 146, + 50, 146, 66, 114, 82, 114, 99, 51, 135, 165, 0, 16, + 112, 48, 20, 240, 240, 162, 210, 51, 179, 51, 178, 82, + 178, 83, 147, 83, 146, 114, 146, 115, 115, 115, 114, 146, + 114, 147, 83, 162, 82, 179, 66, 179, 50, 210, 50, 211, + 34, 211, 18, 242, 18, 242, 18, 244, 240, 35, 0, 21, + 32, 79, 28, 0, 7, 2, 147, 146, 50, 147, 131, 51, + 116, 130, 67, 117, 114, 82, 114, 18, 114, 82, 114, 18, + 99, 83, 82, 34, 98, 99, 82, 35, 82, 114, 82, 50, + 82, 115, 66, 50, 67, 115, 50, 66, 66, 146, 50, 67, + 50, 146, 50, 82, 50, 147, 34, 82, 34, 163, 18, 98, + 34, 178, 18, 99, 18, 178, 18, 114, 18, 178, 18, 116, + 196, 132, 211, 132, 211, 147, 0, 29, 47, 20, 240, 240, + 163, 163, 83, 131, 114, 130, 131, 99, 147, 67, 179, 50, + 195, 35, 214, 244, 240, 35, 240, 35, 240, 21, 227, 18, + 211, 35, 194, 67, 163, 82, 147, 99, 130, 131, 99, 147, + 67, 163, 66, 195, 0, 20, 48, 49, 21, 240, 240, 195, + 195, 67, 178, 98, 162, 115, 131, 131, 114, 147, 99, 163, + 67, 194, 66, 211, 35, 227, 18, 240, 20, 240, 36, 240, + 50, 240, 66, 240, 66, 240, 66, 240, 66, 240, 66, 240, + 66, 240, 66, 240, 66, 0, 22, 48, 28, 17, 240, 240, + 78, 62, 211, 226, 227, 211, 226, 227, 211, 227, 211, 226, + 227, 211, 227, 211, 226, 227, 211, 238, 62, 0, 17, 48, + 34, 8, 5, 53, 50, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 101, 53, 48, 17, 11, + 240, 129, 81, 65, 81, 50, 66, 49, 81, 66, 66, 50, + 66, 0, 32, 34, 8, 5, 53, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 53, 53, + 48, 16, 12, 240, 210, 148, 114, 33, 113, 50, 82, 66, + 50, 97, 0, 34, 112, 7, 5, 242, 50, 50, 0, 16, + 11, 5, 177, 65, 50, 49, 66, 50, 0, 14, 96, 26, + 13, 0, 16, 85, 104, 81, 83, 178, 178, 118, 88, 67, + 66, 50, 98, 50, 98, 51, 67, 73, 69, 34, 0, 13, + 48, 38, 14, 240, 210, 194, 194, 194, 194, 194, 194, 194, + 194, 36, 106, 67, 67, 66, 99, 50, 114, 50, 114, 50, + 114, 50, 114, 50, 114, 50, 98, 67, 67, 73, 82, 36, + 0, 14, 96, 22, 13, 0, 16, 101, 104, 67, 81, 66, + 162, 178, 178, 178, 178, 194, 179, 81, 88, 117, 0, 13, + 64, 39, 14, 240, 240, 114, 194, 194, 194, 194, 194, 194, + 194, 100, 34, 89, 67, 67, 66, 98, 50, 114, 50, 114, + 50, 114, 50, 114, 50, 114, 66, 98, 67, 67, 89, 100, + 34, 0, 14, 48, 23, 14, 0, 18, 4, 136, 83, 66, + 81, 114, 59, 59, 50, 194, 195, 194, 195, 82, 89, 117, + 0, 14, 80, 26, 12, 240, 228, 102, 98, 146, 162, 162, + 162, 162, 135, 87, 114, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 0, 13, 37, 15, 0, 19, 36, 19, 90, + 67, 50, 114, 82, 98, 82, 98, 82, 114, 51, 119, 114, + 19, 146, 210, 217, 106, 67, 99, 50, 130, 51, 114, 67, + 83, 89, 118, 240, 240, 96, 40, 13, 240, 178, 178, 178, + 178, 178, 178, 178, 178, 178, 36, 82, 22, 67, 67, 51, + 82, 50, 98, 50, 98, 50, 98, 50, 98, 50, 98, 50, + 98, 50, 98, 50, 98, 50, 98, 0, 13, 48, 22, 5, + 242, 50, 50, 240, 130, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 240, 240, 208, 31, 9, 240, 240, + 18, 114, 114, 240, 240, 210, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 49, 50, 53, + 83, 240, 128, 38, 13, 240, 178, 178, 178, 178, 178, 178, + 178, 178, 178, 83, 50, 67, 66, 51, 82, 35, 98, 19, + 118, 118, 115, 34, 98, 51, 82, 66, 82, 82, 66, 83, + 50, 98, 0, 13, 48, 26, 5, 162, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 240, 240, 208, 46, 21, 0, 26, 34, + 36, 68, 82, 22, 38, 67, 68, 67, 51, 83, 82, 50, + 98, 98, 50, 98, 98, 50, 98, 98, 50, 98, 98, 50, + 98, 98, 50, 98, 98, 50, 98, 98, 50, 98, 98, 50, + 98, 98, 0, 21, 48, 33, 13, 0, 16, 34, 36, 82, + 22, 67, 67, 51, 82, 50, 98, 50, 98, 50, 98, 50, + 98, 50, 98, 50, 98, 50, 98, 50, 98, 50, 98, 0, + 13, 48, 29, 15, 0, 19, 36, 152, 99, 67, 82, 98, + 66, 130, 50, 130, 50, 130, 50, 130, 50, 130, 66, 98, + 83, 67, 104, 148, 0, 15, 112, 37, 14, 0, 17, 66, + 36, 106, 67, 67, 66, 99, 50, 114, 50, 114, 50, 114, + 50, 114, 50, 114, 50, 98, 67, 67, 73, 82, 36, 98, + 194, 194, 194, 194, 194, 240, 240, 160, 37, 14, 0, 17, + 116, 34, 89, 67, 67, 66, 98, 50, 114, 50, 114, 50, + 114, 50, 114, 50, 114, 66, 98, 67, 67, 89, 100, 34, + 194, 194, 194, 194, 194, 194, 240, 240, 16, 21, 10, 0, + 12, 66, 35, 50, 20, 52, 99, 114, 130, 130, 130, 130, + 130, 130, 130, 130, 0, 11, 22, 12, 0, 15, 38, 88, + 51, 66, 50, 162, 166, 134, 148, 162, 162, 50, 67, 56, + 101, 0, 12, 80, 25, 11, 0, 8, 66, 146, 146, 146, + 120, 56, 82, 146, 146, 146, 146, 146, 146, 146, 146, 49, + 86, 100, 0, 11, 64, 33, 13, 0, 16, 34, 98, 50, + 98, 50, 98, 50, 98, 50, 98, 50, 98, 50, 98, 50, + 98, 50, 98, 50, 98, 50, 83, 55, 18, 68, 50, 0, + 13, 48, 31, 14, 0, 17, 66, 114, 50, 114, 51, 83, + 66, 82, 82, 82, 83, 51, 98, 50, 114, 50, 115, 18, + 146, 18, 146, 18, 163, 179, 0, 14, 112, 52, 21, 0, + 26, 34, 83, 83, 50, 83, 82, 66, 81, 17, 82, 67, + 65, 18, 66, 82, 50, 18, 50, 98, 50, 18, 50, 99, + 33, 35, 34, 114, 18, 50, 19, 114, 18, 50, 18, 130, + 18, 50, 18, 147, 81, 18, 147, 83, 163, 83, 0, 21, + 112, 29, 16, 0, 20, 18, 99, 83, 82, 115, 50, 147, + 19, 165, 195, 211, 196, 194, 18, 162, 50, 130, 67, 99, + 83, 67, 115, 0, 16, 48, 36, 14, 0, 17, 66, 114, + 50, 114, 51, 83, 66, 82, 83, 66, 98, 50, 114, 50, + 115, 34, 130, 18, 146, 18, 164, 163, 194, 179, 178, 194, + 178, 149, 148, 240, 240, 128, 20, 14, 0, 17, 75, 59, + 163, 178, 178, 179, 163, 163, 178, 178, 178, 187, 59, 0, + 14, 48, 9, 17, 0, 29, 110, 62, 0, 32, 32, 11, + 31, 0, 54, 47, 13, 63, 13, 0, 58, 64, 18, 12, + 240, 178, 50, 66, 50, 82, 50, 82, 50, 66, 50, 82, + 50, 0, 35, 16, 15, 13, 240, 240, 179, 50, 69, 34, + 66, 21, 66, 66, 0, 39, 80, +}; + +//***************************************************************************** +// +// The font definition for the 30 point Cmss font. +// +//***************************************************************************** +const tFont g_sFontCmss30 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 27, + + // + // The height of the font. + // + 31, + + // + // The baseline of the font. + // + 23, + + // + // The offset to each character in the font. + // + { + 0, 5, 29, 47, 113, 159, 232, 285, + 296, 330, 364, 391, 433, 445, 454, 463, + 497, 540, 568, 599, 630, 666, 698, 737, + 764, 805, 844, 857, 873, 897, 910, 937, + 963, 1017, 1062, 1105, 1137, 1182, 1209, 1236, + 1279, 1326, 1352, 1381, 1430, 1457, 1537, 1601, + 1646, 1682, 1737, 1782, 1814, 1862, 1909, 1957, + 2036, 2083, 2132, 2160, 2194, 2211, 2245, 2261, + 2268, 2279, 2305, 2343, 2365, 2404, 2427, 2453, + 2490, 2530, 2552, 2583, 2621, 2647, 2693, 2726, + 2755, 2792, 2829, 2850, 2872, 2897, 2930, 2961, + 3013, 3042, 3078, 3098, 3107, 3118, 3136, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss30Data +}; diff --git a/grlib/fonts/fontcmss30b.c b/grlib/fonts/fontcmss30b.c new file mode 100644 index 0000000..ccb2749 --- /dev/null +++ b/grlib/fonts/fontcmss30b.c @@ -0,0 +1,376 @@ +//***************************************************************************** +// +// fontcmss30b.c - Font definition for the 30pt Cmss bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 30 point +// Bold: yes +// Italic: no +// Memory usage: 3452 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 30 point Cmss bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss30bData[3252] = +{ + 5, 13, 0, 50, 48, 25, 7, 228, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 240, 36, + 52, 52, 52, 0, 7, 48, 20, 14, 240, 212, 52, 52, + 52, 52, 52, 52, 52, 66, 82, 67, 67, 66, 82, 0, + 39, 16, 79, 27, 0, 8, 18, 82, 240, 50, 82, 240, + 35, 67, 240, 35, 67, 240, 34, 82, 240, 35, 67, 240, + 35, 67, 240, 34, 82, 159, 9, 63, 9, 63, 9, 178, + 82, 240, 35, 67, 240, 35, 67, 240, 34, 82, 191, 9, + 63, 9, 63, 9, 146, 82, 240, 35, 67, 240, 35, 67, + 240, 34, 82, 240, 50, 82, 240, 35, 67, 240, 35, 67, + 240, 34, 82, 240, 50, 82, 0, 8, 64, 43, 16, 82, + 226, 199, 138, 91, 68, 18, 35, 68, 18, 65, 68, 18, + 148, 18, 151, 168, 137, 137, 137, 152, 130, 21, 130, 36, + 130, 36, 50, 50, 36, 51, 34, 21, 60, 90, 120, 178, + 226, 0, 13, 16, 75, 30, 53, 210, 151, 179, 132, 19, + 179, 116, 51, 147, 132, 51, 131, 148, 51, 115, 164, 51, + 115, 164, 51, 99, 180, 51, 83, 196, 51, 67, 228, 19, + 83, 247, 67, 240, 37, 67, 240, 195, 69, 240, 35, 72, + 227, 68, 35, 211, 68, 67, 195, 68, 67, 179, 84, 67, + 163, 100, 67, 162, 116, 67, 147, 116, 67, 131, 148, 35, + 146, 184, 145, 213, 0, 23, 32, 52, 24, 0, 6, 100, + 240, 71, 240, 19, 36, 227, 67, 227, 67, 227, 67, 227, + 51, 243, 51, 248, 98, 149, 115, 148, 131, 133, 116, 119, + 99, 115, 36, 68, 100, 37, 36, 116, 57, 132, 71, 148, + 86, 81, 63, 6, 74, 25, 102, 86, 0, 24, 64, 12, + 7, 228, 52, 52, 52, 66, 67, 66, 0, 19, 112, 34, + 11, 98, 131, 115, 115, 131, 115, 131, 116, 116, 115, 131, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 131, 132, + 116, 131, 132, 131, 131, 147, 147, 146, 48, 34, 11, 2, + 147, 147, 147, 131, 147, 131, 132, 116, 131, 132, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 115, 116, 116, 115, + 131, 115, 131, 115, 115, 130, 144, 30, 16, 83, 211, 211, + 146, 35, 34, 68, 33, 36, 68, 17, 20, 133, 181, 132, + 17, 20, 68, 33, 36, 66, 35, 34, 147, 211, 211, 0, + 35, 51, 26, 0, 14, 35, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 239, 6, 79, 8, 79, 6, 227, 240, 131, 240, 131, 240, + 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, + 131, 0, 14, 80, 14, 7, 0, 16, 84, 52, 52, 52, + 66, 67, 66, 240, 240, 160, 9, 12, 0, 22, 73, 57, + 0, 21, 48, 11, 7, 0, 16, 84, 52, 52, 52, 0, + 7, 48, 34, 16, 178, 211, 211, 210, 211, 211, 195, 211, + 210, 211, 211, 210, 211, 211, 210, 211, 210, 211, 211, 210, + 211, 211, 210, 211, 211, 195, 211, 210, 211, 211, 210, 224, + 45, 17, 240, 240, 134, 169, 115, 52, 100, 68, 83, 99, + 68, 100, 52, 100, 52, 100, 52, 100, 52, 100, 52, 100, + 52, 100, 52, 100, 52, 100, 52, 100, 52, 100, 67, 99, + 84, 68, 100, 51, 122, 150, 0, 17, 112, 28, 14, 240, + 240, 51, 104, 104, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 107, 59, 0, 14, + 48, 32, 16, 240, 240, 86, 153, 107, 68, 53, 67, 85, + 50, 116, 65, 116, 196, 196, 180, 196, 180, 180, 180, 180, + 180, 179, 195, 205, 61, 61, 0, 16, 48, 32, 16, 240, + 240, 101, 153, 107, 68, 68, 82, 84, 196, 196, 196, 180, + 150, 167, 212, 212, 196, 196, 196, 49, 132, 51, 85, 60, + 90, 134, 0, 16, 112, 37, 18, 240, 240, 213, 198, 198, + 183, 178, 20, 163, 20, 147, 36, 147, 36, 131, 52, 131, + 52, 115, 68, 115, 68, 99, 84, 111, 63, 62, 196, 228, + 228, 228, 228, 0, 18, 96, 33, 16, 240, 240, 59, 91, + 91, 84, 196, 196, 196, 201, 122, 100, 52, 83, 84, 196, + 196, 196, 196, 65, 116, 50, 116, 52, 68, 76, 90, 134, + 0, 16, 112, 40, 17, 240, 240, 165, 168, 122, 116, 196, + 211, 212, 37, 100, 23, 86, 52, 69, 84, 52, 100, 52, + 100, 52, 100, 52, 100, 52, 100, 52, 100, 68, 84, 68, + 68, 107, 121, 150, 0, 17, 112, 28, 16, 240, 240, 45, + 61, 61, 195, 196, 195, 195, 196, 195, 196, 196, 180, 196, + 196, 196, 180, 196, 196, 196, 196, 196, 0, 17, 16, 41, + 17, 240, 240, 134, 154, 108, 69, 69, 52, 100, 52, 100, + 52, 100, 52, 100, 68, 68, 106, 122, 100, 68, 68, 100, + 52, 100, 52, 100, 52, 100, 52, 100, 53, 69, 76, 106, + 150, 0, 17, 112, 39, 17, 240, 240, 134, 154, 107, 100, + 68, 68, 99, 68, 100, 52, 100, 52, 100, 52, 100, 52, + 100, 52, 85, 68, 54, 87, 20, 101, 36, 212, 211, 212, + 97, 84, 107, 106, 150, 0, 18, 17, 7, 0, 7, 116, + 52, 52, 52, 240, 240, 244, 52, 52, 52, 0, 7, 48, + 20, 7, 0, 7, 116, 52, 52, 52, 240, 240, 244, 52, + 52, 52, 66, 67, 66, 240, 240, 160, 26, 7, 0, 7, + 4, 52, 52, 52, 240, 36, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 240, 32, 21, 25, + 0, 31, 47, 7, 63, 7, 63, 7, 0, 12, 127, 7, + 63, 7, 63, 7, 0, 34, 96, 30, 14, 0, 14, 67, + 179, 179, 179, 240, 240, 147, 179, 179, 179, 179, 163, 164, + 148, 164, 163, 164, 179, 82, 67, 67, 74, 102, 240, 240, + 48, 29, 15, 240, 240, 39, 107, 67, 69, 49, 116, 180, + 180, 164, 165, 148, 164, 180, 164, 180, 180, 180, 240, 240, + 180, 180, 180, 180, 0, 16, 54, 22, 0, 6, 56, 188, + 149, 84, 116, 132, 84, 73, 84, 44, 67, 36, 69, 52, + 36, 69, 52, 20, 100, 52, 20, 100, 52, 20, 100, 52, + 20, 100, 52, 20, 100, 52, 36, 83, 84, 20, 68, 84, + 42, 100, 70, 148, 240, 69, 101, 125, 200, 0, 22, 112, + 46, 23, 0, 6, 86, 240, 38, 240, 24, 248, 243, 20, + 228, 21, 212, 36, 211, 52, 196, 53, 180, 68, 179, 84, + 164, 85, 148, 100, 143, 143, 1, 127, 1, 100, 149, 84, + 149, 84, 164, 68, 181, 52, 181, 0, 23, 48, 42, 20, + 240, 240, 172, 142, 111, 84, 117, 68, 132, 68, 132, 68, + 132, 68, 132, 68, 101, 93, 126, 100, 117, 68, 132, 68, + 148, 52, 148, 52, 148, 52, 148, 52, 118, 63, 1, 79, + 93, 0, 20, 112, 42, 20, 0, 5, 120, 157, 110, 86, + 83, 85, 145, 84, 240, 20, 244, 240, 20, 240, 20, 240, + 20, 240, 20, 240, 20, 240, 20, 240, 36, 240, 20, 240, + 21, 161, 86, 99, 110, 125, 167, 0, 20, 96, 45, 22, + 240, 240, 237, 159, 127, 1, 100, 118, 84, 149, 68, 164, + 68, 180, 52, 180, 52, 180, 52, 180, 52, 180, 52, 180, + 52, 180, 52, 180, 52, 180, 52, 164, 68, 149, 68, 133, + 95, 1, 111, 125, 0, 23, 16, 28, 18, 240, 240, 110, + 78, 78, 68, 228, 228, 228, 228, 228, 237, 93, 93, 84, + 228, 228, 228, 228, 228, 239, 63, 63, 0, 18, 48, 28, + 17, 240, 240, 78, 62, 62, 52, 212, 212, 212, 212, 212, + 220, 92, 92, 84, 212, 212, 212, 212, 212, 212, 212, 212, + 0, 18, 80, 43, 21, 0, 6, 24, 174, 111, 86, 100, + 69, 161, 84, 240, 36, 240, 20, 240, 36, 240, 36, 240, + 36, 240, 36, 119, 52, 119, 52, 119, 68, 148, 68, 148, + 69, 132, 86, 100, 111, 126, 168, 0, 21, 96, 49, 21, + 240, 240, 196, 164, 52, 164, 52, 164, 52, 164, 52, 164, + 52, 164, 52, 164, 52, 164, 63, 3, 63, 3, 63, 3, + 52, 164, 52, 164, 52, 164, 52, 164, 52, 164, 52, 164, + 52, 164, 52, 164, 52, 164, 52, 164, 0, 21, 48, 26, + 7, 228, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 0, 7, + 48, 30, 14, 240, 240, 84, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 49, 100, 50, + 69, 58, 74, 102, 0, 14, 96, 46, 21, 240, 240, 196, + 164, 52, 149, 52, 133, 68, 117, 84, 100, 116, 84, 132, + 53, 148, 37, 164, 21, 187, 171, 172, 150, 37, 133, 69, + 116, 100, 116, 101, 100, 117, 84, 132, 84, 148, 68, 149, + 52, 164, 0, 21, 48, 28, 16, 240, 240, 36, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 205, 61, 61, 0, 16, 48, 75, 27, 0, + 6, 102, 198, 54, 198, 55, 167, 55, 167, 55, 167, 52, + 19, 131, 20, 52, 19, 131, 20, 52, 20, 100, 20, 52, + 35, 99, 36, 52, 35, 99, 36, 52, 36, 68, 36, 52, + 51, 67, 52, 52, 52, 36, 52, 52, 67, 35, 68, 52, + 67, 35, 68, 52, 72, 68, 52, 86, 84, 52, 86, 84, + 52, 100, 100, 52, 100, 100, 52, 240, 20, 0, 27, 48, + 60, 21, 240, 240, 198, 132, 55, 116, 55, 116, 56, 100, + 56, 100, 52, 19, 100, 52, 20, 84, 52, 35, 84, 52, + 36, 68, 52, 51, 68, 52, 52, 52, 52, 67, 52, 52, + 68, 36, 52, 83, 36, 52, 84, 20, 52, 99, 20, 52, + 104, 52, 104, 52, 119, 52, 119, 52, 134, 0, 21, 48, + 45, 23, 0, 6, 72, 220, 164, 100, 132, 132, 100, 164, + 84, 164, 83, 196, 52, 196, 52, 196, 52, 196, 52, 196, + 52, 196, 52, 196, 52, 196, 52, 196, 68, 164, 84, 164, + 100, 132, 133, 84, 172, 216, 0, 24, 16, 35, 19, 240, + 240, 140, 126, 95, 68, 101, 68, 132, 52, 132, 52, 132, + 52, 132, 52, 132, 52, 116, 79, 78, 92, 116, 244, 244, + 244, 244, 244, 244, 244, 0, 20, 112, 53, 23, 0, 6, + 72, 220, 164, 100, 132, 132, 100, 164, 84, 164, 83, 196, + 52, 196, 52, 196, 52, 196, 52, 196, 52, 196, 52, 196, + 52, 196, 52, 196, 68, 53, 36, 84, 69, 20, 100, 73, + 116, 56, 157, 203, 240, 69, 240, 53, 240, 69, 0, 14, + 112, 44, 19, 240, 240, 140, 126, 95, 68, 117, 52, 132, + 52, 132, 52, 132, 52, 132, 52, 116, 78, 92, 116, 68, + 116, 68, 116, 84, 100, 84, 100, 100, 84, 100, 84, 116, + 68, 116, 68, 132, 52, 132, 0, 19, 48, 32, 18, 240, + 240, 167, 156, 93, 69, 83, 84, 129, 84, 228, 230, 216, + 171, 139, 154, 199, 213, 228, 228, 50, 148, 52, 101, 62, + 92, 151, 0, 18, 112, 48, 23, 0, 5, 127, 3, 79, + 5, 79, 3, 196, 240, 68, 240, 68, 240, 68, 240, 68, + 240, 68, 240, 68, 240, 68, 240, 68, 240, 68, 240, 68, + 240, 68, 240, 68, 240, 68, 240, 68, 240, 68, 240, 68, + 240, 68, 0, 24, 48, 45, 20, 240, 240, 164, 148, 52, + 148, 52, 148, 52, 148, 52, 148, 52, 148, 52, 148, 52, + 148, 52, 148, 52, 148, 52, 148, 52, 148, 52, 148, 52, + 148, 52, 148, 52, 148, 68, 117, 69, 85, 109, 139, 183, + 0, 21, 47, 23, 0, 5, 100, 196, 53, 180, 53, 165, + 68, 164, 85, 148, 85, 132, 116, 132, 117, 116, 132, 100, + 148, 100, 149, 84, 164, 68, 181, 52, 181, 52, 196, 36, + 213, 20, 213, 19, 248, 248, 240, 22, 240, 38, 0, 24, + 32, 76, 32, 0, 8, 3, 149, 147, 52, 134, 131, 52, + 134, 116, 52, 119, 116, 68, 99, 19, 115, 84, 99, 20, + 99, 84, 99, 20, 84, 84, 84, 20, 84, 100, 67, 51, + 83, 116, 67, 52, 67, 116, 52, 52, 52, 132, 36, 52, + 52, 132, 35, 83, 51, 148, 35, 84, 35, 148, 20, 84, + 20, 167, 100, 20, 167, 115, 19, 183, 119, 183, 119, 197, + 149, 213, 149, 0, 33, 45, 23, 0, 5, 117, 133, 85, + 117, 117, 100, 149, 69, 150, 37, 181, 21, 218, 232, 247, + 240, 37, 240, 54, 240, 23, 240, 24, 234, 197, 37, 165, + 68, 164, 85, 133, 101, 101, 133, 69, 150, 53, 165, 0, + 23, 48, 47, 23, 0, 5, 101, 180, 54, 149, 69, 133, + 101, 116, 118, 85, 133, 69, 165, 52, 182, 21, 202, 232, + 240, 22, 240, 38, 240, 52, 240, 68, 240, 68, 240, 68, + 240, 68, 240, 68, 240, 68, 240, 68, 240, 68, 0, 24, + 48, 34, 20, 240, 240, 175, 2, 63, 2, 63, 2, 229, + 229, 245, 229, 229, 229, 245, 229, 229, 244, 245, 229, 229, + 244, 245, 239, 2, 63, 2, 63, 2, 0, 20, 48, 34, + 10, 7, 55, 52, 100, 100, 100, 100, 100, 100, 100, 100, + 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, + 100, 100, 100, 100, 100, 100, 103, 55, 48, 20, 14, 240, + 242, 82, 67, 67, 66, 82, 68, 52, 52, 52, 52, 52, + 52, 52, 0, 38, 112, 34, 10, 7, 55, 100, 100, 100, + 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, + 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, + 55, 55, 48, 14, 13, 240, 228, 149, 115, 19, 83, 50, + 67, 82, 0, 39, 48, 9, 7, 228, 52, 52, 52, 0, + 22, 32, 13, 7, 240, 18, 67, 66, 68, 52, 52, 52, + 0, 19, 80, 30, 16, 0, 18, 55, 123, 83, 69, 66, + 100, 196, 196, 106, 69, 52, 52, 84, 52, 84, 52, 84, + 53, 53, 71, 20, 85, 36, 0, 16, 48, 40, 17, 240, + 240, 68, 212, 212, 212, 212, 212, 212, 212, 37, 108, 85, + 68, 68, 100, 52, 100, 52, 100, 52, 100, 52, 100, 52, + 100, 52, 100, 52, 84, 69, 68, 76, 84, 21, 0, 17, + 112, 25, 15, 0, 17, 55, 106, 68, 82, 67, 113, 52, + 180, 180, 180, 180, 180, 196, 97, 68, 67, 90, 118, 0, + 15, 80, 40, 17, 240, 240, 228, 212, 212, 212, 212, 212, + 212, 102, 20, 92, 68, 69, 68, 84, 52, 100, 52, 100, + 52, 100, 52, 100, 52, 100, 52, 100, 68, 84, 68, 69, + 92, 101, 36, 0, 17, 48, 27, 16, 0, 18, 70, 137, + 100, 67, 84, 83, 52, 99, 52, 99, 61, 61, 52, 196, + 212, 113, 69, 67, 91, 119, 0, 16, 80, 28, 14, 240, + 240, 54, 104, 84, 65, 84, 164, 164, 164, 137, 89, 116, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 0, + 15, 40, 19, 0, 21, 119, 35, 94, 84, 52, 116, 84, + 100, 84, 100, 84, 100, 84, 116, 52, 138, 145, 23, 162, + 240, 43, 141, 110, 67, 132, 52, 147, 67, 147, 68, 116, + 93, 137, 240, 240, 224, 42, 16, 240, 240, 36, 196, 196, + 196, 196, 196, 196, 196, 37, 84, 23, 70, 52, 53, 68, + 52, 84, 52, 84, 52, 84, 52, 84, 52, 84, 52, 84, + 52, 84, 52, 84, 52, 84, 52, 84, 0, 16, 48, 24, + 7, 228, 52, 52, 52, 240, 148, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 0, 7, 48, 32, + 11, 240, 180, 116, 116, 116, 240, 240, 164, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 49, 52, 56, 55, 85, 240, 192, 38, 16, 240, 240, 36, + 196, 196, 196, 196, 196, 196, 196, 84, 52, 53, 68, 37, + 84, 21, 105, 120, 136, 137, 117, 20, 100, 37, 84, 52, + 84, 68, 68, 84, 52, 84, 0, 16, 48, 26, 7, 228, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 0, 7, 48, 49, + 25, 0, 28, 20, 37, 69, 84, 24, 23, 70, 54, 52, + 53, 69, 68, 52, 84, 84, 52, 84, 84, 52, 84, 84, + 52, 84, 84, 52, 84, 84, 52, 84, 84, 52, 84, 84, + 52, 84, 84, 52, 84, 84, 52, 84, 84, 0, 25, 48, + 35, 16, 0, 18, 4, 37, 84, 23, 70, 52, 53, 68, + 52, 84, 52, 84, 52, 84, 52, 84, 52, 84, 52, 84, + 52, 84, 52, 84, 52, 84, 52, 84, 0, 16, 48, 31, + 17, 0, 19, 86, 154, 100, 68, 83, 99, 68, 100, 52, + 100, 52, 100, 52, 100, 52, 100, 52, 100, 67, 99, 84, + 68, 106, 150, 0, 17, 112, 39, 17, 0, 19, 20, 37, + 108, 85, 53, 68, 85, 52, 100, 52, 100, 52, 100, 52, + 100, 52, 100, 52, 100, 52, 84, 69, 53, 76, 84, 21, + 116, 212, 212, 212, 212, 212, 0, 5, 112, 39, 17, 0, + 19, 85, 20, 92, 69, 53, 68, 84, 52, 100, 52, 100, + 52, 100, 52, 100, 52, 100, 52, 100, 68, 84, 69, 53, + 92, 101, 36, 212, 212, 212, 212, 212, 212, 240, 240, 112, + 22, 12, 0, 13, 68, 50, 52, 20, 57, 54, 101, 116, + 132, 132, 132, 132, 132, 132, 132, 132, 0, 13, 25, 14, + 0, 16, 7, 105, 67, 82, 67, 97, 68, 168, 120, 120, + 150, 179, 50, 99, 51, 83, 58, 103, 0, 14, 80, 26, + 14, 0, 9, 4, 164, 164, 164, 138, 74, 100, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 49, 105, 102, 0, 14, + 80, 35, 16, 0, 18, 4, 84, 52, 84, 52, 84, 52, + 84, 52, 84, 52, 84, 52, 84, 52, 84, 52, 84, 52, + 84, 52, 84, 52, 69, 71, 20, 85, 36, 0, 16, 48, + 31, 16, 0, 18, 3, 115, 52, 84, 52, 84, 67, 83, + 84, 52, 84, 52, 99, 51, 116, 35, 116, 20, 131, 19, + 151, 151, 165, 181, 0, 16, 112, 46, 24, 0, 27, 3, + 99, 99, 52, 83, 84, 52, 69, 68, 67, 69, 67, 84, + 53, 52, 84, 38, 52, 99, 39, 35, 116, 18, 35, 35, + 116, 18, 35, 20, 119, 40, 134, 39, 149, 70, 149, 70, + 163, 85, 0, 24, 112, 28, 17, 0, 19, 20, 99, 84, + 68, 85, 36, 121, 151, 182, 196, 212, 198, 168, 132, 36, + 100, 68, 84, 69, 52, 100, 0, 17, 48, 36, 16, 0, + 18, 3, 115, 52, 84, 67, 83, 84, 67, 99, 52, 100, + 35, 116, 35, 131, 20, 135, 166, 166, 180, 196, 211, 195, + 211, 129, 52, 135, 150, 165, 240, 240, 208, 21, 15, 0, + 16, 124, 60, 164, 165, 164, 164, 164, 165, 164, 164, 164, + 180, 172, 60, 0, 15, 48, 11, 19, 0, 30, 127, 1, + 63, 1, 0, 38, 48, 13, 36, 0, 58, 79, 15, 3, + 63, 15, 3, 0, 72, 48, 16, 13, 240, 196, 20, 52, + 35, 67, 51, 67, 50, 82, 51, 0, 39, 80, 14, 14, + 240, 243, 66, 70, 19, 51, 22, 66, 67, 0, 44, 48,}; + +//***************************************************************************** +// +// The font definition for the 30 point Cmss bold font. +// +//***************************************************************************** +const tFont g_sFontCmss30b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 32, + + // + // The height of the font. + // + 31, + + // + // The baseline of the font. + // + 23, + + // + // The offset to each character in the font. + // + { + 0, 5, 30, 50, 129, 172, 247, 299, + 311, 345, 379, 409, 460, 474, 483, 494, + 528, 573, 601, 633, 665, 702, 735, 775, + 803, 844, 883, 900, 920, 946, 967, 997, + 1026, 1080, 1126, 1168, 1210, 1255, 1283, 1311, + 1354, 1403, 1429, 1459, 1505, 1533, 1608, 1668, + 1713, 1748, 1801, 1845, 1877, 1925, 1970, 2017, + 2093, 2138, 2185, 2219, 2253, 2273, 2307, 2321, + 2330, 2343, 2373, 2413, 2438, 2478, 2505, 2533, + 2573, 2615, 2639, 2671, 2709, 2735, 2784, 2819, + 2850, 2889, 2928, 2950, 2975, 3001, 3036, 3067, + 3113, 3141, 3177, 3198, 3209, 3222, 3238, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss30bData +}; diff --git a/grlib/fonts/fontcmss30i.c b/grlib/fonts/fontcmss30i.c new file mode 100644 index 0000000..9c39efe --- /dev/null +++ b/grlib/fonts/fontcmss30i.c @@ -0,0 +1,382 @@ +//***************************************************************************** +// +// fontcmss30i.c - Font definition for the 30pt Cmss italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 30 point +// Bold: no +// Italic: yes +// Memory usage: 3504 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 30 point Cmss italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss30iData[3303] = +{ + 5, 13, 0, 50, 48, 26, 10, 240, 147, 115, 114, 130, + 130, 115, 115, 114, 130, 130, 115, 114, 130, 130, 130, 114, + 240, 240, 115, 115, 0, 10, 112, 17, 13, 240, 195, 51, + 67, 51, 67, 51, 66, 66, 81, 81, 82, 66, 0, 38, + 83, 25, 0, 7, 113, 97, 240, 33, 82, 240, 17, 97, + 240, 33, 82, 240, 17, 97, 240, 33, 82, 240, 17, 97, + 240, 33, 82, 240, 18, 81, 240, 33, 97, 159, 6, 177, + 97, 240, 18, 81, 240, 33, 97, 240, 33, 82, 240, 17, + 97, 191, 6, 146, 81, 240, 33, 82, 240, 18, 81, 240, + 33, 97, 240, 18, 81, 240, 33, 97, 240, 18, 81, 240, + 33, 97, 240, 18, 81, 240, 33, 97, 0, 8, 32, 46, + 17, 146, 242, 214, 153, 115, 18, 34, 114, 34, 49, 98, + 50, 162, 49, 178, 34, 178, 34, 182, 198, 198, 198, 178, + 19, 178, 34, 177, 50, 162, 50, 162, 34, 97, 66, 34, + 99, 37, 136, 166, 210, 242, 0, 14, 16, 73, 21, 67, + 161, 100, 145, 98, 34, 129, 82, 50, 113, 98, 50, 97, + 98, 66, 82, 98, 66, 81, 114, 50, 81, 130, 50, 65, + 146, 34, 81, 165, 65, 179, 81, 240, 66, 67, 193, 68, + 177, 66, 34, 145, 66, 50, 145, 66, 50, 129, 67, 50, + 113, 82, 66, 98, 82, 66, 97, 98, 50, 97, 114, 50, + 81, 130, 34, 97, 148, 97, 163, 0, 16, 80, 55, 22, + 0, 6, 99, 240, 38, 240, 17, 50, 242, 50, 241, 66, + 226, 66, 226, 50, 242, 34, 240, 18, 18, 240, 36, 113, + 162, 146, 131, 130, 118, 99, 98, 50, 98, 98, 67, 66, + 98, 98, 50, 114, 99, 18, 130, 116, 147, 85, 169, 23, + 101, 86, 0, 22, 64, 11, 7, 243, 67, 67, 66, 81, + 82, 0, 20, 96, 34, 13, 130, 162, 162, 178, 162, 162, + 178, 162, 178, 162, 178, 178, 162, 178, 178, 178, 178, 162, + 178, 178, 178, 178, 178, 178, 178, 178, 193, 194, 178, 194, + 178, 144, 34, 13, 98, 193, 194, 178, 194, 178, 178, 178, + 178, 178, 178, 178, 178, 178, 163, 162, 178, 178, 178, 162, + 178, 178, 162, 178, 162, 178, 162, 162, 178, 162, 162, 176, + 27, 15, 113, 210, 210, 145, 50, 34, 67, 33, 35, 83, + 21, 133, 164, 152, 84, 17, 20, 66, 34, 50, 130, 210, + 210, 0, 33, 43, 22, 0, 17, 113, 240, 97, 240, 82, + 240, 81, 240, 97, 240, 97, 240, 97, 240, 81, 240, 97, + 207, 4, 193, 240, 97, 240, 81, 240, 97, 240, 97, 240, + 97, 240, 82, 240, 81, 240, 97, 0, 18, 32, 13, 7, + 0, 18, 67, 67, 66, 82, 81, 82, 240, 240, 48, 9, + 11, 0, 20, 88, 56, 0, 19, 80, 9, 5, 0, 13, + 18, 50, 240, 240, 208, 66, 20, 240, 17, 240, 50, 240, + 49, 240, 50, 240, 49, 240, 49, 240, 65, 240, 49, 240, + 65, 240, 49, 240, 65, 240, 49, 240, 65, 240, 49, 240, + 50, 240, 49, 240, 50, 240, 49, 240, 50, 240, 49, 240, + 49, 240, 65, 240, 49, 240, 65, 240, 49, 240, 65, 240, + 49, 240, 65, 240, 49, 240, 50, 240, 49, 240, 64, 43, + 16, 0, 6, 101, 167, 131, 51, 98, 98, 83, 98, 82, + 114, 82, 114, 66, 130, 66, 130, 66, 115, 66, 114, 66, + 130, 66, 130, 66, 114, 82, 114, 82, 99, 82, 98, 114, + 51, 135, 165, 0, 17, 16, 28, 13, 0, 6, 1, 163, + 117, 115, 18, 178, 178, 163, 162, 178, 178, 163, 163, 162, + 178, 178, 163, 162, 178, 122, 58, 0, 13, 48, 31, 17, + 0, 7, 37, 183, 146, 67, 114, 98, 98, 114, 97, 130, + 242, 241, 242, 226, 226, 226, 226, 226, 226, 225, 226, 226, + 236, 91, 0, 17, 96, 31, 16, 0, 6, 117, 152, 115, + 66, 113, 98, 226, 226, 210, 211, 149, 181, 242, 242, 226, + 226, 226, 210, 82, 114, 83, 67, 120, 164, 0, 17, 16, + 37, 16, 0, 7, 35, 196, 180, 193, 18, 178, 18, 162, + 34, 147, 19, 131, 34, 146, 50, 130, 66, 115, 51, 99, + 67, 98, 82, 109, 61, 163, 211, 210, 226, 211, 0, 16, + 112, 32, 17, 0, 7, 9, 121, 130, 242, 242, 242, 227, + 226, 20, 168, 147, 51, 115, 82, 242, 242, 242, 242, 226, + 98, 99, 99, 67, 136, 165, 0, 18, 32, 39, 15, 0, + 6, 69, 135, 115, 179, 194, 194, 210, 36, 98, 22, 100, + 51, 83, 82, 67, 98, 66, 114, 66, 114, 66, 114, 66, + 98, 82, 98, 82, 82, 114, 51, 119, 148, 0, 16, 16, + 27, 16, 0, 6, 28, 76, 210, 210, 211, 195, 210, 210, + 210, 211, 210, 211, 210, 211, 210, 211, 210, 226, 211, 211, + 0, 17, 80, 41, 17, 0, 7, 37, 168, 131, 66, 114, + 99, 83, 114, 82, 114, 99, 98, 114, 67, 151, 166, 147, + 66, 115, 98, 98, 114, 82, 130, 82, 130, 82, 114, 98, + 114, 99, 67, 136, 165, 0, 18, 32, 40, 15, 0, 6, + 52, 151, 115, 51, 98, 82, 82, 98, 82, 98, 66, 114, + 66, 114, 66, 114, 66, 99, 66, 83, 83, 52, 102, 18, + 100, 35, 194, 194, 195, 97, 67, 119, 148, 0, 16, 32, + 13, 8, 0, 10, 50, 83, 0, 9, 51, 82, 0, 8, + 96, 17, 9, 0, 11, 83, 99, 0, 10, 83, 98, 114, + 114, 113, 113, 240, 240, 224, 26, 10, 0, 10, 67, 115, + 240, 240, 114, 114, 130, 130, 130, 115, 114, 130, 130, 115, + 115, 114, 130, 130, 115, 115, 240, 192, 12, 23, 0, 34, + 95, 4, 0, 14, 111, 4, 0, 35, 27, 12, 0, 12, + 114, 147, 240, 240, 242, 162, 146, 162, 162, 146, 146, 147, + 131, 146, 146, 162, 162, 162, 82, 57, 70, 240, 224, 27, + 13, 240, 229, 104, 82, 67, 178, 178, 178, 162, 163, 146, + 162, 162, 178, 162, 178, 178, 162, 0, 6, 19, 163, 0, + 14, 32, 55, 19, 0, 5, 117, 200, 148, 67, 115, 99, + 99, 67, 18, 83, 56, 82, 51, 36, 66, 51, 67, 66, + 50, 83, 65, 51, 83, 50, 50, 98, 66, 50, 98, 66, + 50, 83, 66, 50, 82, 82, 51, 50, 99, 54, 130, 68, + 147, 240, 35, 98, 153, 182, 0, 20, 16, 47, 20, 0, + 6, 51, 240, 35, 240, 20, 240, 17, 19, 226, 19, 210, + 35, 210, 50, 194, 66, 194, 66, 178, 82, 178, 83, 146, + 99, 146, 99, 140, 125, 114, 146, 99, 146, 98, 162, 82, + 179, 66, 179, 50, 195, 0, 20, 48, 43, 19, 240, 240, + 201, 171, 115, 100, 99, 130, 99, 130, 98, 146, 98, 146, + 83, 130, 99, 99, 122, 155, 130, 115, 99, 131, 83, 146, + 82, 162, 82, 162, 82, 146, 83, 131, 82, 116, 108, 122, + 0, 20, 16, 43, 19, 0, 5, 103, 170, 131, 98, 115, + 243, 243, 240, 18, 240, 18, 240, 34, 240, 34, 240, 18, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 50, + 240, 35, 129, 131, 83, 153, 182, 0, 20, 16, 45, 21, + 0, 5, 106, 188, 146, 116, 130, 131, 115, 147, 99, 162, + 98, 178, 98, 178, 98, 178, 83, 178, 83, 178, 82, 194, + 82, 178, 98, 178, 83, 162, 99, 162, 98, 162, 114, 146, + 115, 115, 140, 154, 0, 22, 48, 43, 20, 240, 240, 237, + 124, 130, 240, 35, 240, 35, 240, 34, 240, 50, 240, 35, + 240, 35, 240, 44, 140, 130, 240, 35, 240, 35, 240, 35, + 240, 34, 240, 50, 240, 35, 240, 35, 240, 45, 125, 0, + 20, 112, 44, 19, 240, 240, 204, 124, 114, 240, 19, 240, + 19, 240, 18, 240, 34, 240, 19, 240, 19, 240, 19, 240, + 27, 139, 115, 240, 19, 240, 19, 240, 18, 240, 34, 240, + 19, 240, 19, 240, 18, 240, 34, 0, 21, 16, 44, 19, + 0, 5, 103, 170, 131, 98, 115, 129, 99, 243, 240, 18, + 240, 18, 240, 34, 240, 34, 240, 18, 240, 34, 240, 34, + 102, 82, 102, 82, 162, 82, 147, 98, 130, 115, 114, 131, + 98, 154, 166, 0, 20, 16, 46, 22, 0, 6, 2, 163, + 114, 162, 130, 162, 115, 147, 115, 147, 114, 162, 130, 162, + 115, 162, 115, 147, 127, 126, 130, 162, 115, 147, 115, 147, + 115, 147, 114, 162, 130, 162, 115, 147, 115, 147, 114, 163, + 114, 162, 0, 23, 27, 10, 240, 147, 115, 114, 130, 130, + 115, 115, 114, 130, 115, 115, 115, 114, 130, 115, 115, 114, + 130, 130, 115, 115, 0, 10, 112, 29, 17, 0, 5, 98, + 242, 227, 227, 226, 242, 242, 227, 227, 226, 242, 227, 227, + 226, 242, 242, 227, 226, 129, 83, 121, 165, 0, 18, 32, + 49, 22, 0, 6, 2, 163, 114, 147, 130, 131, 131, 114, + 163, 83, 178, 83, 194, 67, 195, 51, 211, 35, 227, 21, + 210, 22, 213, 34, 196, 67, 179, 83, 179, 99, 162, 115, + 162, 131, 131, 131, 131, 131, 130, 163, 114, 163, 0, 22, + 112, 28, 14, 240, 240, 34, 194, 194, 179, 179, 178, 194, + 179, 179, 179, 178, 194, 179, 179, 179, 178, 194, 179, 179, + 187, 59, 0, 14, 48, 78, 26, 0, 7, 4, 195, 116, + 180, 116, 165, 101, 165, 101, 146, 18, 114, 18, 146, 18, + 114, 19, 114, 34, 114, 19, 114, 19, 99, 34, 98, 35, + 99, 34, 98, 34, 114, 50, 82, 50, 114, 50, 82, 50, + 99, 50, 66, 51, 99, 50, 51, 50, 114, 67, 34, 66, + 114, 67, 18, 82, 114, 82, 18, 67, 99, 84, 83, 99, + 84, 82, 114, 99, 98, 114, 99, 98, 0, 26, 112, 62, + 22, 0, 6, 4, 131, 116, 130, 132, 130, 118, 114, 114, + 19, 99, 114, 34, 98, 130, 34, 98, 115, 35, 82, 115, + 35, 82, 114, 66, 67, 114, 66, 66, 130, 67, 50, 115, + 67, 50, 115, 82, 35, 114, 98, 35, 114, 99, 18, 130, + 99, 18, 115, 114, 18, 115, 117, 114, 133, 114, 132, 0, + 23, 45, 20, 0, 6, 5, 217, 163, 68, 130, 130, 114, + 147, 82, 178, 82, 178, 66, 194, 66, 194, 66, 194, 50, + 210, 50, 194, 66, 194, 66, 194, 66, 178, 82, 163, 98, + 146, 114, 115, 147, 67, 169, 213, 0, 21, 48, 44, 20, + 240, 240, 249, 187, 131, 99, 131, 130, 114, 146, 114, 146, + 99, 146, 99, 130, 114, 131, 114, 115, 139, 138, 163, 240, + 34, 240, 50, 240, 50, 240, 35, 240, 35, 240, 34, 240, + 50, 240, 35, 0, 22, 16, 56, 20, 0, 6, 5, 217, + 163, 68, 130, 130, 114, 147, 83, 162, 82, 178, 66, 194, + 66, 194, 66, 194, 50, 210, 50, 195, 50, 194, 66, 194, + 66, 178, 82, 82, 66, 98, 67, 34, 114, 82, 18, 147, + 52, 169, 216, 240, 35, 240, 50, 240, 51, 240, 35, 0, + 10, 112, 45, 20, 240, 240, 234, 172, 131, 99, 130, 146, + 114, 146, 99, 146, 99, 146, 98, 146, 114, 115, 139, 138, + 163, 67, 162, 98, 162, 98, 162, 99, 131, 99, 131, 114, + 130, 131, 114, 131, 99, 146, 99, 147, 0, 20, 80, 37, + 18, 240, 240, 229, 185, 131, 81, 130, 242, 240, 18, 240, + 18, 240, 19, 244, 246, 215, 244, 243, 240, 18, 240, 18, + 240, 18, 242, 98, 130, 100, 67, 137, 181, 0, 19, 32, + 48, 20, 240, 240, 175, 2, 63, 2, 163, 240, 35, 240, + 34, 240, 50, 240, 35, 240, 35, 240, 34, 240, 50, 240, + 50, 240, 35, 240, 35, 240, 34, 240, 50, 240, 50, 240, + 35, 240, 35, 240, 34, 240, 50, 240, 35, 0, 21, 96, + 47, 20, 240, 240, 210, 147, 83, 146, 99, 146, 98, 162, + 98, 147, 98, 146, 99, 146, 98, 162, 98, 147, 98, 147, + 98, 146, 99, 146, 98, 162, 98, 147, 98, 146, 114, 146, + 114, 131, 115, 99, 147, 67, 184, 213, 0, 21, 64, 48, + 20, 240, 240, 163, 194, 51, 194, 51, 178, 67, 163, 82, + 162, 98, 147, 98, 146, 115, 114, 131, 114, 131, 98, 147, + 83, 162, 82, 178, 67, 179, 50, 195, 34, 211, 34, 211, + 18, 227, 18, 244, 240, 20, 240, 19, 0, 21, 96, 79, + 28, 0, 7, 2, 147, 146, 50, 147, 146, 51, 116, 130, + 67, 116, 130, 67, 98, 18, 114, 83, 98, 18, 114, 83, + 82, 34, 98, 99, 82, 35, 82, 99, 82, 35, 66, 115, + 66, 51, 66, 115, 66, 51, 51, 130, 50, 67, 50, 146, + 50, 67, 35, 146, 34, 83, 34, 162, 34, 83, 34, 162, + 18, 114, 18, 178, 18, 114, 18, 180, 132, 196, 132, 195, + 147, 211, 147, 0, 29, 64, 51, 23, 0, 6, 35, 163, + 131, 146, 147, 130, 179, 98, 195, 83, 211, 51, 242, 35, + 240, 22, 240, 52, 240, 67, 240, 83, 240, 69, 240, 34, + 19, 240, 19, 35, 227, 51, 211, 83, 179, 99, 178, 131, + 146, 147, 130, 179, 99, 179, 0, 23, 96, 48, 21, 240, + 240, 195, 195, 51, 179, 83, 147, 99, 131, 115, 130, 147, + 98, 163, 83, 179, 51, 195, 35, 226, 19, 245, 240, 20, + 240, 50, 240, 66, 240, 66, 240, 51, 240, 51, 240, 50, + 240, 66, 240, 51, 240, 51, 0, 22, 112, 46, 21, 0, + 5, 110, 126, 240, 35, 240, 35, 240, 35, 240, 50, 240, + 50, 240, 51, 240, 35, 240, 35, 240, 35, 240, 50, 240, + 51, 240, 35, 240, 35, 240, 35, 240, 35, 240, 50, 240, + 51, 240, 46, 126, 0, 21, 112, 34, 14, 101, 149, 146, + 194, 194, 179, 178, 194, 194, 194, 179, 178, 194, 194, 194, + 179, 178, 194, 194, 194, 179, 178, 194, 194, 194, 178, 194, + 194, 194, 196, 149, 144, 18, 13, 240, 210, 66, 81, 81, + 82, 66, 66, 66, 83, 51, 67, 51, 0, 37, 112, 34, + 14, 101, 149, 179, 178, 194, 194, 194, 179, 178, 194, 194, + 194, 179, 178, 194, 194, 194, 179, 178, 194, 194, 194, 179, + 178, 194, 194, 194, 179, 178, 149, 149, 144, 18, 13, 240, + 240, 18, 161, 18, 130, 33, 114, 50, 82, 66, 66, 98, + 0, 37, 96, 9, 6, 240, 51, 51, 51, 0, 19, 16, + 12, 7, 240, 18, 81, 82, 66, 83, 67, 0, 20, 80, + 26, 14, 0, 18, 5, 136, 82, 82, 194, 194, 134, 88, + 83, 66, 66, 98, 66, 98, 67, 67, 74, 84, 34, 0, + 14, 80, 39, 15, 240, 240, 66, 210, 195, 194, 210, 210, + 210, 195, 194, 52, 98, 22, 99, 67, 67, 98, 67, 98, + 66, 114, 66, 114, 66, 114, 51, 98, 67, 83, 67, 67, + 89, 98, 20, 0, 16, 21, 15, 0, 19, 53, 137, 83, + 81, 98, 194, 194, 210, 210, 210, 210, 226, 82, 105, 117, + 0, 16, 40, 17, 0, 5, 98, 242, 227, 226, 242, 242, + 242, 227, 133, 18, 137, 115, 67, 99, 98, 98, 99, 82, + 114, 98, 114, 98, 114, 98, 99, 98, 99, 99, 67, 134, + 18, 148, 34, 0, 17, 112, 23, 15, 0, 19, 53, 136, + 99, 67, 66, 114, 75, 60, 50, 210, 210, 211, 211, 81, + 105, 133, 0, 15, 112, 28, 14, 240, 240, 84, 134, 115, + 178, 179, 178, 194, 194, 152, 103, 146, 194, 194, 194, 179, + 178, 194, 194, 194, 178, 194, 0, 15, 64, 38, 19, 0, + 24, 84, 35, 139, 115, 51, 147, 82, 146, 98, 146, 83, + 147, 51, 168, 162, 20, 193, 240, 50, 240, 41, 171, 114, + 115, 98, 146, 98, 146, 99, 99, 138, 182, 0, 6, 41, + 15, 240, 240, 82, 195, 194, 210, 210, 210, 195, 194, 210, + 36, 114, 22, 84, 66, 83, 82, 83, 82, 82, 98, 82, + 82, 83, 82, 83, 82, 82, 98, 82, 98, 82, 83, 67, + 82, 0, 15, 80, 24, 10, 240, 240, 67, 115, 115, 0, + 5, 98, 130, 115, 115, 114, 130, 115, 115, 114, 130, 130, + 115, 114, 0, 11, 31, 15, 0, 6, 99, 195, 195, 0, + 8, 114, 210, 210, 210, 195, 194, 210, 210, 210, 195, 194, + 210, 210, 210, 195, 194, 195, 134, 164, 240, 240, 160, 39, + 16, 240, 240, 114, 211, 210, 226, 226, 226, 211, 210, 226, + 83, 98, 67, 99, 50, 130, 35, 146, 19, 166, 166, 148, + 19, 131, 50, 130, 67, 114, 82, 114, 83, 83, 83, 0, + 16, 80, 26, 10, 240, 162, 115, 114, 130, 130, 115, 115, + 114, 130, 130, 115, 114, 130, 130, 115, 115, 114, 130, 130, + 115, 114, 0, 11, 46, 22, 0, 27, 98, 37, 52, 98, + 22, 38, 83, 68, 51, 67, 83, 82, 67, 83, 82, 66, + 98, 98, 66, 98, 82, 82, 83, 82, 67, 83, 82, 66, + 98, 98, 66, 98, 98, 66, 98, 83, 66, 83, 82, 0, + 22, 80, 33, 15, 0, 19, 18, 36, 114, 22, 99, 66, + 83, 82, 83, 82, 82, 98, 82, 82, 83, 82, 83, 82, + 82, 98, 82, 98, 82, 83, 67, 82, 0, 15, 80, 29, + 16, 0, 20, 100, 168, 99, 82, 98, 114, 66, 130, 65, + 146, 50, 146, 50, 131, 50, 130, 66, 114, 98, 83, 104, + 164, 0, 17, 16, 37, 17, 0, 21, 98, 52, 130, 22, + 131, 67, 114, 98, 99, 98, 98, 114, 98, 114, 98, 114, + 83, 98, 99, 83, 99, 67, 121, 130, 36, 131, 226, 242, + 242, 242, 227, 0, 6, 38, 15, 0, 19, 52, 18, 105, + 83, 67, 67, 83, 66, 99, 65, 114, 66, 114, 66, 114, + 66, 99, 66, 99, 67, 67, 102, 18, 116, 34, 195, 194, + 210, 210, 210, 195, 240, 240, 96, 22, 13, 0, 16, 82, + 35, 98, 20, 85, 132, 147, 162, 178, 163, 162, 178, 178, + 178, 163, 0, 14, 32, 22, 14, 0, 18, 21, 120, 98, + 81, 82, 194, 197, 166, 180, 194, 194, 81, 82, 89, 117, + 0, 14, 112, 25, 11, 0, 8, 82, 131, 130, 146, 120, + 56, 67, 130, 146, 146, 146, 130, 146, 146, 146, 49, 86, + 84, 0, 11, 112, 32, 15, 0, 19, 2, 83, 82, 83, + 66, 98, 82, 98, 82, 98, 82, 83, 82, 82, 82, 98, + 82, 98, 82, 83, 82, 68, 89, 116, 34, 0, 15, 96, + 30, 15, 0, 18, 99, 114, 51, 98, 67, 98, 82, 82, + 98, 67, 98, 66, 114, 51, 115, 34, 131, 18, 162, 18, + 164, 180, 179, 0, 16, 32, 50, 21, 0, 26, 35, 82, + 98, 51, 82, 98, 51, 68, 66, 67, 65, 18, 66, 82, + 50, 18, 50, 98, 49, 34, 50, 98, 34, 34, 34, 114, + 33, 50, 34, 114, 18, 50, 18, 130, 17, 66, 18, 132, + 68, 147, 84, 147, 83, 0, 22, 16, 29, 18, 0, 22, + 115, 99, 114, 83, 131, 51, 163, 19, 197, 212, 242, 244, + 210, 18, 194, 35, 162, 66, 146, 83, 99, 115, 0, 18, + 80, 37, 18, 0, 22, 115, 114, 99, 98, 130, 98, 130, + 82, 146, 67, 147, 50, 163, 34, 194, 34, 194, 18, 210, + 18, 212, 228, 242, 242, 240, 18, 242, 243, 197, 212, 0, + 6, 32, 20, 16, 0, 20, 58, 106, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 203, 90, 0, 16, 96, 9, 17, + 0, 29, 110, 62, 0, 32, 32, 11, 32, 0, 56, 15, + 14, 63, 14, 0, 60, 48, 18, 13, 240, 226, 35, 82, + 50, 98, 35, 82, 50, 98, 34, 98, 50, 0, 38, 16, + 15, 13, 240, 240, 179, 50, 69, 34, 65, 37, 66, 51, + 0, 39, 80, +}; + +//***************************************************************************** +// +// The font definition for the 30 point Cmss italic font. +// +//***************************************************************************** +const tFont g_sFontCmss30i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 28, + + // + // The height of the font. + // + 31, + + // + // The baseline of the font. + // + 23, + + // + // The offset to each character in the font. + // + { + 0, 5, 31, 48, 131, 177, 250, 305, + 316, 350, 384, 411, 454, 467, 476, 485, + 551, 594, 622, 653, 684, 721, 753, 792, + 819, 860, 900, 913, 930, 956, 968, 995, + 1022, 1077, 1124, 1167, 1210, 1255, 1298, 1342, + 1386, 1432, 1459, 1488, 1537, 1565, 1643, 1705, + 1750, 1794, 1850, 1895, 1932, 1980, 2027, 2075, + 2154, 2205, 2253, 2299, 2333, 2351, 2385, 2403, + 2412, 2424, 2450, 2489, 2510, 2550, 2573, 2601, + 2639, 2680, 2704, 2735, 2774, 2800, 2846, 2879, + 2908, 2945, 2983, 3005, 3027, 3052, 3084, 3114, + 3164, 3193, 3230, 3250, 3259, 3270, 3288, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss30iData +}; diff --git a/grlib/fonts/fontcmss32.c b/grlib/fonts/fontcmss32.c new file mode 100644 index 0000000..e50bd3c --- /dev/null +++ b/grlib/fonts/fontcmss32.c @@ -0,0 +1,390 @@ +//***************************************************************************** +// +// fontcmss32.c - Font definition for the 32pt Cmss font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 32 point +// Bold: no +// Italic: no +// Memory usage: 3600 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 32 point Cmss font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss32Data[3399] = +{ + 5, 13, 0, 53, 80, 26, 5, 162, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 210, 50, 50, 240, 240, 208, 20, 11, 240, 114, 66, + 50, 66, 50, 66, 65, 81, 50, 66, 49, 81, 65, 81, + 0, 33, 64, 89, 25, 0, 7, 66, 82, 240, 17, 97, + 240, 33, 97, 240, 33, 97, 240, 18, 82, 240, 17, 97, + 240, 33, 97, 240, 33, 97, 240, 18, 82, 240, 17, 97, + 240, 33, 97, 159, 7, 162, 82, 240, 17, 97, 240, 33, + 97, 240, 33, 97, 240, 18, 82, 175, 7, 145, 97, 240, + 33, 97, 240, 18, 82, 240, 17, 97, 240, 33, 97, 240, + 33, 97, 240, 18, 82, 240, 17, 97, 240, 33, 97, 240, + 33, 97, 240, 18, 82, 0, 7, 112, 50, 14, 82, 194, + 166, 120, 83, 18, 33, 82, 34, 114, 50, 114, 50, 114, + 50, 115, 34, 115, 34, 134, 150, 150, 165, 146, 19, 130, + 34, 130, 34, 130, 34, 130, 34, 130, 34, 49, 66, 19, + 51, 34, 18, 89, 103, 162, 194, 0, 11, 48, 77, 24, + 240, 180, 162, 118, 145, 130, 34, 130, 114, 51, 113, 130, + 66, 98, 130, 66, 97, 146, 66, 82, 146, 66, 81, 162, + 66, 66, 162, 66, 65, 194, 34, 65, 214, 65, 228, 65, + 240, 129, 68, 225, 70, 194, 66, 34, 193, 66, 51, 162, + 66, 66, 161, 82, 66, 146, 82, 66, 145, 98, 66, 130, + 98, 66, 129, 114, 66, 114, 130, 34, 129, 150, 114, 164, + 0, 18, 80, 59, 23, 0, 6, 83, 240, 54, 240, 34, + 35, 242, 66, 242, 66, 242, 66, 242, 66, 242, 50, 240, + 19, 18, 240, 38, 240, 52, 129, 163, 131, 132, 130, 133, + 130, 114, 35, 98, 114, 67, 82, 98, 83, 66, 114, 99, + 35, 114, 118, 131, 116, 163, 85, 185, 24, 102, 86, 0, + 23, 48, 12, 5, 162, 50, 50, 65, 50, 49, 65, 0, + 15, 64, 36, 10, 82, 114, 114, 130, 114, 130, 129, 130, + 130, 130, 129, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 131, 130, 130, 130, 130, 146, 130, 146, 130, 146, + 146, 48, 36, 10, 2, 146, 146, 130, 146, 130, 146, 130, + 130, 130, 146, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 114, 130, 130, 130, 114, 130, 114, 130, 114, + 114, 128, 28, 13, 66, 178, 178, 178, 114, 34, 34, 51, + 18, 19, 86, 132, 148, 120, 67, 18, 19, 50, 34, 34, + 114, 178, 178, 0, 30, 16, 46, 22, 0, 17, 81, 240, + 97, 240, 97, 240, 97, 240, 97, 240, 97, 240, 97, 240, + 97, 240, 97, 240, 97, 207, 4, 193, 240, 97, 240, 97, + 240, 97, 240, 97, 240, 97, 240, 97, 240, 97, 240, 97, + 240, 97, 0, 18, 13, 5, 0, 13, 98, 50, 50, 65, + 50, 49, 65, 240, 144, 9, 11, 0, 23, 56, 56, 0, + 19, 80, 10, 5, 0, 13, 98, 50, 50, 240, 240, 208, + 36, 15, 177, 210, 209, 225, 210, 209, 225, 210, 209, 225, + 210, 209, 225, 210, 209, 225, 210, 209, 225, 210, 209, 225, + 210, 209, 225, 210, 209, 225, 210, 209, 225, 210, 209, 224, + 45, 15, 0, 8, 4, 152, 114, 66, 98, 98, 82, 98, + 66, 130, 50, 130, 50, 130, 50, 130, 50, 130, 50, 130, + 50, 130, 50, 130, 50, 130, 50, 130, 50, 130, 66, 98, + 82, 98, 98, 67, 104, 148, 0, 15, 112, 29, 13, 0, + 7, 2, 118, 115, 18, 178, 178, 178, 178, 178, 178, 178, + 178, 178, 178, 178, 178, 178, 178, 178, 178, 122, 58, 0, + 13, 48, 33, 15, 0, 8, 5, 136, 99, 67, 82, 98, + 66, 130, 65, 130, 65, 130, 210, 210, 194, 210, 194, 194, + 194, 194, 194, 194, 194, 194, 219, 75, 0, 15, 48, 34, + 15, 0, 8, 5, 136, 99, 67, 82, 98, 81, 114, 210, + 210, 194, 149, 165, 227, 210, 226, 210, 210, 210, 49, 146, + 50, 114, 83, 67, 104, 148, 0, 15, 112, 38, 16, 0, + 8, 115, 211, 196, 193, 18, 178, 18, 163, 18, 162, 34, + 147, 34, 146, 50, 131, 50, 130, 66, 114, 82, 99, 82, + 109, 61, 178, 226, 226, 226, 226, 226, 0, 16, 96, 33, + 15, 0, 7, 90, 90, 82, 210, 210, 210, 210, 210, 21, + 121, 100, 51, 82, 98, 226, 210, 210, 210, 210, 210, 50, + 114, 67, 82, 105, 133, 0, 15, 112, 41, 15, 0, 8, + 22, 135, 114, 194, 194, 210, 209, 52, 98, 23, 84, 67, + 67, 98, 66, 130, 50, 130, 50, 130, 50, 130, 50, 130, + 65, 130, 66, 114, 66, 98, 98, 66, 120, 148, 0, 15, + 112, 28, 15, 0, 7, 76, 60, 194, 209, 210, 194, 210, + 194, 210, 194, 210, 210, 194, 210, 210, 210, 194, 210, 210, + 210, 210, 0, 16, 32, 43, 15, 0, 7, 118, 136, 99, + 67, 66, 130, 50, 130, 50, 130, 51, 114, 67, 67, 104, + 134, 130, 67, 82, 98, 66, 130, 50, 130, 50, 130, 50, + 130, 50, 130, 66, 98, 83, 67, 104, 148, 0, 15, 112, + 40, 15, 0, 8, 4, 152, 114, 66, 98, 98, 66, 129, + 66, 130, 50, 130, 50, 130, 50, 130, 50, 130, 66, 99, + 67, 68, 87, 18, 100, 50, 209, 210, 210, 194, 98, 66, + 119, 149, 0, 16, 15, 5, 0, 6, 114, 50, 50, 240, + 240, 210, 50, 50, 240, 240, 208, 18, 5, 0, 6, 114, + 50, 50, 240, 240, 210, 50, 50, 65, 50, 49, 65, 240, + 144, 26, 5, 240, 240, 162, 50, 50, 240, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 208, 13, 23, 0, 37, 63, 5, 0, 14, 111, + 5, 0, 37, 96, 30, 13, 0, 13, 66, 178, 178, 0, + 6, 34, 178, 178, 178, 178, 162, 178, 162, 163, 162, 162, + 178, 178, 178, 194, 82, 73, 101, 240, 240, 16, 30, 12, + 240, 166, 88, 66, 67, 162, 162, 162, 162, 147, 146, 146, + 147, 146, 162, 146, 162, 162, 162, 162, 240, 240, 66, 162, + 162, 0, 12, 112, 60, 19, 240, 240, 245, 201, 147, 67, + 130, 115, 98, 86, 83, 57, 66, 51, 52, 66, 50, 83, + 50, 51, 83, 50, 50, 114, 50, 50, 114, 50, 50, 114, + 50, 50, 114, 50, 50, 114, 50, 51, 83, 66, 50, 82, + 82, 51, 51, 83, 55, 114, 83, 162, 240, 51, 99, 137, + 197, 0, 19, 112, 50, 21, 0, 6, 20, 240, 36, 240, + 36, 240, 22, 242, 19, 242, 34, 227, 35, 210, 51, 210, + 66, 195, 67, 178, 83, 178, 98, 163, 99, 146, 115, 156, + 142, 114, 147, 114, 162, 99, 163, 82, 179, 82, 194, 67, + 195, 50, 211, 0, 21, 48, 46, 18, 240, 240, 106, 140, + 98, 116, 82, 147, 66, 162, 66, 162, 66, 162, 66, 162, + 66, 146, 82, 115, 107, 123, 114, 116, 82, 147, 66, 163, + 50, 178, 50, 178, 50, 178, 50, 163, 50, 147, 66, 132, + 76, 106, 0, 19, 45, 18, 240, 240, 214, 170, 115, 82, + 114, 242, 243, 242, 240, 18, 242, 240, 18, 240, 18, 240, + 18, 240, 18, 240, 18, 240, 18, 240, 34, 240, 18, 240, + 19, 240, 18, 240, 34, 145, 100, 83, 138, 151, 0, 18, + 80, 49, 19, 240, 240, 138, 156, 114, 116, 98, 147, 82, + 162, 82, 163, 66, 178, 66, 178, 66, 194, 50, 194, 50, + 194, 50, 194, 50, 194, 50, 194, 50, 194, 50, 179, 50, + 178, 66, 178, 66, 162, 82, 147, 82, 116, 108, 122, 0, + 20, 16, 30, 16, 240, 240, 45, 61, 50, 226, 226, 226, + 226, 226, 226, 226, 236, 76, 66, 226, 226, 226, 226, 226, + 226, 226, 226, 237, 61, 0, 16, 48, 29, 15, 240, 252, + 60, 50, 210, 210, 210, 210, 210, 210, 210, 210, 219, 75, + 66, 210, 210, 210, 210, 210, 210, 210, 210, 210, 0, 16, + 80, 49, 19, 240, 240, 247, 171, 115, 99, 99, 145, 82, + 240, 19, 240, 18, 240, 34, 240, 18, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 134, 51, 118, 66, 178, 66, + 178, 82, 162, 83, 146, 99, 130, 115, 99, 139, 166, 0, + 19, 96, 51, 18, 240, 240, 98, 178, 50, 178, 50, 178, + 50, 178, 50, 178, 50, 178, 50, 178, 50, 178, 50, 178, + 50, 178, 63, 63, 50, 178, 50, 178, 50, 178, 50, 178, + 50, 178, 50, 178, 50, 178, 50, 178, 50, 178, 50, 178, + 50, 178, 0, 18, 48, 28, 5, 162, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 240, 240, 208, 31, 13, 240, + 240, 66, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, + 178, 178, 178, 178, 178, 178, 178, 178, 178, 50, 82, 73, + 102, 0, 13, 80, 52, 19, 240, 240, 130, 163, 66, 147, + 82, 131, 98, 116, 98, 115, 114, 99, 130, 83, 146, 67, + 162, 51, 178, 36, 178, 22, 169, 165, 35, 148, 51, 147, + 83, 130, 100, 114, 115, 114, 131, 98, 131, 98, 147, 82, + 163, 66, 163, 66, 179, 0, 19, 48, 29, 15, 240, 242, + 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 210, 210, 210, 210, 210, 210, 220, 60, 0, 15, + 48, 86, 23, 0, 5, 99, 227, 52, 196, 52, 196, 53, + 180, 50, 18, 162, 18, 50, 18, 162, 18, 50, 19, 131, + 18, 50, 34, 130, 34, 50, 34, 130, 34, 50, 35, 99, + 34, 50, 50, 98, 50, 50, 50, 98, 50, 50, 51, 67, + 50, 50, 66, 66, 66, 50, 66, 66, 66, 50, 67, 35, + 66, 50, 82, 34, 82, 50, 82, 34, 82, 50, 86, 82, + 50, 100, 98, 50, 100, 98, 50, 100, 98, 50, 240, 18, + 0, 23, 48, 68, 18, 240, 240, 100, 146, 52, 146, 53, + 130, 53, 130, 50, 19, 114, 50, 19, 114, 50, 35, 98, + 50, 35, 98, 50, 50, 98, 50, 51, 82, 50, 66, 82, + 50, 67, 66, 50, 82, 66, 50, 83, 50, 50, 98, 50, + 50, 99, 34, 50, 99, 34, 50, 115, 18, 50, 115, 18, + 50, 133, 50, 133, 50, 148, 50, 148, 0, 18, 48, 49, + 21, 0, 6, 6, 233, 164, 68, 146, 131, 114, 162, 98, + 194, 82, 194, 82, 195, 50, 226, 50, 226, 50, 226, 50, + 226, 50, 226, 50, 226, 50, 226, 66, 194, 82, 194, 83, + 163, 98, 162, 130, 130, 148, 68, 184, 230, 0, 22, 16, + 40, 17, 240, 240, 74, 123, 98, 115, 82, 146, 66, 147, + 50, 162, 50, 162, 50, 162, 50, 162, 50, 147, 50, 146, + 66, 115, 91, 106, 114, 242, 242, 242, 242, 242, 242, 242, + 242, 0, 18, 112, 59, 21, 0, 6, 6, 233, 164, 68, + 146, 131, 114, 162, 99, 163, 82, 194, 82, 195, 50, 226, + 50, 226, 50, 226, 50, 226, 50, 226, 50, 226, 50, 226, + 66, 195, 66, 83, 66, 83, 67, 66, 98, 83, 34, 130, + 86, 132, 53, 185, 217, 240, 51, 240, 67, 240, 67, 240, + 51, 0, 11, 49, 18, 240, 240, 106, 139, 114, 116, 82, + 146, 82, 162, 66, 162, 66, 162, 66, 162, 66, 162, 66, + 146, 82, 115, 107, 121, 146, 83, 130, 98, 130, 99, 114, + 114, 114, 115, 98, 130, 98, 146, 82, 146, 82, 162, 66, + 163, 0, 18, 48, 34, 16, 240, 240, 102, 138, 83, 83, + 82, 129, 66, 226, 226, 227, 226, 228, 215, 168, 182, 211, + 227, 226, 226, 226, 226, 49, 146, 67, 99, 90, 134, 0, + 16, 112, 52, 21, 240, 240, 207, 3, 63, 3, 178, 240, + 66, 240, 66, 240, 66, 240, 66, 240, 66, 240, 66, 240, + 66, 240, 66, 240, 66, 240, 66, 240, 66, 240, 66, 240, + 66, 240, 66, 240, 66, 240, 66, 240, 66, 240, 66, 240, + 66, 240, 66, 0, 22, 48, 50, 17, 240, 240, 66, 162, + 50, 162, 50, 162, 50, 162, 50, 162, 50, 162, 50, 162, + 50, 162, 50, 162, 50, 162, 50, 162, 50, 162, 50, 162, + 50, 162, 50, 162, 50, 162, 50, 162, 50, 162, 66, 130, + 83, 99, 99, 67, 136, 180, 0, 18, 52, 21, 240, 240, + 194, 226, 51, 210, 51, 195, 66, 194, 83, 163, 83, 163, + 99, 146, 115, 131, 115, 131, 131, 114, 147, 99, 147, 98, + 179, 82, 179, 67, 194, 66, 211, 50, 211, 35, 226, 34, + 243, 18, 246, 240, 20, 240, 36, 240, 36, 0, 22, 32, + 86, 30, 0, 7, 66, 163, 147, 51, 147, 147, 51, 132, + 146, 67, 133, 130, 82, 133, 115, 83, 99, 18, 114, 99, + 98, 34, 114, 99, 98, 35, 98, 114, 98, 35, 83, 115, + 67, 50, 82, 131, 66, 66, 82, 131, 66, 67, 66, 146, + 66, 67, 51, 147, 35, 82, 50, 163, 34, 98, 50, 163, + 34, 99, 34, 178, 34, 99, 19, 179, 18, 114, 18, 197, + 130, 18, 212, 130, 18, 212, 132, 228, 147, 227, 163, 0, + 31, 16, 52, 21, 240, 240, 195, 179, 83, 147, 115, 131, + 115, 115, 147, 83, 179, 67, 179, 51, 211, 19, 246, 245, + 240, 35, 240, 52, 240, 21, 240, 18, 19, 227, 35, 195, + 51, 194, 83, 163, 99, 131, 115, 131, 131, 99, 163, 67, + 180, 51, 195, 0, 21, 48, 53, 21, 240, 240, 195, 210, + 51, 195, 67, 163, 99, 146, 115, 131, 131, 114, 147, 99, + 163, 67, 195, 50, 211, 35, 227, 18, 240, 20, 240, 36, + 240, 50, 240, 66, 240, 66, 240, 66, 240, 66, 240, 66, + 240, 66, 240, 66, 240, 66, 240, 66, 0, 22, 48, 30, + 18, 240, 240, 111, 63, 227, 227, 243, 227, 243, 227, 227, + 243, 227, 243, 227, 242, 243, 227, 243, 227, 243, 227, 227, + 255, 63, 0, 18, 48, 35, 8, 133, 53, 50, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 101, 53, 48, 20, 11, 240, 129, 81, 65, 81, 50, + 66, 49, 81, 66, 66, 50, 66, 50, 66, 0, 33, 48, + 35, 8, 133, 53, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 53, 53, 48, 15, + 13, 240, 243, 148, 131, 18, 114, 35, 82, 66, 66, 98, + 0, 41, 9, 5, 240, 82, 50, 50, 0, 16, 80, 12, + 5, 177, 65, 50, 49, 66, 50, 50, 0, 15, 48, 27, + 14, 0, 19, 85, 121, 82, 82, 210, 194, 194, 119, 89, + 67, 82, 50, 114, 50, 114, 51, 83, 74, 85, 34, 0, + 14, 48, 41, 15, 240, 242, 210, 210, 210, 210, 210, 210, + 210, 210, 210, 37, 106, 83, 83, 66, 114, 66, 130, 50, + 130, 50, 130, 50, 130, 50, 130, 50, 115, 50, 114, 67, + 68, 74, 82, 36, 0, 15, 112, 23, 14, 0, 19, 101, + 121, 67, 82, 66, 179, 178, 194, 194, 194, 195, 194, 195, + 82, 89, 117, 0, 14, 80, 43, 15, 240, 240, 162, 210, + 210, 210, 210, 210, 210, 210, 210, 101, 34, 90, 68, 67, + 66, 114, 51, 114, 50, 130, 50, 130, 50, 130, 50, 130, + 51, 114, 66, 114, 67, 68, 87, 18, 101, 34, 0, 15, + 48, 25, 14, 0, 19, 100, 135, 99, 66, 82, 98, 50, + 114, 59, 59, 50, 194, 195, 194, 195, 82, 89, 117, 0, + 14, 80, 28, 12, 240, 228, 117, 98, 146, 162, 162, 162, + 162, 162, 135, 87, 114, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 0, 13, 39, 16, 0, 22, 68, 35, + 91, 82, 50, 130, 82, 114, 82, 114, 82, 114, 82, 130, + 50, 151, 130, 19, 162, 226, 233, 123, 67, 115, 50, 146, + 51, 130, 67, 83, 90, 134, 240, 240, 144, 43, 14, 240, + 210, 194, 194, 194, 194, 194, 194, 194, 194, 194, 52, 82, + 23, 68, 67, 51, 98, 50, 114, 50, 114, 50, 114, 50, + 114, 50, 114, 50, 114, 50, 114, 50, 114, 50, 114, 50, + 114, 0, 14, 48, 24, 5, 240, 82, 50, 50, 240, 130, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 240, 240, 208, 31, 10, 240, 240, 242, 130, 130, 0, + 6, 2, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 115, 54, 84, 240, 160, 41, + 14, 240, 210, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 83, 66, 67, 82, 51, 98, 35, 114, 20, 114, 19, 134, + 135, 115, 35, 98, 66, 98, 67, 82, 83, 66, 98, 66, + 99, 0, 14, 48, 28, 5, 162, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 240, 240, 208, 49, 22, 0, 30, + 34, 37, 68, 82, 23, 38, 68, 68, 67, 51, 99, 82, + 50, 114, 98, 50, 114, 98, 50, 114, 98, 50, 114, 98, + 50, 114, 98, 50, 114, 98, 50, 114, 98, 50, 114, 98, + 50, 114, 98, 50, 114, 98, 0, 22, 48, 35, 14, 0, + 19, 34, 52, 82, 23, 68, 67, 51, 98, 50, 114, 50, + 114, 50, 114, 50, 114, 50, 114, 50, 114, 50, 114, 50, + 114, 50, 114, 50, 114, 0, 14, 48, 31, 16, 0, 22, + 69, 168, 114, 83, 82, 114, 66, 146, 50, 146, 50, 146, + 50, 146, 50, 146, 51, 130, 66, 114, 84, 67, 105, 149, + 0, 16, 112, 39, 15, 0, 20, 82, 52, 106, 83, 68, + 66, 114, 66, 115, 50, 130, 50, 130, 50, 130, 50, 130, + 50, 115, 50, 114, 67, 68, 74, 82, 36, 114, 210, 210, + 210, 210, 210, 240, 240, 208, 40, 15, 0, 21, 20, 34, + 90, 68, 67, 66, 114, 51, 114, 50, 130, 50, 130, 50, + 130, 50, 130, 51, 114, 66, 114, 68, 52, 87, 18, 101, + 34, 210, 210, 210, 210, 210, 210, 240, 240, 48, 22, 10, + 0, 13, 98, 50, 50, 20, 53, 83, 115, 114, 130, 130, + 130, 130, 130, 130, 130, 130, 0, 11, 23, 13, 0, 18, + 23, 88, 67, 81, 66, 178, 180, 167, 134, 179, 178, 178, + 50, 83, 57, 102, 0, 13, 80, 26, 12, 0, 10, 98, + 162, 162, 162, 136, 72, 98, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 49, 103, 100, 0, 12, 80, 35, 14, 0, + 19, 34, 114, 50, 114, 50, 114, 50, 114, 50, 114, 50, + 114, 50, 114, 50, 114, 50, 114, 50, 114, 50, 114, 50, + 84, 56, 18, 69, 50, 0, 14, 48, 31, 15, 0, 20, + 82, 130, 51, 99, 51, 98, 82, 98, 83, 67, 83, 66, + 114, 66, 115, 35, 115, 34, 146, 34, 150, 164, 180, 180, + 0, 15, 112, 52, 22, 0, 30, 34, 98, 99, 50, 99, + 83, 51, 68, 82, 67, 68, 82, 82, 66, 18, 51, 83, + 49, 34, 50, 99, 34, 34, 50, 114, 34, 34, 50, 114, + 34, 50, 19, 117, 66, 18, 148, 66, 18, 148, 66, 18, + 147, 99, 163, 99, 0, 22, 112, 30, 16, 0, 22, 18, + 115, 67, 83, 99, 66, 131, 35, 150, 180, 195, 212, 181, + 178, 34, 146, 51, 115, 67, 83, 99, 51, 130, 0, 16, + 48, 37, 15, 0, 20, 82, 130, 51, 99, 51, 98, 82, + 98, 83, 67, 98, 66, 115, 50, 130, 35, 130, 34, 147, + 18, 164, 180, 195, 194, 210, 195, 194, 195, 149, 164, 240, + 240, 176, 21, 14, 0, 19, 43, 59, 163, 178, 179, 163, + 163, 178, 179, 163, 178, 178, 187, 59, 0, 14, 48, 9, + 18, 0, 33, 111, 63, 0, 36, 48, 11, 33, 0, 61, + 127, 15, 63, 15, 0, 66, 48, 18, 12, 240, 178, 50, + 66, 50, 82, 50, 82, 50, 66, 50, 82, 50, 0, 38, + 16, 14, 12, 0, 6, 19, 65, 53, 34, 50, 37, 49, + 67, 0, 38, +}; + +//***************************************************************************** +// +// The font definition for the 32 point Cmss font. +// +//***************************************************************************** +const tFont g_sFontCmss32 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 29, + + // + // The height of the font. + // + 33, + + // + // The baseline of the font. + // + 25, + + // + // The offset to each character in the font. + // + { + 0, 5, 31, 51, 140, 190, 267, 326, + 338, 374, 410, 438, 484, 497, 506, 516, + 552, 597, 626, 659, 693, 731, 764, 805, + 833, 876, 916, 931, 949, 975, 988, 1018, + 1048, 1108, 1158, 1204, 1249, 1298, 1328, 1357, + 1406, 1457, 1485, 1516, 1568, 1597, 1683, 1751, + 1800, 1840, 1899, 1948, 1982, 2034, 2084, 2136, + 2222, 2274, 2327, 2357, 2392, 2412, 2447, 2462, + 2471, 2483, 2510, 2551, 2574, 2617, 2642, 2670, + 2709, 2752, 2776, 2807, 2848, 2876, 2925, 2960, + 2991, 3030, 3070, 3092, 3115, 3141, 3176, 3207, + 3259, 3289, 3326, 3347, 3356, 3367, 3385, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss32Data +}; diff --git a/grlib/fonts/fontcmss32b.c b/grlib/fonts/fontcmss32b.c new file mode 100644 index 0000000..6978a0e --- /dev/null +++ b/grlib/fonts/fontcmss32b.c @@ -0,0 +1,398 @@ +//***************************************************************************** +// +// fontcmss32b.c - Font definition for the 32pt Cmss bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 32 point +// Bold: yes +// Italic: no +// Memory usage: 3716 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 32 point Cmss bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss32bData[3516] = +{ + 5, 13, 0, 53, 80, 27, 7, 228, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 240, 36, 52, 52, 52, 0, 7, 48, 22, 14, 240, 212, + 52, 52, 52, 52, 52, 52, 52, 67, 67, 66, 82, 67, + 67, 66, 82, 0, 40, 112, 85, 28, 0, 8, 51, 82, + 240, 51, 67, 240, 51, 67, 240, 35, 83, 240, 35, 82, + 240, 51, 67, 240, 50, 83, 240, 35, 82, 240, 51, 67, + 159, 10, 63, 10, 63, 10, 179, 67, 240, 50, 83, 240, + 35, 83, 240, 35, 82, 240, 51, 67, 191, 10, 63, 10, + 63, 10, 147, 67, 240, 50, 83, 240, 35, 82, 240, 51, + 67, 240, 50, 83, 240, 35, 82, 240, 51, 67, 240, 51, + 67, 240, 50, 83, 0, 8, 96, 47, 17, 98, 242, 215, + 139, 92, 84, 18, 35, 68, 34, 65, 68, 34, 148, 34, + 149, 18, 152, 169, 139, 122, 153, 168, 146, 21, 146, 36, + 146, 36, 146, 36, 50, 66, 36, 52, 34, 21, 61, 91, + 121, 194, 242, 0, 13, 112, 79, 32, 240, 240, 86, 210, + 168, 179, 148, 36, 148, 132, 68, 131, 148, 68, 115, 164, + 68, 99, 180, 68, 99, 180, 68, 83, 196, 68, 67, 228, + 36, 68, 234, 67, 240, 24, 67, 240, 211, 240, 227, 56, + 240, 35, 58, 243, 68, 36, 227, 68, 68, 211, 68, 68, + 195, 84, 68, 179, 100, 68, 164, 100, 68, 163, 116, 68, + 147, 132, 68, 131, 164, 36, 147, 184, 162, 214, 0, 24, + 96, 60, 27, 0, 7, 101, 240, 88, 240, 52, 36, 240, + 35, 68, 244, 68, 244, 68, 244, 68, 244, 52, 240, 21, + 20, 240, 56, 115, 151, 116, 149, 148, 149, 132, 136, 116, + 116, 21, 84, 116, 53, 52, 132, 54, 36, 117, 74, 148, + 88, 165, 72, 81, 79, 8, 95, 7, 119, 103, 0, 27, + 48, 13, 7, 228, 52, 52, 52, 67, 66, 67, 66, 0, + 20, 96, 36, 12, 99, 131, 131, 147, 131, 132, 131, 147, + 132, 132, 131, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 147, 148, 132, 147, 147, 148, 147, 148, 147, 163, + 163, 48, 36, 12, 3, 163, 163, 148, 147, 148, 147, 148, + 132, 132, 147, 148, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 131, 132, 132, 131, 147, 132, 131, 131, 147, 131, + 131, 144, 32, 16, 83, 211, 211, 146, 35, 34, 68, 18, + 36, 53, 17, 21, 75, 133, 181, 139, 69, 17, 21, 52, + 34, 20, 66, 35, 34, 147, 211, 211, 0, 35, 53, 26, + 0, 17, 67, 240, 131, 240, 131, 240, 131, 240, 131, 240, + 131, 240, 131, 240, 131, 240, 131, 240, 131, 223, 8, 63, + 8, 63, 8, 211, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 0, 14, 80, 15, 7, 0, 18, 52, 52, 52, 52, 67, + 66, 67, 66, 240, 240, 48, 9, 12, 0, 25, 73, 57, + 0, 21, 48, 11, 7, 0, 18, 52, 52, 52, 52, 0, + 7, 48, 36, 17, 194, 227, 227, 211, 227, 227, 211, 227, + 226, 227, 227, 211, 227, 227, 211, 227, 226, 227, 227, 211, + 227, 227, 211, 227, 226, 227, 227, 211, 227, 227, 211, 227, + 226, 240, 48, 18, 240, 240, 182, 169, 132, 52, 100, 84, + 83, 115, 83, 116, 52, 116, 52, 116, 52, 116, 52, 116, + 52, 116, 52, 116, 52, 116, 52, 116, 52, 116, 52, 116, + 52, 116, 52, 116, 68, 99, 84, 84, 100, 52, 137, 166, + 0, 19, 30, 15, 240, 240, 83, 180, 120, 120, 180, 180, + 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, + 180, 180, 180, 124, 60, 0, 15, 48, 34, 17, 240, 240, + 134, 154, 108, 84, 53, 68, 85, 66, 116, 81, 116, 212, + 212, 212, 196, 196, 211, 211, 211, 211, 211, 211, 211, 221, + 62, 62, 77, 0, 17, 48, 35, 17, 240, 240, 134, 169, + 107, 100, 68, 82, 100, 97, 100, 212, 212, 212, 196, 151, + 168, 228, 228, 212, 212, 212, 212, 50, 132, 52, 84, 77, + 106, 150, 0, 17, 112, 43, 19, 0, 5, 101, 214, 214, + 199, 199, 179, 20, 179, 20, 163, 36, 163, 36, 147, 52, + 147, 52, 131, 68, 131, 68, 115, 84, 115, 84, 111, 1, + 63, 1, 63, 1, 196, 244, 244, 244, 244, 0, 19, 96, + 35, 16, 240, 240, 59, 91, 91, 84, 196, 196, 196, 196, + 196, 201, 122, 100, 52, 83, 84, 196, 196, 196, 196, 65, + 116, 50, 116, 52, 68, 76, 90, 134, 0, 16, 112, 43, + 18, 240, 240, 198, 169, 138, 117, 81, 101, 212, 227, 228, + 228, 37, 116, 24, 86, 68, 69, 99, 68, 116, 52, 116, + 52, 116, 52, 116, 52, 116, 67, 116, 68, 100, 69, 68, + 108, 122, 166, 0, 18, 112, 30, 17, 240, 240, 78, 62, + 62, 61, 212, 196, 211, 212, 196, 212, 196, 212, 211, 212, + 212, 212, 211, 212, 212, 212, 212, 212, 212, 0, 18, 32, + 45, 18, 240, 240, 167, 155, 109, 84, 85, 52, 116, 52, + 116, 52, 116, 52, 116, 52, 116, 68, 84, 107, 123, 100, + 84, 83, 116, 52, 116, 52, 116, 52, 116, 52, 116, 52, + 116, 68, 84, 93, 107, 151, 0, 18, 112, 44, 18, 240, + 240, 166, 185, 139, 100, 69, 84, 84, 68, 115, 68, 116, + 52, 116, 52, 116, 52, 116, 52, 116, 52, 116, 67, 101, + 68, 70, 88, 20, 102, 36, 227, 243, 228, 97, 100, 107, + 122, 166, 0, 19, 16, 17, 7, 0, 8, 100, 52, 52, + 52, 0, 6, 68, 52, 52, 52, 0, 7, 48, 21, 7, + 0, 8, 100, 52, 52, 52, 0, 6, 68, 52, 52, 52, + 67, 66, 67, 66, 240, 240, 48, 27, 7, 0, 7, 116, + 52, 52, 52, 240, 36, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 240, 32, 21, 26, + 0, 35, 111, 8, 63, 8, 63, 8, 0, 16, 95, 8, + 63, 8, 63, 8, 0, 36, 16, 31, 15, 0, 17, 51, + 195, 195, 195, 240, 240, 195, 195, 195, 195, 195, 179, 195, + 180, 164, 180, 164, 180, 180, 97, 83, 68, 75, 87, 240, + 240, 96, 32, 15, 240, 240, 54, 107, 68, 68, 66, 84, + 180, 180, 180, 164, 165, 164, 164, 180, 164, 180, 180, 180, + 180, 240, 240, 180, 180, 180, 180, 0, 15, 112, 60, 23, + 0, 6, 103, 220, 165, 84, 117, 132, 100, 73, 84, 60, + 68, 37, 38, 52, 52, 69, 52, 36, 100, 52, 36, 100, + 52, 36, 100, 52, 36, 100, 52, 36, 100, 52, 36, 100, + 52, 36, 100, 52, 52, 68, 84, 37, 52, 84, 58, 116, + 70, 149, 240, 70, 101, 141, 201, 0, 23, 112, 52, 24, + 0, 7, 6, 240, 39, 240, 40, 240, 24, 244, 20, 244, + 21, 228, 21, 212, 37, 212, 53, 196, 53, 180, 69, 180, + 85, 164, 85, 148, 101, 148, 117, 143, 1, 127, 2, 127, + 3, 100, 149, 84, 165, 84, 181, 53, 181, 52, 212, 0, + 24, 48, 48, 21, 240, 240, 205, 143, 111, 1, 84, 118, + 68, 148, 68, 148, 68, 148, 68, 148, 68, 132, 84, 117, + 94, 127, 100, 117, 84, 148, 68, 164, 52, 164, 52, 164, + 52, 164, 52, 149, 52, 133, 79, 2, 79, 1, 94, 0, + 21, 112, 47, 21, 0, 6, 24, 189, 110, 102, 99, 100, + 161, 84, 240, 36, 240, 21, 240, 20, 240, 36, 240, 36, + 240, 36, 240, 36, 240, 36, 240, 36, 240, 37, 240, 36, + 240, 36, 240, 52, 162, 86, 115, 111, 125, 184, 0, 21, + 96, 51, 23, 0, 5, 109, 175, 1, 127, 2, 100, 134, + 84, 165, 68, 180, 68, 180, 68, 196, 52, 196, 52, 196, + 52, 196, 52, 196, 52, 196, 52, 196, 52, 196, 52, 196, + 52, 180, 68, 180, 68, 165, 68, 134, 95, 2, 111, 1, + 126, 0, 24, 16, 30, 18, 240, 240, 111, 63, 63, 63, + 52, 228, 228, 228, 228, 228, 238, 78, 78, 68, 228, 228, + 228, 228, 228, 239, 63, 63, 63, 0, 18, 48, 30, 17, + 240, 240, 78, 62, 62, 52, 212, 212, 212, 212, 212, 212, + 221, 77, 77, 68, 212, 212, 212, 212, 212, 212, 212, 212, + 212, 0, 18, 80, 49, 22, 0, 6, 72, 190, 111, 1, + 87, 100, 85, 161, 85, 240, 36, 240, 37, 240, 36, 240, + 52, 240, 52, 240, 52, 240, 52, 135, 52, 135, 52, 135, + 68, 164, 68, 164, 69, 148, 85, 132, 87, 100, 111, 1, + 142, 184, 0, 22, 96, 53, 22, 240, 240, 228, 180, 52, + 180, 52, 180, 52, 180, 52, 180, 52, 180, 52, 180, 52, + 180, 52, 180, 52, 180, 63, 4, 63, 4, 63, 4, 52, + 180, 52, 180, 52, 180, 52, 180, 52, 180, 52, 180, 52, + 180, 52, 180, 52, 180, 52, 180, 0, 22, 48, 28, 7, + 228, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 0, + 7, 48, 32, 15, 240, 240, 132, 180, 180, 180, 180, 180, + 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, + 65, 100, 66, 69, 74, 75, 118, 0, 15, 96, 51, 22, + 240, 240, 228, 180, 52, 150, 52, 134, 68, 118, 84, 102, + 100, 86, 116, 70, 132, 54, 148, 38, 164, 21, 203, 188, + 167, 21, 150, 37, 149, 69, 132, 101, 116, 116, 116, 117, + 100, 133, 84, 149, 68, 149, 68, 165, 52, 180, 0, 22, + 48, 30, 16, 240, 240, 36, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 205, 61, 61, 0, 16, 48, 82, 28, 0, 7, 6, + 214, 54, 214, 55, 183, 55, 183, 56, 152, 56, 152, 52, + 19, 147, 20, 52, 20, 116, 20, 52, 20, 115, 36, 52, + 35, 115, 36, 52, 36, 84, 36, 52, 51, 83, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 67, 51, 68, 52, + 68, 20, 68, 52, 68, 19, 84, 52, 83, 19, 84, 52, + 87, 84, 52, 101, 100, 52, 101, 100, 52, 100, 116, 52, + 240, 36, 0, 28, 48, 66, 23, 0, 5, 102, 164, 55, + 148, 56, 132, 56, 132, 57, 116, 52, 20, 116, 52, 21, + 100, 52, 36, 100, 52, 37, 84, 52, 52, 84, 52, 53, + 68, 52, 68, 68, 52, 69, 52, 52, 84, 52, 52, 85, + 36, 52, 100, 36, 52, 101, 20, 52, 116, 20, 52, 121, + 52, 136, 52, 136, 52, 151, 52, 166, 0, 23, 48, 47, + 24, 0, 6, 120, 221, 175, 134, 86, 116, 149, 84, 180, + 84, 180, 68, 212, 52, 212, 52, 212, 52, 212, 52, 212, + 52, 212, 52, 212, 52, 212, 53, 196, 68, 180, 84, 180, + 85, 149, 102, 86, 143, 173, 216, 0, 25, 32, 47, 20, + 240, 240, 173, 127, 95, 1, 68, 117, 68, 133, 52, 148, + 52, 148, 52, 148, 52, 148, 52, 133, 52, 117, 79, 1, + 79, 93, 116, 240, 20, 240, 20, 240, 20, 240, 20, 240, + 20, 240, 20, 240, 20, 240, 20, 0, 22, 57, 24, 0, + 6, 120, 221, 175, 134, 86, 116, 149, 84, 180, 84, 180, + 68, 212, 52, 212, 52, 212, 52, 212, 52, 212, 52, 212, + 52, 212, 52, 212, 52, 212, 68, 68, 52, 84, 69, 36, + 85, 74, 102, 56, 143, 173, 220, 240, 70, 240, 69, 240, + 70, 240, 69, 0, 12, 64, 49, 20, 240, 240, 173, 127, + 95, 1, 68, 117, 68, 133, 52, 148, 52, 148, 52, 148, + 52, 148, 52, 133, 52, 117, 79, 93, 116, 69, 116, 84, + 116, 85, 100, 100, 100, 101, 84, 116, 84, 132, 68, 132, + 68, 148, 52, 148, 0, 20, 48, 35, 19, 240, 240, 200, + 157, 94, 84, 100, 68, 145, 84, 244, 245, 247, 203, 155, + 155, 185, 230, 229, 244, 49, 180, 50, 164, 53, 101, 63, + 79, 108, 152, 0, 19, 112, 52, 23, 0, 5, 111, 5, + 63, 5, 63, 5, 63, 5, 180, 240, 68, 240, 68, 240, + 68, 240, 68, 240, 68, 240, 68, 240, 68, 240, 68, 240, + 68, 240, 68, 240, 68, 240, 68, 240, 68, 240, 68, 240, + 68, 240, 68, 240, 68, 240, 68, 0, 24, 48, 49, 21, + 240, 240, 196, 164, 52, 164, 52, 164, 52, 164, 52, 164, + 52, 164, 52, 164, 52, 164, 52, 164, 52, 164, 52, 164, + 52, 164, 52, 164, 52, 164, 52, 164, 52, 164, 52, 164, + 52, 164, 68, 132, 85, 101, 110, 140, 184, 0, 22, 51, + 25, 0, 6, 36, 228, 53, 196, 69, 196, 85, 165, 85, + 164, 101, 164, 117, 133, 117, 132, 148, 117, 149, 101, 149, + 100, 181, 69, 181, 68, 197, 68, 213, 37, 213, 36, 229, + 36, 250, 249, 240, 25, 240, 40, 240, 39, 240, 70, 0, + 26, 48, 83, 34, 0, 8, 68, 149, 163, 52, 150, 147, + 52, 135, 132, 53, 119, 132, 68, 115, 20, 116, 68, 115, + 20, 115, 84, 100, 20, 100, 85, 84, 20, 100, 100, 83, + 52, 83, 116, 83, 52, 68, 116, 68, 52, 68, 117, 52, + 52, 68, 132, 51, 84, 51, 148, 51, 84, 36, 149, 20, + 84, 36, 164, 20, 84, 36, 164, 19, 116, 19, 180, 19, + 120, 184, 120, 199, 120, 198, 150, 214, 150, 229, 150, 0, + 35, 50, 24, 0, 6, 21, 149, 86, 117, 117, 101, 134, + 85, 150, 53, 181, 37, 213, 21, 218, 248, 240, 39, 240, + 53, 240, 54, 240, 55, 240, 25, 234, 229, 21, 197, 53, + 165, 70, 149, 85, 133, 117, 101, 134, 70, 150, 53, 181, + 0, 24, 48, 52, 25, 0, 6, 37, 197, 69, 165, 86, + 149, 102, 117, 133, 101, 150, 85, 165, 69, 197, 37, 214, + 21, 234, 240, 24, 240, 40, 240, 54, 240, 84, 240, 100, + 240, 100, 240, 100, 240, 100, 240, 100, 240, 100, 240, 100, + 240, 100, 240, 100, 0, 26, 64, 38, 21, 240, 240, 207, + 3, 63, 3, 63, 3, 245, 245, 246, 245, 245, 246, 245, + 245, 246, 245, 245, 245, 240, 21, 245, 245, 240, 21, 245, + 255, 3, 63, 3, 63, 3, 0, 21, 48, 35, 10, 167, + 55, 52, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, + 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, + 100, 100, 100, 100, 100, 103, 55, 48, 22, 14, 240, 242, + 82, 67, 67, 66, 82, 67, 67, 68, 52, 52, 52, 52, + 52, 52, 52, 0, 40, 80, 35, 10, 167, 55, 100, 100, + 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, + 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, + 100, 100, 55, 55, 48, 17, 14, 240, 240, 36, 149, 131, + 19, 115, 35, 83, 67, 51, 98, 0, 44, 16, 8, 7, + 228, 52, 52, 52, 0, 24, 14, 7, 240, 18, 67, 66, + 67, 68, 52, 52, 52, 0, 20, 64, 32, 17, 0, 21, + 88, 124, 84, 69, 66, 116, 212, 212, 137, 86, 36, 68, + 84, 52, 100, 52, 100, 52, 100, 53, 69, 72, 20, 85, + 52, 0, 17, 48, 43, 17, 240, 240, 68, 212, 212, 212, + 212, 212, 212, 212, 212, 37, 108, 85, 68, 68, 84, 68, + 100, 52, 100, 52, 100, 52, 100, 52, 100, 52, 100, 52, + 100, 52, 84, 69, 68, 76, 84, 21, 0, 17, 112, 25, + 16, 0, 20, 70, 138, 92, 68, 83, 52, 196, 196, 196, + 196, 196, 196, 129, 68, 83, 76, 90, 134, 0, 16, 96, + 43, 18, 0, 5, 116, 228, 228, 228, 228, 228, 228, 228, + 117, 36, 93, 69, 69, 68, 100, 52, 116, 52, 116, 52, + 116, 52, 116, 52, 116, 52, 116, 52, 116, 68, 100, 69, + 69, 93, 117, 36, 0, 18, 48, 28, 18, 0, 23, 7, + 155, 101, 68, 84, 100, 52, 116, 52, 116, 63, 63, 52, + 228, 228, 244, 130, 84, 84, 108, 135, 0, 18, 96, 30, + 14, 240, 240, 54, 104, 99, 65, 84, 164, 164, 164, 164, + 137, 89, 116, 164, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 0, 15, 41, 19, 0, 24, 39, 35, 94, + 84, 52, 116, 84, 100, 84, 100, 84, 100, 84, 116, 52, + 138, 145, 23, 162, 240, 43, 141, 110, 79, 67, 132, 52, + 147, 67, 147, 68, 115, 109, 136, 240, 240, 240, 45, 17, + 240, 240, 68, 212, 212, 212, 212, 212, 212, 212, 212, 53, + 84, 24, 70, 53, 53, 84, 52, 100, 52, 100, 52, 100, + 52, 100, 52, 100, 52, 100, 52, 100, 52, 100, 52, 100, + 52, 100, 52, 100, 0, 17, 48, 26, 7, 228, 52, 52, + 52, 240, 240, 20, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 0, 7, 48, 32, 12, 240, + 228, 132, 132, 132, 0, 7, 4, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 57, 56, 101, 240, 224, 41, 17, 240, 240, 68, 212, 212, + 212, 212, 212, 212, 212, 212, 84, 68, 69, 68, 53, 84, + 37, 100, 21, 121, 136, 153, 138, 117, 21, 100, 52, 100, + 68, 84, 69, 68, 85, 52, 100, 0, 17, 48, 28, 7, + 228, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 0, + 7, 48, 52, 26, 0, 32, 68, 53, 69, 84, 24, 39, + 70, 55, 52, 53, 85, 68, 52, 100, 84, 52, 100, 84, + 52, 100, 84, 52, 100, 84, 52, 100, 84, 52, 100, 84, + 52, 100, 84, 52, 100, 84, 52, 100, 84, 52, 100, 84, + 52, 100, 84, 0, 26, 48, 37, 17, 0, 21, 36, 53, + 84, 24, 70, 53, 53, 84, 52, 100, 52, 100, 52, 100, + 52, 100, 52, 100, 52, 100, 52, 100, 52, 100, 52, 100, + 52, 100, 52, 100, 0, 17, 48, 32, 18, 0, 23, 7, + 155, 100, 84, 83, 100, 68, 116, 52, 116, 52, 116, 52, + 116, 52, 116, 52, 116, 53, 100, 68, 84, 93, 107, 151, + 0, 18, 112, 41, 17, 0, 21, 36, 37, 100, 23, 93, + 69, 53, 68, 85, 52, 100, 52, 100, 52, 100, 52, 100, + 52, 100, 52, 100, 52, 84, 69, 53, 76, 84, 21, 116, + 212, 212, 212, 212, 212, 0, 5, 112, 41, 18, 0, 23, + 5, 36, 88, 20, 78, 69, 69, 53, 100, 52, 116, 52, + 116, 52, 116, 52, 116, 52, 116, 52, 116, 68, 100, 69, + 69, 93, 117, 36, 228, 228, 228, 228, 228, 228, 240, 240, + 144, 24, 12, 0, 15, 4, 50, 52, 20, 52, 20, 54, + 101, 116, 132, 132, 132, 132, 132, 132, 132, 132, 132, 0, + 13, 26, 15, 0, 19, 23, 106, 67, 98, 67, 113, 68, + 183, 153, 121, 151, 195, 50, 115, 51, 84, 60, 74, 118, + 0, 15, 96, 27, 14, 0, 10, 100, 164, 164, 164, 138, + 74, 100, 164, 164, 164, 164, 164, 164, 164, 164, 164, 50, + 89, 103, 132, 0, 14, 96, 37, 17, 0, 21, 36, 100, + 52, 100, 52, 100, 52, 100, 52, 100, 52, 100, 52, 100, + 52, 100, 52, 100, 52, 100, 52, 100, 52, 85, 52, 70, + 72, 20, 86, 36, 0, 17, 48, 32, 17, 0, 21, 36, + 115, 52, 100, 52, 100, 68, 68, 84, 68, 84, 68, 100, + 51, 116, 36, 116, 36, 131, 35, 152, 152, 166, 182, 182, + 0, 17, 112, 54, 25, 0, 31, 36, 98, 115, 52, 84, + 84, 52, 84, 84, 68, 53, 83, 84, 54, 52, 84, 50, + 19, 52, 84, 50, 19, 51, 116, 19, 19, 51, 116, 19, + 20, 20, 116, 18, 36, 20, 131, 18, 51, 19, 150, 55, + 150, 55, 149, 71, 164, 85, 0, 25, 112, 31, 17, 0, + 21, 36, 99, 69, 68, 85, 36, 116, 36, 136, 166, 196, + 212, 198, 167, 163, 20, 132, 36, 100, 68, 68, 85, 52, + 100, 0, 17, 48, 39, 17, 0, 21, 36, 115, 52, 100, + 68, 83, 84, 68, 100, 52, 100, 51, 116, 36, 132, 20, + 132, 19, 163, 19, 167, 181, 197, 212, 211, 227, 212, 129, + 52, 152, 151, 165, 0, 5, 96, 22, 16, 0, 20, 13, + 61, 180, 181, 165, 180, 180, 181, 165, 180, 180, 181, 180, + 189, 61, 0, 16, 48, 11, 21, 0, 39, 63, 3, 63, + 3, 0, 42, 48, 13, 38, 0, 71, 47, 15, 5, 63, + 15, 5, 0, 76, 48, 16, 14, 240, 228, 36, 52, 36, + 68, 36, 67, 51, 82, 66, 0, 46, 32, 15, 15, 240, + 240, 36, 66, 70, 35, 51, 38, 66, 68, 0, 51, 32,}; + +//***************************************************************************** +// +// The font definition for the 32 point Cmss bold font. +// +//***************************************************************************** +const tFont g_sFontCmss32b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 34, + + // + // The height of the font. + // + 33, + + // + // The baseline of the font. + // + 25, + + // + // The offset to each character in the font. + // + { + 0, 5, 32, 54, 139, 186, 265, 325, + 338, 374, 410, 442, 495, 510, 519, 530, + 566, 614, 644, 678, 713, 756, 791, 834, + 864, 909, 953, 970, 991, 1018, 1039, 1070, + 1102, 1162, 1214, 1262, 1309, 1360, 1390, 1420, + 1469, 1522, 1550, 1582, 1633, 1663, 1745, 1811, + 1858, 1905, 1962, 2011, 2046, 2098, 2147, 2198, + 2281, 2331, 2383, 2421, 2456, 2478, 2513, 2530, + 2538, 2552, 2584, 2627, 2652, 2695, 2723, 2753, + 2794, 2839, 2865, 2897, 2938, 2966, 3018, 3055, + 3087, 3128, 3169, 3193, 3219, 3246, 3283, 3315, + 3369, 3400, 3439, 3461, 3472, 3485, 3501, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss32bData +}; diff --git a/grlib/fonts/fontcmss32i.c b/grlib/fonts/fontcmss32i.c new file mode 100644 index 0000000..93a0f7b --- /dev/null +++ b/grlib/fonts/fontcmss32i.c @@ -0,0 +1,405 @@ +//***************************************************************************** +// +// fontcmss32i.c - Font definition for the 32pt Cmss italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 32 point +// Bold: no +// Italic: yes +// Memory usage: 3780 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 32 point Cmss italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss32iData[3579] = +{ + 5, 13, 0, 53, 80, 28, 10, 240, 147, 115, 114, 130, + 130, 130, 115, 114, 130, 130, 130, 115, 114, 130, 130, 130, + 130, 114, 240, 195, 115, 115, 0, 10, 112, 20, 13, 240, + 195, 51, 67, 51, 67, 51, 66, 66, 82, 66, 81, 81, + 82, 66, 0, 39, 80, 89, 26, 0, 8, 33, 97, 240, + 34, 82, 240, 33, 97, 240, 34, 82, 240, 33, 97, 240, + 49, 97, 240, 33, 97, 240, 49, 97, 240, 33, 97, 240, + 49, 97, 240, 33, 97, 175, 7, 177, 97, 240, 49, 97, + 240, 34, 82, 240, 33, 97, 240, 49, 97, 191, 7, 161, + 97, 240, 33, 97, 240, 49, 97, 240, 33, 97, 240, 49, + 97, 240, 34, 81, 240, 49, 97, 240, 34, 82, 240, 33, + 97, 240, 34, 82, 240, 33, 97, 0, 8, 80, 52, 18, + 162, 240, 18, 215, 169, 131, 18, 34, 114, 50, 49, 114, + 50, 162, 50, 178, 50, 178, 50, 179, 34, 183, 199, 199, + 214, 179, 19, 178, 50, 178, 50, 178, 50, 178, 50, 162, + 50, 97, 66, 35, 99, 34, 19, 122, 166, 226, 240, 18, + 0, 15, 77, 22, 240, 180, 161, 101, 145, 98, 50, 129, + 98, 50, 113, 98, 66, 97, 114, 66, 82, 98, 82, 81, + 114, 66, 81, 130, 66, 65, 146, 51, 50, 146, 50, 65, + 181, 65, 196, 65, 240, 97, 83, 193, 84, 177, 82, 34, + 146, 66, 50, 145, 82, 50, 129, 83, 50, 113, 98, 66, + 98, 98, 66, 97, 114, 50, 97, 130, 50, 81, 146, 34, + 97, 164, 97, 179, 0, 17, 48, 59, 23, 0, 7, 4, + 240, 54, 240, 18, 50, 242, 66, 242, 66, 241, 82, 226, + 66, 242, 50, 240, 18, 34, 240, 37, 240, 52, 130, 146, + 162, 131, 147, 117, 130, 99, 34, 114, 98, 67, 83, 98, + 68, 51, 98, 99, 35, 114, 103, 130, 117, 147, 86, 169, + 24, 102, 86, 0, 23, 64, 12, 7, 243, 67, 67, 66, + 82, 81, 82, 0, 21, 80, 36, 14, 146, 178, 178, 178, + 178, 194, 178, 194, 178, 194, 178, 194, 194, 179, 178, 194, + 194, 194, 178, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 210, 194, 194, 210, 194, 160, 36, 14, 114, 194, 210, 194, + 209, 210, 194, 194, 194, 194, 194, 194, 194, 194, 194, 179, + 178, 194, 194, 194, 178, 194, 194, 178, 194, 178, 194, 178, + 194, 178, 178, 178, 178, 192, 29, 15, 113, 210, 210, 210, + 131, 33, 50, 68, 17, 20, 103, 148, 165, 133, 19, 83, + 33, 35, 66, 34, 49, 146, 210, 210, 0, 34, 112, 46, + 23, 0, 18, 82, 240, 97, 240, 113, 240, 113, 240, 113, + 240, 98, 240, 97, 240, 113, 240, 113, 240, 113, 207, 5, + 193, 240, 113, 240, 113, 240, 113, 240, 98, 240, 97, 240, + 113, 240, 113, 240, 113, 240, 98, 0, 19, 14, 7, 0, + 19, 51, 67, 66, 82, 82, 81, 82, 240, 240, 48, 9, + 11, 0, 23, 56, 56, 0, 19, 80, 10, 6, 0, 16, + 67, 51, 51, 0, 6, 48, 70, 21, 240, 33, 240, 66, + 240, 65, 240, 66, 240, 65, 240, 65, 240, 81, 240, 65, + 240, 81, 240, 65, 240, 81, 240, 65, 240, 81, 240, 65, + 240, 66, 240, 65, 240, 66, 240, 65, 240, 66, 240, 65, + 240, 66, 240, 65, 240, 65, 240, 81, 240, 65, 240, 81, + 240, 65, 240, 81, 240, 65, 240, 66, 240, 65, 240, 66, + 240, 65, 240, 80, 45, 16, 0, 8, 116, 167, 131, 50, + 114, 98, 98, 98, 82, 114, 82, 114, 66, 130, 66, 130, + 66, 130, 66, 114, 67, 114, 66, 130, 66, 115, 66, 114, + 82, 114, 82, 98, 98, 83, 114, 51, 135, 165, 0, 17, + 16, 29, 14, 0, 8, 18, 119, 115, 18, 194, 179, 179, + 179, 178, 179, 179, 179, 178, 194, 179, 179, 179, 178, 194, + 179, 123, 59, 0, 14, 48, 36, 18, 0, 10, 5, 184, + 147, 52, 114, 114, 114, 114, 113, 130, 113, 130, 240, 18, + 242, 240, 18, 242, 242, 242, 226, 242, 242, 242, 227, 226, + 240, 28, 92, 0, 18, 96, 35, 17, 0, 9, 69, 168, + 131, 66, 114, 98, 242, 242, 226, 227, 165, 197, 240, 18, + 240, 18, 242, 242, 242, 242, 81, 130, 82, 115, 99, 67, + 136, 165, 0, 18, 16, 38, 17, 0, 9, 115, 212, 196, + 194, 18, 179, 18, 163, 19, 162, 34, 162, 50, 147, 50, + 131, 51, 115, 67, 99, 82, 114, 98, 110, 62, 179, 226, + 242, 227, 227, 227, 0, 17, 112, 41, 18, 0, 9, 90, + 138, 130, 240, 18, 243, 242, 240, 18, 240, 18, 20, 169, + 148, 51, 131, 82, 240, 18, 240, 18, 240, 18, 240, 18, + 242, 113, 130, 98, 114, 131, 67, 136, 197, 0, 19, 32, + 41, 16, 0, 9, 5, 151, 131, 194, 210, 211, 210, 37, + 99, 22, 100, 67, 83, 98, 67, 114, 67, 114, 66, 130, + 66, 130, 66, 114, 82, 114, 82, 114, 82, 98, 114, 66, + 135, 165, 0, 17, 16, 28, 17, 0, 8, 93, 77, 226, + 226, 226, 227, 211, 226, 226, 227, 211, 226, 227, 226, 227, + 226, 227, 227, 226, 227, 227, 0, 18, 96, 43, 18, 0, + 9, 118, 169, 131, 82, 115, 99, 83, 130, 83, 114, 99, + 114, 115, 67, 152, 167, 162, 67, 130, 114, 98, 130, 98, + 130, 82, 146, 82, 146, 82, 130, 98, 114, 130, 83, 136, + 197, 0, 19, 32, 41, 17, 0, 9, 53, 183, 146, 66, + 130, 98, 98, 114, 98, 114, 82, 130, 82, 130, 82, 130, + 82, 115, 82, 99, 99, 68, 119, 18, 116, 51, 226, 227, + 211, 226, 130, 51, 136, 180, 0, 18, 48, 15, 8, 0, + 11, 50, 83, 83, 0, 8, 51, 83, 82, 0, 8, 96, + 19, 9, 0, 12, 99, 99, 99, 0, 9, 67, 98, 114, + 114, 113, 129, 113, 240, 240, 224, 28, 10, 0, 10, 67, + 115, 115, 240, 240, 114, 114, 130, 130, 130, 115, 114, 130, + 130, 130, 115, 114, 130, 130, 130, 115, 115, 240, 192, 13, + 24, 0, 39, 31, 5, 0, 15, 63, 5, 0, 39, 64, + 31, 13, 0, 13, 115, 162, 178, 0, 6, 18, 178, 178, + 162, 178, 178, 162, 162, 162, 163, 162, 162, 178, 178, 113, + 50, 83, 72, 101, 240, 240, 32, 31, 13, 240, 229, 104, + 67, 67, 49, 114, 178, 178, 163, 162, 162, 162, 162, 162, + 178, 162, 178, 162, 178, 178, 240, 240, 98, 178, 178, 0, + 14, 48, 60, 20, 0, 6, 21, 217, 163, 67, 131, 114, + 130, 71, 98, 72, 82, 66, 52, 82, 50, 68, 66, 50, + 99, 66, 50, 98, 82, 34, 114, 66, 50, 114, 66, 50, + 99, 66, 50, 98, 82, 50, 83, 82, 50, 82, 98, 66, + 51, 99, 54, 146, 68, 163, 240, 51, 99, 153, 198, 0, + 21, 32, 51, 21, 0, 6, 99, 240, 51, 240, 36, 240, + 18, 19, 242, 19, 226, 35, 226, 35, 210, 51, 210, 66, + 194, 82, 194, 83, 162, 99, 162, 99, 146, 115, 141, 141, + 115, 146, 114, 162, 99, 163, 82, 179, 67, 179, 66, 195, + 51, 195, 0, 21, 48, 47, 20, 240, 240, 234, 172, 131, + 100, 114, 131, 114, 146, 99, 146, 99, 146, 98, 147, 98, + 131, 99, 100, 123, 155, 146, 116, 114, 147, 83, 162, 83, + 162, 83, 162, 82, 178, 82, 162, 83, 147, 83, 116, 108, + 138, 0, 21, 32, 49, 20, 0, 6, 23, 186, 147, 83, + 115, 240, 34, 240, 34, 240, 34, 240, 50, 240, 34, 240, + 50, 240, 50, 240, 34, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 51, 240, 50, 240, 51, 240, 51, 98, + 170, 198, 0, 21, 16, 49, 22, 0, 6, 11, 188, 163, + 115, 147, 131, 130, 162, 115, 163, 99, 178, 99, 178, 98, + 194, 98, 194, 83, 194, 83, 194, 83, 194, 82, 194, 98, + 194, 83, 178, 99, 178, 99, 162, 114, 163, 114, 147, 115, + 116, 140, 170, 0, 23, 64, 47, 21, 0, 5, 110, 126, + 115, 240, 50, 240, 66, 240, 51, 240, 51, 240, 51, 240, + 50, 240, 66, 240, 61, 141, 131, 240, 50, 240, 66, 240, + 51, 240, 51, 240, 51, 240, 50, 240, 66, 240, 51, 240, + 62, 126, 0, 21, 112, 48, 20, 240, 240, 237, 125, 115, + 240, 34, 240, 50, 240, 35, 240, 35, 240, 35, 240, 35, + 240, 34, 240, 35, 240, 44, 140, 131, 240, 34, 240, 35, + 240, 35, 240, 35, 240, 34, 240, 50, 240, 35, 240, 35, + 240, 35, 0, 22, 16, 49, 20, 0, 6, 22, 202, 147, + 83, 115, 145, 114, 240, 34, 240, 34, 240, 50, 240, 34, + 240, 50, 240, 50, 240, 34, 240, 50, 240, 50, 118, 82, + 118, 82, 163, 82, 163, 83, 146, 114, 146, 115, 130, 131, + 99, 154, 183, 0, 21, 16, 52, 23, 0, 6, 35, 163, + 115, 163, 115, 163, 114, 178, 130, 163, 115, 163, 115, 163, + 115, 163, 114, 178, 130, 163, 127, 1, 127, 1, 115, 163, + 114, 178, 130, 163, 115, 163, 115, 163, 115, 163, 114, 178, + 130, 163, 115, 163, 115, 163, 115, 162, 0, 24, 29, 10, + 240, 147, 115, 115, 114, 130, 115, 115, 115, 114, 130, 115, + 115, 115, 114, 130, 115, 115, 115, 114, 130, 115, 115, 115, + 0, 10, 112, 35, 18, 0, 6, 18, 243, 243, 243, 242, + 240, 18, 243, 243, 243, 242, 240, 18, 243, 243, 243, 242, + 240, 18, 243, 243, 242, 129, 99, 130, 67, 138, 166, 0, + 19, 32, 53, 23, 0, 6, 35, 163, 115, 147, 131, 131, + 146, 131, 162, 115, 163, 99, 179, 83, 195, 67, 210, 67, + 226, 36, 227, 22, 214, 19, 213, 35, 212, 67, 195, 83, + 179, 115, 163, 115, 163, 115, 162, 147, 146, 147, 131, 163, + 115, 163, 115, 163, 0, 23, 112, 30, 15, 240, 240, 67, + 195, 195, 195, 194, 195, 195, 195, 194, 210, 195, 195, 195, + 194, 210, 195, 195, 195, 194, 210, 195, 204, 60, 0, 15, + 48, 85, 28, 0, 7, 68, 212, 117, 196, 117, 181, 114, + 18, 165, 130, 18, 162, 18, 115, 18, 150, 115, 18, 146, + 19, 115, 18, 130, 35, 114, 34, 130, 34, 130, 35, 98, + 50, 115, 35, 98, 35, 115, 35, 82, 51, 115, 50, 82, + 50, 130, 66, 66, 66, 130, 66, 51, 66, 115, 66, 50, + 67, 115, 67, 19, 67, 115, 67, 18, 82, 130, 86, 82, + 130, 100, 98, 115, 99, 99, 115, 99, 99, 114, 240, 18, + 0, 29, 69, 23, 0, 6, 37, 131, 117, 131, 117, 131, + 114, 18, 130, 130, 19, 114, 115, 19, 99, 115, 19, 99, + 114, 50, 99, 114, 51, 82, 130, 51, 82, 115, 51, 67, + 115, 66, 67, 114, 83, 51, 114, 83, 50, 130, 83, 50, + 115, 98, 35, 115, 98, 35, 114, 115, 19, 114, 115, 18, + 130, 130, 18, 115, 133, 115, 133, 114, 148, 0, 24, 49, + 22, 0, 6, 86, 233, 195, 83, 162, 131, 130, 162, 114, + 194, 82, 210, 82, 210, 66, 226, 66, 226, 66, 226, 50, + 242, 50, 226, 66, 226, 66, 226, 66, 210, 82, 195, 83, + 178, 114, 162, 131, 130, 163, 83, 201, 230, 0, 23, 64, + 48, 20, 240, 240, 234, 171, 146, 115, 115, 131, 99, 146, + 99, 146, 98, 162, 98, 162, 83, 146, 99, 146, 99, 130, + 115, 99, 139, 138, 163, 240, 35, 240, 35, 240, 34, 240, + 35, 240, 35, 240, 35, 240, 34, 240, 50, 0, 22, 32, + 60, 22, 0, 6, 86, 233, 195, 83, 162, 131, 130, 162, + 114, 179, 83, 194, 82, 210, 66, 226, 66, 226, 66, 226, + 50, 242, 50, 226, 66, 226, 66, 226, 66, 210, 82, 83, + 82, 83, 67, 66, 114, 83, 34, 131, 71, 147, 69, 186, + 217, 240, 68, 240, 67, 240, 67, 240, 83, 0, 11, 112, + 49, 21, 0, 5, 122, 187, 147, 115, 131, 131, 115, 146, + 114, 162, 114, 162, 99, 162, 99, 146, 115, 131, 114, 116, + 139, 155, 163, 82, 179, 83, 162, 99, 147, 115, 131, 115, + 131, 130, 131, 131, 114, 147, 99, 162, 99, 163, 0, 21, + 80, 45, 19, 0, 5, 117, 186, 131, 83, 115, 240, 18, + 240, 18, 240, 34, 240, 34, 240, 35, 240, 36, 247, 231, + 244, 240, 35, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 18, 98, 130, 116, 83, 122, 182, 0, 20, 48, 52, 22, + 240, 240, 255, 3, 63, 4, 179, 240, 67, 240, 66, 240, + 67, 240, 67, 240, 67, 240, 67, 240, 66, 240, 67, 240, + 67, 240, 67, 240, 67, 240, 66, 240, 67, 240, 67, 240, + 67, 240, 67, 240, 66, 240, 67, 240, 67, 240, 67, 0, + 23, 112, 51, 21, 240, 240, 242, 163, 83, 162, 99, 162, + 99, 147, 98, 163, 98, 162, 114, 162, 99, 162, 99, 147, + 98, 163, 98, 162, 114, 162, 114, 162, 98, 163, 98, 163, + 98, 162, 114, 162, 114, 147, 114, 131, 146, 99, 163, 67, + 200, 229, 0, 22, 80, 54, 22, 240, 240, 227, 226, 51, + 210, 82, 195, 82, 194, 99, 163, 99, 162, 115, 147, 115, + 146, 131, 130, 162, 115, 162, 114, 179, 83, 179, 82, 195, + 67, 195, 66, 211, 51, 226, 50, 242, 34, 240, 19, 18, + 240, 21, 240, 37, 240, 36, 240, 52, 0, 23, 112, 85, + 30, 0, 7, 67, 147, 162, 51, 147, 162, 51, 132, 146, + 67, 133, 130, 67, 133, 115, 67, 114, 19, 114, 98, 114, + 19, 99, 98, 98, 35, 98, 114, 98, 35, 83, 114, 82, + 51, 82, 130, 82, 51, 67, 131, 51, 51, 66, 147, 50, + 67, 51, 147, 35, 67, 50, 163, 34, 98, 50, 163, 34, + 98, 34, 179, 18, 114, 34, 179, 18, 114, 18, 197, 130, + 18, 197, 132, 212, 148, 212, 148, 211, 163, 0, 31, 80, + 58, 25, 0, 6, 115, 179, 131, 163, 163, 131, 179, 115, + 211, 83, 227, 67, 240, 19, 50, 240, 35, 34, 240, 70, + 240, 69, 240, 99, 240, 100, 240, 100, 240, 82, 19, 240, + 50, 50, 240, 35, 51, 243, 67, 227, 99, 195, 115, 179, + 147, 162, 163, 147, 179, 115, 195, 0, 25, 112, 52, 22, + 240, 240, 227, 211, 52, 194, 83, 179, 83, 163, 115, 131, + 131, 115, 148, 83, 179, 82, 195, 67, 211, 35, 227, 19, + 240, 21, 240, 36, 240, 51, 240, 67, 240, 67, 240, 67, + 240, 66, 240, 82, 240, 67, 240, 67, 240, 67, 240, 66, + 0, 24, 50, 22, 0, 6, 30, 127, 240, 51, 240, 51, + 240, 67, 240, 51, 240, 51, 240, 51, 240, 51, 240, 67, + 240, 51, 240, 51, 240, 51, 240, 51, 240, 67, 240, 51, + 240, 51, 240, 51, 240, 51, 240, 67, 240, 51, 240, 63, + 127, 0, 22, 112, 36, 15, 240, 117, 165, 162, 195, 194, + 210, 210, 195, 195, 194, 210, 210, 195, 195, 194, 210, 210, + 195, 194, 210, 210, 210, 195, 194, 210, 210, 195, 195, 194, + 210, 213, 149, 160, 20, 13, 240, 210, 66, 81, 81, 82, + 66, 82, 66, 82, 66, 67, 51, 67, 51, 0, 39, 64, + 36, 15, 240, 117, 149, 210, 210, 210, 195, 194, 210, 210, + 195, 195, 194, 210, 210, 195, 195, 194, 210, 210, 195, 194, + 210, 210, 210, 195, 194, 210, 210, 195, 195, 149, 165, 160, + 16, 13, 240, 240, 18, 164, 130, 18, 114, 50, 82, 66, + 66, 98, 0, 41, 9, 6, 240, 147, 51, 51, 0, 19, + 112, 13, 7, 240, 18, 81, 82, 82, 82, 67, 67, 0, + 21, 64, 27, 15, 0, 21, 37, 136, 114, 67, 210, 210, + 210, 135, 89, 83, 82, 66, 114, 66, 99, 67, 68, 75, + 85, 34, 0, 15, 80, 42, 16, 240, 240, 99, 211, 210, + 226, 226, 211, 211, 210, 226, 226, 36, 122, 100, 67, 82, + 114, 82, 114, 82, 114, 67, 114, 67, 114, 66, 114, 82, + 114, 67, 98, 84, 67, 82, 23, 98, 36, 0, 17, 23, + 15, 0, 21, 38, 136, 98, 82, 82, 194, 210, 194, 210, + 210, 210, 211, 210, 82, 105, 133, 0, 15, 112, 45, 18, + 0, 6, 18, 243, 243, 242, 240, 18, 240, 18, 243, 242, + 240, 18, 164, 34, 135, 18, 115, 68, 114, 98, 114, 114, + 114, 114, 98, 115, 98, 115, 98, 114, 114, 114, 114, 99, + 115, 68, 138, 148, 34, 0, 19, 25, 15, 0, 21, 37, + 151, 114, 67, 82, 98, 66, 114, 75, 60, 50, 210, 210, + 211, 211, 81, 105, 133, 0, 15, 112, 30, 15, 240, 240, + 132, 150, 130, 195, 194, 210, 195, 194, 210, 168, 120, 147, + 195, 194, 210, 210, 195, 194, 210, 210, 210, 195, 194, 0, + 16, 80, 41, 20, 0, 28, 68, 35, 155, 131, 51, 178, + 82, 162, 98, 162, 98, 162, 82, 179, 51, 184, 178, 20, + 195, 240, 35, 240, 42, 172, 114, 131, 98, 162, 98, 162, + 99, 115, 139, 183, 0, 6, 32, 43, 15, 240, 240, 67, + 194, 210, 210, 195, 195, 194, 210, 210, 195, 36, 106, 84, + 51, 83, 82, 82, 98, 67, 98, 67, 98, 66, 98, 82, + 98, 82, 98, 67, 98, 67, 83, 66, 99, 66, 98, 0, + 15, 80, 25, 10, 240, 240, 227, 115, 115, 0, 5, 98, + 130, 115, 115, 114, 130, 130, 115, 115, 114, 130, 130, 115, + 114, 0, 11, 32, 16, 0, 9, 35, 211, 211, 0, 9, + 66, 226, 226, 211, 210, 226, 226, 211, 211, 210, 226, 226, + 211, 211, 210, 226, 211, 210, 151, 164, 240, 240, 208, 41, + 16, 240, 240, 98, 226, 226, 211, 211, 210, 226, 226, 211, + 211, 83, 82, 83, 98, 67, 114, 35, 131, 19, 150, 167, + 151, 147, 35, 115, 51, 114, 83, 98, 83, 98, 98, 98, + 99, 0, 16, 80, 28, 10, 240, 162, 115, 115, 114, 130, + 130, 115, 114, 130, 130, 130, 115, 114, 130, 130, 130, 115, + 114, 130, 130, 115, 115, 114, 0, 11, 49, 24, 0, 33, + 50, 52, 68, 114, 23, 23, 100, 53, 51, 84, 83, 82, + 83, 98, 98, 83, 83, 98, 82, 99, 98, 82, 98, 98, + 83, 98, 98, 83, 98, 98, 82, 99, 98, 82, 99, 83, + 82, 98, 99, 67, 98, 98, 0, 24, 80, 34, 15, 0, + 20, 115, 36, 106, 84, 51, 83, 82, 82, 98, 67, 98, + 67, 98, 66, 98, 82, 98, 82, 98, 67, 98, 67, 83, + 66, 99, 66, 98, 0, 15, 80, 31, 16, 0, 22, 100, + 168, 114, 82, 98, 114, 66, 130, 66, 130, 50, 146, 50, + 146, 50, 130, 66, 130, 67, 98, 99, 51, 120, 164, 0, + 17, 16, 39, 17, 0, 23, 114, 37, 122, 116, 67, 99, + 83, 98, 114, 98, 114, 83, 114, 83, 114, 82, 114, 98, + 114, 98, 98, 100, 52, 106, 114, 36, 146, 227, 227, 226, + 242, 242, 0, 6, 16, 40, 16, 0, 22, 84, 34, 103, + 18, 84, 52, 82, 98, 82, 114, 82, 114, 66, 115, 66, + 115, 66, 114, 82, 114, 83, 83, 84, 52, 106, 116, 34, + 226, 211, 211, 210, 226, 226, 240, 240, 144, 23, 13, 0, + 18, 19, 35, 82, 20, 101, 131, 147, 163, 162, 178, 178, + 163, 163, 162, 178, 178, 0, 14, 48, 23, 14, 0, 19, + 117, 120, 98, 66, 82, 194, 196, 182, 150, 179, 194, 194, + 66, 82, 89, 117, 0, 14, 112, 26, 11, 0, 10, 2, + 131, 130, 146, 120, 56, 67, 130, 146, 146, 146, 146, 130, + 146, 146, 146, 49, 86, 84, 0, 11, 112, 34, 15, 0, + 20, 114, 98, 82, 98, 67, 83, 66, 99, 66, 99, 66, + 98, 82, 98, 82, 83, 66, 99, 66, 98, 82, 83, 82, + 68, 90, 100, 35, 0, 15, 80, 33, 16, 0, 22, 3, + 130, 66, 114, 82, 99, 82, 98, 99, 67, 99, 66, 115, + 51, 115, 50, 146, 34, 162, 34, 162, 18, 178, 18, 180, + 196, 0, 17, 32, 55, 23, 0, 31, 83, 98, 99, 51, + 83, 98, 82, 81, 17, 83, 82, 66, 18, 66, 98, 69, + 51, 98, 50, 34, 50, 114, 50, 34, 35, 114, 34, 50, + 34, 130, 34, 50, 19, 130, 18, 66, 18, 146, 18, 66, + 18, 146, 17, 84, 164, 84, 178, 99, 0, 24, 32, 30, + 19, 0, 26, 67, 115, 115, 83, 146, 67, 163, 35, 198, + 213, 243, 244, 230, 195, 34, 179, 51, 162, 82, 146, 99, + 99, 131, 0, 19, 80, 43, 19, 0, 26, 67, 130, 114, + 114, 130, 99, 131, 82, 147, 67, 147, 66, 178, 50, 194, + 50, 194, 34, 211, 18, 213, 243, 240, 19, 240, 18, 240, + 34, 240, 18, 240, 19, 240, 18, 213, 228, 0, 6, 80, + 21, 17, 0, 23, 107, 106, 226, 227, 211, 211, 211, 211, + 211, 211, 211, 211, 219, 107, 0, 17, 96, 9, 18, 0, + 33, 111, 63, 0, 36, 48, 11, 33, 0, 61, 127, 15, + 63, 15, 0, 66, 48, 19, 14, 240, 240, 18, 51, 83, + 50, 98, 50, 99, 50, 98, 50, 98, 51, 0, 44, 64, + 15, 14, 0, 7, 35, 66, 69, 34, 82, 22, 66, 67, + 0, 44, 48, +}; + +//***************************************************************************** +// +// The font definition for the 32 point Cmss italic font. +// +//***************************************************************************** +const tFont g_sFontCmss32i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 29, + + // + // The height of the font. + // + 33, + + // + // The baseline of the font. + // + 25, + + // + // The offset to each character in the font. + // + { + 0, 5, 33, 53, 142, 194, 271, 330, + 342, 378, 414, 443, 489, 503, 512, 522, + 592, 637, 666, 702, 737, 775, 816, 857, + 885, 928, 969, 984, 1003, 1031, 1044, 1075, + 1106, 1166, 1217, 1264, 1313, 1362, 1409, 1457, + 1506, 1558, 1587, 1622, 1675, 1705, 1790, 1859, + 1908, 1956, 2016, 2065, 2110, 2162, 2213, 2267, + 2352, 2410, 2462, 2512, 2548, 2568, 2604, 2620, + 2629, 2642, 2669, 2711, 2734, 2779, 2804, 2834, + 2875, 2918, 2943, 2975, 3016, 3044, 3093, 3127, + 3158, 3197, 3237, 3260, 3283, 3309, 3343, 3376, + 3431, 3461, 3504, 3525, 3534, 3545, 3564, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss32iData +}; diff --git a/grlib/fonts/fontcmss34.c b/grlib/fonts/fontcmss34.c new file mode 100644 index 0000000..4e70299 --- /dev/null +++ b/grlib/fonts/fontcmss34.c @@ -0,0 +1,408 @@ +//***************************************************************************** +// +// fontcmss34.c - Font definition for the 34pt Cmss font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 34 point +// Bold: no +// Italic: no +// Memory usage: 3820 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 34 point Cmss font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss34Data[3618] = +{ + 5, 14, 0, 61, 32, 27, 6, 195, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 240, 99, 51, 51, 0, 7, 16, 20, 12, 240, 147, + 51, 51, 51, 51, 51, 66, 66, 65, 81, 66, 66, 66, + 66, 0, 39, 64, 95, 26, 0, 7, 113, 97, 240, 49, + 97, 240, 34, 97, 240, 33, 113, 240, 33, 98, 240, 33, + 97, 240, 34, 97, 240, 33, 113, 240, 33, 98, 240, 33, + 97, 240, 34, 97, 240, 33, 113, 159, 8, 177, 97, 240, + 34, 97, 240, 33, 113, 240, 33, 98, 240, 33, 97, 191, + 8, 145, 113, 240, 33, 98, 240, 33, 97, 240, 34, 97, + 240, 33, 113, 240, 33, 98, 240, 33, 97, 240, 34, 97, + 240, 33, 113, 240, 33, 98, 240, 33, 97, 240, 49, 97, + 0, 8, 32, 51, 16, 83, 211, 184, 122, 83, 19, 34, + 83, 19, 49, 67, 35, 131, 35, 131, 35, 131, 35, 132, + 19, 151, 152, 153, 151, 167, 147, 20, 131, 35, 131, 35, + 131, 35, 131, 35, 131, 35, 49, 67, 19, 67, 35, 19, + 90, 120, 179, 211, 0, 15, 84, 26, 51, 193, 149, 162, + 131, 19, 145, 146, 50, 130, 131, 51, 113, 147, 51, 97, + 163, 51, 97, 163, 51, 81, 179, 51, 81, 179, 51, 65, + 210, 50, 81, 211, 19, 65, 245, 81, 240, 19, 81, 240, + 161, 83, 240, 17, 85, 241, 67, 19, 209, 82, 50, 209, + 67, 51, 177, 83, 51, 177, 83, 51, 161, 99, 51, 146, + 99, 51, 145, 115, 51, 130, 130, 50, 145, 147, 19, 130, + 165, 145, 195, 0, 23, 64, 63, 24, 0, 6, 116, 240, + 70, 240, 35, 19, 240, 34, 51, 243, 51, 243, 51, 243, + 51, 243, 35, 240, 19, 35, 240, 23, 240, 53, 240, 68, + 146, 147, 162, 133, 130, 116, 18, 130, 100, 35, 99, 99, + 67, 82, 99, 83, 66, 115, 99, 35, 115, 103, 132, 101, + 164, 71, 170, 24, 118, 86, 0, 27, 48, 11, 6, 195, + 51, 51, 66, 65, 66, 66, 0, 20, 38, 11, 98, 130, + 131, 130, 131, 115, 131, 130, 131, 131, 131, 130, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 146, 147, 131, + 131, 146, 147, 131, 147, 146, 147, 146, 162, 48, 38, 11, + 2, 162, 147, 147, 146, 147, 131, 146, 147, 131, 131, 147, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 115, 131, 131, 130, 131, 131, 130, 130, 131, 130, 130, 144, + 28, 14, 67, 179, 179, 113, 51, 49, 51, 19, 19, 59, + 87, 147, 151, 91, 50, 35, 34, 49, 51, 49, 115, 179, + 179, 0, 35, 112, 49, 24, 0, 19, 33, 240, 129, 240, + 129, 240, 129, 240, 129, 240, 129, 240, 129, 240, 129, 240, + 129, 240, 129, 240, 129, 223, 6, 209, 240, 129, 240, 129, + 240, 129, 240, 129, 240, 129, 240, 129, 240, 129, 240, 129, + 240, 129, 0, 22, 80, 14, 6, 0, 17, 35, 51, 51, + 66, 65, 66, 66, 240, 240, 64, 9, 12, 0, 25, 73, + 57, 0, 24, 48, 10, 6, 0, 17, 35, 51, 51, 0, + 7, 16, 38, 15, 177, 225, 209, 225, 225, 209, 225, 225, + 209, 225, 225, 210, 209, 225, 210, 209, 225, 210, 209, 225, + 210, 209, 225, 210, 209, 225, 225, 209, 225, 225, 209, 225, + 225, 209, 225, 224, 49, 17, 0, 7, 4, 184, 131, 67, + 99, 99, 83, 99, 82, 130, 67, 131, 51, 131, 51, 131, + 51, 131, 51, 131, 51, 131, 51, 131, 51, 131, 51, 131, + 51, 131, 51, 131, 67, 100, 67, 99, 83, 99, 99, 67, + 136, 165, 0, 20, 16, 31, 14, 0, 6, 1, 179, 119, + 115, 19, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 123, 59, 0, 16, 16, + 35, 16, 0, 6, 54, 152, 115, 52, 82, 115, 66, 116, + 49, 147, 49, 147, 211, 211, 211, 195, 210, 211, 195, 195, + 195, 195, 195, 195, 195, 210, 221, 61, 0, 18, 48, 36, + 16, 0, 6, 69, 152, 115, 67, 83, 99, 66, 115, 211, + 211, 211, 195, 195, 165, 181, 243, 227, 227, 211, 211, 211, + 49, 147, 50, 115, 68, 68, 90, 134, 0, 18, 112, 41, + 17, 0, 7, 36, 212, 197, 197, 178, 19, 178, 19, 162, + 35, 162, 35, 147, 35, 146, 51, 131, 51, 115, 67, 115, + 67, 99, 83, 99, 83, 110, 62, 179, 227, 227, 227, 227, + 227, 0, 19, 112, 37, 16, 0, 6, 27, 91, 83, 211, + 211, 211, 211, 211, 211, 20, 138, 100, 52, 83, 83, 83, + 99, 211, 211, 211, 211, 211, 49, 146, 66, 115, 68, 67, + 105, 150, 0, 18, 112, 44, 17, 0, 7, 22, 152, 132, + 195, 226, 227, 226, 242, 52, 115, 24, 85, 68, 68, 99, + 68, 115, 51, 131, 51, 131, 51, 131, 51, 131, 51, 131, + 66, 131, 67, 99, 98, 99, 99, 67, 136, 165, 0, 20, + 16, 30, 17, 0, 6, 62, 62, 242, 226, 226, 227, 226, + 227, 226, 227, 226, 227, 227, 226, 227, 227, 227, 226, 227, + 227, 227, 227, 227, 0, 20, 48, 46, 17, 0, 6, 118, + 154, 100, 68, 83, 99, 67, 131, 51, 131, 51, 131, 51, + 131, 67, 99, 99, 67, 136, 152, 131, 67, 99, 99, 67, + 131, 51, 131, 51, 131, 51, 131, 51, 131, 67, 99, 84, + 68, 120, 166, 0, 20, 45, 17, 0, 7, 5, 168, 131, + 67, 99, 99, 83, 99, 67, 130, 67, 131, 51, 131, 51, + 131, 51, 131, 51, 131, 67, 115, 67, 100, 68, 69, 88, + 19, 101, 51, 226, 227, 226, 227, 113, 83, 121, 165, 0, + 20, 32, 15, 6, 0, 8, 35, 51, 51, 0, 7, 19, + 51, 51, 0, 7, 16, 19, 6, 0, 8, 35, 51, 51, + 0, 7, 19, 51, 51, 66, 65, 66, 66, 240, 240, 64, + 28, 6, 0, 6, 3, 51, 51, 240, 99, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 240, 13, 24, 0, 42, 15, 6, 0, 15, + 63, 6, 0, 42, 48, 32, 15, 0, 15, 67, 195, 195, + 0, 7, 19, 195, 195, 195, 195, 195, 179, 195, 179, 180, + 179, 179, 195, 195, 195, 195, 211, 68, 74, 118, 240, 240, + 96, 31, 15, 240, 240, 54, 106, 83, 83, 211, 195, 195, + 195, 180, 164, 164, 179, 179, 195, 179, 195, 195, 195, 195, + 0, 7, 19, 195, 195, 0, 17, 112, 63, 21, 0, 6, + 38, 217, 165, 67, 132, 115, 100, 71, 99, 72, 83, 67, + 37, 67, 51, 68, 67, 51, 68, 51, 51, 99, 51, 51, + 99, 51, 51, 99, 51, 51, 99, 51, 51, 99, 51, 51, + 99, 52, 51, 67, 83, 51, 67, 83, 67, 35, 115, 70, + 132, 68, 164, 240, 53, 84, 154, 214, 0, 24, 64, 54, + 22, 0, 6, 67, 240, 68, 240, 37, 240, 34, 18, 240, + 34, 19, 243, 19, 242, 35, 242, 51, 211, 51, 210, 67, + 210, 83, 179, 83, 178, 99, 163, 115, 147, 115, 157, 143, + 115, 147, 114, 163, 99, 179, 83, 179, 82, 195, 67, 211, + 51, 211, 0, 25, 16, 49, 20, 240, 240, 171, 157, 115, + 117, 83, 147, 83, 163, 67, 163, 67, 163, 67, 163, 67, + 147, 83, 116, 108, 141, 115, 116, 99, 148, 67, 163, 67, + 179, 51, 179, 51, 179, 51, 179, 51, 164, 51, 148, 67, + 132, 94, 108, 0, 23, 64, 50, 20, 0, 6, 7, 186, + 132, 98, 116, 244, 240, 19, 240, 19, 240, 35, 240, 34, + 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, + 240, 36, 240, 35, 240, 35, 240, 51, 240, 36, 240, 36, + 145, 116, 99, 140, 167, 0, 23, 32, 51, 21, 240, 240, + 203, 173, 131, 116, 115, 147, 99, 163, 83, 163, 83, 179, + 67, 179, 67, 195, 51, 195, 51, 195, 51, 195, 51, 195, + 51, 195, 51, 195, 51, 195, 51, 179, 67, 179, 67, 164, + 67, 163, 83, 147, 99, 116, 125, 139, 0, 24, 112, 31, + 18, 240, 240, 110, 78, 67, 243, 243, 243, 243, 243, 243, + 243, 254, 78, 67, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 255, 63, 0, 20, 80, 31, 17, 240, 240, 78, 62, + 51, 227, 227, 227, 227, 227, 227, 227, 227, 237, 77, 67, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 0, 20, + 112, 51, 21, 0, 6, 39, 204, 116, 100, 100, 146, 84, + 240, 35, 240, 35, 240, 51, 240, 51, 240, 35, 240, 51, + 240, 51, 240, 51, 240, 51, 240, 51, 135, 52, 119, 67, + 179, 67, 179, 83, 163, 84, 147, 100, 131, 116, 100, 141, + 183, 0, 24, 48, 55, 20, 240, 240, 163, 179, 51, 179, + 51, 179, 51, 179, 51, 179, 51, 179, 51, 179, 51, 179, + 51, 179, 51, 179, 63, 2, 63, 2, 51, 179, 51, 179, + 51, 179, 51, 179, 51, 179, 51, 179, 51, 179, 51, 179, + 51, 179, 51, 179, 51, 179, 51, 179, 0, 22, 112, 29, + 6, 195, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 0, 7, 16, 33, 14, 240, 240, 99, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 49, 115, 50, 68, 73, 118, 0, 16, + 64, 54, 21, 240, 240, 195, 179, 67, 163, 83, 147, 99, + 131, 115, 115, 131, 100, 131, 84, 147, 83, 163, 67, 179, + 51, 195, 37, 179, 22, 182, 35, 165, 51, 165, 67, 148, + 84, 131, 115, 131, 131, 115, 132, 99, 147, 99, 163, 83, + 163, 83, 179, 67, 180, 0, 24, 31, 16, 240, 240, 35, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 221, 61, 0, + 18, 48, 88, 25, 0, 6, 36, 228, 53, 197, 53, 197, + 54, 181, 54, 166, 51, 18, 162, 19, 51, 19, 146, 19, + 51, 19, 131, 19, 51, 34, 130, 35, 51, 35, 114, 35, + 51, 35, 99, 35, 51, 50, 98, 51, 51, 51, 82, 51, + 51, 51, 67, 51, 51, 66, 66, 67, 51, 67, 50, 67, + 51, 67, 35, 67, 51, 82, 34, 83, 51, 82, 34, 83, + 51, 86, 83, 51, 100, 99, 51, 100, 99, 51, 100, 99, + 51, 240, 19, 0, 28, 64, 71, 20, 240, 240, 165, 147, + 53, 147, 54, 131, 54, 131, 51, 19, 115, 51, 19, 115, + 51, 34, 115, 51, 35, 99, 51, 50, 99, 51, 51, 83, + 51, 51, 83, 51, 67, 67, 51, 67, 67, 51, 83, 51, + 51, 83, 51, 51, 98, 51, 51, 99, 35, 51, 114, 35, + 51, 115, 19, 51, 115, 19, 51, 134, 51, 134, 51, 149, + 51, 149, 0, 22, 112, 51, 23, 0, 6, 86, 250, 196, + 68, 163, 131, 131, 163, 115, 163, 99, 195, 83, 195, 67, + 227, 51, 227, 51, 227, 51, 227, 51, 227, 51, 227, 51, + 227, 52, 211, 67, 195, 83, 195, 99, 163, 115, 163, 131, + 131, 164, 68, 202, 246, 0, 27, 16, 50, 19, 240, 240, + 139, 141, 99, 116, 83, 147, 67, 148, 51, 163, 51, 163, + 51, 163, 51, 163, 51, 147, 67, 147, 67, 116, 93, 107, + 131, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, + 19, 240, 19, 240, 19, 240, 19, 0, 23, 48, 62, 23, + 0, 6, 86, 250, 196, 68, 163, 131, 131, 163, 115, 163, + 99, 195, 83, 195, 67, 227, 51, 227, 51, 227, 51, 227, + 51, 227, 51, 227, 51, 227, 51, 227, 67, 195, 83, 83, + 67, 99, 67, 51, 115, 83, 35, 131, 86, 164, 53, 202, + 249, 240, 84, 240, 83, 240, 99, 240, 84, 0, 14, 112, + 51, 20, 240, 240, 171, 157, 115, 116, 99, 147, 83, 163, + 67, 163, 67, 163, 67, 163, 67, 163, 67, 147, 83, 116, + 109, 123, 147, 83, 147, 99, 131, 99, 131, 115, 115, 115, + 115, 131, 99, 131, 99, 147, 83, 148, 67, 163, 67, 179, + 0, 22, 112, 34, 17, 240, 240, 135, 154, 84, 83, 83, + 113, 83, 227, 227, 227, 228, 228, 231, 184, 183, 213, 227, + 228, 227, 227, 227, 227, 50, 131, 68, 83, 106, 151, 0, + 20, 54, 22, 240, 240, 239, 4, 63, 4, 179, 240, 67, + 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, + 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, + 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, + 240, 67, 240, 67, 0, 26, 16, 53, 19, 240, 240, 131, + 163, 51, 163, 51, 163, 51, 163, 51, 163, 51, 163, 51, + 163, 51, 163, 51, 163, 51, 163, 51, 163, 51, 163, 51, + 163, 51, 163, 51, 163, 51, 163, 51, 163, 51, 163, 52, + 147, 67, 131, 84, 99, 116, 68, 138, 182, 0, 22, 48, + 57, 23, 0, 5, 99, 227, 51, 226, 67, 211, 83, 195, + 83, 194, 99, 179, 115, 162, 131, 147, 146, 147, 147, 130, + 163, 115, 179, 99, 179, 98, 195, 83, 211, 67, 211, 66, + 227, 51, 243, 34, 240, 19, 34, 240, 19, 19, 240, 37, + 240, 53, 240, 68, 240, 67, 0, 27, 48, 90, 32, 0, + 8, 3, 163, 163, 51, 148, 162, 67, 148, 147, 67, 149, + 131, 83, 133, 130, 99, 114, 19, 130, 99, 114, 34, 115, + 99, 114, 35, 99, 115, 83, 35, 98, 131, 83, 35, 98, + 131, 82, 66, 83, 146, 82, 67, 67, 147, 51, 67, 66, + 163, 51, 67, 66, 163, 50, 98, 51, 178, 50, 99, 34, + 195, 34, 99, 34, 195, 18, 130, 34, 195, 18, 130, 19, + 210, 18, 133, 226, 18, 133, 228, 164, 228, 164, 243, 163, + 0, 37, 32, 56, 22, 240, 240, 228, 179, 83, 163, 115, + 147, 116, 115, 147, 99, 179, 83, 195, 51, 211, 35, 243, + 19, 240, 21, 240, 36, 240, 67, 240, 53, 240, 37, 240, + 19, 19, 227, 51, 210, 67, 195, 83, 163, 115, 131, 132, + 115, 147, 99, 179, 68, 180, 51, 211, 0, 25, 16, 56, + 24, 0, 6, 4, 227, 67, 211, 84, 195, 99, 179, 131, + 147, 148, 131, 163, 115, 195, 83, 212, 67, 227, 51, 240, + 19, 34, 240, 39, 240, 53, 240, 69, 240, 83, 240, 99, + 240, 99, 240, 99, 240, 99, 240, 99, 240, 99, 240, 99, + 240, 99, 240, 99, 0, 28, 64, 39, 19, 240, 240, 143, + 1, 63, 1, 243, 243, 240, 19, 243, 244, 243, 243, 240, + 19, 243, 244, 243, 243, 240, 19, 243, 244, 243, 243, 240, + 19, 243, 244, 255, 1, 63, 1, 0, 21, 96, 38, 9, + 6, 54, 51, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 102, 54, 48, + 20, 12, 240, 162, 66, 66, 66, 65, 81, 66, 66, 67, + 51, 51, 51, 51, 51, 0, 39, 48, 38, 9, 6, 54, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 54, 54, 48, 17, 14, + 240, 240, 35, 165, 146, 18, 130, 50, 98, 82, 67, 98, + 0, 47, 80, 9, 6, 240, 51, 51, 51, 0, 22, 16, + 12, 6, 210, 66, 65, 66, 67, 51, 51, 0, 19, 112, + 29, 15, 0, 21, 6, 122, 82, 83, 211, 195, 195, 135, + 90, 68, 67, 51, 99, 51, 99, 51, 99, 52, 68, 75, + 85, 35, 0, 17, 32, 43, 17, 240, 240, 67, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 37, 124, 84, 69, 67, + 115, 67, 116, 51, 131, 51, 131, 51, 131, 51, 131, 51, + 131, 51, 115, 67, 115, 68, 68, 91, 99, 37, 0, 20, + 24, 16, 0, 22, 86, 137, 99, 82, 83, 211, 195, 211, + 211, 211, 211, 227, 211, 227, 83, 106, 133, 0, 18, 96, + 44, 16, 240, 240, 195, 211, 211, 211, 211, 211, 211, 211, + 211, 116, 35, 91, 83, 68, 67, 99, 67, 99, 51, 115, + 51, 115, 51, 115, 51, 115, 51, 115, 52, 99, 67, 99, + 68, 68, 91, 116, 35, 0, 18, 48, 26, 16, 0, 22, + 85, 152, 115, 67, 83, 99, 66, 130, 61, 61, 51, 211, + 211, 227, 212, 212, 82, 106, 134, 0, 18, 80, 31, 13, + 240, 240, 21, 118, 99, 147, 163, 163, 163, 163, 163, 136, + 88, 115, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 0, 15, 80, 44, 18, 0, 25, 37, 36, 108, + 83, 51, 131, 83, 115, 83, 115, 83, 115, 83, 115, 83, + 131, 51, 152, 146, 36, 162, 240, 26, 155, 109, 68, 116, + 51, 147, 51, 147, 51, 147, 68, 84, 107, 151, 240, 240, + 208, 45, 15, 240, 243, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 37, 83, 23, 69, 52, 52, 83, 51, 99, 51, + 99, 51, 99, 51, 99, 51, 99, 51, 99, 51, 99, 51, + 99, 51, 99, 51, 99, 51, 99, 0, 17, 32, 26, 6, + 240, 51, 51, 51, 240, 240, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, 51, 0, 7, 16, + 34, 11, 240, 240, 131, 131, 131, 0, 7, 115, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 49, 52, 55, 85, 240, 192, 44, 16, + 240, 240, 35, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 99, 67, 83, 83, 67, 99, 51, 115, 35, 131, 19, 151, + 152, 132, 35, 116, 35, 115, 67, 99, 83, 83, 83, 83, + 99, 67, 115, 0, 18, 48, 29, 6, 195, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, 0, 7, 16, 52, + 24, 0, 33, 3, 37, 69, 83, 23, 39, 69, 54, 52, + 52, 84, 83, 51, 99, 99, 51, 99, 99, 51, 99, 99, + 51, 99, 99, 51, 99, 99, 51, 99, 99, 51, 99, 99, + 51, 99, 99, 51, 99, 99, 51, 99, 99, 51, 99, 99, + 0, 27, 48, 37, 15, 0, 20, 83, 37, 83, 23, 69, + 52, 52, 83, 51, 99, 51, 99, 51, 99, 51, 99, 51, + 99, 51, 99, 51, 99, 51, 99, 51, 99, 51, 99, 51, + 99, 0, 17, 32, 33, 17, 0, 24, 5, 168, 131, 67, + 99, 99, 83, 99, 67, 131, 51, 131, 51, 131, 51, 131, + 51, 131, 67, 99, 83, 99, 99, 67, 136, 165, 0, 20, + 16, 41, 17, 0, 23, 51, 53, 108, 85, 53, 67, 115, + 67, 116, 51, 131, 51, 131, 51, 131, 51, 131, 51, 131, + 51, 115, 67, 100, 68, 68, 91, 99, 37, 115, 227, 227, + 227, 227, 227, 227, 0, 6, 42, 16, 0, 22, 68, 35, + 91, 84, 52, 67, 84, 67, 99, 51, 115, 51, 115, 51, + 115, 51, 115, 51, 115, 52, 99, 67, 99, 68, 68, 91, + 116, 35, 211, 211, 211, 211, 211, 211, 211, 240, 240, 80, + 24, 11, 0, 15, 19, 50, 51, 20, 54, 85, 100, 115, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 0, 13, 48, + 24, 14, 0, 19, 86, 105, 68, 66, 67, 179, 180, 183, + 136, 134, 180, 179, 179, 50, 84, 58, 102, 0, 16, 64, + 27, 14, 0, 12, 83, 179, 179, 179, 138, 74, 115, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 180, 34, 119, 117, + 0, 16, 48, 37, 15, 0, 20, 83, 99, 51, 99, 51, + 99, 51, 99, 51, 99, 51, 99, 51, 99, 51, 99, 51, + 99, 51, 99, 51, 99, 51, 99, 52, 53, 56, 19, 69, + 51, 0, 17, 32, 33, 16, 0, 22, 2, 131, 51, 115, + 51, 114, 82, 99, 83, 83, 83, 82, 114, 67, 115, 51, + 115, 50, 146, 35, 147, 18, 178, 18, 181, 180, 211, 0, + 19, 57, 23, 0, 31, 82, 114, 114, 51, 83, 99, 51, + 84, 83, 51, 84, 82, 82, 66, 18, 67, 83, 50, 19, + 51, 83, 50, 34, 50, 114, 50, 34, 50, 115, 18, 50, + 35, 115, 18, 51, 19, 130, 18, 66, 18, 146, 18, 66, + 18, 148, 85, 148, 84, 179, 99, 0, 26, 96, 33, 17, + 0, 23, 67, 115, 67, 99, 99, 67, 131, 50, 163, 19, + 181, 196, 227, 212, 195, 18, 178, 35, 146, 67, 115, 83, + 83, 114, 67, 131, 0, 19, 64, 41, 16, 0, 22, 2, + 131, 51, 115, 51, 114, 83, 83, 83, 83, 98, 82, 115, + 51, 115, 50, 146, 50, 147, 19, 162, 18, 178, 18, 181, + 195, 211, 211, 210, 226, 210, 226, 165, 180, 240, 240, 224, + 22, 15, 0, 20, 92, 60, 179, 179, 195, 179, 179, 179, + 195, 179, 179, 194, 195, 188, 60, 0, 17, 32, 11, 19, + 0, 38, 15, 1, 63, 1, 0, 40, 96, 13, 35, 0, + 70, 15, 15, 2, 63, 15, 2, 0, 74, 96, 18, 14, + 240, 243, 51, 82, 66, 83, 51, 82, 66, 98, 66, 83, + 51, 0, 47, 112, 14, 13, 240, 240, 163, 66, 54, 34, + 50, 38, 50, 67, 0, 46, +}; + +//***************************************************************************** +// +// The font definition for the 34 point Cmss font. +// +//***************************************************************************** +const tFont g_sFontCmss34 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 31, + + // + // The height of the font. + // + 35, + + // + // The baseline of the font. + // + 26, + + // + // The offset to each character in the font. + // + { + 0, 5, 32, 52, 147, 198, 282, 345, + 356, 394, 432, 460, 509, 523, 532, 542, + 580, 629, 660, 695, 731, 772, 809, 853, + 883, 929, 974, 989, 1008, 1036, 1049, 1081, + 1112, 1175, 1229, 1278, 1328, 1379, 1410, 1441, + 1492, 1547, 1576, 1609, 1663, 1694, 1782, 1853, + 1904, 1954, 2016, 2067, 2101, 2155, 2208, 2265, + 2355, 2411, 2467, 2506, 2544, 2564, 2602, 2619, + 2628, 2640, 2669, 2712, 2736, 2780, 2806, 2837, + 2881, 2926, 2952, 2986, 3030, 3059, 3111, 3148, + 3181, 3222, 3264, 3288, 3312, 3339, 3376, 3409, + 3466, 3499, 3540, 3562, 3573, 3586, 3604, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss34Data +}; diff --git a/grlib/fonts/fontcmss34b.c b/grlib/fonts/fontcmss34b.c new file mode 100644 index 0000000..da32364 --- /dev/null +++ b/grlib/fonts/fontcmss34b.c @@ -0,0 +1,418 @@ +//***************************************************************************** +// +// fontcmss34b.c - Font definition for the 34pt Cmss bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 34 point +// Bold: yes +// Italic: no +// Memory usage: 3936 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 34 point Cmss bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss34bData[3734] = +{ + 4, 14, 0, 63, 29, 8, 240, 149, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 240, 69, 53, 53, 53, 53, 0, 9, 48, 23, 16, 0, + 6, 5, 53, 53, 53, 53, 53, 53, 53, 53, 53, 67, + 83, 83, 83, 67, 83, 0, 50, 80, 91, 30, 0, 12, + 99, 83, 240, 67, 83, 240, 67, 83, 240, 51, 83, 240, + 67, 83, 240, 67, 83, 240, 67, 83, 240, 51, 83, 240, + 67, 83, 240, 67, 83, 159, 12, 63, 12, 63, 12, 195, + 83, 240, 51, 83, 240, 67, 83, 240, 67, 83, 240, 51, + 83, 207, 12, 63, 12, 63, 12, 147, 83, 240, 67, 83, + 240, 67, 83, 240, 66, 83, 240, 67, 83, 240, 67, 83, + 240, 67, 83, 240, 51, 83, 240, 67, 83, 240, 82, 83, + 0, 9, 48, 51, 18, 240, 146, 240, 18, 231, 156, 93, + 84, 18, 36, 68, 34, 66, 68, 34, 164, 34, 165, 18, + 168, 184, 171, 139, 139, 153, 169, 146, 37, 146, 52, 146, + 52, 49, 82, 52, 50, 66, 52, 52, 34, 36, 78, 92, + 121, 210, 240, 18, 0, 17, 85, 34, 69, 242, 168, 226, + 154, 195, 149, 21, 164, 133, 52, 163, 149, 52, 147, 165, + 52, 131, 181, 52, 116, 181, 52, 115, 197, 52, 99, 213, + 52, 84, 229, 20, 84, 250, 83, 240, 40, 83, 240, 244, + 240, 243, 87, 240, 51, 74, 240, 19, 85, 20, 244, 69, + 52, 227, 85, 52, 211, 101, 52, 196, 101, 52, 195, 117, + 52, 179, 133, 52, 163, 149, 52, 148, 165, 20, 163, 186, + 147, 216, 178, 245, 0, 30, 64, 66, 29, 0, 11, 117, + 240, 136, 240, 90, 240, 52, 53, 240, 20, 84, 240, 20, + 84, 240, 20, 84, 240, 20, 84, 240, 20, 68, 240, 37, + 36, 240, 73, 115, 167, 147, 166, 148, 151, 147, 153, 116, + 132, 22, 84, 132, 54, 68, 117, 70, 36, 133, 90, 149, + 104, 181, 88, 97, 79, 10, 95, 9, 119, 119, 0, 33, + 16, 14, 8, 240, 149, 53, 53, 53, 53, 67, 83, 67, + 0, 25, 80, 39, 13, 240, 83, 147, 147, 148, 147, 148, + 133, 132, 148, 133, 133, 132, 133, 133, 133, 133, 133, 133, + 133, 133, 133, 133, 133, 148, 149, 133, 148, 148, 149, 148, + 163, 164, 164, 163, 179, 48, 38, 13, 211, 179, 179, 164, + 164, 148, 149, 148, 149, 133, 133, 148, 149, 133, 133, 133, + 133, 133, 133, 133, 133, 133, 133, 132, 133, 133, 133, 132, + 133, 132, 148, 132, 147, 147, 147, 160, 34, 17, 240, 130, + 228, 212, 131, 36, 35, 52, 34, 36, 53, 18, 21, 76, + 134, 182, 140, 69, 18, 21, 52, 34, 36, 51, 36, 35, + 132, 212, 226, 0, 41, 64, 57, 28, 0, 18, 115, 240, + 163, 240, 163, 240, 163, 240, 163, 240, 163, 240, 163, 240, + 163, 240, 163, 240, 163, 240, 163, 240, 163, 239, 10, 63, + 10, 63, 10, 227, 240, 163, 240, 163, 240, 163, 240, 163, + 240, 163, 240, 163, 240, 163, 240, 163, 240, 163, 240, 163, + 0, 19, 32, 16, 8, 0, 22, 5, 53, 53, 53, 53, + 67, 83, 67, 83, 240, 240, 240, 10, 13, 0, 27, 90, + 58, 58, 0, 26, 48, 12, 8, 0, 22, 5, 53, 53, + 53, 53, 0, 9, 48, 39, 18, 240, 243, 243, 243, 227, + 243, 228, 227, 243, 227, 243, 243, 227, 243, 228, 227, 243, + 227, 243, 243, 227, 243, 228, 227, 243, 227, 243, 243, 227, + 243, 228, 227, 243, 227, 243, 243, 240, 49, 19, 0, 7, + 102, 186, 140, 101, 54, 85, 69, 84, 100, 69, 101, 53, + 101, 53, 101, 53, 101, 53, 101, 53, 101, 53, 101, 53, + 101, 53, 101, 53, 101, 53, 101, 53, 101, 68, 100, 85, + 69, 86, 38, 108, 138, 182, 0, 22, 48, 31, 17, 0, + 7, 20, 122, 122, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 141, 77, + 77, 0, 19, 64, 35, 18, 0, 7, 38, 170, 124, 84, + 70, 67, 101, 67, 117, 65, 133, 213, 213, 213, 197, 212, + 213, 197, 196, 212, 212, 212, 212, 212, 238, 63, 63, 63, + 0, 20, 80, 36, 18, 0, 7, 38, 170, 124, 84, 85, + 82, 101, 213, 213, 213, 197, 152, 167, 185, 229, 228, 229, + 213, 213, 213, 49, 149, 50, 133, 52, 85, 77, 107, 151, + 0, 21, 32, 45, 20, 0, 8, 70, 215, 215, 200, 200, + 179, 21, 179, 21, 163, 37, 163, 37, 147, 53, 147, 53, + 132, 53, 131, 69, 116, 69, 100, 85, 100, 85, 111, 2, + 63, 2, 63, 2, 197, 245, 245, 245, 245, 0, 23, 32, + 37, 18, 0, 6, 125, 93, 93, 85, 213, 213, 213, 213, + 218, 140, 109, 85, 53, 84, 85, 82, 101, 213, 213, 213, + 213, 65, 133, 51, 117, 52, 85, 77, 122, 166, 0, 21, + 32, 44, 18, 0, 7, 70, 168, 153, 133, 197, 212, 228, + 213, 36, 117, 23, 94, 70, 53, 70, 69, 53, 85, 53, + 85, 53, 85, 53, 85, 53, 85, 53, 85, 68, 85, 69, + 69, 69, 53, 107, 137, 182, 0, 21, 16, 31, 18, 0, + 6, 111, 63, 63, 63, 212, 212, 228, 212, 212, 228, 212, + 228, 213, 212, 213, 213, 213, 212, 213, 213, 213, 213, 213, + 213, 0, 21, 64, 46, 18, 0, 7, 39, 155, 109, 85, + 53, 84, 84, 84, 84, 84, 84, 84, 84, 85, 53, 107, + 151, 155, 101, 53, 84, 84, 69, 85, 53, 85, 53, 85, + 53, 85, 53, 85, 53, 85, 69, 53, 93, 107, 151, 0, + 21, 16, 45, 18, 0, 7, 38, 185, 139, 101, 53, 84, + 69, 69, 84, 69, 85, 53, 85, 53, 85, 53, 85, 53, + 85, 53, 85, 53, 70, 69, 54, 78, 87, 21, 116, 37, + 212, 228, 213, 98, 69, 107, 122, 166, 0, 21, 48, 19, + 8, 0, 11, 5, 53, 53, 53, 53, 0, 6, 53, 53, + 53, 53, 53, 0, 9, 48, 23, 8, 0, 11, 5, 53, + 53, 53, 53, 0, 6, 53, 53, 53, 53, 53, 67, 83, + 67, 83, 240, 240, 240, 30, 8, 0, 9, 5, 53, 53, + 53, 53, 240, 69, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 240, 64, 21, + 28, 0, 45, 79, 10, 63, 10, 63, 10, 0, 17, 127, + 10, 63, 10, 63, 10, 0, 42, 48, 34, 16, 0, 18, + 68, 196, 196, 196, 196, 240, 240, 228, 196, 196, 196, 196, + 180, 196, 180, 181, 180, 181, 180, 196, 196, 98, 69, 68, + 76, 75, 118, 240, 240, 144, 33, 17, 0, 6, 118, 139, + 93, 68, 70, 65, 117, 197, 197, 182, 166, 166, 181, 181, + 197, 181, 197, 197, 197, 0, 5, 101, 197, 197, 197, 197, + 0, 20, 16, 60, 24, 0, 10, 8, 221, 175, 134, 41, + 102, 27, 86, 28, 85, 22, 38, 69, 21, 69, 53, 21, + 100, 53, 21, 100, 53, 21, 100, 53, 21, 100, 53, 21, + 100, 53, 21, 100, 53, 21, 100, 53, 37, 69, 69, 22, + 52, 85, 44, 101, 42, 118, 54, 167, 116, 127, 1, 173, + 216, 0, 28, 53, 25, 0, 10, 55, 240, 55, 240, 40, + 240, 41, 240, 25, 251, 229, 21, 228, 37, 213, 38, 197, + 53, 196, 69, 181, 70, 165, 85, 164, 101, 149, 102, 133, + 117, 143, 2, 127, 4, 111, 4, 100, 165, 85, 166, 69, + 181, 68, 197, 53, 212, 0, 28, 64, 52, 23, 0, 8, + 94, 159, 2, 111, 3, 85, 118, 85, 149, 69, 149, 69, + 149, 69, 149, 69, 133, 85, 118, 95, 1, 126, 159, 2, + 101, 119, 69, 149, 69, 165, 53, 165, 53, 165, 53, 165, + 53, 150, 53, 134, 79, 4, 79, 3, 95, 0, 26, 112, + 50, 23, 0, 9, 89, 206, 127, 127, 1, 103, 100, 86, + 162, 86, 240, 37, 240, 38, 240, 37, 240, 53, 240, 53, + 240, 53, 240, 53, 240, 53, 240, 53, 240, 54, 240, 53, + 240, 54, 240, 54, 162, 103, 100, 127, 1, 142, 201, 0, + 26, 80, 53, 25, 0, 9, 63, 175, 2, 143, 4, 101, + 135, 85, 165, 85, 181, 69, 181, 69, 197, 53, 197, 53, + 197, 53, 197, 53, 197, 53, 197, 53, 197, 53, 197, 53, + 197, 53, 197, 53, 181, 69, 181, 69, 165, 85, 135, 95, + 4, 111, 2, 143, 0, 29, 48, 40, 20, 0, 7, 79, + 1, 79, 2, 63, 2, 63, 1, 69, 245, 245, 245, 245, + 245, 255, 95, 1, 79, 85, 245, 245, 245, 245, 245, 245, + 255, 2, 63, 2, 63, 2, 63, 2, 0, 22, 112, 35, + 19, 0, 7, 31, 1, 63, 1, 63, 1, 63, 1, 53, + 229, 229, 229, 229, 229, 229, 238, 95, 78, 85, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 0, 23, 16, 52, 24, + 0, 10, 25, 206, 143, 2, 103, 101, 86, 162, 86, 193, + 85, 240, 69, 240, 53, 240, 69, 240, 69, 240, 69, 240, + 69, 240, 69, 136, 53, 136, 53, 136, 69, 165, 69, 165, + 70, 149, 86, 133, 103, 101, 127, 2, 143, 1, 185, 0, + 27, 112, 55, 24, 0, 9, 5, 181, 53, 181, 53, 181, + 53, 181, 53, 181, 53, 181, 53, 181, 53, 181, 53, 181, + 53, 181, 63, 6, 63, 6, 63, 6, 53, 181, 53, 181, + 53, 181, 53, 181, 53, 181, 53, 181, 53, 181, 53, 181, + 53, 181, 53, 181, 53, 181, 0, 27, 48, 30, 8, 240, + 149, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 0, 9, 48, 33, 16, 0, 7, 5, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 50, 101, 51, 70, 60, 75, 119, 0, 18, 112, + 53, 24, 0, 9, 5, 181, 53, 166, 53, 150, 69, 134, + 85, 118, 101, 102, 117, 85, 149, 69, 165, 53, 181, 37, + 197, 22, 205, 190, 168, 21, 167, 53, 150, 85, 133, 102, + 117, 117, 117, 133, 101, 149, 85, 150, 69, 165, 69, 181, + 53, 196, 0, 27, 48, 31, 18, 0, 6, 101, 213, 213, + 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, + 213, 213, 213, 213, 213, 223, 63, 63, 63, 0, 20, 80, + 84, 31, 0, 11, 87, 231, 56, 200, 56, 200, 56, 200, + 57, 169, 57, 169, 53, 19, 163, 21, 53, 20, 132, 21, + 53, 20, 132, 21, 53, 36, 100, 37, 53, 36, 100, 37, + 53, 51, 99, 53, 53, 52, 68, 53, 53, 52, 68, 53, + 53, 68, 51, 69, 53, 68, 36, 69, 53, 68, 35, 85, + 53, 88, 85, 53, 88, 85, 53, 102, 101, 53, 102, 101, + 53, 102, 101, 53, 116, 117, 53, 240, 53, 0, 35, 32, + 69, 25, 0, 9, 55, 165, 56, 149, 56, 149, 57, 133, + 57, 133, 53, 20, 117, 53, 20, 117, 53, 36, 101, 53, + 36, 101, 53, 52, 85, 53, 52, 85, 53, 68, 69, 53, + 68, 69, 53, 84, 53, 53, 84, 53, 53, 100, 37, 53, + 100, 37, 53, 116, 21, 53, 116, 21, 53, 137, 53, 137, + 53, 152, 53, 152, 53, 167, 0, 28, 64, 51, 26, 0, + 10, 104, 253, 191, 2, 150, 87, 117, 149, 101, 181, 85, + 181, 84, 213, 53, 213, 53, 213, 53, 213, 53, 213, 53, + 213, 53, 213, 53, 213, 53, 213, 54, 197, 69, 181, 85, + 181, 101, 149, 119, 87, 143, 2, 189, 249, 0, 30, 64, + 52, 22, 0, 8, 46, 143, 1, 111, 2, 85, 118, 69, + 134, 53, 149, 53, 149, 53, 149, 53, 149, 53, 149, 53, + 134, 53, 118, 79, 2, 95, 1, 110, 133, 240, 37, 240, + 37, 240, 37, 240, 37, 240, 37, 240, 37, 240, 37, 240, + 37, 0, 26, 112, 61, 26, 0, 10, 104, 253, 191, 2, + 150, 87, 117, 149, 101, 181, 85, 181, 85, 197, 53, 213, + 53, 213, 53, 213, 53, 213, 53, 213, 53, 213, 53, 213, + 53, 213, 53, 213, 69, 69, 37, 85, 69, 37, 101, 74, + 119, 57, 143, 1, 206, 236, 240, 102, 240, 102, 240, 86, + 240, 101, 0, 16, 112, 53, 22, 0, 8, 46, 143, 1, + 111, 3, 69, 118, 69, 149, 53, 149, 53, 149, 53, 149, + 53, 149, 53, 118, 79, 3, 79, 1, 110, 133, 69, 133, + 84, 133, 85, 117, 100, 117, 101, 101, 117, 85, 117, 85, + 133, 69, 133, 69, 149, 53, 164, 0, 25, 16, 36, 20, + 0, 8, 23, 188, 126, 94, 86, 84, 85, 130, 85, 245, + 246, 248, 204, 156, 156, 186, 231, 230, 245, 245, 51, 149, + 53, 102, 63, 1, 79, 124, 183, 0, 23, 64, 54, 26, + 0, 9, 127, 6, 79, 8, 63, 8, 79, 6, 213, 240, + 101, 240, 101, 240, 101, 240, 101, 240, 101, 240, 101, 240, + 101, 240, 101, 240, 101, 240, 101, 240, 101, 240, 101, 240, + 101, 240, 101, 240, 101, 240, 101, 240, 101, 240, 101, 240, + 101, 0, 30, 96, 52, 23, 0, 8, 85, 165, 53, 165, + 53, 165, 53, 165, 53, 165, 53, 165, 53, 165, 53, 165, + 53, 165, 53, 165, 53, 165, 53, 165, 53, 165, 53, 165, + 53, 165, 53, 165, 53, 165, 53, 165, 53, 165, 69, 133, + 86, 102, 111, 1, 141, 216, 0, 27, 55, 26, 0, 9, + 101, 228, 53, 213, 54, 196, 85, 181, 85, 181, 86, 164, + 117, 149, 117, 149, 133, 132, 149, 117, 149, 117, 165, 100, + 181, 85, 182, 68, 213, 53, 213, 53, 214, 36, 245, 36, + 245, 21, 240, 25, 240, 41, 240, 41, 240, 55, 240, 71, + 0, 30, 80, 86, 36, 0, 13, 68, 165, 179, 52, 166, + 148, 53, 135, 148, 53, 135, 148, 68, 136, 132, 68, 131, + 20, 116, 85, 100, 20, 116, 85, 100, 21, 100, 100, 100, + 36, 85, 101, 68, 52, 84, 117, 68, 52, 84, 132, 68, + 53, 68, 132, 67, 84, 52, 149, 36, 84, 52, 149, 36, + 84, 52, 164, 36, 85, 36, 164, 35, 116, 20, 185, 116, + 20, 185, 116, 20, 200, 121, 199, 151, 215, 151, 215, 151, + 229, 181, 0, 41, 80, 53, 25, 0, 9, 69, 149, 102, + 133, 118, 101, 134, 86, 150, 69, 182, 37, 213, 22, 219, + 249, 240, 40, 240, 54, 240, 69, 240, 71, 240, 56, 240, + 26, 229, 21, 229, 37, 197, 69, 165, 86, 149, 101, 133, + 133, 101, 150, 70, 166, 53, 197, 0, 28, 64, 53, 26, + 0, 9, 101, 213, 54, 182, 70, 165, 87, 134, 102, 118, + 134, 101, 166, 69, 182, 54, 198, 37, 235, 251, 240, 25, + 240, 55, 240, 71, 240, 85, 240, 101, 240, 101, 240, 101, + 240, 101, 240, 101, 240, 101, 240, 101, 240, 101, 240, 101, + 0, 30, 96, 51, 22, 0, 8, 63, 3, 79, 3, 79, + 3, 246, 240, 21, 240, 22, 246, 240, 21, 240, 21, 240, + 22, 246, 240, 21, 240, 22, 246, 240, 21, 240, 21, 240, + 22, 246, 240, 21, 240, 21, 240, 31, 4, 63, 4, 63, + 4, 63, 4, 0, 25, 16, 39, 11, 8, 56, 56, 53, + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, + 101, 101, 101, 101, 101, 104, 56, 56, 48, 23, 15, 0, + 5, 115, 67, 67, 67, 83, 67, 69, 37, 53, 37, 53, + 37, 53, 37, 53, 37, 0, 47, 32, 39, 11, 8, 56, + 56, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, + 101, 101, 101, 101, 101, 101, 101, 56, 56, 56, 48, 14, + 14, 240, 240, 244, 150, 120, 99, 36, 67, 83, 0, 49, + 48, 10, 8, 240, 149, 53, 53, 53, 0, 29, 48, 14, + 8, 240, 179, 67, 83, 69, 53, 53, 53, 53, 0, 25, + 48, 33, 18, 0, 25, 40, 139, 115, 69, 97, 117, 213, + 213, 138, 87, 21, 69, 69, 53, 85, 53, 85, 53, 85, + 54, 54, 78, 87, 21, 100, 53, 0, 20, 80, 44, 19, + 0, 7, 21, 229, 229, 229, 229, 229, 229, 229, 229, 37, + 117, 24, 95, 70, 69, 69, 101, 53, 101, 53, 101, 53, + 101, 53, 101, 53, 101, 53, 101, 53, 86, 54, 69, 78, + 94, 85, 37, 0, 22, 32, 27, 17, 0, 24, 7, 139, + 92, 69, 83, 68, 129, 53, 197, 197, 197, 197, 197, 213, + 113, 70, 67, 92, 107, 135, 0, 19, 96, 44, 19, 0, + 8, 69, 229, 229, 229, 229, 229, 229, 229, 117, 37, 94, + 94, 69, 70, 69, 85, 53, 101, 53, 101, 53, 101, 53, + 101, 53, 101, 53, 101, 54, 85, 69, 70, 79, 88, 21, + 117, 37, 0, 21, 96, 31, 19, 0, 26, 103, 171, 125, + 86, 68, 85, 100, 53, 116, 53, 116, 63, 1, 63, 1, + 53, 229, 245, 145, 70, 84, 94, 108, 151, 0, 22, 32, + 32, 16, 0, 6, 102, 137, 106, 85, 66, 85, 181, 181, + 181, 154, 106, 106, 133, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 0, 19, 16, 43, 20, 0, 28, + 22, 51, 110, 95, 69, 68, 117, 84, 101, 84, 101, 84, + 102, 52, 140, 154, 146, 22, 178, 240, 60, 142, 125, 95, + 1, 68, 132, 52, 163, 53, 147, 69, 116, 79, 109, 168, + 0, 5, 112, 47, 18, 0, 6, 101, 213, 213, 213, 213, + 213, 213, 213, 213, 53, 85, 24, 69, 25, 55, 53, 54, + 69, 53, 85, 53, 85, 53, 85, 53, 85, 53, 85, 53, + 85, 53, 85, 53, 85, 53, 85, 53, 85, 53, 85, 0, + 20, 80, 28, 8, 240, 149, 53, 53, 53, 53, 240, 197, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 0, 9, 48, 38, 13, 240, 240, 229, 133, + 133, 133, 133, 0, 5, 117, 133, 133, 133, 133, 133, 133, + 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, + 49, 69, 57, 73, 101, 240, 240, 32, 43, 18, 0, 6, + 100, 228, 228, 228, 228, 228, 228, 228, 228, 85, 68, 70, + 68, 54, 84, 37, 116, 21, 137, 152, 169, 154, 133, 21, + 116, 37, 116, 53, 100, 69, 84, 85, 68, 85, 68, 101, + 0, 20, 80, 30, 8, 240, 149, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 0, 9, 48, 54, 29, 0, + 39, 117, 38, 86, 85, 24, 41, 71, 55, 54, 54, 70, + 85, 53, 85, 101, 53, 85, 101, 53, 85, 101, 53, 85, + 101, 53, 85, 101, 53, 85, 101, 53, 85, 101, 53, 85, + 101, 53, 85, 101, 53, 85, 101, 53, 85, 101, 53, 85, + 101, 0, 33, 39, 18, 0, 24, 101, 53, 85, 24, 69, + 25, 55, 53, 54, 69, 53, 85, 53, 85, 53, 85, 53, + 85, 53, 85, 53, 85, 53, 85, 53, 85, 53, 85, 53, + 85, 53, 85, 0, 20, 80, 33, 20, 0, 28, 23, 187, + 141, 101, 85, 84, 101, 69, 117, 53, 117, 53, 117, 53, + 117, 53, 117, 53, 117, 54, 101, 69, 85, 109, 139, 183, + 0, 23, 64, 43, 19, 0, 26, 21, 53, 101, 24, 95, + 70, 54, 69, 86, 53, 101, 53, 101, 53, 101, 53, 101, + 53, 101, 53, 101, 53, 86, 54, 54, 79, 78, 85, 37, + 117, 229, 229, 229, 229, 229, 229, 0, 6, 64, 44, 19, + 0, 26, 85, 37, 88, 21, 79, 70, 54, 54, 85, 53, + 101, 53, 101, 53, 101, 53, 101, 53, 101, 53, 101, 54, + 85, 70, 54, 79, 88, 21, 117, 37, 229, 229, 229, 229, + 229, 229, 229, 240, 240, 176, 26, 14, 0, 19, 37, 51, + 53, 21, 53, 21, 56, 102, 134, 133, 149, 149, 149, 149, + 149, 149, 149, 149, 149, 0, 16, 112, 27, 15, 0, 21, + 7, 106, 68, 82, 68, 97, 68, 183, 153, 106, 120, 181, + 195, 50, 115, 52, 83, 60, 74, 119, 0, 17, 64, 29, + 15, 0, 11, 69, 165, 165, 165, 165, 139, 76, 59, 101, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 50, 90, 105, + 117, 0, 17, 80, 39, 18, 0, 24, 101, 85, 53, 85, + 53, 85, 53, 85, 53, 85, 53, 85, 53, 85, 53, 85, + 53, 85, 53, 85, 53, 85, 53, 85, 53, 70, 53, 55, + 72, 21, 86, 37, 0, 20, 80, 35, 18, 0, 24, 100, + 116, 52, 116, 53, 100, 68, 84, 84, 84, 84, 84, 100, + 52, 116, 52, 116, 52, 132, 20, 148, 20, 148, 20, 167, + 183, 183, 197, 0, 21, 32, 54, 27, 0, 37, 20, 99, + 116, 52, 100, 100, 53, 84, 100, 68, 70, 68, 84, 70, + 68, 84, 70, 68, 85, 35, 19, 52, 116, 35, 20, 36, + 116, 35, 20, 36, 117, 18, 36, 36, 135, 51, 20, 151, + 56, 151, 56, 150, 72, 165, 86, 181, 86, 0, 31, 32, + 33, 18, 0, 24, 100, 100, 69, 84, 85, 52, 117, 21, + 137, 167, 197, 212, 229, 199, 164, 19, 164, 20, 132, 52, + 100, 84, 69, 85, 52, 116, 0, 20, 80, 40, 18, 0, + 24, 100, 116, 52, 116, 68, 85, 68, 84, 85, 68, 100, + 53, 101, 36, 132, 36, 132, 35, 168, 168, 182, 198, 198, + 212, 228, 228, 227, 228, 145, 68, 152, 167, 181, 0, 6, + 16, 23, 17, 0, 23, 77, 77, 77, 181, 196, 196, 197, + 181, 181, 181, 196, 196, 197, 190, 62, 62, 0, 19, 64, + 13, 22, 0, 41, 47, 4, 63, 4, 63, 4, 0, 49, + 112, 16, 40, 0, 75, 15, 15, 7, 63, 15, 7, 63, + 15, 7, 0, 90, 48, 17, 15, 0, 5, 101, 21, 68, + 36, 68, 52, 67, 67, 83, 51, 0, 53, 32, 16, 15, + 0, 5, 116, 66, 70, 35, 60, 51, 38, 66, 68, 0, + 53, 16, +}; + +//***************************************************************************** +// +// The font definition for the 34 point Cmss bold font. +// +//***************************************************************************** +const tFont g_sFontCmss34b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 36, + + // + // The height of the font. + // + 36, + + // + // The baseline of the font. + // + 27, + + // + // The offset to each character in the font. + // + { + 0, 4, 33, 56, 147, 198, 283, 349, + 363, 402, 440, 474, 531, 547, 557, 569, + 608, 657, 688, 723, 759, 804, 841, 885, + 916, 962, 1007, 1026, 1049, 1079, 1100, 1134, + 1167, 1227, 1280, 1332, 1382, 1435, 1475, 1510, + 1562, 1617, 1647, 1680, 1733, 1764, 1848, 1917, + 1968, 2020, 2081, 2134, 2170, 2224, 2276, 2331, + 2417, 2470, 2523, 2574, 2613, 2636, 2675, 2689, + 2699, 2713, 2746, 2790, 2817, 2861, 2892, 2924, + 2967, 3014, 3042, 3080, 3123, 3153, 3207, 3246, + 3279, 3322, 3366, 3392, 3419, 3448, 3487, 3522, + 3576, 3609, 3649, 3672, 3685, 3701, 3718, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss34bData +}; diff --git a/grlib/fonts/fontcmss34i.c b/grlib/fonts/fontcmss34i.c new file mode 100644 index 0000000..ba56701 --- /dev/null +++ b/grlib/fonts/fontcmss34i.c @@ -0,0 +1,423 @@ +//***************************************************************************** +// +// fontcmss34i.c - Font definition for the 34pt Cmss italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 34 point +// Bold: no +// Italic: yes +// Memory usage: 3996 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 34 point Cmss italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss34iData[3793] = +{ + 5, 14, 0, 61, 32, 29, 11, 240, 195, 131, 130, 131, + 131, 131, 130, 146, 131, 131, 131, 130, 146, 131, 131, 130, + 146, 146, 240, 240, 163, 131, 131, 0, 13, 48, 20, 13, + 240, 195, 51, 67, 51, 67, 51, 66, 66, 82, 66, 81, + 81, 82, 66, 0, 42, 112, 95, 27, 0, 8, 66, 97, + 240, 49, 98, 240, 49, 97, 240, 49, 98, 240, 49, 97, + 240, 50, 97, 240, 49, 97, 240, 50, 97, 240, 49, 97, + 240, 65, 97, 240, 49, 98, 240, 49, 97, 175, 8, 193, + 97, 240, 49, 98, 240, 49, 97, 240, 50, 97, 240, 49, + 97, 207, 8, 161, 97, 240, 50, 97, 240, 49, 98, 240, + 49, 97, 240, 49, 98, 240, 49, 97, 240, 49, 98, 240, + 49, 97, 240, 50, 97, 240, 49, 97, 240, 50, 97, 240, + 49, 98, 0, 8, 112, 53, 19, 162, 240, 34, 247, 170, + 134, 35, 115, 34, 65, 115, 34, 179, 50, 179, 50, 179, + 34, 195, 34, 196, 18, 214, 231, 215, 215, 194, 35, 194, + 35, 193, 51, 178, 51, 178, 50, 194, 35, 97, 82, 34, + 115, 39, 123, 167, 242, 240, 34, 0, 18, 16, 82, 25, + 83, 209, 102, 177, 99, 35, 146, 98, 51, 130, 99, 51, + 129, 115, 51, 113, 115, 67, 98, 115, 67, 82, 131, 51, + 97, 147, 51, 81, 163, 50, 81, 179, 35, 66, 198, 66, + 228, 81, 240, 129, 99, 226, 70, 194, 67, 35, 177, 82, + 51, 161, 83, 51, 145, 99, 51, 130, 83, 67, 114, 99, + 67, 113, 115, 51, 113, 131, 51, 98, 131, 50, 98, 147, + 35, 97, 182, 97, 211, 0, 22, 112, 67, 26, 0, 7, + 116, 240, 87, 240, 51, 51, 240, 34, 67, 240, 19, 67, + 240, 18, 83, 243, 67, 240, 19, 51, 240, 35, 35, 240, + 51, 19, 240, 70, 240, 85, 147, 148, 162, 134, 146, 131, + 19, 131, 115, 36, 114, 115, 67, 98, 130, 84, 66, 131, + 100, 19, 147, 118, 163, 117, 180, 87, 191, 6, 103, 87, + 0, 29, 112, 12, 7, 243, 67, 67, 66, 82, 81, 82, + 0, 23, 48, 38, 15, 162, 194, 194, 195, 179, 194, 195, + 194, 195, 179, 195, 194, 195, 195, 195, 179, 195, 195, 195, + 180, 179, 195, 195, 195, 195, 195, 195, 195, 195, 210, 211, + 195, 210, 211, 210, 160, 38, 15, 114, 211, 210, 211, 195, + 210, 211, 195, 195, 195, 195, 195, 195, 195, 195, 195, 179, + 195, 195, 195, 179, 195, 195, 194, 195, 195, 179, 195, 179, + 194, 195, 179, 194, 194, 194, 208, 28, 16, 114, 226, 211, + 145, 50, 50, 68, 18, 35, 90, 119, 179, 183, 122, 83, + 34, 35, 66, 50, 49, 147, 210, 226, 0, 41, 32, 49, + 24, 0, 19, 65, 240, 129, 240, 129, 240, 114, 240, 113, + 240, 129, 240, 129, 240, 129, 240, 129, 240, 114, 240, 113, + 223, 6, 209, 240, 114, 240, 113, 240, 129, 240, 129, 240, + 129, 240, 114, 240, 113, 240, 129, 240, 129, 0, 22, 112, + 14, 7, 0, 20, 35, 67, 66, 82, 82, 81, 82, 240, + 240, 160, 9, 12, 0, 25, 73, 57, 0, 24, 48, 10, + 6, 0, 17, 35, 51, 51, 0, 7, 16, 74, 22, 240, + 49, 240, 82, 240, 81, 240, 82, 240, 81, 240, 82, 240, + 81, 240, 81, 240, 97, 240, 81, 240, 97, 240, 81, 240, + 82, 240, 81, 240, 82, 240, 81, 240, 82, 240, 81, 240, + 82, 240, 81, 240, 82, 240, 81, 240, 82, 240, 81, 240, + 81, 240, 97, 240, 81, 240, 97, 240, 81, 240, 97, 240, + 81, 240, 82, 240, 81, 240, 82, 240, 81, 240, 96, 49, + 18, 0, 7, 100, 200, 147, 51, 131, 83, 99, 99, 98, + 115, 83, 115, 83, 115, 82, 131, 67, 131, 67, 116, 67, + 115, 83, 115, 67, 131, 67, 131, 67, 115, 83, 115, 83, + 114, 99, 99, 100, 67, 131, 51, 152, 196, 0, 21, 80, + 31, 14, 0, 6, 65, 179, 118, 131, 18, 194, 179, 179, + 178, 194, 194, 179, 179, 178, 194, 194, 179, 179, 178, 194, + 194, 179, 123, 59, 0, 16, 16, 39, 19, 0, 8, 21, + 201, 146, 68, 130, 100, 98, 131, 98, 131, 97, 147, 240, + 19, 243, 240, 19, 243, 243, 243, 243, 243, 243, 243, 242, + 240, 18, 243, 243, 240, 29, 108, 0, 22, 32, 46, 19, + 0, 8, 21, 200, 163, 67, 130, 115, 113, 131, 113, 130, + 240, 19, 240, 18, 240, 19, 228, 197, 230, 240, 35, 240, + 35, 240, 19, 240, 19, 240, 19, 240, 19, 81, 147, 98, + 115, 116, 67, 153, 197, 0, 22, 96, 41, 18, 0, 8, + 20, 228, 212, 210, 18, 198, 179, 19, 178, 35, 163, 34, + 163, 50, 147, 51, 147, 51, 131, 67, 115, 82, 115, 83, + 100, 83, 111, 63, 194, 243, 243, 243, 242, 243, 0, 21, + 32, 47, 19, 0, 7, 107, 139, 115, 240, 19, 240, 18, + 240, 34, 240, 34, 240, 19, 240, 19, 20, 186, 148, 51, + 146, 99, 115, 99, 240, 19, 240, 19, 240, 19, 240, 19, + 243, 97, 147, 98, 115, 115, 83, 153, 182, 0, 22, 96, + 45, 18, 0, 7, 118, 168, 147, 81, 131, 227, 227, 227, + 243, 37, 116, 23, 101, 67, 100, 99, 83, 115, 68, 115, + 67, 131, 67, 131, 67, 131, 67, 115, 83, 115, 83, 99, + 100, 82, 131, 67, 136, 196, 0, 21, 80, 30, 18, 0, + 6, 126, 78, 242, 242, 243, 227, 227, 227, 242, 243, 227, + 242, 243, 242, 243, 242, 243, 243, 227, 243, 242, 243, 243, + 0, 22, 16, 47, 19, 0, 8, 21, 201, 147, 67, 131, + 99, 114, 115, 99, 115, 98, 131, 98, 130, 115, 98, 147, + 66, 183, 199, 163, 67, 131, 99, 99, 115, 98, 131, 83, + 131, 83, 131, 83, 115, 99, 99, 131, 68, 137, 197, 0, + 22, 96, 46, 19, 0, 8, 36, 216, 162, 67, 146, 99, + 114, 115, 99, 115, 99, 115, 83, 131, 83, 131, 83, 131, + 83, 116, 83, 115, 99, 100, 100, 69, 119, 35, 132, 51, + 240, 19, 243, 243, 243, 146, 67, 153, 197, 0, 22, 112, + 15, 9, 0, 12, 99, 99, 99, 0, 10, 67, 99, 99, + 0, 10, 112, 19, 10, 0, 14, 35, 115, 115, 0, 11, + 99, 115, 115, 129, 130, 129, 130, 0, 7, 32, 30, 11, + 0, 11, 83, 131, 131, 240, 240, 162, 146, 146, 131, 131, + 130, 146, 146, 131, 131, 130, 146, 131, 131, 131, 130, 146, + 131, 131, 240, 240, 12, 26, 0, 45, 95, 7, 0, 16, + 95, 7, 0, 46, 33, 14, 0, 15, 3, 179, 179, 0, + 6, 67, 178, 194, 194, 179, 178, 179, 178, 179, 148, 163, + 163, 178, 179, 179, 179, 113, 52, 67, 74, 86, 240, 240, + 64, 31, 15, 240, 240, 55, 106, 82, 84, 195, 195, 195, + 179, 195, 164, 164, 164, 179, 179, 194, 195, 194, 210, 210, + 0, 7, 3, 195, 195, 0, 18, 48, 63, 22, 0, 6, + 118, 218, 180, 68, 147, 115, 131, 68, 18, 115, 57, 99, + 51, 52, 83, 51, 83, 83, 51, 83, 67, 51, 99, 67, + 51, 99, 66, 51, 115, 51, 51, 114, 67, 51, 114, 67, + 51, 99, 67, 51, 98, 83, 51, 83, 83, 67, 51, 115, + 71, 131, 84, 179, 240, 69, 99, 170, 230, 0, 26, 54, + 22, 0, 7, 19, 240, 52, 240, 52, 240, 34, 19, 240, + 18, 19, 242, 35, 242, 35, 226, 51, 211, 51, 210, 82, + 195, 83, 178, 99, 163, 99, 162, 115, 147, 115, 157, 142, + 115, 147, 114, 179, 83, 179, 82, 195, 67, 195, 66, 211, + 51, 211, 0, 25, 16, 49, 23, 0, 6, 59, 205, 147, + 117, 131, 147, 131, 163, 114, 178, 115, 163, 115, 163, 115, + 147, 130, 131, 171, 189, 163, 116, 147, 147, 130, 164, 114, + 179, 99, 179, 99, 179, 99, 163, 114, 179, 114, 163, 115, + 132, 142, 155, 0, 27, 48, 50, 22, 0, 6, 104, 203, + 148, 98, 148, 240, 35, 240, 51, 240, 67, 240, 51, 240, + 67, 240, 51, 240, 67, 240, 51, 240, 67, 240, 67, 240, + 67, 240, 67, 240, 67, 240, 67, 240, 83, 240, 67, 240, + 83, 145, 149, 83, 171, 215, 0, 26, 51, 24, 0, 6, + 91, 206, 163, 117, 147, 148, 131, 163, 130, 179, 115, 195, + 99, 195, 99, 195, 99, 195, 98, 211, 83, 211, 83, 211, + 83, 195, 99, 195, 98, 211, 83, 195, 99, 180, 99, 179, + 114, 179, 130, 163, 131, 132, 157, 187, 0, 28, 80, 49, + 22, 0, 6, 30, 142, 115, 240, 67, 240, 67, 240, 67, + 240, 66, 240, 67, 240, 67, 240, 67, 240, 77, 157, 131, + 240, 67, 240, 67, 240, 67, 240, 66, 240, 67, 240, 67, + 240, 67, 240, 67, 240, 51, 240, 79, 127, 0, 25, 80, + 50, 22, 0, 6, 30, 141, 131, 240, 67, 240, 67, 240, + 67, 240, 66, 240, 67, 240, 67, 240, 67, 240, 67, 240, + 76, 157, 147, 240, 67, 240, 67, 240, 66, 240, 67, 240, + 67, 240, 67, 240, 67, 240, 51, 240, 67, 240, 67, 0, + 27, 16, 50, 22, 0, 6, 103, 219, 163, 99, 132, 145, + 115, 240, 66, 240, 67, 240, 51, 240, 67, 240, 51, 240, + 67, 240, 66, 240, 67, 240, 67, 240, 67, 119, 83, 119, + 83, 179, 83, 178, 115, 162, 115, 147, 131, 131, 133, 83, + 172, 199, 0, 26, 55, 24, 0, 6, 83, 178, 131, 163, + 130, 179, 115, 179, 115, 179, 115, 163, 130, 179, 115, 179, + 115, 179, 115, 179, 127, 1, 143, 1, 115, 179, 115, 179, + 115, 179, 115, 163, 130, 179, 115, 179, 115, 179, 115, 178, + 131, 163, 130, 179, 115, 179, 115, 179, 0, 27, 112, 30, + 11, 240, 195, 131, 130, 131, 131, 131, 131, 130, 131, 131, + 131, 131, 115, 131, 131, 131, 130, 131, 131, 131, 131, 130, + 131, 131, 0, 13, 48, 33, 18, 0, 6, 18, 243, 243, + 243, 242, 243, 243, 243, 243, 242, 243, 243, 243, 243, 242, + 243, 243, 243, 242, 243, 113, 115, 114, 68, 137, 166, 0, + 21, 80, 56, 25, 0, 6, 115, 179, 131, 148, 146, 148, + 147, 132, 163, 115, 195, 99, 210, 99, 211, 83, 227, 67, + 243, 51, 240, 19, 21, 240, 18, 23, 231, 19, 229, 52, + 212, 83, 211, 99, 210, 131, 179, 131, 179, 132, 163, 147, + 163, 147, 162, 179, 131, 179, 131, 180, 0, 29, 31, 16, + 240, 240, 115, 211, 210, 211, 211, 211, 211, 195, 211, 211, + 211, 210, 211, 211, 211, 211, 210, 211, 211, 211, 211, 210, + 221, 61, 0, 18, 48, 87, 30, 0, 8, 20, 228, 132, + 213, 132, 197, 134, 181, 134, 166, 134, 162, 19, 130, 34, + 147, 18, 146, 34, 146, 34, 131, 34, 131, 19, 131, 34, + 130, 35, 131, 35, 98, 51, 130, 51, 83, 50, 131, 51, + 82, 66, 131, 51, 67, 51, 131, 51, 66, 67, 131, 66, + 51, 67, 130, 82, 50, 82, 131, 82, 35, 67, 131, 83, + 18, 83, 131, 85, 99, 130, 101, 99, 130, 100, 114, 131, + 115, 99, 131, 240, 19, 0, 34, 96, 72, 24, 0, 6, + 84, 162, 133, 146, 133, 131, 118, 131, 115, 18, 131, 115, + 19, 114, 130, 35, 114, 115, 35, 99, 115, 50, 99, 115, + 51, 83, 114, 67, 82, 130, 67, 67, 115, 67, 67, 115, + 83, 51, 115, 83, 51, 114, 99, 50, 130, 99, 35, 115, + 115, 19, 115, 115, 19, 115, 115, 18, 130, 131, 18, 130, + 149, 115, 149, 115, 149, 0, 27, 112, 53, 24, 0, 7, + 38, 240, 26, 196, 84, 163, 132, 131, 163, 115, 179, 115, + 195, 83, 211, 82, 227, 67, 227, 67, 227, 66, 243, 51, + 243, 51, 227, 67, 227, 67, 211, 83, 211, 83, 195, 115, + 179, 115, 163, 132, 116, 164, 84, 202, 240, 22, 0, 28, + 80, 50, 22, 0, 6, 11, 189, 147, 116, 131, 132, 114, + 163, 99, 163, 99, 163, 99, 163, 98, 163, 99, 163, 99, + 147, 115, 116, 141, 155, 163, 240, 67, 240, 67, 240, 67, + 240, 66, 240, 67, 240, 67, 240, 67, 240, 67, 240, 66, + 0, 27, 32, 62, 24, 0, 7, 38, 240, 26, 211, 84, + 163, 132, 131, 163, 115, 180, 99, 195, 83, 211, 83, 211, + 67, 227, 67, 227, 66, 243, 51, 243, 51, 227, 67, 227, + 67, 226, 83, 211, 83, 83, 67, 115, 83, 51, 115, 83, + 35, 132, 71, 164, 69, 203, 249, 240, 100, 240, 99, 240, + 99, 240, 115, 0, 16, 51, 23, 0, 6, 59, 205, 162, + 132, 131, 148, 115, 163, 115, 163, 115, 163, 114, 179, 99, + 163, 115, 147, 131, 116, 157, 170, 195, 83, 195, 99, 179, + 99, 179, 99, 178, 131, 147, 131, 147, 131, 147, 147, 130, + 163, 115, 163, 115, 179, 0, 26, 80, 47, 21, 0, 6, + 55, 203, 147, 99, 131, 240, 35, 240, 35, 240, 51, 240, + 51, 240, 52, 240, 37, 240, 40, 233, 232, 240, 37, 240, + 36, 240, 51, 240, 51, 240, 51, 240, 50, 97, 179, 98, + 147, 116, 99, 140, 199, 0, 25, 54, 22, 240, 240, 239, + 4, 63, 4, 179, 240, 67, 240, 51, 240, 67, 240, 67, + 240, 67, 240, 67, 240, 51, 240, 67, 240, 67, 240, 67, + 240, 66, 240, 67, 240, 67, 240, 67, 240, 67, 240, 66, + 240, 67, 240, 67, 240, 67, 240, 67, 240, 66, 0, 26, + 96, 53, 22, 0, 6, 2, 178, 99, 178, 99, 163, 99, + 163, 99, 163, 83, 178, 99, 178, 99, 163, 99, 163, 99, + 163, 83, 178, 99, 178, 99, 163, 99, 163, 83, 178, 99, + 178, 99, 163, 99, 163, 99, 162, 115, 147, 131, 115, 148, + 68, 185, 245, 0, 26, 48, 56, 22, 240, 240, 227, 226, + 51, 211, 51, 210, 67, 195, 67, 194, 83, 179, 83, 163, + 115, 146, 131, 131, 131, 130, 147, 115, 147, 114, 163, 99, + 178, 98, 195, 67, 195, 51, 211, 50, 227, 35, 227, 34, + 243, 19, 240, 18, 18, 240, 37, 240, 36, 240, 51, 0, + 26, 96, 91, 32, 0, 8, 3, 164, 162, 66, 164, 147, + 67, 148, 146, 83, 133, 131, 83, 133, 130, 99, 114, 19, + 115, 99, 114, 19, 115, 99, 98, 35, 114, 115, 98, 35, + 99, 115, 83, 35, 98, 131, 82, 66, 83, 131, 67, 66, + 82, 147, 66, 82, 67, 147, 51, 82, 66, 163, 50, 98, + 51, 163, 50, 98, 50, 179, 34, 114, 35, 194, 34, 114, + 34, 210, 18, 130, 34, 210, 18, 130, 18, 228, 146, 18, + 228, 148, 243, 164, 243, 163, 0, 37, 96, 59, 26, 0, + 7, 20, 179, 147, 163, 163, 147, 195, 115, 211, 99, 243, + 83, 243, 67, 240, 35, 35, 240, 51, 19, 240, 85, 240, + 100, 240, 116, 240, 116, 240, 102, 240, 67, 19, 240, 51, + 36, 240, 19, 67, 243, 84, 211, 115, 195, 132, 179, 147, + 163, 164, 131, 195, 115, 212, 0, 30, 57, 24, 0, 6, + 4, 227, 67, 211, 84, 179, 115, 163, 131, 147, 148, 131, + 163, 115, 180, 83, 211, 67, 227, 51, 240, 19, 19, 240, + 35, 18, 240, 54, 240, 68, 240, 83, 240, 99, 240, 99, + 240, 98, 240, 99, 240, 99, 240, 99, 240, 99, 240, 98, + 240, 99, 0, 29, 16, 54, 24, 0, 6, 95, 1, 143, + 240, 84, 240, 83, 240, 83, 240, 83, 240, 83, 240, 84, + 240, 68, 240, 83, 240, 83, 240, 83, 240, 84, 240, 68, + 240, 83, 240, 83, 240, 83, 240, 83, 240, 84, 240, 83, + 240, 83, 240, 83, 240, 95, 1, 143, 1, 0, 28, 38, + 16, 118, 166, 162, 226, 226, 211, 211, 210, 226, 226, 211, + 211, 210, 226, 226, 211, 211, 210, 226, 226, 211, 211, 210, + 226, 226, 211, 211, 210, 226, 211, 211, 211, 210, 229, 166, + 160, 19, 14, 240, 242, 82, 81, 97, 82, 82, 82, 82, + 82, 82, 67, 67, 67, 67, 0, 46, 38, 15, 117, 165, + 195, 195, 195, 194, 210, 195, 195, 195, 194, 210, 195, 195, + 195, 194, 210, 195, 195, 194, 210, 210, 195, 195, 194, 210, + 210, 195, 195, 194, 210, 210, 195, 150, 149, 160, 17, 14, + 240, 240, 51, 165, 131, 18, 115, 35, 83, 66, 67, 98, + 0, 47, 80, 9, 6, 240, 51, 51, 51, 0, 22, 16, + 13, 7, 240, 18, 81, 82, 82, 82, 67, 67, 0, 23, + 32, 29, 16, 0, 22, 86, 152, 114, 68, 211, 211, 211, + 150, 121, 84, 67, 83, 83, 67, 99, 67, 83, 84, 52, + 91, 101, 35, 0, 18, 80, 48, 18, 240, 240, 179, 242, + 240, 18, 243, 243, 242, 240, 18, 240, 18, 243, 243, 37, + 130, 24, 116, 53, 83, 100, 83, 115, 83, 115, 82, 131, + 82, 131, 67, 130, 83, 115, 83, 115, 83, 99, 100, 52, + 107, 115, 36, 0, 21, 48, 25, 17, 0, 24, 37, 169, + 100, 81, 99, 226, 227, 226, 227, 227, 227, 227, 228, 113, + 100, 67, 121, 150, 0, 20, 16, 53, 20, 0, 6, 99, + 240, 35, 240, 34, 240, 50, 240, 35, 240, 35, 240, 34, + 240, 50, 240, 50, 180, 35, 155, 132, 67, 131, 114, 115, + 115, 115, 115, 114, 131, 99, 130, 115, 130, 115, 115, 115, + 115, 116, 99, 132, 52, 152, 18, 165, 35, 0, 23, 64, + 26, 17, 0, 24, 22, 153, 115, 68, 83, 99, 67, 115, + 77, 62, 51, 227, 227, 227, 228, 228, 82, 121, 150, 0, + 20, 16, 31, 16, 240, 240, 165, 166, 146, 210, 211, 210, + 226, 211, 211, 169, 121, 162, 211, 211, 211, 210, 226, 211, + 211, 210, 226, 226, 211, 211, 0, 19, 80, 43, 22, 0, + 31, 36, 52, 172, 147, 36, 195, 67, 179, 83, 179, 83, + 179, 83, 179, 67, 196, 35, 216, 210, 36, 226, 240, 90, + 203, 173, 131, 116, 115, 147, 115, 147, 115, 131, 133, 84, + 156, 214, 0, 7, 46, 17, 240, 240, 146, 242, 227, 227, + 227, 226, 242, 227, 227, 227, 37, 114, 24, 100, 52, 84, + 83, 83, 99, 83, 99, 82, 114, 98, 99, 83, 99, 83, + 99, 83, 98, 98, 114, 98, 99, 83, 99, 83, 99, 0, + 19, 96, 27, 10, 240, 240, 67, 115, 115, 0, 7, 2, + 130, 115, 115, 114, 130, 130, 115, 115, 114, 130, 130, 115, + 115, 114, 0, 12, 32, 35, 17, 0, 7, 99, 227, 226, + 0, 12, 50, 227, 227, 227, 226, 242, 227, 227, 227, 226, + 242, 227, 227, 226, 242, 242, 227, 227, 226, 161, 51, 151, + 181, 240, 240, 240, 44, 17, 240, 240, 131, 227, 227, 226, + 242, 227, 227, 227, 226, 242, 99, 83, 68, 99, 52, 114, + 51, 146, 35, 162, 19, 167, 168, 148, 19, 147, 51, 115, + 67, 115, 82, 115, 83, 98, 99, 98, 115, 0, 19, 96, + 30, 11, 240, 195, 131, 130, 146, 131, 131, 131, 130, 131, + 131, 131, 130, 146, 131, 131, 131, 130, 131, 131, 131, 130, + 146, 131, 131, 0, 13, 48, 52, 26, 0, 36, 19, 37, + 69, 114, 24, 24, 100, 54, 52, 84, 84, 83, 83, 99, + 99, 83, 99, 99, 83, 98, 114, 98, 114, 99, 83, 99, + 99, 83, 99, 99, 83, 98, 114, 98, 114, 114, 98, 99, + 99, 83, 99, 99, 83, 99, 99, 0, 29, 112, 37, 17, + 0, 23, 98, 53, 114, 24, 100, 52, 84, 83, 83, 99, + 83, 99, 82, 114, 98, 99, 83, 99, 83, 99, 83, 98, + 98, 114, 83, 99, 83, 99, 83, 99, 0, 19, 96, 33, + 18, 0, 25, 70, 184, 132, 52, 99, 100, 82, 131, 67, + 131, 66, 147, 51, 147, 51, 147, 51, 131, 67, 131, 68, + 99, 100, 52, 137, 166, 0, 21, 48, 49, 19, 0, 26, + 83, 37, 146, 24, 132, 53, 114, 100, 99, 115, 99, 115, + 98, 131, 98, 131, 83, 130, 99, 115, 99, 115, 99, 99, + 116, 52, 123, 131, 36, 163, 240, 18, 240, 34, 240, 19, + 240, 19, 240, 19, 240, 18, 0, 6, 112, 42, 18, 0, + 25, 68, 35, 123, 100, 52, 99, 99, 84, 99, 83, 115, + 82, 131, 67, 130, 83, 130, 83, 115, 83, 115, 84, 84, + 100, 52, 123, 133, 35, 243, 243, 242, 243, 243, 243, 242, + 240, 240, 224, 23, 13, 0, 18, 34, 50, 83, 20, 86, + 116, 147, 162, 163, 163, 162, 178, 163, 163, 163, 162, 178, + 0, 16, 23, 16, 0, 22, 102, 137, 99, 82, 83, 211, + 212, 200, 152, 182, 211, 211, 211, 67, 83, 90, 134, 0, + 19, 27, 13, 0, 11, 114, 163, 163, 162, 138, 57, 99, + 163, 162, 178, 163, 163, 163, 162, 163, 163, 163, 49, 103, + 117, 0, 15, 64, 37, 17, 0, 23, 98, 99, 83, 99, + 83, 99, 83, 98, 98, 114, 98, 99, 83, 99, 83, 99, + 83, 98, 98, 114, 83, 99, 83, 99, 83, 69, 88, 18, + 117, 50, 0, 19, 112, 33, 16, 0, 22, 2, 131, 50, + 130, 67, 99, 67, 98, 83, 83, 83, 82, 114, 67, 114, + 66, 130, 51, 131, 19, 147, 18, 166, 165, 196, 195, 0, + 19, 48, 55, 23, 0, 31, 82, 114, 114, 50, 99, 99, + 50, 99, 98, 66, 84, 83, 67, 65, 18, 82, 83, 50, + 19, 51, 83, 50, 19, 50, 99, 34, 35, 35, 99, 34, + 35, 34, 115, 18, 51, 19, 115, 18, 66, 18, 148, 85, + 148, 84, 163, 100, 163, 99, 0, 27, 16, 35, 20, 0, + 28, 3, 115, 115, 99, 147, 67, 163, 51, 195, 19, 229, + 244, 240, 19, 240, 21, 227, 18, 211, 35, 179, 67, 147, + 83, 131, 115, 99, 131, 0, 23, 32, 47, 20, 0, 28, + 2, 131, 115, 114, 131, 99, 131, 98, 147, 83, 162, 82, + 178, 67, 179, 50, 195, 34, 211, 34, 226, 18, 242, 18, + 244, 240, 20, 240, 19, 240, 34, 240, 50, 240, 34, 240, + 50, 240, 34, 229, 244, 0, 7, 21, 18, 0, 25, 28, + 107, 242, 243, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 236, 108, 0, 21, 11, 19, 0, 38, 15, 1, 63, 1, + 0, 40, 96, 13, 35, 0, 70, 15, 15, 2, 63, 15, + 2, 0, 74, 96, 18, 14, 240, 240, 18, 51, 83, 50, + 98, 50, 99, 50, 98, 50, 98, 51, 0, 48, 15, 14, + 240, 240, 227, 66, 70, 34, 66, 37, 66, 67, 0, 49, + 80, +}; + +//***************************************************************************** +// +// The font definition for the 34 point Cmss italic font. +// +//***************************************************************************** +const tFont g_sFontCmss34i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 31, + + // + // The height of the font. + // + 35, + + // + // The baseline of the font. + // + 26, + + // + // The offset to each character in the font. + // + { + 0, 5, 34, 54, 149, 202, 284, 351, + 363, 401, 439, 467, 516, 530, 539, 549, + 623, 672, 703, 742, 788, 829, 876, 921, + 951, 998, 1044, 1059, 1078, 1108, 1120, 1153, + 1184, 1247, 1301, 1350, 1400, 1451, 1500, 1550, + 1600, 1655, 1685, 1718, 1774, 1805, 1892, 1964, + 2017, 2067, 2129, 2180, 2227, 2281, 2334, 2390, + 2481, 2540, 2597, 2651, 2689, 2708, 2746, 2763, + 2772, 2785, 2814, 2862, 2887, 2940, 2966, 2997, + 3040, 3086, 3113, 3148, 3192, 3222, 3274, 3311, + 3344, 3393, 3435, 3458, 3481, 3508, 3545, 3578, + 3633, 3668, 3715, 3736, 3747, 3760, 3778, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss34iData +}; diff --git a/grlib/fonts/fontcmss36.c b/grlib/fonts/fontcmss36.c new file mode 100644 index 0000000..d26d2f0 --- /dev/null +++ b/grlib/fonts/fontcmss36.c @@ -0,0 +1,411 @@ +//***************************************************************************** +// +// fontcmss36.c - Font definition for the 36pt Cmss font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 36 point +// Bold: no +// Italic: no +// Memory usage: 3852 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 36 point Cmss font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss36Data[3652] = +{ + 5, 14, 0, 61, 32, 27, 6, 195, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 240, 99, 51, 51, 0, 7, 16, 20, 12, 240, 147, + 51, 51, 51, 51, 51, 66, 66, 65, 81, 66, 66, 66, + 66, 0, 39, 64, 95, 27, 0, 8, 18, 97, 240, 49, + 113, 240, 49, 113, 240, 49, 98, 240, 34, 97, 240, 49, + 113, 240, 49, 113, 240, 49, 98, 240, 34, 97, 240, 49, + 113, 240, 49, 113, 240, 49, 98, 159, 9, 177, 113, 240, + 49, 98, 240, 49, 97, 240, 50, 97, 240, 49, 113, 191, + 9, 146, 97, 240, 49, 113, 240, 49, 113, 240, 49, 98, + 240, 34, 97, 240, 49, 113, 240, 49, 113, 240, 49, 98, + 240, 34, 97, 240, 49, 113, 240, 49, 113, 240, 49, 98, + 0, 8, 64, 52, 16, 82, 226, 199, 138, 83, 18, 35, + 83, 18, 65, 67, 34, 147, 34, 147, 34, 147, 34, 148, + 18, 166, 167, 168, 167, 167, 146, 36, 130, 51, 130, 51, + 130, 51, 130, 51, 130, 51, 49, 66, 35, 67, 34, 20, + 90, 119, 194, 226, 0, 15, 16, 84, 27, 51, 209, 149, + 178, 131, 19, 161, 146, 50, 145, 147, 51, 129, 147, 51, + 113, 163, 51, 98, 163, 51, 97, 179, 51, 82, 179, 51, + 81, 210, 50, 82, 211, 19, 81, 245, 81, 240, 35, 97, + 240, 161, 99, 240, 33, 85, 241, 83, 19, 210, 82, 50, + 209, 83, 51, 178, 83, 51, 177, 99, 51, 161, 115, 51, + 161, 115, 51, 145, 131, 51, 145, 146, 50, 145, 163, 19, + 130, 181, 145, 211, 0, 24, 48, 68, 26, 0, 7, 52, + 240, 103, 240, 51, 35, 240, 50, 67, 240, 19, 67, 240, + 19, 67, 240, 19, 67, 240, 19, 51, 240, 35, 36, 240, + 36, 19, 240, 70, 240, 85, 146, 164, 162, 150, 131, 116, + 19, 130, 116, 36, 99, 115, 68, 82, 115, 99, 67, 115, + 100, 35, 131, 119, 148, 117, 180, 87, 187, 25, 118, 103, + 0, 29, 80, 11, 6, 195, 51, 51, 66, 65, 66, 66, + 0, 20, 38, 11, 98, 130, 131, 130, 131, 130, 131, 130, + 131, 131, 131, 130, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 146, 147, 131, 131, 146, 147, 131, 147, 146, + 147, 147, 146, 48, 38, 11, 2, 162, 147, 146, 147, 147, + 131, 146, 147, 131, 131, 147, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 115, 131, 131, 130, 131, 131, + 115, 130, 131, 130, 130, 144, 27, 16, 83, 211, 211, 145, + 51, 49, 67, 35, 35, 75, 119, 179, 183, 123, 67, 35, + 35, 65, 51, 49, 147, 211, 211, 0, 41, 49, 24, 0, + 19, 33, 240, 129, 240, 129, 240, 129, 240, 129, 240, 129, + 240, 129, 240, 129, 240, 129, 240, 129, 240, 129, 223, 6, + 209, 240, 129, 240, 129, 240, 129, 240, 129, 240, 129, 240, + 129, 240, 129, 240, 129, 240, 129, 0, 22, 80, 14, 6, + 0, 17, 35, 51, 51, 66, 65, 66, 66, 240, 240, 64, + 9, 12, 0, 25, 73, 57, 0, 24, 48, 10, 6, 0, + 17, 35, 51, 51, 0, 7, 16, 38, 16, 193, 226, 225, + 241, 226, 225, 241, 226, 225, 241, 226, 225, 241, 226, 225, + 241, 226, 225, 226, 225, 241, 226, 225, 241, 226, 225, 241, + 226, 225, 241, 226, 225, 241, 226, 225, 240, 49, 17, 0, + 7, 4, 184, 131, 67, 99, 99, 83, 99, 82, 130, 67, + 131, 51, 131, 51, 131, 51, 131, 51, 131, 51, 131, 51, + 131, 51, 131, 51, 131, 51, 131, 51, 131, 67, 100, 67, + 99, 83, 99, 99, 67, 136, 165, 0, 20, 16, 31, 14, + 0, 6, 1, 179, 119, 115, 19, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 123, 59, 0, 16, 16, 35, 17, 0, 6, 118, 168, 130, + 68, 98, 115, 82, 116, 50, 147, 65, 147, 227, 227, 227, + 211, 226, 227, 211, 211, 211, 211, 211, 211, 210, 226, 253, + 77, 0, 19, 64, 36, 17, 0, 6, 118, 168, 131, 67, + 98, 115, 81, 131, 227, 227, 227, 211, 211, 166, 182, 240, + 19, 243, 243, 227, 227, 227, 49, 163, 50, 131, 83, 83, + 121, 166, 0, 20, 40, 18, 0, 7, 100, 228, 213, 213, + 194, 19, 194, 19, 178, 35, 163, 35, 162, 51, 147, 51, + 146, 67, 131, 67, 130, 83, 115, 83, 114, 99, 111, 63, + 195, 243, 243, 243, 243, 243, 0, 21, 37, 16, 0, 6, + 27, 91, 83, 211, 211, 211, 211, 211, 211, 20, 138, 100, + 52, 83, 83, 83, 99, 211, 211, 211, 211, 211, 49, 146, + 66, 115, 68, 67, 105, 150, 0, 18, 112, 44, 17, 0, + 7, 22, 152, 132, 195, 226, 227, 226, 242, 52, 115, 24, + 85, 68, 68, 99, 68, 115, 51, 131, 51, 131, 51, 131, + 51, 131, 51, 131, 66, 131, 67, 99, 98, 99, 99, 67, + 136, 165, 0, 20, 16, 30, 17, 0, 6, 62, 62, 242, + 226, 226, 227, 226, 227, 226, 227, 226, 227, 227, 226, 227, + 227, 227, 226, 227, 227, 227, 227, 227, 0, 20, 48, 46, + 17, 0, 6, 118, 154, 100, 68, 83, 99, 67, 131, 51, + 131, 51, 131, 51, 131, 67, 99, 99, 67, 136, 152, 131, + 67, 99, 99, 67, 131, 51, 131, 51, 131, 51, 131, 51, + 131, 67, 99, 84, 68, 120, 166, 0, 20, 45, 17, 0, + 7, 5, 168, 131, 67, 99, 99, 83, 99, 67, 130, 67, + 131, 51, 131, 51, 131, 51, 131, 51, 131, 67, 115, 67, + 100, 68, 69, 88, 19, 101, 51, 226, 227, 226, 227, 113, + 83, 121, 165, 0, 20, 32, 15, 6, 0, 8, 35, 51, + 51, 0, 7, 19, 51, 51, 0, 7, 16, 19, 6, 0, + 8, 35, 51, 51, 0, 7, 19, 51, 51, 66, 65, 66, + 66, 240, 240, 64, 28, 6, 0, 6, 3, 51, 51, 240, + 99, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 240, 13, 25, 0, 43, + 111, 7, 0, 16, 15, 7, 0, 44, 16, 32, 15, 0, + 15, 67, 195, 195, 0, 7, 19, 195, 195, 195, 195, 195, + 179, 195, 179, 180, 179, 179, 195, 195, 195, 195, 211, 83, + 75, 102, 240, 240, 96, 31, 15, 240, 240, 39, 106, 83, + 83, 211, 195, 195, 195, 180, 164, 164, 179, 179, 195, 179, + 195, 195, 195, 195, 0, 7, 19, 195, 195, 0, 17, 112, + 63, 21, 0, 6, 38, 217, 165, 67, 132, 115, 100, 71, + 99, 72, 83, 67, 37, 67, 51, 68, 67, 51, 68, 51, + 51, 99, 51, 51, 99, 51, 51, 99, 51, 51, 99, 51, + 51, 99, 51, 51, 99, 52, 51, 67, 83, 51, 67, 83, + 67, 35, 115, 70, 132, 68, 164, 240, 53, 84, 154, 214, + 0, 24, 64, 54, 23, 0, 6, 100, 240, 68, 240, 68, + 240, 54, 240, 34, 19, 240, 34, 35, 243, 35, 242, 51, + 227, 67, 211, 67, 210, 83, 195, 99, 179, 99, 178, 115, + 163, 131, 158, 158, 131, 163, 115, 163, 114, 180, 83, 195, + 82, 211, 67, 212, 51, 227, 0, 26, 32, 49, 20, 240, + 240, 171, 157, 115, 117, 83, 147, 83, 163, 67, 163, 67, + 163, 67, 163, 67, 147, 83, 116, 108, 141, 115, 116, 99, + 148, 67, 163, 67, 179, 51, 179, 51, 179, 51, 179, 51, + 164, 51, 148, 67, 132, 94, 108, 0, 23, 64, 51, 20, + 0, 6, 7, 187, 116, 99, 100, 145, 84, 240, 19, 240, + 19, 240, 35, 240, 35, 240, 19, 240, 35, 240, 35, 240, + 35, 240, 35, 240, 35, 240, 36, 240, 35, 240, 35, 240, + 51, 240, 36, 240, 36, 145, 116, 99, 155, 183, 0, 23, + 16, 50, 22, 240, 240, 236, 174, 131, 132, 115, 148, 99, + 164, 83, 179, 83, 195, 67, 195, 67, 211, 51, 211, 51, + 211, 51, 211, 51, 211, 51, 211, 51, 211, 51, 211, 51, + 195, 67, 195, 67, 179, 83, 179, 83, 163, 99, 132, 126, + 140, 0, 26, 31, 18, 240, 240, 111, 63, 51, 243, 243, + 243, 243, 243, 243, 243, 254, 78, 67, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 255, 63, 0, 20, 80, 31, 17, + 240, 240, 78, 62, 51, 227, 227, 227, 227, 227, 227, 227, + 227, 237, 77, 67, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 0, 20, 112, 51, 21, 0, 6, 39, 204, 116, + 100, 100, 146, 84, 240, 35, 240, 35, 240, 51, 240, 51, + 240, 35, 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, + 135, 52, 119, 67, 179, 67, 179, 83, 163, 84, 147, 100, + 131, 116, 100, 141, 183, 0, 24, 48, 55, 20, 240, 240, + 163, 179, 51, 179, 51, 179, 51, 179, 51, 179, 51, 179, + 51, 179, 51, 179, 51, 179, 51, 179, 63, 2, 63, 2, + 51, 179, 51, 179, 51, 179, 51, 179, 51, 179, 51, 179, + 51, 179, 51, 179, 51, 179, 51, 179, 51, 179, 51, 179, + 0, 22, 112, 29, 6, 195, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 0, 7, 16, 32, 15, 240, 240, + 147, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 180, 66, 68, 74, + 134, 0, 17, 80, 54, 21, 240, 240, 195, 180, 51, 164, + 67, 148, 83, 132, 99, 116, 115, 115, 131, 99, 147, 83, + 163, 67, 179, 51, 195, 37, 179, 23, 166, 35, 166, 36, + 149, 67, 148, 99, 131, 116, 115, 131, 115, 147, 99, 148, + 83, 163, 83, 179, 67, 180, 51, 195, 0, 24, 31, 16, + 240, 240, 35, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 221, 61, 0, 18, 48, 92, 26, 0, 6, 69, 213, 53, + 213, 53, 213, 54, 182, 51, 18, 178, 19, 51, 18, 178, + 19, 51, 19, 147, 19, 51, 19, 146, 35, 51, 34, 146, + 35, 51, 35, 115, 35, 51, 50, 114, 51, 51, 51, 98, + 51, 51, 51, 83, 51, 51, 66, 82, 67, 51, 67, 51, + 67, 51, 67, 51, 67, 51, 82, 50, 83, 51, 83, 34, + 83, 51, 83, 19, 83, 51, 98, 18, 99, 51, 98, 18, + 99, 51, 100, 115, 51, 115, 115, 51, 240, 35, 0, 29, + 80, 71, 20, 240, 240, 165, 147, 53, 147, 54, 131, 54, + 131, 51, 19, 115, 51, 19, 115, 51, 34, 115, 51, 35, + 99, 51, 50, 99, 51, 51, 83, 51, 51, 83, 51, 67, + 67, 51, 67, 67, 51, 83, 51, 51, 83, 51, 51, 98, + 51, 51, 99, 35, 51, 114, 35, 51, 115, 19, 51, 115, + 19, 51, 134, 51, 134, 51, 149, 51, 149, 0, 22, 112, + 53, 24, 0, 7, 6, 240, 26, 196, 84, 163, 147, 131, + 179, 115, 179, 99, 211, 83, 211, 82, 243, 51, 243, 51, + 243, 51, 243, 51, 243, 51, 243, 51, 243, 52, 227, 67, + 211, 83, 211, 99, 179, 116, 148, 132, 131, 164, 84, 203, + 240, 21, 0, 28, 48, 50, 19, 240, 240, 139, 141, 99, + 116, 83, 147, 67, 148, 51, 163, 51, 163, 51, 163, 51, + 163, 51, 147, 67, 147, 67, 116, 93, 107, 131, 240, 19, + 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, + 240, 19, 240, 19, 0, 23, 48, 65, 24, 0, 7, 6, + 240, 26, 196, 84, 163, 132, 131, 179, 115, 179, 99, 211, + 83, 211, 82, 243, 51, 243, 51, 243, 51, 243, 51, 243, + 51, 243, 51, 243, 51, 243, 67, 211, 83, 83, 83, 99, + 83, 51, 116, 83, 35, 132, 71, 164, 69, 203, 240, 21, + 19, 240, 100, 240, 99, 240, 115, 240, 100, 0, 15, 64, + 50, 21, 240, 240, 204, 158, 115, 132, 99, 163, 83, 164, + 67, 179, 67, 179, 67, 179, 67, 164, 67, 163, 83, 132, + 110, 124, 147, 99, 147, 99, 147, 115, 131, 116, 115, 131, + 115, 147, 99, 147, 99, 163, 83, 163, 83, 179, 67, 180, + 0, 24, 35, 18, 240, 240, 182, 171, 99, 99, 83, 129, + 83, 243, 243, 243, 244, 245, 231, 201, 184, 229, 243, 244, + 243, 243, 243, 243, 50, 147, 68, 99, 107, 166, 0, 21, + 32, 54, 24, 0, 6, 15, 6, 63, 6, 195, 240, 99, + 240, 99, 240, 99, 240, 99, 240, 99, 240, 99, 240, 99, + 240, 99, 240, 99, 240, 99, 240, 99, 240, 99, 240, 99, + 240, 99, 240, 99, 240, 99, 240, 99, 240, 99, 240, 99, + 240, 99, 240, 99, 0, 28, 64, 53, 20, 240, 240, 163, + 179, 51, 179, 51, 179, 51, 179, 51, 179, 51, 179, 51, + 179, 51, 179, 51, 179, 51, 179, 51, 179, 51, 179, 51, + 179, 51, 179, 51, 179, 51, 179, 51, 179, 51, 179, 67, + 147, 83, 147, 99, 115, 116, 84, 153, 213, 0, 23, 80, + 56, 23, 0, 5, 99, 242, 51, 227, 52, 211, 67, 210, + 83, 195, 99, 179, 99, 163, 115, 163, 131, 146, 147, 131, + 147, 131, 163, 114, 179, 99, 195, 83, 195, 67, 211, 67, + 227, 50, 243, 35, 243, 35, 240, 19, 18, 240, 38, 240, + 53, 240, 52, 240, 68, 0, 27, 32, 92, 33, 0, 8, + 35, 163, 179, 51, 164, 162, 67, 164, 147, 67, 146, 18, + 147, 83, 130, 18, 147, 83, 130, 19, 130, 99, 115, 19, + 115, 115, 99, 34, 115, 115, 98, 51, 98, 131, 98, 51, + 83, 131, 83, 51, 83, 147, 67, 66, 83, 147, 66, 83, + 66, 163, 66, 83, 51, 163, 51, 83, 51, 179, 34, 114, + 50, 195, 34, 115, 34, 195, 34, 115, 19, 210, 19, 115, + 19, 213, 146, 18, 229, 149, 229, 149, 244, 163, 240, 19, + 179, 0, 38, 48, 56, 23, 0, 5, 100, 195, 83, 179, + 115, 147, 147, 131, 148, 99, 179, 83, 211, 52, 212, 35, + 243, 19, 240, 38, 240, 52, 240, 67, 240, 84, 240, 54, + 240, 19, 20, 227, 51, 227, 67, 195, 99, 163, 116, 147, + 131, 131, 163, 99, 180, 83, 195, 67, 227, 0, 26, 32, + 55, 24, 0, 6, 3, 243, 67, 211, 84, 195, 99, 179, + 116, 147, 148, 131, 163, 115, 180, 84, 196, 67, 227, 51, + 244, 35, 240, 23, 240, 53, 240, 69, 240, 83, 240, 99, + 240, 99, 240, 99, 240, 99, 240, 99, 240, 99, 240, 99, + 240, 99, 240, 99, 0, 28, 64, 56, 20, 240, 240, 175, + 1, 79, 1, 240, 20, 240, 19, 240, 19, 240, 35, 240, + 19, 240, 20, 240, 19, 240, 19, 240, 20, 240, 19, 240, + 19, 240, 35, 240, 19, 240, 20, 240, 19, 240, 19, 240, + 20, 240, 19, 240, 19, 240, 35, 240, 31, 2, 63, 2, + 0, 22, 112, 38, 9, 6, 54, 51, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 102, 54, 48, 20, 13, 240, 194, 82, 66, 82, + 65, 97, 66, 82, 67, 67, 51, 67, 51, 67, 0, 42, + 80, 38, 9, 6, 54, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 54, 54, 48, 17, 14, 240, 240, 35, 165, 146, 19, 114, + 51, 83, 66, 67, 98, 0, 47, 80, 9, 6, 240, 51, + 51, 51, 0, 22, 16, 12, 6, 210, 66, 65, 66, 67, + 51, 51, 0, 19, 112, 29, 16, 0, 22, 70, 122, 98, + 99, 227, 211, 211, 136, 91, 68, 83, 51, 115, 51, 115, + 51, 115, 52, 84, 76, 86, 35, 0, 18, 48, 44, 16, + 240, 240, 35, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 37, 107, 84, 68, 67, 99, 67, 100, 51, 115, 51, 115, + 51, 115, 51, 115, 51, 115, 51, 100, 51, 99, 68, 67, + 91, 83, 36, 0, 18, 112, 25, 16, 0, 22, 86, 138, + 83, 98, 67, 211, 195, 211, 211, 211, 211, 227, 211, 129, + 84, 67, 106, 134, 0, 18, 80, 45, 17, 240, 240, 243, + 227, 227, 227, 227, 227, 227, 227, 227, 117, 35, 107, 84, + 68, 67, 115, 67, 115, 51, 131, 51, 131, 51, 131, 51, + 131, 51, 131, 52, 115, 67, 115, 84, 53, 88, 19, 117, + 35, 0, 19, 64, 26, 16, 0, 22, 85, 152, 115, 67, + 83, 99, 66, 130, 61, 61, 51, 211, 211, 227, 212, 212, + 82, 106, 134, 0, 18, 80, 31, 14, 240, 240, 69, 119, + 99, 163, 179, 179, 179, 179, 179, 153, 89, 115, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 0, 16, + 112, 44, 18, 0, 25, 37, 36, 108, 83, 51, 131, 83, + 115, 83, 115, 83, 115, 83, 115, 83, 131, 51, 152, 146, + 36, 162, 240, 26, 155, 109, 68, 116, 51, 147, 51, 147, + 51, 147, 68, 84, 107, 151, 240, 240, 208, 45, 15, 240, + 243, 195, 195, 195, 195, 195, 195, 195, 195, 195, 37, 83, + 23, 69, 52, 52, 83, 51, 99, 51, 99, 51, 99, 51, + 99, 51, 99, 51, 99, 51, 99, 51, 99, 51, 99, 51, + 99, 51, 99, 0, 17, 32, 26, 6, 240, 51, 51, 51, + 240, 240, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 0, 7, 16, 34, 11, 240, 240, + 131, 131, 131, 0, 7, 115, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 49, 52, 55, 85, 240, 192, 44, 16, 240, 240, 35, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 99, 67, 83, 83, + 67, 99, 51, 115, 35, 131, 19, 152, 136, 133, 19, 116, + 51, 99, 67, 99, 83, 83, 99, 67, 99, 67, 115, 0, + 18, 48, 29, 6, 195, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 0, 7, 16, 52, 24, 0, 33, 3, + 37, 69, 83, 23, 39, 69, 54, 52, 52, 84, 83, 51, + 99, 99, 51, 99, 99, 51, 99, 99, 51, 99, 99, 51, + 99, 99, 51, 99, 99, 51, 99, 99, 51, 99, 99, 51, + 99, 99, 51, 99, 99, 51, 99, 99, 0, 27, 48, 37, + 15, 0, 20, 83, 37, 83, 23, 69, 52, 52, 83, 51, + 99, 51, 99, 51, 99, 51, 99, 51, 99, 51, 99, 51, + 99, 51, 99, 51, 99, 51, 99, 51, 99, 0, 17, 32, + 33, 18, 0, 25, 53, 185, 131, 68, 99, 115, 83, 115, + 67, 147, 51, 147, 51, 147, 51, 147, 51, 147, 67, 115, + 83, 115, 100, 67, 137, 181, 0, 21, 32, 42, 16, 0, + 22, 3, 37, 107, 84, 68, 67, 99, 67, 100, 51, 115, + 51, 115, 51, 115, 51, 115, 51, 115, 51, 100, 51, 99, + 68, 67, 91, 83, 36, 115, 211, 211, 211, 211, 211, 211, + 240, 240, 240, 43, 17, 0, 23, 117, 35, 107, 84, 53, + 68, 84, 67, 115, 51, 131, 51, 131, 51, 131, 51, 131, + 51, 131, 52, 115, 67, 115, 84, 53, 88, 19, 117, 35, + 227, 227, 227, 227, 227, 227, 227, 240, 240, 112, 24, 12, + 0, 16, 67, 51, 51, 21, 55, 85, 116, 131, 147, 147, + 147, 147, 147, 147, 147, 147, 147, 0, 14, 80, 24, 14, + 0, 19, 86, 105, 68, 66, 67, 179, 180, 183, 136, 134, + 180, 179, 179, 50, 84, 58, 102, 0, 16, 64, 27, 14, + 0, 12, 83, 179, 179, 179, 139, 59, 99, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 180, 49, 119, 117, 0, 16, + 48, 37, 15, 0, 20, 83, 99, 51, 99, 51, 99, 51, + 99, 51, 99, 51, 99, 51, 99, 51, 99, 51, 99, 51, + 99, 51, 99, 51, 99, 52, 53, 56, 19, 69, 51, 0, + 17, 32, 34, 17, 0, 23, 50, 147, 51, 115, 67, 115, + 83, 98, 99, 83, 99, 83, 115, 66, 131, 51, 146, 51, + 147, 34, 163, 19, 178, 18, 197, 197, 211, 0, 20, 32, + 56, 24, 0, 33, 2, 115, 99, 51, 99, 99, 51, 84, + 98, 82, 85, 67, 83, 66, 18, 67, 83, 50, 34, 66, + 99, 50, 34, 66, 114, 50, 35, 35, 115, 34, 50, 35, + 115, 18, 66, 34, 146, 18, 66, 19, 146, 18, 70, 149, + 84, 179, 100, 179, 100, 0, 27, 112, 33, 18, 0, 24, + 115, 115, 84, 83, 115, 83, 131, 51, 163, 19, 197, 227, + 243, 229, 195, 19, 178, 50, 163, 51, 131, 83, 99, 115, + 67, 147, 0, 20, 80, 40, 17, 0, 23, 51, 131, 51, + 115, 67, 115, 83, 98, 99, 83, 115, 67, 115, 66, 146, + 51, 147, 35, 147, 34, 178, 19, 181, 212, 212, 211, 242, + 227, 226, 227, 226, 182, 181, 0, 5, 96, 22, 15, 0, + 20, 92, 60, 179, 179, 195, 179, 179, 179, 195, 179, 179, + 194, 195, 188, 60, 0, 17, 32, 11, 20, 0, 40, 15, + 2, 63, 2, 0, 42, 112, 13, 36, 0, 72, 15, 15, + 3, 63, 15, 3, 0, 76, 112, 18, 13, 240, 211, 35, + 82, 50, 83, 35, 82, 50, 98, 50, 83, 35, 0, 44, + 64, 15, 14, 240, 240, 227, 66, 69, 35, 50, 38, 66, + 67, 0, 49, 80, +}; + +//***************************************************************************** +// +// The font definition for the 36 point Cmss font. +// +//***************************************************************************** +const tFont g_sFontCmss36 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 32, + + // + // The height of the font. + // + 35, + + // + // The baseline of the font. + // + 26, + + // + // The offset to each character in the font. + // + { + 0, 5, 32, 52, 147, 199, 283, 351, + 362, 400, 438, 465, 514, 528, 537, 547, + 585, 634, 665, 700, 736, 776, 813, 857, + 887, 933, 978, 993, 1012, 1040, 1053, 1085, + 1116, 1179, 1233, 1282, 1333, 1383, 1414, 1445, + 1496, 1551, 1580, 1612, 1666, 1697, 1789, 1860, + 1913, 1963, 2028, 2078, 2113, 2167, 2220, 2276, + 2368, 2424, 2479, 2535, 2573, 2593, 2631, 2648, + 2657, 2669, 2698, 2742, 2767, 2812, 2838, 2869, + 2913, 2958, 2984, 3018, 3062, 3091, 3143, 3180, + 3213, 3255, 3298, 3322, 3346, 3373, 3410, 3444, + 3500, 3533, 3573, 3595, 3606, 3619, 3637, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss36Data +}; diff --git a/grlib/fonts/fontcmss36b.c b/grlib/fonts/fontcmss36b.c new file mode 100644 index 0000000..c69e2ae --- /dev/null +++ b/grlib/fonts/fontcmss36b.c @@ -0,0 +1,422 @@ +//***************************************************************************** +// +// fontcmss36b.c - Font definition for the 36pt Cmss bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 36 point +// Bold: yes +// Italic: no +// Memory usage: 3988 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 36 point Cmss bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss36bData[3787] = +{ + 4, 14, 0, 63, 29, 8, 240, 149, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 240, 69, 53, 53, 53, 53, 0, 9, 48, 23, 16, 0, + 6, 5, 53, 53, 53, 53, 53, 53, 53, 53, 53, 67, + 83, 83, 83, 67, 83, 0, 50, 80, 91, 31, 0, 13, + 34, 98, 240, 83, 99, 240, 67, 83, 240, 83, 83, 240, + 83, 83, 240, 67, 99, 240, 67, 83, 240, 83, 83, 240, + 68, 83, 240, 67, 83, 175, 13, 63, 13, 63, 13, 195, + 83, 240, 83, 83, 240, 67, 99, 240, 67, 83, 240, 83, + 83, 207, 13, 63, 13, 63, 13, 163, 83, 240, 67, 99, + 240, 67, 83, 240, 83, 83, 240, 67, 99, 240, 67, 83, + 240, 83, 83, 240, 83, 83, 240, 67, 99, 240, 82, 98, + 0, 9, 96, 48, 18, 240, 147, 243, 215, 155, 109, 93, + 69, 19, 35, 68, 35, 65, 68, 35, 148, 35, 149, 19, + 153, 171, 139, 139, 153, 169, 147, 36, 147, 36, 147, 36, + 50, 67, 36, 52, 35, 21, 62, 78, 107, 151, 211, 243, + 0, 16, 112, 89, 35, 70, 242, 169, 211, 155, 180, 149, + 36, 179, 149, 68, 148, 149, 68, 132, 165, 68, 116, 181, + 68, 115, 197, 68, 100, 197, 68, 84, 213, 68, 83, 245, + 36, 84, 240, 26, 68, 240, 56, 68, 240, 240, 19, 240, + 240, 20, 72, 240, 52, 74, 240, 20, 69, 36, 240, 19, + 69, 68, 228, 69, 68, 212, 85, 68, 196, 101, 68, 195, + 117, 68, 180, 117, 68, 164, 133, 68, 163, 165, 36, 164, + 171, 163, 201, 178, 246, 0, 31, 48, 65, 28, 0, 11, + 69, 240, 104, 240, 74, 240, 52, 37, 240, 20, 68, 240, + 20, 68, 240, 20, 68, 240, 20, 67, 240, 36, 52, 240, + 37, 20, 98, 183, 132, 150, 147, 165, 148, 136, 116, 132, + 21, 100, 116, 53, 68, 117, 54, 36, 133, 74, 149, 88, + 166, 72, 97, 79, 9, 79, 9, 91, 42, 118, 119, 0, + 32, 14, 8, 240, 149, 53, 53, 53, 53, 67, 83, 67, + 0, 25, 80, 39, 13, 240, 83, 147, 148, 132, 147, 148, + 133, 132, 148, 133, 133, 132, 133, 133, 133, 133, 133, 133, + 133, 133, 133, 133, 133, 148, 149, 133, 148, 148, 149, 148, + 164, 148, 164, 163, 179, 48, 38, 13, 211, 179, 164, 164, + 163, 164, 149, 148, 149, 133, 133, 148, 149, 133, 133, 133, + 133, 133, 133, 133, 133, 133, 133, 132, 133, 133, 132, 148, + 133, 132, 147, 148, 132, 147, 147, 160, 34, 17, 240, 130, + 228, 212, 131, 36, 35, 52, 34, 36, 53, 18, 21, 76, + 119, 183, 124, 69, 18, 21, 52, 34, 36, 51, 36, 35, + 132, 212, 226, 0, 41, 64, 57, 28, 0, 18, 115, 240, + 163, 240, 163, 240, 163, 240, 163, 240, 163, 240, 163, 240, + 163, 240, 163, 240, 163, 240, 163, 240, 163, 239, 10, 63, + 10, 63, 10, 227, 240, 163, 240, 163, 240, 163, 240, 163, + 240, 163, 240, 163, 240, 163, 240, 163, 240, 163, 240, 163, + 0, 19, 32, 16, 8, 0, 22, 5, 53, 53, 53, 53, + 67, 83, 67, 83, 240, 240, 240, 10, 13, 0, 27, 90, + 58, 58, 0, 26, 48, 12, 8, 0, 22, 5, 53, 53, + 53, 53, 0, 9, 48, 39, 18, 240, 243, 243, 243, 227, + 243, 228, 227, 243, 227, 243, 243, 227, 243, 228, 227, 243, + 227, 243, 243, 227, 243, 228, 227, 243, 227, 243, 243, 227, + 243, 228, 227, 243, 227, 243, 243, 240, 49, 19, 0, 7, + 102, 186, 140, 101, 54, 85, 69, 84, 100, 69, 101, 53, + 101, 53, 101, 53, 101, 53, 101, 53, 101, 53, 101, 53, + 101, 53, 101, 53, 101, 53, 101, 53, 101, 68, 100, 85, + 69, 86, 38, 108, 138, 182, 0, 22, 48, 31, 17, 0, + 7, 20, 122, 122, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 141, 77, + 77, 0, 19, 64, 37, 19, 0, 7, 102, 186, 140, 110, + 84, 70, 68, 102, 66, 133, 81, 133, 229, 229, 213, 229, + 213, 213, 213, 212, 228, 228, 228, 228, 239, 63, 1, 63, + 1, 79, 0, 21, 96, 35, 19, 0, 7, 102, 186, 125, + 100, 70, 82, 117, 229, 229, 229, 213, 168, 183, 201, 245, + 244, 245, 229, 229, 229, 229, 51, 133, 53, 85, 78, 123, + 167, 0, 22, 48, 49, 20, 0, 8, 85, 230, 230, 215, + 215, 195, 20, 180, 20, 179, 36, 164, 36, 163, 52, 148, + 52, 147, 68, 132, 68, 131, 84, 116, 84, 115, 100, 111, + 2, 63, 2, 79, 1, 212, 240, 20, 240, 20, 240, 20, + 240, 20, 0, 23, 32, 37, 19, 0, 7, 60, 125, 109, + 108, 117, 229, 229, 229, 234, 156, 125, 101, 53, 100, 85, + 98, 101, 229, 229, 229, 229, 81, 133, 67, 117, 53, 85, + 93, 138, 182, 0, 22, 48, 45, 19, 0, 7, 119, 169, + 154, 133, 228, 228, 244, 229, 37, 117, 24, 85, 25, 71, + 53, 70, 85, 53, 101, 53, 101, 53, 101, 53, 101, 53, + 101, 53, 101, 68, 101, 69, 85, 84, 69, 108, 138, 183, + 0, 22, 32, 33, 19, 0, 7, 31, 79, 1, 63, 1, + 63, 228, 229, 228, 228, 229, 228, 229, 228, 229, 228, 229, + 229, 229, 228, 229, 229, 229, 229, 229, 229, 0, 22, 96, + 46, 19, 0, 7, 88, 156, 125, 85, 69, 84, 100, 84, + 100, 84, 100, 84, 100, 85, 69, 108, 152, 156, 101, 69, + 84, 100, 69, 101, 53, 101, 53, 101, 53, 101, 53, 101, + 53, 101, 69, 69, 94, 108, 152, 0, 22, 32, 45, 19, + 0, 7, 102, 186, 140, 101, 69, 84, 85, 69, 100, 69, + 101, 53, 101, 53, 101, 53, 101, 53, 101, 53, 101, 53, + 86, 69, 55, 79, 88, 21, 117, 37, 228, 244, 229, 98, + 85, 108, 138, 167, 0, 22, 64, 19, 8, 0, 11, 5, + 53, 53, 53, 53, 0, 6, 53, 53, 53, 53, 53, 0, + 9, 48, 23, 8, 0, 11, 5, 53, 53, 53, 53, 0, + 6, 53, 53, 53, 53, 53, 67, 83, 67, 83, 240, 240, + 240, 30, 8, 0, 9, 5, 53, 53, 53, 53, 240, 69, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 240, 64, 21, 29, 0, 47, 31, + 11, 63, 11, 63, 11, 0, 18, 79, 11, 63, 11, 63, + 11, 0, 43, 112, 34, 16, 0, 18, 68, 196, 196, 196, + 196, 240, 240, 228, 196, 196, 196, 196, 180, 196, 180, 181, + 165, 181, 180, 196, 196, 114, 53, 68, 76, 75, 118, 240, + 240, 144, 33, 17, 0, 6, 103, 139, 93, 68, 70, 65, + 117, 197, 197, 182, 166, 166, 181, 181, 197, 181, 197, 197, + 197, 0, 5, 101, 197, 197, 197, 197, 0, 20, 16, 61, + 24, 0, 10, 24, 220, 175, 135, 25, 102, 42, 86, 44, + 69, 37, 53, 69, 37, 53, 53, 37, 84, 53, 37, 84, + 53, 37, 84, 53, 37, 84, 53, 37, 84, 53, 37, 84, + 53, 37, 84, 54, 37, 53, 69, 37, 52, 85, 59, 101, + 57, 118, 54, 167, 116, 127, 1, 173, 232, 0, 27, 112, + 54, 25, 0, 10, 54, 240, 56, 240, 40, 240, 25, 240, + 26, 244, 21, 229, 22, 213, 37, 212, 53, 197, 54, 181, + 69, 180, 85, 165, 86, 149, 101, 133, 117, 133, 118, 127, + 3, 111, 4, 111, 5, 85, 165, 69, 182, 53, 182, 52, + 213, 52, 213, 0, 28, 64, 52, 24, 0, 9, 15, 159, + 2, 127, 4, 85, 134, 85, 150, 69, 165, 69, 165, 69, + 165, 69, 149, 85, 134, 95, 2, 127, 159, 3, 101, 134, + 85, 165, 69, 181, 53, 181, 53, 181, 53, 181, 53, 166, + 53, 150, 79, 5, 79, 4, 95, 1, 0, 28, 51, 24, + 0, 10, 9, 207, 143, 1, 127, 2, 103, 116, 86, 177, + 102, 240, 53, 240, 54, 240, 53, 240, 69, 240, 69, 240, + 69, 240, 69, 240, 69, 240, 70, 240, 69, 240, 70, 240, + 55, 177, 104, 115, 127, 2, 143, 2, 142, 217, 0, 27, + 112, 55, 26, 0, 9, 111, 1, 175, 3, 143, 5, 101, + 150, 101, 181, 85, 197, 69, 197, 69, 212, 69, 213, 53, + 213, 53, 213, 53, 213, 53, 213, 53, 213, 53, 213, 53, + 213, 53, 213, 53, 197, 69, 197, 69, 181, 85, 151, 95, + 5, 111, 3, 143, 1, 0, 30, 64, 55, 21, 0, 7, + 127, 2, 79, 2, 79, 2, 79, 2, 69, 240, 21, 240, + 21, 240, 21, 240, 21, 240, 21, 240, 31, 1, 95, 1, + 95, 1, 85, 240, 21, 240, 21, 240, 21, 240, 21, 240, + 21, 240, 21, 240, 31, 2, 79, 3, 63, 3, 63, 2, + 0, 24, 16, 35, 20, 0, 7, 79, 1, 79, 2, 63, + 2, 63, 1, 69, 245, 245, 245, 245, 245, 245, 255, 95, + 95, 85, 245, 245, 245, 245, 245, 245, 245, 245, 245, 0, + 24, 48, 52, 24, 0, 10, 24, 222, 143, 2, 111, 3, + 88, 101, 71, 162, 86, 240, 53, 240, 54, 240, 53, 240, + 69, 240, 69, 240, 69, 240, 69, 136, 53, 136, 53, 136, + 69, 165, 69, 165, 70, 149, 86, 133, 103, 101, 127, 2, + 143, 1, 185, 0, 27, 112, 55, 25, 0, 9, 53, 197, + 53, 197, 53, 197, 53, 197, 53, 197, 53, 197, 53, 197, + 53, 197, 53, 197, 53, 197, 63, 7, 63, 7, 63, 7, + 53, 197, 53, 197, 53, 197, 53, 197, 53, 197, 53, 197, + 53, 197, 53, 197, 53, 197, 53, 197, 53, 197, 0, 28, + 64, 30, 8, 240, 149, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 0, 9, 48, 33, 16, 0, 7, 5, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 49, 117, 51, 70, 61, 60, 75, + 134, 0, 18, 112, 53, 25, 0, 9, 53, 197, 53, 166, + 69, 150, 85, 134, 101, 118, 117, 102, 133, 86, 149, 70, + 165, 54, 181, 38, 197, 22, 221, 206, 184, 22, 167, 54, + 150, 85, 149, 117, 133, 118, 117, 134, 101, 149, 101, 165, + 85, 166, 69, 182, 53, 197, 0, 28, 64, 31, 18, 0, + 6, 101, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, + 213, 213, 213, 213, 213, 213, 213, 213, 213, 223, 63, 63, + 63, 0, 20, 80, 86, 32, 0, 12, 7, 247, 56, 216, + 56, 216, 56, 216, 57, 185, 57, 185, 53, 20, 148, 21, + 53, 20, 148, 21, 53, 20, 132, 37, 53, 36, 116, 37, + 53, 36, 116, 37, 53, 52, 84, 53, 53, 52, 84, 53, + 53, 53, 52, 69, 53, 68, 52, 69, 53, 68, 52, 69, + 53, 84, 20, 85, 53, 84, 20, 85, 53, 84, 19, 101, + 53, 103, 101, 53, 103, 101, 53, 117, 117, 53, 117, 117, + 53, 240, 69, 0, 36, 48, 69, 25, 0, 9, 55, 165, + 56, 149, 56, 149, 57, 133, 57, 133, 53, 20, 117, 53, + 20, 117, 53, 36, 101, 53, 36, 101, 53, 52, 85, 53, + 52, 85, 53, 68, 69, 53, 68, 69, 53, 84, 53, 53, + 84, 53, 53, 100, 37, 53, 100, 37, 53, 116, 21, 53, + 116, 21, 53, 137, 53, 137, 53, 152, 53, 152, 53, 167, + 0, 28, 64, 53, 27, 0, 11, 24, 240, 30, 207, 1, + 166, 102, 133, 165, 101, 197, 85, 197, 84, 228, 69, 229, + 53, 229, 53, 229, 53, 229, 53, 229, 53, 229, 53, 229, + 53, 229, 54, 198, 69, 197, 86, 181, 101, 165, 119, 103, + 143, 3, 190, 240, 24, 0, 31, 96, 52, 23, 0, 8, + 95, 143, 2, 111, 3, 85, 134, 69, 150, 53, 165, 53, + 165, 53, 165, 53, 165, 53, 165, 53, 150, 53, 134, 79, + 3, 95, 2, 111, 133, 240, 53, 240, 53, 240, 53, 240, + 53, 240, 53, 240, 53, 240, 53, 240, 53, 0, 28, 16, + 62, 27, 0, 11, 24, 240, 30, 207, 1, 166, 102, 133, + 165, 101, 197, 85, 197, 85, 197, 69, 229, 53, 229, 53, + 229, 53, 229, 53, 229, 53, 229, 53, 229, 53, 229, 54, + 213, 69, 69, 53, 85, 85, 37, 101, 90, 119, 58, 143, + 2, 207, 252, 240, 118, 240, 103, 240, 102, 240, 117, 0, + 17, 64, 53, 23, 0, 8, 95, 143, 2, 111, 4, 69, + 134, 69, 165, 53, 165, 53, 165, 53, 165, 53, 165, 53, + 134, 79, 3, 95, 2, 111, 133, 70, 133, 85, 133, 101, + 117, 101, 117, 117, 101, 118, 85, 133, 85, 149, 69, 149, + 69, 165, 53, 165, 0, 26, 32, 42, 21, 0, 8, 72, + 189, 127, 95, 86, 100, 85, 146, 85, 240, 21, 240, 22, + 240, 24, 221, 157, 172, 202, 247, 246, 240, 21, 240, 21, + 51, 165, 54, 102, 63, 2, 79, 1, 125, 184, 0, 24, + 80, 54, 26, 0, 9, 111, 8, 63, 8, 63, 8, 63, + 8, 197, 240, 101, 240, 101, 240, 101, 240, 101, 240, 101, + 240, 101, 240, 101, 240, 101, 240, 101, 240, 101, 240, 101, + 240, 101, 240, 101, 240, 101, 240, 101, 240, 101, 240, 101, + 240, 101, 240, 101, 0, 30, 96, 53, 24, 0, 9, 5, + 181, 53, 181, 53, 181, 53, 181, 53, 181, 53, 181, 53, + 181, 53, 181, 53, 181, 53, 181, 53, 181, 53, 181, 53, + 181, 53, 181, 53, 181, 53, 181, 53, 181, 53, 181, 54, + 165, 69, 149, 87, 87, 111, 2, 157, 217, 0, 28, 16, + 55, 27, 0, 10, 21, 244, 54, 213, 54, 197, 85, 197, + 86, 181, 101, 165, 117, 165, 118, 148, 149, 133, 149, 133, + 150, 116, 181, 101, 182, 85, 197, 69, 213, 69, 214, 52, + 245, 37, 245, 37, 246, 20, 240, 42, 240, 42, 240, 56, + 240, 72, 240, 86, 0, 31, 112, 86, 38, 0, 14, 36, + 181, 180, 53, 151, 149, 53, 151, 148, 69, 151, 148, 84, + 137, 132, 85, 121, 117, 85, 116, 20, 116, 116, 115, 36, + 116, 117, 84, 37, 100, 117, 84, 37, 84, 133, 84, 52, + 84, 148, 68, 68, 84, 149, 52, 69, 53, 149, 52, 84, + 52, 180, 52, 84, 52, 181, 20, 101, 36, 181, 20, 101, + 21, 181, 20, 116, 20, 212, 19, 132, 20, 216, 137, 216, + 151, 232, 151, 246, 167, 246, 181, 0, 44, 54, 26, 0, + 9, 117, 165, 102, 134, 118, 117, 150, 86, 150, 70, 182, + 53, 214, 21, 251, 250, 240, 40, 240, 70, 240, 101, 240, + 87, 240, 57, 240, 26, 240, 21, 21, 229, 38, 198, 54, + 166, 86, 149, 102, 133, 134, 102, 150, 70, 182, 53, 198, + 0, 29, 80, 53, 26, 0, 9, 101, 228, 54, 197, 55, + 166, 70, 150, 102, 133, 134, 101, 151, 70, 166, 54, 198, + 37, 221, 235, 240, 25, 240, 55, 240, 71, 240, 85, 240, + 101, 240, 101, 240, 101, 240, 101, 240, 101, 240, 101, 240, + 101, 240, 101, 240, 101, 0, 30, 96, 56, 23, 0, 8, + 111, 4, 79, 4, 79, 4, 240, 22, 240, 22, 240, 38, + 240, 22, 240, 22, 240, 22, 240, 37, 240, 38, 240, 22, + 240, 22, 240, 37, 240, 38, 240, 22, 240, 22, 240, 37, + 240, 38, 240, 22, 240, 31, 5, 63, 5, 63, 5, 63, + 5, 0, 26, 32, 39, 12, 8, 73, 56, 69, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 120, 73, 56, 64, 23, 16, 0, 6, 35, + 83, 67, 83, 83, 83, 69, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 0, 50, 48, 39, 12, 24, 57, 72, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 72, 57, 72, 48, 14, 15, 0, + 6, 5, 166, 136, 100, 36, 67, 84, 0, 52, 112, 10, + 8, 240, 149, 53, 53, 53, 0, 29, 48, 14, 8, 240, + 179, 67, 83, 69, 53, 53, 53, 53, 0, 25, 48, 33, + 19, 0, 26, 89, 140, 115, 85, 98, 117, 229, 229, 154, + 102, 37, 69, 85, 53, 101, 53, 101, 53, 101, 54, 70, + 79, 88, 21, 101, 53, 0, 21, 96, 46, 20, 0, 7, + 69, 245, 245, 245, 245, 245, 245, 245, 245, 53, 117, 25, + 95, 1, 70, 70, 69, 102, 53, 117, 53, 117, 53, 117, + 53, 117, 53, 117, 53, 117, 53, 102, 54, 70, 79, 85, + 24, 101, 37, 0, 23, 64, 26, 18, 0, 25, 55, 155, + 109, 69, 98, 84, 129, 69, 213, 213, 213, 213, 213, 229, + 114, 70, 68, 93, 107, 151, 0, 21, 46, 20, 0, 9, + 5, 245, 245, 245, 245, 245, 245, 245, 118, 37, 104, 21, + 95, 70, 70, 69, 101, 53, 117, 53, 117, 53, 117, 53, + 117, 53, 117, 53, 117, 54, 101, 70, 70, 79, 1, 89, + 21, 118, 37, 0, 22, 112, 31, 19, 0, 26, 103, 171, + 125, 86, 68, 85, 100, 53, 116, 53, 116, 63, 1, 63, + 1, 53, 229, 245, 145, 70, 84, 94, 108, 151, 0, 22, + 32, 32, 16, 0, 6, 102, 137, 106, 85, 66, 85, 181, + 181, 181, 154, 106, 106, 133, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 0, 19, 16, 45, 21, 0, + 29, 70, 67, 111, 95, 1, 69, 68, 133, 84, 117, 84, + 117, 84, 118, 53, 140, 170, 162, 23, 178, 240, 76, 158, + 142, 95, 2, 68, 133, 52, 164, 53, 148, 69, 117, 79, + 1, 110, 169, 0, 6, 16, 47, 19, 0, 7, 21, 229, + 229, 229, 229, 229, 229, 229, 229, 54, 85, 40, 69, 26, + 55, 54, 54, 85, 53, 101, 53, 101, 53, 101, 53, 101, + 53, 101, 53, 101, 53, 101, 53, 101, 53, 101, 53, 101, + 53, 101, 0, 21, 96, 28, 8, 240, 149, 53, 53, 53, + 53, 240, 197, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 0, 9, 48, 38, 14, 0, + 6, 5, 149, 134, 149, 149, 0, 6, 53, 149, 149, 149, + 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, + 149, 149, 149, 65, 69, 73, 74, 102, 240, 240, 64, 43, + 18, 0, 6, 100, 228, 228, 228, 228, 228, 228, 228, 228, + 85, 68, 70, 68, 54, 84, 38, 100, 22, 122, 137, 153, + 154, 133, 21, 116, 53, 100, 53, 100, 69, 84, 85, 68, + 101, 52, 101, 0, 20, 80, 30, 8, 240, 149, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 0, 9, 48, + 55, 30, 0, 41, 37, 54, 86, 85, 25, 41, 71, 56, + 54, 54, 86, 85, 53, 101, 101, 53, 101, 101, 53, 101, + 101, 53, 101, 101, 53, 101, 101, 53, 101, 101, 53, 101, + 101, 53, 101, 101, 53, 101, 101, 53, 101, 101, 53, 101, + 101, 53, 101, 101, 0, 34, 16, 39, 19, 0, 26, 21, + 54, 85, 40, 69, 26, 55, 54, 54, 85, 53, 101, 53, + 101, 53, 101, 53, 101, 53, 101, 53, 101, 53, 101, 53, + 101, 53, 101, 53, 101, 53, 101, 0, 21, 96, 33, 20, + 0, 28, 23, 187, 141, 101, 85, 84, 101, 69, 117, 53, + 117, 53, 117, 53, 117, 53, 117, 53, 117, 54, 101, 69, + 85, 109, 139, 183, 0, 23, 64, 45, 20, 0, 27, 69, + 53, 117, 25, 95, 1, 70, 70, 69, 102, 53, 117, 53, + 117, 53, 117, 53, 117, 53, 117, 53, 117, 53, 102, 54, + 70, 79, 85, 24, 101, 37, 133, 245, 245, 245, 245, 245, + 245, 0, 6, 112, 44, 20, 0, 28, 6, 37, 104, 21, + 95, 70, 70, 69, 101, 53, 117, 53, 117, 53, 117, 53, + 117, 53, 117, 53, 117, 69, 101, 70, 70, 95, 89, 21, + 118, 37, 245, 245, 245, 245, 245, 245, 245, 240, 240, 208, + 26, 14, 0, 19, 37, 51, 53, 21, 53, 21, 56, 102, + 134, 133, 149, 149, 149, 149, 149, 149, 149, 149, 149, 0, + 16, 112, 27, 16, 0, 22, 56, 107, 68, 83, 68, 113, + 68, 199, 169, 123, 121, 182, 196, 50, 116, 52, 84, 60, + 91, 119, 0, 18, 96, 29, 15, 0, 11, 69, 165, 165, + 165, 165, 140, 60, 59, 101, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 50, 90, 105, 117, 0, 17, 80, 39, 19, + 0, 26, 21, 101, 53, 101, 53, 101, 53, 101, 53, 101, + 53, 101, 53, 101, 53, 101, 53, 101, 53, 101, 53, 101, + 53, 101, 53, 86, 53, 71, 73, 21, 87, 37, 0, 21, + 96, 34, 19, 0, 26, 20, 132, 53, 116, 53, 101, 68, + 100, 85, 84, 85, 69, 100, 68, 117, 52, 117, 37, 132, + 36, 149, 20, 154, 168, 184, 184, 198, 0, 22, 48, 55, + 28, 0, 38, 68, 115, 116, 52, 101, 100, 53, 85, 85, + 68, 85, 84, 84, 70, 84, 85, 55, 68, 100, 55, 52, + 116, 50, 20, 52, 117, 19, 36, 36, 117, 19, 36, 21, + 132, 19, 36, 20, 151, 52, 20, 151, 72, 166, 71, 181, + 87, 181, 102, 0, 32, 48, 32, 19, 0, 26, 21, 100, + 69, 85, 85, 68, 117, 36, 154, 168, 198, 228, 230, 214, + 200, 164, 36, 132, 53, 101, 69, 69, 101, 52, 132, 0, + 21, 96, 40, 18, 0, 24, 100, 116, 52, 116, 68, 85, + 68, 84, 85, 68, 100, 53, 101, 36, 132, 36, 132, 35, + 168, 168, 182, 198, 198, 212, 228, 228, 227, 228, 145, 68, + 152, 167, 181, 0, 6, 16, 23, 17, 0, 23, 77, 77, + 77, 181, 196, 196, 197, 181, 181, 181, 196, 196, 197, 190, + 62, 62, 0, 19, 64, 13, 22, 0, 41, 47, 4, 63, + 4, 63, 4, 0, 49, 112, 16, 42, 0, 78, 111, 15, + 9, 63, 15, 9, 63, 15, 9, 0, 94, 112, 17, 15, + 0, 5, 101, 21, 68, 36, 68, 52, 67, 67, 83, 51, + 0, 53, 32, 16, 16, 0, 6, 36, 67, 71, 35, 61, + 51, 39, 67, 68, 0, 56, 80, +}; + +//***************************************************************************** +// +// The font definition for the 36 point Cmss bold font. +// +//***************************************************************************** +const tFont g_sFontCmss36b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 38, + + // + // The height of the font. + // + 36, + + // + // The baseline of the font. + // + 27, + + // + // The offset to each character in the font. + // + { + 0, 4, 33, 56, 147, 195, 284, 349, + 363, 402, 440, 474, 531, 547, 557, 569, + 608, 657, 688, 725, 760, 809, 846, 891, + 924, 970, 1015, 1034, 1057, 1087, 1108, 1142, + 1175, 1236, 1290, 1342, 1393, 1448, 1503, 1538, + 1590, 1645, 1675, 1708, 1761, 1792, 1878, 1947, + 2000, 2052, 2114, 2167, 2209, 2263, 2316, 2371, + 2457, 2511, 2564, 2620, 2659, 2682, 2721, 2735, + 2745, 2759, 2792, 2838, 2864, 2910, 2941, 2973, + 3018, 3065, 3093, 3131, 3174, 3204, 3259, 3298, + 3331, 3376, 3420, 3446, 3473, 3502, 3541, 3575, + 3630, 3662, 3702, 3725, 3738, 3754, 3771, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss36bData +}; diff --git a/grlib/fonts/fontcmss36i.c b/grlib/fonts/fontcmss36i.c new file mode 100644 index 0000000..6db5e53 --- /dev/null +++ b/grlib/fonts/fontcmss36i.c @@ -0,0 +1,428 @@ +//***************************************************************************** +// +// fontcmss36i.c - Font definition for the 36pt Cmss italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 36 point +// Bold: no +// Italic: yes +// Memory usage: 4056 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 36 point Cmss italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss36iData[3855] = +{ + 5, 14, 0, 61, 32, 29, 11, 240, 195, 131, 130, 131, + 131, 131, 130, 146, 131, 131, 131, 130, 146, 131, 131, 130, + 146, 146, 240, 240, 163, 131, 131, 0, 13, 48, 20, 13, + 240, 195, 51, 67, 51, 67, 51, 66, 66, 82, 66, 81, + 81, 82, 66, 0, 42, 112, 95, 28, 0, 8, 113, 113, + 240, 65, 97, 240, 65, 113, 240, 65, 98, 240, 50, 97, + 240, 65, 98, 240, 50, 97, 240, 65, 98, 240, 50, 97, + 240, 65, 113, 240, 50, 97, 240, 65, 113, 175, 9, 193, + 113, 240, 50, 97, 240, 65, 113, 240, 65, 98, 240, 49, + 113, 207, 9, 161, 113, 240, 65, 98, 240, 50, 97, 240, + 65, 98, 240, 50, 97, 240, 65, 98, 240, 50, 97, 240, + 65, 98, 240, 50, 97, 240, 65, 113, 240, 50, 97, 240, + 65, 113, 0, 9, 32, 54, 20, 178, 240, 50, 248, 186, + 132, 18, 35, 131, 34, 65, 115, 50, 179, 51, 179, 50, + 195, 50, 196, 34, 200, 215, 232, 231, 216, 194, 36, 194, + 51, 194, 51, 194, 51, 179, 50, 194, 51, 97, 82, 35, + 115, 50, 19, 139, 184, 242, 240, 50, 0, 19, 16, 82, + 25, 83, 209, 102, 177, 99, 35, 146, 98, 51, 130, 99, + 51, 129, 115, 51, 113, 115, 67, 98, 115, 67, 82, 131, + 51, 97, 147, 51, 81, 163, 50, 81, 179, 35, 66, 198, + 66, 228, 81, 240, 129, 84, 226, 70, 194, 66, 36, 177, + 67, 51, 161, 67, 67, 145, 83, 67, 130, 68, 67, 114, + 83, 83, 113, 99, 67, 113, 115, 67, 98, 115, 51, 98, + 131, 50, 113, 166, 113, 196, 0, 22, 112, 68, 26, 0, + 7, 116, 240, 102, 240, 67, 35, 240, 35, 51, 240, 35, + 51, 240, 34, 67, 240, 19, 51, 240, 35, 51, 240, 35, + 35, 240, 51, 19, 240, 70, 240, 84, 147, 149, 146, 150, + 131, 131, 19, 130, 115, 52, 98, 115, 83, 82, 131, 83, + 66, 131, 115, 35, 131, 118, 163, 132, 180, 102, 187, 25, + 118, 102, 0, 29, 112, 12, 7, 243, 67, 67, 66, 82, + 81, 82, 0, 23, 48, 38, 16, 178, 195, 195, 195, 210, + 211, 195, 210, 211, 210, 211, 211, 195, 211, 211, 195, 211, + 211, 211, 196, 195, 211, 211, 211, 211, 211, 211, 211, 211, + 226, 227, 211, 226, 227, 226, 176, 38, 16, 130, 227, 226, + 227, 211, 226, 227, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 195, 211, 211, 211, 195, 211, 211, 195, 211, 210, 211, + 210, 211, 210, 210, 211, 195, 195, 194, 224, 32, 17, 130, + 227, 226, 162, 50, 50, 68, 34, 20, 84, 17, 20, 135, + 180, 183, 132, 17, 20, 84, 18, 36, 66, 50, 50, 162, + 227, 226, 0, 43, 112, 49, 25, 0, 20, 49, 240, 130, + 240, 129, 240, 145, 240, 145, 240, 145, 240, 130, 240, 129, + 240, 145, 240, 145, 240, 145, 223, 7, 209, 240, 145, 240, + 145, 240, 130, 240, 130, 240, 129, 240, 145, 240, 145, 240, + 130, 240, 129, 0, 23, 112, 14, 7, 0, 20, 35, 67, + 66, 82, 82, 81, 82, 240, 240, 160, 9, 12, 0, 25, + 73, 57, 0, 24, 48, 10, 6, 0, 17, 35, 51, 51, + 0, 7, 16, 74, 23, 240, 65, 240, 98, 240, 97, 240, + 98, 240, 97, 240, 97, 240, 98, 240, 97, 240, 98, 240, + 97, 240, 98, 240, 97, 240, 98, 240, 97, 240, 97, 240, + 98, 240, 97, 240, 98, 240, 97, 240, 98, 240, 97, 240, + 97, 240, 113, 240, 97, 240, 98, 240, 97, 240, 98, 240, + 97, 240, 98, 240, 97, 240, 97, 240, 113, 240, 97, 240, + 98, 240, 97, 240, 112, 49, 19, 0, 8, 21, 201, 147, + 67, 131, 99, 99, 115, 99, 115, 83, 131, 83, 131, 82, + 147, 67, 147, 67, 131, 83, 131, 83, 131, 67, 147, 67, + 131, 83, 131, 83, 131, 83, 115, 99, 115, 100, 83, 131, + 67, 153, 197, 0, 22, 96, 30, 15, 0, 7, 1, 195, + 119, 135, 195, 195, 195, 194, 195, 195, 195, 194, 195, 195, + 195, 195, 194, 195, 195, 195, 194, 140, 60, 0, 17, 32, + 50, 20, 0, 8, 70, 216, 178, 68, 146, 100, 114, 131, + 113, 147, 113, 147, 240, 35, 240, 19, 240, 35, 240, 19, + 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 18, + 240, 19, 240, 19, 240, 19, 240, 18, 240, 46, 109, 0, + 23, 48, 46, 20, 0, 8, 85, 217, 148, 67, 131, 115, + 129, 131, 240, 34, 240, 35, 240, 35, 240, 19, 244, 213, + 231, 240, 51, 240, 51, 240, 35, 240, 35, 240, 35, 240, + 35, 97, 147, 99, 115, 131, 83, 169, 213, 0, 23, 112, + 41, 18, 0, 8, 20, 228, 212, 210, 18, 198, 179, 19, + 178, 35, 163, 34, 163, 50, 147, 51, 147, 51, 131, 67, + 115, 82, 115, 83, 100, 83, 111, 63, 194, 243, 243, 243, + 242, 243, 0, 21, 32, 47, 20, 0, 8, 43, 140, 131, + 240, 35, 240, 34, 240, 50, 240, 35, 240, 35, 240, 34, + 36, 202, 149, 51, 147, 99, 130, 115, 240, 35, 240, 35, + 240, 35, 240, 20, 240, 19, 113, 147, 99, 115, 131, 68, + 153, 213, 0, 24, 45, 18, 0, 7, 118, 168, 147, 81, + 131, 227, 227, 227, 243, 37, 116, 23, 101, 67, 100, 99, + 83, 115, 68, 115, 67, 131, 67, 131, 67, 131, 67, 115, + 83, 115, 83, 99, 100, 82, 131, 67, 136, 196, 0, 21, + 80, 30, 18, 0, 6, 126, 78, 242, 242, 243, 227, 227, + 227, 242, 243, 227, 242, 243, 242, 243, 242, 243, 243, 227, + 243, 242, 243, 243, 0, 22, 16, 47, 19, 0, 8, 21, + 201, 147, 67, 131, 99, 114, 115, 99, 115, 98, 131, 98, + 130, 115, 98, 147, 66, 183, 199, 163, 67, 131, 99, 99, + 115, 98, 131, 83, 131, 83, 131, 83, 115, 99, 99, 131, + 68, 137, 197, 0, 22, 96, 49, 20, 0, 8, 85, 217, + 163, 67, 147, 99, 115, 115, 99, 131, 99, 131, 98, 147, + 83, 147, 83, 147, 83, 132, 83, 131, 99, 116, 100, 70, + 120, 19, 149, 51, 240, 19, 240, 35, 240, 19, 240, 19, + 146, 68, 153, 213, 0, 24, 16, 15, 9, 0, 12, 99, + 99, 99, 0, 10, 67, 99, 99, 0, 10, 112, 19, 10, + 0, 14, 35, 115, 115, 0, 11, 99, 115, 115, 129, 130, + 129, 130, 0, 7, 32, 30, 11, 0, 11, 83, 131, 131, + 240, 240, 162, 146, 146, 131, 131, 130, 146, 146, 131, 131, + 130, 146, 131, 131, 131, 130, 146, 131, 131, 240, 240, 12, + 26, 0, 45, 95, 7, 0, 16, 95, 7, 0, 46, 32, + 15, 0, 16, 18, 195, 195, 0, 7, 18, 195, 194, 210, + 195, 194, 195, 194, 195, 179, 179, 179, 195, 179, 195, 195, + 196, 68, 74, 102, 240, 240, 112, 31, 15, 240, 240, 55, + 106, 67, 84, 195, 195, 195, 179, 180, 164, 164, 163, 194, + 195, 194, 194, 210, 210, 195, 0, 7, 3, 195, 195, 0, + 18, 48, 64, 23, 0, 7, 22, 249, 196, 83, 163, 115, + 147, 68, 19, 115, 58, 99, 51, 53, 83, 51, 84, 83, + 51, 84, 67, 51, 99, 83, 51, 99, 82, 51, 115, 67, + 51, 115, 67, 51, 114, 83, 51, 99, 83, 51, 99, 83, + 52, 67, 99, 67, 51, 131, 71, 147, 84, 195, 240, 85, + 99, 187, 230, 0, 27, 32, 55, 23, 0, 7, 52, 240, + 68, 240, 53, 240, 50, 18, 240, 34, 34, 240, 34, 35, + 242, 51, 227, 51, 226, 67, 211, 67, 210, 83, 195, 83, + 194, 100, 163, 115, 147, 131, 158, 143, 130, 163, 115, 163, + 114, 179, 99, 195, 67, 211, 66, 227, 51, 227, 0, 26, + 32, 49, 24, 0, 6, 92, 206, 163, 117, 147, 147, 131, + 179, 115, 179, 115, 163, 131, 163, 130, 163, 131, 116, 172, + 205, 178, 132, 162, 163, 131, 164, 115, 179, 115, 179, 114, + 195, 99, 179, 115, 179, 115, 163, 131, 132, 158, 156, 0, + 28, 64, 51, 23, 0, 7, 8, 220, 164, 83, 148, 145, + 132, 240, 67, 240, 67, 240, 67, 240, 83, 240, 67, 240, + 83, 240, 67, 240, 83, 240, 83, 240, 83, 240, 83, 240, + 83, 240, 83, 240, 99, 240, 83, 240, 99, 161, 149, 99, + 187, 230, 0, 27, 32, 51, 25, 0, 6, 124, 222, 179, + 117, 162, 164, 131, 179, 131, 179, 131, 195, 115, 195, 99, + 211, 99, 211, 99, 211, 99, 211, 98, 227, 83, 211, 99, + 211, 99, 211, 99, 195, 114, 195, 115, 195, 115, 179, 131, + 148, 147, 117, 158, 188, 0, 29, 96, 51, 23, 0, 6, + 63, 143, 131, 240, 82, 240, 83, 240, 83, 240, 83, 240, + 83, 240, 67, 240, 83, 240, 94, 158, 146, 240, 83, 240, + 83, 240, 83, 240, 83, 240, 82, 240, 83, 240, 83, 240, + 83, 240, 83, 240, 79, 1, 127, 1, 0, 26, 96, 50, + 23, 0, 6, 63, 142, 147, 240, 82, 240, 83, 240, 83, + 240, 83, 240, 83, 240, 67, 240, 83, 240, 83, 240, 93, + 173, 147, 240, 83, 240, 83, 240, 83, 240, 82, 240, 83, + 240, 83, 240, 83, 240, 83, 240, 67, 240, 83, 0, 28, + 48, 51, 23, 0, 7, 23, 220, 164, 84, 132, 145, 132, + 240, 67, 240, 67, 240, 67, 240, 83, 240, 67, 240, 83, + 240, 82, 240, 83, 240, 83, 240, 83, 135, 83, 119, 99, + 179, 99, 179, 115, 163, 115, 162, 147, 131, 149, 99, 172, + 215, 0, 27, 32, 55, 25, 0, 6, 115, 179, 131, 179, + 131, 179, 130, 195, 115, 179, 131, 179, 131, 179, 131, 179, + 115, 195, 115, 179, 143, 2, 143, 2, 130, 195, 115, 180, + 115, 179, 131, 179, 131, 179, 130, 195, 115, 179, 131, 179, + 131, 179, 131, 179, 115, 195, 115, 179, 0, 29, 16, 30, + 11, 240, 195, 131, 130, 131, 131, 131, 131, 130, 131, 131, + 131, 131, 115, 131, 131, 131, 130, 131, 131, 131, 131, 130, + 131, 131, 0, 13, 48, 50, 19, 0, 6, 51, 240, 19, + 240, 19, 243, 240, 19, 240, 19, 240, 19, 240, 18, 240, + 19, 240, 19, 240, 19, 240, 19, 243, 240, 19, 240, 19, + 240, 19, 240, 18, 240, 19, 240, 19, 240, 19, 113, 115, + 130, 84, 138, 182, 0, 22, 96, 58, 26, 0, 7, 19, + 180, 131, 164, 147, 147, 178, 147, 179, 131, 195, 115, 211, + 84, 227, 68, 227, 68, 243, 51, 240, 35, 37, 240, 19, + 22, 240, 22, 20, 230, 51, 229, 68, 212, 99, 211, 115, + 210, 147, 179, 147, 179, 148, 163, 163, 163, 164, 131, 195, + 131, 195, 0, 30, 32, 31, 17, 240, 240, 147, 227, 227, + 227, 211, 227, 227, 227, 211, 227, 227, 227, 227, 211, 227, + 227, 227, 227, 211, 227, 227, 227, 222, 62, 0, 19, 64, + 91, 31, 0, 8, 53, 228, 133, 213, 133, 197, 146, 18, + 197, 131, 18, 182, 131, 18, 178, 19, 131, 18, 163, 19, + 131, 19, 131, 34, 146, 35, 130, 35, 131, 35, 115, 35, + 131, 35, 114, 51, 131, 50, 99, 50, 146, 66, 98, 51, + 131, 66, 83, 51, 131, 67, 66, 67, 131, 67, 50, 83, + 131, 67, 35, 82, 146, 83, 34, 83, 131, 83, 19, 83, + 131, 98, 18, 99, 131, 101, 98, 146, 116, 99, 131, 115, + 115, 131, 240, 35, 0, 35, 112, 71, 25, 0, 6, 117, + 162, 133, 147, 133, 147, 130, 19, 131, 115, 19, 130, 131, + 19, 130, 131, 19, 115, 130, 51, 99, 115, 51, 99, 115, + 51, 98, 131, 51, 83, 131, 67, 67, 130, 83, 67, 115, + 83, 67, 115, 83, 66, 131, 99, 35, 130, 115, 35, 130, + 115, 35, 115, 115, 34, 131, 134, 131, 134, 130, 150, 115, + 150, 115, 164, 0, 29, 16, 54, 25, 0, 7, 86, 240, + 27, 212, 84, 179, 132, 146, 179, 130, 195, 115, 211, 83, + 227, 82, 243, 67, 243, 67, 243, 66, 240, 19, 51, 244, + 51, 243, 67, 243, 67, 227, 83, 227, 83, 211, 115, 179, + 131, 164, 132, 132, 164, 84, 219, 240, 22, 0, 29, 112, + 50, 23, 0, 6, 59, 205, 162, 132, 131, 148, 115, 163, + 115, 163, 115, 163, 99, 179, 99, 163, 115, 163, 115, 147, + 130, 132, 142, 155, 195, 240, 83, 240, 67, 240, 83, 240, + 83, 240, 83, 240, 83, 240, 67, 240, 83, 240, 83, 0, + 28, 48, 65, 25, 0, 7, 86, 240, 27, 212, 84, 179, + 132, 147, 163, 131, 179, 115, 211, 83, 227, 83, 227, 67, + 243, 67, 243, 67, 243, 51, 240, 19, 51, 243, 67, 243, + 67, 227, 83, 227, 83, 84, 67, 115, 83, 52, 115, 84, + 20, 147, 87, 164, 69, 219, 240, 26, 240, 115, 240, 116, + 240, 115, 240, 116, 0, 16, 80, 51, 23, 0, 6, 59, + 190, 147, 132, 131, 148, 115, 163, 114, 179, 99, 179, 99, + 179, 99, 163, 115, 147, 115, 132, 142, 155, 195, 83, 194, + 99, 179, 115, 163, 115, 163, 130, 163, 131, 146, 147, 131, + 163, 115, 163, 115, 163, 115, 179, 0, 26, 80, 47, 21, + 0, 6, 70, 218, 148, 83, 131, 240, 51, 240, 35, 240, + 51, 240, 51, 240, 52, 240, 37, 240, 39, 248, 247, 240, + 37, 240, 36, 240, 51, 240, 51, 240, 51, 240, 50, 113, + 163, 114, 131, 117, 83, 155, 214, 0, 25, 54, 23, 0, + 5, 111, 5, 63, 5, 179, 240, 83, 240, 83, 240, 83, + 240, 83, 240, 67, 240, 83, 240, 83, 240, 83, 240, 67, + 240, 83, 240, 83, 240, 83, 240, 83, 240, 67, 240, 83, + 240, 83, 240, 83, 240, 83, 240, 67, 240, 83, 240, 83, + 0, 27, 112, 53, 23, 0, 6, 35, 163, 99, 179, 99, + 179, 99, 178, 115, 178, 99, 179, 99, 179, 99, 179, 99, + 178, 115, 163, 99, 179, 99, 179, 99, 178, 115, 178, 99, + 179, 99, 179, 99, 179, 99, 163, 115, 163, 115, 147, 147, + 115, 164, 83, 202, 246, 0, 27, 64, 57, 23, 0, 5, + 99, 242, 51, 227, 51, 226, 67, 211, 67, 195, 99, 179, + 99, 163, 115, 162, 131, 147, 131, 131, 147, 131, 148, 99, + 179, 98, 195, 83, 195, 82, 211, 67, 211, 51, 227, 50, + 240, 19, 19, 240, 19, 18, 240, 38, 240, 37, 240, 52, + 240, 68, 0, 27, 112, 90, 33, 0, 8, 35, 163, 179, + 51, 164, 162, 67, 149, 147, 67, 149, 146, 83, 130, 19, + 131, 83, 130, 19, 130, 99, 115, 19, 115, 99, 114, 35, + 114, 115, 99, 35, 99, 115, 98, 51, 98, 131, 83, 51, + 83, 131, 82, 67, 82, 147, 67, 67, 67, 147, 66, 83, + 66, 179, 35, 83, 51, 179, 34, 99, 50, 195, 34, 114, + 35, 195, 18, 130, 34, 211, 18, 130, 19, 213, 146, 18, + 229, 146, 18, 228, 164, 244, 164, 243, 179, 0, 39, 60, + 27, 0, 7, 52, 195, 147, 179, 164, 147, 195, 131, 212, + 99, 243, 83, 240, 35, 51, 240, 51, 35, 240, 87, 240, + 86, 240, 116, 240, 131, 240, 133, 240, 102, 240, 83, 35, + 240, 51, 51, 240, 35, 68, 243, 99, 243, 100, 211, 131, + 195, 148, 163, 179, 147, 196, 115, 227, 0, 31, 32, 55, + 24, 0, 6, 3, 243, 51, 227, 68, 195, 99, 179, 116, + 147, 147, 131, 164, 99, 195, 99, 195, 83, 212, 51, 243, + 35, 240, 23, 240, 53, 240, 68, 240, 99, 240, 83, 240, + 99, 240, 99, 240, 99, 240, 98, 240, 99, 240, 99, 240, + 99, 240, 99, 0, 29, 16, 56, 25, 0, 6, 127, 2, + 143, 1, 240, 99, 240, 100, 240, 84, 240, 84, 240, 99, + 240, 99, 240, 99, 240, 100, 240, 84, 240, 84, 240, 99, + 240, 99, 240, 99, 240, 99, 240, 100, 240, 84, 240, 99, + 240, 99, 240, 99, 240, 99, 240, 111, 2, 143, 2, 0, + 29, 16, 38, 15, 117, 165, 147, 195, 194, 210, 195, 195, + 195, 194, 210, 195, 195, 195, 194, 210, 195, 195, 194, 210, + 210, 195, 195, 194, 210, 195, 195, 195, 194, 210, 195, 195, + 195, 197, 165, 160, 20, 13, 240, 210, 66, 81, 81, 82, + 66, 82, 66, 82, 66, 67, 51, 67, 51, 0, 42, 96, + 38, 16, 118, 166, 210, 226, 211, 211, 211, 210, 226, 211, + 211, 210, 226, 211, 211, 211, 210, 226, 211, 211, 211, 210, + 226, 211, 211, 210, 226, 226, 211, 211, 210, 226, 211, 166, + 166, 160, 17, 14, 240, 240, 51, 165, 131, 18, 115, 35, + 83, 66, 67, 98, 0, 47, 80, 9, 7, 240, 115, 52, + 51, 0, 25, 112, 13, 7, 240, 18, 81, 82, 82, 82, + 67, 67, 0, 23, 32, 29, 17, 0, 24, 22, 153, 130, + 68, 227, 227, 227, 151, 122, 100, 67, 83, 99, 67, 115, + 67, 99, 84, 68, 92, 102, 35, 0, 19, 96, 47, 18, + 240, 240, 178, 240, 18, 243, 243, 242, 240, 18, 243, 243, + 243, 242, 53, 130, 24, 100, 69, 83, 100, 83, 115, 82, + 131, 67, 131, 67, 131, 67, 130, 82, 131, 82, 130, 83, + 115, 84, 68, 107, 114, 37, 0, 21, 48, 24, 17, 0, + 24, 38, 153, 100, 82, 83, 226, 227, 226, 227, 227, 227, + 227, 228, 228, 67, 122, 134, 0, 20, 16, 53, 20, 0, + 6, 114, 240, 35, 240, 35, 240, 35, 240, 34, 240, 50, + 240, 35, 240, 35, 240, 35, 165, 34, 155, 132, 68, 115, + 115, 100, 114, 115, 130, 114, 131, 99, 131, 99, 131, 99, + 130, 115, 115, 116, 99, 132, 53, 136, 18, 165, 50, 0, + 23, 64, 26, 17, 0, 24, 22, 153, 115, 68, 83, 99, + 67, 115, 77, 62, 51, 227, 227, 227, 228, 228, 82, 121, + 150, 0, 20, 16, 31, 16, 240, 240, 165, 166, 146, 210, + 211, 210, 226, 211, 211, 169, 121, 162, 211, 211, 211, 210, + 226, 211, 211, 210, 226, 226, 211, 211, 0, 19, 80, 44, + 23, 0, 32, 100, 52, 173, 147, 52, 195, 83, 179, 99, + 179, 99, 179, 99, 179, 83, 196, 51, 217, 210, 36, 242, + 240, 106, 220, 174, 131, 132, 115, 163, 115, 163, 115, 147, + 148, 100, 156, 231, 0, 7, 32, 46, 17, 240, 240, 146, + 227, 227, 227, 226, 242, 227, 227, 227, 226, 53, 114, 24, + 85, 52, 83, 99, 83, 99, 82, 115, 67, 114, 83, 99, + 83, 99, 82, 115, 82, 114, 83, 99, 83, 99, 83, 99, + 82, 115, 0, 19, 96, 27, 11, 240, 240, 131, 131, 115, + 0, 7, 99, 131, 131, 130, 131, 131, 131, 130, 131, 131, + 131, 130, 146, 131, 131, 0, 13, 48, 35, 17, 0, 7, + 99, 227, 226, 0, 12, 50, 227, 227, 227, 226, 242, 227, + 227, 227, 226, 242, 227, 227, 226, 242, 242, 227, 227, 226, + 161, 51, 151, 181, 240, 240, 240, 45, 18, 240, 240, 178, + 240, 18, 243, 243, 242, 240, 18, 243, 243, 243, 242, 100, + 98, 83, 115, 67, 131, 51, 147, 20, 162, 20, 168, 168, + 164, 35, 147, 51, 146, 68, 115, 83, 115, 83, 115, 99, + 98, 115, 0, 21, 30, 11, 240, 195, 131, 130, 146, 131, + 131, 131, 130, 131, 131, 131, 130, 146, 131, 131, 131, 130, + 131, 131, 131, 130, 146, 131, 131, 0, 13, 48, 51, 27, + 0, 37, 67, 37, 85, 115, 23, 40, 100, 70, 52, 99, + 99, 99, 99, 99, 99, 83, 114, 115, 83, 99, 114, 99, + 99, 99, 98, 115, 99, 98, 114, 115, 83, 114, 114, 99, + 99, 99, 99, 99, 99, 98, 115, 99, 83, 114, 115, 0, + 31, 37, 17, 0, 23, 98, 53, 99, 24, 85, 52, 83, + 99, 83, 99, 82, 115, 67, 114, 83, 99, 83, 99, 82, + 115, 82, 114, 83, 99, 83, 99, 83, 99, 82, 115, 0, + 19, 96, 33, 19, 0, 27, 5, 201, 132, 68, 99, 116, + 83, 131, 67, 147, 66, 163, 51, 163, 51, 163, 51, 147, + 67, 131, 84, 115, 100, 68, 137, 182, 0, 22, 80, 49, + 20, 0, 28, 18, 53, 162, 24, 133, 53, 115, 100, 115, + 115, 114, 131, 114, 131, 99, 131, 99, 130, 115, 115, 114, + 116, 99, 115, 116, 68, 139, 146, 37, 178, 240, 35, 240, + 35, 240, 35, 240, 34, 240, 50, 240, 35, 0, 7, 16, + 43, 18, 0, 25, 69, 34, 123, 100, 68, 84, 84, 83, + 114, 83, 130, 82, 131, 67, 131, 67, 131, 67, 130, 83, + 115, 84, 99, 100, 53, 104, 18, 133, 50, 243, 243, 243, + 242, 243, 243, 243, 240, 240, 208, 24, 14, 0, 19, 82, + 51, 98, 21, 86, 133, 147, 179, 163, 179, 179, 178, 194, + 179, 179, 179, 178, 0, 17, 32, 23, 16, 0, 22, 102, + 137, 99, 82, 83, 211, 212, 200, 152, 182, 211, 211, 211, + 67, 83, 90, 134, 0, 19, 27, 13, 0, 11, 114, 163, + 163, 162, 138, 58, 83, 163, 162, 178, 163, 163, 163, 162, + 163, 163, 163, 49, 104, 101, 0, 15, 64, 37, 17, 0, + 23, 98, 114, 83, 114, 83, 99, 83, 99, 82, 115, 82, + 114, 83, 99, 83, 99, 83, 99, 82, 115, 67, 99, 83, + 99, 83, 69, 88, 19, 101, 50, 0, 19, 112, 34, 17, + 0, 23, 51, 131, 51, 115, 67, 114, 83, 99, 83, 98, + 114, 83, 114, 67, 131, 51, 131, 35, 147, 34, 163, 19, + 163, 18, 197, 196, 211, 0, 20, 80, 59, 24, 0, 33, + 2, 115, 99, 51, 99, 99, 51, 84, 83, 67, 66, 18, + 83, 67, 66, 18, 67, 83, 51, 18, 66, 99, 50, 34, + 51, 99, 35, 34, 50, 115, 34, 50, 35, 130, 34, 50, + 34, 146, 18, 66, 19, 146, 18, 66, 18, 164, 82, 18, + 164, 84, 179, 100, 0, 28, 32, 35, 20, 0, 28, 3, + 115, 115, 99, 147, 67, 179, 35, 195, 19, 229, 244, 240, + 35, 240, 20, 242, 19, 210, 50, 194, 67, 162, 99, 130, + 115, 100, 131, 0, 23, 16, 51, 21, 0, 29, 51, 131, + 115, 115, 131, 114, 147, 99, 162, 98, 179, 67, 179, 66, + 195, 50, 211, 50, 226, 34, 242, 34, 242, 18, 240, 18, + 18, 240, 20, 240, 50, 240, 66, 240, 50, 240, 51, 240, + 50, 240, 50, 245, 240, 20, 0, 7, 48, 21, 18, 0, + 25, 28, 108, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 237, 92, 0, 21, 11, 20, 0, 40, 15, 2, + 63, 2, 0, 42, 112, 12, 37, 0, 74, 15, 15, 4, + 63, 15, 4, 0, 79, 19, 15, 240, 240, 51, 51, 98, + 51, 99, 50, 99, 51, 98, 66, 99, 50, 0, 51, 64, + 15, 15, 0, 6, 3, 66, 70, 34, 82, 38, 66, 67, + 0, 53, 32, +}; + +//***************************************************************************** +// +// The font definition for the 36 point Cmss italic font. +// +//***************************************************************************** +const tFont g_sFontCmss36i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 33, + + // + // The height of the font. + // + 35, + + // + // The baseline of the font. + // + 26, + + // + // The offset to each character in the font. + // + { + 0, 5, 34, 54, 149, 203, 285, 353, + 365, 403, 441, 473, 522, 536, 545, 555, + 629, 678, 708, 758, 804, 845, 892, 937, + 967, 1014, 1063, 1078, 1097, 1127, 1139, 1171, + 1202, 1266, 1321, 1370, 1421, 1472, 1523, 1573, + 1624, 1679, 1709, 1759, 1817, 1848, 1939, 2010, + 2064, 2114, 2179, 2230, 2277, 2331, 2384, 2441, + 2531, 2591, 2646, 2702, 2740, 2760, 2798, 2815, + 2824, 2837, 2866, 2913, 2937, 2990, 3016, 3047, + 3091, 3137, 3164, 3199, 3244, 3274, 3325, 3362, + 3395, 3444, 3487, 3511, 3534, 3561, 3598, 3632, + 3691, 3726, 3777, 3798, 3809, 3821, 3840, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss36iData +}; diff --git a/grlib/fonts/fontcmss38.c b/grlib/fonts/fontcmss38.c new file mode 100644 index 0000000..54d6d5c --- /dev/null +++ b/grlib/fonts/fontcmss38.c @@ -0,0 +1,434 @@ +//***************************************************************************** +// +// fontcmss38.c - Font definition for the 38pt Cmss font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 38 point +// Bold: no +// Italic: no +// Memory usage: 4132 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 38 point Cmss font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss38Data[3930] = +{ + 5, 15, 0, 69, 48, 29, 6, 195, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 240, 99, 51, 51, 0, 7, 16, 22, 13, + 240, 179, 67, 51, 67, 51, 67, 66, 82, 66, 82, 50, + 82, 66, 82, 66, 82, 0, 44, 48, 101, 28, 0, 8, + 65, 113, 240, 65, 113, 240, 50, 98, 240, 49, 113, 240, + 65, 113, 240, 65, 113, 240, 50, 98, 240, 49, 113, 240, + 65, 113, 240, 65, 113, 240, 50, 98, 240, 50, 98, 240, + 49, 113, 175, 10, 178, 98, 240, 49, 113, 240, 65, 113, + 240, 65, 113, 240, 65, 113, 240, 50, 98, 191, 10, 161, + 113, 240, 50, 98, 240, 50, 98, 240, 49, 113, 240, 65, + 113, 240, 50, 98, 240, 49, 113, 240, 65, 113, 240, 65, + 113, 240, 50, 98, 240, 49, 113, 240, 65, 113, 0, 8, + 112, 54, 17, 98, 242, 229, 169, 123, 84, 18, 50, 83, + 34, 65, 67, 50, 147, 50, 147, 50, 147, 50, 148, 34, + 164, 18, 183, 184, 183, 183, 162, 36, 146, 36, 146, 51, + 146, 51, 146, 51, 146, 51, 49, 82, 35, 67, 50, 20, + 91, 121, 165, 226, 242, 0, 16, 89, 28, 52, 194, 150, + 177, 147, 35, 146, 146, 51, 145, 147, 67, 114, 147, 67, + 113, 163, 67, 98, 163, 67, 97, 179, 67, 82, 179, 67, + 81, 210, 51, 82, 211, 35, 81, 246, 81, 240, 37, 81, + 240, 177, 240, 193, 84, 240, 33, 86, 242, 67, 35, 225, + 83, 35, 210, 67, 67, 193, 83, 67, 178, 83, 67, 177, + 99, 67, 162, 99, 67, 161, 115, 67, 146, 115, 67, 145, + 147, 35, 146, 147, 35, 145, 182, 146, 196, 0, 25, 32, + 73, 27, 0, 7, 100, 240, 119, 240, 67, 35, 240, 66, + 67, 240, 35, 67, 240, 35, 67, 240, 35, 67, 240, 35, + 51, 240, 51, 51, 240, 51, 35, 240, 86, 240, 101, 240, + 116, 163, 164, 163, 149, 162, 132, 19, 131, 116, 35, 130, + 115, 83, 99, 99, 100, 67, 115, 116, 51, 115, 116, 35, + 131, 135, 163, 133, 180, 88, 188, 25, 119, 103, 0, 30, + 96, 13, 6, 195, 51, 51, 66, 66, 50, 66, 66, 0, + 20, 96, 40, 12, 99, 131, 146, 146, 147, 146, 147, 147, + 146, 147, 147, 147, 131, 147, 147, 147, 147, 147, 147, 147, + 147, 147, 147, 147, 147, 163, 147, 147, 147, 163, 147, 162, + 163, 162, 178, 163, 163, 48, 40, 12, 3, 163, 163, 162, + 163, 162, 163, 147, 163, 147, 147, 147, 163, 147, 147, 147, + 147, 147, 147, 147, 147, 147, 147, 147, 147, 131, 147, 147, + 147, 131, 147, 146, 147, 146, 146, 147, 131, 144, 28, 16, + 83, 211, 211, 211, 130, 51, 50, 52, 19, 20, 75, 119, + 165, 153, 84, 19, 20, 51, 35, 35, 131, 211, 211, 211, + 0, 43, 51, 26, 0, 24, 17, 240, 161, 240, 161, 240, + 161, 240, 161, 240, 161, 240, 161, 240, 161, 240, 161, 240, + 161, 240, 161, 239, 8, 225, 240, 161, 240, 161, 240, 161, + 240, 161, 240, 161, 240, 161, 240, 161, 240, 161, 240, 161, + 240, 161, 0, 24, 64, 14, 6, 0, 18, 99, 51, 51, + 66, 66, 50, 66, 66, 240, 208, 9, 12, 0, 28, 73, + 57, 0, 24, 48, 10, 6, 0, 18, 99, 51, 51, 0, + 7, 16, 49, 17, 209, 242, 241, 240, 17, 242, 241, 240, + 17, 242, 241, 242, 242, 241, 242, 241, 240, 17, 242, 241, + 240, 17, 242, 241, 240, 17, 242, 241, 240, 17, 242, 241, + 242, 242, 241, 242, 241, 240, 17, 242, 241, 240, 17, 242, + 241, 240, 16, 51, 18, 0, 9, 85, 185, 132, 52, 115, + 83, 99, 115, 83, 115, 82, 147, 51, 147, 51, 147, 51, + 147, 51, 147, 51, 147, 51, 147, 51, 147, 51, 147, 51, + 147, 51, 147, 51, 147, 67, 115, 83, 115, 99, 84, 100, + 52, 137, 181, 0, 21, 32, 32, 15, 0, 8, 49, 195, + 120, 116, 19, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 139, 75, 0, + 17, 32, 35, 17, 0, 9, 5, 169, 115, 68, 83, 115, + 66, 132, 50, 147, 227, 227, 227, 227, 211, 211, 227, 211, + 210, 226, 226, 226, 226, 226, 226, 238, 62, 62, 0, 19, + 64, 38, 17, 0, 9, 6, 153, 115, 83, 83, 115, 81, + 131, 227, 227, 227, 211, 211, 166, 182, 240, 19, 243, 227, + 243, 227, 227, 227, 49, 163, 50, 131, 68, 83, 121, 165, + 0, 20, 16, 42, 18, 0, 10, 4, 228, 213, 213, 194, + 19, 194, 19, 179, 19, 178, 35, 163, 35, 147, 51, 147, + 51, 131, 67, 131, 67, 115, 83, 115, 83, 99, 99, 111, + 63, 195, 243, 243, 243, 243, 243, 0, 21, 38, 17, 0, + 8, 92, 92, 83, 227, 227, 227, 227, 227, 227, 227, 21, + 139, 101, 51, 99, 99, 83, 115, 227, 227, 227, 227, 227, + 49, 147, 66, 131, 68, 83, 106, 165, 0, 20, 16, 46, + 18, 0, 9, 118, 168, 147, 226, 243, 227, 243, 242, 53, + 115, 25, 86, 52, 84, 115, 68, 115, 67, 147, 51, 147, + 51, 147, 51, 147, 51, 147, 66, 147, 67, 131, 67, 115, + 99, 99, 100, 52, 137, 181, 0, 21, 32, 31, 18, 0, + 9, 15, 63, 63, 242, 242, 243, 242, 243, 227, 242, 243, + 243, 227, 243, 242, 243, 243, 243, 242, 243, 243, 243, 243, + 243, 0, 21, 80, 49, 18, 0, 9, 85, 185, 131, 83, + 99, 115, 82, 146, 82, 147, 66, 146, 82, 146, 83, 115, + 99, 83, 151, 183, 147, 83, 99, 115, 83, 115, 67, 147, + 51, 147, 51, 147, 51, 147, 67, 131, 67, 115, 99, 83, + 137, 181, 0, 21, 32, 46, 18, 0, 9, 85, 185, 132, + 67, 99, 114, 99, 115, 67, 146, 67, 147, 51, 147, 51, + 147, 51, 147, 51, 147, 67, 116, 67, 116, 83, 85, 89, + 19, 117, 51, 242, 243, 243, 227, 242, 130, 67, 137, 182, + 0, 21, 48, 15, 6, 0, 9, 3, 51, 51, 0, 7, + 115, 51, 51, 0, 7, 16, 19, 6, 0, 9, 3, 51, + 51, 0, 7, 115, 51, 51, 66, 66, 50, 66, 66, 240, + 208, 28, 6, 0, 6, 99, 51, 51, 240, 195, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 240, 13, 26, 0, 48, 111, 8, 0, + 19, 127, 8, 0, 45, 112, 33, 15, 0, 17, 51, 195, + 195, 0, 9, 3, 195, 195, 195, 195, 195, 179, 195, 179, + 180, 179, 179, 195, 195, 195, 195, 129, 67, 83, 75, 102, + 240, 240, 96, 34, 16, 240, 240, 71, 123, 83, 84, 65, + 132, 211, 211, 211, 211, 195, 196, 180, 180, 180, 195, 211, + 195, 211, 211, 211, 211, 0, 7, 83, 211, 211, 0, 19, + 16, 67, 22, 0, 6, 70, 234, 180, 68, 147, 115, 131, + 147, 99, 88, 99, 74, 67, 67, 53, 67, 51, 84, 51, + 67, 84, 51, 51, 115, 51, 51, 115, 51, 51, 115, 51, + 51, 115, 51, 51, 115, 51, 51, 115, 52, 51, 83, 83, + 51, 83, 83, 67, 51, 115, 71, 131, 85, 163, 240, 83, + 240, 84, 84, 171, 214, 0, 25, 96, 61, 24, 0, 7, + 19, 240, 85, 240, 69, 240, 66, 18, 240, 51, 19, 240, + 35, 19, 240, 34, 35, 240, 19, 51, 243, 51, 242, 68, + 211, 83, 211, 83, 210, 100, 179, 115, 179, 115, 178, 132, + 159, 159, 146, 179, 115, 179, 115, 179, 114, 211, 83, 211, + 83, 211, 67, 243, 51, 243, 0, 27, 48, 53, 21, 240, + 240, 204, 158, 115, 117, 99, 148, 83, 164, 67, 179, 67, + 179, 67, 179, 67, 179, 67, 163, 83, 147, 99, 116, 124, + 157, 131, 132, 99, 163, 83, 179, 67, 195, 51, 195, 51, + 195, 51, 195, 51, 179, 67, 164, 67, 133, 95, 108, 0, + 24, 96, 55, 21, 0, 6, 40, 188, 132, 99, 115, 240, + 35, 240, 35, 240, 51, 240, 35, 240, 51, 240, 35, 240, + 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, + 52, 240, 51, 240, 51, 240, 67, 240, 51, 240, 67, 240, + 67, 161, 132, 99, 156, 183, 0, 24, 48, 55, 23, 0, + 5, 108, 190, 147, 133, 115, 164, 99, 179, 99, 195, 83, + 196, 67, 211, 67, 211, 67, 227, 51, 227, 51, 227, 51, + 227, 51, 227, 51, 227, 51, 227, 51, 227, 51, 211, 67, + 211, 67, 211, 67, 195, 83, 179, 99, 164, 99, 133, 126, + 156, 0, 27, 32, 57, 19, 240, 240, 143, 1, 63, 1, + 63, 1, 51, 240, 19, 240, 19, 240, 19, 240, 19, 240, + 19, 240, 19, 240, 19, 240, 19, 240, 31, 79, 67, 240, + 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, + 19, 240, 19, 240, 31, 1, 63, 1, 63, 1, 0, 21, + 96, 33, 18, 240, 240, 111, 63, 63, 51, 243, 243, 243, + 243, 243, 243, 243, 243, 254, 78, 67, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 0, 22, 16, 55, 22, + 0, 6, 72, 205, 132, 100, 115, 162, 99, 240, 51, 240, + 67, 240, 51, 240, 67, 240, 51, 240, 67, 240, 67, 240, + 67, 240, 67, 240, 67, 240, 67, 136, 52, 120, 67, 195, + 67, 195, 83, 179, 83, 179, 99, 163, 115, 147, 132, 100, + 157, 184, 0, 25, 64, 58, 21, 240, 240, 195, 195, 51, + 195, 51, 195, 51, 195, 51, 195, 51, 195, 51, 195, 51, + 195, 51, 195, 51, 195, 51, 195, 51, 195, 63, 3, 63, + 3, 51, 195, 51, 195, 51, 195, 51, 195, 51, 195, 51, + 195, 51, 195, 51, 195, 51, 195, 51, 195, 51, 195, 51, + 195, 0, 24, 31, 6, 195, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 0, 7, 16, 35, 15, + 240, 240, 147, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 49, 116, 51, 68, 74, 119, 0, 17, 80, 59, 22, 240, + 240, 227, 195, 67, 179, 83, 164, 83, 148, 99, 132, 115, + 116, 131, 100, 147, 99, 163, 83, 179, 67, 195, 52, 195, + 37, 195, 23, 183, 20, 166, 51, 165, 68, 148, 99, 147, + 131, 131, 132, 115, 147, 115, 148, 99, 164, 83, 179, 83, + 180, 67, 195, 67, 211, 0, 25, 16, 33, 17, 240, 240, + 67, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 238, 62, 0, 19, 64, 96, 27, 0, 6, 101, 229, 53, + 229, 53, 229, 54, 198, 54, 198, 51, 18, 194, 19, 51, + 19, 163, 19, 51, 19, 163, 19, 51, 34, 162, 35, 51, + 35, 131, 35, 51, 35, 131, 35, 51, 51, 114, 51, 51, + 51, 99, 51, 51, 51, 99, 51, 51, 67, 82, 67, 51, + 67, 67, 67, 51, 67, 66, 83, 51, 83, 50, 83, 51, + 83, 35, 83, 51, 83, 34, 99, 51, 99, 18, 99, 51, + 102, 99, 51, 116, 115, 51, 116, 115, 51, 116, 115, 51, + 240, 51, 0, 30, 96, 76, 21, 240, 240, 197, 163, 53, + 163, 54, 147, 54, 147, 51, 19, 131, 51, 19, 131, 51, + 35, 115, 51, 35, 115, 51, 36, 99, 51, 51, 99, 51, + 51, 99, 51, 67, 83, 51, 67, 83, 51, 83, 67, 51, + 83, 67, 51, 99, 51, 51, 99, 51, 51, 100, 35, 51, + 115, 35, 51, 115, 35, 51, 131, 19, 51, 131, 19, 51, + 150, 51, 150, 51, 165, 51, 165, 0, 24, 64, 25, 0, + 7, 38, 240, 42, 227, 85, 179, 132, 147, 163, 131, 195, + 114, 227, 83, 227, 83, 227, 67, 240, 19, 51, 240, 19, + 51, 240, 19, 51, 240, 19, 51, 240, 19, 51, 240, 19, + 51, 240, 19, 52, 243, 67, 227, 83, 227, 84, 196, 99, + 195, 131, 163, 148, 132, 165, 68, 234, 240, 38, 0, 29, + 64, 54, 20, 240, 240, 172, 142, 99, 132, 83, 148, 67, + 163, 67, 179, 51, 179, 51, 179, 51, 179, 51, 179, 51, + 163, 67, 148, 67, 132, 94, 108, 131, 240, 35, 240, 35, + 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, + 240, 35, 240, 35, 0, 24, 80, 77, 25, 0, 7, 38, + 240, 42, 228, 69, 179, 132, 147, 163, 131, 195, 115, 211, + 83, 227, 83, 227, 67, 240, 19, 51, 240, 19, 51, 240, + 19, 51, 240, 19, 51, 240, 19, 51, 240, 19, 51, 240, + 19, 51, 240, 19, 67, 227, 83, 227, 84, 83, 83, 99, + 99, 51, 131, 84, 19, 148, 87, 165, 69, 219, 240, 26, + 240, 115, 240, 116, 240, 115, 240, 131, 240, 116, 0, 13, + 55, 22, 240, 240, 236, 175, 115, 133, 99, 164, 83, 179, + 83, 195, 67, 195, 67, 195, 67, 195, 67, 179, 83, 164, + 83, 148, 111, 125, 147, 100, 147, 115, 147, 116, 131, 131, + 131, 132, 115, 147, 115, 163, 99, 163, 99, 179, 83, 180, + 67, 195, 67, 196, 0, 25, 16, 48, 19, 240, 240, 215, + 172, 100, 84, 83, 145, 83, 240, 19, 240, 19, 240, 19, + 240, 20, 240, 20, 247, 217, 201, 215, 245, 240, 19, 240, + 20, 240, 19, 240, 19, 240, 19, 240, 19, 50, 163, 68, + 101, 93, 123, 182, 0, 22, 48, 58, 24, 0, 6, 15, + 6, 63, 6, 63, 6, 195, 240, 99, 240, 99, 240, 99, + 240, 99, 240, 99, 240, 99, 240, 99, 240, 99, 240, 99, + 240, 99, 240, 99, 240, 99, 240, 99, 240, 99, 240, 99, + 240, 99, 240, 99, 240, 99, 240, 99, 240, 99, 240, 99, + 240, 99, 0, 28, 64, 57, 21, 240, 240, 195, 195, 51, + 195, 51, 195, 51, 195, 51, 195, 51, 195, 51, 195, 51, + 195, 51, 195, 51, 195, 51, 195, 51, 195, 51, 195, 51, + 195, 51, 195, 51, 195, 51, 195, 51, 195, 51, 195, 51, + 195, 67, 163, 83, 163, 99, 131, 132, 68, 170, 214, 0, + 24, 96, 64, 25, 0, 6, 35, 240, 19, 51, 243, 68, + 227, 83, 226, 99, 211, 100, 195, 115, 194, 131, 179, 147, + 163, 147, 147, 164, 131, 179, 131, 179, 115, 196, 99, 211, + 98, 227, 83, 243, 67, 243, 66, 240, 19, 51, 240, 35, + 35, 240, 35, 34, 240, 51, 19, 240, 70, 240, 69, 240, + 85, 240, 99, 0, 29, 96, 98, 34, 0, 8, 67, 179, + 179, 51, 180, 163, 51, 165, 163, 52, 149, 163, 67, 146, + 18, 147, 83, 146, 19, 131, 83, 131, 19, 131, 99, 115, + 19, 130, 115, 114, 50, 115, 115, 99, 51, 99, 116, 83, + 51, 99, 131, 82, 67, 98, 147, 82, 83, 67, 147, 67, + 83, 67, 148, 51, 83, 67, 163, 51, 83, 66, 179, 50, + 115, 35, 179, 50, 115, 35, 195, 19, 115, 34, 211, 18, + 131, 34, 211, 18, 146, 19, 211, 18, 150, 229, 149, 244, + 165, 244, 180, 244, 180, 0, 39, 48, 62, 24, 0, 6, + 4, 211, 84, 179, 115, 164, 116, 147, 148, 115, 179, 100, + 195, 83, 212, 51, 244, 19, 240, 35, 19, 240, 53, 240, + 68, 240, 99, 240, 85, 240, 55, 240, 35, 19, 240, 19, + 51, 227, 68, 211, 83, 195, 115, 163, 132, 147, 148, 115, + 179, 100, 180, 83, 212, 51, 243, 0, 27, 48, 61, 26, + 0, 6, 68, 244, 68, 227, 99, 211, 116, 195, 132, 163, + 163, 147, 180, 131, 195, 115, 212, 84, 228, 67, 240, 19, + 51, 240, 36, 35, 240, 55, 240, 85, 240, 101, 240, 115, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 0, 30, 112, 59, + 21, 240, 240, 207, 2, 79, 2, 240, 36, 240, 35, 240, + 36, 240, 20, 240, 35, 240, 36, 240, 35, 240, 36, 240, + 20, 240, 35, 240, 36, 240, 35, 240, 36, 240, 20, 240, + 35, 240, 36, 240, 35, 240, 36, 240, 20, 240, 35, 240, + 36, 240, 35, 240, 47, 3, 63, 3, 0, 24, 40, 9, + 6, 54, 51, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 102, + 54, 48, 22, 13, 240, 194, 82, 66, 82, 66, 82, 50, + 82, 66, 82, 67, 67, 51, 67, 51, 67, 0, 44, 32, + 40, 9, 6, 54, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 54, 54, 48, 18, 15, 240, 240, 83, 180, 166, 131, + 35, 114, 66, 98, 98, 67, 99, 0, 52, 112, 9, 6, + 240, 147, 51, 51, 0, 22, 112, 13, 6, 210, 66, 66, + 50, 66, 67, 51, 51, 0, 20, 80, 30, 16, 0, 24, + 70, 122, 99, 83, 227, 211, 211, 211, 136, 91, 68, 83, + 51, 115, 51, 115, 51, 115, 52, 84, 76, 86, 35, 0, + 18, 48, 46, 17, 240, 240, 67, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 37, 124, 85, 53, 67, 115, 67, + 116, 51, 131, 51, 131, 51, 131, 51, 131, 51, 131, 51, + 131, 51, 115, 67, 115, 68, 68, 91, 99, 37, 0, 20, + 25, 16, 0, 24, 86, 138, 84, 82, 67, 211, 195, 211, + 211, 211, 211, 211, 227, 212, 212, 82, 106, 134, 0, 18, + 80, 48, 17, 240, 240, 243, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 117, 35, 107, 84, 68, 67, 115, 67, 115, + 51, 131, 51, 131, 51, 131, 51, 131, 51, 131, 51, 131, + 67, 115, 67, 100, 84, 53, 88, 19, 117, 35, 0, 19, + 64, 28, 17, 0, 26, 21, 169, 116, 67, 84, 98, 83, + 115, 51, 146, 62, 62, 51, 227, 227, 243, 228, 228, 83, + 107, 134, 0, 19, 112, 32, 15, 240, 240, 117, 135, 115, + 194, 195, 195, 195, 195, 195, 195, 154, 90, 131, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 0, + 18, 46, 19, 0, 29, 20, 52, 109, 83, 67, 131, 99, + 115, 99, 115, 99, 115, 99, 116, 83, 131, 67, 153, 146, + 36, 178, 240, 35, 240, 27, 156, 110, 68, 132, 51, 163, + 51, 163, 51, 163, 68, 100, 108, 151, 0, 5, 96, 48, + 15, 240, 243, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 37, 83, 23, 69, 52, 52, 83, 51, 99, 51, 99, + 51, 99, 51, 99, 51, 99, 51, 99, 51, 99, 51, 99, + 51, 99, 51, 99, 51, 99, 51, 99, 0, 17, 32, 27, + 6, 240, 147, 51, 51, 240, 240, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 0, + 7, 16, 35, 11, 0, 6, 19, 131, 131, 0, 7, 115, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 49, 52, 55, 85, 240, + 192, 47, 17, 240, 240, 67, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 100, 67, 84, 83, 68, 99, 52, 115, + 36, 131, 20, 152, 152, 149, 19, 132, 36, 115, 67, 115, + 83, 99, 84, 83, 99, 83, 115, 67, 116, 0, 19, 64, + 31, 6, 195, 51, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 0, 7, 16, 55, 25, 0, 37, 67, + 37, 70, 83, 23, 40, 69, 54, 68, 52, 84, 99, 51, + 99, 115, 51, 99, 115, 51, 99, 115, 51, 99, 115, 51, + 99, 115, 51, 99, 115, 51, 99, 115, 51, 99, 115, 51, + 99, 115, 51, 99, 115, 51, 99, 115, 51, 99, 115, 0, + 28, 64, 39, 15, 0, 22, 67, 37, 83, 23, 69, 52, + 52, 83, 51, 99, 51, 99, 51, 99, 51, 99, 51, 99, + 51, 99, 51, 99, 51, 99, 51, 99, 51, 99, 51, 99, + 51, 99, 0, 17, 32, 35, 19, 0, 29, 22, 186, 132, + 68, 99, 131, 83, 131, 67, 163, 51, 163, 51, 163, 51, + 163, 51, 163, 51, 163, 67, 131, 84, 100, 100, 68, 138, + 182, 0, 22, 48, 43, 17, 0, 25, 67, 52, 124, 85, + 53, 67, 100, 67, 116, 51, 131, 51, 131, 51, 131, 51, + 131, 51, 131, 51, 131, 51, 115, 67, 100, 68, 68, 91, + 99, 37, 115, 227, 227, 227, 227, 227, 227, 0, 6, 45, + 17, 0, 26, 5, 35, 107, 84, 53, 68, 84, 67, 115, + 51, 131, 51, 131, 51, 131, 51, 131, 51, 131, 51, 131, + 67, 115, 68, 84, 84, 53, 88, 19, 117, 35, 227, 227, + 227, 227, 227, 227, 227, 240, 240, 112, 25, 12, 0, 18, + 3, 51, 51, 21, 56, 69, 116, 132, 131, 147, 147, 147, + 147, 147, 147, 147, 147, 147, 0, 14, 80, 26, 15, 0, + 22, 119, 106, 68, 82, 67, 195, 196, 198, 153, 136, 181, + 195, 195, 49, 131, 51, 84, 59, 103, 0, 17, 80, 29, + 14, 0, 12, 83, 179, 179, 179, 179, 139, 59, 99, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 180, 49, 119, + 117, 0, 16, 48, 39, 15, 0, 22, 67, 99, 51, 99, + 51, 99, 51, 99, 51, 99, 51, 99, 51, 99, 51, 99, + 51, 99, 51, 99, 51, 99, 51, 99, 51, 84, 52, 53, + 71, 19, 69, 51, 0, 17, 32, 35, 17, 0, 25, 67, + 131, 51, 131, 51, 131, 67, 99, 83, 99, 83, 99, 99, + 67, 115, 67, 131, 50, 147, 35, 147, 35, 162, 34, 182, + 182, 196, 212, 0, 20, 16, 57, 25, 0, 37, 67, 99, + 115, 51, 100, 99, 51, 100, 99, 66, 100, 83, 83, 66, + 18, 83, 83, 66, 19, 67, 83, 66, 34, 66, 115, 35, + 34, 51, 115, 34, 51, 35, 115, 34, 51, 34, 146, 34, + 66, 34, 150, 66, 19, 149, 86, 164, 100, 180, 100, 179, + 116, 0, 29, 35, 19, 0, 28, 83, 131, 84, 99, 115, + 83, 147, 67, 163, 35, 198, 228, 243, 240, 20, 230, 195, + 35, 178, 51, 163, 67, 131, 99, 99, 131, 68, 132, 0, + 21, 96, 43, 17, 0, 25, 67, 146, 51, 131, 67, 115, + 67, 99, 83, 99, 99, 82, 115, 67, 131, 51, 131, 50, + 147, 35, 163, 19, 163, 18, 194, 18, 196, 227, 227, 226, + 227, 226, 242, 227, 166, 181, 0, 5, 96, 23, 16, 0, + 24, 13, 61, 195, 195, 196, 195, 195, 196, 180, 195, 195, + 196, 195, 195, 205, 61, 0, 18, 48, 11, 20, 0, 42, + 79, 2, 63, 2, 0, 45, 48, 13, 38, 0, 80, 111, + 15, 5, 63, 15, 5, 0, 85, 112, 20, 14, 240, 243, + 51, 82, 66, 83, 51, 83, 51, 82, 66, 83, 51, 82, + 66, 0, 49, 96, 14, 15, 0, 7, 99, 67, 70, 34, + 67, 38, 66, 68, 0, 55, +}; + +//***************************************************************************** +// +// The font definition for the 38 point Cmss font. +// +//***************************************************************************** +const tFont g_sFontCmss38 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 34, + + // + // The height of the font. + // + 37, + + // + // The baseline of the font. + // + 28, + + // + // The offset to each character in the font. + // + { + 0, 5, 34, 56, 157, 211, 300, 373, + 386, 426, 466, 494, 545, 559, 568, 578, + 627, 678, 710, 745, 783, 825, 863, 909, + 940, 989, 1035, 1050, 1069, 1097, 1110, 1143, + 1177, 1244, 1305, 1358, 1413, 1468, 1525, 1558, + 1613, 1671, 1702, 1737, 1796, 1829, 1925, 2001, + 2065, 2119, 2196, 2251, 2299, 2357, 2414, 2478, + 2576, 2638, 2699, 2758, 2798, 2820, 2860, 2878, + 2887, 2900, 2930, 2976, 3001, 3049, 3077, 3109, + 3155, 3203, 3230, 3265, 3312, 3343, 3398, 3437, + 3472, 3515, 3560, 3585, 3611, 3640, 3679, 3714, + 3771, 3806, 3849, 3872, 3883, 3896, 3916, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss38Data +}; diff --git a/grlib/fonts/fontcmss38b.c b/grlib/fonts/fontcmss38b.c new file mode 100644 index 0000000..89bdc7a --- /dev/null +++ b/grlib/fonts/fontcmss38b.c @@ -0,0 +1,447 @@ +//***************************************************************************** +// +// fontcmss38b.c - Font definition for the 38pt Cmss bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 38 point +// Bold: yes +// Italic: no +// Memory usage: 4288 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 38 point Cmss bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss38bData[4086] = +{ + 5, 15, 0, 69, 48, 31, 8, 240, 21, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 240, 69, 53, 53, 53, 53, 0, 9, 48, + 25, 17, 240, 240, 69, 69, 53, 69, 53, 69, 53, 69, + 53, 69, 67, 99, 83, 99, 67, 99, 83, 99, 0, 55, + 112, 97, 33, 0, 10, 2, 114, 240, 100, 83, 240, 99, + 99, 240, 99, 99, 240, 99, 84, 240, 84, 83, 240, 99, + 99, 240, 99, 84, 240, 84, 84, 240, 83, 99, 240, 99, + 99, 175, 15, 63, 15, 63, 15, 211, 84, 240, 84, 83, + 240, 99, 99, 240, 99, 99, 240, 99, 84, 240, 84, 83, + 223, 15, 63, 15, 63, 15, 163, 99, 240, 99, 99, 240, + 84, 84, 240, 83, 99, 240, 99, 99, 240, 99, 84, 240, + 83, 99, 240, 99, 99, 240, 99, 84, 240, 98, 114, 0, + 10, 48, 53, 19, 115, 240, 19, 231, 171, 125, 94, 84, + 35, 35, 68, 51, 65, 68, 51, 148, 51, 149, 35, 154, + 170, 156, 140, 140, 154, 185, 163, 21, 163, 36, 163, 36, + 49, 99, 36, 50, 83, 36, 53, 35, 21, 63, 79, 108, + 152, 227, 240, 19, 0, 17, 96, 95, 37, 70, 240, 34, + 169, 243, 155, 212, 149, 36, 196, 149, 68, 180, 149, 68, + 164, 165, 68, 148, 181, 68, 132, 197, 68, 131, 213, 68, + 116, 213, 68, 100, 244, 68, 84, 240, 21, 36, 84, 240, + 57, 100, 240, 71, 100, 240, 240, 36, 240, 240, 36, 104, + 240, 67, 106, 240, 36, 85, 36, 240, 20, 85, 68, 228, + 101, 68, 212, 117, 68, 212, 117, 68, 196, 133, 68, 180, + 149, 68, 164, 165, 68, 163, 197, 36, 164, 203, 163, 233, + 178, 240, 38, 0, 33, 16, 71, 30, 0, 8, 69, 240, + 152, 240, 106, 240, 68, 52, 240, 52, 84, 240, 36, 84, + 240, 36, 84, 240, 36, 84, 240, 36, 68, 240, 53, 36, + 240, 69, 20, 131, 168, 132, 166, 164, 166, 148, 167, 148, + 138, 116, 133, 22, 85, 117, 54, 53, 133, 70, 21, 149, + 90, 165, 104, 182, 88, 98, 79, 11, 79, 11, 92, 43, + 119, 134, 0, 34, 48, 15, 8, 240, 21, 53, 53, 53, + 53, 67, 83, 67, 83, 0, 26, 80, 40, 13, 115, 148, + 132, 147, 148, 132, 148, 133, 132, 133, 133, 133, 132, 133, + 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 148, 149, + 133, 133, 148, 149, 148, 148, 164, 163, 164, 164, 163, 48, + 40, 13, 3, 164, 164, 164, 148, 164, 148, 164, 148, 149, + 133, 133, 148, 149, 133, 133, 133, 133, 133, 133, 133, 133, + 133, 133, 132, 133, 133, 133, 132, 148, 132, 148, 132, 147, + 148, 132, 147, 160, 40, 19, 114, 240, 20, 244, 162, 52, + 50, 68, 50, 52, 53, 34, 37, 69, 18, 21, 122, 196, + 202, 117, 18, 21, 69, 34, 37, 52, 50, 52, 66, 52, + 50, 164, 244, 240, 18, 0, 48, 96, 59, 30, 0, 20, + 35, 240, 195, 240, 195, 240, 195, 240, 195, 240, 195, 240, + 195, 240, 195, 240, 195, 240, 195, 240, 195, 240, 195, 255, + 12, 63, 12, 63, 12, 243, 240, 195, 240, 195, 240, 195, + 240, 195, 240, 195, 240, 195, 240, 195, 240, 195, 240, 195, + 240, 195, 240, 195, 0, 20, 80, 16, 8, 0, 23, 5, + 53, 53, 53, 53, 67, 83, 67, 83, 240, 240, 240, 10, + 14, 0, 31, 75, 59, 59, 0, 28, 48, 12, 8, 0, + 23, 5, 53, 53, 53, 53, 0, 9, 48, 51, 19, 211, + 240, 19, 244, 243, 240, 19, 244, 243, 244, 243, 240, 19, + 244, 243, 240, 19, 244, 243, 244, 243, 240, 19, 244, 243, + 240, 19, 244, 243, 244, 243, 240, 19, 244, 243, 240, 19, + 244, 243, 244, 243, 240, 19, 244, 243, 240, 19, 240, 16, + 53, 20, 240, 240, 247, 187, 141, 117, 53, 101, 85, 85, + 100, 84, 117, 53, 117, 53, 117, 53, 117, 53, 117, 53, + 117, 53, 117, 53, 117, 53, 117, 53, 117, 53, 117, 53, + 117, 53, 117, 68, 117, 69, 85, 85, 85, 101, 53, 125, + 139, 183, 0, 23, 64, 33, 17, 240, 240, 179, 197, 122, + 122, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 141, 62, 77, 0, + 19, 64, 40, 19, 240, 240, 199, 186, 125, 110, 69, 70, + 68, 102, 51, 133, 66, 133, 229, 229, 229, 213, 229, 213, + 213, 213, 213, 213, 227, 243, 243, 243, 255, 63, 1, 63, + 1, 63, 1, 0, 21, 96, 39, 19, 240, 240, 199, 171, + 125, 85, 70, 82, 117, 81, 133, 229, 229, 213, 229, 168, + 183, 201, 230, 229, 245, 229, 229, 229, 229, 49, 165, 50, + 133, 68, 101, 78, 108, 167, 0, 22, 48, 53, 20, 0, + 6, 21, 230, 230, 215, 200, 195, 20, 180, 20, 180, 20, + 164, 36, 164, 36, 148, 52, 148, 52, 132, 68, 132, 68, + 116, 84, 115, 100, 100, 100, 111, 2, 63, 2, 63, 2, + 212, 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, 0, + 23, 32, 39, 20, 240, 240, 205, 126, 110, 109, 117, 245, + 245, 245, 245, 251, 157, 125, 117, 69, 100, 100, 100, 101, + 245, 245, 245, 245, 245, 66, 149, 67, 117, 70, 70, 94, + 139, 183, 0, 23, 64, 50, 20, 0, 5, 119, 185, 170, + 149, 81, 133, 229, 244, 240, 20, 245, 53, 117, 24, 101, + 25, 87, 69, 70, 85, 69, 117, 53, 117, 53, 117, 53, + 117, 53, 117, 53, 117, 68, 117, 68, 117, 69, 100, 101, + 69, 124, 154, 198, 0, 23, 64, 37, 20, 240, 240, 191, + 1, 63, 2, 63, 2, 79, 240, 20, 244, 244, 245, 244, + 245, 244, 245, 244, 245, 245, 229, 245, 245, 245, 229, 245, + 245, 245, 245, 245, 245, 0, 23, 112, 50, 20, 240, 240, + 247, 187, 141, 101, 85, 84, 116, 84, 116, 84, 116, 84, + 116, 84, 116, 85, 85, 109, 153, 172, 101, 85, 84, 101, + 69, 117, 53, 117, 53, 117, 53, 117, 53, 117, 53, 117, + 68, 116, 85, 85, 109, 139, 183, 0, 23, 64, 48, 19, + 240, 240, 214, 186, 140, 101, 68, 100, 85, 69, 100, 69, + 101, 53, 101, 53, 101, 53, 101, 53, 101, 53, 101, 53, + 101, 68, 86, 69, 55, 94, 88, 21, 117, 37, 228, 244, + 229, 228, 114, 85, 108, 138, 167, 0, 22, 64, 19, 8, + 0, 11, 5, 53, 53, 53, 53, 0, 7, 53, 53, 53, + 53, 53, 0, 9, 48, 23, 8, 0, 11, 5, 53, 53, + 53, 53, 0, 7, 53, 53, 53, 53, 53, 67, 83, 67, + 83, 240, 240, 240, 30, 8, 0, 9, 5, 53, 53, 53, + 53, 240, 197, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 240, 64, 21, 30, + 0, 48, 111, 12, 63, 12, 63, 12, 0, 22, 127, 12, + 63, 12, 63, 12, 0, 45, 48, 34, 18, 0, 20, 116, + 228, 228, 228, 228, 0, 8, 68, 228, 228, 228, 228, 212, + 228, 212, 213, 197, 198, 197, 213, 213, 114, 70, 69, 78, + 92, 120, 240, 240, 208, 35, 17, 240, 240, 119, 139, 93, + 68, 70, 50, 117, 197, 197, 197, 181, 182, 181, 181, 181, + 196, 212, 212, 211, 212, 227, 0, 5, 117, 197, 197, 197, + 197, 0, 20, 16, 67, 26, 0, 7, 89, 238, 191, 1, + 135, 116, 133, 74, 101, 60, 85, 62, 69, 38, 54, 69, + 37, 85, 53, 37, 116, 53, 37, 116, 53, 37, 116, 53, + 37, 116, 53, 37, 116, 53, 37, 116, 53, 37, 116, 53, + 37, 116, 69, 37, 84, 85, 38, 53, 86, 44, 117, 58, + 135, 55, 168, 132, 143, 2, 174, 249, 0, 30, 32, 60, + 27, 0, 7, 103, 240, 88, 240, 57, 240, 57, 240, 58, + 240, 27, 240, 21, 21, 240, 21, 22, 229, 38, 229, 53, + 228, 70, 197, 70, 197, 85, 181, 102, 165, 102, 165, 118, + 133, 134, 143, 4, 143, 5, 111, 6, 101, 181, 101, 182, + 69, 198, 69, 213, 69, 214, 52, 245, 0, 30, 96, 59, + 25, 0, 6, 47, 1, 159, 3, 127, 4, 101, 135, 85, + 166, 69, 181, 69, 181, 69, 181, 69, 181, 69, 165, 85, + 134, 111, 3, 127, 1, 159, 4, 101, 150, 85, 181, 69, + 182, 53, 197, 53, 197, 53, 197, 53, 197, 53, 182, 53, + 166, 79, 5, 95, 4, 111, 2, 0, 29, 16, 55, 24, + 0, 7, 25, 207, 127, 2, 111, 3, 88, 100, 102, 162, + 86, 240, 53, 240, 69, 240, 53, 240, 69, 240, 69, 240, + 69, 240, 69, 240, 69, 240, 69, 240, 69, 240, 85, 240, + 69, 240, 70, 240, 70, 178, 88, 116, 111, 3, 127, 2, + 158, 217, 0, 27, 96, 59, 27, 0, 6, 111, 1, 191, + 4, 143, 5, 117, 151, 101, 182, 85, 197, 85, 213, 69, + 213, 69, 229, 53, 229, 53, 229, 53, 229, 53, 229, 53, + 229, 53, 229, 53, 229, 53, 229, 53, 229, 53, 213, 69, + 213, 69, 198, 69, 182, 85, 151, 111, 5, 127, 4, 143, + 1, 0, 31, 96, 58, 21, 240, 240, 207, 2, 79, 3, + 63, 3, 63, 2, 69, 240, 21, 240, 21, 240, 21, 240, + 21, 240, 21, 240, 21, 240, 31, 1, 95, 2, 79, 1, + 85, 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, + 21, 240, 21, 240, 31, 3, 63, 3, 63, 3, 63, 3, + 0, 24, 37, 20, 240, 240, 175, 2, 63, 2, 63, 2, + 63, 2, 53, 245, 245, 245, 245, 245, 245, 245, 255, 95, + 95, 85, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, + 0, 24, 48, 57, 26, 0, 7, 90, 223, 1, 159, 3, + 111, 5, 88, 133, 86, 194, 86, 225, 85, 240, 101, 240, + 85, 240, 101, 240, 101, 240, 101, 240, 101, 240, 101, 153, + 53, 153, 53, 153, 69, 197, 69, 197, 70, 181, 86, 165, + 89, 117, 111, 5, 127, 4, 159, 1, 217, 0, 30, 32, + 59, 26, 0, 6, 69, 213, 53, 213, 53, 213, 53, 213, + 53, 213, 53, 213, 53, 213, 53, 213, 53, 213, 53, 213, + 53, 213, 63, 8, 63, 8, 63, 8, 53, 213, 53, 213, + 53, 213, 53, 213, 53, 213, 53, 213, 53, 213, 53, 213, + 53, 213, 53, 213, 53, 213, 53, 213, 0, 29, 80, 32, + 8, 240, 21, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 0, 9, 48, 34, 17, 240, 240, 213, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 65, 117, 67, 70, 62, + 61, 91, 150, 0, 20, 57, 26, 0, 6, 69, 198, 53, + 182, 69, 166, 85, 150, 101, 134, 117, 118, 133, 102, 149, + 86, 165, 70, 181, 54, 197, 38, 213, 23, 222, 206, 201, + 21, 184, 38, 166, 86, 149, 117, 149, 118, 133, 134, 117, + 150, 101, 165, 101, 166, 85, 182, 69, 198, 53, 213, 0, + 29, 80, 37, 19, 240, 240, 133, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 239, 1, 63, 1, 63, 1, 63, 1, + 0, 21, 96, 93, 33, 0, 8, 39, 240, 23, 56, 232, + 56, 232, 57, 201, 57, 201, 57, 201, 53, 20, 164, 21, + 53, 20, 164, 21, 53, 21, 133, 21, 53, 36, 132, 37, + 53, 36, 132, 37, 53, 37, 100, 53, 53, 52, 100, 53, + 53, 52, 100, 53, 53, 68, 68, 69, 53, 68, 68, 69, + 53, 69, 36, 85, 53, 84, 36, 85, 53, 84, 36, 85, + 53, 104, 101, 53, 104, 101, 53, 104, 101, 53, 118, 117, + 53, 118, 117, 53, 132, 133, 53, 240, 85, 0, 37, 64, + 75, 27, 0, 6, 104, 181, 56, 181, 57, 165, 57, 165, + 58, 149, 53, 21, 133, 53, 21, 133, 53, 37, 117, 53, + 37, 117, 53, 53, 101, 53, 53, 101, 53, 69, 85, 53, + 69, 85, 53, 85, 69, 53, 85, 69, 53, 101, 53, 53, + 101, 53, 53, 117, 37, 53, 117, 37, 53, 133, 21, 53, + 133, 21, 53, 154, 53, 169, 53, 169, 53, 184, 53, 184, + 0, 30, 96, 57, 28, 0, 8, 9, 240, 46, 207, 2, + 166, 103, 134, 150, 117, 182, 85, 213, 85, 213, 84, 245, + 53, 245, 53, 245, 53, 245, 53, 245, 53, 245, 53, 245, + 53, 245, 53, 245, 54, 229, 69, 213, 85, 213, 86, 182, + 102, 150, 135, 102, 175, 2, 207, 240, 25, 0, 32, 112, + 57, 24, 0, 6, 15, 1, 143, 3, 111, 4, 85, 135, + 69, 165, 69, 181, 53, 181, 53, 181, 53, 181, 53, 181, + 53, 181, 53, 165, 69, 135, 79, 4, 95, 3, 111, 149, + 240, 69, 240, 69, 240, 69, 240, 69, 240, 69, 240, 69, + 240, 69, 240, 69, 240, 69, 0, 29, 48, 68, 28, 0, + 8, 9, 240, 46, 207, 2, 166, 103, 134, 150, 117, 182, + 85, 213, 85, 213, 84, 245, 53, 245, 53, 245, 53, 245, + 53, 245, 53, 245, 53, 245, 53, 245, 53, 245, 53, 245, + 69, 84, 69, 85, 85, 53, 86, 70, 22, 102, 75, 135, + 57, 175, 2, 207, 1, 253, 240, 134, 240, 119, 240, 118, + 240, 118, 0, 18, 16, 58, 24, 0, 6, 15, 159, 3, + 111, 4, 85, 150, 69, 166, 53, 181, 53, 181, 53, 181, + 53, 181, 53, 181, 53, 165, 69, 150, 79, 4, 95, 3, + 111, 1, 133, 86, 133, 101, 133, 102, 117, 117, 117, 118, + 101, 134, 85, 149, 85, 150, 69, 165, 69, 181, 53, 181, + 0, 27, 48, 49, 22, 0, 6, 40, 189, 143, 1, 95, + 1, 102, 100, 85, 162, 85, 177, 85, 240, 38, 240, 23, + 240, 26, 206, 158, 173, 188, 247, 240, 38, 240, 37, 240, + 37, 50, 197, 51, 181, 54, 102, 79, 3, 79, 2, 126, + 185, 0, 25, 96, 58, 26, 0, 6, 79, 8, 63, 8, + 63, 8, 63, 8, 197, 240, 101, 240, 101, 240, 101, 240, + 101, 240, 101, 240, 101, 240, 101, 240, 101, 240, 101, 240, + 101, 240, 101, 240, 101, 240, 101, 240, 101, 240, 101, 240, + 101, 240, 101, 240, 101, 240, 101, 240, 101, 240, 101, 0, + 30, 96, 57, 25, 0, 6, 37, 197, 53, 197, 53, 197, + 53, 197, 53, 197, 53, 197, 53, 197, 53, 197, 53, 197, + 53, 197, 53, 197, 53, 197, 53, 197, 53, 197, 53, 197, + 53, 197, 53, 197, 53, 197, 53, 197, 53, 197, 69, 165, + 85, 165, 102, 102, 143, 1, 174, 217, 0, 29, 48, 60, + 28, 0, 7, 5, 240, 20, 54, 229, 54, 229, 70, 197, + 86, 197, 101, 182, 102, 165, 118, 165, 133, 150, 134, 133, + 150, 133, 166, 101, 182, 101, 197, 101, 198, 69, 214, 69, + 229, 54, 230, 37, 246, 37, 240, 21, 22, 240, 27, 240, + 43, 240, 57, 240, 73, 240, 88, 240, 87, 0, 33, 92, + 40, 0, 10, 4, 197, 196, 53, 167, 165, 53, 167, 164, + 69, 152, 164, 85, 137, 133, 85, 137, 133, 85, 132, 20, + 132, 117, 101, 21, 116, 117, 100, 37, 101, 117, 100, 37, + 101, 117, 100, 52, 100, 149, 69, 53, 84, 149, 68, 69, + 69, 149, 68, 69, 68, 165, 68, 84, 68, 181, 36, 101, + 52, 181, 36, 101, 37, 181, 36, 116, 36, 212, 36, 116, + 36, 217, 138, 217, 138, 217, 152, 248, 152, 247, 168, 247, + 167, 240, 37, 198, 0, 46, 32, 60, 28, 0, 7, 22, + 181, 103, 150, 118, 134, 150, 103, 151, 86, 183, 54, 214, + 38, 246, 22, 252, 240, 42, 240, 72, 240, 103, 240, 102, + 240, 119, 240, 89, 240, 59, 240, 22, 21, 240, 21, 38, + 230, 54, 198, 86, 166, 103, 150, 118, 134, 150, 102, 167, + 71, 183, 54, 214, 0, 31, 112, 58, 28, 0, 7, 6, + 229, 55, 198, 70, 182, 102, 165, 119, 134, 134, 118, 166, + 101, 183, 70, 198, 54, 230, 37, 253, 240, 27, 240, 57, + 240, 87, 240, 103, 240, 117, 240, 133, 240, 133, 240, 133, + 240, 133, 240, 133, 240, 133, 240, 133, 240, 133, 240, 133, + 240, 133, 0, 33, 16, 60, 24, 0, 6, 31, 5, 79, + 5, 79, 5, 79, 5, 240, 38, 240, 38, 240, 38, 240, + 39, 240, 38, 240, 38, 240, 38, 240, 54, 240, 38, 240, + 38, 240, 38, 240, 54, 240, 38, 240, 38, 240, 38, 240, + 54, 240, 38, 240, 38, 240, 47, 6, 63, 6, 63, 6, + 63, 6, 0, 27, 48, 40, 12, 8, 73, 56, 69, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 120, 73, 56, 64, 25, 16, 240, + 240, 67, 83, 83, 83, 67, 83, 83, 83, 69, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 0, 52, 48, 40, 12, + 24, 57, 72, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 72, 57, + 72, 48, 16, 15, 240, 240, 69, 150, 136, 116, 20, 83, + 68, 51, 99, 0, 54, 96, 10, 8, 240, 21, 53, 53, + 53, 0, 31, 48, 15, 8, 240, 51, 83, 67, 83, 69, + 53, 53, 53, 53, 0, 26, 48, 34, 19, 0, 26, 88, + 156, 116, 69, 98, 117, 229, 229, 199, 124, 85, 69, 69, + 85, 53, 101, 53, 101, 53, 101, 54, 55, 79, 88, 21, + 101, 53, 0, 21, 96, 49, 20, 240, 240, 165, 245, 245, + 245, 245, 245, 245, 245, 245, 245, 53, 117, 25, 95, 1, + 70, 70, 69, 102, 53, 117, 53, 117, 53, 117, 53, 117, + 53, 117, 53, 117, 53, 117, 53, 101, 70, 70, 79, 85, + 24, 101, 37, 0, 23, 64, 27, 18, 0, 25, 56, 140, + 93, 70, 83, 69, 129, 53, 213, 213, 213, 213, 213, 213, + 229, 129, 70, 83, 93, 108, 135, 0, 21, 57, 21, 0, + 6, 117, 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, + 240, 21, 240, 21, 240, 21, 134, 37, 105, 21, 95, 1, + 70, 86, 69, 117, 53, 133, 53, 133, 53, 133, 53, 133, + 53, 133, 53, 133, 53, 133, 69, 117, 70, 86, 95, 1, + 105, 21, 133, 53, 0, 24, 33, 20, 0, 28, 39, 172, + 126, 86, 69, 85, 116, 53, 132, 53, 132, 63, 2, 63, + 2, 53, 245, 245, 240, 21, 146, 70, 100, 95, 109, 167, + 0, 23, 48, 34, 16, 240, 240, 134, 137, 106, 86, 50, + 85, 181, 181, 181, 181, 154, 107, 90, 133, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 0, 19, + 16, 48, 22, 0, 30, 119, 67, 111, 1, 95, 2, 70, + 68, 133, 85, 117, 85, 117, 85, 117, 85, 133, 69, 141, + 171, 162, 23, 194, 240, 93, 159, 143, 95, 3, 68, 149, + 52, 180, 53, 164, 69, 133, 79, 2, 111, 169, 0, 6, + 64, 50, 20, 240, 240, 165, 245, 245, 245, 245, 245, 245, + 245, 245, 245, 70, 85, 41, 69, 27, 55, 70, 54, 101, + 53, 117, 53, 117, 53, 117, 53, 117, 53, 117, 53, 117, + 53, 117, 53, 117, 53, 117, 53, 117, 53, 117, 53, 117, + 0, 22, 112, 30, 8, 240, 21, 53, 53, 53, 53, 240, + 240, 85, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 0, 9, 48, 39, 14, 240, + 240, 69, 149, 134, 134, 149, 0, 8, 21, 149, 149, 149, + 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, + 149, 149, 149, 149, 65, 54, 58, 74, 102, 240, 240, 64, + 45, 18, 240, 240, 100, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 101, 52, 86, 52, 70, 68, 38, 100, 22, 122, + 137, 153, 154, 139, 117, 21, 116, 53, 100, 69, 84, 70, + 68, 86, 52, 101, 52, 116, 0, 20, 80, 32, 8, 240, + 21, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 0, 9, 48, 59, 31, 0, 42, 85, 55, 86, + 85, 41, 41, 69, 17, 72, 54, 54, 102, 85, 54, 101, + 101, 53, 117, 101, 53, 117, 101, 53, 117, 101, 53, 117, + 101, 53, 117, 101, 53, 117, 101, 53, 117, 101, 53, 117, + 101, 53, 117, 101, 53, 117, 101, 53, 117, 101, 53, 117, + 101, 0, 35, 32, 41, 20, 0, 27, 69, 70, 85, 41, + 69, 27, 55, 70, 54, 101, 53, 117, 53, 117, 53, 117, + 53, 117, 53, 117, 53, 117, 53, 117, 53, 117, 53, 117, + 53, 117, 53, 117, 53, 117, 0, 22, 112, 35, 21, 0, + 29, 72, 188, 142, 102, 70, 85, 101, 69, 133, 53, 133, + 53, 133, 53, 133, 53, 133, 53, 133, 53, 133, 69, 101, + 86, 70, 110, 140, 184, 0, 24, 80, 47, 20, 0, 27, + 69, 53, 117, 25, 95, 1, 70, 70, 69, 102, 53, 117, + 53, 117, 53, 117, 53, 117, 53, 117, 53, 117, 53, 117, + 53, 101, 70, 70, 79, 85, 24, 101, 37, 133, 245, 245, + 245, 245, 245, 245, 0, 6, 112, 55, 21, 0, 29, 70, + 37, 105, 21, 95, 1, 70, 86, 69, 117, 53, 133, 53, + 133, 53, 133, 53, 133, 53, 133, 53, 133, 53, 133, 69, + 117, 70, 71, 95, 1, 105, 21, 118, 53, 240, 21, 240, + 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, + 240, 240, 28, 14, 0, 19, 37, 51, 53, 36, 53, 21, + 53, 21, 56, 102, 134, 133, 149, 149, 149, 149, 149, 149, + 149, 149, 149, 0, 16, 112, 28, 17, 0, 23, 104, 124, + 92, 69, 83, 68, 129, 68, 215, 186, 138, 153, 198, 212, + 50, 132, 52, 85, 61, 92, 120, 0, 19, 112, 30, 17, + 0, 13, 21, 197, 197, 197, 197, 172, 77, 92, 117, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 198, 49, 123, 121, + 150, 0, 19, 112, 41, 20, 0, 27, 69, 117, 53, 117, + 53, 117, 53, 117, 53, 117, 53, 117, 53, 117, 53, 117, + 53, 117, 53, 117, 53, 117, 53, 117, 53, 117, 53, 102, + 53, 87, 74, 21, 87, 53, 0, 22, 112, 37, 20, 0, + 27, 68, 148, 53, 117, 53, 117, 68, 116, 85, 85, 85, + 85, 100, 84, 117, 53, 117, 53, 132, 52, 149, 21, 149, + 21, 164, 20, 185, 185, 199, 215, 0, 23, 64, 58, 29, + 0, 39, 116, 116, 116, 53, 100, 116, 53, 85, 101, 68, + 86, 84, 84, 86, 84, 85, 70, 69, 100, 56, 52, 116, + 51, 20, 52, 117, 35, 20, 52, 117, 19, 36, 37, 132, + 19, 37, 20, 148, 19, 52, 20, 152, 57, 151, 72, 182, + 87, 182, 87, 196, 102, 0, 33, 80, 35, 20, 0, 27, + 69, 116, 70, 85, 86, 53, 117, 37, 149, 21, 169, 199, + 229, 245, 231, 200, 196, 20, 164, 52, 133, 53, 101, 85, + 69, 117, 53, 117, 0, 22, 112, 43, 19, 0, 26, 20, + 132, 53, 116, 68, 101, 69, 84, 85, 84, 100, 68, 117, + 52, 132, 52, 133, 20, 164, 20, 164, 20, 183, 199, 199, + 213, 229, 244, 243, 244, 244, 145, 68, 168, 183, 198, 0, + 6, 48, 24, 18, 0, 24, 126, 78, 78, 197, 197, 197, + 213, 197, 197, 197, 197, 213, 197, 197, 207, 63, 63, 0, + 20, 80, 13, 23, 0, 46, 15, 5, 63, 5, 63, 5, + 0, 52, 16, 16, 44, 0, 88, 15, 15, 11, 63, 15, + 11, 63, 15, 11, 0, 99, 48, 19, 16, 240, 240, 53, + 37, 68, 52, 69, 37, 68, 52, 83, 67, 99, 67, 0, + 58, 96, 16, 17, 240, 240, 100, 83, 71, 51, 62, 51, + 55, 67, 84, 0, 64, 48, +}; + +//***************************************************************************** +// +// The font definition for the 38 point Cmss bold font. +// +//***************************************************************************** +const tFont g_sFontCmss38b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 40, + + // + // The height of the font. + // + 37, + + // + // The baseline of the font. + // + 28, + + // + // The offset to each character in the font. + // + { + 0, 5, 36, 61, 158, 211, 306, 377, + 392, 432, 472, 512, 571, 587, 597, 609, + 660, 713, 746, 786, 825, 878, 917, 967, + 1004, 1054, 1102, 1121, 1144, 1174, 1195, 1229, + 1264, 1331, 1391, 1450, 1505, 1564, 1622, 1659, + 1716, 1775, 1807, 1841, 1898, 1935, 2028, 2103, + 2160, 2217, 2285, 2343, 2392, 2450, 2507, 2567, + 2659, 2719, 2777, 2837, 2877, 2902, 2942, 2958, + 2968, 2983, 3017, 3066, 3093, 3150, 3183, 3217, + 3265, 3315, 3345, 3384, 3429, 3461, 3520, 3561, + 3596, 3643, 3698, 3726, 3754, 3784, 3825, 3862, + 3920, 3955, 3998, 4022, 4035, 4051, 4070, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss38bData +}; diff --git a/grlib/fonts/fontcmss38i.c b/grlib/fonts/fontcmss38i.c new file mode 100644 index 0000000..53be257 --- /dev/null +++ b/grlib/fonts/fontcmss38i.c @@ -0,0 +1,452 @@ +//***************************************************************************** +// +// fontcmss38i.c - Font definition for the 38pt Cmss italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 38 point +// Bold: no +// Italic: yes +// Memory usage: 4364 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 38 point Cmss italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss38iData[4164] = +{ + 5, 15, 0, 69, 48, 31, 11, 240, 195, 131, 130, 146, + 131, 131, 131, 130, 146, 131, 131, 131, 130, 146, 146, 131, + 131, 130, 146, 146, 240, 240, 163, 131, 131, 0, 13, 48, + 23, 15, 240, 240, 35, 67, 68, 52, 67, 67, 98, 82, + 83, 67, 82, 82, 97, 97, 98, 82, 0, 51, 48, 101, + 30, 0, 9, 66, 98, 240, 81, 113, 240, 82, 113, 240, + 81, 114, 240, 66, 113, 240, 81, 114, 240, 81, 113, 240, + 82, 98, 240, 81, 113, 240, 82, 98, 240, 81, 113, 240, + 82, 98, 240, 81, 113, 191, 11, 209, 113, 240, 82, 98, + 240, 81, 114, 240, 66, 113, 240, 82, 98, 240, 81, 113, + 223, 11, 177, 113, 240, 82, 98, 240, 81, 113, 240, 82, + 98, 240, 81, 113, 240, 82, 98, 240, 81, 113, 240, 82, + 98, 240, 81, 113, 240, 82, 98, 240, 81, 113, 240, 82, + 98, 0, 9, 112, 57, 21, 178, 240, 66, 240, 38, 233, + 187, 150, 35, 147, 34, 65, 147, 34, 211, 50, 211, 50, + 211, 34, 227, 34, 228, 18, 246, 248, 232, 246, 242, 20, + 226, 35, 226, 35, 210, 51, 210, 51, 210, 50, 226, 35, + 129, 82, 19, 132, 39, 154, 215, 240, 34, 240, 66, 0, + 20, 87, 26, 84, 209, 118, 177, 115, 35, 146, 99, 51, + 145, 99, 67, 129, 115, 67, 113, 116, 67, 98, 115, 83, + 82, 131, 67, 97, 147, 67, 81, 163, 51, 82, 164, 35, + 66, 199, 81, 214, 81, 240, 146, 240, 130, 70, 225, 71, + 209, 83, 20, 178, 67, 51, 162, 67, 67, 161, 83, 67, + 145, 99, 67, 130, 83, 83, 114, 99, 67, 129, 115, 67, + 113, 131, 67, 98, 131, 51, 98, 148, 19, 113, 182, 113, + 212, 0, 23, 96, 74, 27, 0, 8, 36, 240, 103, 240, + 82, 51, 240, 50, 67, 240, 35, 67, 240, 34, 83, 240, + 34, 67, 240, 35, 67, 240, 35, 51, 240, 51, 35, 240, + 67, 19, 240, 86, 145, 181, 162, 164, 163, 134, 147, 131, + 19, 146, 131, 36, 115, 115, 52, 99, 115, 84, 67, 115, + 115, 51, 131, 116, 19, 147, 134, 163, 133, 180, 103, 191, + 7, 118, 104, 0, 30, 112, 14, 8, 240, 51, 68, 67, + 98, 83, 82, 97, 98, 0, 27, 96, 40, 16, 178, 210, + 210, 210, 211, 195, 210, 211, 210, 211, 210, 211, 211, 195, + 211, 211, 195, 211, 211, 211, 211, 195, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 227, 211, 211, 227, 226, 227, 160, + 40, 16, 115, 227, 226, 227, 211, 226, 227, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 195, 211, 211, 211, 195, + 211, 211, 195, 211, 211, 195, 211, 195, 210, 211, 195, 210, + 210, 210, 210, 224, 35, 18, 130, 240, 18, 240, 18, 243, + 163, 34, 51, 69, 18, 21, 106, 166, 197, 185, 116, 18, + 20, 83, 50, 36, 81, 51, 49, 178, 240, 18, 240, 18, + 0, 48, 80, 51, 26, 0, 24, 49, 240, 161, 240, 161, + 240, 161, 240, 146, 240, 145, 240, 161, 240, 161, 240, 161, + 240, 146, 240, 145, 239, 8, 225, 240, 146, 240, 146, 240, + 145, 240, 161, 240, 161, 240, 146, 240, 145, 240, 161, 240, + 161, 240, 161, 0, 24, 96, 15, 8, 0, 25, 35, 68, + 67, 98, 83, 82, 97, 98, 240, 240, 128, 9, 13, 0, + 30, 122, 58, 0, 26, 48, 10, 7, 0, 22, 3, 52, + 51, 0, 8, 48, 78, 24, 240, 81, 240, 114, 240, 113, + 240, 114, 240, 113, 240, 113, 240, 114, 240, 113, 240, 114, + 240, 113, 240, 114, 240, 113, 240, 114, 240, 113, 240, 113, + 240, 114, 240, 113, 240, 114, 240, 113, 240, 114, 240, 113, + 240, 114, 240, 113, 240, 113, 240, 114, 240, 113, 240, 114, + 240, 113, 240, 114, 240, 113, 240, 114, 240, 113, 240, 114, + 240, 113, 240, 113, 240, 114, 240, 113, 240, 128, 50, 20, + 0, 11, 21, 216, 164, 67, 146, 100, 115, 115, 99, 131, + 98, 147, 83, 147, 83, 147, 82, 163, 67, 148, 67, 147, + 83, 147, 83, 147, 67, 148, 67, 147, 83, 147, 83, 131, + 99, 131, 99, 115, 116, 84, 132, 52, 168, 213, 0, 24, + 32, 16, 0, 9, 65, 196, 135, 132, 19, 211, 211, 196, + 195, 211, 211, 211, 195, 211, 211, 211, 195, 211, 211, 211, + 211, 195, 211, 140, 76, 0, 18, 64, 51, 21, 0, 11, + 86, 217, 179, 68, 146, 116, 115, 131, 114, 147, 240, 51, + 240, 51, 240, 35, 240, 51, 240, 35, 240, 50, 240, 50, + 240, 35, 240, 35, 240, 34, 240, 50, 240, 50, 240, 34, + 240, 50, 240, 50, 240, 62, 125, 126, 0, 24, 64, 48, + 20, 0, 11, 21, 202, 147, 83, 131, 115, 114, 131, 240, + 34, 240, 35, 240, 35, 240, 19, 244, 198, 231, 240, 36, + 240, 36, 240, 35, 240, 35, 240, 35, 240, 35, 81, 163, + 97, 163, 98, 131, 116, 83, 154, 198, 0, 23, 112, 50, + 19, 0, 11, 4, 244, 225, 18, 229, 210, 19, 195, 19, + 194, 35, 179, 34, 179, 35, 163, 51, 162, 67, 147, 67, + 131, 82, 131, 83, 116, 83, 115, 99, 111, 1, 63, 1, + 195, 240, 19, 240, 19, 243, 240, 19, 240, 19, 0, 22, + 48, 49, 20, 0, 10, 92, 140, 131, 240, 34, 240, 35, + 240, 35, 240, 35, 240, 35, 240, 34, 240, 35, 21, 187, + 148, 67, 147, 99, 130, 115, 240, 35, 240, 35, 240, 35, + 240, 19, 240, 35, 97, 147, 114, 131, 116, 68, 153, 213, + 0, 24, 48, 19, 0, 10, 102, 184, 148, 227, 243, 243, + 240, 19, 243, 53, 131, 24, 99, 18, 67, 101, 99, 84, + 115, 68, 131, 68, 131, 67, 147, 67, 147, 67, 131, 83, + 131, 83, 130, 99, 115, 115, 83, 131, 67, 168, 197, 0, + 22, 96, 46, 19, 0, 9, 95, 79, 79, 240, 18, 240, + 18, 240, 18, 240, 18, 240, 18, 240, 18, 240, 19, 243, + 240, 18, 240, 19, 243, 240, 19, 243, 240, 19, 243, 240, + 19, 243, 240, 19, 240, 19, 243, 240, 19, 0, 23, 48, + 49, 20, 0, 11, 21, 217, 148, 67, 131, 115, 114, 131, + 99, 131, 99, 131, 99, 130, 115, 114, 147, 67, 184, 199, + 179, 68, 131, 99, 115, 131, 99, 131, 83, 147, 83, 147, + 83, 131, 99, 131, 99, 115, 131, 83, 169, 198, 0, 23, + 112, 52, 21, 0, 11, 101, 217, 179, 83, 147, 115, 115, + 131, 99, 147, 99, 147, 98, 163, 83, 163, 83, 163, 83, + 148, 83, 132, 100, 101, 100, 82, 19, 121, 20, 133, 67, + 240, 36, 240, 35, 240, 35, 240, 35, 240, 35, 162, 68, + 170, 213, 0, 25, 48, 15, 9, 0, 13, 115, 99, 99, + 0, 11, 83, 99, 99, 0, 10, 112, 19, 10, 0, 15, + 67, 115, 115, 0, 13, 3, 115, 115, 130, 114, 130, 129, + 130, 0, 6, 30, 11, 0, 13, 3, 131, 131, 0, 6, + 50, 146, 146, 131, 131, 130, 146, 146, 131, 131, 130, 146, + 131, 131, 131, 130, 146, 131, 131, 240, 240, 13, 28, 0, + 52, 95, 9, 0, 21, 63, 9, 0, 49, 64, 33, 15, + 0, 18, 3, 195, 179, 0, 9, 2, 210, 195, 195, 194, + 195, 194, 195, 179, 179, 179, 179, 195, 179, 195, 195, 129, + 52, 83, 75, 87, 240, 240, 96, 34, 16, 240, 240, 102, + 123, 83, 84, 65, 131, 211, 211, 211, 195, 196, 180, 179, + 195, 195, 211, 195, 210, 226, 211, 210, 226, 0, 7, 83, + 195, 211, 0, 19, 80, 68, 24, 0, 7, 70, 240, 26, + 196, 83, 164, 131, 132, 147, 115, 104, 115, 89, 99, 68, + 52, 83, 67, 84, 83, 67, 99, 67, 67, 115, 67, 67, + 115, 66, 67, 131, 51, 67, 130, 67, 67, 115, 67, 67, + 115, 67, 67, 99, 83, 68, 67, 99, 83, 51, 131, 87, + 147, 100, 180, 240, 100, 240, 101, 99, 188, 246, 0, 28, + 48, 59, 24, 0, 7, 100, 240, 84, 240, 69, 240, 69, + 240, 50, 19, 240, 35, 35, 240, 18, 51, 243, 51, 242, + 67, 227, 67, 226, 83, 211, 83, 210, 99, 195, 100, 163, + 116, 162, 147, 159, 159, 131, 163, 130, 179, 115, 180, 83, + 196, 83, 211, 67, 227, 67, 227, 51, 243, 0, 27, 48, + 53, 25, 0, 7, 11, 237, 179, 133, 147, 148, 147, 164, + 131, 179, 116, 179, 115, 179, 131, 179, 131, 163, 147, 147, + 148, 116, 173, 206, 179, 132, 163, 163, 131, 180, 115, 195, + 115, 195, 115, 195, 115, 179, 115, 195, 115, 164, 131, 133, + 158, 173, 0, 29, 80, 55, 23, 0, 7, 24, 219, 164, + 99, 147, 161, 131, 240, 67, 240, 67, 240, 83, 240, 67, + 240, 83, 240, 67, 240, 83, 240, 82, 240, 83, 240, 83, + 240, 83, 240, 83, 240, 83, 240, 83, 240, 84, 240, 83, + 240, 84, 240, 83, 161, 164, 99, 187, 231, 0, 27, 16, + 54, 26, 0, 7, 29, 222, 195, 133, 163, 163, 163, 179, + 131, 195, 131, 211, 115, 211, 115, 211, 115, 211, 99, 227, + 99, 227, 99, 227, 99, 227, 84, 211, 99, 227, 99, 227, + 99, 211, 115, 211, 99, 211, 115, 195, 131, 179, 147, 163, + 163, 132, 175, 188, 0, 31, 56, 24, 0, 6, 111, 143, + 1, 143, 1, 131, 240, 99, 240, 99, 240, 84, 240, 83, + 240, 99, 240, 99, 240, 99, 240, 84, 240, 95, 159, 147, + 240, 84, 240, 83, 240, 99, 240, 99, 240, 99, 240, 83, + 240, 99, 240, 99, 240, 111, 1, 143, 1, 127, 2, 0, + 27, 112, 54, 24, 0, 6, 111, 143, 1, 143, 147, 240, + 99, 240, 99, 240, 84, 240, 83, 240, 99, 240, 99, 240, + 99, 240, 84, 240, 94, 174, 163, 240, 84, 240, 83, 240, + 99, 240, 99, 240, 99, 240, 84, 240, 83, 240, 99, 240, + 99, 240, 99, 240, 84, 0, 29, 64, 55, 24, 0, 7, + 56, 236, 164, 100, 147, 161, 147, 240, 83, 240, 83, 240, + 99, 240, 83, 240, 98, 240, 99, 240, 99, 240, 83, 240, + 99, 240, 99, 240, 99, 135, 99, 135, 99, 195, 99, 195, + 100, 178, 131, 163, 132, 147, 147, 147, 164, 100, 188, 231, + 0, 28, 48, 59, 27, 0, 7, 67, 195, 132, 180, 131, + 195, 147, 195, 147, 195, 147, 195, 132, 180, 131, 195, 147, + 195, 147, 195, 147, 195, 132, 179, 159, 3, 159, 3, 147, + 195, 132, 195, 131, 195, 147, 195, 147, 195, 147, 195, 132, + 180, 131, 195, 147, 195, 147, 195, 147, 195, 132, 179, 0, + 31, 64, 32, 12, 240, 243, 132, 131, 147, 147, 147, 132, + 131, 147, 147, 132, 131, 147, 147, 147, 132, 131, 147, 147, + 132, 131, 147, 147, 147, 132, 131, 0, 14, 80, 55, 20, + 0, 6, 99, 240, 35, 240, 35, 240, 19, 240, 35, 240, + 35, 240, 35, 240, 19, 240, 35, 240, 35, 240, 35, 240, + 35, 240, 19, 240, 35, 240, 35, 240, 35, 240, 34, 240, + 35, 240, 35, 240, 35, 240, 35, 240, 19, 240, 35, 131, + 68, 154, 198, 0, 24, 64, 27, 0, 7, 67, 195, 132, + 164, 147, 164, 163, 148, 179, 132, 195, 116, 196, 100, 211, + 99, 243, 83, 240, 19, 67, 240, 35, 36, 240, 35, 38, + 240, 19, 23, 240, 23, 20, 246, 51, 230, 67, 228, 100, + 211, 131, 211, 132, 195, 147, 180, 148, 163, 164, 163, 179, + 163, 180, 147, 195, 132, 196, 0, 31, 32, 33, 18, 240, + 240, 195, 228, 227, 243, 243, 243, 228, 227, 243, 243, 243, + 228, 227, 243, 243, 228, 227, 243, 243, 243, 228, 227, 243, + 243, 254, 63, 0, 20, 80, 96, 33, 0, 9, 4, 245, + 148, 229, 150, 213, 150, 198, 150, 194, 19, 150, 179, 18, + 147, 19, 178, 19, 147, 34, 163, 19, 147, 34, 162, 35, + 147, 35, 131, 35, 147, 35, 115, 35, 147, 51, 115, 35, + 147, 51, 99, 51, 147, 51, 98, 67, 147, 51, 83, 67, + 146, 82, 82, 67, 147, 83, 51, 67, 147, 83, 50, 83, + 147, 83, 35, 83, 147, 83, 34, 99, 146, 99, 18, 99, + 147, 102, 99, 147, 116, 115, 147, 116, 115, 147, 115, 130, + 147, 240, 51, 0, 38, 32, 75, 27, 0, 7, 69, 163, + 134, 163, 134, 147, 150, 147, 151, 131, 147, 19, 131, 131, + 35, 131, 131, 35, 115, 147, 36, 99, 147, 51, 99, 146, + 67, 99, 131, 67, 98, 147, 68, 67, 147, 83, 67, 147, + 83, 67, 131, 99, 67, 131, 100, 35, 147, 115, 35, 147, + 115, 35, 147, 115, 35, 131, 132, 19, 131, 150, 147, 150, + 147, 150, 147, 150, 131, 180, 0, 31, 64, 63, 26, 0, + 7, 118, 240, 58, 228, 84, 195, 147, 163, 179, 131, 195, + 115, 227, 99, 227, 83, 243, 82, 240, 19, 67, 240, 19, + 67, 240, 19, 66, 240, 35, 51, 240, 20, 51, 240, 19, + 67, 240, 19, 67, 243, 83, 243, 83, 227, 100, 211, 115, + 195, 132, 163, 163, 132, 196, 84, 234, 240, 54, 0, 31, + 54, 24, 0, 6, 92, 206, 163, 117, 147, 147, 131, 179, + 115, 179, 115, 179, 115, 179, 115, 179, 99, 179, 115, 163, + 131, 148, 131, 117, 157, 172, 195, 240, 99, 240, 99, 240, + 84, 240, 83, 240, 99, 240, 99, 240, 99, 240, 84, 240, + 83, 240, 99, 0, 29, 80, 76, 26, 0, 7, 118, 240, + 58, 228, 84, 195, 147, 163, 179, 131, 195, 115, 227, 99, + 227, 83, 243, 83, 243, 67, 240, 19, 67, 240, 19, 67, + 240, 19, 51, 240, 35, 51, 240, 19, 67, 240, 19, 67, + 240, 18, 83, 243, 83, 227, 99, 99, 83, 115, 84, 51, + 131, 99, 35, 163, 87, 196, 69, 235, 240, 41, 240, 132, + 240, 131, 240, 132, 240, 131, 240, 132, 0, 14, 55, 24, + 0, 6, 92, 206, 163, 117, 131, 163, 131, 179, 115, 179, + 115, 179, 100, 179, 99, 179, 115, 179, 115, 163, 131, 132, + 142, 172, 195, 99, 195, 99, 195, 100, 163, 131, 163, 131, + 163, 132, 147, 147, 147, 147, 131, 164, 115, 179, 115, 179, + 115, 180, 0, 27, 96, 52, 22, 0, 6, 103, 219, 163, + 99, 147, 240, 51, 240, 51, 240, 67, 240, 67, 240, 67, + 240, 69, 240, 54, 240, 40, 248, 240, 38, 240, 68, 240, + 67, 240, 67, 240, 67, 240, 67, 240, 66, 113, 179, 114, + 147, 117, 85, 141, 170, 230, 0, 26, 32, 58, 25, 0, + 6, 63, 6, 63, 7, 63, 7, 195, 240, 115, 240, 115, + 240, 115, 240, 99, 240, 115, 240, 115, 240, 115, 240, 100, + 240, 99, 240, 115, 240, 115, 240, 115, 240, 100, 240, 99, + 240, 115, 240, 115, 240, 115, 240, 99, 240, 115, 240, 115, + 240, 115, 240, 100, 0, 30, 32, 58, 24, 0, 6, 67, + 179, 100, 179, 99, 195, 99, 194, 115, 179, 115, 179, 99, + 195, 99, 195, 99, 194, 115, 179, 115, 179, 99, 195, 99, + 194, 115, 179, 115, 179, 115, 179, 99, 195, 99, 194, 115, + 179, 115, 179, 115, 163, 131, 162, 163, 115, 180, 83, 218, + 240, 22, 0, 28, 96, 65, 25, 0, 6, 35, 240, 19, + 52, 242, 68, 227, 83, 211, 99, 211, 99, 195, 115, 194, + 131, 179, 132, 147, 148, 147, 163, 131, 179, 131, 179, 115, + 195, 114, 211, 99, 212, 82, 243, 67, 243, 51, 240, 19, + 51, 240, 19, 35, 240, 35, 34, 240, 51, 19, 240, 51, + 18, 240, 85, 240, 84, 240, 100, 0, 30, 32, 98, 35, + 0, 8, 99, 180, 179, 51, 180, 163, 67, 165, 163, 67, + 165, 147, 83, 150, 147, 83, 146, 19, 146, 100, 115, 19, + 131, 100, 114, 35, 130, 116, 99, 35, 115, 131, 99, 35, + 114, 147, 98, 51, 99, 147, 83, 51, 98, 163, 82, 67, + 83, 163, 67, 67, 82, 179, 66, 99, 51, 179, 51, 99, + 50, 195, 50, 115, 35, 195, 35, 115, 34, 211, 34, 131, + 19, 211, 19, 131, 19, 211, 18, 147, 18, 227, 18, 150, + 229, 165, 245, 165, 244, 180, 240, 35, 180, 0, 41, 32, + 66, 28, 0, 7, 99, 211, 148, 179, 179, 164, 180, 132, + 211, 116, 228, 99, 240, 19, 83, 240, 36, 51, 240, 67, + 35, 240, 87, 240, 117, 240, 132, 240, 163, 240, 148, 240, + 134, 240, 99, 19, 240, 83, 51, 240, 51, 67, 240, 35, + 99, 244, 99, 228, 116, 211, 147, 195, 164, 163, 196, 131, + 212, 115, 244, 0, 32, 32, 61, 25, 0, 6, 35, 240, + 19, 52, 227, 83, 212, 84, 180, 115, 179, 132, 147, 148, + 131, 179, 115, 196, 83, 227, 68, 228, 51, 240, 19, 35, + 240, 39, 240, 54, 240, 84, 240, 99, 240, 115, 240, 115, + 240, 115, 240, 100, 240, 99, 240, 115, 240, 115, 240, 115, + 240, 99, 240, 115, 0, 30, 48, 60, 26, 0, 7, 47, + 2, 159, 2, 240, 100, 240, 100, 240, 100, 240, 115, 240, + 116, 240, 100, 240, 100, 240, 100, 240, 115, 240, 116, 240, + 100, 240, 100, 240, 100, 240, 115, 240, 115, 240, 116, 240, + 100, 240, 100, 240, 115, 240, 115, 240, 116, 240, 100, 240, + 111, 3, 143, 3, 0, 30, 32, 40, 16, 118, 166, 163, + 210, 211, 211, 211, 210, 226, 211, 211, 211, 210, 226, 211, + 211, 211, 210, 211, 211, 211, 211, 210, 211, 211, 211, 210, + 226, 211, 211, 211, 210, 211, 211, 211, 214, 166, 160, 23, + 15, 240, 240, 50, 82, 97, 97, 98, 82, 83, 67, 82, + 82, 99, 67, 68, 52, 67, 67, 0, 51, 32, 40, 16, + 133, 166, 211, 211, 211, 210, 211, 211, 211, 211, 210, 211, + 211, 211, 210, 226, 211, 211, 211, 210, 226, 211, 211, 211, + 210, 211, 211, 211, 211, 210, 211, 211, 211, 210, 226, 166, + 166, 160, 18, 15, 240, 240, 99, 180, 166, 131, 34, 115, + 51, 83, 82, 67, 99, 0, 52, 112, 9, 7, 240, 227, + 52, 51, 0, 26, 96, 14, 8, 240, 66, 97, 98, 83, + 82, 99, 68, 67, 0, 27, 80, 30, 18, 0, 27, 103, + 154, 130, 84, 243, 243, 243, 243, 167, 123, 100, 83, 83, + 115, 67, 130, 83, 115, 84, 84, 93, 102, 51, 0, 20, + 112, 57, 19, 240, 240, 211, 240, 19, 240, 19, 240, 18, + 240, 19, 240, 19, 240, 19, 240, 19, 240, 18, 240, 19, + 240, 19, 53, 140, 116, 68, 115, 100, 83, 131, 83, 131, + 83, 131, 83, 131, 82, 147, 67, 131, 83, 131, 83, 115, + 99, 100, 85, 68, 107, 131, 37, 0, 22, 64, 27, 18, + 0, 27, 118, 170, 115, 82, 115, 227, 227, 243, 227, 243, + 243, 243, 243, 240, 19, 129, 100, 82, 138, 151, 0, 21, + 32, 56, 21, 0, 7, 19, 240, 51, 240, 51, 240, 50, + 240, 51, 240, 51, 240, 51, 240, 51, 240, 50, 240, 51, + 181, 35, 156, 132, 69, 116, 99, 131, 115, 115, 131, 115, + 131, 99, 146, 115, 131, 115, 131, 115, 131, 115, 131, 116, + 99, 148, 68, 156, 165, 51, 0, 24, 80, 28, 17, 0, + 26, 37, 184, 116, 52, 83, 99, 83, 99, 67, 115, 77, + 62, 51, 227, 227, 227, 228, 228, 82, 121, 150, 0, 20, + 16, 33, 17, 240, 240, 213, 167, 147, 211, 226, 227, 227, + 227, 226, 227, 186, 122, 163, 226, 227, 227, 227, 227, 226, + 227, 227, 227, 226, 242, 227, 227, 0, 20, 112, 46, 23, + 0, 35, 84, 52, 173, 147, 52, 195, 83, 179, 99, 179, + 99, 179, 99, 179, 83, 196, 51, 217, 210, 36, 242, 240, + 98, 240, 106, 220, 174, 131, 132, 115, 163, 115, 163, 115, + 147, 148, 100, 156, 231, 0, 7, 32, 49, 18, 240, 240, + 179, 243, 243, 242, 243, 243, 243, 243, 242, 243, 243, 38, + 115, 24, 100, 68, 99, 99, 84, 99, 83, 115, 83, 115, + 83, 99, 98, 115, 83, 115, 83, 115, 83, 114, 99, 99, + 83, 115, 83, 115, 83, 115, 0, 20, 112, 28, 11, 0, + 6, 19, 131, 115, 0, 7, 99, 131, 131, 130, 131, 131, + 131, 131, 130, 131, 131, 131, 130, 146, 131, 131, 0, 13, + 48, 38, 18, 0, 10, 67, 243, 227, 0, 13, 3, 243, + 243, 242, 240, 18, 243, 243, 243, 242, 243, 243, 243, 242, + 240, 18, 243, 243, 243, 242, 240, 18, 243, 161, 51, 167, + 197, 0, 6, 57, 19, 240, 240, 211, 240, 19, 240, 19, + 240, 18, 240, 19, 240, 19, 240, 19, 240, 18, 240, 19, + 240, 19, 240, 19, 100, 99, 83, 130, 83, 131, 52, 147, + 36, 163, 20, 183, 200, 165, 19, 164, 35, 163, 67, 146, + 83, 146, 99, 115, 99, 115, 115, 99, 115, 0, 22, 16, + 32, 11, 240, 195, 131, 130, 146, 131, 131, 131, 130, 146, + 131, 131, 131, 130, 146, 131, 131, 131, 130, 146, 131, 131, + 131, 130, 146, 131, 131, 0, 13, 48, 55, 28, 0, 42, + 66, 53, 85, 115, 24, 40, 101, 69, 68, 100, 84, 99, + 99, 100, 99, 83, 115, 115, 83, 115, 115, 83, 115, 99, + 99, 114, 115, 98, 115, 115, 83, 115, 115, 83, 115, 114, + 99, 114, 115, 99, 99, 115, 98, 115, 115, 83, 115, 115, + 0, 32, 16, 39, 18, 0, 27, 51, 53, 115, 24, 100, + 68, 99, 99, 84, 99, 83, 115, 83, 115, 83, 99, 98, + 115, 83, 115, 83, 115, 83, 114, 99, 99, 83, 115, 83, + 115, 83, 115, 0, 20, 112, 35, 20, 0, 31, 5, 202, + 147, 84, 115, 115, 99, 147, 67, 163, 67, 163, 51, 179, + 51, 179, 51, 163, 67, 163, 67, 147, 99, 115, 116, 83, + 154, 198, 0, 23, 96, 50, 20, 0, 30, 67, 53, 156, + 132, 69, 115, 100, 99, 131, 99, 131, 99, 131, 99, 131, + 98, 147, 83, 131, 99, 131, 99, 115, 115, 100, 101, 68, + 124, 131, 37, 163, 240, 34, 240, 35, 240, 35, 240, 35, + 240, 35, 240, 34, 0, 7, 32, 51, 19, 0, 29, 37, + 35, 139, 100, 69, 84, 99, 99, 115, 83, 131, 83, 131, + 67, 146, 83, 131, 83, 131, 83, 131, 83, 131, 84, 99, + 116, 68, 124, 133, 51, 240, 18, 240, 19, 240, 19, 240, + 19, 240, 19, 240, 18, 240, 19, 0, 5, 96, 26, 15, + 0, 22, 115, 51, 99, 21, 98, 20, 117, 164, 179, 195, + 194, 195, 195, 195, 195, 194, 195, 195, 195, 0, 18, 48, + 24, 16, 0, 24, 102, 137, 99, 82, 83, 211, 211, 214, + 184, 152, 181, 211, 211, 211, 67, 83, 90, 134, 0, 19, + 29, 14, 0, 12, 114, 194, 179, 179, 179, 138, 59, 99, + 179, 179, 178, 179, 179, 179, 178, 179, 179, 179, 179, 50, + 104, 117, 0, 16, 80, 37, 18, 0, 27, 50, 115, 83, + 115, 83, 115, 83, 114, 99, 99, 98, 115, 83, 115, 83, + 115, 83, 114, 98, 115, 98, 115, 83, 115, 83, 100, 83, + 84, 108, 117, 51, 0, 21, 37, 18, 0, 27, 3, 147, + 51, 131, 67, 131, 67, 115, 99, 98, 115, 83, 115, 67, + 131, 67, 131, 51, 147, 50, 178, 35, 178, 34, 194, 19, + 194, 18, 213, 212, 0, 21, 96, 61, 25, 0, 37, 67, + 115, 114, 51, 100, 99, 51, 100, 98, 67, 82, 18, 83, + 67, 82, 18, 82, 83, 66, 34, 67, 83, 66, 34, 66, + 114, 50, 50, 51, 114, 50, 50, 50, 131, 18, 66, 35, + 131, 18, 66, 34, 149, 82, 19, 149, 82, 18, 162, 17, + 101, 164, 100, 179, 116, 0, 29, 48, 38, 21, 0, 32, + 3, 131, 131, 99, 147, 83, 179, 51, 196, 19, 230, 240, + 20, 240, 35, 240, 51, 240, 37, 242, 35, 210, 51, 194, + 83, 163, 84, 131, 115, 100, 132, 0, 24, 32, 52, 22, + 0, 33, 67, 147, 115, 131, 131, 130, 163, 99, 163, 98, + 179, 83, 179, 67, 195, 66, 226, 51, 227, 34, 243, 19, + 243, 18, 240, 21, 240, 52, 240, 51, 240, 67, 240, 66, + 240, 66, 240, 82, 240, 66, 240, 67, 246, 240, 20, 0, + 7, 96, 23, 19, 0, 29, 12, 124, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 244, 237, 109, 0, 22, + 16, 11, 21, 0, 44, 95, 3, 63, 3, 0, 47, 80, + 13, 38, 0, 80, 111, 15, 5, 63, 15, 5, 0, 85, + 112, 21, 15, 240, 240, 51, 51, 98, 51, 99, 51, 98, + 51, 99, 50, 114, 51, 99, 50, 0, 53, 48, 14, 15, + 0, 7, 115, 66, 70, 50, 66, 38, 66, 83, 0, 55,}; + +//***************************************************************************** +// +// The font definition for the 38 point Cmss italic font. +// +//***************************************************************************** +const tFont g_sFontCmss38i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 34, + + // + // The height of the font. + // + 37, + + // + // The baseline of the font. + // + 28, + + // + // The offset to each character in the font. + // + { + 0, 5, 36, 59, 160, 217, 304, 378, + 392, 432, 472, 507, 558, 573, 582, 592, + 670, 720, 752, 803, 851, 901, 950, 998, + 1044, 1093, 1145, 1160, 1179, 1209, 1222, 1255, + 1289, 1357, 1416, 1469, 1524, 1578, 1634, 1688, + 1743, 1802, 1834, 1889, 1953, 1986, 2082, 2157, + 2220, 2274, 2350, 2405, 2457, 2515, 2573, 2638, + 2736, 2802, 2863, 2923, 2963, 2986, 3026, 3044, + 3053, 3067, 3097, 3154, 3181, 3237, 3265, 3298, + 3344, 3393, 3421, 3459, 3516, 3548, 3603, 3642, + 3677, 3727, 3778, 3804, 3828, 3857, 3894, 3931, + 3992, 4030, 4082, 4105, 4116, 4129, 4150, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss38iData +}; diff --git a/grlib/fonts/fontcmss40.c b/grlib/fonts/fontcmss40.c new file mode 100644 index 0000000..4f606d2 --- /dev/null +++ b/grlib/fonts/fontcmss40.c @@ -0,0 +1,469 @@ +//***************************************************************************** +// +// fontcmss40.c - Font definition for the 40pt Cmss font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 40 point +// Bold: no +// Italic: no +// Memory usage: 4552 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 40 point Cmss font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss40Data[4351] = +{ + 4, 17, 0, 85, 31, 7, 240, 99, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 240, 240, 35, 67, 67, 0, 9, 32, 23, + 14, 240, 240, 195, 67, 67, 67, 67, 67, 82, 82, 82, + 82, 66, 82, 82, 82, 82, 82, 0, 51, 48, 107, 31, + 0, 13, 33, 114, 240, 97, 114, 240, 82, 113, 240, 97, + 129, 240, 97, 114, 240, 82, 114, 240, 82, 113, 240, 97, + 129, 240, 97, 114, 240, 82, 114, 240, 82, 113, 240, 97, + 129, 240, 97, 114, 191, 12, 209, 129, 240, 97, 114, 240, + 97, 114, 240, 82, 113, 240, 98, 113, 240, 97, 129, 223, + 12, 178, 113, 240, 97, 129, 240, 97, 114, 240, 97, 114, + 240, 82, 113, 240, 97, 129, 240, 97, 114, 240, 97, 114, + 240, 82, 113, 240, 98, 113, 240, 97, 114, 240, 97, 114, + 240, 82, 113, 240, 98, 113, 0, 9, 112, 62, 19, 98, + 240, 34, 240, 34, 248, 155, 140, 100, 18, 51, 99, 34, + 81, 83, 50, 179, 50, 179, 50, 179, 50, 180, 34, 196, + 18, 199, 217, 200, 215, 194, 21, 178, 52, 162, 67, 162, + 67, 162, 67, 162, 67, 162, 67, 65, 82, 51, 83, 50, + 21, 108, 137, 197, 240, 18, 240, 34, 0, 20, 48, 96, + 31, 240, 240, 68, 225, 182, 194, 163, 35, 177, 179, 35, + 162, 163, 67, 145, 179, 67, 130, 179, 67, 114, 195, 67, + 113, 211, 67, 98, 211, 67, 97, 227, 67, 82, 243, 35, + 97, 240, 19, 35, 82, 240, 38, 97, 240, 68, 98, 240, + 210, 240, 225, 101, 240, 50, 87, 240, 33, 83, 51, 242, + 83, 51, 241, 83, 83, 210, 83, 83, 209, 99, 83, 194, + 99, 83, 193, 115, 83, 177, 131, 83, 162, 131, 83, 161, + 163, 51, 162, 163, 51, 161, 199, 162, 212, 0, 32, 76, + 28, 0, 11, 52, 240, 135, 240, 83, 35, 240, 82, 67, + 240, 51, 67, 240, 51, 67, 240, 51, 67, 240, 51, 51, + 240, 67, 51, 240, 67, 35, 240, 102, 240, 117, 161, 196, + 178, 179, 179, 165, 163, 147, 19, 131, 147, 35, 131, 131, + 67, 99, 131, 84, 67, 147, 100, 51, 147, 100, 35, 163, + 119, 180, 117, 212, 72, 97, 95, 8, 106, 57, 134, 118, + 0, 35, 80, 13, 7, 240, 99, 67, 67, 82, 82, 66, + 82, 82, 0, 26, 43, 13, 114, 162, 162, 163, 162, 163, + 162, 163, 163, 147, 163, 163, 163, 162, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 179, 163, 163, + 163, 179, 163, 178, 179, 178, 179, 178, 194, 194, 64, 43, + 13, 3, 178, 194, 179, 179, 163, 179, 163, 163, 179, 163, + 163, 163, 179, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 147, 163, 163, 163, 162, 163, 162, 163, + 162, 163, 162, 162, 162, 176, 38, 19, 99, 240, 19, 240, + 19, 240, 19, 178, 51, 50, 84, 35, 36, 84, 19, 20, + 137, 197, 215, 171, 116, 19, 20, 84, 35, 51, 163, 240, + 19, 240, 19, 240, 19, 0, 55, 112, 57, 29, 0, 30, + 65, 240, 209, 240, 209, 240, 209, 240, 209, 240, 209, 240, + 209, 240, 209, 240, 209, 240, 209, 240, 209, 240, 209, 240, + 31, 10, 240, 17, 240, 209, 240, 209, 240, 209, 240, 209, + 240, 209, 240, 209, 240, 209, 240, 209, 240, 209, 240, 209, + 240, 209, 0, 27, 48, 15, 7, 0, 23, 83, 67, 67, + 82, 82, 66, 82, 82, 240, 240, 160, 9, 14, 0, 36, + 106, 74, 0, 30, 32, 10, 7, 0, 23, 83, 67, 67, + 0, 9, 32, 83, 18, 209, 240, 18, 240, 17, 240, 33, + 240, 18, 240, 17, 240, 33, 240, 18, 240, 17, 240, 33, + 240, 18, 240, 17, 240, 33, 240, 18, 240, 18, 240, 17, + 240, 18, 240, 18, 240, 17, 240, 18, 240, 18, 240, 17, + 240, 18, 240, 18, 240, 17, 240, 18, 240, 18, 240, 17, + 240, 33, 240, 18, 240, 17, 240, 33, 240, 18, 240, 17, + 240, 33, 240, 18, 240, 17, 240, 33, 240, 18, 240, 17, + 240, 32, 55, 20, 0, 10, 86, 216, 179, 67, 147, 99, + 115, 131, 99, 131, 98, 162, 83, 163, 67, 163, 67, 163, + 67, 163, 67, 163, 67, 163, 67, 163, 67, 163, 67, 163, + 67, 163, 67, 163, 67, 163, 83, 132, 83, 131, 99, 131, + 115, 99, 132, 68, 154, 198, 0, 26, 16, 34, 17, 0, + 9, 49, 212, 152, 148, 19, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 157, 77, 0, 21, 96, 42, 19, 0, 10, 21, + 201, 155, 116, 69, 98, 116, 83, 132, 66, 163, 81, 163, + 240, 19, 240, 19, 240, 19, 243, 240, 19, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 255, 79, 79, 0, 24, + 32, 52, 19, 0, 10, 21, 201, 147, 68, 115, 115, 98, + 131, 97, 147, 240, 19, 240, 19, 240, 18, 240, 19, 243, + 198, 214, 240, 36, 240, 35, 240, 19, 240, 35, 240, 19, + 240, 19, 240, 19, 65, 179, 66, 147, 83, 131, 100, 83, + 138, 182, 0, 24, 112, 57, 21, 0, 11, 84, 240, 36, + 240, 21, 240, 21, 242, 19, 242, 19, 227, 19, 226, 35, + 211, 35, 195, 51, 195, 51, 179, 67, 179, 67, 163, 83, + 163, 83, 147, 99, 147, 99, 143, 2, 79, 2, 227, 240, + 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, 0, + 27, 32, 41, 18, 0, 9, 28, 108, 108, 99, 243, 243, + 243, 243, 243, 243, 243, 21, 154, 133, 51, 116, 83, 99, + 99, 240, 19, 243, 243, 243, 243, 243, 65, 147, 82, 131, + 84, 68, 122, 166, 0, 23, 80, 53, 19, 0, 10, 54, + 184, 163, 243, 243, 240, 18, 240, 19, 240, 18, 240, 34, + 53, 131, 24, 118, 52, 100, 115, 84, 115, 83, 147, 67, + 147, 67, 147, 67, 147, 67, 147, 82, 147, 82, 147, 83, + 130, 99, 115, 115, 98, 147, 52, 153, 197, 0, 24, 112, + 52, 19, 0, 9, 79, 79, 79, 240, 19, 240, 18, 240, + 18, 240, 19, 243, 240, 18, 240, 19, 240, 18, 240, 19, + 240, 19, 243, 240, 19, 240, 19, 243, 240, 19, 240, 19, + 240, 19, 243, 240, 19, 240, 19, 240, 19, 240, 19, 240, + 19, 0, 25, 32, 53, 19, 0, 10, 21, 201, 147, 83, + 115, 115, 98, 146, 98, 146, 83, 147, 82, 146, 98, 146, + 99, 115, 115, 83, 167, 199, 164, 52, 115, 115, 99, 115, + 83, 147, 67, 147, 67, 147, 67, 147, 67, 147, 83, 115, + 99, 115, 116, 67, 153, 197, 0, 24, 112, 55, 19, 0, + 10, 21, 216, 148, 52, 131, 98, 115, 115, 98, 131, 83, + 146, 83, 147, 67, 147, 67, 147, 67, 147, 67, 147, 67, + 147, 83, 116, 83, 116, 100, 54, 120, 19, 133, 51, 240, + 18, 240, 19, 240, 18, 240, 19, 240, 18, 146, 67, 153, + 197, 0, 25, 16, 15, 7, 0, 11, 51, 67, 67, 0, + 10, 19, 67, 67, 0, 9, 32, 20, 7, 0, 11, 51, + 67, 67, 0, 10, 19, 67, 67, 82, 82, 66, 82, 82, + 240, 240, 160, 32, 7, 0, 8, 99, 67, 67, 240, 240, + 35, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 240, 48, 13, + 29, 0, 58, 15, 10, 0, 22, 47, 10, 0, 58, 64, + 35, 17, 0, 21, 115, 227, 227, 0, 10, 35, 227, 227, + 227, 227, 227, 211, 227, 212, 211, 211, 212, 196, 211, 227, + 227, 227, 227, 145, 83, 99, 107, 119, 240, 240, 176, 34, + 16, 0, 6, 39, 122, 99, 83, 81, 131, 211, 211, 211, + 211, 195, 196, 180, 195, 196, 195, 196, 195, 211, 211, 211, + 211, 0, 9, 83, 211, 211, 0, 21, 16, 71, 24, 0, + 10, 22, 240, 26, 197, 68, 164, 115, 148, 147, 116, 88, + 115, 89, 99, 83, 53, 83, 67, 84, 83, 67, 84, 67, + 67, 115, 67, 67, 115, 67, 67, 115, 67, 67, 115, 67, + 67, 115, 67, 67, 115, 67, 67, 115, 83, 67, 83, 99, + 67, 83, 99, 83, 51, 131, 87, 148, 85, 180, 240, 100, + 240, 101, 84, 203, 246, 0, 31, 16, 66, 26, 0, 10, + 116, 240, 116, 240, 117, 240, 86, 240, 87, 240, 66, 35, + 240, 51, 35, 240, 51, 36, 240, 34, 67, 240, 19, 67, + 240, 19, 68, 227, 99, 227, 99, 227, 100, 195, 131, 195, + 131, 195, 132, 175, 1, 175, 1, 163, 164, 131, 195, 131, + 196, 115, 196, 99, 227, 99, 228, 83, 228, 67, 240, 19, + 0, 33, 54, 23, 0, 8, 92, 191, 131, 133, 115, 164, + 99, 180, 83, 195, 83, 195, 83, 195, 83, 195, 83, 179, + 99, 163, 115, 132, 141, 174, 147, 133, 115, 164, 99, 195, + 83, 196, 67, 211, 67, 211, 67, 211, 67, 211, 67, 195, + 83, 180, 83, 149, 111, 141, 0, 30, 56, 23, 0, 9, + 103, 235, 173, 149, 99, 132, 161, 116, 240, 67, 240, 68, + 240, 67, 240, 83, 240, 67, 240, 83, 240, 83, 240, 83, + 240, 83, 240, 83, 240, 83, 240, 84, 240, 83, 240, 83, + 240, 99, 240, 83, 240, 99, 240, 99, 177, 148, 115, 173, + 200, 0, 29, 80, 57, 25, 0, 9, 61, 207, 163, 148, + 147, 164, 131, 195, 115, 211, 99, 211, 99, 227, 83, 227, + 83, 227, 83, 243, 67, 243, 67, 243, 67, 243, 67, 243, + 67, 243, 67, 243, 67, 243, 67, 227, 83, 227, 83, 211, + 99, 211, 99, 195, 115, 179, 131, 148, 159, 173, 0, 32, + 96, 59, 21, 0, 7, 127, 1, 95, 1, 95, 1, 83, + 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, + 240, 51, 240, 51, 240, 63, 111, 99, 240, 51, 240, 51, + 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, + 240, 51, 240, 63, 2, 79, 2, 79, 2, 0, 26, 96, + 58, 20, 0, 7, 79, 1, 79, 1, 79, 1, 67, 240, + 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, + 35, 240, 35, 240, 46, 110, 99, 240, 35, 240, 35, 240, + 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, + 35, 240, 35, 240, 35, 240, 35, 0, 27, 16, 54, 24, + 0, 10, 23, 252, 175, 133, 116, 116, 178, 100, 240, 83, + 240, 84, 240, 83, 240, 99, 240, 84, 240, 83, 240, 99, + 240, 99, 240, 99, 240, 99, 240, 99, 152, 68, 136, 83, + 211, 84, 195, 99, 195, 100, 179, 116, 163, 133, 116, 159, + 173, 231, 0, 31, 61, 23, 0, 8, 83, 211, 67, 211, + 67, 211, 67, 211, 67, 211, 67, 211, 67, 211, 67, 211, + 67, 211, 67, 211, 67, 211, 67, 211, 79, 4, 79, 4, + 67, 211, 67, 211, 67, 211, 67, 211, 67, 211, 67, 211, + 67, 211, 67, 211, 67, 211, 67, 211, 67, 211, 67, 211, + 67, 211, 0, 29, 32, 33, 7, 240, 99, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 0, + 9, 32, 36, 17, 0, 7, 83, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 81, 116, 82, 84, 91, 151, 0, + 22, 16, 62, 24, 0, 9, 3, 196, 83, 195, 99, 179, + 115, 163, 131, 148, 131, 132, 147, 116, 163, 100, 179, 84, + 195, 68, 211, 52, 227, 37, 227, 23, 211, 19, 20, 198, + 51, 198, 52, 181, 84, 164, 115, 163, 132, 147, 147, 147, + 148, 131, 164, 115, 179, 115, 180, 99, 196, 83, 211, 83, + 212, 0, 30, 64, 58, 19, 0, 7, 19, 240, 19, 240, + 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, + 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, + 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, + 19, 240, 19, 240, 19, 240, 19, 240, 31, 79, 79, 0, + 24, 32, 100, 28, 0, 10, 69, 229, 69, 229, 69, 229, + 70, 198, 70, 198, 67, 18, 194, 19, 67, 19, 163, 19, + 67, 19, 163, 19, 67, 34, 162, 35, 67, 35, 131, 35, + 67, 35, 131, 35, 67, 50, 130, 51, 67, 51, 99, 51, + 67, 51, 99, 51, 67, 66, 98, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 82, 66, 83, 67, 83, 35, 83, + 67, 83, 35, 83, 67, 98, 34, 99, 67, 99, 18, 99, + 67, 102, 99, 67, 116, 115, 67, 116, 115, 67, 116, 115, + 67, 240, 51, 0, 35, 64, 80, 23, 0, 8, 85, 179, + 70, 163, 70, 163, 70, 163, 67, 19, 147, 67, 19, 147, + 67, 35, 131, 67, 35, 131, 67, 51, 115, 67, 51, 115, + 67, 52, 99, 67, 67, 99, 67, 68, 83, 67, 83, 83, + 67, 84, 67, 67, 99, 67, 67, 100, 51, 67, 115, 51, + 67, 115, 51, 67, 131, 35, 67, 131, 35, 67, 147, 19, + 67, 147, 19, 67, 166, 67, 166, 67, 166, 67, 181, 0, + 29, 32, 67, 27, 0, 11, 38, 240, 59, 244, 84, 211, + 147, 179, 179, 147, 211, 131, 211, 115, 243, 99, 243, 98, + 240, 35, 67, 240, 35, 67, 240, 35, 67, 240, 35, 67, + 240, 35, 67, 240, 35, 67, 240, 35, 67, 240, 35, 83, + 244, 83, 243, 99, 243, 115, 211, 131, 211, 147, 179, 179, + 147, 212, 84, 251, 240, 55, 0, 35, 32, 56, 22, 0, + 8, 44, 174, 131, 133, 99, 164, 83, 179, 83, 180, 67, + 195, 67, 195, 67, 195, 67, 195, 67, 195, 67, 179, 83, + 163, 99, 133, 110, 140, 163, 240, 67, 240, 67, 240, 67, + 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, + 240, 67, 0, 29, 112, 82, 27, 0, 11, 38, 240, 59, + 244, 84, 211, 147, 179, 179, 147, 211, 131, 211, 115, 243, + 99, 243, 99, 240, 19, 67, 240, 35, 67, 240, 35, 67, + 240, 35, 67, 240, 35, 67, 240, 35, 67, 240, 35, 67, + 240, 35, 83, 240, 19, 83, 243, 99, 99, 99, 115, 99, + 67, 131, 100, 51, 147, 100, 19, 179, 103, 196, 70, 236, + 240, 42, 240, 163, 240, 148, 240, 147, 240, 148, 240, 148, + 0, 17, 64, 58, 24, 0, 9, 13, 191, 147, 149, 115, + 180, 99, 195, 99, 211, 83, 211, 83, 211, 83, 211, 83, + 196, 83, 180, 99, 149, 127, 1, 142, 163, 115, 179, 116, + 163, 131, 163, 132, 147, 147, 147, 148, 131, 163, 131, 179, + 115, 180, 99, 195, 99, 196, 83, 211, 83, 227, 0, 30, + 64, 51, 20, 0, 8, 22, 203, 141, 101, 83, 115, 145, + 99, 240, 35, 240, 35, 240, 35, 240, 36, 240, 36, 240, + 23, 233, 217, 231, 240, 21, 240, 35, 240, 36, 240, 35, + 240, 35, 240, 35, 240, 35, 66, 163, 84, 101, 109, 139, + 198, 0, 26, 16, 60, 27, 0, 10, 31, 8, 79, 8, + 79, 8, 227, 240, 147, 240, 147, 240, 147, 240, 147, 240, + 147, 240, 147, 240, 147, 240, 147, 240, 147, 240, 147, 240, + 147, 240, 147, 240, 147, 240, 147, 240, 147, 240, 147, 240, + 147, 240, 147, 240, 147, 240, 147, 240, 147, 240, 147, 240, + 147, 0, 35, 64, 59, 23, 0, 8, 83, 211, 67, 211, + 67, 211, 67, 211, 67, 211, 67, 211, 67, 211, 67, 211, + 67, 211, 67, 211, 67, 211, 67, 211, 67, 211, 67, 211, + 67, 211, 67, 211, 67, 211, 67, 211, 67, 211, 67, 211, + 67, 211, 83, 179, 99, 179, 115, 147, 148, 84, 187, 230, + 0, 30, 16, 70, 27, 0, 10, 19, 240, 35, 68, 243, + 84, 243, 99, 243, 100, 211, 131, 211, 131, 211, 132, 179, + 163, 179, 163, 163, 180, 147, 195, 147, 196, 115, 212, 115, + 227, 115, 228, 83, 240, 19, 83, 240, 19, 82, 240, 36, + 51, 240, 51, 51, 240, 51, 50, 240, 68, 19, 240, 83, + 19, 240, 83, 18, 240, 117, 240, 117, 240, 116, 0, 35, + 64, 106, 37, 0, 13, 115, 195, 195, 67, 181, 179, 68, + 165, 179, 68, 165, 163, 99, 162, 18, 163, 99, 147, 19, + 147, 100, 131, 19, 131, 131, 130, 35, 131, 131, 130, 35, + 131, 131, 115, 51, 115, 132, 99, 51, 99, 163, 98, 67, + 99, 163, 83, 68, 83, 164, 67, 83, 82, 180, 67, 83, + 67, 195, 66, 99, 67, 195, 51, 115, 51, 196, 35, 115, + 50, 227, 35, 115, 35, 227, 34, 131, 35, 227, 34, 147, + 19, 227, 19, 147, 18, 240, 21, 166, 240, 21, 166, 240, + 21, 180, 240, 52, 180, 240, 51, 196, 0, 47, 80, 66, + 27, 0, 10, 20, 212, 116, 195, 148, 164, 163, 148, 180, + 131, 212, 100, 227, 84, 244, 67, 240, 36, 36, 240, 56, + 240, 86, 240, 101, 240, 132, 240, 132, 240, 118, 240, 88, + 240, 67, 35, 240, 51, 67, 240, 20, 68, 243, 99, 227, + 131, 196, 132, 179, 164, 147, 195, 132, 196, 115, 228, 83, + 240, 20, 0, 34, 32, 65, 27, 0, 10, 20, 240, 19, + 68, 244, 84, 227, 116, 195, 132, 180, 148, 163, 179, 147, + 196, 116, 212, 99, 243, 83, 240, 20, 52, 240, 36, 35, + 240, 67, 19, 240, 87, 240, 101, 240, 131, 240, 147, 240, + 147, 240, 147, 240, 147, 240, 147, 240, 147, 240, 147, 240, + 147, 240, 147, 240, 147, 240, 147, 0, 35, 64, 62, 23, + 0, 8, 111, 2, 111, 2, 240, 68, 240, 52, 240, 67, + 240, 68, 240, 67, 240, 68, 240, 52, 240, 67, 240, 68, + 240, 52, 240, 67, 240, 68, 240, 67, 240, 68, 240, 52, + 240, 67, 240, 68, 240, 52, 240, 67, 240, 68, 240, 67, + 240, 68, 240, 63, 4, 79, 4, 79, 4, 0, 29, 32, + 42, 10, 166, 70, 67, 115, 115, 115, 115, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, + 115, 115, 115, 118, 70, 64, 23, 14, 240, 240, 210, 82, + 82, 82, 82, 82, 66, 82, 82, 82, 83, 67, 67, 67, + 67, 67, 0, 51, 32, 42, 10, 166, 70, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 115, 115, 70, 70, 64, 19, + 16, 0, 6, 83, 197, 163, 18, 162, 50, 130, 67, 99, + 83, 67, 114, 0, 60, 64, 9, 7, 240, 211, 67, 67, + 0, 29, 48, 14, 7, 240, 114, 82, 82, 66, 82, 83, + 67, 67, 0, 25, 112, 32, 17, 0, 28, 22, 138, 115, + 83, 243, 227, 227, 227, 152, 122, 85, 67, 68, 99, 67, + 115, 67, 115, 67, 115, 68, 69, 92, 102, 35, 0, 21, + 96, 59, 19, 0, 7, 19, 240, 19, 240, 19, 240, 19, + 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, + 240, 19, 53, 141, 101, 68, 99, 116, 83, 131, 83, 147, + 67, 147, 67, 147, 67, 147, 67, 147, 67, 147, 67, 147, + 67, 131, 84, 100, 85, 68, 108, 115, 37, 0, 24, 112, + 28, 18, 0, 29, 119, 170, 100, 83, 99, 227, 243, 227, + 243, 243, 243, 243, 240, 19, 243, 244, 129, 100, 83, 123, + 151, 0, 23, 32, 59, 19, 0, 8, 83, 240, 19, 240, + 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, + 19, 240, 19, 134, 35, 124, 100, 69, 84, 115, 83, 131, + 68, 131, 67, 147, 67, 147, 67, 147, 67, 147, 67, 147, + 67, 147, 83, 131, 84, 100, 100, 69, 120, 19, 133, 51, + 0, 24, 32, 35, 19, 0, 31, 70, 186, 132, 68, 100, + 114, 99, 131, 67, 147, 79, 79, 67, 240, 19, 240, 19, + 240, 35, 240, 19, 240, 35, 145, 116, 83, 139, 166, 0, + 24, 80, 34, 16, 0, 6, 117, 151, 131, 210, 211, 211, + 211, 211, 211, 211, 170, 106, 147, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 0, 21, 32, + 50, 21, 0, 34, 100, 68, 126, 99, 67, 179, 68, 147, + 99, 147, 99, 147, 99, 147, 99, 163, 67, 180, 51, 185, + 178, 36, 210, 240, 67, 240, 60, 173, 127, 84, 133, 67, + 179, 67, 179, 67, 179, 68, 148, 84, 101, 124, 184, 0, + 6, 48, 51, 17, 0, 6, 51, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 53, 99, 24, 85, 68, 68, 99, + 67, 115, 67, 115, 67, 115, 67, 115, 67, 115, 67, 115, + 67, 115, 67, 115, 67, 115, 67, 115, 67, 115, 67, 115, + 67, 115, 0, 21, 96, 28, 7, 240, 211, 67, 67, 0, + 5, 99, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 0, 9, 32, 38, 13, 0, + 7, 35, 163, 163, 0, 11, 3, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 81, 52, 72, 88, 116, 240, 240, 48, 48, + 18, 0, 6, 99, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 100, 83, 99, 99, 83, 115, 67, 131, 51, 147, + 36, 147, 20, 168, 169, 149, 20, 132, 51, 131, 68, 115, + 83, 115, 99, 99, 100, 83, 115, 83, 131, 0, 23, 33, + 7, 240, 99, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 0, 9, 32, 58, 27, 0, 43, + 115, 38, 70, 99, 24, 40, 85, 70, 68, 68, 100, 99, + 67, 115, 115, 67, 115, 115, 67, 115, 115, 67, 115, 115, + 67, 115, 115, 67, 115, 115, 67, 115, 115, 67, 115, 115, + 67, 115, 115, 67, 115, 115, 67, 115, 115, 67, 115, 115, + 67, 115, 115, 0, 34, 32, 41, 17, 0, 27, 83, 53, + 99, 24, 85, 68, 68, 99, 67, 115, 67, 115, 67, 115, + 67, 115, 67, 115, 67, 115, 67, 115, 67, 115, 67, 115, + 67, 115, 67, 115, 67, 115, 67, 115, 0, 21, 96, 37, + 20, 0, 33, 22, 217, 148, 68, 131, 100, 99, 131, 98, + 163, 67, 163, 67, 163, 67, 163, 67, 163, 67, 163, 68, + 147, 83, 131, 100, 99, 132, 68, 154, 198, 0, 26, 16, + 54, 19, 0, 30, 115, 53, 141, 101, 68, 99, 116, 83, + 131, 83, 132, 67, 147, 67, 147, 67, 147, 67, 147, 67, + 147, 67, 132, 67, 131, 84, 100, 85, 68, 108, 115, 37, + 147, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, + 19, 240, 19, 0, 6, 96, 56, 19, 0, 31, 69, 35, + 124, 100, 69, 84, 100, 83, 131, 68, 131, 67, 147, 67, + 147, 67, 147, 67, 147, 67, 147, 68, 131, 83, 131, 84, + 100, 100, 69, 120, 19, 133, 51, 240, 19, 240, 19, 240, + 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, + 240, 192, 27, 13, 0, 21, 19, 66, 67, 36, 67, 21, + 70, 116, 148, 147, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 0, 17, 64, 27, 16, 0, 26, 55, 122, 99, + 82, 83, 211, 211, 213, 200, 152, 167, 212, 211, 211, 65, + 131, 67, 83, 91, 119, 0, 20, 112, 30, 16, 0, 16, + 51, 211, 211, 211, 211, 171, 91, 131, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 212, 49, 152, 134, 0, + 20, 96, 41, 17, 0, 27, 83, 115, 67, 115, 67, 115, + 67, 115, 67, 115, 67, 115, 67, 115, 67, 115, 67, 115, + 67, 115, 67, 115, 67, 115, 67, 115, 67, 100, 68, 69, + 88, 19, 101, 51, 0, 21, 96, 38, 19, 0, 30, 115, + 147, 67, 147, 68, 115, 99, 115, 99, 115, 115, 83, 131, + 83, 131, 83, 147, 51, 163, 51, 163, 51, 179, 19, 195, + 19, 195, 18, 226, 18, 229, 243, 0, 25, 64, 27, 0, + 43, 115, 115, 115, 67, 115, 115, 67, 101, 99, 83, 85, + 99, 83, 82, 18, 83, 99, 82, 18, 83, 99, 67, 19, + 67, 115, 50, 35, 51, 131, 50, 50, 51, 131, 35, 51, + 35, 147, 19, 51, 34, 163, 18, 67, 19, 163, 18, 82, + 19, 178, 18, 86, 180, 101, 196, 116, 196, 116, 0, 34, + 96, 39, 20, 0, 32, 83, 132, 84, 115, 116, 83, 147, + 67, 179, 36, 195, 19, 229, 244, 240, 35, 240, 21, 227, + 19, 195, 35, 195, 51, 163, 83, 131, 115, 100, 116, 68, + 147, 0, 25, 64, 51, 19, 0, 30, 115, 147, 67, 147, + 83, 115, 99, 115, 99, 115, 115, 83, 131, 83, 147, 67, + 147, 51, 163, 51, 179, 35, 179, 34, 210, 19, 213, 229, + 244, 243, 240, 19, 240, 19, 240, 18, 240, 19, 240, 18, + 240, 19, 198, 213, 0, 6, 64, 23, 18, 0, 29, 61, + 93, 212, 227, 228, 212, 227, 228, 212, 212, 227, 228, 212, + 227, 227, 238, 78, 0, 23, 11, 22, 0, 52, 47, 3, + 79, 3, 0, 52, 96, 13, 41, 0, 97, 63, 15, 7, + 79, 15, 7, 0, 97, 112, 21, 15, 0, 5, 115, 51, + 98, 66, 99, 51, 99, 51, 98, 66, 99, 51, 98, 66, + 0, 57, 16, 16, 16, 0, 8, 35, 82, 86, 50, 91, + 67, 53, 82, 83, 0, 62, 96, +}; + +//***************************************************************************** +// +// The font definition for the 40 point Cmss font. +// +//***************************************************************************** +const tFont g_sFontCmss40 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 36, + + // + // The height of the font. + // + 40, + + // + // The baseline of the font. + // + 30, + + // + // The offset to each character in the font. + // + { + 0, 4, 35, 58, 165, 227, 323, 399, + 412, 455, 498, 536, 593, 608, 617, 627, + 710, 765, 799, 841, 893, 950, 991, 1044, + 1096, 1149, 1204, 1219, 1239, 1271, 1284, 1319, + 1353, 1424, 1490, 1544, 1600, 1657, 1716, 1774, + 1828, 1889, 1922, 1958, 2020, 2078, 2178, 2258, + 2325, 2381, 2463, 2521, 2572, 2632, 2691, 2761, + 2867, 2933, 2998, 3060, 3102, 3125, 3167, 3186, + 3195, 3209, 3241, 3300, 3328, 3387, 3422, 3456, + 3506, 3557, 3585, 3623, 3671, 3704, 3762, 3803, + 3840, 3894, 3950, 3977, 4004, 4034, 4075, 4113, + 4177, 4216, 4267, 4290, 4301, 4314, 4335, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss40Data +}; diff --git a/grlib/fonts/fontcmss40b.c b/grlib/fonts/fontcmss40b.c new file mode 100644 index 0000000..d115bd2 --- /dev/null +++ b/grlib/fonts/fontcmss40b.c @@ -0,0 +1,480 @@ +//***************************************************************************** +// +// fontcmss40b.c - Font definition for the 40pt Cmss bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 40 point +// Bold: yes +// Italic: no +// Memory usage: 4688 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 40 point Cmss bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss40bData[4485] = +{ + 4, 17, 0, 85, 32, 9, 240, 197, 69, 69, 69, 69, + 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, + 69, 69, 240, 240, 21, 69, 69, 69, 69, 0, 11, 96, + 25, 18, 0, 6, 101, 69, 69, 69, 69, 69, 69, 69, + 69, 69, 83, 99, 99, 99, 83, 99, 99, 99, 0, 63, + 96, 104, 35, 0, 14, 115, 99, 240, 131, 99, 240, 116, + 99, 240, 116, 84, 240, 115, 99, 240, 116, 99, 240, 116, + 84, 240, 115, 99, 240, 131, 99, 240, 116, 84, 207, 14, + 95, 15, 1, 79, 15, 1, 95, 14, 243, 99, 240, 131, + 99, 240, 116, 84, 240, 115, 99, 240, 131, 99, 255, 14, + 95, 15, 1, 79, 15, 1, 95, 14, 196, 84, 240, 115, + 100, 240, 115, 99, 240, 131, 99, 240, 116, 84, 240, 115, + 99, 240, 131, 99, 240, 116, 99, 240, 116, 84, 240, 115, + 99, 240, 131, 99, 240, 131, 99, 0, 11, 63, 22, 129, + 240, 83, 240, 67, 240, 40, 205, 143, 111, 1, 101, 19, + 52, 85, 35, 82, 85, 35, 197, 35, 197, 35, 198, 19, + 202, 220, 189, 173, 173, 202, 195, 23, 179, 38, 179, 53, + 179, 53, 65, 99, 53, 67, 67, 53, 69, 35, 37, 95, + 2, 95, 1, 141, 185, 240, 19, 240, 67, 0, 23, 64, + 101, 39, 70, 240, 50, 186, 243, 187, 212, 165, 52, 196, + 165, 69, 180, 165, 84, 164, 181, 84, 148, 197, 84, 132, + 213, 84, 132, 213, 84, 116, 229, 84, 100, 245, 84, 84, + 240, 37, 52, 100, 240, 44, 84, 240, 74, 84, 240, 118, + 101, 240, 240, 68, 102, 240, 116, 89, 240, 84, 91, 240, + 53, 85, 36, 240, 52, 85, 68, 240, 20, 101, 68, 244, + 117, 68, 229, 117, 68, 228, 133, 68, 212, 149, 68, 196, + 165, 68, 181, 165, 68, 180, 197, 36, 180, 219, 179, 249, + 195, 240, 37, 0, 40, 74, 32, 0, 13, 21, 240, 169, + 240, 123, 240, 85, 52, 240, 84, 84, 240, 52, 100, 240, + 52, 100, 240, 52, 100, 240, 52, 84, 240, 68, 68, 240, + 85, 36, 130, 201, 148, 168, 148, 182, 180, 182, 165, 153, + 148, 148, 22, 116, 148, 54, 85, 133, 70, 53, 149, 86, + 21, 165, 106, 181, 120, 198, 89, 113, 79, 13, 95, 12, + 109, 43, 135, 151, 0, 40, 80, 15, 9, 240, 197, 69, + 69, 69, 69, 83, 99, 83, 99, 0, 32, 32, 43, 15, + 131, 179, 179, 180, 164, 180, 164, 180, 164, 180, 165, 165, + 165, 164, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 180, 181, 165, 165, 180, 180, 196, 180, 196, 180, + 196, 195, 211, 211, 64, 43, 15, 3, 211, 211, 196, 196, + 180, 196, 181, 180, 180, 181, 165, 165, 180, 181, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 164, 165, 165, + 165, 164, 180, 164, 180, 179, 180, 164, 179, 179, 179, 192, + 42, 20, 114, 240, 36, 240, 20, 240, 20, 164, 50, 52, + 69, 34, 37, 70, 18, 22, 94, 138, 212, 218, 142, 86, + 18, 22, 69, 34, 37, 68, 50, 52, 164, 240, 20, 240, + 20, 240, 34, 0, 53, 112, 65, 33, 0, 26, 51, 240, + 243, 240, 243, 240, 243, 240, 243, 240, 243, 240, 243, 240, + 243, 240, 243, 240, 243, 240, 243, 240, 243, 240, 63, 12, + 95, 14, 79, 14, 95, 12, 240, 51, 240, 243, 240, 243, + 240, 243, 240, 243, 240, 243, 240, 243, 240, 243, 240, 243, + 240, 243, 240, 243, 240, 243, 240, 243, 0, 22, 96, 16, + 9, 0, 28, 21, 69, 69, 69, 69, 83, 99, 83, 99, + 0, 7, 64, 10, 15, 0, 35, 91, 75, 75, 0, 34, + 32, 12, 9, 0, 28, 21, 69, 69, 69, 69, 0, 11, + 96, 83, 21, 227, 240, 51, 240, 36, 240, 35, 240, 36, + 240, 36, 240, 35, 240, 36, 240, 36, 240, 35, 240, 36, + 240, 35, 240, 51, 240, 36, 240, 35, 240, 36, 240, 36, + 240, 35, 240, 36, 240, 35, 240, 51, 240, 36, 240, 35, + 240, 36, 240, 36, 240, 35, 240, 36, 240, 35, 240, 51, + 240, 36, 240, 35, 240, 36, 240, 36, 240, 35, 240, 36, + 240, 36, 240, 35, 240, 36, 240, 35, 240, 51, 240, 48, + 55, 21, 0, 8, 71, 218, 172, 133, 53, 117, 85, 101, + 85, 100, 116, 85, 117, 69, 117, 69, 117, 69, 117, 69, + 117, 69, 117, 69, 117, 69, 117, 69, 117, 69, 117, 69, + 117, 69, 117, 69, 117, 84, 116, 101, 85, 101, 85, 117, + 53, 141, 155, 199, 0, 27, 48, 34, 20, 0, 8, 67, + 245, 170, 155, 245, 245, 245, 245, 245, 245, 245, 245, 245, + 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 174, + 111, 94, 0, 25, 80, 54, 21, 0, 8, 70, 218, 173, + 126, 117, 70, 84, 117, 84, 118, 82, 149, 97, 149, 240, + 21, 240, 21, 240, 21, 245, 245, 240, 21, 245, 244, 240, + 20, 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, 240, + 31, 1, 79, 2, 79, 2, 95, 1, 0, 26, 96, 49, + 21, 0, 8, 86, 203, 157, 126, 102, 70, 99, 117, 113, + 133, 240, 21, 240, 21, 245, 246, 185, 200, 218, 240, 22, + 240, 21, 240, 37, 240, 21, 240, 21, 240, 21, 240, 21, + 67, 149, 69, 86, 95, 1, 110, 155, 199, 0, 27, 48, + 58, 24, 0, 10, 38, 240, 39, 240, 24, 240, 24, 249, + 243, 21, 228, 21, 227, 37, 212, 37, 196, 53, 196, 53, + 180, 69, 180, 69, 164, 85, 164, 85, 148, 101, 148, 101, + 143, 4, 95, 5, 79, 5, 95, 3, 240, 21, 240, 69, + 240, 69, 240, 69, 240, 69, 240, 69, 0, 31, 50, 22, + 0, 8, 78, 143, 127, 126, 133, 240, 37, 240, 37, 240, + 37, 240, 37, 240, 43, 189, 158, 134, 69, 116, 116, 116, + 117, 240, 37, 240, 37, 240, 37, 240, 37, 240, 37, 82, + 165, 83, 133, 86, 86, 111, 142, 155, 215, 0, 28, 96, + 52, 21, 0, 8, 102, 217, 186, 171, 150, 229, 240, 21, + 240, 20, 240, 36, 53, 133, 24, 117, 25, 103, 69, 86, + 85, 85, 117, 69, 117, 69, 117, 69, 117, 69, 117, 69, + 117, 69, 117, 84, 117, 85, 101, 86, 69, 126, 140, 170, + 214, 0, 27, 48, 60, 21, 0, 8, 15, 1, 79, 2, + 79, 2, 95, 1, 240, 20, 240, 20, 240, 21, 240, 20, + 240, 20, 240, 21, 240, 20, 240, 21, 240, 20, 240, 21, + 240, 21, 240, 20, 240, 21, 240, 21, 240, 21, 240, 21, + 245, 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, + 21, 0, 27, 96, 50, 21, 0, 8, 71, 203, 157, 127, + 101, 85, 100, 116, 100, 116, 100, 116, 100, 116, 100, 116, + 101, 85, 125, 169, 173, 117, 85, 100, 116, 85, 117, 69, + 117, 69, 117, 69, 117, 69, 117, 69, 117, 85, 85, 111, + 125, 155, 199, 0, 27, 48, 53, 21, 0, 8, 71, 202, + 172, 142, 118, 54, 101, 85, 85, 116, 85, 117, 69, 117, + 69, 117, 69, 117, 69, 117, 69, 117, 69, 117, 85, 86, + 85, 71, 105, 21, 120, 21, 133, 53, 240, 20, 240, 21, + 240, 21, 114, 86, 141, 125, 154, 214, 0, 27, 80, 19, + 9, 0, 13, 69, 69, 69, 69, 69, 0, 9, 69, 69, + 69, 69, 69, 0, 11, 96, 23, 9, 0, 13, 69, 69, + 69, 69, 69, 0, 9, 69, 69, 69, 69, 69, 83, 99, + 83, 99, 0, 7, 64, 33, 9, 0, 11, 37, 69, 69, + 69, 69, 240, 240, 21, 69, 69, 69, 69, 69, 69, 69, + 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, + 240, 112, 25, 33, 0, 53, 111, 12, 95, 14, 79, 14, + 95, 12, 0, 21, 63, 12, 95, 14, 79, 14, 95, 12, + 0, 58, 48, 37, 19, 0, 24, 52, 245, 214, 214, 228, + 0, 9, 4, 244, 244, 244, 244, 229, 228, 229, 228, 229, + 213, 214, 213, 229, 229, 129, 85, 115, 70, 69, 94, 93, + 136, 0, 5, 96, 39, 20, 0, 8, 8, 172, 111, 100, + 86, 82, 133, 245, 245, 245, 229, 230, 213, 229, 244, 244, + 240, 20, 240, 20, 240, 20, 245, 240, 20, 0, 9, 53, + 245, 245, 245, 245, 0, 26, 32, 71, 29, 0, 12, 25, + 240, 46, 223, 3, 167, 117, 150, 75, 117, 77, 102, 63, + 85, 54, 55, 85, 53, 86, 69, 53, 117, 69, 53, 117, + 69, 53, 117, 69, 53, 117, 69, 53, 117, 69, 53, 117, + 69, 53, 117, 69, 53, 117, 85, 53, 85, 101, 54, 54, + 101, 77, 133, 75, 150, 87, 198, 240, 152, 118, 159, 3, + 223, 240, 41, 0, 37, 64, 64, 29, 0, 12, 7, 240, + 105, 240, 89, 240, 74, 240, 75, 240, 59, 240, 38, 21, + 240, 37, 38, 240, 21, 38, 245, 69, 245, 70, 229, 70, + 213, 101, 213, 102, 197, 102, 181, 133, 181, 134, 175, 4, + 159, 6, 143, 6, 127, 7, 117, 198, 101, 198, 86, 198, + 85, 230, 69, 230, 68, 240, 21, 0, 36, 96, 61, 26, + 0, 9, 111, 1, 175, 3, 143, 4, 117, 135, 101, 166, + 85, 181, 85, 181, 85, 181, 85, 181, 85, 165, 101, 134, + 127, 3, 143, 1, 175, 4, 117, 135, 101, 166, 85, 181, + 85, 197, 69, 197, 69, 197, 69, 197, 69, 197, 69, 182, + 69, 151, 95, 5, 111, 4, 127, 2, 0, 33, 80, 58, + 26, 0, 10, 121, 239, 1, 159, 2, 127, 3, 135, 116, + 118, 178, 102, 240, 85, 240, 101, 240, 85, 240, 101, 240, + 101, 240, 101, 240, 101, 240, 101, 240, 101, 240, 101, 240, + 102, 240, 101, 240, 101, 240, 102, 240, 102, 194, 104, 132, + 127, 4, 143, 3, 175, 233, 0, 33, 64, 61, 28, 0, + 10, 79, 1, 207, 4, 159, 5, 133, 151, 117, 182, 101, + 197, 101, 213, 85, 213, 85, 228, 85, 229, 69, 229, 69, + 229, 69, 229, 69, 229, 69, 229, 69, 229, 69, 229, 69, + 229, 69, 229, 69, 213, 85, 213, 85, 197, 101, 182, 101, + 151, 127, 5, 143, 4, 159, 1, 0, 36, 64, 61, 23, + 0, 8, 95, 3, 95, 3, 95, 3, 95, 3, 85, 240, + 53, 240, 53, 240, 53, 240, 53, 240, 53, 240, 53, 240, + 63, 2, 111, 2, 111, 2, 111, 2, 101, 240, 53, 240, + 53, 240, 53, 240, 53, 240, 53, 240, 53, 240, 53, 240, + 63, 4, 79, 4, 79, 4, 79, 4, 0, 29, 32, 60, + 22, 0, 8, 47, 2, 95, 3, 79, 3, 79, 2, 85, + 240, 37, 240, 37, 240, 37, 240, 37, 240, 37, 240, 37, + 240, 47, 1, 111, 1, 111, 1, 111, 1, 101, 240, 37, + 240, 37, 240, 37, 240, 37, 240, 37, 240, 37, 240, 37, + 240, 37, 240, 37, 240, 37, 240, 37, 0, 29, 80, 59, + 28, 0, 11, 106, 255, 1, 175, 4, 143, 5, 120, 133, + 102, 210, 102, 241, 101, 240, 133, 240, 118, 240, 117, 240, + 133, 240, 133, 240, 133, 240, 133, 169, 69, 169, 69, 169, + 70, 153, 85, 213, 86, 197, 87, 181, 103, 165, 120, 133, + 143, 5, 159, 4, 191, 1, 249, 0, 36, 16, 61, 27, + 0, 10, 21, 213, 69, 213, 69, 213, 69, 213, 69, 213, + 69, 213, 69, 213, 69, 213, 69, 213, 69, 213, 69, 213, + 79, 8, 79, 8, 79, 8, 79, 8, 69, 213, 69, 213, + 69, 213, 69, 213, 69, 213, 69, 213, 69, 213, 69, 213, + 69, 213, 69, 213, 69, 213, 69, 213, 0, 34, 32, 33, + 9, 240, 197, 69, 69, 69, 69, 69, 69, 69, 69, 69, + 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, + 69, 69, 69, 69, 69, 0, 11, 96, 36, 18, 0, 7, + 117, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, + 213, 213, 213, 213, 213, 213, 213, 213, 213, 66, 117, 67, + 86, 77, 93, 92, 151, 0, 23, 64, 58, 28, 0, 10, + 69, 214, 69, 198, 85, 182, 101, 166, 117, 150, 133, 134, + 149, 118, 165, 87, 181, 71, 197, 55, 213, 39, 229, 23, + 254, 239, 223, 216, 38, 199, 70, 182, 102, 165, 118, 165, + 134, 149, 150, 133, 166, 117, 166, 117, 182, 101, 198, 85, + 214, 69, 214, 0, 35, 64, 61, 21, 0, 7, 117, 240, + 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, + 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, + 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, + 21, 240, 21, 240, 21, 240, 21, 240, 31, 1, 95, 2, + 79, 2, 79, 1, 0, 26, 112, 98, 35, 0, 13, 23, + 240, 39, 72, 248, 72, 248, 73, 217, 73, 217, 73, 217, + 69, 20, 180, 21, 69, 20, 180, 21, 69, 21, 149, 21, + 69, 36, 148, 37, 69, 36, 148, 37, 69, 37, 117, 37, + 69, 52, 116, 53, 69, 53, 85, 53, 69, 68, 84, 69, + 69, 68, 84, 69, 69, 69, 53, 69, 69, 84, 52, 85, + 69, 85, 21, 85, 69, 100, 20, 101, 69, 100, 20, 101, + 69, 105, 101, 69, 119, 117, 69, 119, 117, 69, 133, 133, + 69, 133, 133, 69, 240, 101, 0, 44, 32, 76, 28, 0, + 10, 72, 181, 72, 181, 73, 165, 73, 165, 74, 149, 74, + 149, 69, 21, 133, 69, 21, 133, 69, 37, 117, 69, 37, + 117, 69, 53, 101, 69, 53, 101, 69, 69, 85, 69, 70, + 69, 69, 85, 69, 69, 101, 53, 69, 101, 53, 69, 117, + 37, 69, 117, 37, 69, 133, 21, 69, 133, 21, 69, 154, + 69, 154, 69, 169, 69, 169, 69, 184, 69, 184, 0, 35, + 64, 69, 30, 0, 12, 57, 240, 62, 239, 3, 183, 103, + 150, 166, 133, 197, 117, 229, 101, 229, 100, 240, 20, 85, + 240, 21, 69, 240, 21, 69, 240, 21, 69, 240, 21, 69, + 240, 21, 69, 240, 21, 69, 240, 21, 69, 240, 21, 69, + 240, 21, 85, 229, 101, 229, 101, 229, 117, 197, 134, 166, + 151, 103, 191, 3, 238, 240, 57, 0, 39, 16, 59, 25, + 0, 9, 63, 1, 159, 3, 127, 4, 101, 150, 85, 166, + 69, 181, 69, 181, 69, 181, 69, 181, 69, 181, 69, 166, + 69, 150, 95, 5, 95, 4, 111, 3, 127, 165, 240, 85, + 240, 85, 240, 85, 240, 85, 240, 85, 240, 85, 240, 85, + 240, 85, 240, 85, 240, 85, 0, 33, 96, 81, 30, 0, + 12, 57, 240, 62, 239, 3, 183, 103, 150, 166, 133, 197, + 117, 229, 101, 229, 101, 229, 85, 240, 21, 69, 240, 21, + 69, 240, 21, 69, 240, 21, 69, 240, 21, 69, 240, 21, + 69, 240, 21, 69, 240, 21, 69, 240, 21, 84, 240, 21, + 85, 85, 69, 101, 86, 53, 117, 86, 22, 118, 91, 151, + 73, 191, 3, 239, 1, 240, 30, 240, 151, 240, 151, 240, + 135, 240, 150, 0, 23, 32, 60, 25, 0, 9, 63, 175, + 3, 127, 4, 101, 150, 85, 166, 69, 181, 69, 181, 69, + 181, 69, 181, 69, 181, 69, 165, 85, 150, 95, 4, 111, + 3, 127, 1, 149, 86, 149, 86, 149, 102, 133, 117, 133, + 118, 117, 133, 117, 134, 101, 149, 101, 165, 85, 165, 85, + 181, 69, 181, 0, 31, 96, 51, 24, 0, 9, 105, 206, + 159, 2, 111, 2, 118, 101, 101, 163, 101, 193, 101, 240, + 70, 240, 55, 240, 57, 253, 206, 191, 189, 250, 240, 55, + 240, 54, 240, 69, 240, 69, 66, 213, 68, 166, 70, 118, + 95, 4, 95, 3, 143, 201, 0, 31, 32, 59, 29, 0, + 10, 127, 10, 79, 10, 79, 10, 79, 10, 229, 240, 149, + 240, 149, 240, 149, 240, 149, 240, 149, 240, 149, 240, 149, + 240, 149, 240, 149, 240, 149, 240, 149, 240, 149, 240, 149, + 240, 149, 240, 149, 240, 149, 240, 149, 240, 149, 240, 149, + 240, 149, 240, 149, 240, 149, 0, 38, 59, 26, 0, 9, + 101, 197, 69, 197, 69, 197, 69, 197, 69, 197, 69, 197, + 69, 197, 69, 197, 69, 197, 69, 197, 69, 197, 69, 197, + 69, 197, 69, 197, 69, 197, 69, 197, 69, 197, 69, 197, + 69, 197, 69, 197, 69, 197, 85, 165, 101, 165, 118, 102, + 159, 1, 190, 233, 0, 33, 112, 68, 31, 0, 11, 86, + 240, 21, 70, 246, 86, 229, 102, 214, 102, 213, 134, 197, + 134, 182, 134, 181, 166, 165, 166, 150, 166, 149, 198, 118, + 198, 117, 230, 101, 230, 86, 230, 85, 240, 22, 69, 240, + 22, 54, 240, 22, 53, 240, 54, 37, 240, 54, 21, 240, + 85, 21, 240, 91, 240, 90, 240, 121, 240, 121, 240, 135, + 0, 40, 64, 104, 43, 0, 16, 21, 198, 196, 69, 183, + 181, 69, 183, 180, 101, 153, 149, 101, 153, 149, 101, 153, + 149, 102, 132, 20, 148, 133, 117, 21, 117, 133, 116, 37, + 117, 133, 116, 37, 117, 134, 85, 53, 100, 165, 85, 53, + 85, 165, 84, 69, 85, 165, 84, 69, 84, 197, 53, 85, + 68, 197, 52, 101, 53, 197, 52, 101, 53, 198, 36, 101, + 52, 229, 21, 117, 21, 229, 20, 133, 21, 229, 20, 133, + 20, 245, 20, 148, 20, 240, 25, 153, 240, 24, 169, 240, + 24, 168, 240, 55, 183, 240, 54, 199, 0, 55, 16, 63, + 30, 0, 11, 54, 182, 119, 151, 135, 134, 166, 118, 183, + 87, 199, 70, 231, 38, 240, 22, 23, 240, 29, 240, 59, + 240, 89, 240, 120, 240, 134, 240, 135, 240, 121, 240, 106, + 240, 76, 240, 38, 23, 240, 22, 38, 246, 70, 214, 87, + 183, 103, 166, 134, 150, 151, 118, 183, 87, 199, 70, 230, + 0, 38, 62, 30, 0, 11, 37, 246, 70, 214, 87, 198, + 103, 166, 134, 150, 151, 134, 167, 102, 198, 86, 230, 54, + 247, 38, 240, 22, 22, 240, 59, 240, 75, 240, 89, 240, + 119, 240, 135, 240, 149, 240, 165, 240, 165, 240, 165, 240, + 165, 240, 165, 240, 165, 240, 165, 240, 165, 240, 165, 240, + 165, 0, 39, 48, 61, 26, 0, 9, 127, 6, 95, 6, + 95, 6, 95, 6, 240, 55, 240, 70, 240, 70, 240, 71, + 240, 55, 240, 70, 240, 70, 240, 71, 240, 55, 240, 70, + 240, 70, 240, 71, 240, 70, 240, 70, 240, 70, 240, 71, + 240, 70, 240, 70, 240, 70, 240, 79, 7, 79, 7, 79, + 7, 79, 7, 0, 33, 43, 13, 9, 73, 73, 69, 133, + 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, + 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, + 133, 133, 133, 133, 133, 133, 133, 133, 137, 73, 73, 64, + 24, 17, 0, 6, 83, 83, 99, 83, 83, 83, 99, 83, + 85, 53, 69, 53, 69, 53, 69, 53, 69, 53, 0, 60, + 43, 13, 9, 73, 73, 133, 133, 133, 133, 133, 133, 133, + 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, + 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, + 133, 133, 133, 73, 73, 73, 64, 16, 17, 0, 6, 117, + 198, 168, 132, 21, 100, 68, 67, 115, 0, 66, 48, 11, + 9, 240, 197, 69, 69, 69, 69, 0, 36, 64, 14, 9, + 240, 227, 99, 83, 99, 85, 69, 69, 69, 69, 0, 32, + 38, 21, 0, 32, 24, 173, 142, 116, 86, 98, 133, 240, + 21, 240, 21, 216, 141, 102, 69, 85, 101, 69, 117, 69, + 117, 69, 117, 70, 71, 90, 21, 104, 37, 117, 69, 0, + 26, 96, 61, 22, 0, 8, 37, 240, 37, 240, 37, 240, + 37, 240, 37, 240, 37, 240, 37, 240, 37, 240, 37, 240, + 37, 54, 133, 25, 127, 1, 102, 86, 85, 117, 85, 133, + 69, 133, 69, 133, 69, 133, 69, 133, 69, 133, 69, 133, + 69, 133, 69, 117, 86, 86, 95, 1, 101, 25, 117, 38, + 0, 28, 80, 30, 20, 0, 30, 88, 172, 126, 86, 83, + 101, 129, 85, 245, 245, 245, 245, 245, 245, 245, 240, 21, + 130, 86, 84, 110, 124, 168, 0, 25, 112, 59, 22, 0, + 9, 117, 240, 37, 240, 37, 240, 37, 240, 37, 240, 37, + 240, 37, 240, 37, 240, 37, 150, 37, 121, 21, 111, 1, + 86, 86, 85, 117, 69, 133, 69, 133, 69, 133, 69, 133, + 69, 133, 69, 133, 69, 133, 69, 133, 85, 117, 86, 71, + 111, 1, 121, 21, 149, 53, 0, 28, 37, 21, 0, 32, + 39, 202, 157, 133, 69, 101, 101, 84, 132, 69, 132, 69, + 132, 79, 2, 79, 2, 69, 240, 21, 240, 21, 240, 37, + 146, 86, 100, 111, 125, 183, 0, 27, 32, 35, 17, 0, + 7, 23, 137, 122, 102, 65, 101, 197, 197, 197, 197, 170, + 123, 106, 149, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 0, 22, 64, 54, 24, 0, 36, + 88, 67, 127, 2, 111, 3, 101, 69, 149, 101, 133, 101, + 133, 101, 133, 101, 133, 101, 149, 69, 174, 188, 178, 24, + 210, 240, 126, 175, 1, 159, 1, 111, 4, 84, 165, 68, + 196, 68, 196, 69, 180, 85, 134, 111, 2, 143, 186, 0, + 7, 16, 61, 21, 0, 7, 117, 240, 21, 240, 21, 240, + 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, + 21, 70, 101, 41, 85, 27, 71, 70, 70, 101, 70, 101, + 69, 117, 69, 117, 69, 117, 69, 117, 69, 117, 69, 117, + 69, 117, 69, 117, 69, 117, 69, 117, 69, 117, 69, 117, + 0, 26, 96, 31, 9, 240, 197, 69, 69, 69, 69, 240, + 240, 165, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, + 69, 69, 69, 69, 69, 69, 69, 0, 11, 96, 41, 15, + 0, 6, 53, 150, 150, 150, 165, 0, 8, 101, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 65, 70, 74, 89, 134, + 240, 240, 112, 56, 21, 0, 7, 117, 240, 21, 240, 21, + 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, + 240, 21, 102, 69, 86, 85, 70, 101, 54, 117, 38, 133, + 22, 155, 170, 187, 172, 156, 150, 37, 133, 54, 117, 70, + 101, 85, 101, 101, 85, 102, 69, 117, 0, 26, 96, 33, + 9, 240, 197, 69, 69, 69, 69, 69, 69, 69, 69, 69, + 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, + 69, 69, 69, 69, 69, 0, 11, 96, 61, 33, 0, 49, + 69, 70, 102, 101, 41, 57, 85, 27, 27, 71, 72, 70, + 70, 102, 101, 70, 102, 101, 69, 117, 117, 69, 117, 117, + 69, 117, 117, 69, 117, 117, 69, 117, 117, 69, 117, 117, + 69, 117, 117, 69, 117, 117, 69, 117, 117, 69, 117, 117, + 69, 117, 117, 69, 117, 117, 0, 41, 96, 43, 21, 0, + 31, 69, 70, 101, 41, 85, 27, 71, 70, 70, 101, 70, + 101, 69, 117, 69, 117, 69, 117, 69, 117, 69, 117, 69, + 117, 69, 117, 69, 117, 69, 117, 69, 117, 69, 117, 69, + 117, 0, 26, 96, 36, 23, 0, 35, 39, 236, 159, 133, + 86, 101, 117, 100, 149, 69, 149, 69, 149, 69, 149, 69, + 149, 69, 149, 69, 149, 69, 149, 85, 117, 102, 86, 127, + 157, 200, 0, 30, 58, 22, 0, 33, 5, 54, 133, 26, + 111, 1, 102, 86, 85, 117, 85, 133, 69, 133, 69, 133, + 69, 133, 69, 133, 69, 133, 69, 133, 69, 118, 69, 117, + 86, 86, 95, 1, 101, 25, 117, 38, 149, 240, 37, 240, + 37, 240, 37, 240, 37, 240, 37, 240, 37, 240, 37, 0, + 7, 80, 58, 22, 0, 33, 86, 37, 121, 21, 111, 1, + 86, 71, 85, 117, 70, 117, 69, 133, 69, 133, 69, 133, + 69, 133, 69, 133, 69, 133, 70, 117, 85, 117, 86, 71, + 111, 1, 121, 21, 149, 53, 240, 37, 240, 37, 240, 37, + 240, 37, 240, 37, 240, 37, 240, 37, 240, 37, 0, 6, + 28, 15, 0, 22, 69, 66, 69, 36, 69, 21, 69, 21, + 72, 119, 134, 149, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 0, 20, 29, 19, 0, 29, 8, 156, 109, 85, + 84, 84, 130, 84, 246, 234, 156, 155, 170, 229, 244, 67, + 132, 69, 85, 78, 108, 168, 0, 24, 80, 31, 18, 0, + 16, 21, 213, 213, 213, 213, 188, 93, 108, 133, 213, 213, + 213, 213, 213, 213, 213, 213, 213, 213, 214, 50, 123, 137, + 166, 0, 23, 48, 43, 21, 0, 31, 69, 117, 69, 117, + 69, 117, 69, 117, 69, 117, 69, 117, 69, 117, 69, 117, + 69, 117, 69, 117, 69, 117, 69, 117, 69, 117, 69, 117, + 69, 102, 70, 71, 90, 21, 118, 53, 0, 26, 96, 37, + 22, 0, 33, 4, 164, 69, 133, 69, 133, 85, 101, 101, + 101, 101, 101, 117, 69, 133, 69, 133, 69, 149, 37, 165, + 37, 165, 37, 186, 202, 202, 216, 232, 246, 0, 28, 96, + 59, 31, 0, 46, 68, 131, 132, 69, 101, 101, 69, 101, + 101, 84, 101, 100, 101, 70, 100, 101, 71, 69, 101, 71, + 69, 116, 66, 20, 68, 133, 35, 21, 37, 133, 35, 36, + 37, 148, 35, 36, 36, 168, 52, 36, 168, 58, 168, 73, + 183, 72, 198, 88, 198, 88, 213, 102, 0, 39, 112, 37, + 22, 0, 33, 5, 132, 86, 101, 102, 69, 134, 37, 165, + 22, 186, 216, 246, 240, 36, 240, 38, 248, 217, 212, 36, + 181, 37, 149, 69, 117, 101, 85, 118, 69, 133, 0, 28, + 50, 21, 0, 31, 68, 148, 69, 117, 84, 117, 85, 100, + 101, 85, 117, 69, 117, 68, 149, 37, 149, 37, 164, 36, + 186, 186, 200, 216, 230, 246, 240, 21, 240, 20, 240, 36, + 240, 36, 240, 35, 240, 36, 178, 52, 201, 200, 214, 0, + 7, 16, 28, 20, 0, 30, 31, 95, 95, 229, 229, 230, + 214, 214, 229, 229, 230, 214, 214, 229, 229, 239, 1, 79, + 1, 79, 1, 0, 25, 64, 13, 26, 0, 55, 47, 7, + 79, 7, 79, 7, 0, 65, 64, 15, 47, 0, 99, 127, + 15, 13, 79, 15, 13, 79, 15, 13, 0, 118, 19, 17, + 0, 6, 69, 37, 84, 52, 85, 37, 84, 52, 99, 67, + 115, 67, 0, 66, 96, 16, 18, 0, 7, 4, 83, 87, + 51, 78, 67, 55, 83, 84, 0, 72, 96, +}; + +//***************************************************************************** +// +// The font definition for the 40 point Cmss bold font. +// +//***************************************************************************** +const tFont g_sFontCmss40b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 42, + + // + // The height of the font. + // + 40, + + // + // The baseline of the font. + // + 30, + + // + // The offset to each character in the font. + // + { + 0, 4, 36, 61, 165, 228, 329, 403, + 418, 461, 504, 546, 611, 627, 637, 649, + 732, 787, 821, 875, 924, 982, 1032, 1084, + 1144, 1194, 1247, 1266, 1289, 1322, 1347, 1384, + 1423, 1494, 1558, 1619, 1677, 1738, 1799, 1859, + 1918, 1979, 2012, 2048, 2106, 2167, 2265, 2341, + 2410, 2469, 2550, 2610, 2661, 2720, 2779, 2847, + 2951, 3014, 3076, 3137, 3180, 3204, 3247, 3263, + 3274, 3288, 3326, 3387, 3417, 3476, 3513, 3548, + 3602, 3663, 3694, 3735, 3791, 3824, 3885, 3928, + 3964, 4022, 4080, 4108, 4137, 4168, 4211, 4248, + 4307, 4344, 4394, 4422, 4435, 4450, 4469, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss40bData +}; diff --git a/grlib/fonts/fontcmss40i.c b/grlib/fonts/fontcmss40i.c new file mode 100644 index 0000000..2488ef1 --- /dev/null +++ b/grlib/fonts/fontcmss40i.c @@ -0,0 +1,485 @@ +//***************************************************************************** +// +// fontcmss40i.c - Font definition for the 40pt Cmss italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 40 point +// Bold: no +// Italic: yes +// Memory usage: 4748 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 40 point Cmss italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss40iData[4546] = +{ + 4, 17, 0, 85, 32, 13, 240, 240, 243, 148, 147, 163, + 163, 163, 147, 163, 163, 163, 163, 147, 163, 163, 163, 162, + 163, 163, 163, 162, 0, 7, 99, 147, 163, 0, 17, 64, + 23, 16, 0, 6, 35, 67, 84, 52, 83, 67, 114, 82, + 99, 67, 98, 82, 113, 97, 114, 82, 0, 58, 112, 107, + 32, 0, 14, 17, 114, 240, 98, 113, 240, 113, 114, 240, + 98, 113, 240, 113, 114, 240, 113, 113, 240, 114, 113, 240, + 113, 114, 240, 98, 113, 240, 113, 114, 240, 98, 113, 240, + 113, 114, 240, 98, 113, 207, 12, 226, 113, 240, 113, 114, + 240, 98, 113, 240, 113, 114, 240, 98, 113, 240, 113, 114, + 239, 12, 193, 114, 240, 98, 113, 240, 113, 114, 240, 113, + 114, 240, 98, 113, 240, 113, 114, 240, 98, 113, 240, 113, + 114, 240, 98, 113, 240, 113, 114, 240, 98, 113, 240, 114, + 98, 240, 113, 114, 240, 98, 113, 0, 10, 80, 67, 23, + 194, 240, 98, 240, 68, 240, 56, 219, 189, 164, 18, 36, + 148, 34, 65, 163, 50, 227, 51, 227, 50, 243, 50, 243, + 50, 244, 19, 240, 22, 240, 41, 249, 240, 38, 240, 19, + 20, 242, 51, 242, 51, 242, 51, 227, 51, 226, 66, 242, + 51, 145, 82, 35, 148, 50, 20, 172, 202, 246, 240, 66, + 240, 98, 0, 24, 112, 93, 28, 240, 240, 52, 225, 134, + 193, 131, 35, 162, 115, 51, 146, 130, 67, 145, 131, 67, + 129, 147, 67, 114, 131, 83, 98, 147, 83, 97, 163, 67, + 97, 179, 67, 82, 179, 51, 82, 196, 20, 81, 231, 81, + 240, 21, 82, 240, 162, 240, 177, 86, 241, 87, 225, 99, + 20, 194, 83, 51, 178, 83, 67, 177, 99, 67, 161, 115, + 67, 146, 99, 83, 130, 115, 67, 145, 131, 67, 129, 147, + 67, 114, 147, 51, 114, 164, 19, 129, 198, 129, 228, 0, + 29, 16, 76, 28, 0, 12, 4, 240, 119, 240, 98, 51, + 240, 66, 67, 240, 51, 67, 240, 50, 83, 240, 50, 67, + 240, 51, 67, 240, 51, 51, 240, 67, 35, 240, 83, 19, + 240, 102, 145, 197, 162, 180, 163, 150, 162, 147, 19, 147, + 131, 36, 115, 131, 52, 99, 131, 84, 67, 131, 115, 51, + 147, 116, 19, 163, 134, 179, 133, 196, 103, 207, 7, 106, + 57, 134, 119, 0, 35, 80, 14, 9, 240, 227, 84, 83, + 114, 99, 98, 113, 114, 0, 33, 64, 49, 18, 179, 227, + 227, 227, 242, 243, 227, 242, 243, 242, 243, 242, 243, 243, + 227, 243, 243, 243, 227, 243, 243, 243, 228, 227, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 240, 18, 240, 19, 243, + 240, 18, 240, 19, 240, 18, 240, 19, 192, 49, 18, 131, + 240, 18, 240, 19, 240, 18, 240, 19, 243, 240, 18, 240, + 19, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 227, + 243, 243, 243, 243, 227, 243, 243, 227, 243, 242, 243, 243, + 227, 242, 243, 227, 242, 243, 227, 227, 227, 240, 38, 19, + 130, 240, 34, 240, 34, 240, 19, 178, 51, 50, 84, 34, + 36, 100, 18, 20, 152, 197, 214, 186, 117, 18, 20, 99, + 50, 35, 179, 240, 18, 240, 34, 240, 34, 0, 56, 16, + 57, 29, 0, 30, 98, 240, 194, 240, 193, 240, 209, 240, + 209, 240, 194, 240, 194, 240, 193, 240, 209, 240, 194, 240, + 194, 240, 193, 240, 31, 10, 240, 17, 240, 194, 240, 194, + 240, 193, 240, 209, 240, 209, 240, 194, 240, 194, 240, 193, + 240, 209, 240, 194, 240, 194, 0, 27, 80, 15, 9, 0, + 30, 83, 84, 83, 114, 99, 98, 113, 114, 0, 6, 64, + 9, 14, 0, 36, 106, 74, 0, 30, 32, 10, 8, 0, + 27, 19, 68, 67, 0, 10, 80, 84, 26, 240, 97, 240, + 146, 240, 145, 240, 146, 240, 145, 240, 146, 240, 130, 240, + 145, 240, 146, 240, 145, 240, 146, 240, 145, 240, 146, 240, + 145, 240, 146, 240, 145, 240, 146, 240, 145, 240, 146, 240, + 145, 240, 146, 240, 130, 240, 145, 240, 146, 240, 145, 240, + 146, 240, 145, 240, 146, 240, 145, 240, 146, 240, 145, 240, + 146, 240, 145, 240, 146, 240, 130, 240, 145, 240, 146, 240, + 145, 240, 146, 240, 145, 240, 160, 55, 22, 0, 12, 22, + 233, 195, 68, 163, 100, 131, 131, 130, 147, 115, 147, 114, + 163, 99, 163, 99, 163, 99, 163, 83, 163, 99, 163, 99, + 163, 99, 163, 83, 163, 99, 163, 99, 163, 99, 147, 115, + 147, 115, 131, 131, 131, 147, 99, 164, 52, 201, 230, 0, + 29, 16, 34, 17, 0, 10, 1, 212, 151, 148, 19, 227, + 227, 227, 211, 227, 227, 227, 227, 211, 227, 227, 227, 227, + 211, 227, 227, 227, 226, 227, 227, 156, 92, 0, 21, 112, + 54, 23, 0, 12, 102, 249, 219, 180, 68, 178, 116, 146, + 147, 131, 147, 145, 163, 145, 163, 240, 82, 240, 83, 240, + 82, 240, 83, 240, 67, 240, 66, 240, 82, 240, 82, 240, + 67, 240, 66, 240, 82, 240, 82, 240, 66, 240, 82, 240, + 95, 142, 143, 0, 29, 96, 54, 22, 0, 12, 37, 234, + 179, 83, 163, 100, 146, 131, 145, 147, 240, 51, 240, 67, + 240, 51, 240, 67, 240, 36, 230, 240, 23, 240, 68, 240, + 67, 240, 83, 240, 67, 240, 67, 240, 67, 240, 67, 240, + 51, 114, 163, 115, 131, 148, 68, 185, 245, 0, 29, 16, + 57, 21, 0, 12, 20, 240, 21, 240, 20, 240, 21, 242, + 19, 227, 19, 211, 35, 210, 35, 211, 35, 195, 51, 179, + 67, 179, 67, 163, 67, 163, 83, 147, 99, 132, 99, 131, + 115, 127, 2, 79, 2, 227, 240, 36, 240, 35, 240, 51, + 240, 51, 240, 51, 240, 36, 0, 27, 48, 53, 22, 0, + 11, 108, 172, 172, 147, 240, 67, 240, 67, 240, 67, 240, + 66, 240, 67, 240, 67, 240, 67, 21, 218, 181, 67, 164, + 99, 147, 115, 240, 67, 240, 67, 240, 67, 240, 67, 240, + 51, 129, 163, 129, 147, 131, 115, 148, 83, 186, 230, 0, + 29, 16, 56, 20, 0, 11, 38, 200, 179, 81, 163, 240, + 19, 240, 19, 240, 19, 240, 35, 240, 19, 53, 147, 24, + 115, 18, 67, 117, 84, 100, 115, 84, 131, 84, 131, 83, + 147, 83, 147, 83, 147, 83, 131, 99, 131, 99, 130, 115, + 115, 131, 83, 148, 51, 184, 213, 0, 26, 64, 59, 21, + 0, 10, 95, 1, 95, 1, 95, 1, 240, 35, 240, 35, + 240, 35, 240, 35, 240, 50, 240, 50, 240, 51, 240, 35, + 240, 50, 240, 51, 240, 35, 240, 51, 240, 35, 240, 51, + 240, 35, 240, 51, 240, 35, 240, 51, 240, 35, 240, 51, + 240, 51, 240, 36, 240, 35, 0, 28, 64, 53, 22, 0, + 12, 22, 234, 179, 83, 163, 115, 131, 131, 130, 147, 115, + 147, 115, 147, 115, 131, 147, 114, 164, 67, 215, 247, 211, + 68, 162, 115, 147, 131, 115, 147, 114, 163, 99, 163, 99, + 163, 99, 147, 115, 147, 116, 115, 148, 68, 185, 245, 0, + 29, 16, 55, 21, 0, 11, 85, 232, 195, 67, 163, 99, + 131, 115, 130, 131, 115, 131, 115, 131, 114, 147, 99, 147, + 99, 147, 99, 132, 99, 132, 99, 116, 116, 85, 131, 66, + 19, 136, 19, 165, 51, 240, 51, 240, 35, 240, 35, 240, + 50, 240, 51, 162, 68, 169, 229, 0, 28, 15, 11, 0, + 18, 51, 116, 115, 0, 15, 115, 116, 115, 0, 14, 96, + 20, 12, 0, 20, 19, 132, 131, 0, 17, 51, 132, 131, + 162, 147, 146, 161, 162, 0, 8, 96, 33, 13, 0, 17, + 3, 148, 147, 0, 7, 98, 163, 163, 163, 162, 163, 163, + 163, 163, 162, 163, 163, 163, 163, 147, 163, 163, 163, 163, + 147, 163, 240, 240, 96, 13, 30, 0, 60, 31, 10, 0, + 23, 15, 10, 0, 60, 80, 35, 17, 0, 22, 51, 227, + 227, 0, 10, 19, 226, 242, 227, 227, 226, 227, 226, 227, + 211, 211, 211, 211, 227, 211, 227, 227, 227, 129, 84, 84, + 91, 119, 240, 240, 192, 33, 17, 0, 6, 103, 139, 84, + 84, 81, 131, 227, 227, 227, 211, 212, 196, 195, 211, 211, + 226, 227, 226, 227, 226, 242, 227, 0, 10, 19, 227, 227, + 0, 23, 73, 25, 0, 10, 118, 240, 26, 228, 68, 180, + 115, 163, 148, 131, 100, 19, 131, 74, 115, 67, 53, 99, + 67, 84, 99, 51, 100, 83, 51, 116, 83, 51, 115, 99, + 51, 115, 83, 51, 131, 83, 51, 131, 83, 51, 115, 99, + 51, 115, 99, 51, 99, 115, 52, 83, 115, 67, 52, 147, + 71, 179, 85, 196, 240, 116, 240, 116, 100, 203, 240, 22, + 0, 32, 112, 66, 26, 0, 11, 84, 240, 101, 240, 101, + 240, 86, 240, 82, 19, 240, 67, 19, 240, 66, 51, 240, + 35, 51, 240, 19, 67, 240, 19, 67, 243, 83, 243, 83, + 227, 99, 227, 100, 195, 116, 194, 132, 179, 132, 175, 1, + 175, 1, 147, 179, 147, 180, 115, 196, 114, 212, 99, 227, + 83, 243, 83, 243, 67, 240, 19, 0, 33, 55, 26, 0, + 10, 60, 238, 195, 118, 163, 148, 147, 180, 131, 195, 131, + 195, 131, 179, 132, 179, 131, 179, 147, 163, 163, 132, 189, + 206, 195, 133, 163, 164, 147, 180, 131, 195, 115, 211, 115, + 211, 115, 211, 115, 195, 116, 180, 115, 180, 131, 149, 159, + 189, 0, 34, 16, 56, 25, 0, 10, 119, 252, 205, 166, + 99, 149, 240, 68, 240, 99, 240, 99, 240, 100, 240, 99, + 240, 99, 240, 115, 240, 115, 240, 99, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 116, 240, 115, 240, 116, + 240, 100, 177, 165, 115, 190, 203, 240, 23, 0, 32, 96, + 57, 28, 0, 11, 44, 255, 211, 148, 195, 164, 179, 180, + 163, 195, 148, 196, 131, 227, 131, 227, 131, 227, 131, 227, + 116, 227, 115, 243, 115, 243, 115, 227, 116, 227, 115, 243, + 115, 227, 131, 227, 131, 211, 132, 211, 131, 211, 147, 195, + 163, 164, 179, 133, 191, 221, 0, 36, 112, 60, 26, 0, + 10, 63, 2, 159, 1, 175, 1, 148, 240, 116, 240, 115, + 240, 131, 240, 131, 240, 116, 240, 116, 240, 115, 240, 131, + 240, 143, 175, 1, 163, 240, 131, 240, 131, 240, 116, 240, + 116, 240, 115, 240, 131, 240, 131, 240, 116, 240, 115, 240, + 143, 2, 159, 2, 159, 2, 0, 33, 80, 57, 25, 0, + 10, 15, 1, 159, 1, 159, 1, 132, 240, 100, 240, 99, + 240, 115, 240, 115, 240, 100, 240, 99, 240, 115, 240, 115, + 240, 126, 175, 163, 240, 115, 240, 115, 240, 100, 240, 99, + 240, 115, 240, 115, 240, 115, 240, 100, 240, 99, 240, 115, + 240, 115, 240, 115, 0, 34, 57, 26, 0, 11, 39, 240, + 28, 222, 166, 99, 165, 161, 148, 240, 115, 240, 115, 240, + 116, 240, 115, 240, 116, 240, 115, 240, 131, 240, 115, 240, + 131, 240, 131, 240, 131, 136, 115, 136, 115, 211, 115, 195, + 147, 179, 147, 179, 148, 163, 165, 116, 190, 220, 240, 23, + 0, 34, 16, 61, 28, 0, 11, 19, 211, 147, 211, 147, + 196, 132, 196, 132, 195, 147, 211, 147, 211, 147, 196, 132, + 195, 148, 195, 147, 211, 147, 211, 159, 4, 143, 4, 147, + 211, 147, 211, 147, 196, 132, 196, 132, 195, 147, 211, 147, + 211, 147, 196, 132, 195, 147, 211, 147, 211, 147, 211, 147, + 196, 0, 36, 16, 34, 13, 240, 240, 243, 148, 147, 163, + 163, 163, 148, 147, 163, 163, 163, 148, 147, 163, 163, 148, + 147, 163, 163, 163, 148, 147, 163, 163, 163, 148, 147, 0, + 17, 64, 58, 22, 0, 10, 19, 240, 67, 240, 52, 240, + 51, 240, 67, 240, 67, 240, 52, 240, 51, 240, 67, 240, + 67, 240, 67, 240, 52, 240, 51, 240, 67, 240, 67, 240, + 67, 240, 51, 240, 67, 240, 67, 240, 67, 240, 52, 240, + 51, 240, 67, 240, 51, 163, 84, 171, 215, 0, 29, 16, + 69, 29, 0, 11, 67, 212, 147, 196, 163, 179, 180, 148, + 196, 132, 211, 132, 227, 116, 243, 100, 244, 84, 240, 19, + 84, 240, 35, 67, 240, 67, 38, 240, 51, 23, 240, 40, + 19, 240, 39, 36, 240, 22, 52, 240, 21, 84, 228, 116, + 228, 131, 227, 148, 211, 163, 211, 164, 180, 164, 180, 180, + 163, 196, 163, 211, 163, 212, 0, 37, 48, 46, 19, 0, + 7, 99, 240, 19, 240, 19, 244, 244, 243, 240, 19, 240, + 19, 244, 243, 240, 19, 240, 19, 240, 19, 244, 243, 240, + 19, 240, 19, 244, 244, 243, 240, 19, 240, 19, 244, 243, + 240, 31, 79, 78, 0, 24, 48, 103, 34, 0, 13, 53, + 240, 20, 149, 245, 149, 230, 149, 226, 19, 131, 19, 198, + 147, 19, 194, 19, 147, 19, 179, 19, 147, 19, 178, 35, + 147, 19, 163, 20, 131, 35, 147, 35, 147, 35, 147, 35, + 147, 51, 115, 51, 147, 51, 114, 67, 132, 51, 99, 51, + 147, 67, 98, 67, 147, 67, 83, 67, 147, 67, 67, 83, + 147, 67, 67, 83, 131, 98, 51, 83, 147, 99, 35, 83, + 147, 99, 19, 99, 147, 99, 18, 115, 132, 102, 100, 131, + 117, 115, 147, 117, 115, 147, 131, 131, 147, 240, 67, 0, + 43, 80, 79, 28, 0, 11, 21, 179, 149, 179, 150, 163, + 135, 148, 131, 19, 147, 147, 19, 147, 147, 35, 131, 147, + 35, 131, 131, 51, 115, 147, 51, 115, 147, 52, 99, 147, + 67, 99, 147, 67, 99, 131, 84, 67, 147, 84, 67, 147, + 99, 67, 147, 99, 67, 132, 100, 36, 131, 131, 35, 147, + 131, 35, 147, 131, 35, 147, 132, 19, 131, 166, 147, 166, + 147, 166, 147, 166, 147, 181, 0, 36, 16, 68, 27, 0, + 11, 70, 240, 74, 240, 19, 84, 211, 147, 179, 179, 147, + 195, 146, 227, 115, 227, 99, 243, 99, 243, 83, 240, 19, + 83, 240, 19, 83, 240, 19, 67, 240, 35, 67, 240, 19, + 83, 240, 19, 83, 240, 19, 83, 243, 99, 243, 99, 227, + 116, 195, 147, 195, 148, 163, 179, 132, 212, 68, 240, 26, + 240, 70, 0, 35, 80, 56, 26, 0, 10, 76, 223, 179, + 133, 163, 163, 163, 179, 147, 179, 132, 179, 131, 195, 131, + 195, 131, 179, 132, 179, 132, 163, 147, 163, 163, 132, 190, + 189, 211, 240, 131, 240, 131, 240, 131, 240, 116, 240, 115, + 240, 131, 240, 131, 240, 116, 240, 116, 240, 115, 0, 35, + 48, 80, 27, 0, 11, 70, 240, 74, 240, 19, 84, 212, + 131, 179, 179, 147, 195, 147, 196, 115, 227, 99, 243, 99, + 243, 83, 240, 19, 83, 240, 19, 83, 240, 19, 67, 240, + 35, 67, 240, 19, 83, 240, 19, 83, 240, 19, 83, 243, + 99, 243, 99, 99, 83, 116, 83, 83, 131, 99, 51, 148, + 83, 35, 179, 87, 212, 69, 251, 240, 57, 240, 148, 240, + 147, 240, 148, 240, 147, 240, 148, 0, 18, 57, 26, 0, + 10, 61, 223, 179, 133, 163, 163, 148, 179, 131, 195, 131, + 195, 131, 195, 131, 179, 132, 179, 131, 179, 147, 148, 174, + 189, 211, 100, 211, 115, 211, 115, 211, 116, 180, 131, 179, + 147, 179, 148, 163, 163, 163, 163, 148, 164, 131, 195, 131, + 195, 131, 196, 0, 33, 48, 55, 24, 0, 10, 54, 240, + 27, 189, 165, 99, 148, 240, 83, 240, 83, 240, 99, 240, + 99, 240, 100, 240, 85, 240, 87, 240, 57, 240, 25, 240, + 70, 240, 85, 240, 84, 240, 99, 240, 99, 240, 99, 240, + 83, 129, 195, 130, 163, 133, 100, 173, 203, 247, 0, 31, + 80, 60, 26, 0, 9, 111, 7, 79, 7, 79, 7, 211, + 240, 131, 240, 131, 240, 116, 240, 115, 240, 131, 240, 131, + 240, 116, 240, 116, 240, 115, 240, 131, 240, 131, 240, 116, + 240, 115, 240, 131, 240, 131, 240, 131, 240, 116, 240, 115, + 240, 131, 240, 131, 240, 116, 240, 116, 240, 115, 0, 34, + 112, 60, 26, 0, 10, 35, 195, 131, 195, 116, 195, 115, + 195, 131, 195, 131, 195, 116, 195, 115, 210, 131, 195, 131, + 195, 131, 195, 116, 195, 115, 195, 131, 195, 131, 195, 131, + 195, 115, 210, 131, 195, 131, 195, 131, 195, 131, 179, 147, + 179, 148, 147, 179, 131, 212, 68, 249, 240, 54, 0, 34, + 64, 69, 27, 0, 10, 20, 240, 19, 83, 240, 19, 83, + 243, 99, 243, 99, 227, 116, 196, 116, 195, 132, 179, 163, + 179, 163, 163, 179, 163, 180, 131, 196, 115, 212, 115, 227, + 99, 243, 99, 243, 83, 240, 19, 83, 240, 20, 51, 240, + 36, 35, 240, 52, 35, 240, 67, 19, 240, 83, 19, 240, + 86, 240, 101, 240, 117, 240, 116, 0, 36, 16, 106, 38, + 0, 14, 36, 180, 195, 68, 180, 179, 84, 165, 179, 99, + 165, 163, 115, 150, 163, 115, 146, 19, 147, 131, 131, 19, + 147, 131, 131, 19, 131, 147, 130, 35, 131, 147, 115, 35, + 115, 163, 114, 52, 99, 163, 99, 52, 83, 179, 98, 83, + 83, 179, 83, 83, 67, 196, 66, 99, 67, 196, 51, 99, + 66, 212, 50, 115, 51, 212, 35, 115, 50, 228, 34, 131, + 35, 228, 19, 131, 34, 240, 19, 18, 147, 19, 240, 22, + 147, 18, 240, 37, 166, 240, 37, 165, 240, 52, 181, 240, + 52, 180, 240, 67, 196, 0, 49, 80, 73, 31, 0, 12, + 52, 212, 179, 196, 196, 164, 227, 148, 244, 131, 240, 35, + 115, 240, 52, 83, 240, 83, 67, 240, 100, 35, 240, 131, + 20, 240, 135, 240, 165, 240, 180, 240, 196, 240, 182, 240, + 147, 19, 240, 131, 36, 240, 99, 67, 240, 84, 68, 240, + 52, 99, 240, 36, 116, 240, 19, 132, 243, 164, 211, 180, + 195, 212, 163, 228, 148, 244, 0, 39, 96, 65, 28, 0, + 10, 68, 240, 20, 83, 244, 100, 227, 116, 211, 148, 179, + 164, 163, 196, 132, 196, 116, 227, 100, 244, 83, 240, 20, + 67, 240, 52, 35, 240, 68, 19, 240, 102, 240, 118, 240, + 132, 240, 147, 240, 163, 240, 148, 240, 147, 240, 163, 240, + 163, 240, 163, 240, 148, 240, 147, 240, 163, 240, 163, 0, + 37, 64, 62, 28, 0, 11, 47, 3, 175, 3, 240, 132, + 240, 132, 240, 132, 240, 148, 240, 132, 240, 132, 240, 132, + 240, 132, 240, 147, 240, 147, 240, 148, 240, 132, 240, 132, + 240, 132, 240, 147, 240, 147, 240, 147, 240, 148, 240, 132, + 240, 132, 240, 147, 240, 147, 240, 159, 3, 159, 4, 159, + 4, 0, 36, 16, 43, 18, 240, 182, 198, 179, 243, 243, + 242, 243, 243, 243, 243, 242, 243, 243, 243, 243, 242, 243, + 243, 243, 243, 242, 243, 243, 243, 243, 227, 243, 243, 243, + 242, 243, 243, 243, 243, 242, 243, 243, 246, 198, 192, 23, + 16, 0, 6, 50, 82, 113, 97, 114, 82, 99, 67, 98, + 82, 115, 67, 84, 52, 83, 67, 0, 58, 96, 43, 18, + 240, 182, 198, 243, 243, 227, 243, 243, 243, 242, 243, 243, + 243, 243, 227, 243, 243, 243, 243, 227, 243, 243, 243, 242, + 243, 243, 243, 243, 242, 243, 243, 243, 243, 242, 243, 243, + 243, 242, 198, 198, 192, 19, 17, 0, 7, 19, 213, 179, + 19, 147, 35, 131, 67, 99, 98, 83, 115, 0, 64, 32, + 10, 8, 240, 240, 51, 68, 67, 0, 33, 80, 14, 9, + 240, 242, 113, 114, 99, 98, 115, 84, 83, 0, 33, 48, + 36, 19, 0, 31, 87, 170, 146, 84, 240, 19, 240, 19, + 240, 19, 240, 19, 183, 154, 116, 83, 99, 115, 83, 131, + 83, 115, 99, 115, 100, 69, 109, 118, 51, 0, 24, 64, + 60, 21, 0, 8, 83, 240, 51, 240, 50, 240, 51, 240, + 51, 240, 51, 240, 51, 240, 35, 240, 51, 240, 51, 240, + 51, 38, 162, 25, 133, 68, 131, 116, 115, 131, 115, 131, + 99, 147, 99, 147, 99, 147, 99, 146, 115, 131, 99, 147, + 99, 131, 116, 99, 132, 68, 155, 147, 37, 0, 27, 80, + 37, 19, 0, 31, 103, 170, 131, 98, 115, 129, 99, 240, + 18, 240, 19, 240, 18, 240, 19, 240, 19, 240, 19, 240, + 19, 240, 19, 240, 35, 129, 116, 83, 138, 182, 0, 24, + 112, 59, 23, 0, 10, 83, 240, 83, 240, 67, 240, 83, + 240, 83, 240, 83, 240, 83, 240, 67, 240, 83, 240, 83, + 198, 35, 184, 18, 180, 68, 163, 115, 147, 131, 131, 147, + 131, 131, 146, 147, 131, 147, 131, 147, 131, 147, 131, 131, + 147, 131, 148, 100, 164, 69, 169, 18, 213, 35, 0, 30, + 35, 19, 0, 31, 101, 201, 147, 67, 131, 99, 99, 115, + 83, 131, 94, 79, 67, 240, 19, 240, 19, 240, 19, 240, + 20, 240, 19, 129, 116, 83, 138, 182, 0, 24, 112, 52, + 19, 0, 8, 53, 199, 179, 242, 240, 19, 240, 19, 243, + 240, 19, 240, 19, 240, 19, 202, 154, 195, 240, 19, 240, + 19, 243, 240, 19, 240, 19, 240, 19, 240, 18, 240, 19, + 240, 19, 240, 19, 240, 19, 240, 18, 240, 19, 240, 19, + 0, 25, 96, 50, 25, 0, 41, 101, 52, 190, 163, 68, + 211, 99, 211, 99, 195, 115, 195, 115, 195, 99, 211, 99, + 212, 67, 234, 226, 37, 240, 18, 240, 130, 240, 139, 237, + 191, 148, 132, 147, 163, 131, 179, 131, 179, 132, 147, 164, + 100, 204, 247, 0, 8, 61, 20, 0, 8, 35, 240, 35, + 240, 34, 240, 35, 240, 35, 240, 35, 240, 35, 240, 19, + 240, 35, 240, 35, 240, 35, 38, 146, 25, 117, 68, 116, + 99, 115, 115, 115, 115, 115, 115, 99, 115, 115, 115, 115, + 115, 115, 115, 99, 131, 99, 115, 115, 115, 115, 115, 115, + 115, 99, 131, 0, 25, 96, 29, 13, 0, 7, 20, 148, + 147, 0, 10, 115, 147, 163, 163, 163, 163, 147, 163, 163, + 163, 147, 163, 163, 163, 163, 147, 163, 0, 17, 64, 60, + 20, 0, 11, 83, 240, 20, 240, 19, 0, 17, 3, 240, + 35, 240, 35, 240, 19, 240, 35, 240, 35, 240, 35, 240, + 34, 240, 35, 240, 35, 240, 35, 240, 35, 240, 19, 240, + 35, 240, 35, 240, 35, 240, 35, 240, 19, 240, 35, 240, + 35, 240, 35, 177, 67, 185, 184, 228, 0, 6, 96, 59, + 21, 0, 8, 83, 240, 35, 240, 51, 240, 51, 240, 51, + 240, 50, 240, 51, 240, 51, 240, 51, 240, 51, 240, 35, + 116, 115, 99, 147, 68, 163, 52, 178, 52, 179, 36, 195, + 20, 216, 216, 212, 35, 180, 51, 179, 68, 163, 83, 163, + 84, 131, 115, 131, 116, 115, 131, 0, 27, 16, 34, 13, + 240, 240, 243, 163, 147, 163, 163, 163, 163, 147, 163, 163, + 163, 147, 163, 163, 163, 163, 147, 163, 163, 163, 147, 163, + 163, 163, 163, 147, 163, 0, 17, 64, 58, 30, 0, 49, + 34, 53, 86, 131, 25, 25, 117, 70, 68, 116, 100, 99, + 115, 115, 115, 115, 115, 115, 99, 116, 115, 99, 115, 115, + 115, 115, 115, 115, 115, 115, 99, 131, 115, 99, 115, 131, + 99, 115, 115, 115, 115, 115, 115, 115, 115, 99, 131, 115, + 99, 115, 131, 0, 38, 32, 41, 20, 0, 33, 3, 38, + 146, 25, 117, 68, 116, 99, 115, 115, 115, 115, 115, 115, + 99, 115, 115, 115, 115, 115, 115, 115, 99, 131, 99, 115, + 115, 115, 115, 115, 115, 115, 99, 131, 0, 25, 96, 37, + 20, 0, 33, 53, 217, 163, 68, 131, 99, 115, 131, 83, + 147, 83, 147, 82, 163, 67, 163, 67, 163, 67, 147, 83, + 147, 83, 131, 115, 99, 132, 67, 169, 213, 0, 26, 48, + 55, 22, 0, 36, 51, 53, 178, 25, 149, 68, 148, 100, + 131, 131, 131, 131, 130, 147, 115, 147, 115, 147, 115, 146, + 131, 131, 130, 147, 115, 131, 132, 99, 149, 52, 171, 163, + 52, 195, 240, 67, 240, 67, 240, 67, 240, 51, 240, 67, + 240, 67, 240, 67, 0, 7, 112, 55, 21, 0, 35, 4, + 51, 155, 148, 53, 131, 100, 115, 131, 99, 147, 99, 131, + 114, 147, 99, 147, 99, 147, 99, 147, 99, 131, 115, 131, + 116, 100, 132, 69, 141, 165, 35, 240, 51, 240, 51, 240, + 51, 240, 35, 240, 51, 240, 51, 240, 51, 240, 51, 0, + 6, 48, 25, 17, 0, 28, 3, 67, 115, 36, 136, 149, + 196, 196, 211, 227, 227, 226, 227, 227, 227, 227, 211, 227, + 227, 0, 23, 27, 18, 0, 30, 7, 154, 115, 98, 114, + 243, 243, 245, 232, 169, 199, 228, 243, 243, 81, 146, 99, + 84, 107, 151, 0, 23, 80, 30, 16, 0, 16, 83, 210, + 211, 211, 211, 171, 75, 131, 211, 211, 210, 211, 211, 211, + 211, 210, 211, 211, 211, 211, 50, 136, 149, 0, 21, 16, + 40, 20, 0, 32, 115, 115, 99, 131, 99, 115, 115, 115, + 115, 115, 115, 115, 99, 115, 115, 115, 115, 115, 115, 115, + 114, 131, 99, 115, 115, 115, 115, 100, 115, 85, 121, 19, + 133, 51, 0, 26, 39, 20, 0, 32, 67, 163, 67, 147, + 84, 131, 99, 115, 115, 99, 131, 99, 131, 83, 147, 83, + 147, 67, 179, 50, 195, 35, 195, 34, 211, 19, 211, 18, + 230, 229, 240, 19, 0, 26, 96, 63, 28, 0, 45, 67, + 115, 131, 67, 116, 99, 83, 101, 99, 83, 101, 83, 100, + 70, 83, 115, 66, 19, 67, 131, 51, 19, 67, 131, 50, + 35, 51, 147, 50, 35, 51, 147, 34, 51, 35, 163, 34, + 66, 35, 163, 18, 82, 34, 179, 18, 82, 19, 181, 98, + 18, 197, 101, 196, 116, 227, 116, 0, 36, 64, 43, 23, + 0, 37, 116, 131, 147, 115, 164, 83, 195, 67, 227, 35, + 243, 19, 240, 37, 240, 52, 240, 83, 240, 68, 240, 50, + 19, 240, 18, 51, 227, 51, 211, 83, 179, 99, 163, 131, + 116, 148, 0, 29, 64, 62, 24, 0, 39, 67, 163, 132, + 131, 163, 130, 179, 115, 179, 114, 195, 99, 195, 83, 227, + 67, 227, 51, 243, 50, 240, 19, 35, 240, 19, 34, 240, + 35, 19, 240, 50, 18, 240, 66, 18, 240, 68, 240, 83, + 240, 99, 240, 98, 240, 99, 240, 98, 240, 98, 240, 99, + 240, 38, 240, 52, 0, 8, 64, 38, 21, 0, 34, 93, + 141, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, + 35, 240, 35, 240, 35, 240, 35, 240, 36, 240, 20, 240, + 20, 240, 20, 240, 30, 126, 0, 27, 16, 11, 23, 0, + 54, 95, 4, 79, 4, 0, 55, 16, 13, 41, 0, 97, + 63, 15, 7, 79, 15, 7, 0, 97, 112, 21, 17, 0, + 6, 115, 51, 115, 51, 115, 66, 131, 51, 115, 66, 130, + 67, 115, 51, 0, 64, 96, 16, 17, 0, 8, 115, 82, + 101, 51, 91, 98, 54, 83, 67, 0, 66, 96, +}; + +//***************************************************************************** +// +// The font definition for the 40 point Cmss italic font. +// +//***************************************************************************** +const tFont g_sFontCmss40i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 36, + + // + // The height of the font. + // + 40, + + // + // The baseline of the font. + // + 30, + + // + // The offset to each character in the font. + // + { + 0, 4, 36, 59, 166, 233, 326, 402, + 416, 465, 514, 552, 609, 624, 633, 643, + 727, 782, 816, 870, 924, 981, 1034, 1090, + 1149, 1202, 1257, 1272, 1292, 1325, 1338, 1373, + 1406, 1479, 1545, 1600, 1656, 1713, 1773, 1830, + 1887, 1948, 1982, 2040, 2109, 2155, 2258, 2337, + 2405, 2461, 2541, 2598, 2653, 2713, 2773, 2842, + 2948, 3021, 3086, 3148, 3191, 3214, 3257, 3276, + 3286, 3300, 3336, 3396, 3433, 3492, 3527, 3579, + 3629, 3690, 3719, 3779, 3838, 3872, 3930, 3971, + 4008, 4063, 4118, 4143, 4170, 4200, 4240, 4279, + 4342, 4385, 4447, 4485, 4496, 4509, 4530, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss40iData +}; diff --git a/grlib/fonts/fontcmss42.c b/grlib/fonts/fontcmss42.c new file mode 100644 index 0000000..4908657 --- /dev/null +++ b/grlib/fonts/fontcmss42.c @@ -0,0 +1,493 @@ +//***************************************************************************** +// +// fontcmss42.c - Font definition for the 42pt Cmss font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 42 point +// Bold: no +// Italic: no +// Memory usage: 4836 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 42 point Cmss font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss42Data[4635] = +{ + 5, 17, 0, 91, 48, 33, 7, 240, 99, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 240, 240, 35, 67, 67, 0, + 10, 16, 25, 15, 240, 240, 243, 83, 67, 83, 67, 83, + 82, 98, 82, 98, 81, 113, 82, 98, 82, 98, 82, 98, + 0, 58, 96, 113, 32, 0, 13, 82, 114, 240, 98, 114, + 240, 97, 129, 240, 113, 114, 240, 98, 114, 240, 98, 113, + 240, 113, 129, 240, 113, 114, 240, 98, 114, 240, 98, 113, + 240, 113, 129, 240, 113, 114, 240, 98, 114, 240, 98, 113, + 207, 13, 210, 114, 240, 98, 114, 240, 97, 129, 240, 113, + 129, 240, 113, 129, 240, 98, 114, 240, 98, 114, 223, 13, + 193, 114, 240, 98, 114, 240, 98, 113, 240, 113, 129, 240, + 113, 114, 240, 98, 114, 240, 98, 113, 240, 113, 129, 240, + 113, 114, 240, 98, 114, 240, 98, 113, 240, 113, 129, 240, + 98, 114, 240, 98, 114, 0, 14, 16, 66, 19, 240, 178, + 240, 34, 240, 21, 201, 140, 101, 18, 35, 99, 50, 65, + 84, 50, 163, 66, 163, 66, 163, 66, 164, 50, 179, 50, + 181, 18, 199, 216, 201, 214, 210, 20, 194, 36, 178, 36, + 178, 51, 178, 51, 178, 51, 178, 51, 178, 51, 66, 82, + 35, 84, 50, 20, 108, 138, 197, 240, 18, 240, 34, 0, + 22, 80, 103, 32, 67, 241, 198, 194, 183, 194, 163, 36, + 162, 179, 51, 161, 179, 83, 130, 179, 83, 129, 195, 83, + 114, 195, 83, 113, 211, 83, 98, 211, 83, 97, 227, 83, + 82, 227, 82, 82, 240, 19, 51, 82, 240, 19, 51, 66, + 240, 55, 82, 240, 69, 82, 240, 242, 240, 226, 101, 240, + 66, 87, 240, 34, 83, 51, 240, 17, 99, 51, 242, 83, + 83, 225, 99, 83, 210, 99, 83, 209, 115, 83, 194, 115, + 83, 193, 131, 83, 178, 131, 83, 177, 163, 51, 178, 163, + 51, 162, 199, 178, 199, 177, 243, 0, 37, 80, 29, 0, + 11, 116, 240, 135, 240, 120, 240, 83, 51, 240, 83, 67, + 240, 51, 83, 240, 51, 83, 240, 51, 83, 240, 51, 68, + 240, 51, 67, 240, 68, 35, 240, 84, 19, 240, 118, 240, + 133, 179, 164, 195, 149, 179, 151, 163, 132, 20, 131, 132, + 36, 131, 131, 68, 99, 131, 100, 68, 131, 101, 51, 147, + 117, 19, 163, 135, 180, 133, 212, 88, 205, 26, 107, 57, + 134, 134, 0, 40, 64, 15, 7, 240, 99, 67, 67, 82, + 82, 81, 82, 82, 82, 0, 27, 96, 46, 13, 240, 82, + 162, 163, 147, 162, 163, 163, 147, 163, 162, 163, 163, 163, + 163, 162, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 178, 179, 163, 163, 163, 178, 179, 163, 179, 163, + 179, 163, 179, 179, 178, 64, 45, 13, 210, 194, 179, 179, + 178, 179, 178, 179, 163, 178, 179, 163, 163, 163, 179, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 147, 163, 163, 163, 162, 163, 163, 162, 163, 162, 163, 147, + 162, 162, 176, 40, 19, 240, 163, 240, 19, 240, 19, 240, + 19, 163, 51, 51, 68, 35, 36, 93, 137, 197, 215, 185, + 132, 19, 20, 84, 35, 36, 67, 51, 51, 163, 240, 19, + 240, 19, 240, 19, 0, 58, 32, 60, 29, 0, 30, 65, + 240, 209, 240, 209, 240, 209, 240, 209, 240, 209, 240, 209, + 240, 209, 240, 209, 240, 209, 240, 209, 240, 209, 240, 209, + 240, 31, 10, 240, 17, 240, 209, 240, 209, 240, 209, 240, + 209, 240, 209, 240, 209, 240, 209, 240, 209, 240, 209, 240, + 209, 240, 209, 240, 209, 0, 31, 15, 7, 0, 25, 51, + 67, 67, 82, 82, 66, 82, 82, 0, 5, 112, 10, 14, + 0, 36, 106, 74, 74, 0, 33, 96, 10, 7, 0, 25, + 51, 67, 67, 0, 10, 16, 88, 19, 240, 240, 49, 240, + 34, 240, 33, 240, 49, 240, 34, 240, 33, 240, 49, 240, + 34, 240, 33, 240, 49, 240, 34, 240, 33, 240, 34, 240, + 34, 240, 33, 240, 34, 240, 34, 240, 33, 240, 34, 240, + 34, 240, 33, 240, 34, 240, 34, 240, 33, 240, 34, 240, + 34, 240, 33, 240, 34, 240, 34, 240, 33, 240, 34, 240, + 33, 240, 49, 240, 34, 240, 33, 240, 49, 240, 34, 240, + 33, 240, 49, 240, 34, 240, 33, 240, 240, 112, 55, 20, + 0, 13, 37, 216, 186, 148, 68, 116, 100, 99, 131, 99, + 131, 98, 163, 67, 163, 67, 163, 67, 163, 67, 163, 67, + 163, 67, 163, 67, 163, 67, 163, 67, 163, 67, 163, 67, + 163, 67, 148, 83, 131, 99, 131, 100, 100, 116, 68, 155, + 168, 214, 0, 28, 80, 35, 17, 0, 11, 50, 152, 152, + 147, 35, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 157, + 77, 0, 23, 112, 50, 19, 0, 12, 54, 201, 155, 115, + 85, 83, 116, 82, 148, 66, 163, 65, 179, 240, 19, 240, + 19, 240, 19, 243, 240, 19, 243, 240, 18, 240, 18, 240, + 18, 240, 18, 240, 18, 240, 18, 243, 243, 243, 243, 240, + 31, 79, 79, 0, 26, 80, 52, 20, 0, 13, 37, 217, + 171, 132, 68, 115, 131, 98, 147, 240, 35, 240, 35, 240, + 35, 240, 19, 240, 20, 184, 198, 232, 240, 36, 240, 51, + 240, 36, 240, 35, 240, 35, 240, 35, 240, 35, 81, 164, + 67, 147, 100, 85, 124, 154, 198, 0, 28, 80, 59, 21, + 0, 14, 36, 240, 36, 240, 21, 240, 21, 242, 19, 227, + 19, 227, 19, 211, 35, 211, 35, 195, 51, 195, 51, 179, + 67, 164, 67, 163, 83, 147, 99, 147, 99, 131, 115, 143, + 2, 79, 2, 79, 2, 227, 240, 51, 240, 51, 240, 51, + 240, 51, 240, 51, 240, 51, 0, 29, 112, 53, 20, 0, + 12, 109, 125, 125, 115, 240, 35, 240, 35, 240, 35, 240, + 35, 240, 35, 240, 35, 36, 187, 156, 133, 68, 116, 99, + 115, 116, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, + 240, 35, 82, 147, 84, 131, 100, 84, 140, 153, 213, 0, + 28, 96, 52, 19, 0, 12, 101, 200, 169, 148, 228, 243, + 243, 240, 19, 240, 18, 68, 131, 39, 115, 25, 102, 53, + 84, 115, 84, 116, 67, 147, 67, 147, 67, 147, 67, 147, + 67, 147, 82, 147, 83, 131, 83, 115, 100, 99, 116, 52, + 154, 153, 197, 0, 27, 32, 61, 20, 0, 12, 79, 1, + 79, 1, 79, 1, 240, 34, 240, 34, 240, 35, 240, 19, + 240, 34, 240, 35, 240, 34, 240, 35, 240, 34, 240, 35, + 240, 34, 240, 35, 240, 35, 240, 34, 240, 35, 240, 35, + 240, 35, 240, 35, 240, 19, 240, 35, 240, 35, 240, 35, + 240, 35, 240, 35, 0, 29, 16, 52, 19, 0, 12, 69, + 201, 155, 131, 84, 99, 115, 98, 146, 98, 147, 82, 146, + 98, 146, 99, 115, 115, 83, 153, 197, 201, 147, 83, 115, + 115, 99, 116, 67, 147, 67, 147, 67, 147, 67, 147, 68, + 131, 83, 115, 100, 84, 123, 153, 197, 0, 27, 32, 54, + 19, 0, 12, 69, 216, 169, 148, 67, 115, 115, 99, 115, + 83, 146, 83, 147, 67, 147, 67, 147, 67, 147, 67, 147, + 67, 147, 68, 116, 83, 116, 85, 54, 105, 19, 119, 35, + 132, 66, 240, 19, 240, 19, 243, 240, 19, 130, 68, 138, + 168, 197, 0, 27, 64, 15, 7, 0, 12, 35, 67, 67, + 0, 11, 3, 67, 67, 0, 10, 16, 20, 7, 0, 12, + 35, 67, 67, 0, 11, 3, 67, 67, 82, 82, 66, 82, + 82, 0, 5, 112, 33, 7, 0, 9, 83, 67, 67, 240, + 240, 35, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 240, + 160, 13, 30, 0, 63, 111, 11, 0, 26, 111, 11, 0, + 64, 32, 36, 18, 0, 25, 51, 243, 243, 0, 10, 115, + 243, 243, 243, 243, 243, 227, 243, 228, 227, 227, 228, 212, + 227, 243, 243, 243, 243, 145, 99, 100, 93, 106, 166, 0, + 7, 96, 35, 18, 0, 7, 38, 170, 109, 99, 84, 97, + 132, 243, 243, 243, 243, 228, 212, 212, 212, 227, 228, 227, + 228, 227, 243, 243, 243, 243, 0, 10, 115, 243, 243, 0, + 26, 75, 25, 0, 10, 85, 240, 42, 236, 182, 84, 164, + 132, 132, 84, 19, 116, 74, 115, 76, 83, 83, 69, 83, + 67, 100, 83, 67, 100, 67, 67, 131, 67, 67, 131, 67, + 67, 131, 67, 67, 131, 67, 67, 131, 67, 67, 131, 67, + 68, 115, 83, 67, 99, 99, 68, 83, 99, 84, 51, 131, + 74, 132, 72, 164, 84, 197, 240, 102, 116, 174, 203, 240, + 23, 0, 35, 64, 73, 27, 0, 11, 52, 240, 132, 240, + 117, 240, 118, 240, 98, 19, 240, 83, 20, 240, 67, 35, + 240, 51, 51, 240, 51, 52, 240, 35, 52, 240, 19, 83, + 240, 19, 84, 243, 84, 227, 115, 227, 116, 211, 116, 195, + 147, 195, 148, 191, 1, 175, 2, 175, 3, 147, 180, 132, + 195, 131, 212, 115, 212, 99, 243, 99, 244, 83, 244, 67, + 240, 35, 0, 37, 80, 58, 23, 0, 8, 92, 191, 131, + 133, 115, 164, 99, 180, 83, 195, 83, 195, 83, 195, 83, + 195, 83, 179, 99, 164, 99, 133, 126, 156, 191, 131, 133, + 115, 164, 99, 180, 83, 196, 67, 211, 67, 211, 67, 211, + 67, 211, 67, 196, 67, 195, 83, 179, 99, 149, 111, 141, + 0, 32, 112, 58, 24, 0, 10, 24, 236, 174, 149, 115, + 133, 161, 131, 240, 84, 240, 83, 240, 83, 240, 99, 240, + 99, 240, 83, 240, 99, 240, 99, 240, 99, 240, 99, 240, + 99, 240, 99, 240, 100, 240, 99, 240, 99, 240, 100, 240, + 100, 240, 99, 240, 101, 162, 134, 100, 159, 187, 247, 0, + 34, 61, 25, 0, 9, 61, 207, 163, 133, 147, 164, 131, + 180, 115, 196, 99, 211, 99, 227, 83, 227, 83, 227, 83, + 243, 67, 243, 67, 243, 67, 243, 67, 243, 67, 243, 67, + 243, 67, 243, 67, 243, 67, 227, 83, 227, 83, 227, 83, + 211, 99, 196, 99, 195, 115, 179, 131, 148, 159, 173, 0, + 35, 112, 65, 21, 0, 7, 127, 2, 79, 2, 79, 2, + 67, 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, + 51, 240, 51, 240, 51, 240, 63, 1, 95, 1, 95, 1, + 83, 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, + 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, 63, 2, + 79, 2, 79, 2, 0, 29, 48, 61, 20, 0, 7, 79, + 1, 79, 1, 79, 1, 67, 240, 35, 240, 35, 240, 35, + 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, + 240, 47, 95, 95, 83, 240, 35, 240, 35, 240, 35, 240, + 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, + 35, 240, 35, 240, 35, 0, 29, 80, 58, 24, 0, 10, + 23, 252, 175, 133, 116, 116, 178, 100, 240, 83, 240, 84, + 240, 83, 240, 99, 240, 84, 240, 83, 240, 99, 240, 99, + 240, 99, 240, 99, 240, 99, 152, 67, 152, 83, 136, 83, + 211, 84, 195, 99, 195, 100, 179, 116, 163, 117, 147, 134, + 100, 159, 188, 231, 0, 34, 65, 23, 0, 8, 83, 211, + 67, 211, 67, 211, 67, 211, 67, 211, 67, 211, 67, 211, + 67, 211, 67, 211, 67, 211, 67, 211, 67, 211, 79, 4, + 79, 4, 79, 4, 67, 211, 67, 211, 67, 211, 67, 211, + 67, 211, 67, 211, 67, 211, 67, 211, 67, 211, 67, 211, + 67, 211, 67, 211, 67, 211, 67, 211, 0, 32, 16, 35, + 7, 240, 99, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 0, 10, 16, 38, 17, + 0, 7, 83, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 65, 132, 67, 84, 92, 106, 150, 0, 24, 48, + 65, 25, 0, 9, 51, 212, 83, 196, 99, 180, 115, 164, + 131, 164, 131, 148, 147, 132, 163, 116, 179, 100, 195, 84, + 211, 68, 227, 52, 243, 38, 227, 24, 211, 24, 215, 36, + 198, 52, 197, 84, 180, 116, 163, 132, 163, 148, 147, 163, + 147, 164, 131, 180, 115, 180, 115, 196, 99, 212, 83, 212, + 83, 228, 0, 34, 112, 62, 19, 0, 7, 19, 240, 19, + 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, + 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, + 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, + 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, + 240, 31, 79, 79, 0, 26, 80, 110, 30, 0, 11, 37, + 240, 21, 69, 240, 21, 70, 245, 70, 230, 70, 230, 67, + 19, 210, 19, 67, 19, 195, 19, 67, 19, 195, 19, 67, + 35, 163, 35, 67, 35, 163, 35, 67, 35, 163, 35, 67, + 51, 131, 51, 67, 51, 131, 51, 67, 51, 131, 51, 67, + 67, 99, 67, 67, 67, 99, 67, 67, 67, 99, 67, 67, + 83, 67, 83, 67, 83, 67, 83, 67, 83, 67, 83, 67, + 99, 35, 99, 67, 99, 35, 99, 67, 99, 35, 99, 67, + 115, 18, 115, 67, 118, 115, 67, 117, 131, 67, 132, 131, + 67, 132, 131, 67, 240, 83, 0, 41, 96, 86, 23, 0, + 8, 85, 179, 69, 179, 70, 163, 70, 163, 67, 19, 147, + 67, 19, 147, 67, 20, 131, 67, 35, 131, 67, 36, 115, + 67, 51, 115, 67, 51, 115, 67, 67, 99, 67, 67, 99, + 67, 68, 83, 67, 83, 83, 67, 84, 67, 67, 99, 67, + 67, 99, 67, 67, 115, 51, 67, 115, 51, 67, 116, 35, + 67, 131, 35, 67, 132, 19, 67, 147, 19, 67, 147, 19, + 67, 166, 67, 166, 67, 181, 67, 181, 0, 32, 16, 76, + 28, 0, 11, 86, 240, 90, 240, 30, 213, 101, 180, 164, + 163, 195, 147, 227, 131, 228, 99, 240, 19, 99, 240, 19, + 98, 240, 51, 67, 240, 51, 67, 240, 51, 67, 240, 51, + 67, 240, 51, 67, 240, 51, 67, 240, 51, 67, 240, 51, + 68, 240, 20, 83, 240, 19, 99, 240, 19, 100, 228, 116, + 196, 147, 195, 165, 148, 181, 101, 222, 240, 26, 240, 86, + 0, 40, 16, 59, 22, 0, 8, 44, 174, 131, 133, 99, + 164, 83, 179, 83, 180, 67, 195, 67, 195, 67, 195, 67, + 195, 67, 195, 67, 179, 83, 164, 83, 133, 111, 126, 140, + 163, 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, 240, + 67, 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, 0, + 32, 80, 90, 28, 0, 11, 86, 240, 90, 240, 30, 213, + 101, 180, 149, 163, 195, 147, 227, 131, 228, 99, 240, 19, + 99, 240, 19, 99, 240, 20, 67, 240, 51, 67, 240, 51, + 67, 240, 51, 67, 240, 51, 67, 240, 51, 67, 240, 51, + 67, 240, 51, 68, 240, 35, 83, 240, 19, 99, 100, 99, + 100, 100, 68, 116, 100, 51, 147, 100, 35, 165, 88, 181, + 86, 222, 240, 28, 240, 54, 20, 240, 148, 240, 164, 240, + 164, 240, 148, 240, 164, 0, 21, 80, 61, 24, 0, 9, + 13, 191, 147, 149, 115, 180, 99, 195, 99, 211, 83, 211, + 83, 211, 83, 211, 83, 211, 83, 195, 99, 180, 99, 149, + 127, 1, 142, 173, 179, 115, 179, 116, 163, 131, 163, 132, + 147, 147, 147, 148, 131, 164, 115, 179, 115, 180, 99, 195, + 99, 196, 83, 211, 83, 227, 0, 33, 64, 55, 21, 0, + 8, 86, 219, 142, 116, 100, 99, 161, 100, 240, 35, 240, + 51, 240, 51, 240, 52, 240, 51, 240, 53, 240, 39, 249, + 218, 232, 240, 37, 240, 36, 240, 52, 240, 51, 240, 51, + 240, 51, 240, 51, 65, 196, 66, 164, 85, 100, 126, 139, + 214, 0, 30, 16, 64, 27, 0, 10, 31, 8, 79, 8, + 79, 8, 227, 240, 147, 240, 147, 240, 147, 240, 147, 240, + 147, 240, 147, 240, 147, 240, 147, 240, 147, 240, 147, 240, + 147, 240, 147, 240, 147, 240, 147, 240, 147, 240, 147, 240, + 147, 240, 147, 240, 147, 240, 147, 240, 147, 240, 147, 240, + 147, 240, 147, 240, 147, 0, 38, 112, 62, 23, 0, 8, + 83, 211, 67, 211, 67, 211, 67, 211, 67, 211, 67, 211, + 67, 211, 67, 211, 67, 211, 67, 211, 67, 211, 67, 211, + 67, 211, 67, 211, 67, 211, 67, 211, 67, 211, 67, 211, + 67, 211, 67, 211, 67, 211, 67, 211, 83, 179, 99, 179, + 115, 147, 132, 131, 148, 84, 186, 246, 0, 33, 76, 28, + 0, 10, 67, 240, 51, 68, 240, 20, 68, 240, 19, 99, + 240, 19, 100, 228, 115, 227, 132, 211, 132, 195, 163, 195, + 164, 179, 164, 163, 195, 163, 196, 147, 196, 131, 227, 131, + 228, 100, 228, 99, 240, 19, 99, 240, 20, 67, 240, 51, + 67, 240, 51, 67, 240, 52, 35, 240, 83, 35, 240, 83, + 35, 240, 87, 240, 118, 240, 118, 240, 117, 240, 148, 0, + 40, 32, 117, 39, 0, 14, 83, 196, 211, 68, 181, 179, + 84, 181, 179, 84, 181, 179, 99, 166, 179, 100, 147, 19, + 147, 116, 147, 19, 147, 131, 146, 35, 147, 131, 131, 35, + 132, 132, 115, 36, 115, 148, 115, 51, 115, 163, 114, 67, + 115, 163, 99, 67, 100, 164, 83, 68, 83, 180, 83, 83, + 83, 195, 82, 99, 83, 195, 67, 99, 67, 212, 51, 100, + 51, 227, 51, 115, 51, 227, 50, 131, 51, 227, 35, 131, + 50, 244, 19, 147, 19, 240, 19, 19, 147, 19, 240, 19, + 18, 163, 19, 240, 19, 18, 163, 18, 240, 38, 181, 240, + 52, 197, 240, 52, 196, 240, 68, 196, 0, 55, 16, 73, + 28, 0, 10, 69, 212, 116, 212, 132, 180, 164, 148, 180, + 147, 212, 116, 228, 84, 244, 83, 240, 36, 52, 240, 52, + 20, 240, 83, 19, 240, 103, 240, 117, 240, 147, 240, 149, + 240, 134, 240, 99, 19, 240, 84, 20, 240, 67, 52, 240, + 35, 83, 240, 20, 84, 243, 116, 212, 132, 180, 148, 179, + 180, 148, 196, 116, 212, 115, 244, 84, 240, 20, 0, 39, + 71, 29, 0, 10, 116, 240, 36, 84, 240, 19, 116, 227, + 132, 212, 148, 195, 164, 180, 180, 148, 212, 131, 228, 116, + 244, 99, 240, 35, 83, 240, 52, 52, 240, 68, 35, 240, + 99, 19, 240, 119, 240, 133, 240, 149, 240, 163, 240, 179, + 240, 179, 240, 179, 240, 179, 240, 179, 240, 179, 240, 179, + 240, 179, 240, 179, 240, 179, 240, 179, 0, 41, 96, 66, + 24, 0, 9, 31, 3, 111, 3, 111, 3, 240, 84, 240, + 68, 240, 83, 240, 84, 240, 68, 240, 83, 240, 84, 240, + 68, 240, 84, 240, 68, 240, 83, 240, 84, 240, 68, 240, + 83, 240, 84, 240, 68, 240, 84, 240, 68, 240, 83, 240, + 84, 240, 68, 240, 83, 240, 84, 240, 79, 5, 79, 5, + 79, 5, 0, 33, 64, 45, 11, 7, 71, 71, 67, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 135, 71, + 71, 240, 25, 15, 0, 5, 98, 98, 82, 98, 82, 98, + 81, 113, 82, 98, 82, 98, 83, 83, 67, 83, 67, 83, + 0, 58, 80, 45, 11, 7, 71, 71, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 71, 71, 71, 240, + 19, 17, 0, 7, 3, 213, 179, 19, 162, 51, 131, 66, + 115, 98, 83, 115, 0, 70, 80, 11, 7, 240, 240, 83, + 67, 67, 67, 0, 30, 32, 15, 7, 240, 114, 82, 82, + 81, 82, 82, 83, 67, 67, 0, 27, 80, 33, 17, 0, + 30, 38, 138, 115, 83, 243, 227, 227, 227, 167, 122, 92, + 84, 83, 67, 115, 67, 115, 67, 115, 68, 84, 92, 88, + 19, 101, 51, 0, 23, 112, 63, 19, 0, 7, 19, 240, + 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, + 19, 240, 19, 240, 19, 240, 19, 240, 19, 53, 131, 24, + 125, 101, 69, 83, 116, 83, 132, 67, 147, 67, 147, 67, + 147, 67, 147, 67, 147, 67, 147, 67, 131, 83, 116, 85, + 69, 93, 99, 24, 115, 52, 0, 27, 32, 35, 19, 0, + 34, 6, 186, 139, 116, 98, 100, 243, 243, 240, 19, 240, + 19, 240, 19, 240, 19, 240, 19, 240, 35, 240, 20, 240, + 20, 99, 124, 137, 182, 0, 27, 16, 61, 20, 0, 9, + 19, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, + 35, 240, 35, 240, 35, 240, 35, 240, 35, 149, 51, 121, + 19, 110, 85, 85, 84, 131, 83, 147, 67, 163, 67, 163, + 67, 163, 67, 163, 67, 163, 67, 163, 83, 147, 84, 116, + 85, 85, 110, 120, 35, 148, 67, 0, 28, 33, 19, 0, + 34, 5, 201, 155, 116, 83, 99, 131, 82, 147, 79, 79, + 79, 67, 240, 19, 240, 19, 240, 35, 240, 20, 145, 100, + 99, 124, 138, 182, 0, 27, 36, 16, 0, 6, 117, 151, + 136, 131, 195, 211, 211, 211, 211, 211, 211, 170, 106, 147, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 0, 23, 32, 50, 21, 0, 37, 53, 52, + 126, 100, 52, 163, 84, 131, 115, 131, 115, 131, 115, 131, + 115, 147, 84, 148, 52, 170, 170, 178, 37, 194, 240, 67, + 240, 60, 173, 127, 84, 133, 67, 179, 67, 179, 67, 179, + 68, 148, 85, 100, 125, 183, 0, 9, 54, 18, 0, 6, + 99, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 53, 115, 40, 83, 25, 85, 84, 68, 115, 68, 115, 67, + 131, 67, 131, 67, 131, 67, 131, 67, 131, 67, 131, 67, + 131, 67, 131, 67, 131, 67, 131, 67, 131, 67, 131, 0, + 25, 32, 31, 7, 240, 240, 83, 67, 67, 67, 240, 240, + 147, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 0, 10, 16, 40, 13, 0, + 8, 115, 163, 163, 163, 0, 9, 51, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 66, 52, 72, 88, 116, 0, 5, + 96, 63, 19, 0, 7, 19, 240, 19, 240, 19, 240, 19, + 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, + 240, 19, 240, 19, 116, 83, 100, 99, 84, 115, 68, 131, + 52, 147, 36, 163, 20, 184, 185, 165, 19, 165, 35, 148, + 52, 131, 83, 131, 99, 115, 100, 99, 115, 99, 131, 83, + 132, 0, 26, 80, 35, 7, 240, 99, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 0, 10, 16, 60, 28, 0, 49, 3, 53, 100, 115, 40, + 40, 83, 25, 25, 85, 71, 68, 68, 116, 99, 68, 115, + 115, 67, 131, 115, 67, 131, 115, 67, 131, 115, 67, 131, + 115, 67, 131, 115, 67, 131, 115, 67, 131, 115, 67, 131, + 115, 67, 131, 115, 67, 131, 115, 67, 131, 115, 67, 131, + 115, 0, 39, 43, 18, 0, 31, 67, 53, 115, 40, 83, + 25, 85, 84, 68, 115, 68, 115, 67, 131, 67, 131, 67, + 131, 67, 131, 67, 131, 67, 131, 67, 131, 67, 131, 67, + 131, 67, 131, 67, 131, 67, 131, 0, 25, 32, 37, 21, + 0, 37, 69, 233, 187, 148, 84, 116, 116, 99, 147, 83, + 179, 67, 179, 67, 179, 67, 179, 67, 179, 67, 179, 83, + 147, 100, 116, 116, 84, 155, 185, 229, 0, 30, 16, 56, + 19, 0, 33, 35, 68, 131, 25, 109, 101, 69, 83, 116, + 83, 132, 67, 147, 67, 147, 67, 147, 67, 147, 67, 147, + 67, 147, 67, 131, 83, 116, 85, 69, 93, 99, 24, 115, + 52, 147, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, + 240, 19, 240, 19, 0, 9, 16, 56, 20, 0, 35, 85, + 51, 121, 19, 110, 101, 69, 84, 116, 83, 147, 68, 147, + 67, 163, 67, 163, 67, 163, 67, 163, 68, 147, 83, 147, + 84, 116, 85, 85, 110, 120, 35, 133, 67, 240, 35, 240, + 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, + 35, 0, 8, 28, 13, 0, 22, 99, 66, 67, 36, 67, + 21, 70, 117, 132, 148, 147, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 0, 19, 16, 28, 17, 0, 30, 38, + 154, 107, 84, 98, 83, 227, 228, 230, 200, 169, 213, 227, + 227, 65, 147, 67, 100, 76, 106, 151, 0, 24, 32, 31, + 16, 0, 18, 51, 211, 211, 211, 211, 171, 91, 131, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 212, 50, + 121, 135, 164, 0, 22, 112, 43, 18, 0, 31, 67, 131, + 67, 131, 67, 131, 67, 131, 67, 131, 67, 131, 67, 131, + 67, 131, 67, 131, 67, 131, 67, 131, 67, 131, 67, 131, + 67, 131, 67, 116, 68, 85, 89, 19, 102, 51, 0, 25, + 32, 40, 20, 0, 35, 3, 163, 67, 148, 68, 131, 99, + 131, 99, 116, 115, 99, 131, 99, 131, 84, 147, 67, 163, + 67, 164, 35, 195, 35, 195, 35, 195, 19, 230, 230, 229, + 240, 20, 0, 28, 96, 66, 29, 0, 50, 99, 131, 131, + 67, 116, 115, 83, 116, 115, 99, 101, 99, 99, 86, 83, + 115, 82, 19, 83, 116, 66, 34, 83, 131, 66, 35, 67, + 131, 51, 35, 51, 148, 34, 51, 51, 163, 34, 67, 35, + 163, 34, 67, 19, 179, 19, 67, 19, 194, 18, 98, 19, + 197, 98, 19, 197, 101, 212, 117, 227, 132, 0, 41, 41, + 21, 0, 36, 115, 148, 84, 116, 116, 99, 148, 67, 179, + 52, 195, 20, 230, 245, 240, 35, 240, 52, 240, 22, 227, + 19, 211, 51, 195, 67, 163, 99, 131, 116, 100, 132, 68, + 163, 0, 29, 48, 53, 20, 0, 35, 3, 163, 68, 132, + 83, 131, 99, 131, 100, 100, 115, 99, 132, 83, 147, 67, + 163, 67, 179, 51, 179, 35, 195, 35, 211, 19, 214, 245, + 244, 240, 20, 240, 35, 240, 19, 240, 35, 240, 35, 240, + 19, 240, 35, 199, 214, 244, 0, 9, 48, 25, 18, 0, + 31, 93, 93, 93, 212, 227, 227, 228, 212, 227, 227, 228, + 212, 227, 227, 227, 238, 78, 78, 0, 25, 32, 13, 23, + 0, 54, 95, 4, 79, 4, 79, 4, 0, 60, 112, 16, + 43, 0, 102, 31, 15, 9, 79, 15, 9, 79, 15, 9, + 0, 113, 48, 20, 17, 0, 6, 84, 52, 99, 67, 115, + 67, 99, 67, 115, 67, 114, 82, 115, 67, 0, 71, 16, + 17, 0, 10, 116, 82, 86, 51, 92, 67, 54, 83, 83, + 0, 70, 112, +}; + +//***************************************************************************** +// +// The font definition for the 42 point Cmss font. +// +//***************************************************************************** +const tFont g_sFontCmss42 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 38, + + // + // The height of the font. + // + 43, + + // + // The baseline of the font. + // + 32, + + // + // The offset to each character in the font. + // + { + 0, 5, 38, 63, 176, 242, 345, 425, + 440, 486, 531, 571, 631, 646, 656, 666, + 754, 809, 844, 894, 946, 1005, 1058, 1110, + 1171, 1223, 1277, 1292, 1312, 1345, 1358, 1394, + 1429, 1504, 1577, 1635, 1693, 1754, 1819, 1880, + 1938, 2003, 2038, 2076, 2141, 2203, 2313, 2399, + 2475, 2534, 2624, 2685, 2740, 2804, 2866, 2942, + 3059, 3132, 3203, 3269, 3314, 3339, 3384, 3403, + 3414, 3429, 3462, 3525, 3560, 3621, 3654, 3690, + 3740, 3794, 3825, 3865, 3928, 3963, 4023, 4066, + 4103, 4159, 4215, 4243, 4271, 4302, 4345, 4385, + 4451, 4492, 4545, 4570, 4583, 4599, 4619, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss42Data +}; diff --git a/grlib/fonts/fontcmss42b.c b/grlib/fonts/fontcmss42b.c new file mode 100644 index 0000000..b01c035 --- /dev/null +++ b/grlib/fonts/fontcmss42b.c @@ -0,0 +1,501 @@ +//***************************************************************************** +// +// fontcmss42b.c - Font definition for the 42pt Cmss bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 42 point +// Bold: yes +// Italic: no +// Memory usage: 4952 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 42 point Cmss bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss42bData[4752] = +{ + 5, 17, 0, 87, 16, 33, 10, 240, 86, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 240, 240, 70, 70, 70, 70, 70, + 0, 13, 27, 19, 240, 240, 134, 54, 70, 54, 70, 54, + 70, 54, 70, 54, 84, 84, 100, 84, 99, 99, 100, 84, + 99, 99, 0, 69, 96, 117, 37, 0, 11, 19, 114, 240, + 163, 100, 240, 132, 100, 240, 132, 100, 240, 132, 99, 240, + 147, 100, 240, 132, 100, 240, 132, 99, 240, 147, 100, 240, + 132, 100, 240, 132, 100, 240, 132, 99, 223, 15, 1, 95, + 15, 3, 79, 15, 3, 95, 15, 1, 240, 19, 100, 240, + 132, 99, 240, 147, 115, 240, 147, 100, 240, 132, 99, 240, + 31, 15, 1, 95, 15, 3, 79, 15, 3, 95, 15, 1, + 211, 100, 240, 147, 100, 240, 132, 100, 240, 132, 99, 240, + 147, 100, 240, 132, 100, 240, 132, 99, 240, 147, 100, 240, + 147, 100, 240, 132, 100, 240, 132, 99, 240, 162, 115, 0, + 11, 80, 61, 21, 115, 240, 51, 240, 24, 188, 142, 111, + 101, 19, 36, 85, 35, 66, 85, 35, 181, 35, 181, 35, + 182, 19, 186, 202, 188, 172, 172, 172, 186, 202, 179, 22, + 179, 37, 179, 37, 179, 37, 66, 83, 37, 67, 67, 37, + 69, 35, 21, 95, 1, 95, 140, 184, 240, 19, 240, 51, + 0, 22, 48, 106, 41, 71, 240, 35, 218, 228, 203, 228, + 181, 53, 196, 196, 70, 164, 197, 85, 164, 197, 85, 148, + 213, 85, 132, 229, 85, 117, 229, 85, 116, 245, 85, 100, + 240, 21, 85, 84, 240, 52, 69, 85, 240, 53, 53, 84, + 240, 91, 84, 240, 121, 84, 240, 151, 85, 240, 240, 100, + 103, 240, 132, 91, 240, 84, 108, 240, 53, 85, 53, 240, + 52, 85, 70, 240, 20, 101, 85, 244, 117, 85, 229, 117, + 85, 228, 133, 85, 212, 149, 85, 196, 165, 85, 181, 165, + 85, 180, 197, 53, 180, 220, 195, 251, 195, 240, 39, 0, + 42, 78, 35, 0, 10, 6, 240, 201, 240, 172, 240, 117, + 53, 240, 117, 69, 240, 85, 85, 240, 85, 85, 240, 85, + 85, 240, 85, 85, 240, 85, 69, 240, 101, 53, 240, 133, + 21, 131, 218, 148, 200, 165, 214, 180, 215, 165, 201, 148, + 187, 133, 165, 38, 101, 165, 70, 85, 165, 71, 53, 181, + 93, 182, 107, 214, 105, 230, 106, 98, 95, 15, 111, 14, + 125, 60, 167, 151, 0, 44, 64, 16, 10, 240, 86, 70, + 70, 70, 70, 84, 100, 99, 100, 99, 0, 37, 16, 44, + 16, 147, 195, 195, 196, 180, 181, 180, 181, 181, 165, 181, + 166, 166, 165, 181, 166, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 181, 181, 182, 166, 181, 181, 182, 181, 196, + 197, 196, 212, 197, 196, 227, 64, 44, 16, 4, 212, 212, + 197, 196, 197, 197, 181, 182, 181, 181, 182, 166, 181, 182, + 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 165, + 181, 166, 166, 165, 181, 166, 165, 181, 165, 180, 180, 196, + 180, 179, 208, 42, 20, 114, 240, 36, 240, 20, 240, 20, + 163, 66, 67, 69, 34, 52, 70, 18, 22, 79, 138, 212, + 218, 143, 70, 18, 22, 68, 50, 37, 67, 66, 67, 164, + 240, 20, 240, 20, 240, 34, 0, 56, 48, 69, 33, 0, + 22, 35, 240, 243, 240, 243, 240, 243, 240, 243, 240, 243, + 240, 243, 240, 243, 240, 243, 240, 243, 240, 243, 240, 243, + 240, 243, 240, 47, 14, 79, 14, 79, 14, 79, 14, 240, + 35, 240, 243, 240, 243, 240, 243, 240, 243, 240, 243, 240, + 243, 240, 243, 240, 243, 240, 243, 240, 243, 240, 243, 240, + 243, 240, 243, 0, 22, 96, 16, 10, 0, 32, 70, 70, + 70, 70, 70, 84, 100, 84, 99, 0, 8, 48, 10, 16, + 0, 40, 12, 76, 76, 0, 36, 64, 11, 10, 0, 32, + 70, 70, 70, 70, 70, 0, 13, 85, 22, 242, 240, 68, + 240, 52, 240, 51, 240, 52, 240, 52, 240, 51, 240, 52, + 240, 51, 240, 52, 240, 52, 240, 51, 240, 52, 240, 52, + 240, 36, 240, 52, 240, 51, 240, 52, 240, 52, 240, 51, + 240, 52, 240, 51, 240, 52, 240, 52, 240, 51, 240, 52, + 240, 52, 240, 36, 240, 52, 240, 51, 240, 52, 240, 52, + 240, 51, 240, 52, 240, 51, 240, 52, 240, 52, 240, 51, + 240, 52, 240, 52, 240, 66, 240, 64, 58, 23, 0, 6, + 71, 235, 189, 150, 54, 133, 86, 102, 86, 101, 117, 101, + 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, + 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, + 118, 70, 118, 70, 118, 85, 117, 102, 86, 102, 86, 118, + 54, 157, 187, 231, 0, 30, 39, 21, 0, 6, 51, 240, + 36, 246, 171, 156, 177, 54, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 175, 111, 1, 95, 0, 26, 112, 59, 22, 0, + 6, 23, 219, 173, 143, 101, 72, 84, 118, 83, 135, 67, + 150, 82, 150, 240, 22, 240, 22, 240, 22, 246, 240, 22, + 246, 240, 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, + 21, 240, 21, 240, 21, 240, 21, 240, 21, 240, 31, 3, + 79, 3, 79, 3, 79, 3, 0, 28, 54, 23, 0, 6, + 71, 235, 189, 159, 117, 86, 116, 118, 114, 134, 240, 38, + 240, 38, 240, 37, 240, 38, 240, 22, 217, 232, 250, 240, + 54, 240, 54, 240, 54, 240, 38, 240, 38, 240, 38, 240, + 38, 81, 182, 83, 135, 70, 87, 111, 2, 127, 156, 231, + 0, 30, 61, 24, 0, 7, 38, 240, 39, 240, 24, 240, + 24, 249, 249, 228, 21, 228, 21, 212, 37, 212, 37, 196, + 53, 196, 53, 180, 69, 180, 69, 164, 85, 164, 85, 148, + 101, 148, 101, 132, 117, 143, 4, 95, 5, 79, 5, 79, + 4, 240, 21, 240, 69, 240, 69, 240, 69, 240, 69, 240, + 69, 0, 31, 54, 23, 0, 6, 15, 143, 143, 143, 134, + 240, 38, 240, 38, 240, 38, 240, 38, 240, 38, 240, 44, + 190, 159, 134, 70, 117, 101, 116, 118, 240, 38, 240, 38, + 240, 38, 240, 38, 240, 38, 97, 166, 83, 150, 68, 134, + 86, 87, 111, 1, 143, 156, 231, 0, 30, 56, 23, 0, + 6, 103, 234, 188, 173, 151, 97, 150, 240, 22, 240, 37, + 240, 53, 240, 38, 53, 150, 25, 118, 26, 104, 70, 87, + 86, 87, 102, 70, 118, 70, 118, 70, 118, 70, 118, 70, + 118, 70, 118, 85, 118, 86, 102, 86, 86, 118, 70, 127, + 157, 187, 231, 0, 30, 65, 23, 0, 5, 111, 4, 79, + 4, 79, 4, 79, 3, 240, 53, 240, 37, 240, 37, 240, + 53, 240, 37, 240, 37, 240, 53, 240, 37, 240, 53, 240, + 38, 240, 37, 240, 38, 240, 38, 240, 37, 240, 38, 240, + 38, 240, 38, 240, 37, 240, 38, 240, 38, 240, 38, 240, + 38, 240, 38, 240, 38, 240, 38, 0, 30, 48, 54, 23, + 0, 6, 71, 236, 159, 143, 118, 86, 101, 117, 101, 117, + 101, 117, 101, 117, 101, 117, 101, 117, 117, 85, 157, 201, + 205, 149, 85, 117, 102, 86, 118, 70, 118, 70, 118, 70, + 118, 70, 118, 70, 118, 70, 118, 86, 86, 111, 2, 127, + 157, 200, 0, 30, 57, 23, 0, 6, 71, 235, 189, 159, + 119, 54, 118, 86, 86, 117, 86, 117, 86, 118, 70, 118, + 70, 118, 70, 118, 70, 118, 70, 118, 70, 103, 86, 87, + 86, 72, 106, 22, 121, 22, 149, 54, 240, 37, 240, 53, + 240, 38, 240, 37, 146, 87, 142, 142, 172, 231, 0, 30, + 16, 18, 10, 0, 15, 6, 70, 70, 70, 70, 0, 11, + 102, 70, 70, 70, 70, 0, 13, 23, 10, 0, 15, 6, + 70, 70, 70, 70, 0, 11, 102, 70, 70, 70, 70, 84, + 100, 84, 99, 0, 8, 48, 33, 10, 0, 13, 102, 70, + 70, 70, 70, 240, 150, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 240, 144, 25, 34, 0, 59, 95, 13, 95, 15, 79, + 15, 95, 13, 0, 22, 15, 13, 95, 15, 79, 15, 95, + 13, 0, 60, 16, 44, 20, 0, 28, 20, 246, 230, 230, + 244, 0, 7, 4, 240, 20, 240, 20, 240, 20, 240, 20, + 240, 20, 244, 240, 20, 245, 229, 230, 214, 230, 229, 245, + 245, 130, 85, 115, 86, 69, 111, 93, 152, 0, 6, 16, + 45, 21, 0, 5, 105, 173, 111, 1, 85, 86, 99, 118, + 81, 150, 246, 246, 231, 230, 230, 230, 230, 245, 245, 240, + 21, 240, 21, 240, 20, 240, 36, 240, 36, 240, 36, 0, + 9, 118, 246, 246, 246, 246, 0, 27, 64, 77, 29, 0, + 8, 73, 240, 46, 223, 2, 183, 102, 150, 150, 118, 91, + 117, 62, 101, 63, 1, 85, 38, 71, 85, 37, 102, 69, + 53, 102, 69, 37, 133, 69, 37, 133, 69, 37, 133, 69, + 37, 133, 69, 37, 133, 69, 37, 133, 69, 37, 133, 69, + 53, 101, 101, 37, 101, 101, 38, 70, 101, 62, 133, 60, + 150, 72, 198, 240, 151, 134, 159, 3, 222, 240, 57, 0, + 37, 64, 69, 30, 0, 8, 103, 240, 120, 240, 106, 240, + 90, 240, 90, 240, 76, 240, 53, 22, 240, 53, 23, 240, + 22, 38, 240, 21, 54, 240, 21, 55, 230, 70, 229, 86, + 229, 87, 198, 102, 197, 118, 197, 119, 166, 134, 165, 150, + 175, 6, 143, 7, 143, 7, 143, 8, 102, 198, 101, 214, + 86, 215, 70, 230, 69, 246, 69, 240, 21, 0, 38, 65, + 28, 0, 7, 15, 2, 191, 4, 159, 6, 127, 6, 118, + 136, 102, 166, 102, 182, 86, 182, 86, 182, 86, 181, 102, + 166, 102, 166, 102, 135, 127, 4, 159, 2, 191, 5, 134, + 151, 102, 182, 86, 183, 70, 198, 70, 198, 70, 198, 70, + 198, 70, 183, 70, 167, 95, 8, 95, 7, 111, 5, 143, + 3, 0, 36, 32, 62, 28, 0, 8, 42, 255, 1, 175, + 3, 159, 4, 136, 117, 119, 194, 118, 225, 103, 240, 102, + 240, 118, 240, 102, 240, 118, 240, 118, 240, 118, 240, 118, + 240, 118, 240, 118, 240, 118, 240, 118, 240, 134, 240, 118, + 240, 119, 240, 118, 241, 104, 179, 121, 117, 143, 5, 159, + 4, 191, 240, 26, 0, 36, 65, 30, 0, 7, 79, 2, + 223, 5, 175, 6, 159, 8, 118, 152, 118, 183, 102, 199, + 86, 214, 86, 214, 86, 230, 70, 230, 70, 230, 70, 230, + 70, 230, 70, 230, 70, 230, 70, 230, 70, 230, 70, 230, + 70, 230, 70, 214, 86, 214, 86, 199, 86, 183, 102, 152, + 127, 8, 127, 6, 159, 5, 175, 2, 0, 39, 16, 65, + 25, 0, 6, 47, 5, 95, 5, 95, 5, 95, 5, 86, + 240, 70, 240, 70, 240, 70, 240, 70, 240, 70, 240, 70, + 240, 70, 240, 79, 3, 127, 4, 111, 4, 111, 3, 118, + 240, 70, 240, 70, 240, 70, 240, 70, 240, 70, 240, 70, + 240, 70, 240, 70, 240, 79, 5, 95, 6, 79, 6, 79, + 5, 0, 31, 112, 64, 23, 0, 5, 111, 4, 79, 4, + 79, 4, 79, 4, 70, 240, 38, 240, 38, 240, 38, 240, + 38, 240, 38, 240, 38, 240, 38, 240, 38, 240, 47, 2, + 111, 3, 95, 3, 95, 2, 102, 240, 38, 240, 38, 240, + 38, 240, 38, 240, 38, 240, 38, 240, 38, 240, 38, 240, + 38, 240, 38, 240, 38, 0, 30, 112, 65, 29, 0, 8, + 74, 240, 31, 2, 175, 5, 143, 6, 120, 134, 103, 195, + 118, 241, 102, 240, 134, 240, 134, 240, 118, 240, 134, 240, + 134, 240, 134, 240, 134, 240, 134, 154, 70, 154, 70, 154, + 70, 154, 86, 198, 86, 198, 87, 182, 103, 166, 104, 150, + 121, 118, 143, 6, 159, 5, 191, 1, 240, 26, 0, 37, + 48, 65, 29, 0, 7, 38, 214, 70, 214, 70, 214, 70, + 214, 70, 214, 70, 214, 70, 214, 70, 214, 70, 214, 70, + 214, 70, 214, 70, 214, 79, 10, 79, 10, 79, 10, 79, + 10, 70, 214, 70, 214, 70, 214, 70, 214, 70, 214, 70, + 214, 70, 214, 70, 214, 70, 214, 70, 214, 70, 214, 70, + 214, 70, 214, 0, 36, 96, 34, 10, 240, 86, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 0, 13, 38, 20, 0, 6, 38, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 82, 118, 83, 87, 79, + 95, 108, 183, 0, 26, 16, 63, 30, 0, 7, 70, 230, + 70, 214, 86, 198, 102, 167, 118, 151, 134, 135, 150, 119, + 166, 103, 182, 87, 198, 71, 214, 55, 230, 39, 246, 24, + 255, 255, 1, 239, 2, 218, 22, 217, 54, 200, 86, 182, + 119, 166, 134, 166, 150, 150, 166, 134, 167, 118, 182, 118, + 198, 102, 214, 86, 215, 70, 230, 0, 38, 64, 22, 240, + 240, 230, 240, 22, 240, 22, 240, 22, 240, 22, 240, 22, + 240, 22, 240, 22, 240, 22, 240, 22, 240, 22, 240, 22, + 240, 22, 240, 22, 240, 22, 240, 22, 240, 22, 240, 22, + 240, 22, 240, 22, 240, 22, 240, 22, 240, 22, 240, 22, + 240, 22, 240, 31, 3, 79, 3, 79, 3, 79, 3, 0, + 28, 104, 37, 0, 9, 40, 240, 40, 73, 249, 73, 249, + 74, 218, 74, 218, 74, 218, 75, 187, 70, 20, 180, 22, + 70, 20, 180, 22, 70, 21, 149, 22, 70, 36, 148, 38, + 70, 37, 117, 38, 70, 37, 117, 38, 70, 52, 116, 54, + 70, 53, 85, 54, 70, 53, 84, 70, 70, 68, 84, 70, + 70, 69, 53, 70, 70, 84, 52, 86, 70, 84, 52, 86, + 70, 85, 20, 102, 70, 100, 20, 102, 70, 100, 20, 102, + 70, 104, 118, 70, 119, 118, 70, 119, 118, 70, 133, 134, + 70, 133, 134, 70, 240, 102, 0, 46, 96, 81, 30, 0, + 7, 73, 182, 73, 182, 74, 166, 74, 166, 75, 150, 75, + 150, 70, 21, 134, 70, 21, 134, 70, 37, 118, 70, 37, + 118, 70, 53, 102, 70, 53, 102, 70, 69, 86, 70, 69, + 86, 70, 70, 70, 70, 85, 70, 70, 85, 70, 70, 101, + 54, 70, 101, 54, 70, 117, 38, 70, 117, 38, 70, 133, + 22, 70, 133, 22, 70, 155, 70, 155, 70, 170, 70, 170, + 70, 185, 70, 200, 0, 38, 63, 31, 0, 8, 121, 240, + 79, 255, 2, 215, 88, 166, 150, 150, 182, 133, 214, 102, + 214, 102, 214, 101, 246, 70, 246, 70, 246, 70, 246, 70, + 246, 70, 246, 70, 246, 70, 246, 70, 246, 70, 246, 70, + 246, 86, 214, 102, 214, 103, 198, 118, 182, 150, 150, 168, + 88, 207, 2, 255, 240, 73, 0, 40, 48, 64, 27, 0, + 6, 111, 2, 175, 4, 143, 5, 127, 6, 102, 136, 86, + 166, 86, 182, 70, 182, 70, 182, 70, 182, 70, 182, 70, + 182, 70, 182, 70, 166, 86, 136, 95, 6, 111, 4, 143, + 2, 166, 240, 102, 240, 102, 240, 102, 240, 102, 240, 102, + 240, 102, 240, 102, 240, 102, 240, 102, 240, 102, 0, 36, + 48, 73, 31, 0, 8, 121, 240, 79, 255, 2, 215, 88, + 166, 150, 150, 182, 133, 214, 102, 214, 102, 214, 101, 246, + 70, 246, 70, 246, 70, 246, 70, 246, 70, 246, 70, 246, + 70, 246, 70, 246, 70, 246, 70, 246, 86, 214, 102, 85, + 54, 102, 86, 38, 118, 92, 150, 76, 152, 58, 207, 2, + 255, 1, 240, 62, 240, 166, 240, 167, 240, 167, 240, 166, + 0, 24, 65, 27, 0, 6, 111, 2, 175, 4, 143, 6, + 111, 7, 86, 151, 86, 167, 70, 182, 70, 182, 70, 182, + 70, 182, 70, 182, 70, 166, 86, 151, 95, 6, 111, 4, + 143, 2, 166, 86, 166, 86, 166, 102, 150, 118, 134, 118, + 134, 134, 118, 134, 118, 150, 102, 151, 86, 166, 86, 182, + 70, 182, 70, 197, 0, 34, 32, 55, 24, 0, 6, 104, + 222, 159, 1, 127, 2, 118, 101, 102, 147, 102, 161, 118, + 240, 54, 240, 55, 240, 41, 240, 28, 222, 175, 190, 205, + 249, 240, 40, 240, 39, 240, 54, 240, 54, 66, 198, 68, + 166, 71, 102, 95, 4, 95, 3, 127, 2, 157, 232, 0, + 31, 32, 64, 30, 0, 7, 79, 11, 79, 11, 79, 11, + 79, 11, 79, 11, 230, 240, 150, 240, 150, 240, 150, 240, + 150, 240, 150, 240, 150, 240, 150, 240, 150, 240, 150, 240, + 150, 240, 150, 240, 150, 240, 150, 240, 150, 240, 150, 240, + 150, 240, 150, 240, 150, 240, 150, 240, 150, 240, 150, 240, + 150, 240, 150, 0, 39, 32, 64, 28, 0, 7, 6, 198, + 70, 198, 70, 198, 70, 198, 70, 198, 70, 198, 70, 198, + 70, 198, 70, 198, 70, 198, 70, 198, 70, 198, 70, 198, + 70, 198, 70, 198, 70, 198, 70, 198, 70, 198, 70, 198, + 70, 198, 70, 198, 70, 198, 86, 166, 102, 166, 119, 104, + 127, 5, 159, 3, 206, 240, 25, 0, 36, 64, 71, 32, + 0, 8, 6, 240, 37, 71, 246, 86, 246, 86, 230, 103, + 214, 118, 213, 134, 198, 135, 182, 150, 181, 166, 166, 167, + 150, 182, 149, 198, 134, 214, 118, 214, 117, 231, 86, 246, + 86, 246, 70, 240, 23, 54, 240, 38, 53, 240, 54, 38, + 240, 55, 22, 240, 70, 21, 240, 92, 240, 107, 240, 106, + 240, 122, 240, 137, 240, 136, 0, 41, 96, 110, 45, 0, + 11, 37, 199, 197, 69, 199, 197, 70, 169, 180, 101, 169, + 165, 101, 169, 165, 102, 153, 165, 102, 133, 21, 133, 133, + 133, 21, 133, 133, 133, 21, 133, 134, 116, 37, 133, 134, + 101, 38, 101, 165, 101, 53, 101, 165, 100, 69, 101, 166, + 84, 69, 100, 182, 69, 85, 69, 197, 69, 85, 69, 198, + 52, 101, 69, 198, 52, 101, 68, 229, 37, 117, 37, 229, + 37, 117, 37, 229, 36, 133, 37, 230, 20, 134, 20, 240, + 26, 154, 240, 26, 154, 240, 25, 170, 240, 25, 169, 240, + 56, 184, 240, 55, 200, 240, 70, 214, 0, 57, 96, 68, + 31, 0, 7, 118, 198, 119, 167, 135, 150, 152, 119, 167, + 103, 199, 71, 231, 54, 240, 22, 39, 240, 30, 240, 60, + 240, 91, 240, 105, 240, 120, 240, 150, 240, 167, 240, 137, + 240, 107, 240, 76, 240, 70, 22, 240, 38, 39, 247, 55, + 230, 86, 214, 103, 183, 119, 151, 151, 134, 167, 119, 183, + 87, 215, 70, 231, 0, 39, 32, 68, 32, 0, 8, 6, + 240, 37, 71, 231, 87, 214, 104, 183, 119, 167, 151, 150, + 168, 119, 183, 103, 215, 86, 247, 54, 240, 23, 39, 240, + 39, 22, 240, 76, 240, 92, 240, 106, 240, 136, 240, 152, + 240, 166, 240, 182, 240, 182, 240, 182, 240, 182, 240, 182, + 240, 182, 240, 182, 240, 182, 240, 182, 240, 182, 240, 182, + 0, 41, 112, 66, 27, 0, 6, 127, 7, 95, 7, 95, + 7, 95, 7, 240, 71, 240, 71, 240, 87, 240, 71, 240, + 71, 240, 86, 240, 87, 240, 71, 240, 71, 240, 87, 240, + 71, 240, 71, 240, 86, 240, 87, 240, 71, 240, 86, 240, + 87, 240, 71, 240, 71, 240, 86, 240, 87, 240, 79, 8, + 79, 8, 79, 8, 79, 8, 0, 34, 32, 44, 14, 10, + 74, 74, 70, 134, 134, 134, 134, 134, 134, 134, 134, 134, + 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, + 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, + 134, 138, 74, 74, 64, 27, 19, 240, 240, 179, 99, 100, + 84, 99, 99, 100, 84, 100, 84, 86, 54, 70, 54, 70, + 54, 70, 54, 70, 54, 0, 69, 48, 44, 14, 10, 74, + 74, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, + 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, + 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, + 74, 74, 74, 64, 18, 18, 240, 240, 181, 199, 168, 164, + 20, 132, 52, 100, 84, 68, 115, 0, 72, 64, 10, 10, + 240, 86, 70, 70, 70, 70, 0, 43, 16, 10, 240, 131, + 100, 99, 100, 100, 86, 70, 70, 70, 70, 0, 36, 96, + 42, 23, 0, 35, 41, 190, 143, 1, 117, 86, 115, 134, + 97, 166, 240, 38, 240, 38, 173, 120, 38, 87, 86, 86, + 102, 70, 118, 70, 118, 70, 103, 86, 72, 91, 22, 105, + 38, 133, 70, 0, 29, 32, 65, 23, 0, 5, 102, 240, + 38, 240, 38, 240, 38, 240, 38, 240, 38, 240, 38, 240, + 38, 240, 38, 240, 38, 240, 38, 54, 134, 25, 127, 2, + 103, 71, 86, 102, 86, 118, 70, 118, 70, 118, 70, 118, + 70, 118, 70, 118, 70, 118, 70, 118, 70, 117, 86, 102, + 87, 71, 95, 2, 102, 25, 118, 38, 0, 29, 112, 32, + 21, 0, 32, 40, 189, 126, 102, 84, 86, 130, 85, 246, + 246, 246, 246, 246, 246, 246, 240, 21, 240, 22, 130, 102, + 84, 111, 141, 168, 0, 27, 16, 64, 23, 0, 7, 54, + 240, 38, 240, 38, 240, 38, 240, 38, 240, 38, 240, 38, + 240, 38, 240, 38, 240, 38, 150, 38, 121, 22, 111, 2, + 87, 71, 86, 102, 85, 118, 70, 118, 70, 118, 70, 118, + 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, 86, 102, + 87, 71, 111, 2, 121, 22, 149, 54, 0, 29, 32, 40, + 23, 0, 35, 40, 220, 174, 134, 70, 102, 101, 101, 133, + 70, 133, 70, 133, 79, 4, 79, 4, 70, 240, 38, 240, + 38, 240, 54, 177, 86, 147, 103, 85, 127, 1, 142, 200, + 0, 29, 96, 37, 19, 240, 240, 247, 155, 124, 118, 66, + 102, 214, 214, 214, 214, 214, 188, 124, 124, 150, 214, 214, + 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, + 214, 0, 25, 16, 56, 24, 0, 36, 103, 67, 127, 2, + 111, 3, 102, 53, 150, 85, 134, 85, 134, 85, 134, 85, + 134, 85, 150, 53, 174, 188, 178, 39, 211, 240, 110, 175, + 1, 159, 1, 143, 1, 111, 4, 85, 149, 69, 180, 69, + 180, 69, 180, 86, 117, 127, 2, 143, 186, 0, 7, 16, + 65, 23, 0, 5, 102, 240, 38, 240, 38, 240, 38, 240, + 38, 240, 38, 240, 38, 240, 38, 240, 38, 240, 38, 240, + 38, 70, 118, 42, 86, 27, 89, 55, 71, 102, 71, 102, + 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, + 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, + 70, 118, 0, 29, 32, 32, 10, 240, 86, 70, 70, 70, + 70, 70, 240, 240, 230, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 0, + 13, 43, 17, 240, 240, 182, 167, 167, 167, 167, 182, 0, + 9, 118, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 81, 70, 107, 91, 150, 240, 240, 192, 59, 22, 240, 240, + 229, 240, 37, 240, 37, 240, 37, 240, 37, 240, 37, 240, + 37, 240, 37, 240, 37, 240, 37, 240, 37, 117, 85, 87, + 85, 71, 101, 55, 117, 39, 133, 23, 156, 171, 187, 188, + 172, 166, 22, 149, 54, 133, 70, 117, 70, 117, 86, 101, + 102, 85, 118, 69, 133, 0, 28, 34, 10, 240, 86, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 0, 13, 64, 36, 0, 54, 6, 70, 118, + 118, 42, 58, 86, 27, 43, 89, 58, 55, 71, 103, 102, + 71, 103, 102, 70, 118, 118, 70, 118, 118, 70, 118, 118, + 70, 118, 118, 70, 118, 118, 70, 118, 118, 70, 118, 118, + 70, 118, 118, 70, 118, 118, 70, 118, 118, 70, 118, 118, + 70, 118, 118, 70, 118, 118, 0, 45, 64, 45, 23, 0, + 34, 70, 70, 118, 42, 86, 27, 89, 55, 71, 102, 71, + 102, 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, + 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, + 118, 70, 118, 0, 29, 32, 40, 25, 0, 38, 56, 237, + 191, 150, 86, 118, 118, 101, 149, 86, 150, 70, 150, 70, + 150, 70, 150, 70, 150, 70, 150, 70, 150, 85, 149, 102, + 118, 118, 86, 143, 2, 173, 233, 0, 32, 64, 60, 23, + 0, 34, 70, 54, 134, 25, 127, 2, 103, 71, 86, 102, + 86, 103, 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, + 70, 118, 70, 118, 70, 102, 86, 102, 87, 71, 95, 2, + 102, 25, 118, 38, 150, 240, 38, 240, 38, 240, 38, 240, + 38, 240, 38, 240, 38, 240, 38, 0, 7, 112, 61, 23, + 0, 35, 22, 38, 121, 22, 111, 2, 87, 71, 86, 102, + 86, 102, 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, + 70, 118, 70, 118, 86, 102, 86, 102, 87, 71, 111, 2, + 121, 22, 150, 38, 240, 38, 240, 38, 240, 38, 240, 38, + 240, 38, 240, 38, 240, 38, 240, 38, 0, 6, 32, 30, + 17, 0, 25, 70, 67, 70, 37, 70, 22, 70, 22, 73, + 136, 151, 166, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 0, 22, 80, 31, 18, 0, 27, 56, 155, 108, + 85, 68, 84, 114, 84, 229, 217, 171, 139, 138, 184, 213, + 66, 132, 67, 116, 68, 85, 77, 107, 152, 0, 23, 48, + 33, 19, 0, 14, 86, 214, 214, 214, 214, 214, 189, 95, + 93, 134, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, + 214, 215, 50, 139, 139, 151, 0, 24, 80, 45, 23, 0, + 34, 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, + 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, + 118, 70, 118, 70, 118, 70, 103, 71, 72, 91, 22, 105, + 38, 119, 69, 0, 29, 32, 39, 22, 0, 33, 4, 164, + 69, 133, 69, 133, 85, 116, 101, 101, 101, 101, 117, 84, + 133, 69, 133, 69, 149, 52, 165, 37, 165, 37, 166, 20, + 202, 202, 202, 216, 232, 246, 0, 28, 96, 65, 33, 0, + 49, 69, 131, 148, 69, 117, 117, 69, 117, 117, 85, 86, + 101, 101, 87, 85, 101, 87, 85, 102, 71, 84, 133, 51, + 20, 69, 133, 51, 21, 53, 133, 51, 21, 53, 149, 35, + 36, 37, 165, 19, 53, 21, 165, 19, 53, 21, 169, 53, + 21, 184, 73, 199, 89, 199, 89, 214, 103, 229, 119, 0, + 42, 48, 41, 23, 0, 34, 69, 133, 86, 102, 102, 85, + 134, 53, 166, 22, 187, 217, 247, 240, 22, 240, 53, 240, + 39, 249, 213, 21, 196, 37, 181, 53, 149, 85, 117, 102, + 86, 118, 69, 149, 0, 29, 32, 53, 22, 0, 33, 4, + 164, 69, 133, 85, 117, 85, 101, 102, 85, 117, 85, 118, + 53, 149, 53, 149, 52, 181, 21, 181, 21, 196, 20, 217, + 232, 231, 247, 240, 22, 240, 21, 240, 52, 240, 37, 240, + 36, 240, 37, 178, 54, 186, 201, 216, 230, 0, 7, 64, + 32, 21, 0, 31, 95, 1, 95, 1, 95, 1, 230, 230, + 246, 230, 230, 230, 245, 246, 230, 230, 230, 245, 246, 239, + 2, 79, 2, 79, 2, 0, 26, 96, 12, 27, 0, 60, + 111, 8, 79, 8, 79, 8, 0, 68, 15, 49, 0, 110, + 47, 15, 15, 79, 15, 15, 79, 15, 15, 0, 123, 21, + 18, 240, 240, 117, 38, 85, 38, 84, 53, 85, 52, 100, + 68, 100, 67, 115, 83, 0, 72, 112, 16, 19, 240, 240, + 165, 83, 88, 51, 94, 67, 56, 83, 85, 0, 81, 64,}; + +//***************************************************************************** +// +// The font definition for the 42 point Cmss bold font. +// +//***************************************************************************** +const tFont g_sFontCmss42b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 44, + + // + // The height of the font. + // + 41, + + // + // The baseline of the font. + // + 31, + + // + // The offset to each character in the font. + // + { + 0, 5, 38, 65, 182, 243, 349, 427, + 443, 487, 531, 573, 642, 658, 668, 679, + 764, 822, 861, 920, 974, 1035, 1089, 1145, + 1210, 1264, 1321, 1339, 1362, 1395, 1420, 1464, + 1509, 1586, 1655, 1720, 1782, 1847, 1912, 1976, + 2041, 2106, 2140, 2178, 2241, 2305, 2409, 2490, + 2553, 2617, 2690, 2755, 2810, 2874, 2938, 3009, + 3119, 3187, 3255, 3321, 3365, 3392, 3436, 3454, + 3464, 3480, 3522, 3587, 3619, 3683, 3723, 3760, + 3816, 3881, 3913, 3956, 4015, 4049, 4113, 4158, + 4198, 4258, 4319, 4349, 4380, 4413, 4458, 4497, + 4562, 4603, 4656, 4688, 4700, 4715, 4736, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss42bData +}; diff --git a/grlib/fonts/fontcmss42i.c b/grlib/fonts/fontcmss42i.c new file mode 100644 index 0000000..bb85c46 --- /dev/null +++ b/grlib/fonts/fontcmss42i.c @@ -0,0 +1,514 @@ +//***************************************************************************** +// +// fontcmss42i.c - Font definition for the 42pt Cmss italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 42 point +// Bold: no +// Italic: yes +// Memory usage: 5108 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 42 point Cmss italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss42iData[4908] = +{ + 5, 17, 0, 91, 48, 34, 13, 240, 240, 243, 163, 147, + 163, 163, 163, 163, 147, 163, 163, 163, 163, 147, 163, 163, + 163, 162, 178, 163, 163, 163, 162, 0, 7, 99, 147, 163, + 0, 19, 16, 25, 16, 0, 6, 35, 67, 84, 52, 84, + 52, 98, 82, 114, 82, 98, 82, 114, 82, 113, 97, 114, + 82, 0, 62, 112, 113, 34, 0, 15, 2, 114, 240, 129, + 129, 240, 130, 114, 240, 129, 129, 240, 130, 114, 240, 129, + 129, 240, 130, 114, 240, 129, 129, 240, 130, 114, 240, 129, + 130, 240, 114, 114, 240, 130, 114, 240, 114, 129, 240, 130, + 114, 223, 13, 241, 130, 240, 114, 129, 240, 130, 114, 240, + 129, 129, 240, 130, 114, 240, 129, 130, 240, 114, 129, 255, + 13, 210, 114, 240, 129, 130, 240, 114, 114, 240, 130, 114, + 240, 114, 129, 240, 130, 114, 240, 129, 129, 240, 130, 114, + 240, 129, 129, 240, 130, 114, 240, 129, 129, 240, 130, 114, + 240, 129, 129, 240, 130, 129, 0, 15, 64, 73, 24, 240, + 240, 114, 240, 114, 240, 86, 240, 26, 220, 165, 18, 36, + 163, 50, 65, 163, 51, 242, 67, 227, 66, 243, 66, 243, + 51, 244, 35, 245, 18, 240, 39, 240, 42, 240, 25, 240, + 39, 240, 34, 21, 243, 36, 243, 51, 243, 51, 242, 67, + 242, 67, 227, 51, 243, 51, 130, 82, 51, 148, 50, 20, + 173, 218, 240, 22, 240, 82, 240, 114, 0, 29, 99, 29, + 84, 241, 134, 210, 119, 194, 116, 35, 177, 131, 51, 162, + 115, 67, 146, 131, 67, 130, 147, 67, 129, 148, 67, 114, + 147, 83, 98, 163, 67, 98, 179, 67, 97, 195, 67, 82, + 195, 51, 82, 212, 19, 97, 247, 81, 240, 36, 98, 240, + 178, 240, 193, 101, 240, 18, 87, 226, 83, 36, 194, 83, + 67, 193, 84, 67, 178, 83, 83, 162, 99, 83, 146, 99, + 99, 145, 115, 84, 130, 115, 83, 130, 131, 83, 129, 147, + 67, 130, 148, 36, 114, 184, 114, 199, 129, 228, 0, 33, + 112, 79, 30, 0, 12, 116, 240, 151, 240, 121, 240, 84, + 51, 240, 83, 67, 240, 67, 83, 240, 67, 83, 240, 66, + 84, 240, 51, 83, 240, 67, 67, 240, 83, 51, 240, 99, + 20, 240, 119, 240, 133, 179, 180, 195, 165, 179, 166, 163, + 148, 20, 147, 132, 36, 131, 131, 84, 99, 147, 84, 83, + 147, 116, 51, 163, 117, 19, 179, 135, 195, 149, 212, 104, + 220, 27, 122, 57, 150, 135, 0, 42, 15, 9, 240, 227, + 84, 84, 98, 114, 98, 114, 113, 114, 0, 35, 96, 52, + 18, 240, 242, 242, 242, 243, 227, 227, 242, 243, 227, 243, + 227, 243, 243, 227, 243, 227, 243, 243, 243, 227, 243, 243, + 243, 243, 227, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 240, 18, 240, 19, 243, 240, 18, 240, 19, 240, 18, + 240, 19, 192, 77, 19, 240, 211, 240, 34, 240, 35, 240, + 34, 240, 35, 240, 19, 240, 34, 240, 35, 240, 19, 240, + 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, + 19, 240, 19, 240, 19, 244, 243, 240, 19, 240, 19, 240, + 19, 244, 243, 240, 19, 240, 19, 243, 240, 19, 240, 19, + 243, 240, 19, 243, 240, 19, 243, 240, 18, 240, 19, 243, + 243, 240, 18, 240, 18, 243, 240, 16, 39, 20, 240, 226, + 240, 35, 240, 35, 240, 34, 195, 50, 51, 100, 34, 36, + 109, 153, 198, 230, 201, 151, 21, 100, 34, 36, 99, 50, + 66, 194, 240, 35, 240, 35, 240, 34, 0, 61, 80, 61, + 30, 0, 31, 113, 240, 225, 240, 225, 240, 210, 240, 210, + 240, 209, 240, 225, 240, 225, 240, 210, 240, 210, 240, 209, + 240, 225, 240, 225, 240, 31, 11, 240, 17, 240, 225, 240, + 225, 240, 210, 240, 210, 240, 209, 240, 225, 240, 225, 240, + 210, 240, 210, 240, 209, 240, 225, 240, 225, 0, 32, 48, + 15, 9, 0, 32, 115, 84, 83, 114, 99, 98, 113, 114, + 0, 7, 80, 10, 15, 0, 39, 59, 75, 75, 0, 36, + 16, 10, 8, 0, 29, 19, 68, 67, 0, 11, 80, 88, + 27, 0, 6, 17, 240, 162, 240, 161, 240, 162, 240, 146, + 240, 162, 240, 146, 240, 161, 240, 162, 240, 161, 240, 162, + 240, 161, 240, 162, 240, 161, 240, 162, 240, 146, 240, 162, + 240, 146, 240, 161, 240, 162, 240, 161, 240, 162, 240, 161, + 240, 162, 240, 161, 240, 162, 240, 146, 240, 162, 240, 146, + 240, 161, 240, 162, 240, 161, 240, 162, 240, 161, 240, 162, + 240, 161, 240, 162, 240, 146, 240, 161, 240, 162, 240, 161, + 0, 6, 80, 55, 21, 0, 14, 37, 232, 202, 164, 52, + 147, 100, 131, 115, 115, 131, 115, 131, 99, 147, 99, 147, + 99, 147, 83, 163, 83, 147, 99, 147, 99, 147, 83, 163, + 83, 148, 83, 147, 99, 147, 99, 132, 99, 131, 115, 116, + 116, 84, 148, 52, 170, 200, 229, 0, 30, 64, 35, 18, + 0, 12, 83, 153, 152, 163, 35, 243, 228, 228, 227, 243, + 243, 228, 227, 243, 243, 243, 228, 227, 243, 243, 243, 228, + 227, 243, 243, 243, 157, 93, 0, 25, 48, 58, 23, 0, + 15, 85, 240, 25, 219, 179, 84, 163, 116, 131, 147, 130, + 163, 130, 163, 240, 83, 240, 83, 240, 67, 240, 83, 240, + 67, 240, 67, 240, 67, 240, 67, 240, 66, 240, 82, 240, + 67, 240, 67, 240, 66, 240, 82, 240, 82, 240, 67, 240, + 79, 1, 127, 143, 0, 32, 80, 55, 23, 0, 15, 101, + 249, 219, 180, 84, 147, 131, 146, 147, 240, 83, 240, 67, + 240, 83, 240, 67, 240, 52, 247, 240, 21, 240, 40, 240, + 84, 240, 84, 240, 83, 240, 83, 240, 83, 240, 83, 240, + 67, 129, 179, 115, 147, 148, 85, 172, 201, 240, 21, 0, + 33, 32, 60, 22, 0, 15, 68, 240, 37, 240, 21, 240, + 37, 240, 18, 19, 242, 35, 227, 20, 211, 35, 226, 51, + 211, 51, 195, 52, 179, 67, 179, 83, 179, 83, 163, 99, + 147, 100, 131, 115, 159, 2, 79, 3, 79, 3, 228, 240, + 51, 240, 67, 240, 67, 240, 52, 240, 51, 240, 67, 0, + 31, 64, 54, 23, 0, 15, 44, 173, 173, 163, 240, 83, + 240, 83, 240, 67, 240, 83, 240, 83, 240, 83, 21, 211, + 23, 204, 181, 67, 179, 115, 163, 115, 240, 83, 240, 83, + 240, 83, 240, 83, 240, 67, 240, 83, 129, 163, 131, 132, + 148, 84, 172, 202, 245, 0, 33, 48, 54, 22, 0, 15, + 22, 233, 186, 181, 240, 20, 240, 36, 240, 51, 240, 51, + 240, 52, 53, 163, 40, 132, 25, 134, 69, 117, 100, 116, + 131, 100, 147, 100, 147, 99, 163, 99, 163, 99, 147, 115, + 147, 115, 147, 115, 131, 132, 99, 164, 68, 171, 200, 245, + 0, 32, 61, 22, 0, 13, 127, 2, 95, 2, 95, 2, + 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, + 240, 67, 240, 51, 240, 51, 240, 52, 240, 51, 240, 51, + 240, 67, 240, 51, 240, 67, 240, 51, 240, 67, 240, 51, + 240, 67, 240, 52, 240, 51, 240, 67, 240, 52, 240, 52, + 0, 32, 64, 52, 22, 0, 14, 118, 233, 203, 164, 84, + 132, 115, 131, 131, 115, 147, 115, 147, 115, 147, 115, 131, + 148, 68, 185, 245, 249, 180, 68, 147, 116, 115, 147, 115, + 147, 99, 163, 99, 163, 99, 147, 115, 147, 116, 115, 148, + 69, 156, 185, 245, 0, 31, 112, 56, 22, 0, 15, 5, + 248, 218, 164, 83, 163, 115, 131, 131, 115, 147, 115, 147, + 115, 147, 99, 163, 99, 163, 99, 148, 99, 148, 99, 132, + 116, 101, 117, 66, 19, 137, 20, 136, 35, 165, 52, 240, + 51, 240, 52, 240, 36, 240, 36, 162, 69, 171, 200, 245, + 0, 32, 16, 15, 11, 0, 19, 99, 116, 115, 0, 17, + 35, 116, 115, 0, 16, 16, 20, 12, 0, 21, 83, 132, + 131, 0, 18, 115, 132, 131, 162, 147, 146, 161, 162, 0, + 10, 32, 34, 13, 0, 18, 83, 148, 147, 0, 7, 98, + 163, 163, 163, 162, 178, 163, 163, 163, 162, 163, 163, 163, + 163, 163, 147, 163, 163, 163, 163, 147, 163, 0, 6, 16, + 13, 31, 0, 66, 31, 10, 0, 27, 95, 10, 0, 66, + 80, 36, 17, 0, 24, 68, 212, 211, 0, 10, 19, 227, + 227, 226, 227, 227, 211, 227, 211, 211, 211, 212, 196, 211, + 211, 227, 227, 227, 145, 68, 84, 92, 90, 150, 0, 7, + 48, 36, 18, 0, 7, 54, 170, 108, 99, 100, 81, 147, + 243, 243, 243, 227, 228, 212, 212, 212, 212, 227, 227, 242, + 243, 242, 243, 243, 243, 0, 10, 99, 228, 227, 0, 26, + 80, 75, 26, 0, 11, 54, 240, 42, 252, 198, 69, 164, + 147, 148, 84, 19, 132, 74, 116, 75, 115, 68, 53, 99, + 68, 84, 99, 67, 100, 83, 67, 131, 83, 67, 131, 83, + 67, 131, 67, 67, 132, 67, 67, 131, 83, 67, 131, 83, + 67, 116, 83, 67, 115, 99, 68, 84, 99, 84, 52, 116, + 74, 147, 88, 164, 85, 212, 240, 118, 116, 174, 235, 240, + 38, 0, 37, 48, 75, 28, 0, 12, 68, 240, 133, 240, + 133, 240, 118, 240, 114, 19, 240, 99, 19, 240, 98, 36, + 240, 67, 36, 240, 51, 67, 240, 51, 67, 240, 35, 83, + 240, 35, 83, 240, 19, 99, 240, 19, 100, 227, 116, 226, + 132, 211, 132, 195, 148, 207, 1, 191, 2, 191, 2, 164, + 180, 147, 196, 131, 212, 131, 212, 115, 243, 100, 243, 99, + 240, 19, 84, 240, 20, 0, 39, 59, 27, 0, 10, 124, + 239, 195, 134, 163, 164, 163, 180, 147, 195, 132, 195, 131, + 196, 131, 195, 147, 179, 148, 164, 147, 133, 191, 205, 239, + 180, 133, 164, 164, 147, 196, 131, 211, 131, 211, 116, 211, + 116, 211, 115, 211, 131, 211, 131, 195, 132, 179, 148, 133, + 175, 1, 189, 0, 38, 112, 61, 26, 0, 11, 40, 240, + 28, 206, 181, 115, 164, 240, 100, 240, 100, 240, 100, 240, + 115, 240, 115, 240, 131, 240, 115, 240, 131, 240, 131, 240, + 115, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, + 131, 240, 132, 240, 131, 240, 132, 240, 132, 162, 165, 116, + 190, 220, 240, 23, 0, 37, 48, 64, 29, 0, 11, 93, + 240, 31, 227, 133, 196, 164, 179, 196, 163, 211, 163, 211, + 148, 227, 132, 227, 131, 243, 131, 243, 131, 243, 116, 243, + 116, 243, 115, 240, 19, 115, 243, 131, 243, 116, 243, 116, + 242, 131, 243, 131, 242, 147, 227, 132, 211, 148, 195, 163, + 195, 179, 179, 180, 148, 207, 1, 221, 0, 41, 112, 65, + 27, 0, 10, 127, 2, 159, 3, 159, 2, 163, 240, 147, + 240, 147, 240, 132, 240, 132, 240, 131, 240, 147, 240, 132, + 240, 132, 240, 143, 1, 191, 1, 191, 1, 164, 240, 132, + 240, 131, 240, 147, 240, 147, 240, 132, 240, 132, 240, 131, + 240, 147, 240, 147, 240, 132, 240, 143, 3, 159, 3, 159, + 3, 0, 38, 32, 62, 26, 0, 10, 79, 1, 159, 2, + 159, 2, 147, 240, 131, 240, 131, 240, 116, 240, 116, 240, + 115, 240, 131, 240, 116, 240, 116, 240, 115, 240, 143, 191, + 175, 1, 164, 240, 116, 240, 115, 240, 131, 240, 116, 240, + 116, 240, 115, 240, 131, 240, 131, 240, 116, 240, 116, 240, + 115, 240, 131, 0, 38, 80, 61, 27, 0, 11, 88, 240, + 44, 223, 181, 100, 180, 162, 164, 240, 116, 240, 116, 240, + 131, 240, 131, 240, 147, 240, 131, 240, 147, 240, 147, 240, + 131, 240, 147, 240, 147, 152, 115, 152, 115, 137, 115, 211, + 131, 211, 147, 195, 147, 195, 148, 164, 164, 147, 181, 116, + 207, 220, 240, 39, 0, 38, 112, 65, 30, 0, 12, 3, + 212, 148, 211, 164, 211, 163, 212, 163, 212, 163, 212, 148, + 211, 164, 211, 163, 212, 163, 212, 163, 212, 148, 211, 175, + 5, 175, 5, 175, 5, 148, 211, 164, 211, 163, 227, 163, + 212, 163, 212, 148, 211, 164, 211, 163, 227, 163, 212, 163, + 212, 148, 211, 164, 211, 163, 212, 163, 212, 0, 42, 64, + 36, 14, 0, 6, 4, 164, 163, 179, 164, 164, 164, 163, + 179, 164, 164, 163, 179, 164, 164, 164, 163, 179, 164, 164, + 163, 179, 164, 164, 164, 163, 179, 164, 164, 0, 20, 64, + 61, 23, 0, 10, 83, 240, 68, 240, 68, 240, 67, 240, + 83, 240, 83, 240, 68, 240, 67, 240, 83, 240, 83, 240, + 68, 240, 68, 240, 67, 240, 83, 240, 83, 240, 68, 240, + 68, 240, 67, 240, 83, 240, 68, 240, 68, 240, 67, 240, + 83, 240, 68, 161, 132, 147, 85, 172, 202, 246, 0, 33, + 48, 76, 30, 0, 12, 3, 212, 148, 196, 164, 180, 179, + 180, 195, 164, 211, 148, 212, 132, 228, 100, 240, 19, 100, + 240, 35, 84, 240, 51, 68, 240, 52, 52, 240, 67, 53, + 240, 67, 39, 240, 51, 24, 240, 40, 36, 240, 23, 52, + 240, 21, 99, 240, 20, 116, 243, 132, 228, 148, 212, 148, + 211, 180, 195, 180, 195, 180, 180, 196, 164, 196, 163, 228, + 147, 228, 0, 42, 48, 64, 20, 0, 8, 35, 240, 20, + 240, 20, 240, 19, 240, 35, 240, 35, 240, 20, 240, 20, + 240, 19, 240, 35, 240, 35, 240, 20, 240, 20, 240, 19, + 240, 35, 240, 20, 240, 20, 240, 19, 240, 35, 240, 35, + 240, 20, 240, 20, 240, 19, 240, 35, 240, 35, 240, 20, + 240, 31, 1, 79, 1, 79, 0, 28, 16, 106, 36, 0, + 14, 37, 240, 21, 150, 246, 150, 246, 150, 230, 166, 230, + 166, 211, 19, 148, 19, 199, 147, 35, 179, 20, 147, 35, + 178, 35, 163, 35, 163, 35, 163, 35, 147, 51, 148, 35, + 147, 36, 147, 51, 131, 51, 163, 51, 131, 51, 163, 52, + 99, 67, 163, 67, 99, 67, 148, 67, 83, 68, 147, 83, + 83, 67, 163, 83, 67, 83, 163, 83, 66, 99, 148, 83, + 51, 99, 148, 83, 35, 100, 147, 115, 19, 99, 163, 118, + 115, 163, 118, 115, 148, 117, 116, 147, 132, 132, 147, 132, + 131, 163, 240, 83, 0, 50, 96, 85, 30, 0, 12, 5, + 180, 150, 179, 166, 179, 167, 163, 163, 19, 163, 163, 19, + 148, 148, 19, 147, 163, 36, 131, 163, 51, 131, 163, 51, + 131, 163, 51, 116, 147, 68, 99, 163, 68, 99, 163, 83, + 99, 163, 83, 84, 148, 84, 67, 163, 100, 67, 163, 115, + 67, 163, 115, 67, 163, 116, 36, 148, 116, 35, 163, 147, + 35, 163, 147, 35, 163, 148, 19, 163, 152, 148, 166, 163, + 182, 163, 182, 163, 182, 0, 42, 64, 74, 28, 0, 12, + 6, 240, 90, 240, 29, 229, 85, 196, 148, 163, 180, 147, + 211, 132, 227, 115, 243, 99, 240, 19, 99, 240, 19, 83, + 240, 35, 83, 240, 35, 83, 240, 35, 67, 240, 51, 67, + 240, 35, 83, 240, 35, 83, 240, 35, 83, 240, 19, 99, + 240, 19, 99, 243, 116, 212, 131, 196, 148, 164, 180, 132, + 197, 85, 237, 240, 26, 240, 86, 0, 40, 64, 59, 27, + 0, 10, 125, 239, 195, 133, 164, 163, 163, 180, 147, 195, + 147, 195, 132, 195, 132, 195, 131, 195, 147, 195, 147, 179, + 148, 164, 147, 149, 175, 1, 190, 220, 228, 240, 132, 240, + 131, 240, 147, 240, 147, 240, 132, 240, 132, 240, 131, 240, + 147, 240, 132, 240, 132, 240, 132, 0, 40, 89, 28, 0, + 12, 6, 240, 90, 240, 29, 229, 85, 196, 148, 164, 164, + 148, 195, 132, 212, 115, 243, 99, 240, 19, 99, 240, 19, + 83, 240, 35, 83, 240, 35, 83, 240, 35, 67, 240, 51, + 67, 240, 35, 83, 240, 35, 83, 240, 35, 83, 240, 19, + 99, 240, 19, 99, 100, 83, 116, 84, 68, 131, 100, 51, + 148, 84, 20, 180, 87, 197, 70, 237, 240, 28, 240, 54, + 19, 240, 164, 240, 148, 240, 164, 240, 148, 240, 164, 0, + 22, 16, 60, 27, 0, 10, 124, 239, 195, 149, 163, 179, + 163, 195, 147, 195, 132, 195, 131, 211, 131, 211, 131, 195, + 147, 180, 132, 164, 147, 149, 175, 1, 190, 205, 228, 99, + 227, 116, 211, 131, 211, 131, 196, 132, 180, 147, 179, 164, + 163, 164, 163, 179, 148, 180, 132, 180, 131, 211, 131, 212, + 0, 38, 58, 24, 0, 10, 55, 251, 204, 165, 99, 163, + 161, 147, 240, 98, 240, 99, 240, 99, 240, 99, 240, 100, + 240, 85, 240, 87, 240, 57, 240, 25, 240, 55, 240, 85, + 240, 84, 240, 99, 240, 99, 240, 99, 240, 99, 240, 83, + 129, 195, 115, 163, 133, 100, 158, 203, 247, 0, 34, 80, + 63, 28, 0, 10, 79, 9, 79, 9, 79, 9, 227, 240, + 163, 240, 148, 240, 148, 240, 147, 240, 163, 240, 163, 240, + 148, 240, 148, 240, 147, 240, 163, 240, 163, 240, 148, 240, + 148, 240, 147, 240, 163, 240, 148, 240, 148, 240, 147, 240, + 163, 240, 163, 240, 148, 240, 148, 240, 147, 240, 163, 240, + 163, 0, 41, 65, 27, 0, 10, 83, 211, 131, 211, 116, + 196, 116, 195, 131, 211, 131, 211, 131, 211, 116, 195, 132, + 195, 131, 211, 131, 211, 131, 211, 116, 195, 131, 211, 131, + 211, 131, 211, 131, 196, 131, 195, 131, 211, 131, 211, 131, + 211, 131, 195, 147, 195, 147, 179, 179, 147, 195, 131, 228, + 68, 240, 26, 240, 69, 0, 39, 32, 73, 28, 0, 10, + 67, 240, 51, 67, 240, 35, 84, 240, 19, 84, 243, 100, + 228, 100, 227, 131, 211, 147, 211, 148, 179, 164, 179, 164, + 163, 180, 148, 195, 147, 211, 131, 227, 131, 228, 99, 244, + 99, 244, 83, 240, 20, 83, 240, 35, 67, 240, 51, 67, + 240, 51, 51, 240, 67, 35, 240, 84, 19, 240, 87, 240, + 103, 240, 117, 240, 133, 240, 132, 0, 41, 114, 39, 0, + 14, 83, 196, 211, 67, 196, 195, 83, 181, 195, 83, 181, + 179, 99, 181, 179, 99, 166, 163, 116, 146, 20, 147, 116, + 131, 20, 131, 132, 130, 36, 131, 132, 115, 51, 115, 148, + 115, 51, 115, 148, 99, 67, 99, 164, 99, 67, 99, 164, + 83, 83, 83, 180, 83, 83, 83, 195, 67, 99, 83, 195, + 67, 99, 67, 211, 51, 115, 67, 211, 51, 115, 51, 227, + 50, 131, 51, 227, 35, 131, 35, 243, 34, 147, 35, 243, + 19, 147, 19, 240, 19, 18, 163, 19, 240, 22, 163, 18, + 240, 37, 182, 240, 37, 181, 240, 53, 181, 240, 52, 196, + 0, 55, 112, 77, 32, 0, 12, 100, 228, 180, 211, 196, + 195, 228, 163, 244, 148, 240, 20, 116, 240, 36, 100, 240, + 68, 68, 240, 84, 52, 240, 116, 35, 240, 132, 19, 240, + 166, 240, 182, 240, 196, 240, 197, 240, 182, 240, 183, 240, + 147, 35, 240, 131, 52, 240, 99, 83, 240, 84, 84, 240, + 52, 115, 240, 36, 132, 244, 163, 243, 180, 211, 196, 195, + 228, 164, 228, 148, 240, 20, 0, 45, 71, 29, 0, 10, + 116, 240, 51, 84, 240, 19, 100, 244, 116, 212, 132, 196, + 164, 164, 180, 163, 196, 147, 228, 115, 244, 100, 240, 20, + 68, 240, 36, 52, 240, 52, 51, 240, 84, 19, 240, 103, + 240, 134, 240, 133, 240, 163, 240, 164, 240, 164, 240, 163, + 240, 179, 240, 179, 240, 164, 240, 163, 240, 179, 240, 179, + 240, 164, 240, 164, 0, 42, 48, 65, 29, 0, 11, 111, + 3, 175, 4, 175, 4, 240, 148, 240, 148, 240, 163, 240, + 163, 240, 163, 240, 164, 240, 148, 240, 148, 240, 163, 240, + 163, 240, 163, 240, 164, 240, 148, 240, 148, 240, 163, 240, + 163, 240, 163, 240, 164, 240, 148, 240, 148, 240, 163, 240, + 163, 240, 163, 240, 175, 4, 159, 5, 159, 5, 0, 41, + 75, 19, 135, 199, 198, 211, 244, 243, 240, 19, 240, 19, + 240, 19, 243, 240, 19, 240, 19, 240, 19, 240, 19, 243, + 240, 19, 240, 19, 240, 19, 240, 19, 243, 240, 19, 240, + 19, 240, 19, 243, 240, 19, 240, 19, 240, 19, 240, 19, + 243, 240, 19, 240, 19, 240, 19, 240, 19, 243, 240, 19, + 240, 19, 240, 19, 240, 18, 240, 19, 240, 23, 198, 214, + 240, 240, 32, 25, 17, 0, 6, 98, 98, 113, 113, 114, + 98, 114, 98, 98, 98, 114, 98, 100, 68, 84, 68, 83, + 83, 0, 66, 80, 76, 19, 135, 199, 198, 240, 19, 240, + 19, 240, 19, 240, 19, 243, 240, 19, 240, 19, 240, 19, + 240, 19, 243, 240, 19, 240, 19, 240, 19, 240, 18, 240, + 19, 240, 19, 240, 19, 240, 19, 243, 240, 19, 240, 19, + 240, 19, 240, 19, 243, 240, 19, 240, 19, 240, 19, 240, + 19, 243, 240, 19, 240, 19, 240, 19, 244, 243, 240, 19, + 240, 19, 199, 199, 198, 240, 240, 32, 19, 17, 0, 7, + 19, 213, 179, 19, 147, 35, 131, 67, 99, 98, 83, 115, + 0, 70, 80, 11, 8, 240, 240, 179, 68, 68, 67, 0, + 34, 80, 15, 9, 240, 242, 113, 114, 114, 98, 114, 100, + 84, 83, 0, 35, 80, 37, 19, 0, 34, 7, 170, 146, + 84, 240, 19, 240, 19, 240, 19, 240, 19, 183, 154, 124, + 101, 83, 99, 115, 83, 131, 83, 115, 100, 84, 109, 120, + 19, 133, 51, 0, 26, 112, 63, 21, 0, 8, 83, 240, + 35, 240, 51, 240, 51, 240, 51, 240, 36, 240, 35, 240, + 51, 240, 51, 240, 51, 240, 36, 240, 35, 69, 147, 40, + 141, 133, 69, 100, 116, 99, 147, 99, 147, 99, 147, 99, + 147, 83, 163, 83, 147, 99, 147, 99, 131, 100, 116, 101, + 69, 125, 131, 24, 147, 37, 0, 30, 32, 37, 20, 0, + 36, 6, 202, 140, 117, 83, 100, 240, 19, 240, 19, 240, + 35, 240, 19, 240, 35, 240, 35, 240, 35, 240, 35, 240, + 36, 145, 116, 98, 140, 154, 198, 0, 28, 96, 62, 24, + 0, 11, 19, 240, 83, 240, 99, 240, 99, 240, 99, 240, + 99, 240, 83, 240, 99, 240, 99, 240, 99, 240, 99, 213, + 35, 200, 19, 189, 165, 69, 148, 115, 163, 131, 147, 147, + 147, 147, 131, 163, 131, 147, 147, 147, 147, 147, 147, 147, + 148, 116, 149, 69, 189, 199, 35, 212, 67, 0, 34, 32, + 35, 20, 0, 36, 5, 217, 155, 132, 84, 99, 131, 98, + 147, 95, 95, 79, 1, 67, 240, 35, 240, 35, 240, 35, + 240, 36, 145, 116, 99, 125, 139, 182, 0, 28, 96, 58, + 20, 0, 8, 102, 215, 185, 164, 240, 19, 240, 19, 240, + 35, 240, 35, 240, 20, 240, 19, 240, 35, 219, 155, 195, + 240, 35, 240, 35, 240, 35, 240, 20, 240, 19, 240, 35, + 240, 35, 240, 35, 240, 19, 240, 35, 240, 35, 240, 35, + 240, 35, 240, 19, 240, 35, 0, 29, 80, 54, 26, 0, + 46, 101, 52, 206, 179, 68, 227, 99, 227, 99, 211, 115, + 211, 115, 211, 99, 227, 99, 228, 67, 250, 250, 240, 18, + 37, 240, 19, 240, 131, 240, 140, 253, 191, 1, 148, 148, + 147, 179, 131, 195, 131, 195, 132, 163, 164, 116, 205, 248, + 0, 11, 64, 65, 20, 0, 8, 35, 240, 19, 240, 35, + 240, 35, 240, 35, 240, 35, 240, 19, 240, 35, 240, 35, + 240, 35, 240, 35, 240, 19, 68, 147, 39, 131, 25, 117, + 68, 101, 99, 100, 115, 100, 115, 99, 131, 99, 115, 100, + 115, 99, 131, 99, 131, 99, 131, 99, 115, 100, 115, 99, + 131, 99, 131, 99, 116, 0, 28, 32, 31, 13, 0, 8, + 100, 148, 148, 147, 0, 9, 35, 148, 147, 163, 163, 163, + 147, 163, 163, 163, 163, 147, 163, 163, 163, 163, 147, 163, + 0, 19, 16, 64, 21, 0, 14, 100, 240, 36, 240, 36, + 240, 35, 0, 15, 35, 240, 51, 240, 35, 240, 51, 240, + 51, 240, 51, 240, 36, 240, 35, 240, 51, 240, 51, 240, + 51, 240, 35, 240, 51, 240, 51, 240, 51, 240, 36, 240, + 35, 240, 51, 240, 51, 240, 51, 240, 36, 240, 35, 193, + 68, 185, 200, 245, 0, 9, 80, 64, 22, 0, 9, 3, + 240, 67, 240, 67, 240, 51, 240, 67, 240, 67, 240, 67, + 240, 67, 240, 51, 240, 67, 240, 67, 240, 67, 116, 131, + 84, 147, 84, 163, 68, 179, 52, 195, 36, 196, 20, 211, + 20, 233, 213, 19, 212, 36, 180, 67, 179, 84, 163, 99, + 163, 100, 147, 115, 131, 132, 115, 132, 0, 31, 16, 36, + 13, 240, 240, 243, 163, 147, 163, 163, 163, 163, 147, 163, + 163, 163, 163, 147, 163, 163, 163, 163, 147, 163, 163, 163, + 163, 147, 163, 163, 163, 163, 147, 163, 0, 19, 16, 61, + 31, 0, 54, 99, 53, 85, 147, 40, 55, 131, 25, 41, + 117, 71, 68, 116, 101, 99, 115, 116, 115, 100, 116, 115, + 99, 131, 131, 99, 131, 115, 115, 131, 115, 100, 115, 131, + 99, 131, 131, 99, 131, 131, 99, 131, 115, 115, 116, 115, + 100, 115, 131, 99, 131, 131, 99, 131, 116, 0, 43, 48, + 43, 20, 0, 35, 51, 68, 147, 39, 131, 25, 117, 68, + 116, 99, 100, 115, 100, 115, 99, 131, 99, 115, 100, 115, + 99, 131, 99, 131, 99, 131, 99, 115, 100, 115, 99, 131, + 99, 131, 99, 116, 0, 28, 32, 37, 21, 0, 37, 101, + 233, 172, 132, 84, 116, 116, 99, 147, 83, 163, 83, 163, + 67, 179, 67, 179, 67, 163, 83, 163, 83, 147, 100, 116, + 116, 84, 140, 169, 229, 0, 30, 48, 56, 23, 0, 40, + 115, 69, 179, 40, 173, 165, 69, 132, 116, 131, 147, 131, + 147, 131, 147, 131, 147, 116, 147, 115, 147, 131, 147, 131, + 131, 147, 116, 133, 69, 157, 163, 24, 179, 52, 211, 240, + 67, 240, 83, 240, 83, 240, 83, 240, 68, 240, 67, 240, + 83, 0, 11, 16, 56, 21, 0, 37, 84, 51, 152, 19, + 141, 117, 69, 100, 116, 99, 131, 99, 147, 99, 147, 83, + 163, 83, 147, 99, 147, 99, 147, 99, 147, 100, 116, 116, + 69, 141, 151, 35, 164, 52, 240, 36, 240, 35, 240, 51, + 240, 51, 240, 36, 240, 35, 240, 51, 240, 51, 0, 9, + 28, 17, 0, 30, 35, 51, 130, 37, 115, 22, 118, 181, + 196, 211, 212, 211, 227, 227, 211, 227, 227, 227, 227, 211, + 227, 0, 25, 16, 33, 19, 0, 34, 7, 171, 123, 131, + 98, 115, 240, 19, 240, 19, 240, 22, 232, 200, 245, 240, + 19, 240, 19, 97, 147, 99, 99, 124, 122, 183, 0, 27, + 48, 31, 16, 0, 18, 83, 211, 195, 211, 211, 171, 76, + 115, 211, 211, 211, 195, 211, 211, 211, 210, 211, 211, 211, + 211, 65, 136, 136, 148, 0, 23, 32, 43, 20, 0, 35, + 51, 115, 114, 131, 99, 131, 99, 131, 99, 116, 99, 115, + 114, 131, 99, 131, 99, 131, 99, 115, 115, 115, 114, 131, + 99, 131, 99, 116, 99, 100, 115, 85, 121, 19, 134, 51, + 0, 28, 48, 42, 21, 0, 36, 100, 163, 68, 147, 99, + 132, 99, 131, 115, 115, 131, 115, 132, 83, 148, 83, 163, + 67, 179, 52, 179, 51, 195, 35, 211, 35, 211, 19, 227, + 19, 245, 240, 21, 240, 20, 0, 30, 80, 69, 29, 0, + 50, 100, 115, 131, 68, 115, 131, 68, 101, 99, 99, 101, + 99, 99, 82, 19, 83, 115, 82, 19, 83, 115, 67, 19, + 67, 131, 66, 35, 67, 131, 51, 35, 51, 147, 50, 51, + 51, 147, 35, 51, 35, 163, 34, 67, 35, 163, 19, 67, + 19, 179, 18, 83, 19, 194, 18, 98, 18, 212, 117, 212, + 116, 227, 132, 0, 41, 48, 44, 24, 0, 42, 68, 147, + 147, 131, 164, 99, 196, 67, 227, 51, 244, 19, 240, 38, + 240, 68, 240, 83, 240, 85, 240, 54, 240, 35, 35, 244, + 35, 228, 67, 211, 84, 179, 115, 163, 132, 116, 163, 0, + 33, 112, 62, 25, 0, 44, 36, 148, 147, 147, 163, 131, + 179, 131, 180, 99, 196, 99, 211, 83, 227, 68, 227, 67, + 243, 51, 240, 20, 35, 240, 35, 19, 240, 51, 19, 240, + 54, 240, 69, 240, 85, 240, 99, 240, 115, 240, 99, 240, + 115, 240, 99, 240, 99, 240, 100, 240, 39, 240, 54, 240, + 69, 0, 11, 112, 38, 22, 0, 39, 14, 142, 141, 240, + 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, + 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, + 62, 127, 127, 0, 31, 16, 13, 24, 0, 57, 15, 5, + 79, 5, 79, 5, 0, 63, 64, 16, 43, 0, 102, 31, + 15, 9, 79, 15, 9, 79, 15, 9, 0, 113, 48, 21, + 18, 0, 7, 35, 52, 115, 67, 131, 51, 131, 67, 115, + 67, 131, 66, 131, 67, 0, 75, 32, 16, 18, 0, 11, + 83, 83, 102, 50, 108, 98, 54, 99, 83, 0, 75, 16,}; + +//***************************************************************************** +// +// The font definition for the 42 point Cmss italic font. +// +//***************************************************************************** +const tFont g_sFontCmss42i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 38, + + // + // The height of the font. + // + 43, + + // + // The baseline of the font. + // + 32, + + // + // The offset to each character in the font. + // + { + 0, 5, 39, 64, 177, 250, 349, 428, + 443, 495, 572, 611, 672, 687, 697, 707, + 795, 850, 885, 943, 998, 1058, 1112, 1166, + 1227, 1279, 1335, 1350, 1370, 1404, 1417, 1453, + 1489, 1564, 1639, 1698, 1759, 1823, 1888, 1950, + 2011, 2076, 2112, 2173, 2249, 2313, 2419, 2504, + 2578, 2637, 2726, 2786, 2844, 2907, 2972, 3045, + 3159, 3236, 3307, 3372, 3447, 3472, 3548, 3567, + 3578, 3593, 3630, 3693, 3730, 3792, 3827, 3885, + 3939, 4004, 4035, 4099, 4163, 4199, 4260, 4303, + 4340, 4396, 4452, 4480, 4513, 4544, 4587, 4629, + 4698, 4742, 4804, 4842, 4855, 4871, 4892, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss42iData +}; diff --git a/grlib/fonts/fontcmss44.c b/grlib/fonts/fontcmss44.c new file mode 100644 index 0000000..da931cc --- /dev/null +++ b/grlib/fonts/fontcmss44.c @@ -0,0 +1,524 @@ +//***************************************************************************** +// +// fontcmss44.c - Font definition for the 44pt Cmss font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 44 point +// Bold: no +// Italic: no +// Memory usage: 5216 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 44 point Cmss font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss44Data[5013] = +{ + 4, 18, 0, 99, 34, 7, 227, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 240, 163, 67, 67, 67, 0, + 10, 16, 24, 15, 240, 243, 83, 67, 83, 67, 83, 67, + 83, 82, 98, 82, 98, 66, 98, 82, 98, 82, 98, 0, + 62, 64, 120, 34, 0, 10, 34, 129, 240, 130, 129, 240, + 129, 130, 240, 129, 130, 240, 114, 129, 240, 130, 129, 240, + 129, 130, 240, 129, 130, 240, 114, 129, 240, 130, 129, 240, + 129, 130, 240, 114, 130, 240, 114, 129, 240, 130, 129, 240, + 129, 130, 207, 15, 79, 15, 226, 129, 240, 129, 130, 240, + 129, 130, 240, 114, 129, 240, 130, 129, 240, 129, 130, 239, + 15, 79, 15, 194, 129, 240, 129, 130, 240, 129, 130, 240, + 114, 130, 240, 114, 129, 240, 129, 130, 240, 129, 130, 240, + 114, 129, 240, 130, 129, 240, 129, 130, 240, 129, 130, 240, + 114, 129, 240, 130, 129, 240, 129, 130, 240, 129, 130, 0, + 10, 96, 69, 20, 115, 240, 35, 240, 22, 202, 141, 116, + 19, 35, 99, 51, 65, 84, 51, 163, 67, 163, 67, 163, + 67, 163, 67, 164, 51, 180, 35, 185, 201, 202, 186, 215, + 211, 20, 195, 35, 195, 36, 179, 51, 179, 51, 179, 51, + 179, 51, 179, 51, 65, 99, 35, 82, 83, 35, 84, 51, + 20, 109, 139, 198, 240, 19, 240, 35, 0, 23, 96, 115, + 34, 68, 240, 17, 198, 226, 184, 210, 164, 36, 178, 179, + 67, 177, 179, 84, 146, 179, 99, 130, 195, 99, 130, 195, + 99, 114, 211, 99, 114, 211, 99, 98, 227, 99, 98, 242, + 83, 98, 240, 19, 67, 98, 240, 20, 36, 82, 240, 56, + 97, 240, 86, 98, 240, 240, 18, 240, 240, 34, 101, 240, + 82, 103, 240, 66, 83, 36, 240, 34, 99, 51, 240, 34, + 98, 67, 240, 18, 99, 83, 242, 99, 83, 226, 115, 83, + 226, 115, 83, 210, 131, 83, 209, 147, 83, 194, 147, 83, + 178, 163, 83, 178, 179, 51, 178, 195, 36, 178, 215, 178, + 245, 194, 240, 19, 0, 35, 86, 31, 0, 8, 116, 240, + 167, 240, 152, 240, 115, 51, 240, 115, 67, 240, 83, 83, + 240, 83, 83, 240, 83, 83, 240, 83, 83, 240, 83, 67, + 240, 99, 67, 240, 100, 35, 240, 116, 19, 240, 150, 240, + 165, 179, 196, 195, 181, 195, 167, 163, 164, 19, 163, 148, + 36, 131, 147, 84, 115, 147, 99, 99, 147, 116, 68, 147, + 132, 36, 163, 152, 180, 150, 211, 149, 229, 89, 97, 109, + 27, 123, 58, 150, 135, 0, 43, 32, 14, 7, 227, 67, + 67, 67, 82, 82, 66, 82, 82, 0, 29, 64, 47, 14, + 115, 163, 163, 178, 179, 178, 179, 178, 179, 179, 178, 179, + 179, 179, 179, 163, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 195, 179, 179, 179, 179, 195, 179, + 195, 179, 194, 195, 195, 179, 195, 195, 64, 47, 14, 3, + 195, 195, 194, 195, 195, 179, 195, 179, 179, 195, 179, 179, + 179, 179, 195, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 178, 179, 179, 179, 179, 163, 179, 178, + 179, 179, 163, 178, 179, 163, 163, 176, 42, 19, 99, 240, + 19, 240, 19, 240, 19, 162, 67, 66, 67, 51, 51, 69, + 19, 21, 107, 167, 213, 215, 171, 101, 19, 21, 68, 35, + 36, 66, 67, 66, 163, 240, 19, 240, 19, 240, 19, 0, + 60, 80, 63, 32, 0, 33, 82, 240, 242, 240, 242, 240, + 242, 240, 242, 240, 242, 240, 242, 240, 242, 240, 242, 240, + 242, 240, 242, 240, 242, 240, 242, 240, 47, 13, 79, 13, + 240, 34, 240, 242, 240, 242, 240, 242, 240, 242, 240, 242, + 240, 242, 240, 242, 240, 242, 240, 242, 240, 242, 240, 242, + 240, 242, 0, 34, 16, 17, 7, 0, 25, 51, 67, 67, + 67, 82, 82, 81, 82, 82, 82, 240, 240, 160, 10, 15, + 0, 41, 43, 75, 75, 0, 36, 16, 11, 7, 0, 25, + 51, 67, 67, 67, 0, 10, 16, 91, 20, 241, 240, 50, + 240, 49, 240, 50, 240, 50, 240, 49, 240, 50, 240, 50, + 240, 49, 240, 50, 240, 50, 240, 49, 240, 50, 240, 50, + 240, 49, 240, 50, 240, 50, 240, 49, 240, 50, 240, 50, + 240, 49, 240, 50, 240, 50, 240, 49, 240, 50, 240, 50, + 240, 49, 240, 50, 240, 50, 240, 49, 240, 50, 240, 50, + 240, 49, 240, 50, 240, 50, 240, 49, 240, 50, 240, 50, + 240, 49, 240, 50, 240, 50, 240, 49, 240, 50, 240, 49, + 240, 64, 59, 21, 0, 11, 37, 233, 187, 148, 84, 131, + 115, 115, 147, 99, 147, 99, 147, 83, 179, 67, 179, 67, + 179, 67, 179, 67, 179, 67, 179, 67, 179, 67, 179, 67, + 179, 67, 179, 67, 179, 67, 179, 67, 179, 83, 148, 83, + 147, 99, 147, 115, 116, 116, 84, 155, 185, 229, 0, 30, + 16, 37, 17, 0, 9, 49, 212, 152, 152, 147, 35, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 157, 77, 77, 0, + 23, 112, 62, 20, 0, 10, 86, 202, 156, 116, 84, 115, + 116, 83, 147, 82, 164, 66, 179, 81, 179, 240, 35, 240, + 35, 240, 35, 240, 19, 240, 35, 240, 19, 240, 19, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 35, 240, 31, 1, 79, 1, + 79, 1, 0, 28, 55, 20, 0, 10, 86, 202, 156, 116, + 84, 100, 116, 83, 147, 97, 163, 240, 35, 240, 35, 240, + 20, 240, 19, 244, 200, 198, 232, 240, 36, 240, 51, 240, + 35, 240, 51, 240, 35, 240, 35, 240, 35, 240, 35, 65, + 179, 83, 147, 85, 84, 125, 154, 198, 0, 28, 80, 64, + 22, 0, 12, 36, 240, 52, 240, 37, 240, 37, 240, 22, + 240, 18, 19, 243, 19, 227, 35, 227, 35, 211, 51, 211, + 51, 195, 67, 195, 67, 179, 83, 179, 83, 163, 99, 148, + 99, 147, 115, 132, 115, 143, 3, 79, 3, 79, 3, 243, + 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, + 0, 31, 32, 57, 21, 0, 10, 110, 126, 126, 115, 240, + 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, + 51, 37, 188, 157, 133, 68, 132, 115, 115, 131, 240, 67, + 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, 81, 195, + 82, 163, 84, 132, 101, 84, 140, 170, 214, 0, 30, 16, + 58, 20, 0, 11, 5, 216, 185, 164, 243, 240, 19, 240, + 35, 240, 19, 240, 35, 240, 34, 69, 131, 40, 115, 26, + 102, 69, 85, 100, 84, 131, 83, 163, 67, 163, 67, 163, + 67, 163, 67, 163, 67, 163, 82, 163, 83, 147, 83, 131, + 115, 100, 116, 68, 154, 184, 213, 0, 28, 96, 65, 21, + 0, 10, 79, 2, 79, 2, 79, 2, 240, 51, 240, 35, + 240, 50, 240, 51, 240, 35, 240, 50, 240, 51, 240, 50, + 240, 51, 240, 50, 240, 51, 240, 51, 240, 35, 240, 51, + 240, 51, 240, 35, 240, 51, 240, 51, 240, 51, 240, 51, + 240, 35, 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, + 0, 30, 64, 56, 20, 0, 10, 86, 217, 156, 132, 68, + 115, 131, 98, 162, 98, 162, 83, 163, 82, 162, 98, 162, + 99, 131, 116, 83, 154, 198, 202, 148, 68, 115, 131, 99, + 131, 83, 163, 67, 163, 67, 163, 67, 163, 67, 163, 83, + 131, 99, 131, 116, 68, 140, 154, 198, 0, 28, 80, 59, + 20, 0, 10, 101, 216, 186, 148, 68, 116, 99, 115, 131, + 83, 147, 83, 162, 83, 163, 67, 163, 67, 163, 67, 163, + 67, 163, 67, 163, 83, 132, 84, 101, 85, 70, 106, 19, + 120, 35, 133, 66, 240, 35, 240, 35, 240, 34, 240, 35, + 240, 19, 146, 84, 139, 169, 213, 0, 28, 112, 17, 7, + 0, 12, 35, 67, 67, 67, 0, 10, 19, 67, 67, 67, + 0, 10, 16, 23, 7, 0, 12, 35, 67, 67, 67, 0, + 10, 19, 67, 67, 67, 82, 82, 81, 82, 82, 82, 240, + 240, 160, 36, 7, 0, 8, 99, 67, 67, 67, 240, 240, + 35, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 240, 48, 17, 32, 0, 68, 15, 13, 79, 13, 0, 24, + 79, 13, 79, 13, 0, 68, 64, 52, 19, 0, 24, 67, + 240, 19, 240, 19, 240, 19, 0, 11, 67, 240, 19, 240, + 19, 240, 19, 240, 19, 240, 19, 243, 240, 19, 244, 243, + 244, 228, 228, 243, 244, 243, 240, 19, 240, 19, 240, 19, + 240, 20, 146, 84, 100, 94, 107, 167, 0, 5, 96, 38, + 18, 240, 240, 166, 155, 109, 84, 84, 97, 132, 243, 243, + 243, 243, 228, 227, 228, 212, 212, 227, 228, 227, 243, 227, + 243, 243, 243, 243, 243, 0, 8, 83, 243, 243, 243, 0, + 26, 81, 27, 0, 8, 7, 240, 59, 238, 198, 85, 165, + 147, 148, 101, 19, 131, 106, 116, 91, 115, 84, 54, 83, + 84, 85, 83, 83, 116, 83, 83, 116, 67, 83, 147, 67, + 83, 147, 67, 83, 147, 67, 83, 147, 67, 83, 147, 67, + 83, 147, 67, 83, 147, 68, 83, 115, 99, 83, 115, 99, + 84, 84, 115, 84, 52, 132, 89, 163, 103, 181, 85, 213, + 240, 134, 132, 175, 236, 240, 39, 0, 38, 48, 83, 29, + 0, 8, 84, 240, 149, 240, 150, 240, 130, 19, 240, 115, + 19, 240, 115, 20, 240, 99, 20, 240, 83, 51, 240, 83, + 52, 240, 67, 52, 240, 51, 83, 240, 51, 84, 240, 35, + 84, 240, 19, 115, 240, 19, 116, 228, 116, 227, 147, 227, + 148, 196, 148, 207, 2, 207, 3, 175, 4, 163, 211, 163, + 212, 132, 212, 131, 243, 131, 244, 100, 244, 99, 240, 35, + 99, 240, 36, 68, 240, 36, 0, 40, 48, 65, 25, 0, + 6, 45, 207, 1, 147, 150, 115, 181, 99, 211, 99, 212, + 83, 227, 83, 227, 83, 227, 83, 212, 83, 196, 99, 180, + 115, 149, 143, 174, 191, 1, 147, 150, 115, 196, 99, 212, + 83, 227, 83, 228, 67, 243, 67, 243, 67, 243, 67, 243, + 67, 227, 83, 212, 83, 196, 99, 165, 127, 2, 142, 0, + 35, 96, 63, 25, 0, 7, 71, 253, 190, 165, 100, 148, + 177, 132, 240, 84, 240, 99, 240, 100, 240, 99, 240, 115, + 240, 100, 240, 99, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 116, 240, 115, 240, 115, 240, 116, + 240, 115, 240, 116, 240, 116, 240, 116, 178, 149, 116, 175, + 188, 248, 0, 35, 48, 82, 27, 0, 6, 110, 223, 1, + 179, 149, 163, 195, 147, 211, 131, 227, 115, 228, 99, 243, + 99, 240, 19, 83, 240, 19, 83, 240, 19, 83, 240, 35, + 67, 240, 35, 67, 240, 35, 67, 240, 35, 67, 240, 35, + 67, 240, 35, 67, 240, 35, 67, 240, 35, 67, 240, 35, + 67, 240, 19, 83, 240, 19, 83, 240, 19, 83, 243, 99, + 243, 99, 227, 115, 211, 131, 196, 131, 164, 175, 1, 190, + 0, 38, 96, 69, 22, 240, 240, 239, 3, 79, 3, 79, + 3, 67, 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, + 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, 240, 79, + 2, 95, 2, 95, 2, 83, 240, 67, 240, 67, 240, 67, + 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, + 240, 67, 240, 79, 3, 79, 3, 79, 3, 0, 30, 96, + 68, 21, 240, 240, 207, 2, 79, 2, 79, 2, 67, 240, + 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, + 51, 240, 51, 240, 51, 240, 51, 240, 63, 1, 95, 1, + 95, 1, 83, 240, 51, 240, 51, 240, 51, 240, 51, 240, + 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, + 51, 240, 51, 240, 51, 0, 31, 16, 63, 25, 0, 7, + 71, 253, 191, 149, 101, 132, 163, 116, 240, 84, 240, 99, + 240, 100, 240, 99, 240, 115, 240, 115, 240, 99, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 168, 68, + 152, 83, 152, 83, 227, 84, 211, 99, 211, 100, 195, 116, + 179, 132, 163, 149, 116, 175, 188, 247, 0, 35, 64, 69, + 25, 0, 6, 35, 243, 67, 243, 67, 243, 67, 243, 67, + 243, 67, 243, 67, 243, 67, 243, 67, 243, 67, 243, 67, + 243, 67, 243, 67, 243, 79, 6, 79, 6, 79, 6, 67, + 243, 67, 243, 67, 243, 67, 243, 67, 243, 67, 243, 67, + 243, 67, 243, 67, 243, 67, 243, 67, 243, 67, 243, 67, + 243, 67, 243, 67, 243, 0, 34, 112, 36, 7, 227, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 0, 10, 16, 40, 18, 0, 5, + 115, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 81, 132, 83, 84, 93, 107, 166, 0, 25, 96, + 70, 26, 0, 6, 67, 228, 83, 212, 99, 197, 99, 181, + 115, 165, 131, 164, 147, 148, 163, 132, 179, 116, 195, 100, + 211, 84, 227, 68, 243, 53, 243, 39, 227, 39, 227, 20, + 20, 215, 36, 214, 68, 197, 85, 180, 116, 179, 148, 163, + 148, 163, 164, 147, 180, 131, 180, 131, 196, 115, 197, 99, + 212, 99, 228, 83, 228, 83, 244, 0, 36, 32, 68, 20, + 240, 240, 163, 240, 35, 240, 35, 240, 35, 240, 35, 240, + 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, + 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, + 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, + 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, 47, 1, + 79, 1, 79, 1, 0, 28, 120, 32, 0, 8, 5, 240, + 53, 69, 240, 53, 70, 240, 22, 70, 240, 22, 70, 240, + 22, 67, 19, 227, 19, 67, 19, 227, 19, 67, 19, 227, + 19, 67, 35, 195, 35, 67, 35, 195, 35, 67, 36, 164, + 35, 67, 51, 163, 51, 67, 51, 163, 51, 67, 52, 132, + 51, 67, 67, 131, 67, 67, 67, 131, 67, 67, 68, 100, + 67, 67, 83, 99, 83, 67, 83, 99, 83, 67, 84, 68, + 83, 67, 99, 67, 99, 67, 100, 51, 99, 67, 100, 35, + 115, 67, 115, 35, 115, 67, 115, 35, 115, 67, 134, 131, + 67, 134, 131, 67, 134, 131, 67, 148, 147, 67, 148, 147, + 67, 240, 115, 0, 44, 64, 91, 25, 0, 6, 37, 211, + 70, 195, 70, 195, 71, 179, 67, 19, 179, 67, 20, 163, + 67, 20, 163, 67, 36, 147, 67, 36, 147, 67, 52, 131, + 67, 52, 131, 67, 67, 131, 67, 68, 115, 67, 83, 115, + 67, 84, 99, 67, 99, 99, 67, 100, 83, 67, 115, 83, + 67, 116, 67, 67, 131, 67, 67, 132, 51, 67, 132, 51, + 67, 148, 35, 67, 148, 35, 67, 164, 19, 67, 164, 19, + 67, 183, 67, 183, 67, 198, 67, 198, 67, 213, 0, 34, + 112, 81, 29, 0, 8, 70, 240, 91, 240, 45, 245, 85, + 212, 148, 180, 180, 148, 212, 131, 243, 115, 240, 35, 99, + 240, 35, 99, 240, 35, 83, 240, 67, 67, 240, 67, 67, + 240, 67, 67, 240, 67, 67, 240, 67, 67, 240, 67, 67, + 240, 67, 67, 240, 67, 68, 240, 36, 83, 240, 35, 99, + 240, 35, 100, 244, 115, 243, 132, 212, 148, 180, 180, 148, + 213, 85, 253, 240, 43, 240, 87, 0, 41, 64, 66, 24, + 0, 6, 14, 175, 1, 131, 149, 115, 180, 99, 211, 83, + 211, 83, 227, 67, 227, 67, 227, 67, 227, 67, 227, 67, + 212, 67, 211, 83, 196, 83, 150, 111, 2, 127, 1, 141, + 179, 240, 99, 240, 99, 240, 99, 240, 99, 240, 99, 240, + 99, 240, 99, 240, 99, 240, 99, 240, 99, 240, 99, 240, + 99, 0, 35, 80, 99, 30, 0, 8, 102, 240, 123, 240, + 46, 245, 101, 212, 164, 180, 196, 148, 228, 131, 240, 19, + 116, 240, 20, 99, 240, 51, 99, 240, 51, 84, 240, 67, + 67, 240, 83, 67, 240, 83, 67, 240, 83, 67, 240, 83, + 67, 240, 83, 67, 240, 83, 67, 240, 83, 68, 240, 67, + 83, 240, 51, 99, 240, 51, 100, 101, 84, 115, 116, 83, + 132, 116, 52, 148, 116, 20, 180, 104, 213, 86, 254, 240, + 46, 240, 70, 20, 240, 196, 240, 181, 240, 180, 240, 196, + 240, 180, 240, 196, 0, 19, 48, 66, 25, 0, 6, 45, + 207, 1, 147, 149, 131, 195, 115, 211, 99, 212, 83, 227, + 83, 227, 83, 227, 83, 227, 83, 212, 83, 211, 99, 196, + 99, 165, 127, 1, 159, 173, 195, 116, 179, 131, 179, 132, + 163, 147, 163, 148, 147, 163, 147, 164, 131, 180, 115, 195, + 115, 196, 99, 211, 99, 212, 83, 227, 83, 243, 0, 34, + 112, 59, 22, 0, 6, 39, 220, 158, 116, 101, 100, 161, + 115, 240, 51, 240, 67, 240, 67, 240, 67, 240, 68, 240, + 68, 240, 54, 240, 40, 250, 234, 248, 240, 38, 240, 52, + 240, 68, 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, + 65, 211, 83, 164, 85, 116, 126, 156, 215, 0, 31, 64, + 68, 29, 0, 7, 47, 10, 79, 10, 79, 10, 243, 240, + 179, 240, 179, 240, 179, 240, 179, 240, 179, 240, 179, 240, + 179, 240, 179, 240, 179, 240, 179, 240, 179, 240, 179, 240, + 179, 240, 179, 240, 179, 240, 179, 240, 179, 240, 179, 240, + 179, 240, 179, 240, 179, 240, 179, 240, 179, 240, 179, 240, + 179, 240, 179, 240, 179, 0, 41, 96, 68, 24, 0, 6, + 3, 227, 67, 227, 67, 227, 67, 227, 67, 227, 67, 227, + 67, 227, 67, 227, 67, 227, 67, 227, 67, 227, 67, 227, + 67, 227, 67, 227, 67, 227, 67, 227, 67, 227, 67, 227, + 67, 227, 67, 227, 67, 227, 67, 227, 67, 227, 67, 227, + 83, 195, 99, 195, 115, 163, 147, 131, 180, 83, 218, 240, + 22, 0, 34, 48, 85, 30, 0, 7, 68, 240, 52, 68, + 240, 51, 84, 240, 51, 100, 240, 20, 100, 240, 19, 131, + 240, 19, 132, 228, 132, 227, 164, 196, 164, 195, 180, 195, + 196, 164, 196, 163, 212, 163, 228, 132, 228, 131, 240, 19, + 131, 240, 20, 100, 240, 20, 99, 240, 51, 99, 240, 52, + 67, 240, 68, 67, 240, 83, 67, 240, 84, 35, 240, 100, + 35, 240, 115, 35, 240, 119, 240, 150, 240, 150, 240, 149, + 240, 180, 0, 43, 16, 124, 41, 0, 10, 36, 212, 211, + 68, 197, 211, 68, 197, 196, 83, 197, 195, 100, 178, 19, + 179, 100, 163, 19, 179, 100, 163, 19, 164, 115, 163, 19, + 163, 132, 131, 36, 147, 132, 131, 51, 132, 132, 131, 51, + 132, 147, 131, 52, 115, 164, 99, 68, 115, 164, 99, 83, + 100, 164, 99, 83, 99, 195, 99, 84, 83, 196, 67, 100, + 83, 196, 67, 115, 68, 211, 67, 115, 67, 227, 67, 116, + 51, 228, 35, 132, 51, 228, 35, 147, 51, 243, 35, 147, + 35, 240, 19, 35, 148, 19, 240, 20, 18, 164, 19, 240, + 23, 179, 19, 240, 38, 182, 240, 54, 182, 240, 53, 213, + 240, 68, 212, 240, 84, 212, 0, 57, 112, 79, 30, 0, + 7, 69, 244, 117, 212, 148, 196, 180, 180, 181, 148, 212, + 132, 244, 116, 245, 84, 240, 36, 68, 240, 68, 52, 240, + 84, 20, 240, 104, 240, 135, 240, 149, 240, 164, 240, 181, + 240, 151, 240, 135, 240, 116, 20, 240, 84, 52, 240, 67, + 68, 240, 52, 84, 240, 20, 116, 243, 133, 212, 148, 196, + 180, 180, 196, 148, 212, 132, 244, 116, 240, 20, 84, 240, + 37, 0, 41, 96, 75, 29, 0, 7, 36, 240, 51, 68, + 240, 36, 84, 244, 101, 228, 116, 212, 148, 195, 164, 180, + 180, 148, 212, 131, 228, 116, 244, 99, 240, 21, 68, 240, + 36, 52, 240, 68, 35, 240, 84, 20, 240, 103, 240, 133, + 240, 149, 240, 163, 240, 179, 240, 179, 240, 179, 240, 179, + 240, 179, 240, 179, 240, 179, 240, 179, 240, 179, 240, 179, + 240, 179, 240, 179, 0, 41, 96, 70, 25, 0, 6, 63, + 5, 95, 5, 95, 5, 240, 84, 240, 84, 240, 100, 240, + 84, 240, 100, 240, 84, 240, 84, 240, 100, 240, 84, 240, + 84, 240, 100, 240, 84, 240, 100, 240, 84, 240, 84, 240, + 100, 240, 84, 240, 100, 240, 84, 240, 84, 240, 100, 240, + 84, 240, 84, 240, 100, 240, 84, 240, 111, 5, 79, 6, + 79, 6, 0, 34, 112, 47, 11, 7, 71, 71, 67, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 135, 71, 71, 64, 25, 15, 240, 240, 18, 98, 82, 98, + 82, 98, 66, 98, 82, 98, 83, 83, 67, 83, 67, 83, + 67, 83, 0, 62, 48, 47, 11, 7, 71, 71, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 71, 71, 71, 64, 19, 18, 240, 240, 180, 229, 198, 179, + 35, 162, 67, 131, 82, 115, 99, 83, 131, 0, 77, 9, + 7, 240, 211, 67, 67, 67, 0, 32, 14, 7, 242, 82, + 82, 66, 82, 83, 67, 67, 67, 0, 29, 48, 35, 18, + 0, 32, 6, 170, 124, 99, 100, 243, 243, 243, 168, 123, + 108, 85, 83, 68, 115, 67, 131, 67, 131, 67, 131, 69, + 69, 93, 89, 19, 117, 51, 0, 25, 32, 67, 20, 240, + 240, 163, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, + 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, + 240, 35, 69, 131, 40, 126, 101, 85, 84, 116, 83, 147, + 83, 148, 67, 163, 67, 163, 67, 163, 67, 163, 67, 163, + 67, 148, 67, 147, 84, 116, 85, 69, 110, 99, 25, 115, + 53, 0, 28, 80, 37, 19, 0, 34, 6, 187, 124, 100, + 99, 84, 145, 83, 240, 19, 243, 240, 19, 240, 19, 240, + 19, 240, 19, 240, 20, 240, 19, 240, 20, 145, 100, 99, + 124, 138, 182, 0, 27, 66, 21, 0, 7, 3, 240, 51, + 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, + 240, 51, 240, 51, 240, 51, 240, 51, 150, 51, 122, 19, + 111, 101, 85, 84, 147, 83, 163, 68, 163, 67, 179, 67, + 179, 67, 179, 67, 179, 67, 179, 68, 163, 83, 163, 84, + 132, 101, 85, 111, 121, 35, 149, 67, 0, 29, 48, 39, + 20, 0, 35, 101, 217, 171, 132, 84, 99, 146, 98, 163, + 79, 1, 79, 1, 79, 1, 67, 240, 35, 240, 35, 240, + 51, 240, 35, 240, 36, 161, 101, 99, 125, 139, 182, 0, + 28, 64, 38, 17, 240, 240, 182, 167, 152, 132, 211, 211, + 227, 227, 227, 227, 227, 227, 186, 122, 122, 163, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 0, 24, 96, 55, 22, 0, 39, 21, 67, 151, 21, + 143, 100, 52, 164, 84, 147, 115, 147, 115, 147, 115, 147, + 115, 163, 84, 164, 52, 186, 186, 194, 37, 210, 240, 83, + 240, 76, 189, 143, 100, 133, 83, 164, 83, 179, 83, 179, + 83, 179, 84, 147, 117, 85, 155, 215, 0, 6, 96, 69, + 19, 240, 240, 131, 240, 19, 240, 19, 240, 19, 240, 19, + 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, + 240, 19, 240, 19, 69, 115, 41, 83, 26, 86, 69, 68, + 116, 68, 131, 67, 147, 67, 147, 67, 147, 67, 147, 67, + 147, 67, 147, 67, 147, 67, 147, 67, 147, 67, 147, 67, + 147, 67, 147, 67, 147, 0, 26, 80, 31, 7, 240, 211, + 67, 67, 67, 0, 5, 99, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 0, 10, 16, 42, 13, 0, 7, 35, 163, 163, 163, 0, + 11, 3, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 65, 68, 72, 87, 132, 240, 240, 48, 66, 20, 240, + 240, 163, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, + 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, + 240, 35, 117, 83, 101, 99, 85, 115, 69, 131, 68, 147, + 52, 163, 36, 179, 20, 201, 186, 165, 20, 164, 52, 147, + 84, 131, 84, 131, 100, 115, 116, 99, 116, 99, 132, 83, + 148, 0, 28, 36, 7, 227, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 0, 10, 16, 64, 30, 0, 52, 67, 69, 101, 115, 41, + 56, 83, 26, 41, 85, 87, 69, 68, 117, 100, 68, 132, + 115, 67, 147, 131, 67, 147, 131, 67, 147, 131, 67, 147, + 131, 67, 147, 131, 67, 147, 131, 67, 147, 131, 67, 147, + 131, 67, 147, 131, 67, 147, 131, 67, 147, 131, 67, 147, + 131, 67, 147, 131, 0, 41, 96, 45, 19, 0, 33, 35, + 69, 115, 41, 83, 26, 86, 69, 68, 116, 68, 131, 67, + 147, 67, 147, 67, 147, 67, 147, 67, 147, 67, 147, 67, + 147, 67, 147, 67, 147, 67, 147, 67, 147, 67, 147, 67, + 147, 0, 26, 80, 39, 22, 0, 39, 38, 234, 188, 149, + 69, 116, 132, 99, 163, 99, 164, 67, 195, 67, 195, 67, + 195, 67, 195, 67, 195, 68, 164, 83, 163, 100, 132, 117, + 69, 156, 186, 230, 0, 31, 64, 60, 20, 0, 35, 3, + 69, 131, 40, 126, 101, 70, 83, 132, 83, 148, 67, 148, + 67, 163, 67, 163, 67, 163, 67, 163, 67, 163, 67, 148, + 67, 147, 84, 116, 85, 69, 110, 99, 25, 115, 53, 147, + 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, + 240, 35, 240, 35, 0, 7, 16, 61, 21, 0, 37, 54, + 51, 137, 19, 126, 101, 85, 84, 132, 83, 163, 68, 163, + 67, 179, 67, 179, 67, 179, 67, 179, 67, 179, 68, 163, + 83, 163, 84, 132, 101, 85, 111, 121, 35, 149, 67, 240, + 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, + 51, 240, 51, 240, 51, 0, 5, 96, 29, 14, 0, 24, + 67, 67, 67, 37, 67, 22, 71, 117, 148, 164, 163, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 0, 20, + 80, 29, 18, 0, 32, 7, 155, 108, 84, 99, 83, 243, + 244, 230, 217, 185, 184, 229, 243, 243, 65, 163, 68, 100, + 77, 107, 151, 0, 25, 96, 32, 16, 0, 18, 51, 211, + 211, 211, 211, 172, 76, 76, 115, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 212, 50, 121, 136, 148, 0, + 22, 112, 45, 19, 0, 33, 35, 147, 67, 147, 67, 147, + 67, 147, 67, 147, 67, 147, 67, 147, 67, 147, 67, 147, + 67, 147, 67, 147, 67, 147, 67, 147, 67, 147, 67, 132, + 68, 86, 75, 19, 89, 35, 101, 83, 0, 26, 80, 44, + 21, 0, 36, 99, 179, 68, 148, 68, 147, 99, 147, 100, + 116, 115, 115, 131, 115, 132, 84, 147, 83, 163, 83, 164, + 52, 179, 51, 196, 35, 211, 19, 227, 19, 227, 19, 245, + 240, 21, 240, 21, 0, 30, 16, 69, 30, 0, 52, 67, + 132, 131, 67, 132, 131, 68, 116, 131, 83, 102, 100, 83, + 102, 99, 100, 82, 19, 99, 115, 82, 34, 84, 115, 67, + 35, 67, 132, 51, 35, 67, 132, 50, 51, 67, 147, 50, + 67, 35, 163, 35, 67, 35, 164, 19, 67, 35, 179, 18, + 83, 20, 179, 18, 102, 198, 102, 212, 118, 212, 132, 228, + 132, 0, 42, 48, 46, 23, 0, 40, 52, 148, 100, 132, + 132, 115, 164, 83, 196, 52, 211, 36, 243, 19, 240, 22, + 240, 52, 240, 83, 240, 69, 240, 35, 19, 243, 36, 212, + 51, 211, 83, 179, 115, 148, 116, 116, 148, 84, 180, 0, + 32, 16, 57, 21, 0, 36, 99, 179, 68, 148, 83, 147, + 100, 131, 100, 116, 115, 115, 132, 99, 147, 84, 148, 67, + 164, 67, 179, 51, 196, 35, 211, 35, 211, 19, 246, 246, + 245, 240, 36, 240, 36, 240, 35, 240, 51, 240, 35, 240, + 51, 240, 51, 240, 35, 231, 230, 245, 0, 7, 16, 26, + 19, 0, 33, 62, 94, 94, 228, 228, 243, 244, 228, 228, + 243, 244, 228, 228, 243, 244, 228, 239, 79, 79, 0, 26, + 80, 13, 25, 0, 62, 79, 6, 79, 6, 79, 6, 0, + 66, 16, 16, 45, 0, 112, 79, 15, 11, 79, 15, 11, + 79, 15, 11, 0, 118, 80, 23, 17, 240, 240, 100, 52, + 99, 67, 115, 67, 100, 52, 99, 67, 115, 67, 99, 67, + 115, 67, 0, 73, 16, 16, 18, 0, 9, 51, 98, 102, + 51, 93, 82, 70, 83, 84, 0, 79, 64, +}; + +//***************************************************************************** +// +// The font definition for the 44 point Cmss font. +// +//***************************************************************************** +const tFont g_sFontCmss44 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 40, + + // + // The height of the font. + // + 44, + + // + // The baseline of the font. + // + 33, + + // + // The offset to each character in the font. + // + { + 0, 4, 38, 62, 182, 251, 366, 452, + 466, 513, 560, 602, 665, 682, 692, 703, + 794, 853, 890, 952, 1007, 1071, 1128, 1186, + 1251, 1307, 1366, 1383, 1406, 1442, 1459, 1511, + 1549, 1630, 1713, 1778, 1841, 1923, 1992, 2060, + 2123, 2192, 2228, 2268, 2338, 2406, 2526, 2617, + 2698, 2764, 2863, 2929, 2988, 3056, 3124, 3209, + 3333, 3412, 3487, 3557, 3604, 3629, 3676, 3695, + 3704, 3718, 3753, 3820, 3857, 3923, 3962, 4000, + 4055, 4124, 4155, 4197, 4263, 4299, 4363, 4408, + 4447, 4507, 4568, 4597, 4626, 4658, 4703, 4747, + 4816, 4862, 4919, 4945, 4958, 4974, 4997, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss44Data +}; diff --git a/grlib/fonts/fontcmss44b.c b/grlib/fonts/fontcmss44b.c new file mode 100644 index 0000000..3cc9e55 --- /dev/null +++ b/grlib/fonts/fontcmss44b.c @@ -0,0 +1,529 @@ +//***************************************************************************** +// +// fontcmss44b.c - Font definition for the 44pt Cmss bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 44 point +// Bold: yes +// Italic: no +// Memory usage: 5268 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 44 point Cmss bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss44bData[5066] = +{ + 4, 18, 0, 99, 35, 10, 240, 246, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 240, 240, 70, 70, 70, 70, 70, 70, + 0, 14, 32, 27, 19, 0, 7, 22, 54, 70, 54, 70, + 54, 70, 54, 70, 54, 70, 54, 84, 84, 100, 84, 84, + 84, 99, 99, 0, 74, 64, 120, 38, 0, 16, 34, 130, + 240, 164, 100, 240, 148, 100, 240, 147, 115, 240, 148, 100, + 240, 148, 100, 240, 147, 115, 240, 148, 100, 240, 148, 100, + 240, 148, 100, 240, 147, 115, 240, 148, 100, 223, 15, 2, + 95, 15, 4, 79, 15, 4, 95, 15, 2, 240, 20, 100, + 240, 147, 115, 240, 148, 100, 240, 148, 100, 240, 147, 115, + 240, 148, 100, 240, 31, 15, 2, 95, 15, 4, 79, 15, + 4, 95, 15, 2, 212, 100, 240, 147, 115, 240, 148, 100, + 240, 148, 100, 240, 148, 100, 240, 147, 115, 240, 148, 100, + 240, 148, 100, 240, 147, 115, 240, 148, 100, 240, 148, 100, + 240, 162, 130, 0, 16, 96, 67, 22, 129, 240, 83, 240, + 67, 240, 40, 205, 143, 111, 1, 101, 19, 37, 85, 35, + 67, 85, 35, 197, 35, 197, 35, 198, 19, 202, 202, 220, + 173, 174, 157, 188, 202, 195, 23, 179, 38, 179, 53, 179, + 53, 179, 53, 66, 83, 53, 67, 67, 38, 69, 35, 22, + 95, 2, 95, 1, 141, 185, 240, 19, 240, 67, 0, 26, + 32, 117, 43, 71, 240, 66, 233, 240, 36, 203, 245, 181, + 53, 213, 196, 69, 212, 197, 85, 181, 197, 85, 165, 213, + 85, 149, 229, 85, 148, 245, 85, 133, 245, 85, 117, 240, + 21, 85, 101, 240, 37, 85, 100, 240, 68, 69, 101, 240, + 69, 53, 85, 240, 107, 100, 240, 137, 100, 240, 166, 117, + 240, 240, 117, 118, 240, 164, 106, 240, 116, 108, 240, 85, + 85, 54, 240, 53, 100, 85, 240, 52, 101, 101, 240, 20, + 117, 101, 244, 133, 101, 229, 133, 101, 228, 149, 101, 212, + 165, 101, 196, 181, 101, 181, 197, 69, 196, 213, 54, 180, + 252, 195, 240, 42, 211, 240, 70, 0, 49, 64, 81, 35, + 0, 14, 54, 240, 201, 240, 171, 240, 133, 53, 240, 117, + 69, 240, 85, 85, 240, 85, 85, 240, 85, 85, 240, 85, + 85, 240, 85, 69, 240, 101, 53, 240, 118, 21, 145, 234, + 149, 185, 164, 200, 165, 213, 197, 184, 165, 186, 149, 165, + 22, 117, 165, 38, 102, 149, 70, 70, 165, 86, 53, 166, + 93, 182, 107, 199, 105, 231, 90, 98, 95, 15, 111, 14, + 125, 60, 167, 152, 0, 48, 96, 16, 10, 240, 246, 70, + 70, 70, 70, 70, 84, 100, 84, 99, 0, 39, 80, 47, + 16, 147, 196, 180, 180, 181, 165, 181, 165, 181, 166, 165, + 181, 166, 166, 166, 165, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 181, 182, 166, 166, 181, 181, 182, + 181, 181, 197, 181, 197, 196, 212, 212, 211, 64, 47, 16, + 3, 212, 212, 212, 197, 197, 181, 197, 181, 182, 181, 181, + 182, 166, 181, 181, 182, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 165, 181, 166, 166, 165, 181, 181, 165, + 181, 165, 181, 165, 180, 180, 180, 195, 208, 48, 23, 131, + 240, 69, 240, 53, 240, 53, 195, 67, 67, 100, 51, 53, + 70, 35, 38, 86, 19, 22, 141, 215, 240, 23, 221, 134, + 19, 22, 86, 35, 38, 69, 51, 53, 83, 67, 67, 197, + 240, 53, 240, 53, 240, 67, 0, 70, 64, 99, 36, 0, + 28, 114, 240, 240, 52, 240, 240, 36, 240, 240, 36, 240, + 240, 36, 240, 240, 36, 240, 240, 36, 240, 240, 36, 240, + 240, 36, 240, 240, 36, 240, 240, 36, 240, 240, 36, 240, + 240, 36, 240, 240, 36, 240, 79, 15, 95, 15, 2, 79, + 15, 2, 95, 15, 240, 68, 240, 240, 36, 240, 240, 36, + 240, 240, 36, 240, 240, 36, 240, 240, 36, 240, 240, 36, + 240, 240, 36, 240, 240, 36, 240, 240, 36, 240, 240, 36, + 240, 240, 36, 240, 240, 36, 240, 240, 50, 0, 29, 48, + 18, 10, 0, 33, 102, 70, 70, 70, 70, 70, 84, 100, + 99, 100, 99, 0, 8, 48, 10, 17, 0, 46, 109, 77, + 77, 0, 40, 112, 13, 10, 0, 33, 102, 70, 70, 70, + 70, 70, 0, 14, 32, 91, 22, 242, 240, 68, 240, 52, + 240, 52, 240, 36, 240, 52, 240, 51, 240, 52, 240, 52, + 240, 51, 240, 52, 240, 52, 240, 51, 240, 52, 240, 52, + 240, 36, 240, 52, 240, 51, 240, 52, 240, 52, 240, 51, + 240, 52, 240, 52, 240, 51, 240, 52, 240, 52, 240, 51, + 240, 52, 240, 52, 240, 36, 240, 52, 240, 51, 240, 52, + 240, 52, 240, 51, 240, 52, 240, 52, 240, 51, 240, 52, + 240, 52, 240, 36, 240, 52, 240, 52, 240, 66, 240, 64, + 61, 24, 0, 9, 119, 236, 190, 150, 70, 133, 101, 118, + 102, 101, 133, 101, 133, 86, 134, 70, 134, 70, 134, 70, + 134, 70, 134, 70, 134, 70, 134, 70, 134, 70, 134, 70, + 134, 70, 134, 70, 134, 70, 134, 70, 134, 85, 133, 102, + 117, 102, 102, 117, 101, 134, 70, 158, 188, 232, 0, 34, + 32, 41, 21, 0, 8, 116, 156, 156, 156, 162, 54, 246, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 175, 1, 95, + 1, 95, 1, 0, 29, 48, 65, 23, 0, 9, 39, 236, + 174, 143, 1, 102, 72, 85, 118, 84, 135, 83, 150, 97, + 166, 240, 38, 240, 38, 240, 38, 240, 22, 240, 38, 240, + 22, 240, 37, 240, 37, 240, 37, 240, 37, 240, 37, 240, + 37, 240, 37, 240, 36, 240, 52, 240, 52, 240, 63, 3, + 79, 4, 79, 4, 79, 4, 95, 3, 0, 32, 16, 59, + 23, 0, 9, 55, 235, 174, 143, 1, 102, 86, 115, 134, + 113, 150, 240, 38, 240, 38, 240, 37, 240, 38, 240, 22, + 217, 232, 250, 240, 54, 240, 54, 240, 53, 240, 54, 240, + 38, 240, 38, 240, 38, 240, 38, 66, 182, 67, 150, 86, + 87, 95, 2, 127, 1, 156, 216, 0, 32, 112, 66, 25, + 0, 10, 102, 240, 55, 240, 40, 240, 40, 240, 25, 240, + 25, 244, 21, 244, 21, 228, 37, 213, 37, 212, 53, 197, + 53, 196, 69, 181, 69, 180, 85, 165, 85, 164, 101, 149, + 101, 148, 117, 143, 6, 79, 6, 79, 6, 95, 4, 240, + 37, 240, 85, 240, 85, 240, 85, 240, 85, 240, 85, 240, + 85, 0, 35, 48, 57, 23, 0, 8, 127, 143, 143, 143, + 134, 240, 38, 240, 38, 240, 38, 240, 38, 240, 38, 240, + 44, 190, 159, 135, 54, 117, 101, 116, 118, 240, 38, 240, + 38, 240, 38, 240, 38, 240, 38, 240, 38, 97, 166, 83, + 150, 69, 118, 86, 87, 111, 1, 142, 172, 231, 0, 32, + 112, 59, 24, 0, 10, 23, 235, 204, 189, 167, 97, 150, + 240, 53, 240, 53, 240, 69, 240, 69, 54, 150, 41, 118, + 27, 104, 71, 87, 102, 87, 117, 86, 134, 70, 134, 70, + 134, 70, 134, 70, 134, 70, 134, 70, 134, 85, 134, 86, + 118, 86, 102, 118, 71, 143, 158, 203, 247, 0, 34, 32, + 67, 23, 0, 8, 95, 4, 79, 4, 79, 4, 79, 4, + 79, 3, 240, 53, 240, 37, 240, 37, 240, 53, 240, 37, + 240, 37, 240, 53, 240, 37, 240, 53, 240, 38, 240, 37, + 240, 38, 240, 38, 240, 37, 240, 38, 240, 38, 240, 38, + 240, 37, 240, 38, 240, 38, 240, 38, 240, 38, 240, 38, + 240, 38, 240, 38, 0, 33, 32, 59, 24, 0, 9, 104, + 236, 191, 143, 1, 118, 102, 101, 133, 101, 133, 101, 133, + 101, 133, 101, 133, 101, 133, 117, 101, 158, 202, 206, 150, + 70, 118, 102, 101, 134, 70, 134, 70, 134, 70, 134, 70, + 134, 70, 134, 70, 134, 86, 102, 103, 71, 127, 1, 143, + 1, 172, 232, 0, 34, 32, 60, 24, 0, 9, 104, 236, + 190, 159, 1, 119, 70, 118, 102, 86, 118, 86, 133, 86, + 134, 70, 134, 70, 134, 70, 134, 70, 134, 70, 134, 70, + 134, 70, 119, 86, 103, 87, 72, 107, 22, 121, 38, 150, + 54, 240, 53, 240, 69, 240, 54, 240, 38, 146, 103, 143, + 143, 172, 247, 0, 34, 64, 21, 10, 0, 16, 38, 70, + 70, 70, 70, 70, 0, 10, 70, 70, 70, 70, 70, 70, + 0, 14, 32, 26, 10, 0, 16, 38, 70, 70, 70, 70, + 70, 0, 10, 70, 70, 70, 70, 70, 70, 84, 100, 99, + 100, 99, 0, 8, 48, 36, 10, 0, 13, 102, 70, 70, + 70, 70, 70, 240, 240, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 240, 240, 64, 29, 36, 0, 67, 95, 15, 95, + 15, 2, 79, 15, 2, 95, 15, 0, 27, 111, 15, 95, + 15, 2, 79, 15, 2, 95, 15, 0, 68, 16, 55, 22, + 0, 31, 5, 240, 38, 247, 247, 247, 240, 21, 0, 10, + 53, 240, 37, 240, 37, 240, 37, 240, 37, 240, 37, 240, + 21, 240, 37, 240, 21, 240, 22, 246, 246, 240, 22, 240, + 21, 240, 22, 240, 22, 161, 101, 131, 102, 86, 95, 2, + 110, 169, 0, 9, 48, 46, 21, 0, 8, 56, 174, 111, + 1, 85, 86, 98, 134, 81, 150, 246, 246, 231, 230, 230, + 230, 230, 245, 245, 240, 21, 240, 21, 240, 20, 240, 36, + 240, 36, 240, 36, 0, 9, 118, 246, 246, 246, 246, 246, + 0, 30, 16, 80, 30, 0, 12, 89, 240, 47, 239, 2, + 184, 102, 150, 165, 149, 107, 117, 93, 102, 63, 1, 85, + 69, 71, 85, 53, 102, 69, 69, 102, 69, 53, 133, 69, + 53, 133, 69, 53, 133, 69, 53, 133, 69, 53, 133, 69, + 53, 133, 69, 53, 133, 69, 53, 133, 69, 69, 101, 101, + 53, 101, 101, 69, 70, 102, 62, 133, 76, 150, 87, 215, + 240, 152, 134, 159, 4, 223, 240, 58, 0, 42, 64, 73, + 32, 0, 13, 40, 240, 137, 240, 138, 240, 122, 240, 107, + 240, 108, 240, 85, 22, 240, 70, 22, 240, 69, 39, 240, + 38, 54, 240, 38, 54, 240, 37, 71, 246, 86, 246, 87, + 229, 103, 214, 118, 214, 119, 197, 150, 182, 150, 191, 7, + 175, 7, 159, 8, 159, 9, 133, 214, 118, 214, 118, 215, + 101, 246, 86, 246, 86, 247, 69, 240, 38, 0, 44, 64, + 67, 29, 0, 10, 127, 2, 207, 5, 159, 6, 143, 7, + 118, 152, 102, 182, 102, 183, 86, 198, 86, 198, 86, 197, + 102, 182, 102, 167, 102, 136, 127, 5, 159, 3, 191, 6, + 134, 152, 102, 183, 86, 198, 86, 214, 70, 214, 70, 214, + 70, 214, 70, 214, 70, 199, 70, 168, 95, 9, 95, 8, + 111, 6, 143, 3, 0, 41, 32, 65, 29, 0, 12, 42, + 255, 2, 191, 3, 159, 5, 137, 117, 135, 179, 119, 225, + 103, 240, 118, 240, 134, 240, 119, 240, 118, 240, 134, 240, + 134, 240, 134, 240, 134, 240, 134, 240, 134, 240, 134, 240, + 135, 240, 134, 240, 134, 240, 135, 240, 135, 241, 104, 195, + 121, 133, 143, 6, 159, 5, 191, 1, 240, 26, 0, 41, + 67, 31, 0, 11, 95, 3, 223, 6, 175, 7, 159, 8, + 134, 153, 118, 199, 102, 214, 102, 230, 86, 230, 86, 230, + 86, 246, 70, 246, 70, 246, 70, 246, 70, 246, 70, 246, + 70, 246, 70, 246, 70, 246, 70, 246, 70, 245, 86, 230, + 86, 230, 86, 214, 102, 199, 102, 168, 127, 8, 143, 7, + 159, 6, 175, 3, 0, 44, 32, 67, 25, 0, 9, 63, + 5, 95, 6, 79, 6, 79, 6, 79, 5, 86, 240, 70, + 240, 70, 240, 70, 240, 70, 240, 70, 240, 70, 240, 79, + 4, 111, 4, 111, 4, 111, 4, 102, 240, 70, 240, 70, + 240, 70, 240, 70, 240, 70, 240, 70, 240, 70, 240, 70, + 240, 79, 6, 79, 6, 79, 6, 79, 6, 79, 6, 0, + 34, 112, 66, 24, 0, 9, 15, 5, 79, 5, 79, 5, + 79, 5, 79, 5, 70, 240, 54, 240, 54, 240, 54, 240, + 54, 240, 54, 240, 54, 240, 54, 240, 63, 3, 111, 3, + 111, 3, 111, 3, 102, 240, 54, 240, 54, 240, 54, 240, + 54, 240, 54, 240, 54, 240, 54, 240, 54, 240, 54, 240, + 54, 240, 54, 240, 54, 0, 35, 32, 66, 29, 0, 12, + 26, 240, 31, 1, 191, 5, 143, 6, 120, 134, 104, 179, + 118, 226, 103, 240, 118, 240, 134, 240, 118, 240, 134, 240, + 134, 240, 134, 240, 134, 240, 134, 240, 134, 154, 70, 154, + 70, 154, 71, 138, 86, 198, 86, 198, 87, 182, 103, 166, + 104, 150, 121, 118, 143, 6, 159, 5, 191, 1, 240, 26, + 0, 41, 67, 30, 0, 11, 38, 230, 70, 230, 70, 230, + 70, 230, 70, 230, 70, 230, 70, 230, 70, 230, 70, 230, + 70, 230, 70, 230, 70, 230, 79, 11, 79, 11, 79, 11, + 79, 11, 70, 230, 70, 230, 70, 230, 70, 230, 70, 230, + 70, 230, 70, 230, 70, 230, 70, 230, 70, 230, 70, 230, + 70, 230, 70, 230, 70, 230, 0, 41, 96, 36, 10, 240, + 246, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 0, 14, 32, 39, 20, 0, + 8, 102, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 66, 134, 68, 87, 79, 94, 124, 183, 0, 28, 80, + 69, 31, 0, 11, 86, 230, 86, 215, 86, 199, 102, 183, + 118, 167, 134, 151, 150, 135, 166, 119, 182, 103, 198, 87, + 214, 71, 230, 55, 246, 39, 240, 22, 24, 240, 31, 1, + 255, 2, 234, 23, 217, 54, 216, 86, 199, 103, 182, 135, + 166, 150, 166, 151, 150, 167, 134, 183, 118, 198, 118, 199, + 102, 215, 86, 231, 70, 246, 0, 43, 16, 67, 23, 0, + 8, 86, 240, 38, 240, 38, 240, 38, 240, 38, 240, 38, + 240, 38, 240, 38, 240, 38, 240, 38, 240, 38, 240, 38, + 240, 38, 240, 38, 240, 38, 240, 38, 240, 38, 240, 38, + 240, 38, 240, 38, 240, 38, 240, 38, 240, 38, 240, 38, + 240, 38, 240, 38, 240, 47, 4, 79, 4, 79, 4, 79, + 3, 0, 32, 32, 110, 39, 0, 14, 88, 240, 72, 73, + 240, 41, 73, 240, 41, 74, 250, 74, 250, 75, 219, 75, + 219, 70, 20, 212, 22, 70, 21, 181, 22, 70, 21, 181, + 22, 70, 37, 149, 38, 70, 37, 149, 38, 70, 37, 148, + 54, 70, 53, 117, 54, 70, 53, 117, 54, 70, 69, 85, + 70, 70, 69, 85, 70, 70, 69, 84, 86, 70, 85, 53, + 86, 70, 85, 53, 86, 70, 101, 36, 102, 70, 101, 21, + 102, 70, 101, 20, 118, 70, 116, 20, 118, 70, 121, 118, + 70, 135, 134, 70, 135, 134, 70, 134, 150, 70, 149, 150, + 70, 240, 134, 0, 54, 16, 85, 31, 0, 11, 89, 198, + 74, 182, 74, 182, 75, 166, 75, 166, 76, 150, 70, 21, + 150, 70, 22, 134, 70, 37, 134, 70, 37, 134, 70, 53, + 118, 70, 53, 118, 70, 69, 102, 70, 69, 102, 70, 85, + 86, 70, 85, 86, 70, 101, 70, 70, 101, 70, 70, 117, + 54, 70, 117, 54, 70, 133, 38, 70, 133, 38, 70, 134, + 22, 70, 149, 22, 70, 156, 70, 171, 70, 171, 70, 186, + 70, 186, 70, 201, 0, 43, 16, 78, 32, 0, 13, 41, + 240, 94, 240, 31, 3, 215, 103, 182, 166, 150, 198, 133, + 229, 118, 230, 102, 230, 101, 240, 21, 86, 240, 22, 70, + 240, 22, 70, 240, 22, 70, 240, 22, 70, 240, 22, 70, + 240, 22, 70, 240, 22, 70, 240, 22, 70, 240, 22, 70, + 240, 22, 86, 230, 102, 230, 103, 214, 118, 198, 135, 167, + 152, 104, 191, 5, 223, 3, 240, 30, 240, 90, 0, 45, + 80, 66, 28, 0, 10, 79, 2, 191, 5, 143, 6, 127, + 7, 102, 152, 86, 182, 86, 198, 70, 198, 70, 198, 70, + 198, 70, 198, 70, 198, 70, 198, 70, 182, 86, 152, 95, + 7, 111, 5, 143, 2, 182, 240, 118, 240, 118, 240, 118, + 240, 118, 240, 118, 240, 118, 240, 118, 240, 118, 240, 118, + 240, 118, 240, 118, 0, 41, 32, 92, 32, 0, 13, 41, + 240, 94, 240, 31, 3, 215, 103, 182, 166, 150, 198, 134, + 198, 118, 230, 102, 230, 101, 240, 21, 86, 240, 22, 70, + 240, 22, 70, 240, 22, 70, 240, 22, 70, 240, 22, 70, + 240, 22, 70, 240, 22, 70, 240, 22, 70, 240, 22, 70, + 240, 22, 85, 240, 22, 86, 85, 70, 102, 86, 54, 118, + 86, 38, 118, 93, 150, 91, 183, 74, 207, 3, 255, 2, + 240, 62, 240, 183, 240, 183, 240, 167, 240, 183, 240, 167, + 0, 24, 96, 66, 28, 0, 10, 79, 2, 191, 5, 143, + 7, 111, 7, 102, 152, 86, 183, 70, 198, 70, 198, 70, + 198, 70, 198, 70, 198, 70, 182, 86, 167, 95, 7, 111, + 5, 143, 3, 166, 87, 166, 102, 166, 103, 150, 118, 150, + 134, 134, 134, 134, 150, 118, 151, 102, 166, 102, 167, 86, + 182, 86, 183, 70, 198, 70, 213, 0, 39, 58, 25, 0, + 10, 25, 237, 175, 2, 143, 2, 127, 3, 119, 101, 102, + 163, 102, 177, 118, 240, 70, 240, 71, 240, 57, 240, 45, + 223, 191, 191, 206, 240, 25, 240, 56, 240, 55, 240, 70, + 240, 70, 66, 214, 68, 167, 71, 103, 95, 5, 95, 4, + 127, 3, 158, 233, 0, 35, 80, 67, 32, 0, 12, 31, + 11, 95, 13, 79, 13, 79, 13, 95, 11, 240, 22, 240, + 182, 240, 182, 240, 182, 240, 182, 240, 182, 240, 182, 240, + 182, 240, 182, 240, 182, 240, 182, 240, 182, 240, 182, 240, + 182, 240, 182, 240, 182, 240, 182, 240, 182, 240, 182, 240, + 182, 240, 182, 240, 182, 240, 182, 240, 182, 240, 182, 0, + 45, 112, 66, 29, 0, 10, 118, 214, 70, 214, 70, 214, + 70, 214, 70, 214, 70, 214, 70, 214, 70, 214, 70, 214, + 70, 214, 70, 214, 70, 214, 70, 214, 70, 214, 70, 214, + 70, 214, 70, 214, 70, 214, 70, 214, 70, 214, 70, 214, + 70, 214, 70, 214, 86, 182, 103, 151, 119, 119, 143, 6, + 159, 4, 207, 240, 41, 0, 41, 48, 76, 33, 0, 12, + 54, 240, 53, 71, 240, 22, 86, 240, 22, 87, 246, 87, + 230, 118, 230, 119, 213, 135, 198, 150, 198, 151, 166, 182, + 166, 182, 166, 183, 134, 214, 134, 215, 118, 215, 102, 246, + 102, 247, 85, 240, 23, 70, 240, 38, 70, 240, 39, 53, + 240, 70, 38, 240, 70, 38, 240, 71, 21, 240, 108, 240, + 108, 240, 107, 240, 138, 240, 137, 240, 168, 0, 47, 16, + 116, 47, 0, 17, 85, 215, 213, 70, 199, 213, 70, 185, + 181, 101, 185, 181, 102, 169, 181, 102, 170, 165, 102, 149, + 21, 149, 133, 149, 21, 149, 134, 133, 21, 149, 134, 117, + 38, 118, 134, 117, 38, 117, 165, 117, 53, 117, 166, 100, + 69, 117, 166, 85, 70, 85, 197, 85, 85, 85, 198, 69, + 85, 85, 198, 68, 101, 85, 198, 53, 102, 53, 229, 53, + 117, 53, 230, 37, 117, 53, 230, 36, 134, 22, 230, 21, + 134, 21, 240, 21, 21, 149, 21, 240, 27, 149, 21, 240, + 26, 170, 240, 57, 170, 240, 57, 185, 240, 56, 201, 240, + 56, 200, 240, 87, 215, 0, 66, 16, 71, 33, 0, 12, + 71, 199, 120, 183, 135, 167, 167, 135, 184, 104, 200, 87, + 231, 71, 240, 23, 39, 240, 40, 23, 240, 62, 240, 92, + 240, 122, 240, 153, 240, 152, 240, 183, 240, 169, 240, 138, + 240, 124, 240, 109, 240, 71, 23, 240, 39, 55, 247, 71, + 247, 87, 215, 119, 183, 136, 152, 152, 135, 183, 119, 200, + 87, 232, 71, 247, 0, 45, 112, 70, 34, 0, 12, 103, + 240, 38, 87, 246, 104, 215, 119, 199, 151, 182, 168, 151, + 183, 135, 215, 118, 232, 87, 248, 55, 240, 39, 54, 240, + 56, 23, 240, 78, 240, 108, 240, 138, 240, 154, 240, 168, + 240, 198, 240, 214, 240, 214, 240, 214, 240, 214, 240, 214, + 240, 214, 240, 214, 240, 214, 240, 214, 240, 214, 240, 214, + 240, 214, 0, 48, 96, 67, 28, 0, 10, 95, 8, 95, + 8, 95, 8, 95, 8, 240, 87, 240, 87, 240, 87, 240, + 103, 240, 87, 240, 87, 240, 87, 240, 103, 240, 87, 240, + 87, 240, 88, 240, 87, 240, 87, 240, 87, 240, 103, 240, + 87, 240, 87, 240, 87, 240, 103, 240, 87, 240, 87, 240, + 111, 8, 79, 9, 79, 9, 79, 9, 79, 9, 0, 39, + 47, 14, 10, 74, 74, 70, 134, 134, 134, 134, 134, 134, + 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, + 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, + 134, 134, 134, 134, 134, 134, 134, 138, 74, 74, 64, 26, + 20, 0, 7, 115, 115, 100, 100, 84, 100, 100, 100, 86, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 0, + 78, 47, 14, 10, 74, 74, 134, 134, 134, 134, 134, 134, + 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, + 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, + 134, 134, 134, 134, 134, 134, 134, 134, 74, 74, 74, 64, + 17, 18, 0, 7, 37, 199, 184, 148, 21, 116, 53, 84, + 99, 83, 131, 0, 77, 11, 10, 240, 246, 70, 70, 70, + 70, 0, 45, 64, 17, 10, 240, 240, 51, 100, 84, 100, + 86, 70, 70, 70, 70, 70, 0, 39, 32, 43, 23, 0, + 38, 25, 190, 143, 1, 117, 86, 115, 134, 98, 150, 240, + 38, 240, 38, 203, 143, 103, 70, 86, 102, 70, 118, 70, + 118, 70, 118, 70, 103, 86, 72, 91, 22, 105, 38, 133, + 85, 0, 32, 16, 67, 24, 0, 9, 6, 240, 54, 240, + 54, 240, 54, 240, 54, 240, 54, 240, 54, 240, 54, 240, + 54, 240, 54, 240, 54, 54, 150, 26, 127, 3, 103, 87, + 86, 118, 86, 134, 70, 134, 70, 134, 70, 134, 70, 134, + 70, 134, 70, 134, 70, 134, 70, 134, 70, 118, 86, 118, + 87, 86, 111, 3, 102, 25, 149, 38, 0, 34, 32, 41, + 22, 0, 36, 73, 189, 143, 102, 100, 86, 130, 101, 240, + 22, 240, 22, 240, 22, 240, 22, 240, 22, 240, 22, 240, + 22, 240, 22, 240, 38, 161, 86, 131, 102, 85, 127, 141, + 184, 0, 31, 32, 66, 24, 0, 10, 102, 240, 54, 240, + 54, 240, 54, 240, 54, 240, 54, 240, 54, 240, 54, 240, + 54, 240, 54, 166, 38, 122, 22, 111, 3, 102, 87, 86, + 118, 86, 118, 70, 134, 70, 134, 70, 134, 70, 134, 70, + 134, 70, 134, 70, 134, 70, 134, 86, 118, 86, 118, 87, + 72, 111, 3, 122, 22, 150, 68, 0, 33, 80, 42, 24, + 0, 39, 119, 237, 175, 135, 70, 102, 117, 102, 133, 85, + 149, 70, 149, 70, 149, 79, 5, 79, 5, 70, 240, 54, + 240, 54, 240, 70, 193, 86, 163, 103, 101, 127, 2, 142, + 216, 0, 34, 16, 38, 19, 0, 8, 7, 155, 124, 118, + 66, 102, 214, 214, 214, 214, 214, 188, 124, 124, 150, 214, + 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, + 214, 214, 214, 0, 27, 64, 58, 25, 0, 41, 56, 67, + 143, 2, 127, 3, 102, 69, 150, 101, 134, 101, 134, 101, + 134, 101, 134, 101, 134, 101, 150, 69, 190, 188, 194, 40, + 211, 240, 127, 175, 2, 159, 2, 143, 2, 111, 5, 85, + 165, 69, 196, 69, 196, 70, 180, 86, 133, 127, 3, 143, + 203, 0, 10, 64, 67, 23, 0, 8, 86, 240, 38, 240, + 38, 240, 38, 240, 38, 240, 38, 240, 38, 240, 38, 240, + 38, 240, 38, 240, 38, 70, 118, 42, 86, 27, 89, 55, + 71, 102, 71, 102, 70, 118, 70, 118, 70, 118, 70, 118, + 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, + 70, 118, 70, 118, 70, 118, 70, 118, 0, 32, 16, 34, + 10, 240, 246, 70, 70, 70, 70, 70, 240, 240, 230, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 0, 14, 32, 44, 17, 0, + 7, 38, 167, 167, 167, 167, 182, 0, 9, 118, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 81, 71, 76, 92, + 106, 150, 0, 7, 48, 61, 22, 0, 8, 37, 240, 37, + 240, 37, 240, 37, 240, 37, 240, 37, 240, 37, 240, 37, + 240, 37, 240, 37, 240, 37, 118, 69, 103, 69, 86, 101, + 70, 117, 39, 133, 23, 156, 171, 187, 188, 172, 173, 150, + 38, 133, 55, 117, 70, 117, 86, 101, 102, 85, 103, 69, + 118, 69, 133, 0, 30, 96, 36, 10, 240, 246, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 0, 14, 32, 67, 36, 0, 58, 70, 70, + 118, 118, 42, 58, 86, 27, 43, 86, 18, 58, 55, 71, + 103, 102, 71, 103, 102, 70, 118, 118, 70, 118, 118, 70, + 118, 118, 70, 118, 118, 70, 118, 118, 70, 118, 118, 70, + 118, 118, 70, 118, 118, 70, 118, 118, 70, 118, 118, 70, + 118, 118, 70, 118, 118, 70, 118, 118, 70, 118, 118, 0, + 50, 47, 23, 0, 37, 54, 70, 118, 42, 86, 27, 89, + 55, 71, 102, 71, 102, 70, 118, 70, 118, 70, 118, 70, + 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, + 118, 70, 118, 70, 118, 70, 118, 70, 118, 0, 32, 16, + 42, 25, 0, 41, 72, 237, 191, 150, 86, 118, 118, 101, + 149, 101, 150, 70, 150, 70, 150, 70, 150, 70, 150, 70, + 150, 70, 150, 70, 150, 86, 133, 102, 118, 118, 86, 143, + 1, 189, 233, 0, 35, 80, 62, 24, 0, 39, 21, 54, + 150, 26, 127, 3, 103, 87, 86, 118, 86, 119, 70, 134, + 70, 134, 70, 134, 70, 134, 70, 134, 70, 134, 70, 134, + 70, 134, 70, 118, 86, 118, 87, 86, 111, 3, 102, 25, + 134, 38, 166, 240, 54, 240, 54, 240, 54, 240, 54, 240, + 54, 240, 54, 240, 54, 0, 11, 32, 63, 24, 0, 39, + 102, 38, 137, 22, 111, 3, 102, 72, 86, 103, 86, 118, + 70, 134, 70, 134, 70, 134, 70, 134, 70, 134, 70, 134, + 70, 134, 70, 134, 86, 118, 86, 103, 102, 72, 111, 3, + 122, 22, 150, 54, 240, 54, 240, 54, 240, 54, 240, 54, + 240, 54, 240, 54, 240, 54, 240, 54, 0, 9, 64, 31, + 17, 0, 27, 86, 67, 70, 37, 70, 22, 70, 22, 74, + 120, 151, 166, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 0, 24, 96, 32, 19, 0, 31, 56, 156, + 109, 85, 84, 84, 130, 84, 245, 233, 187, 140, 140, 155, + 199, 229, 66, 148, 67, 132, 69, 85, 78, 108, 167, 0, + 27, 16, 35, 20, 0, 17, 118, 230, 230, 230, 230, 230, + 206, 95, 94, 150, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 81, 135, 50, 156, 139, 167, 0, 28, + 64, 47, 23, 0, 37, 54, 118, 70, 118, 70, 118, 70, + 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, + 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, + 103, 71, 72, 91, 22, 105, 38, 119, 68, 0, 32, 32, + 42, 23, 0, 37, 53, 164, 69, 149, 70, 133, 85, 117, + 101, 117, 102, 101, 117, 85, 133, 85, 133, 85, 149, 53, + 165, 53, 165, 53, 166, 21, 197, 21, 197, 21, 203, 217, + 233, 233, 247, 0, 32, 112, 66, 34, 0, 55, 37, 132, + 148, 69, 117, 133, 70, 102, 117, 85, 102, 101, 101, 102, + 101, 101, 87, 101, 102, 72, 70, 117, 72, 69, 133, 67, + 20, 69, 134, 36, 21, 53, 149, 35, 37, 37, 165, 35, + 37, 37, 165, 20, 52, 37, 170, 53, 21, 184, 74, 200, + 74, 200, 89, 199, 105, 214, 104, 229, 135, 0, 47, 112, + 44, 23, 0, 37, 53, 133, 86, 102, 102, 85, 134, 54, + 150, 22, 181, 21, 202, 232, 240, 23, 240, 37, 240, 38, + 240, 39, 249, 213, 21, 181, 38, 165, 53, 149, 85, 117, + 117, 86, 118, 69, 149, 0, 32, 16, 55, 23, 0, 37, + 53, 149, 69, 149, 85, 118, 85, 117, 102, 101, 117, 86, + 118, 69, 149, 69, 150, 37, 181, 37, 181, 37, 202, 218, + 233, 232, 248, 240, 23, 240, 22, 240, 53, 240, 53, 240, + 52, 240, 53, 240, 53, 178, 69, 202, 218, 216, 240, 22, + 0, 10, 80, 33, 22, 0, 35, 127, 2, 95, 2, 95, + 2, 246, 246, 247, 246, 246, 246, 247, 231, 246, 246, 246, + 247, 246, 246, 255, 3, 79, 3, 79, 3, 0, 30, 96, + 13, 28, 0, 66, 79, 9, 79, 9, 79, 9, 0, 77, + 64, 21, 51, 0, 121, 31, 15, 15, 2, 79, 15, 15, + 2, 79, 15, 15, 2, 0, 127, 0, 13, 96, 21, 19, + 0, 7, 38, 38, 85, 53, 101, 53, 85, 68, 100, 69, + 100, 68, 115, 83, 0, 81, 96, 19, 20, 0, 7, 116, + 99, 103, 67, 90, 20, 68, 26, 83, 72, 83, 100, 0, + 88, 48, +}; + +//***************************************************************************** +// +// The font definition for the 44 point Cmss bold font. +// +//***************************************************************************** +const tFont g_sFontCmss44b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 46, + + // + // The height of the font. + // + 44, + + // + // The baseline of the font. + // + 33, + + // + // The offset to each character in the font. + // + { + 0, 4, 39, 66, 186, 253, 370, 451, + 467, 514, 561, 609, 708, 726, 736, 749, + 840, 901, 942, 1007, 1066, 1132, 1189, 1248, + 1315, 1374, 1434, 1455, 1481, 1517, 1546, 1601, + 1647, 1727, 1800, 1867, 1932, 1999, 2066, 2132, + 2198, 2265, 2301, 2340, 2409, 2476, 2586, 2671, + 2749, 2815, 2907, 2973, 3031, 3098, 3164, 3240, + 3356, 3427, 3497, 3564, 3611, 3637, 3684, 3701, + 3712, 3729, 3772, 3839, 3880, 3946, 3988, 4026, + 4084, 4151, 4185, 4229, 4290, 4326, 4393, 4440, + 4482, 4544, 4607, 4638, 4670, 4705, 4752, 4794, + 4860, 4904, 4959, 4992, 5005, 5026, 5047, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss44bData +}; diff --git a/grlib/fonts/fontcmss44i.c b/grlib/fonts/fontcmss44i.c new file mode 100644 index 0000000..f04a5f3 --- /dev/null +++ b/grlib/fonts/fontcmss44i.c @@ -0,0 +1,549 @@ +//***************************************************************************** +// +// fontcmss44i.c - Font definition for the 44pt Cmss italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 44 point +// Bold: no +// Italic: yes +// Memory usage: 5528 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 44 point Cmss italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss44iData[5328] = +{ + 4, 18, 0, 99, 37, 14, 240, 240, 68, 164, 163, 179, + 179, 164, 164, 163, 179, 179, 164, 163, 179, 179, 179, 179, + 163, 179, 179, 179, 179, 163, 179, 179, 0, 6, 67, 164, + 164, 164, 0, 20, 64, 24, 17, 240, 240, 99, 83, 99, + 83, 84, 68, 83, 83, 114, 98, 98, 98, 114, 98, 113, + 113, 114, 98, 0, 71, 120, 36, 0, 11, 50, 129, 240, + 162, 129, 240, 146, 130, 240, 146, 129, 240, 146, 130, 240, + 146, 129, 240, 161, 130, 240, 146, 129, 240, 161, 130, 240, + 146, 130, 240, 145, 130, 240, 146, 130, 240, 145, 130, 240, + 146, 130, 240, 145, 130, 239, 15, 111, 15, 242, 130, 240, + 146, 129, 240, 161, 130, 240, 146, 129, 240, 161, 130, 240, + 146, 130, 255, 15, 111, 15, 226, 129, 240, 146, 130, 240, + 146, 129, 240, 146, 130, 240, 146, 129, 240, 146, 130, 240, + 146, 129, 240, 161, 130, 240, 146, 129, 240, 161, 130, 240, + 146, 130, 240, 145, 130, 240, 146, 130, 240, 145, 130, 240, + 161, 130, 0, 11, 112, 77, 24, 210, 240, 114, 240, 86, + 240, 26, 220, 180, 18, 36, 163, 50, 66, 147, 51, 243, + 51, 227, 66, 243, 66, 243, 51, 243, 51, 244, 35, 245, + 18, 240, 40, 240, 26, 240, 25, 240, 39, 240, 34, 21, + 240, 18, 36, 243, 51, 243, 51, 242, 67, 242, 67, 227, + 66, 243, 51, 129, 99, 35, 146, 82, 51, 148, 50, 20, + 173, 218, 240, 22, 240, 82, 240, 114, 0, 29, 108, 31, + 100, 240, 17, 150, 226, 135, 210, 131, 36, 193, 131, 67, + 177, 147, 67, 162, 131, 83, 146, 147, 83, 145, 148, 83, + 130, 147, 99, 114, 163, 83, 114, 179, 83, 113, 195, 67, + 114, 195, 67, 98, 212, 35, 98, 247, 113, 240, 37, 114, + 240, 210, 240, 210, 101, 240, 49, 103, 240, 18, 83, 36, + 226, 83, 67, 210, 99, 67, 209, 99, 83, 194, 99, 83, + 178, 115, 83, 162, 115, 99, 161, 131, 84, 146, 131, 83, + 146, 147, 83, 130, 163, 67, 145, 179, 67, 130, 180, 35, + 130, 215, 130, 230, 145, 240, 20, 0, 32, 32, 85, 32, + 0, 9, 100, 240, 183, 240, 153, 240, 116, 36, 240, 115, + 67, 240, 99, 83, 240, 99, 83, 240, 98, 99, 240, 83, + 83, 240, 99, 68, 240, 99, 52, 240, 115, 36, 240, 131, + 20, 240, 151, 240, 165, 195, 196, 195, 197, 179, 198, 179, + 164, 20, 147, 164, 36, 132, 147, 84, 115, 147, 100, 99, + 163, 101, 67, 163, 132, 51, 179, 152, 195, 151, 212, 149, + 229, 104, 237, 27, 138, 74, 151, 135, 0, 44, 112, 14, + 9, 240, 83, 99, 84, 83, 114, 98, 114, 113, 114, 0, + 38, 78, 19, 210, 243, 243, 240, 18, 240, 19, 243, 243, + 240, 19, 243, 243, 240, 19, 243, 240, 19, 240, 19, 243, + 240, 19, 244, 243, 240, 19, 240, 19, 243, 240, 19, 240, + 19, 240, 19, 240, 19, 243, 240, 19, 240, 19, 240, 19, + 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, + 240, 19, 240, 34, 240, 35, 240, 19, 240, 19, 240, 35, + 240, 19, 240, 35, 240, 19, 208, 79, 19, 146, 240, 35, + 240, 35, 240, 19, 240, 35, 240, 19, 240, 19, 240, 35, + 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, + 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 243, 240, + 19, 240, 19, 240, 19, 240, 19, 244, 243, 240, 19, 240, + 19, 243, 240, 19, 244, 243, 240, 19, 243, 240, 19, 243, + 240, 18, 240, 19, 243, 243, 240, 18, 240, 19, 243, 242, + 240, 32, 42, 21, 147, 240, 51, 240, 50, 240, 51, 194, + 67, 66, 100, 35, 36, 101, 18, 36, 140, 184, 229, 232, + 188, 132, 34, 21, 100, 35, 36, 98, 67, 66, 195, 240, + 50, 240, 51, 240, 66, 0, 67, 32, 68, 32, 0, 34, + 2, 240, 241, 240, 240, 17, 240, 242, 240, 242, 240, 242, + 240, 241, 240, 240, 17, 240, 242, 240, 242, 240, 242, 240, + 241, 240, 242, 240, 47, 13, 79, 13, 240, 34, 240, 241, + 240, 240, 17, 240, 242, 240, 242, 240, 241, 240, 240, 17, + 240, 242, 240, 242, 240, 242, 240, 241, 240, 240, 17, 240, + 242, 0, 34, 64, 17, 9, 0, 32, 115, 99, 84, 83, + 114, 114, 98, 114, 113, 114, 0, 6, 64, 10, 16, 0, + 44, 12, 76, 76, 0, 38, 64, 11, 8, 0, 29, 19, + 68, 68, 67, 0, 11, 80, 92, 29, 240, 145, 240, 194, + 240, 178, 240, 194, 240, 178, 240, 194, 240, 178, 240, 193, + 240, 194, 240, 193, 240, 194, 240, 178, 240, 194, 240, 178, + 240, 194, 240, 178, 240, 193, 240, 194, 240, 193, 240, 194, + 240, 178, 240, 194, 240, 178, 240, 194, 240, 178, 240, 193, + 240, 194, 240, 193, 240, 194, 240, 193, 240, 194, 240, 178, + 240, 194, 240, 178, 240, 193, 240, 194, 240, 193, 240, 194, + 240, 193, 240, 194, 240, 178, 240, 194, 240, 178, 240, 193, + 240, 208, 61, 23, 0, 12, 101, 240, 25, 219, 180, 68, + 163, 116, 132, 131, 131, 147, 115, 163, 115, 163, 99, 179, + 99, 179, 99, 179, 83, 180, 83, 179, 99, 179, 99, 179, + 99, 164, 83, 179, 99, 179, 99, 164, 99, 163, 115, 163, + 115, 147, 131, 132, 132, 100, 164, 68, 187, 217, 240, 21, + 0, 33, 48, 42, 19, 0, 11, 18, 244, 153, 169, 164, + 20, 244, 244, 243, 240, 19, 244, 244, 243, 240, 19, 244, + 244, 244, 243, 240, 19, 244, 244, 243, 240, 19, 240, 19, + 244, 244, 243, 174, 94, 94, 0, 26, 96, 63, 24, 0, + 13, 38, 240, 26, 220, 180, 84, 163, 132, 146, 163, 131, + 163, 130, 179, 145, 179, 240, 99, 240, 98, 240, 99, 240, + 83, 240, 99, 240, 83, 240, 83, 240, 83, 240, 82, 240, + 83, 240, 83, 240, 83, 240, 82, 240, 98, 240, 83, 240, + 83, 240, 83, 240, 95, 2, 127, 1, 143, 1, 0, 34, + 60, 24, 0, 13, 54, 240, 25, 235, 196, 84, 163, 116, + 162, 147, 161, 163, 240, 84, 240, 83, 240, 84, 240, 68, + 240, 68, 248, 240, 22, 240, 56, 240, 100, 240, 99, 240, + 115, 240, 99, 240, 99, 240, 99, 240, 99, 113, 195, 129, + 180, 116, 132, 149, 84, 188, 218, 240, 22, 0, 34, 80, + 64, 23, 0, 13, 52, 240, 53, 240, 37, 240, 38, 240, + 34, 19, 240, 23, 243, 20, 227, 35, 243, 35, 227, 51, + 211, 52, 196, 52, 195, 67, 195, 83, 179, 99, 164, 84, + 163, 99, 163, 115, 147, 131, 159, 3, 79, 4, 79, 4, + 243, 240, 83, 240, 68, 240, 68, 240, 67, 240, 83, 240, + 68, 0, 32, 112, 58, 25, 0, 13, 62, 189, 205, 180, + 240, 100, 240, 99, 240, 115, 240, 115, 240, 100, 240, 99, + 240, 115, 37, 251, 236, 198, 67, 196, 100, 179, 131, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 100, 240, 99, 240, + 115, 146, 163, 148, 131, 180, 85, 189, 218, 240, 38, 0, + 36, 32, 60, 23, 0, 13, 6, 249, 202, 197, 81, 180, + 240, 52, 240, 52, 240, 52, 240, 67, 240, 68, 69, 163, + 56, 147, 26, 135, 68, 133, 116, 116, 147, 100, 163, 100, + 163, 100, 163, 99, 179, 99, 164, 99, 163, 115, 163, 115, + 147, 131, 147, 132, 115, 164, 68, 187, 217, 240, 21, 0, + 33, 48, 64, 23, 0, 11, 111, 2, 95, 3, 95, 3, + 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, + 240, 83, 240, 67, 240, 67, 240, 68, 240, 67, 240, 67, + 240, 68, 240, 67, 240, 68, 240, 67, 240, 68, 240, 67, + 240, 68, 240, 67, 240, 83, 240, 68, 240, 67, 240, 83, + 240, 68, 240, 68, 0, 34, 56, 23, 0, 12, 102, 249, + 219, 165, 84, 147, 131, 131, 147, 131, 147, 115, 163, 115, + 163, 115, 147, 147, 116, 148, 84, 186, 246, 250, 180, 84, + 148, 115, 147, 147, 115, 163, 115, 163, 99, 179, 99, 179, + 99, 163, 115, 148, 116, 116, 148, 84, 172, 202, 245, 0, + 33, 48, 60, 24, 0, 13, 53, 240, 41, 220, 180, 84, + 164, 116, 132, 147, 131, 163, 115, 179, 115, 179, 114, 195, + 99, 195, 99, 195, 99, 180, 99, 180, 99, 164, 116, 133, + 117, 87, 139, 19, 153, 36, 166, 68, 240, 68, 240, 83, + 240, 84, 240, 68, 240, 68, 178, 85, 188, 217, 240, 22, + 0, 35, 17, 12, 0, 21, 68, 132, 131, 147, 0, 17, + 35, 147, 132, 132, 0, 17, 64, 23, 13, 0, 23, 52, + 148, 148, 147, 0, 18, 100, 147, 163, 148, 163, 162, 163, + 162, 178, 162, 0, 9, 64, 37, 14, 0, 18, 36, 164, + 164, 163, 0, 8, 35, 179, 179, 163, 179, 179, 179, 179, + 163, 179, 179, 179, 179, 164, 163, 179, 179, 164, 164, 163, + 179, 179, 164, 164, 240, 240, 128, 17, 33, 0, 70, 63, + 12, 111, 12, 0, 25, 47, 12, 111, 12, 0, 70, 112, + 39, 18, 0, 23, 100, 227, 243, 228, 0, 10, 99, 242, + 243, 243, 243, 227, 243, 227, 243, 227, 228, 212, 212, 227, + 227, 243, 227, 243, 243, 243, 146, 68, 85, 93, 91, 150, + 240, 240, 240, 50, 19, 240, 240, 215, 171, 109, 100, 100, + 82, 147, 240, 19, 240, 19, 240, 19, 243, 240, 19, 243, + 244, 228, 227, 243, 243, 240, 19, 243, 240, 19, 243, 240, + 19, 240, 19, 240, 18, 240, 19, 0, 9, 3, 240, 19, + 240, 19, 244, 0, 28, 82, 28, 0, 8, 102, 240, 75, + 240, 29, 214, 85, 181, 132, 164, 85, 19, 148, 90, 132, + 91, 116, 83, 69, 115, 83, 85, 99, 83, 116, 99, 83, + 116, 83, 83, 132, 83, 83, 132, 83, 83, 132, 67, 83, + 147, 83, 83, 147, 83, 83, 132, 83, 83, 131, 99, 83, + 131, 99, 83, 115, 115, 84, 84, 116, 84, 52, 147, 90, + 164, 88, 180, 101, 229, 240, 150, 116, 207, 236, 240, 55, + 0, 40, 32, 81, 29, 0, 9, 52, 240, 149, 240, 149, + 240, 135, 240, 119, 240, 99, 20, 240, 99, 35, 240, 83, + 51, 240, 82, 67, 240, 67, 67, 240, 51, 84, 240, 35, + 84, 240, 19, 100, 240, 19, 100, 243, 116, 243, 116, 227, + 147, 227, 148, 195, 164, 207, 2, 191, 3, 175, 4, 163, + 196, 148, 196, 147, 227, 132, 228, 115, 244, 99, 240, 20, + 99, 240, 20, 83, 240, 36, 68, 240, 36, 0, 40, 48, + 65, 29, 0, 8, 29, 240, 31, 212, 134, 180, 164, 179, + 196, 163, 211, 148, 211, 148, 211, 147, 211, 163, 211, 163, + 195, 164, 164, 180, 133, 207, 238, 255, 1, 196, 149, 180, + 180, 163, 211, 163, 212, 147, 227, 132, 227, 132, 227, 131, + 243, 131, 227, 132, 227, 132, 211, 148, 180, 164, 149, 191, + 1, 207, 0, 41, 80, 65, 28, 0, 8, 88, 240, 46, + 222, 213, 100, 181, 177, 164, 240, 147, 240, 147, 240, 148, + 240, 147, 240, 147, 240, 163, 240, 147, 240, 163, 240, 163, + 240, 147, 240, 163, 240, 163, 240, 163, 240, 163, 240, 163, + 240, 163, 240, 164, 240, 163, 240, 163, 240, 164, 240, 164, + 178, 197, 116, 207, 252, 240, 55, 0, 40, 32, 81, 30, + 0, 8, 46, 240, 31, 1, 212, 149, 196, 180, 180, 195, + 179, 227, 163, 227, 148, 228, 132, 243, 131, 240, 19, 131, + 240, 19, 131, 240, 19, 116, 240, 19, 116, 240, 19, 115, + 240, 35, 115, 240, 35, 100, 240, 19, 116, 240, 19, 116, + 240, 19, 115, 240, 34, 131, 240, 19, 116, 240, 19, 116, + 243, 132, 227, 147, 243, 147, 227, 148, 211, 164, 180, 180, + 148, 223, 1, 237, 0, 43, 48, 69, 29, 0, 8, 15, + 4, 175, 4, 175, 3, 179, 240, 164, 240, 164, 240, 164, + 240, 164, 240, 163, 240, 164, 240, 164, 240, 164, 240, 164, + 240, 163, 240, 175, 3, 191, 3, 191, 2, 196, 240, 148, + 240, 164, 240, 164, 240, 164, 240, 163, 240, 164, 240, 164, + 240, 164, 240, 164, 240, 163, 240, 175, 4, 175, 4, 175, + 4, 0, 41, 16, 68, 28, 0, 7, 111, 3, 175, 3, + 175, 3, 163, 240, 148, 240, 148, 240, 148, 240, 147, 240, + 163, 240, 148, 240, 148, 240, 148, 240, 147, 240, 163, 240, + 159, 1, 207, 1, 207, 1, 195, 240, 148, 240, 148, 240, + 148, 240, 148, 240, 147, 240, 148, 240, 148, 240, 148, 240, + 148, 240, 147, 240, 148, 240, 148, 240, 148, 0, 41, 64, + 66, 28, 0, 8, 88, 240, 60, 239, 197, 101, 180, 162, + 179, 240, 147, 240, 147, 240, 148, 240, 147, 240, 147, 240, + 163, 240, 147, 240, 163, 240, 163, 240, 147, 240, 163, 240, + 163, 240, 163, 153, 115, 153, 115, 153, 115, 227, 131, 227, + 147, 211, 147, 211, 148, 180, 164, 163, 182, 116, 207, 1, + 236, 240, 55, 0, 40, 32, 69, 32, 0, 8, 100, 228, + 164, 227, 180, 227, 179, 228, 164, 228, 164, 228, 164, 227, + 179, 228, 179, 228, 164, 228, 164, 228, 164, 227, 179, 228, + 191, 6, 175, 7, 175, 7, 164, 227, 179, 228, 164, 228, + 164, 228, 164, 227, 180, 227, 179, 228, 164, 228, 164, 228, + 164, 227, 179, 228, 179, 228, 164, 228, 164, 228, 164, 227, + 0, 45, 48, 38, 14, 240, 240, 68, 164, 163, 179, 164, + 164, 164, 163, 179, 164, 164, 164, 163, 179, 164, 164, 164, + 163, 179, 164, 164, 164, 163, 179, 164, 164, 164, 163, 179, + 164, 164, 0, 20, 64, 65, 24, 0, 8, 19, 240, 99, + 240, 84, 240, 84, 240, 84, 240, 83, 240, 99, 240, 84, + 240, 84, 240, 84, 240, 83, 240, 84, 240, 84, 240, 84, + 240, 83, 240, 99, 240, 84, 240, 84, 240, 84, 240, 83, + 240, 99, 240, 84, 240, 84, 240, 83, 240, 99, 240, 84, + 161, 133, 163, 85, 173, 203, 247, 0, 34, 96, 81, 32, + 0, 8, 100, 228, 164, 212, 179, 212, 195, 196, 196, 180, + 212, 149, 228, 133, 243, 133, 240, 19, 116, 240, 36, 100, + 240, 52, 84, 240, 68, 68, 240, 83, 68, 240, 99, 54, + 240, 68, 39, 240, 78, 240, 56, 36, 240, 55, 52, 240, + 38, 100, 240, 21, 116, 240, 20, 133, 244, 148, 243, 164, + 228, 180, 212, 180, 212, 196, 196, 196, 195, 212, 180, 228, + 164, 228, 164, 244, 0, 45, 16, 69, 21, 0, 6, 4, + 240, 36, 240, 36, 240, 35, 240, 36, 240, 36, 240, 36, + 240, 35, 240, 51, 240, 36, 240, 36, 240, 36, 240, 35, + 240, 51, 240, 36, 240, 36, 240, 36, 240, 35, 240, 36, + 240, 36, 240, 36, 240, 36, 240, 35, 240, 36, 240, 36, + 240, 36, 240, 35, 240, 51, 240, 47, 2, 79, 2, 79, + 2, 0, 29, 48, 117, 38, 0, 10, 38, 240, 37, 166, + 240, 37, 166, 240, 22, 166, 247, 166, 247, 151, 227, 19, + 168, 211, 19, 163, 20, 195, 35, 163, 35, 195, 20, 148, + 35, 179, 36, 148, 35, 179, 35, 164, 35, 163, 51, 163, + 51, 148, 36, 163, 51, 147, 52, 148, 52, 116, 52, 148, + 52, 115, 67, 163, 83, 99, 83, 163, 83, 99, 68, 163, + 83, 83, 84, 148, 83, 83, 83, 164, 83, 67, 99, 163, + 100, 51, 99, 163, 100, 35, 100, 163, 115, 35, 100, 148, + 115, 19, 115, 164, 115, 18, 131, 163, 134, 131, 163, 133, + 132, 148, 133, 132, 148, 132, 147, 164, 240, 99, 0, 53, + 64, 91, 32, 0, 8, 102, 196, 166, 195, 182, 195, 183, + 179, 168, 164, 164, 19, 164, 163, 35, 163, 179, 36, 147, + 179, 36, 147, 164, 51, 132, 164, 51, 132, 163, 68, 115, + 179, 68, 115, 179, 68, 115, 164, 83, 100, 164, 84, 84, + 163, 100, 83, 179, 100, 83, 164, 115, 68, 164, 116, 52, + 163, 132, 51, 179, 132, 51, 179, 147, 51, 164, 148, 20, + 164, 148, 20, 163, 164, 19, 179, 179, 19, 179, 183, 164, + 183, 164, 183, 163, 213, 0, 45, 48, 82, 30, 0, 9, + 22, 240, 122, 240, 62, 245, 86, 212, 148, 195, 196, 163, + 227, 147, 244, 115, 240, 35, 115, 240, 35, 99, 240, 51, + 99, 240, 51, 83, 240, 67, 83, 240, 67, 83, 240, 67, + 67, 240, 83, 67, 240, 67, 83, 240, 67, 83, 240, 52, + 83, 240, 51, 99, 240, 36, 99, 240, 35, 115, 240, 20, + 131, 228, 147, 227, 164, 180, 196, 148, 214, 85, 254, 240, + 58, 240, 103, 0, 43, 48, 64, 28, 0, 7, 109, 255, + 211, 148, 180, 179, 164, 180, 147, 211, 147, 211, 147, 211, + 132, 211, 132, 211, 131, 211, 147, 211, 132, 195, 148, 179, + 164, 134, 175, 1, 207, 206, 228, 240, 148, 240, 147, 240, + 163, 240, 148, 240, 148, 240, 148, 240, 147, 240, 163, 240, + 148, 240, 148, 240, 148, 240, 147, 0, 41, 80, 97, 30, + 0, 9, 23, 240, 106, 240, 62, 245, 86, 212, 148, 196, + 180, 163, 227, 147, 244, 116, 240, 19, 115, 240, 35, 99, + 240, 51, 99, 240, 51, 83, 240, 67, 83, 240, 67, 83, + 240, 67, 67, 240, 83, 67, 240, 67, 83, 240, 67, 83, + 240, 67, 83, 240, 51, 99, 240, 51, 99, 240, 35, 115, + 116, 84, 131, 100, 83, 147, 116, 51, 164, 100, 35, 196, + 103, 214, 70, 254, 240, 60, 240, 86, 20, 240, 180, 240, + 181, 240, 180, 240, 181, 240, 180, 240, 180, 0, 20, 67, + 29, 0, 8, 29, 255, 1, 212, 148, 195, 195, 179, 196, + 163, 211, 148, 211, 148, 211, 147, 227, 147, 211, 163, 211, + 148, 195, 164, 180, 163, 165, 191, 2, 191, 1, 222, 244, + 100, 243, 131, 243, 132, 212, 132, 212, 147, 212, 148, 195, + 164, 195, 180, 164, 180, 164, 195, 164, 196, 147, 212, 147, + 227, 132, 228, 0, 40, 96, 64, 26, 0, 8, 7, 240, + 43, 222, 180, 115, 180, 146, 163, 240, 131, 240, 115, 240, + 131, 240, 131, 240, 131, 240, 132, 240, 133, 240, 105, 240, + 58, 240, 57, 240, 87, 240, 116, 240, 132, 240, 131, 240, + 131, 240, 131, 240, 131, 240, 130, 240, 131, 130, 195, 147, + 164, 149, 101, 175, 219, 240, 39, 0, 37, 80, 68, 30, + 0, 7, 95, 10, 95, 10, 79, 11, 244, 240, 179, 240, + 195, 240, 180, 240, 180, 240, 180, 240, 179, 240, 195, 240, + 180, 240, 180, 240, 180, 240, 179, 240, 180, 240, 180, 240, + 180, 240, 180, 240, 179, 240, 180, 240, 180, 240, 180, 240, + 179, 240, 195, 240, 180, 240, 180, 240, 180, 240, 179, 240, + 195, 240, 180, 0, 43, 112, 69, 28, 0, 7, 68, 211, + 131, 227, 116, 227, 116, 212, 116, 211, 131, 227, 131, 227, + 131, 227, 116, 212, 116, 211, 131, 227, 131, 227, 131, 212, + 116, 212, 116, 211, 131, 227, 131, 227, 131, 212, 131, 211, + 131, 227, 131, 227, 131, 227, 131, 211, 147, 211, 147, 195, + 163, 195, 179, 163, 196, 131, 228, 84, 240, 26, 240, 86, + 0, 40, 80, 82, 30, 0, 7, 68, 240, 67, 68, 240, + 51, 84, 240, 51, 99, 240, 35, 116, 244, 116, 243, 132, + 228, 132, 227, 148, 212, 163, 211, 180, 179, 196, 164, 196, + 163, 212, 148, 212, 147, 228, 132, 243, 131, 240, 20, 99, + 240, 36, 99, 240, 36, 83, 240, 52, 68, 240, 52, 67, + 240, 68, 52, 240, 83, 51, 240, 99, 35, 240, 116, 19, + 240, 119, 240, 135, 240, 134, 240, 165, 240, 164, 0, 43, + 112, 124, 42, 0, 10, 68, 212, 212, 68, 212, 211, 84, + 197, 196, 84, 197, 195, 100, 182, 180, 100, 178, 19, 179, + 116, 163, 19, 164, 131, 163, 19, 163, 147, 147, 35, 163, + 147, 147, 36, 131, 163, 131, 52, 131, 163, 131, 52, 115, + 180, 99, 68, 115, 180, 99, 68, 99, 196, 83, 84, 99, + 196, 83, 84, 83, 212, 82, 100, 83, 212, 67, 100, 67, + 228, 67, 100, 67, 228, 51, 131, 52, 228, 51, 131, 51, + 244, 35, 147, 36, 244, 35, 147, 35, 240, 20, 19, 163, + 35, 240, 35, 19, 163, 19, 240, 51, 18, 179, 19, 240, + 54, 182, 240, 69, 198, 240, 69, 197, 240, 84, 213, 240, + 84, 212, 0, 60, 16, 85, 34, 0, 9, 52, 244, 181, + 212, 212, 196, 229, 180, 244, 164, 240, 21, 132, 240, 52, + 116, 240, 69, 84, 240, 100, 68, 240, 116, 52, 240, 148, + 20, 240, 164, 19, 240, 199, 240, 198, 240, 228, 240, 229, + 240, 215, 240, 199, 240, 179, 36, 240, 147, 52, 240, 132, + 68, 240, 100, 84, 240, 84, 116, 240, 52, 132, 240, 36, + 164, 244, 180, 243, 197, 212, 212, 196, 229, 164, 240, 20, + 148, 240, 37, 0, 47, 96, 76, 30, 0, 7, 68, 240, + 67, 69, 240, 36, 84, 240, 20, 100, 244, 132, 212, 148, + 196, 165, 179, 196, 163, 212, 148, 228, 116, 244, 100, 240, + 21, 68, 240, 52, 67, 240, 69, 35, 240, 100, 20, 240, + 104, 240, 134, 240, 149, 240, 164, 240, 180, 240, 180, 240, + 180, 240, 179, 240, 180, 240, 180, 240, 180, 240, 179, 240, + 195, 240, 180, 240, 180, 240, 180, 0, 43, 112, 70, 31, + 0, 8, 95, 5, 191, 5, 191, 4, 240, 196, 240, 180, + 240, 180, 240, 180, 240, 180, 240, 196, 240, 180, 240, 180, + 240, 180, 240, 180, 240, 195, 240, 196, 240, 180, 240, 180, + 240, 180, 240, 180, 240, 196, 240, 180, 240, 180, 240, 180, + 240, 180, 240, 180, 240, 196, 240, 180, 240, 180, 240, 191, + 6, 175, 6, 159, 6, 0, 43, 112, 85, 20, 151, 215, + 215, 196, 240, 19, 240, 35, 240, 35, 240, 35, 240, 20, + 240, 19, 240, 35, 240, 35, 240, 20, 240, 19, 240, 35, + 240, 35, 240, 35, 240, 20, 240, 19, 240, 35, 240, 35, + 240, 35, 240, 20, 240, 19, 240, 35, 240, 35, 240, 20, + 240, 19, 240, 35, 240, 35, 240, 35, 240, 20, 240, 19, + 240, 35, 240, 35, 240, 35, 240, 20, 240, 19, 240, 35, + 240, 35, 240, 35, 240, 23, 215, 215, 208, 25, 17, 240, + 240, 114, 98, 113, 113, 114, 98, 114, 98, 98, 98, 115, + 83, 84, 68, 83, 83, 99, 83, 0, 70, 112, 85, 20, + 151, 215, 199, 240, 35, 240, 35, 240, 35, 240, 20, 240, + 19, 240, 35, 240, 35, 240, 20, 240, 19, 240, 35, 240, + 35, 240, 35, 240, 20, 240, 19, 240, 35, 240, 35, 240, + 35, 240, 20, 240, 19, 240, 35, 240, 35, 240, 20, 240, + 19, 240, 35, 240, 35, 240, 35, 240, 20, 240, 19, 240, + 35, 240, 35, 240, 35, 240, 20, 240, 19, 240, 35, 240, + 35, 240, 20, 240, 20, 240, 19, 215, 215, 215, 208, 19, + 18, 240, 240, 211, 229, 198, 179, 35, 147, 66, 131, 83, + 99, 114, 83, 131, 0, 77, 11, 8, 240, 240, 51, 68, + 68, 67, 0, 36, 80, 15, 9, 240, 98, 113, 114, 114, + 98, 115, 84, 83, 99, 0, 37, 112, 38, 20, 0, 35, + 118, 187, 156, 130, 100, 240, 35, 240, 35, 240, 35, 200, + 139, 140, 117, 83, 99, 131, 83, 147, 83, 131, 99, 131, + 100, 85, 110, 121, 19, 133, 52, 0, 28, 32, 68, 22, + 0, 6, 35, 240, 67, 240, 67, 240, 52, 240, 51, 240, + 67, 240, 67, 240, 52, 240, 52, 240, 51, 240, 67, 240, + 67, 240, 52, 68, 164, 25, 131, 26, 133, 85, 116, 116, + 100, 147, 100, 147, 99, 163, 99, 163, 99, 163, 84, 147, + 99, 163, 99, 163, 99, 147, 115, 132, 101, 85, 126, 131, + 25, 147, 53, 0, 31, 80, 39, 21, 0, 37, 103, 203, + 156, 132, 98, 131, 240, 35, 240, 35, 240, 51, 240, 51, + 240, 35, 240, 51, 240, 51, 240, 51, 240, 51, 240, 52, + 145, 132, 99, 156, 155, 198, 0, 30, 32, 66, 25, 0, + 8, 67, 240, 100, 240, 99, 240, 115, 240, 115, 240, 115, + 240, 100, 240, 99, 240, 115, 240, 115, 240, 115, 240, 99, + 229, 51, 201, 19, 190, 165, 85, 148, 131, 163, 147, 148, + 147, 147, 163, 147, 148, 131, 163, 147, 163, 147, 163, 147, + 148, 147, 148, 148, 116, 180, 85, 190, 200, 20, 213, 52, + 0, 35, 80, 39, 21, 0, 37, 102, 218, 171, 133, 84, + 115, 131, 99, 147, 95, 1, 95, 1, 79, 2, 67, 240, + 51, 240, 51, 240, 51, 240, 52, 240, 51, 161, 117, 99, + 141, 154, 199, 0, 30, 16, 61, 21, 0, 6, 86, 216, + 201, 180, 240, 20, 240, 35, 240, 36, 240, 35, 240, 51, + 240, 51, 240, 36, 240, 35, 251, 156, 156, 196, 240, 36, + 240, 35, 240, 51, 240, 51, 240, 36, 240, 35, 240, 51, + 240, 51, 240, 36, 240, 36, 240, 35, 240, 51, 240, 51, + 240, 36, 240, 35, 0, 31, 16, 63, 28, 0, 50, 53, + 53, 223, 195, 68, 240, 19, 99, 243, 115, 242, 131, 227, + 131, 227, 131, 227, 115, 243, 100, 240, 19, 68, 240, 27, + 240, 27, 240, 34, 37, 240, 51, 240, 163, 240, 173, 240, + 30, 207, 2, 164, 149, 163, 195, 147, 211, 147, 211, 147, + 195, 164, 164, 181, 100, 237, 240, 55, 0, 9, 68, 21, + 0, 6, 3, 240, 51, 240, 51, 240, 51, 240, 36, 240, + 35, 240, 51, 240, 51, 240, 36, 240, 36, 240, 35, 240, + 51, 240, 51, 53, 148, 24, 142, 118, 68, 116, 115, 116, + 115, 100, 131, 100, 131, 99, 131, 115, 131, 115, 131, 100, + 131, 100, 131, 99, 131, 115, 131, 100, 131, 100, 131, 99, + 132, 99, 132, 0, 29, 80, 32, 14, 0, 7, 100, 164, + 164, 148, 0, 11, 83, 179, 179, 164, 164, 163, 179, 179, + 164, 163, 179, 179, 164, 164, 163, 179, 179, 164, 164, 0, + 20, 64, 69, 22, 0, 12, 100, 240, 52, 240, 51, 240, + 67, 0, 18, 84, 240, 51, 240, 67, 240, 67, 240, 67, + 240, 52, 240, 51, 240, 67, 240, 67, 240, 67, 240, 52, + 240, 51, 240, 67, 240, 67, 240, 52, 240, 52, 240, 51, + 240, 67, 240, 67, 240, 52, 240, 51, 240, 67, 240, 67, + 240, 52, 193, 68, 201, 216, 240, 21, 0, 7, 48, 67, + 23, 0, 6, 83, 240, 68, 240, 68, 240, 67, 240, 83, + 240, 83, 240, 68, 240, 68, 240, 67, 240, 83, 240, 83, + 240, 68, 240, 67, 132, 131, 116, 147, 85, 163, 68, 180, + 52, 195, 52, 211, 36, 227, 20, 234, 218, 214, 20, 196, + 52, 195, 83, 180, 84, 163, 115, 163, 116, 147, 131, 147, + 132, 116, 132, 0, 32, 64, 38, 14, 240, 240, 83, 164, + 163, 179, 179, 164, 164, 163, 179, 179, 164, 164, 163, 179, + 179, 164, 163, 179, 179, 164, 164, 163, 179, 179, 164, 164, + 163, 179, 179, 164, 163, 0, 20, 80, 64, 33, 0, 58, + 35, 69, 101, 163, 40, 56, 147, 26, 26, 133, 72, 68, + 117, 101, 115, 116, 132, 115, 116, 116, 131, 115, 132, 131, + 100, 131, 131, 116, 131, 131, 115, 147, 131, 115, 132, 131, + 115, 131, 147, 100, 131, 131, 116, 131, 131, 115, 132, 131, + 115, 132, 131, 115, 131, 132, 100, 131, 132, 0, 46, 16, + 44, 21, 0, 37, 35, 53, 148, 24, 142, 118, 68, 116, + 115, 116, 115, 100, 131, 100, 131, 99, 131, 115, 131, 115, + 131, 100, 131, 100, 131, 99, 131, 115, 131, 100, 131, 100, + 131, 99, 132, 99, 132, 0, 29, 80, 39, 22, 0, 39, + 70, 233, 203, 164, 84, 131, 132, 99, 163, 83, 179, 83, + 179, 83, 179, 67, 195, 67, 180, 67, 179, 83, 164, 83, + 163, 100, 131, 132, 85, 155, 201, 230, 0, 31, 96, 60, + 24, 0, 42, 99, 69, 180, 25, 174, 165, 85, 148, 116, + 132, 147, 132, 147, 131, 163, 131, 163, 131, 163, 116, 162, + 132, 147, 131, 148, 131, 147, 147, 132, 134, 69, 158, 163, + 25, 179, 53, 211, 240, 84, 240, 83, 240, 99, 240, 99, + 240, 99, 240, 84, 240, 83, 240, 99, 0, 8, 80, 62, + 22, 0, 39, 53, 51, 153, 19, 138, 19, 117, 70, 101, + 100, 115, 147, 100, 147, 99, 163, 99, 148, 83, 163, 99, + 163, 99, 163, 99, 148, 100, 132, 100, 116, 132, 85, 142, + 152, 20, 165, 52, 240, 51, 240, 67, 240, 52, 240, 52, + 240, 51, 240, 67, 240, 67, 240, 52, 240, 52, 0, 6, + 80, 29, 18, 0, 32, 3, 82, 131, 37, 131, 22, 134, + 182, 197, 212, 227, 243, 228, 227, 243, 243, 228, 228, 227, + 243, 243, 228, 0, 26, 64, 36, 21, 0, 37, 103, 203, + 155, 148, 98, 131, 240, 51, 240, 51, 240, 53, 240, 40, + 233, 232, 240, 36, 240, 51, 240, 51, 113, 148, 115, 100, + 125, 155, 199, 0, 30, 32, 32, 17, 0, 19, 99, 227, + 212, 211, 227, 188, 91, 92, 131, 227, 227, 227, 211, 227, + 227, 227, 226, 227, 227, 227, 227, 66, 137, 136, 165, 0, + 24, 80, 44, 21, 0, 37, 19, 131, 115, 131, 99, 132, + 99, 132, 99, 131, 115, 131, 115, 131, 99, 132, 99, 132, + 99, 131, 115, 131, 114, 132, 99, 132, 99, 132, 99, 116, + 115, 86, 126, 120, 36, 133, 68, 0, 29, 96, 43, 21, + 0, 36, 99, 179, 67, 164, 67, 163, 84, 131, 100, 116, + 100, 115, 131, 100, 131, 99, 147, 83, 163, 83, 164, 51, + 180, 51, 195, 35, 211, 35, 211, 19, 227, 18, 246, 245, + 240, 21, 0, 30, 80, 70, 30, 0, 52, 67, 132, 131, + 67, 132, 116, 67, 117, 115, 83, 117, 100, 83, 102, 99, + 99, 98, 19, 84, 100, 67, 19, 83, 116, 66, 35, 68, + 116, 51, 35, 67, 132, 50, 51, 52, 147, 35, 51, 51, + 163, 34, 67, 51, 163, 19, 82, 35, 179, 18, 99, 19, + 179, 18, 102, 197, 114, 19, 197, 117, 212, 133, 212, 132, + 0, 42, 112, 48, 26, 0, 46, 19, 164, 148, 132, 180, + 100, 196, 84, 228, 52, 240, 19, 36, 240, 40, 240, 70, + 240, 85, 240, 115, 240, 117, 240, 86, 240, 67, 35, 240, + 35, 52, 243, 83, 227, 100, 195, 131, 179, 148, 132, 180, + 0, 36, 80, 69, 26, 0, 46, 19, 179, 147, 164, 148, + 147, 164, 131, 180, 116, 195, 115, 211, 100, 212, 83, 228, + 67, 244, 67, 240, 19, 51, 240, 35, 51, 240, 35, 35, + 240, 51, 35, 240, 51, 19, 240, 82, 18, 240, 101, 240, + 100, 240, 116, 240, 115, 240, 115, 240, 131, 240, 115, 240, + 131, 240, 115, 240, 55, 240, 70, 240, 85, 0, 9, 16, + 41, 23, 0, 40, 126, 143, 143, 240, 52, 240, 52, 240, + 52, 240, 51, 240, 67, 240, 67, 240, 67, 240, 67, 240, + 67, 240, 67, 240, 67, 240, 67, 240, 67, 240, 79, 143, + 127, 1, 0, 32, 64, 13, 25, 0, 62, 79, 6, 79, + 6, 79, 6, 0, 66, 16, 16, 46, 0, 115, 15, 15, + 12, 79, 15, 12, 79, 15, 12, 0, 121, 32, 23, 19, + 240, 240, 196, 52, 131, 67, 131, 67, 132, 67, 131, 67, + 131, 82, 147, 67, 131, 67, 0, 81, 112, 15, 19, 0, + 9, 116, 83, 102, 66, 109, 98, 70, 99, 84, 0, 84,}; + +//***************************************************************************** +// +// The font definition for the 44 point Cmss italic font. +// +//***************************************************************************** +const tFont g_sFontCmss44i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 41, + + // + // The height of the font. + // + 44, + + // + // The baseline of the font. + // + 33, + + // + // The offset to each character in the font. + // + { + 0, 4, 41, 65, 185, 262, 370, 455, + 469, 547, 626, 668, 736, 753, 763, 774, + 866, 927, 969, 1032, 1092, 1156, 1214, 1274, + 1338, 1394, 1454, 1471, 1494, 1531, 1548, 1587, + 1637, 1719, 1800, 1865, 1930, 2011, 2080, 2148, + 2214, 2283, 2321, 2386, 2467, 2536, 2653, 2744, + 2826, 2890, 2987, 3054, 3118, 3186, 3255, 3337, + 3461, 3546, 3622, 3692, 3777, 3802, 3887, 3906, + 3917, 3932, 3970, 4038, 4077, 4143, 4182, 4243, + 4306, 4374, 4406, 4475, 4542, 4580, 4644, 4688, + 4727, 4787, 4849, 4878, 4914, 4946, 4990, 5033, + 5103, 5151, 5220, 5261, 5274, 5290, 5313, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss44iData +}; diff --git a/grlib/fonts/fontcmss46.c b/grlib/fonts/fontcmss46.c new file mode 100644 index 0000000..76c07d2 --- /dev/null +++ b/grlib/fonts/fontcmss46.c @@ -0,0 +1,547 @@ +//***************************************************************************** +// +// fontcmss46.c - Font definition for the 46pt Cmss font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 46 point +// Bold: no +// Italic: no +// Memory usage: 5492 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 46 point Cmss font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss46Data[5289] = +{ + 5, 18, 0, 105, 96, 36, 8, 240, 148, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 240, 240, 100, 68, + 68, 68, 0, 12, 64, 25, 17, 0, 6, 52, 84, 68, + 84, 68, 84, 68, 84, 83, 99, 82, 114, 98, 114, 83, + 99, 82, 114, 0, 75, 16, 127, 35, 0, 15, 1, 145, + 240, 130, 130, 240, 130, 130, 240, 130, 130, 240, 129, 145, + 240, 130, 130, 240, 130, 130, 240, 130, 129, 240, 145, 145, + 240, 130, 130, 240, 130, 130, 240, 130, 129, 240, 145, 145, + 240, 130, 130, 240, 130, 130, 207, 15, 1, 79, 15, 1, + 226, 130, 240, 130, 130, 240, 129, 145, 240, 145, 145, 240, + 130, 130, 240, 130, 130, 239, 15, 1, 79, 15, 1, 194, + 130, 240, 130, 130, 240, 130, 129, 240, 145, 145, 240, 130, + 130, 240, 130, 130, 240, 130, 129, 240, 145, 145, 240, 130, + 130, 240, 130, 130, 240, 130, 129, 240, 145, 145, 240, 130, + 130, 240, 130, 130, 240, 130, 130, 240, 129, 145, 0, 15, + 64, 75, 22, 115, 240, 67, 240, 67, 240, 41, 189, 143, + 101, 19, 52, 100, 35, 82, 85, 35, 196, 51, 196, 51, + 196, 51, 196, 51, 197, 35, 212, 35, 213, 19, 232, 234, + 234, 218, 233, 211, 37, 195, 52, 195, 53, 179, 68, 179, + 68, 179, 68, 179, 68, 179, 68, 65, 99, 52, 82, 83, + 37, 84, 51, 21, 126, 156, 201, 240, 19, 240, 67, 240, + 67, 0, 26, 32, 123, 36, 84, 240, 18, 199, 241, 201, + 210, 195, 37, 193, 196, 52, 178, 195, 68, 177, 196, 84, + 146, 196, 84, 130, 212, 84, 130, 212, 84, 114, 228, 84, + 114, 228, 84, 98, 244, 84, 98, 240, 19, 83, 98, 240, + 36, 52, 97, 240, 52, 37, 82, 240, 73, 97, 240, 103, + 98, 240, 116, 129, 240, 240, 66, 116, 240, 114, 118, 240, + 98, 104, 240, 66, 100, 36, 240, 50, 100, 36, 240, 34, + 115, 67, 240, 34, 100, 68, 242, 116, 68, 242, 116, 68, + 226, 132, 68, 225, 148, 68, 210, 148, 68, 209, 164, 68, + 194, 179, 67, 209, 196, 36, 194, 196, 36, 178, 232, 194, + 246, 209, 240, 36, 0, 41, 64, 86, 33, 0, 13, 69, + 240, 200, 240, 154, 240, 116, 52, 240, 116, 68, 240, 84, + 84, 240, 84, 84, 240, 84, 84, 240, 84, 84, 240, 84, + 68, 240, 100, 68, 240, 101, 36, 240, 117, 20, 240, 152, + 240, 167, 194, 213, 211, 181, 211, 183, 195, 169, 164, 148, + 36, 163, 148, 53, 132, 132, 85, 115, 132, 116, 99, 148, + 117, 68, 148, 133, 36, 164, 153, 181, 151, 212, 165, 230, + 90, 223, 12, 124, 74, 151, 152, 0, 50, 15, 8, 240, + 148, 68, 68, 68, 83, 82, 98, 83, 82, 0, 35, 96, + 50, 15, 131, 179, 179, 195, 179, 180, 179, 180, 179, 180, + 180, 179, 180, 180, 180, 180, 179, 180, 180, 180, 180, 180, + 180, 180, 180, 180, 180, 180, 180, 180, 195, 196, 180, 180, + 180, 195, 196, 180, 195, 196, 195, 196, 195, 211, 196, 195, + 211, 64, 50, 15, 3, 211, 211, 195, 211, 196, 195, 196, + 195, 196, 180, 195, 196, 180, 180, 180, 196, 180, 180, 180, + 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 164, + 180, 180, 180, 179, 180, 180, 179, 180, 179, 180, 179, 179, + 195, 179, 179, 192, 44, 22, 131, 240, 52, 240, 52, 240, + 52, 240, 52, 195, 52, 51, 100, 36, 36, 101, 20, 21, + 140, 200, 246, 234, 174, 116, 36, 36, 84, 52, 52, 82, + 68, 66, 196, 240, 52, 240, 52, 240, 66, 0, 75, 96, + 90, 33, 0, 38, 114, 240, 240, 18, 240, 240, 18, 240, + 240, 18, 240, 240, 18, 240, 240, 18, 240, 240, 18, 240, + 240, 18, 240, 240, 18, 240, 240, 18, 240, 240, 18, 240, + 240, 18, 240, 240, 18, 240, 63, 13, 79, 14, 240, 50, + 240, 240, 18, 240, 240, 18, 240, 240, 18, 240, 240, 18, + 240, 240, 18, 240, 240, 18, 240, 240, 18, 240, 240, 18, + 240, 240, 18, 240, 240, 18, 240, 240, 18, 240, 240, 18, + 240, 240, 18, 0, 39, 32, 17, 8, 0, 31, 4, 68, + 68, 68, 83, 82, 98, 98, 82, 98, 0, 6, 96, 10, + 16, 0, 46, 12, 76, 76, 0, 42, 64, 11, 8, 0, + 31, 4, 68, 68, 68, 0, 12, 64, 97, 21, 242, 240, + 66, 240, 65, 240, 66, 240, 66, 240, 65, 240, 66, 240, + 66, 240, 65, 240, 66, 240, 66, 240, 65, 240, 66, 240, + 66, 240, 65, 240, 66, 240, 66, 240, 65, 240, 66, 240, + 66, 240, 65, 240, 66, 240, 66, 240, 65, 240, 66, 240, + 66, 240, 65, 240, 66, 240, 66, 240, 65, 240, 66, 240, + 66, 240, 65, 240, 66, 240, 66, 240, 65, 240, 66, 240, + 66, 240, 65, 240, 66, 240, 66, 240, 65, 240, 66, 240, + 66, 240, 65, 240, 66, 240, 66, 240, 64, 63, 22, 0, + 11, 102, 234, 188, 164, 69, 132, 100, 131, 132, 100, 132, + 100, 132, 99, 164, 68, 164, 68, 164, 68, 164, 68, 164, + 68, 164, 68, 164, 68, 164, 68, 164, 68, 164, 68, 164, + 68, 164, 68, 164, 68, 164, 83, 164, 84, 132, 100, 132, + 100, 132, 116, 100, 133, 69, 156, 186, 230, 0, 34, 32, + 39, 19, 0, 10, 81, 240, 19, 229, 154, 154, 148, 36, + 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, + 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 174, 94, + 94, 0, 29, 67, 22, 0, 11, 102, 234, 188, 147, 86, + 115, 133, 98, 164, 83, 165, 67, 180, 81, 196, 240, 52, + 240, 52, 240, 52, 240, 52, 240, 36, 240, 52, 240, 36, + 240, 36, 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, + 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, + 240, 63, 3, 79, 3, 79, 3, 0, 33, 64, 60, 22, + 0, 11, 102, 234, 188, 148, 85, 115, 132, 114, 164, 98, + 164, 240, 52, 240, 52, 240, 51, 240, 52, 240, 36, 240, + 37, 201, 215, 249, 240, 68, 240, 68, 240, 68, 240, 68, + 240, 52, 240, 52, 240, 52, 240, 52, 65, 212, 66, 180, + 84, 133, 101, 85, 141, 171, 230, 0, 34, 32, 68, 23, + 0, 12, 101, 240, 53, 240, 38, 240, 38, 240, 23, 240, + 18, 20, 243, 20, 227, 36, 227, 36, 212, 36, 211, 52, + 196, 52, 195, 68, 180, 68, 179, 84, 164, 84, 163, 100, + 148, 100, 132, 116, 131, 132, 143, 4, 79, 4, 79, 4, + 244, 240, 68, 240, 68, 240, 68, 240, 68, 240, 68, 240, + 68, 240, 68, 0, 35, 64, 64, 23, 0, 11, 111, 1, + 127, 1, 127, 1, 116, 240, 68, 240, 68, 240, 68, 240, + 68, 240, 68, 240, 68, 240, 68, 240, 68, 37, 205, 174, + 150, 69, 133, 116, 116, 132, 240, 84, 240, 68, 240, 68, + 240, 68, 240, 68, 240, 68, 240, 68, 81, 196, 98, 180, + 84, 148, 117, 101, 142, 186, 246, 0, 35, 112, 63, 22, + 0, 12, 22, 233, 187, 165, 97, 148, 240, 51, 240, 52, + 240, 51, 240, 52, 240, 52, 240, 51, 69, 163, 41, 116, + 27, 103, 69, 102, 101, 85, 132, 85, 148, 68, 164, 68, + 164, 68, 164, 68, 164, 68, 164, 83, 164, 84, 148, 84, + 147, 115, 132, 116, 100, 148, 69, 156, 186, 230, 0, 34, + 32, 69, 23, 0, 11, 79, 4, 79, 4, 79, 4, 240, + 67, 240, 67, 240, 83, 240, 67, 240, 67, 240, 83, 240, + 67, 240, 68, 240, 67, 240, 68, 240, 67, 240, 68, 240, + 68, 240, 67, 240, 68, 240, 68, 240, 67, 240, 68, 240, + 68, 240, 68, 240, 68, 240, 67, 240, 68, 240, 68, 240, + 68, 240, 68, 240, 68, 240, 68, 0, 36, 32, 60, 22, + 0, 11, 102, 234, 188, 149, 69, 131, 132, 100, 132, 99, + 163, 99, 163, 99, 163, 99, 163, 100, 132, 115, 131, 148, + 68, 186, 230, 234, 180, 69, 132, 100, 116, 132, 99, 164, + 68, 164, 68, 164, 68, 164, 68, 164, 68, 164, 84, 132, + 101, 116, 117, 69, 156, 186, 230, 0, 34, 32, 63, 22, + 0, 11, 117, 249, 188, 164, 68, 148, 100, 116, 131, 116, + 132, 84, 163, 84, 163, 84, 164, 68, 164, 68, 164, 68, + 164, 68, 164, 68, 164, 84, 133, 84, 133, 85, 102, 101, + 71, 122, 20, 121, 36, 149, 67, 240, 52, 240, 52, 240, + 51, 240, 52, 240, 36, 147, 84, 171, 186, 230, 0, 34, + 64, 17, 8, 0, 15, 4, 68, 68, 68, 0, 12, 68, + 68, 68, 68, 0, 12, 64, 23, 8, 0, 15, 4, 68, + 68, 68, 0, 12, 68, 68, 68, 68, 83, 82, 98, 98, + 82, 98, 0, 6, 96, 36, 8, 0, 11, 4, 68, 68, + 68, 240, 240, 228, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 240, 208, 17, 33, 0, 74, 47, 14, 79, + 14, 0, 25, 47, 14, 79, 14, 0, 78, 112, 52, 20, + 0, 28, 36, 240, 20, 240, 20, 240, 20, 0, 14, 68, + 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, 244, 240, + 20, 245, 244, 245, 229, 229, 244, 245, 244, 240, 20, 240, + 20, 240, 20, 240, 21, 146, 85, 100, 110, 124, 167, 0, + 8, 64, 39, 19, 0, 7, 86, 171, 126, 84, 85, 82, + 133, 244, 244, 244, 244, 229, 228, 229, 213, 213, 228, 229, + 228, 244, 228, 244, 244, 244, 244, 244, 0, 11, 52, 244, + 244, 244, 0, 29, 96, 85, 29, 0, 12, 39, 240, 91, + 240, 31, 214, 85, 182, 148, 164, 101, 20, 132, 92, 117, + 77, 116, 69, 55, 84, 84, 86, 84, 68, 117, 84, 68, + 117, 68, 68, 148, 68, 68, 148, 68, 68, 148, 68, 68, + 148, 68, 68, 148, 68, 68, 148, 68, 68, 148, 69, 68, + 116, 100, 68, 116, 100, 84, 84, 117, 69, 53, 132, 91, + 149, 89, 181, 101, 229, 240, 165, 240, 166, 117, 207, 1, + 252, 240, 72, 0, 44, 96, 86, 30, 0, 12, 85, 240, + 165, 240, 165, 240, 151, 240, 135, 240, 116, 19, 240, 115, + 36, 240, 99, 36, 240, 84, 36, 240, 83, 68, 240, 67, + 68, 240, 52, 68, 240, 51, 100, 240, 35, 100, 240, 20, + 100, 240, 19, 132, 243, 132, 228, 132, 227, 164, 211, 164, + 207, 4, 191, 4, 191, 4, 164, 197, 147, 228, 132, 228, + 132, 229, 115, 240, 20, 100, 240, 20, 100, 240, 36, 83, + 240, 52, 68, 240, 52, 0, 45, 64, 69, 27, 0, 10, + 31, 207, 2, 175, 4, 132, 151, 116, 182, 100, 212, 100, + 212, 100, 228, 84, 228, 84, 228, 84, 212, 100, 197, 100, + 181, 116, 149, 159, 2, 175, 207, 3, 148, 166, 116, 197, + 100, 213, 84, 228, 84, 244, 68, 244, 68, 244, 68, 244, + 68, 229, 68, 228, 84, 198, 84, 167, 111, 5, 127, 3, + 159, 1, 0, 41, 112, 68, 27, 0, 11, 72, 240, 30, + 207, 166, 116, 149, 178, 148, 240, 116, 240, 116, 240, 132, + 240, 116, 240, 132, 240, 132, 240, 116, 240, 132, 240, 132, + 240, 132, 240, 132, 240, 132, 240, 132, 240, 132, 240, 148, + 240, 132, 240, 132, 240, 148, 240, 133, 240, 132, 240, 148, + 240, 133, 194, 150, 117, 191, 1, 205, 240, 40, 0, 41, + 64, 83, 29, 0, 10, 127, 239, 2, 207, 4, 164, 151, + 148, 197, 132, 213, 116, 228, 116, 244, 100, 244, 100, 240, + 20, 84, 240, 20, 84, 240, 20, 84, 240, 36, 68, 240, + 36, 68, 240, 36, 68, 240, 36, 68, 240, 36, 68, 240, + 36, 68, 240, 36, 68, 240, 36, 68, 240, 36, 68, 240, + 20, 84, 240, 20, 84, 245, 84, 244, 100, 228, 116, 213, + 116, 197, 132, 166, 159, 4, 175, 2, 207, 0, 45, 32, + 71, 24, 0, 9, 15, 4, 95, 4, 95, 4, 84, 240, + 84, 240, 84, 240, 84, 240, 84, 240, 84, 240, 84, 240, + 84, 240, 84, 240, 84, 240, 84, 240, 95, 3, 111, 3, + 111, 3, 100, 240, 84, 240, 84, 240, 84, 240, 84, 240, + 84, 240, 84, 240, 84, 240, 84, 240, 84, 240, 84, 240, + 84, 240, 95, 5, 79, 5, 79, 5, 0, 36, 64, 70, + 23, 0, 8, 95, 4, 79, 4, 79, 4, 68, 240, 68, + 240, 68, 240, 68, 240, 68, 240, 68, 240, 68, 240, 68, + 240, 68, 240, 68, 240, 68, 240, 79, 2, 111, 2, 111, + 2, 100, 240, 68, 240, 68, 240, 68, 240, 68, 240, 68, + 240, 68, 240, 68, 240, 68, 240, 68, 240, 68, 240, 68, + 240, 68, 240, 68, 240, 68, 0, 36, 112, 69, 27, 0, + 11, 57, 240, 29, 207, 2, 150, 117, 133, 179, 117, 240, + 116, 240, 116, 240, 132, 240, 116, 240, 132, 240, 132, 240, + 116, 240, 132, 240, 132, 240, 132, 240, 132, 240, 132, 240, + 132, 169, 69, 153, 84, 153, 84, 228, 84, 228, 100, 212, + 101, 196, 116, 196, 117, 180, 133, 164, 150, 117, 175, 2, + 205, 240, 24, 0, 41, 80, 70, 27, 0, 10, 20, 244, + 68, 244, 68, 244, 68, 244, 68, 244, 68, 244, 68, 244, + 68, 244, 68, 244, 68, 244, 68, 244, 68, 244, 68, 244, + 68, 244, 79, 8, 79, 8, 79, 8, 68, 244, 68, 244, + 68, 244, 68, 244, 68, 244, 68, 244, 68, 244, 68, 244, + 68, 244, 68, 244, 68, 244, 68, 244, 68, 244, 68, 244, + 68, 244, 0, 41, 38, 8, 240, 148, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 0, 12, 64, 41, 19, 0, 8, 68, 244, + 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, + 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, + 244, 65, 148, 83, 101, 93, 123, 182, 0, 29, 80, 73, + 28, 0, 10, 68, 244, 84, 228, 100, 212, 116, 196, 132, + 181, 132, 165, 148, 149, 164, 133, 180, 117, 196, 116, 212, + 100, 228, 84, 244, 68, 240, 20, 54, 244, 39, 244, 25, + 233, 21, 216, 52, 215, 69, 198, 100, 197, 132, 180, 149, + 164, 164, 164, 180, 148, 181, 132, 196, 132, 197, 116, 212, + 116, 228, 100, 229, 84, 244, 84, 240, 20, 0, 42, 64, + 71, 22, 0, 8, 36, 240, 52, 240, 52, 240, 52, 240, + 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, + 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, + 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, + 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, + 52, 240, 63, 3, 79, 3, 79, 3, 0, 33, 64, 124, + 34, 0, 12, 102, 240, 54, 70, 240, 54, 71, 240, 23, + 71, 240, 23, 71, 240, 23, 68, 19, 227, 20, 68, 19, + 227, 20, 68, 19, 227, 20, 68, 20, 196, 20, 68, 35, + 195, 36, 68, 35, 195, 36, 68, 36, 164, 36, 68, 51, + 163, 52, 68, 52, 147, 52, 68, 52, 132, 52, 68, 67, + 131, 68, 68, 68, 115, 68, 68, 68, 99, 84, 68, 83, + 99, 84, 68, 84, 83, 84, 68, 99, 67, 100, 68, 99, + 67, 100, 68, 100, 51, 100, 68, 115, 35, 116, 68, 115, + 35, 116, 68, 116, 19, 116, 68, 134, 132, 68, 134, 132, + 68, 134, 132, 68, 148, 148, 68, 148, 148, 68, 240, 116, + 0, 51, 64, 92, 27, 0, 10, 22, 212, 71, 196, 71, + 196, 72, 180, 72, 180, 68, 20, 164, 68, 20, 164, 68, + 36, 148, 68, 36, 148, 68, 51, 148, 68, 52, 132, 68, + 67, 132, 68, 68, 116, 68, 83, 116, 68, 84, 100, 68, + 84, 100, 68, 100, 84, 68, 100, 84, 68, 115, 84, 68, + 116, 68, 68, 131, 68, 68, 132, 52, 68, 147, 52, 68, + 148, 36, 68, 148, 36, 68, 164, 20, 68, 164, 20, 68, + 184, 68, 184, 68, 199, 68, 199, 68, 214, 0, 41, 86, + 32, 0, 13, 55, 240, 124, 240, 79, 246, 102, 213, 165, + 196, 197, 164, 228, 148, 240, 20, 132, 240, 20, 116, 240, + 52, 100, 240, 52, 100, 240, 67, 84, 240, 84, 68, 240, + 84, 68, 240, 84, 68, 240, 84, 68, 240, 84, 68, 240, + 84, 68, 240, 84, 68, 240, 84, 84, 240, 52, 100, 240, + 52, 100, 240, 52, 116, 240, 20, 133, 244, 148, 228, 165, + 197, 181, 165, 214, 102, 255, 240, 76, 240, 134, 0, 49, + 112, 68, 26, 0, 9, 111, 191, 2, 159, 4, 116, 151, + 100, 181, 100, 212, 84, 213, 68, 228, 68, 228, 68, 228, + 68, 228, 68, 228, 68, 212, 84, 212, 84, 196, 100, 151, + 111, 4, 127, 2, 159, 180, 240, 116, 240, 116, 240, 116, + 240, 116, 240, 116, 240, 116, 240, 116, 240, 116, 240, 116, + 240, 116, 240, 116, 240, 116, 0, 41, 96, 103, 32, 0, + 13, 55, 240, 124, 240, 79, 246, 102, 213, 165, 196, 197, + 164, 228, 148, 240, 20, 132, 240, 20, 116, 240, 52, 100, + 240, 52, 100, 240, 52, 84, 240, 84, 68, 240, 84, 68, + 240, 84, 68, 240, 84, 68, 240, 84, 68, 240, 84, 68, + 240, 84, 68, 240, 84, 84, 240, 52, 100, 240, 52, 100, + 240, 52, 116, 116, 84, 132, 117, 68, 148, 116, 52, 165, + 116, 20, 197, 105, 214, 86, 240, 31, 240, 78, 240, 102, + 21, 240, 212, 240, 213, 240, 212, 240, 228, 240, 213, 240, + 212, 0, 24, 96, 69, 27, 0, 10, 31, 207, 2, 175, + 4, 132, 166, 116, 197, 100, 212, 100, 228, 84, 228, 84, + 228, 84, 228, 84, 228, 84, 212, 100, 197, 100, 166, 127, + 4, 143, 3, 159, 1, 180, 116, 196, 132, 180, 132, 180, + 148, 164, 148, 164, 164, 148, 164, 148, 180, 132, 181, 116, + 196, 116, 212, 100, 212, 100, 228, 84, 228, 84, 244, 0, + 41, 63, 24, 0, 9, 119, 237, 175, 133, 116, 117, 162, + 116, 193, 100, 240, 84, 240, 84, 240, 84, 240, 85, 240, + 84, 240, 86, 240, 72, 240, 43, 236, 235, 240, 40, 240, + 70, 240, 69, 240, 85, 240, 84, 240, 84, 240, 84, 240, + 84, 240, 84, 65, 228, 83, 181, 86, 117, 127, 1, 173, + 231, 0, 37, 48, 70, 30, 0, 11, 47, 11, 79, 11, + 79, 11, 244, 240, 180, 240, 180, 240, 180, 240, 180, 240, + 180, 240, 180, 240, 180, 240, 180, 240, 180, 240, 180, 240, + 180, 240, 180, 240, 180, 240, 180, 240, 180, 240, 180, 240, + 180, 240, 180, 240, 180, 240, 180, 240, 180, 240, 180, 240, + 180, 240, 180, 240, 180, 240, 180, 240, 180, 240, 180, 0, + 46, 112, 69, 26, 0, 9, 100, 228, 68, 228, 68, 228, + 68, 228, 68, 228, 68, 228, 68, 228, 68, 228, 68, 228, + 68, 228, 68, 228, 68, 228, 68, 228, 68, 228, 68, 228, + 68, 228, 68, 228, 68, 228, 68, 228, 68, 228, 68, 228, + 68, 228, 68, 228, 68, 228, 84, 196, 100, 196, 101, 164, + 133, 133, 150, 85, 190, 219, 240, 54, 0, 40, 64, 89, + 31, 0, 11, 84, 240, 68, 68, 240, 68, 69, 240, 51, + 100, 240, 36, 100, 240, 35, 132, 240, 19, 132, 244, 132, + 243, 164, 212, 164, 212, 164, 211, 196, 180, 196, 180, 212, + 163, 228, 148, 228, 147, 240, 20, 131, 240, 20, 116, 240, + 20, 115, 240, 52, 99, 240, 52, 84, 240, 52, 83, 240, + 84, 52, 240, 84, 51, 240, 115, 51, 240, 116, 20, 240, + 116, 19, 240, 147, 19, 240, 151, 240, 150, 240, 181, 240, + 181, 0, 48, 48, 131, 43, 0, 16, 20, 213, 212, 68, + 213, 212, 68, 213, 211, 100, 197, 211, 100, 183, 180, 100, + 179, 19, 180, 100, 179, 19, 179, 132, 163, 19, 179, 132, + 147, 36, 148, 132, 147, 51, 148, 132, 147, 51, 147, 164, + 116, 52, 131, 164, 115, 68, 116, 164, 115, 68, 115, 196, + 99, 83, 115, 196, 84, 84, 99, 196, 83, 100, 84, 196, + 83, 115, 83, 228, 67, 115, 83, 228, 52, 116, 52, 228, + 51, 132, 52, 228, 51, 147, 51, 240, 19, 51, 147, 51, + 240, 20, 34, 164, 35, 240, 20, 19, 164, 19, 240, 51, + 19, 179, 19, 240, 51, 19, 179, 19, 240, 51, 18, 195, + 19, 240, 54, 198, 240, 85, 213, 240, 85, 213, 240, 84, + 229, 0, 66, 83, 31, 0, 11, 100, 240, 20, 117, 228, + 148, 213, 164, 196, 181, 164, 213, 133, 228, 132, 240, 20, + 100, 240, 37, 68, 240, 68, 68, 240, 84, 36, 240, 120, + 240, 136, 240, 150, 240, 180, 240, 196, 240, 182, 240, 167, + 240, 136, 240, 116, 36, 240, 84, 68, 240, 68, 69, 240, + 36, 100, 240, 20, 132, 244, 133, 212, 164, 196, 196, 180, + 197, 148, 229, 116, 240, 20, 116, 240, 36, 84, 240, 53, + 0, 47, 79, 32, 0, 12, 5, 240, 68, 84, 240, 52, + 101, 240, 36, 116, 240, 20, 148, 228, 165, 212, 180, 196, + 197, 180, 213, 148, 244, 132, 240, 21, 116, 240, 37, 84, + 240, 68, 68, 240, 85, 52, 240, 101, 20, 240, 136, 240, + 152, 240, 166, 240, 196, 240, 212, 240, 212, 240, 212, 240, + 212, 240, 212, 240, 212, 240, 212, 240, 212, 240, 212, 240, + 212, 240, 212, 240, 212, 240, 212, 0, 50, 72, 26, 0, + 9, 127, 6, 95, 6, 95, 6, 240, 100, 240, 100, 240, + 116, 240, 100, 240, 101, 240, 100, 240, 100, 240, 101, 240, + 100, 240, 100, 240, 116, 240, 100, 240, 101, 240, 100, 240, + 100, 240, 116, 240, 100, 240, 101, 240, 100, 240, 100, 240, + 101, 240, 100, 240, 100, 240, 116, 240, 100, 240, 101, 240, + 111, 6, 79, 7, 79, 7, 0, 39, 64, 50, 12, 8, + 72, 72, 68, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 136, 72, 72, 64, 25, + 16, 0, 6, 34, 98, 83, 83, 82, 98, 98, 98, 83, + 83, 84, 68, 68, 68, 68, 68, 68, 68, 0, 70, 64, + 50, 12, 8, 72, 72, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 72, 72, + 72, 64, 20, 19, 0, 7, 115, 245, 211, 19, 179, 51, + 163, 51, 147, 83, 115, 115, 83, 147, 0, 86, 11, 8, + 240, 240, 36, 68, 68, 68, 0, 39, 64, 15, 8, 240, + 178, 83, 82, 98, 83, 84, 68, 68, 68, 0, 35, 64, + 40, 20, 0, 38, 23, 187, 141, 115, 85, 240, 21, 240, + 20, 240, 20, 240, 20, 185, 140, 110, 86, 84, 69, 116, + 68, 132, 68, 132, 68, 132, 70, 70, 95, 105, 20, 118, + 52, 0, 30, 64, 70, 22, 0, 8, 36, 240, 52, 240, + 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, + 52, 240, 52, 240, 52, 240, 52, 240, 52, 69, 148, 41, + 127, 1, 102, 85, 101, 117, 84, 148, 84, 149, 68, 164, + 68, 164, 68, 164, 68, 164, 68, 164, 68, 164, 68, 148, + 84, 148, 85, 117, 86, 70, 111, 116, 25, 132, 53, 0, + 34, 32, 41, 21, 0, 40, 39, 203, 142, 102, 98, 116, + 240, 20, 240, 36, 240, 20, 240, 36, 240, 36, 240, 36, + 240, 36, 240, 36, 240, 52, 240, 36, 240, 52, 161, 102, + 84, 126, 155, 198, 0, 32, 64, 67, 21, 0, 9, 68, + 240, 36, 240, 36, 240, 36, 240, 36, 240, 36, 240, 36, + 240, 36, 240, 36, 240, 36, 240, 36, 240, 36, 149, 52, + 136, 20, 126, 101, 70, 85, 116, 84, 132, 84, 132, 68, + 148, 68, 148, 68, 148, 68, 148, 68, 148, 68, 148, 69, + 132, 84, 132, 85, 101, 101, 70, 111, 121, 20, 149, 52, + 0, 32, 40, 22, 0, 42, 22, 234, 173, 134, 69, 116, + 131, 100, 163, 83, 179, 79, 3, 79, 3, 79, 3, 68, + 240, 52, 240, 52, 240, 68, 240, 53, 240, 52, 177, 102, + 100, 142, 155, 215, 0, 34, 39, 18, 0, 7, 102, 168, + 153, 133, 212, 212, 228, 228, 228, 228, 228, 228, 188, 108, + 108, 148, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 0, 28, 48, 59, 24, 0, + 45, 85, 84, 151, 23, 143, 2, 100, 68, 181, 68, 180, + 100, 164, 100, 164, 100, 164, 100, 180, 69, 181, 52, 203, + 218, 211, 36, 243, 240, 99, 240, 100, 240, 108, 207, 143, + 2, 100, 150, 84, 180, 83, 196, 83, 196, 84, 165, 101, + 102, 127, 1, 173, 216, 0, 10, 48, 71, 20, 0, 7, + 68, 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, 240, + 20, 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, 240, + 20, 54, 116, 40, 100, 26, 86, 70, 69, 101, 69, 116, + 68, 132, 68, 132, 68, 132, 68, 132, 68, 132, 68, 132, + 68, 132, 68, 132, 68, 132, 68, 132, 68, 132, 68, 132, + 68, 132, 68, 132, 0, 30, 64, 33, 8, 240, 240, 36, + 68, 68, 68, 0, 7, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 0, 12, 64, 43, 15, 0, 8, 52, 180, 180, 180, + 0, 14, 68, 180, 180, 180, 180, 180, 180, 180, 180, 180, + 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, + 180, 180, 180, 81, 68, 90, 89, 134, 0, 6, 64, 67, + 21, 0, 7, 116, 240, 36, 240, 36, 240, 36, 240, 36, + 240, 36, 240, 36, 240, 36, 240, 36, 240, 36, 240, 36, + 240, 36, 240, 36, 132, 84, 116, 100, 100, 116, 84, 132, + 68, 148, 52, 164, 36, 180, 21, 186, 187, 171, 166, 36, + 149, 68, 132, 84, 132, 100, 116, 115, 116, 116, 100, 132, + 84, 132, 84, 148, 0, 32, 38, 8, 240, 148, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 0, 12, 64, 68, 32, 0, 60, + 4, 54, 102, 116, 40, 72, 100, 26, 27, 86, 69, 18, + 70, 69, 102, 101, 69, 117, 116, 68, 132, 132, 68, 132, + 132, 68, 132, 132, 68, 132, 132, 68, 132, 132, 68, 132, + 132, 68, 132, 132, 68, 132, 132, 68, 132, 132, 68, 132, + 132, 68, 132, 132, 68, 132, 132, 68, 132, 132, 68, 132, + 132, 0, 48, 64, 47, 20, 0, 37, 68, 54, 116, 40, + 100, 26, 86, 70, 69, 101, 69, 116, 68, 132, 68, 132, + 68, 132, 68, 132, 68, 132, 68, 132, 68, 132, 68, 132, + 68, 132, 68, 132, 68, 132, 68, 132, 68, 132, 68, 132, + 0, 30, 64, 43, 24, 0, 45, 118, 240, 26, 221, 165, + 70, 132, 132, 116, 164, 100, 164, 84, 196, 68, 196, 68, + 196, 68, 196, 68, 196, 68, 196, 84, 164, 100, 164, 116, + 132, 134, 70, 158, 202, 240, 22, 0, 37, 48, 63, 22, + 0, 41, 36, 69, 148, 41, 127, 1, 102, 70, 101, 117, + 84, 148, 84, 149, 68, 164, 68, 164, 68, 164, 68, 164, + 68, 164, 68, 164, 68, 148, 84, 148, 85, 117, 86, 70, + 111, 116, 25, 132, 53, 164, 240, 52, 240, 52, 240, 52, + 240, 52, 240, 52, 240, 52, 240, 52, 240, 52, 0, 10, + 64, 63, 21, 0, 40, 20, 52, 136, 20, 126, 101, 70, + 85, 101, 84, 132, 84, 132, 68, 148, 68, 148, 68, 148, + 68, 148, 68, 148, 68, 148, 69, 132, 84, 132, 85, 101, + 101, 70, 111, 121, 20, 149, 52, 240, 36, 240, 36, 240, + 36, 240, 36, 240, 36, 240, 36, 240, 36, 240, 36, 240, + 36, 0, 8, 48, 30, 15, 0, 28, 20, 67, 68, 37, + 68, 22, 72, 119, 134, 149, 164, 180, 180, 180, 180, 180, + 180, 180, 180, 180, 180, 180, 180, 0, 23, 112, 30, 19, + 0, 36, 24, 156, 109, 85, 99, 84, 244, 244, 246, 233, + 186, 171, 199, 245, 244, 244, 65, 164, 68, 100, 94, 108, + 167, 0, 29, 64, 34, 18, 0, 20, 100, 228, 228, 228, + 228, 228, 174, 78, 78, 132, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 229, 50, 153, 153, 166, 0, + 27, 96, 47, 20, 0, 37, 68, 132, 68, 132, 68, 132, + 68, 132, 68, 132, 68, 132, 68, 132, 68, 132, 68, 132, + 68, 132, 68, 132, 68, 132, 68, 132, 68, 132, 68, 132, + 68, 117, 69, 86, 79, 1, 89, 36, 102, 68, 0, 30, + 64, 45, 22, 0, 41, 35, 180, 68, 164, 68, 163, 100, + 132, 100, 132, 115, 131, 132, 100, 132, 100, 147, 99, 164, + 68, 164, 67, 195, 67, 196, 36, 196, 35, 227, 35, 232, + 246, 240, 22, 240, 22, 240, 36, 0, 34, 48, 75, 32, + 0, 60, 3, 147, 148, 68, 132, 131, 84, 117, 131, 99, + 114, 18, 116, 100, 98, 19, 100, 100, 83, 19, 99, 131, + 83, 19, 84, 131, 83, 19, 84, 132, 66, 51, 67, 148, + 51, 51, 67, 163, 51, 51, 52, 163, 51, 52, 35, 180, + 34, 83, 35, 195, 19, 83, 35, 195, 19, 83, 20, 195, + 18, 118, 229, 118, 229, 118, 229, 117, 244, 148, 0, 49, + 32, 46, 23, 0, 43, 36, 164, 85, 132, 116, 116, 148, + 84, 180, 68, 196, 36, 227, 20, 247, 240, 37, 240, 68, + 240, 68, 240, 54, 240, 19, 20, 228, 36, 196, 67, 195, + 84, 163, 116, 132, 132, 100, 164, 68, 180, 0, 35, 63, + 22, 0, 41, 36, 179, 68, 164, 83, 163, 100, 132, 100, + 132, 116, 115, 132, 100, 147, 99, 164, 83, 179, 68, 180, + 51, 196, 51, 211, 36, 212, 19, 243, 19, 243, 18, 240, + 22, 240, 37, 240, 36, 240, 67, 240, 52, 240, 51, 240, + 67, 240, 51, 240, 67, 240, 52, 231, 246, 240, 21, 0, + 10, 32, 33, 20, 0, 37, 95, 95, 95, 244, 244, 244, + 240, 20, 244, 244, 244, 240, 20, 244, 244, 244, 240, 20, + 244, 244, 255, 1, 79, 1, 79, 1, 0, 30, 64, 13, + 26, 0, 68, 47, 7, 79, 7, 79, 7, 0, 75, 32, + 18, 47, 0, 123, 63, 15, 13, 79, 15, 13, 79, 15, + 13, 0, 127, 0, 8, 80, 23, 17, 0, 6, 84, 52, + 99, 67, 115, 67, 100, 52, 99, 67, 115, 67, 99, 67, + 115, 67, 0, 77, 48, 16, 18, 0, 9, 36, 83, 86, + 67, 77, 83, 55, 82, 100, 0, 86, 32, +}; + +//***************************************************************************** +// +// The font definition for the 46 point Cmss font. +// +//***************************************************************************** +const tFont g_sFontCmss46 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 42, + + // + // The height of the font. + // + 47, + + // + // The baseline of the font. + // + 35, + + // + // The offset to each character in the font. + // + { + 0, 5, 41, 66, 193, 268, 391, 477, + 492, 542, 592, 636, 726, 743, 753, 764, + 861, 924, 963, 1030, 1090, 1158, 1222, 1285, + 1354, 1414, 1477, 1494, 1517, 1553, 1570, 1622, + 1661, 1746, 1832, 1901, 1969, 2052, 2123, 2193, + 2262, 2332, 2370, 2411, 2484, 2555, 2679, 2771, + 2857, 2925, 3028, 3097, 3160, 3230, 3299, 3388, + 3519, 3602, 3681, 3753, 3803, 3828, 3878, 3898, + 3909, 3924, 3964, 4034, 4075, 4142, 4182, 4221, + 4280, 4351, 4384, 4427, 4494, 4532, 4600, 4647, + 4690, 4753, 4816, 4846, 4876, 4910, 4957, 5002, + 5077, 5123, 5186, 5219, 5232, 5250, 5273, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss46Data +}; diff --git a/grlib/fonts/fontcmss46b.c b/grlib/fonts/fontcmss46b.c new file mode 100644 index 0000000..3b3545e --- /dev/null +++ b/grlib/fonts/fontcmss46b.c @@ -0,0 +1,559 @@ +//***************************************************************************** +// +// fontcmss46b.c - Font definition for the 46pt Cmss bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 46 point +// Bold: yes +// Italic: no +// Memory usage: 5636 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 46 point Cmss bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss46bData[5434] = +{ + 5, 18, 0, 101, 32, 37, 10, 240, 86, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 240, 240, 70, 70, 70, + 70, 70, 70, 0, 14, 32, 29, 20, 240, 240, 166, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 84, 100, + 100, 100, 99, 115, 100, 100, 99, 115, 0, 80, 112, 129, + 40, 0, 12, 18, 131, 240, 180, 115, 240, 180, 100, 240, + 180, 100, 240, 164, 116, 240, 164, 116, 240, 164, 100, 240, + 164, 116, 240, 164, 116, 240, 164, 100, 240, 180, 100, 240, + 164, 116, 240, 164, 116, 223, 15, 4, 95, 15, 6, 79, + 15, 6, 95, 15, 4, 240, 36, 100, 240, 164, 116, 240, + 164, 116, 240, 164, 100, 240, 164, 116, 240, 164, 116, 240, + 164, 100, 240, 47, 15, 4, 95, 15, 6, 79, 15, 6, + 95, 15, 4, 228, 100, 240, 164, 116, 240, 164, 115, 240, + 180, 100, 240, 164, 116, 240, 164, 116, 240, 164, 100, 240, + 179, 116, 240, 164, 116, 240, 164, 115, 240, 180, 100, 240, + 179, 116, 240, 179, 130, 0, 12, 80, 70, 23, 131, 240, + 83, 240, 56, 206, 143, 1, 111, 2, 102, 19, 37, 86, + 35, 67, 85, 51, 197, 51, 197, 51, 198, 35, 198, 35, + 203, 219, 205, 190, 174, 173, 189, 218, 219, 195, 38, 195, + 38, 195, 53, 195, 53, 195, 53, 66, 99, 53, 68, 67, + 38, 70, 35, 22, 95, 3, 95, 2, 127, 172, 230, 240, + 67, 240, 83, 0, 24, 64, 124, 44, 86, 240, 82, 234, + 240, 36, 204, 245, 181, 54, 213, 196, 85, 212, 197, 101, + 181, 197, 101, 165, 213, 101, 164, 229, 101, 149, 229, 101, + 133, 245, 101, 117, 240, 21, 101, 116, 240, 53, 70, 101, + 240, 53, 54, 101, 240, 78, 85, 240, 108, 100, 240, 152, + 117, 240, 240, 133, 240, 240, 148, 104, 240, 165, 91, 240, + 117, 92, 240, 101, 85, 54, 240, 84, 101, 69, 240, 69, + 85, 101, 240, 37, 101, 101, 240, 36, 117, 101, 240, 20, + 133, 101, 245, 133, 101, 229, 149, 101, 228, 165, 101, 213, + 165, 101, 197, 181, 101, 181, 213, 69, 196, 229, 54, 181, + 252, 196, 240, 42, 226, 240, 86, 0, 45, 16, 93, 37, + 0, 6, 5, 240, 249, 240, 203, 240, 165, 53, 240, 133, + 69, 240, 132, 101, 240, 101, 101, 240, 101, 101, 240, 101, + 101, 240, 101, 101, 240, 101, 85, 240, 117, 69, 240, 134, + 53, 240, 149, 22, 132, 219, 149, 201, 181, 200, 196, 230, + 197, 215, 197, 201, 165, 188, 149, 165, 39, 117, 166, 39, + 102, 165, 71, 85, 166, 87, 54, 166, 103, 22, 182, 109, + 198, 123, 215, 121, 247, 91, 114, 95, 15, 2, 111, 15, + 1, 126, 61, 167, 168, 0, 47, 17, 10, 240, 86, 70, + 70, 70, 70, 70, 84, 100, 99, 100, 99, 0, 40, 112, + 48, 16, 147, 196, 180, 180, 181, 180, 181, 165, 181, 181, + 165, 181, 166, 166, 166, 165, 181, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 181, 182, 166, 166, 181, + 181, 182, 181, 181, 197, 196, 197, 196, 212, 212, 211, 64, + 48, 16, 3, 212, 212, 212, 197, 196, 197, 197, 181, 182, + 181, 181, 182, 166, 166, 181, 182, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 165, 181, 166, 166, 165, + 181, 166, 165, 181, 165, 180, 181, 180, 180, 180, 195, 208, + 52, 23, 131, 240, 69, 240, 53, 240, 53, 195, 67, 67, + 85, 51, 53, 70, 35, 38, 71, 19, 23, 95, 2, 155, + 240, 19, 240, 27, 159, 2, 87, 19, 23, 70, 35, 38, + 69, 51, 53, 83, 67, 67, 197, 240, 53, 240, 53, 240, + 67, 0, 70, 64, 103, 38, 0, 30, 66, 240, 240, 84, + 240, 240, 68, 240, 240, 68, 240, 240, 68, 240, 240, 68, + 240, 240, 68, 240, 240, 68, 240, 240, 68, 240, 240, 68, + 240, 240, 68, 240, 240, 68, 240, 240, 68, 240, 240, 68, + 240, 95, 15, 2, 95, 15, 4, 79, 15, 4, 95, 15, + 2, 240, 84, 240, 240, 68, 240, 240, 68, 240, 240, 68, + 240, 240, 68, 240, 240, 68, 240, 240, 68, 240, 240, 68, + 240, 240, 68, 240, 240, 68, 240, 240, 68, 240, 240, 68, + 240, 240, 68, 240, 240, 68, 240, 240, 82, 0, 31, 18, + 10, 0, 35, 6, 70, 70, 70, 70, 70, 84, 100, 99, + 100, 99, 0, 8, 48, 9, 17, 0, 46, 109, 77, 77, + 0, 43, 13, 10, 0, 35, 6, 70, 70, 70, 70, 70, + 0, 14, 32, 94, 23, 240, 18, 240, 84, 240, 68, 240, + 68, 240, 52, 240, 68, 240, 52, 240, 68, 240, 68, 240, + 52, 240, 68, 240, 68, 240, 52, 240, 68, 240, 52, 240, + 68, 240, 68, 240, 52, 240, 68, 240, 68, 240, 52, 240, + 68, 240, 67, 240, 68, 240, 68, 240, 52, 240, 68, 240, + 68, 240, 52, 240, 68, 240, 68, 240, 52, 240, 68, 240, + 52, 240, 68, 240, 68, 240, 52, 240, 68, 240, 68, 240, + 52, 240, 68, 240, 52, 240, 68, 240, 68, 240, 82, 240, + 80, 71, 24, 240, 240, 22, 240, 26, 221, 165, 69, 149, + 101, 133, 102, 102, 102, 101, 133, 101, 133, 86, 134, 70, + 134, 70, 134, 70, 134, 70, 134, 70, 134, 70, 134, 70, + 134, 70, 134, 70, 134, 70, 134, 70, 134, 70, 134, 70, + 134, 70, 134, 70, 134, 85, 133, 101, 133, 102, 102, 102, + 102, 118, 85, 149, 69, 174, 202, 240, 22, 0, 31, 48, + 44, 21, 240, 243, 240, 21, 231, 156, 156, 156, 162, 54, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 175, + 1, 79, 2, 95, 1, 0, 29, 48, 69, 24, 0, 6, + 103, 252, 190, 159, 1, 118, 72, 85, 119, 85, 135, 83, + 166, 98, 166, 98, 166, 240, 54, 240, 54, 240, 54, 240, + 38, 240, 54, 240, 38, 240, 53, 240, 53, 240, 53, 240, + 53, 240, 53, 240, 53, 240, 53, 240, 53, 240, 53, 240, + 53, 240, 53, 240, 63, 4, 95, 4, 95, 4, 95, 4, + 95, 4, 0, 33, 64, 66, 24, 240, 240, 23, 236, 190, + 159, 1, 118, 86, 116, 134, 114, 150, 114, 150, 240, 54, + 240, 54, 240, 53, 240, 54, 240, 53, 240, 54, 218, 233, + 251, 240, 70, 240, 70, 240, 69, 240, 70, 240, 54, 240, + 54, 240, 54, 240, 54, 240, 54, 81, 198, 67, 182, 68, + 150, 87, 87, 95, 3, 143, 173, 232, 0, 31, 32, 70, + 25, 0, 7, 86, 240, 55, 240, 40, 240, 40, 240, 25, + 240, 25, 244, 21, 244, 21, 229, 21, 228, 37, 213, 37, + 212, 53, 197, 53, 196, 69, 181, 69, 180, 85, 165, 85, + 149, 101, 149, 101, 133, 117, 133, 117, 143, 6, 79, 6, + 79, 6, 79, 6, 240, 21, 240, 85, 240, 85, 240, 85, + 240, 85, 240, 85, 240, 85, 0, 35, 48, 68, 24, 0, + 6, 47, 1, 143, 1, 143, 1, 143, 1, 143, 1, 134, + 240, 54, 240, 54, 240, 54, 240, 54, 240, 54, 240, 54, + 240, 61, 191, 159, 1, 135, 70, 117, 102, 117, 117, 131, + 134, 240, 54, 240, 54, 240, 54, 240, 54, 240, 54, 240, + 54, 82, 182, 83, 165, 85, 134, 87, 87, 111, 2, 143, + 188, 231, 0, 31, 48, 67, 24, 240, 240, 55, 235, 204, + 189, 167, 82, 150, 240, 54, 240, 38, 240, 54, 240, 53, + 240, 69, 240, 54, 54, 150, 41, 118, 27, 104, 70, 103, + 102, 87, 117, 87, 118, 70, 134, 70, 134, 70, 134, 70, + 134, 70, 134, 70, 134, 85, 134, 85, 134, 85, 134, 86, + 117, 117, 102, 118, 71, 143, 173, 203, 247, 0, 31, 32, + 73, 24, 0, 6, 15, 4, 95, 5, 79, 5, 79, 5, + 79, 4, 240, 53, 240, 54, 240, 53, 240, 53, 240, 54, + 240, 53, 240, 54, 240, 53, 240, 54, 240, 53, 240, 54, + 240, 53, 240, 54, 240, 54, 240, 54, 240, 38, 240, 54, + 240, 54, 240, 54, 240, 53, 240, 54, 240, 54, 240, 54, + 240, 54, 240, 54, 240, 54, 240, 54, 240, 54, 0, 31, + 96, 65, 24, 240, 248, 236, 190, 159, 1, 118, 87, 101, + 133, 101, 133, 101, 133, 101, 133, 101, 133, 101, 133, 101, + 133, 102, 102, 118, 70, 158, 202, 206, 150, 70, 118, 102, + 101, 133, 86, 134, 70, 134, 70, 134, 70, 134, 70, 134, + 70, 134, 70, 134, 70, 134, 86, 102, 103, 71, 127, 1, + 158, 188, 232, 0, 31, 32, 67, 24, 240, 240, 22, 251, + 206, 159, 150, 70, 118, 101, 117, 118, 86, 133, 86, 133, + 86, 134, 70, 134, 70, 134, 70, 134, 70, 134, 70, 134, + 70, 134, 70, 119, 85, 119, 86, 103, 102, 57, 107, 22, + 121, 38, 150, 54, 240, 53, 240, 69, 240, 69, 240, 54, + 240, 53, 145, 134, 132, 86, 158, 158, 188, 247, 0, 31, + 64, 21, 10, 0, 16, 38, 70, 70, 70, 70, 70, 0, + 11, 102, 70, 70, 70, 70, 70, 0, 14, 32, 26, 10, + 0, 16, 38, 70, 70, 70, 70, 70, 0, 11, 102, 70, + 70, 70, 70, 70, 84, 100, 99, 100, 99, 0, 8, 48, + 37, 10, 0, 13, 102, 70, 70, 70, 70, 70, 240, 240, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 240, + 144, 32, 37, 0, 69, 79, 15, 1, 95, 15, 3, 79, + 15, 3, 95, 15, 1, 0, 33, 31, 15, 1, 95, 15, + 3, 79, 15, 3, 95, 15, 1, 0, 70, 57, 22, 0, + 31, 5, 240, 23, 247, 247, 247, 240, 21, 0, 10, 53, + 240, 37, 240, 37, 240, 37, 240, 37, 240, 37, 240, 21, + 240, 37, 240, 22, 240, 21, 240, 22, 246, 247, 246, 246, + 240, 22, 240, 22, 240, 22, 146, 86, 132, 86, 86, 95, + 2, 111, 153, 0, 6, 80, 49, 21, 0, 5, 104, 174, + 111, 1, 85, 86, 84, 118, 81, 150, 246, 246, 246, 231, + 215, 230, 230, 230, 245, 240, 21, 245, 240, 21, 240, 21, + 240, 20, 240, 36, 240, 36, 240, 36, 0, 9, 118, 246, + 246, 246, 246, 246, 0, 30, 16, 84, 31, 0, 9, 25, + 240, 78, 255, 3, 199, 102, 182, 165, 149, 198, 117, 124, + 117, 94, 101, 95, 1, 85, 69, 72, 85, 53, 118, 84, + 69, 118, 69, 53, 149, 69, 53, 149, 69, 53, 149, 69, + 53, 149, 69, 53, 149, 69, 53, 149, 69, 53, 149, 69, + 53, 149, 69, 53, 149, 85, 53, 117, 101, 53, 117, 101, + 70, 69, 133, 77, 149, 91, 181, 103, 215, 240, 168, 150, + 175, 4, 239, 240, 73, 0, 44, 80, 33, 0, 9, 87, + 240, 169, 240, 139, 240, 123, 240, 123, 240, 109, 240, 93, + 240, 86, 22, 240, 70, 39, 240, 54, 39, 240, 54, 39, + 240, 38, 71, 240, 22, 71, 240, 22, 71, 246, 103, 230, + 103, 230, 103, 214, 135, 198, 135, 198, 135, 182, 167, 175, + 8, 175, 8, 159, 10, 143, 10, 134, 214, 118, 231, 102, + 231, 102, 246, 86, 240, 23, 70, 240, 23, 69, 240, 54, + 0, 45, 112, 71, 30, 0, 7, 79, 3, 207, 6, 159, + 7, 143, 8, 118, 153, 102, 183, 102, 199, 86, 214, 86, + 214, 86, 214, 86, 198, 102, 198, 102, 182, 118, 151, 143, + 6, 159, 4, 191, 7, 134, 168, 102, 199, 86, 214, 86, + 215, 70, 230, 70, 230, 70, 230, 70, 230, 70, 215, 70, + 214, 86, 184, 95, 9, 111, 8, 127, 7, 143, 4, 0, + 42, 80, 71, 30, 0, 8, 122, 240, 47, 2, 191, 4, + 175, 5, 152, 118, 135, 195, 119, 225, 134, 240, 134, 240, + 150, 240, 150, 240, 134, 240, 150, 240, 150, 240, 150, 240, + 150, 240, 150, 240, 150, 240, 150, 240, 150, 240, 150, 240, + 166, 240, 150, 240, 150, 240, 166, 240, 151, 241, 135, 211, + 137, 118, 143, 7, 175, 5, 207, 1, 240, 42, 0, 42, + 48, 87, 33, 0, 8, 47, 4, 239, 7, 191, 9, 159, + 10, 134, 170, 118, 215, 118, 231, 102, 246, 102, 240, 22, + 86, 240, 22, 86, 240, 37, 86, 240, 38, 70, 240, 38, + 70, 240, 38, 70, 240, 38, 70, 240, 38, 70, 240, 38, + 70, 240, 38, 70, 240, 38, 70, 240, 38, 70, 240, 38, + 70, 240, 38, 70, 240, 22, 86, 240, 22, 86, 247, 86, + 231, 102, 215, 118, 185, 127, 10, 143, 9, 159, 7, 191, + 4, 0, 47, 16, 71, 26, 0, 6, 79, 6, 95, 6, + 95, 6, 95, 6, 95, 6, 86, 240, 86, 240, 86, 240, + 86, 240, 86, 240, 86, 240, 86, 240, 86, 240, 86, 240, + 95, 5, 111, 5, 111, 5, 111, 5, 102, 240, 86, 240, + 86, 240, 86, 240, 86, 240, 86, 240, 86, 240, 86, 240, + 86, 240, 95, 7, 79, 7, 79, 7, 79, 7, 79, 7, + 0, 36, 32, 70, 25, 0, 6, 47, 5, 95, 6, 79, + 6, 79, 6, 79, 5, 86, 240, 70, 240, 70, 240, 70, + 240, 70, 240, 70, 240, 70, 240, 70, 240, 70, 240, 79, + 3, 127, 4, 111, 4, 111, 3, 118, 240, 70, 240, 70, + 240, 70, 240, 70, 240, 70, 240, 70, 240, 70, 240, 70, + 240, 70, 240, 70, 240, 70, 240, 70, 240, 70, 0, 36, + 96, 72, 30, 0, 8, 122, 240, 47, 1, 207, 5, 159, + 6, 136, 134, 119, 195, 119, 226, 118, 240, 17, 102, 240, + 150, 240, 150, 240, 134, 240, 150, 240, 150, 240, 150, 240, + 150, 240, 150, 240, 150, 170, 70, 170, 70, 170, 70, 170, + 86, 214, 86, 214, 87, 198, 102, 198, 103, 182, 119, 166, + 136, 134, 159, 6, 175, 5, 207, 1, 240, 42, 0, 42, + 48, 71, 31, 0, 7, 102, 246, 70, 246, 70, 246, 70, + 246, 70, 246, 70, 246, 70, 246, 70, 246, 70, 246, 70, + 246, 70, 246, 70, 246, 70, 246, 70, 246, 79, 12, 79, + 12, 79, 12, 79, 12, 70, 246, 70, 246, 70, 246, 70, + 246, 70, 246, 70, 246, 70, 246, 70, 246, 70, 246, 70, + 246, 70, 246, 70, 246, 70, 246, 70, 246, 0, 43, 16, + 38, 10, 240, 86, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 0, + 14, 32, 43, 21, 0, 6, 86, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, 81, 150, 82, 134, + 84, 71, 111, 95, 125, 184, 0, 27, 48, 75, 32, 0, + 8, 6, 246, 86, 231, 86, 215, 102, 199, 118, 183, 134, + 167, 150, 151, 166, 135, 182, 119, 198, 103, 214, 87, 230, + 71, 246, 55, 240, 22, 24, 240, 47, 1, 240, 31, 2, + 255, 2, 255, 3, 234, 39, 217, 71, 200, 87, 199, 119, + 182, 151, 166, 166, 166, 167, 150, 183, 134, 199, 118, 199, + 118, 215, 102, 231, 86, 247, 70, 240, 21, 0, 44, 80, + 71, 23, 0, 5, 102, 240, 38, 240, 38, 240, 38, 240, + 38, 240, 38, 240, 38, 240, 38, 240, 38, 240, 38, 240, + 38, 240, 38, 240, 38, 240, 38, 240, 38, 240, 38, 240, + 38, 240, 38, 240, 38, 240, 38, 240, 38, 240, 38, 240, + 38, 240, 38, 240, 38, 240, 38, 240, 38, 240, 47, 4, + 79, 4, 79, 4, 79, 4, 79, 4, 0, 32, 16, 117, + 40, 0, 10, 8, 240, 88, 73, 240, 57, 74, 240, 26, + 74, 240, 26, 74, 240, 26, 75, 235, 75, 235, 70, 20, + 228, 22, 70, 21, 197, 22, 70, 21, 197, 22, 70, 37, + 165, 38, 70, 37, 165, 38, 70, 37, 165, 38, 70, 53, + 133, 54, 70, 53, 133, 54, 70, 54, 101, 70, 70, 69, + 101, 70, 70, 69, 101, 70, 70, 85, 69, 86, 70, 85, + 69, 86, 70, 85, 69, 86, 70, 101, 37, 102, 70, 101, + 37, 102, 70, 107, 118, 70, 122, 118, 70, 122, 118, 70, + 136, 134, 70, 136, 134, 70, 135, 150, 70, 150, 150, 70, + 164, 166, 70, 240, 150, 0, 55, 64, 89, 32, 0, 8, + 24, 229, 74, 198, 74, 198, 75, 182, 75, 182, 76, 166, + 76, 166, 70, 22, 150, 70, 22, 150, 70, 38, 134, 70, + 38, 134, 70, 54, 118, 70, 54, 118, 70, 70, 102, 70, + 70, 102, 70, 86, 86, 70, 86, 86, 70, 102, 70, 70, + 102, 70, 70, 118, 54, 70, 118, 54, 70, 134, 38, 70, + 134, 38, 70, 150, 22, 70, 150, 22, 70, 172, 70, 172, + 70, 187, 70, 187, 70, 202, 70, 202, 70, 217, 0, 44, + 64, 86, 33, 240, 240, 217, 240, 111, 240, 47, 3, 223, + 6, 199, 120, 166, 182, 150, 214, 134, 214, 118, 246, 102, + 246, 102, 246, 101, 240, 38, 70, 240, 38, 70, 240, 38, + 70, 240, 38, 70, 240, 38, 70, 240, 38, 70, 240, 38, + 70, 240, 38, 70, 240, 38, 70, 240, 38, 70, 240, 38, + 70, 240, 38, 86, 246, 102, 246, 102, 246, 118, 214, 135, + 183, 151, 151, 169, 104, 191, 6, 223, 4, 240, 31, 240, + 105, 0, 43, 70, 29, 0, 7, 47, 3, 191, 6, 143, + 7, 127, 8, 102, 168, 86, 198, 86, 199, 70, 214, 70, + 214, 70, 214, 70, 214, 70, 214, 70, 214, 70, 199, 70, + 198, 86, 168, 95, 8, 111, 7, 127, 6, 143, 3, 182, + 240, 134, 240, 134, 240, 134, 240, 134, 240, 134, 240, 134, + 240, 134, 240, 134, 240, 134, 240, 134, 240, 134, 0, 42, + 96, 104, 34, 240, 240, 234, 240, 127, 240, 47, 3, 255, + 6, 200, 104, 183, 167, 151, 199, 134, 230, 118, 240, 22, + 102, 240, 22, 102, 240, 22, 101, 240, 54, 70, 240, 54, + 70, 240, 54, 70, 240, 54, 70, 240, 54, 70, 240, 54, + 70, 240, 54, 70, 240, 54, 70, 240, 54, 70, 240, 54, + 70, 240, 54, 70, 240, 54, 86, 240, 23, 86, 102, 70, + 102, 103, 54, 118, 103, 23, 119, 94, 151, 93, 153, 75, + 191, 7, 239, 3, 240, 47, 3, 240, 79, 1, 240, 200, + 240, 184, 240, 200, 240, 199, 0, 26, 32, 71, 29, 0, + 7, 47, 3, 191, 6, 143, 7, 127, 8, 102, 168, 86, + 198, 86, 199, 70, 214, 70, 214, 70, 214, 70, 214, 70, + 214, 70, 199, 70, 198, 86, 167, 111, 7, 127, 6, 143, + 4, 166, 103, 166, 103, 166, 119, 150, 134, 150, 135, 134, + 150, 134, 151, 118, 167, 102, 182, 102, 183, 86, 198, 86, + 199, 70, 214, 70, 229, 0, 40, 48, 65, 26, 0, 7, + 57, 239, 159, 3, 143, 3, 119, 102, 118, 148, 102, 193, + 118, 240, 86, 240, 86, 240, 87, 240, 73, 240, 59, 255, + 207, 1, 191, 1, 191, 1, 207, 236, 240, 56, 240, 87, + 240, 71, 240, 86, 240, 86, 66, 230, 67, 214, 69, 167, + 71, 119, 95, 6, 95, 5, 127, 3, 175, 233, 0, 33, + 112, 70, 32, 0, 8, 15, 13, 79, 13, 79, 13, 79, + 13, 79, 13, 246, 240, 182, 240, 182, 240, 182, 240, 182, + 240, 182, 240, 182, 240, 182, 240, 182, 240, 182, 240, 182, + 240, 182, 240, 182, 240, 182, 240, 182, 240, 182, 240, 182, + 240, 182, 240, 182, 240, 182, 240, 182, 240, 182, 240, 182, + 240, 182, 240, 182, 240, 182, 240, 182, 0, 45, 112, 72, + 30, 0, 7, 70, 230, 70, 230, 70, 230, 70, 230, 70, + 230, 70, 230, 70, 230, 70, 230, 70, 230, 70, 230, 70, + 230, 70, 230, 70, 230, 70, 230, 70, 230, 70, 230, 70, + 230, 70, 230, 70, 230, 70, 230, 70, 230, 70, 230, 70, + 230, 70, 230, 70, 230, 86, 199, 86, 198, 103, 167, 120, + 104, 159, 5, 191, 3, 223, 240, 57, 0, 39, 16, 82, + 35, 0, 8, 102, 240, 70, 71, 240, 54, 87, 240, 22, + 103, 240, 22, 103, 247, 119, 230, 135, 230, 135, 215, 151, + 198, 167, 198, 167, 183, 183, 166, 199, 166, 214, 150, 231, + 134, 231, 119, 247, 102, 240, 23, 102, 240, 23, 87, 240, + 39, 70, 240, 55, 70, 240, 55, 55, 240, 71, 38, 240, + 87, 38, 240, 102, 22, 240, 125, 240, 125, 240, 139, 240, + 155, 240, 155, 240, 169, 240, 185, 0, 50, 122, 49, 0, + 12, 37, 231, 228, 86, 216, 198, 70, 201, 197, 102, 185, + 197, 102, 185, 197, 102, 171, 166, 102, 171, 165, 134, 149, + 21, 165, 134, 149, 21, 165, 134, 133, 38, 134, 134, 133, + 38, 133, 166, 117, 53, 133, 166, 117, 54, 102, 166, 101, + 70, 102, 166, 101, 70, 101, 198, 85, 85, 101, 198, 85, + 86, 70, 198, 69, 102, 69, 230, 53, 102, 69, 230, 53, + 117, 69, 230, 53, 118, 38, 230, 37, 134, 37, 240, 22, + 21, 134, 37, 240, 22, 21, 149, 37, 240, 22, 20, 172, + 240, 27, 171, 240, 58, 186, 240, 58, 186, 240, 57, 202, + 240, 57, 201, 240, 88, 216, 240, 87, 231, 0, 69, 77, + 34, 0, 8, 87, 215, 120, 184, 136, 167, 152, 151, 184, + 120, 200, 103, 232, 71, 240, 23, 56, 240, 24, 39, 240, + 63, 240, 93, 240, 124, 240, 123, 240, 153, 240, 184, 240, + 184, 240, 169, 240, 170, 240, 140, 240, 110, 240, 71, 23, + 240, 71, 39, 240, 39, 56, 247, 88, 216, 103, 215, 135, + 183, 152, 152, 168, 135, 199, 119, 216, 88, 232, 71, 240, + 23, 0, 47, 32, 74, 34, 0, 8, 71, 240, 38, 72, + 247, 87, 231, 104, 215, 120, 183, 151, 167, 168, 151, 184, + 119, 215, 103, 232, 87, 248, 55, 240, 39, 39, 240, 56, + 23, 240, 78, 240, 108, 240, 124, 240, 138, 240, 168, 240, + 199, 240, 198, 240, 214, 240, 214, 240, 214, 240, 214, 240, + 214, 240, 214, 240, 214, 240, 214, 240, 214, 240, 214, 240, + 214, 240, 214, 0, 48, 96, 72, 29, 0, 7, 63, 9, + 95, 9, 95, 9, 95, 9, 95, 9, 240, 88, 240, 103, + 240, 103, 240, 104, 240, 103, 240, 103, 240, 103, 240, 104, + 240, 103, 240, 103, 240, 103, 240, 104, 240, 103, 240, 103, + 240, 104, 240, 103, 240, 103, 240, 103, 240, 104, 240, 103, + 240, 103, 240, 103, 240, 127, 9, 79, 10, 79, 10, 79, + 10, 79, 10, 0, 40, 48, 48, 15, 10, 91, 74, 86, + 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, + 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, + 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, + 150, 150, 154, 91, 74, 80, 29, 21, 240, 240, 243, 131, + 100, 116, 99, 131, 100, 116, 100, 116, 86, 86, 70, 86, + 70, 86, 70, 86, 70, 86, 70, 86, 0, 84, 64, 48, + 15, 26, 75, 90, 150, 150, 150, 150, 150, 150, 150, 150, + 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, + 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, + 150, 150, 150, 150, 150, 150, 150, 90, 75, 90, 64, 17, + 19, 240, 240, 213, 215, 185, 149, 21, 117, 52, 100, 100, + 83, 132, 0, 86, 10, 10, 240, 86, 70, 70, 70, 70, + 0, 48, 17, 10, 240, 131, 100, 99, 100, 100, 86, 70, + 70, 70, 70, 70, 0, 40, 64, 48, 24, 0, 36, 105, + 206, 159, 2, 117, 102, 115, 150, 98, 166, 240, 54, 240, + 54, 240, 54, 204, 143, 1, 103, 86, 87, 102, 86, 118, + 70, 134, 70, 134, 70, 134, 71, 103, 87, 72, 92, 22, + 106, 38, 134, 84, 0, 33, 80, 71, 24, 0, 6, 6, + 240, 54, 240, 54, 240, 54, 240, 54, 240, 54, 240, 54, + 240, 54, 240, 54, 240, 54, 240, 54, 240, 54, 54, 150, + 26, 127, 3, 104, 71, 86, 118, 86, 118, 86, 134, 70, + 134, 70, 134, 70, 134, 70, 134, 70, 134, 70, 134, 70, + 134, 70, 134, 70, 118, 86, 118, 87, 86, 111, 3, 102, + 25, 149, 38, 0, 34, 32, 45, 23, 0, 35, 56, 205, + 159, 127, 1, 103, 100, 102, 146, 101, 240, 38, 240, 38, + 240, 38, 240, 38, 240, 38, 240, 38, 240, 38, 240, 38, + 240, 54, 161, 102, 146, 103, 101, 111, 2, 127, 157, 200, + 0, 32, 96, 69, 25, 0, 8, 37, 240, 70, 240, 70, + 240, 70, 240, 70, 240, 70, 240, 70, 240, 70, 240, 70, + 240, 70, 240, 70, 166, 54, 138, 22, 127, 3, 103, 87, + 86, 134, 86, 134, 70, 150, 70, 150, 70, 150, 70, 150, + 70, 150, 70, 150, 70, 150, 70, 150, 70, 150, 86, 134, + 86, 134, 102, 88, 111, 4, 138, 22, 166, 68, 0, 35, + 45, 25, 0, 41, 72, 253, 175, 1, 135, 86, 102, 133, + 102, 148, 101, 165, 70, 165, 70, 165, 79, 6, 79, 6, + 70, 240, 70, 240, 70, 240, 86, 240, 70, 194, 102, 163, + 103, 102, 127, 3, 158, 232, 0, 35, 64, 41, 20, 0, + 6, 8, 170, 155, 134, 66, 118, 97, 118, 230, 230, 230, + 230, 230, 204, 125, 140, 166, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 0, + 28, 112, 63, 27, 0, 44, 89, 68, 143, 4, 127, 5, + 102, 70, 181, 102, 150, 102, 150, 102, 150, 102, 150, 102, + 150, 102, 150, 102, 166, 70, 206, 221, 225, 40, 243, 240, + 147, 240, 159, 1, 191, 3, 175, 4, 143, 4, 111, 7, + 85, 182, 69, 213, 69, 213, 70, 197, 86, 150, 127, 4, + 159, 2, 219, 0, 8, 71, 23, 0, 5, 102, 240, 38, + 240, 38, 240, 38, 240, 38, 240, 38, 240, 38, 240, 38, + 240, 38, 240, 38, 240, 38, 240, 38, 70, 118, 42, 86, + 27, 89, 55, 71, 102, 71, 102, 70, 118, 70, 118, 70, + 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, + 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, + 118, 0, 32, 16, 35, 10, 240, 86, 70, 70, 70, 70, + 70, 0, 6, 102, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 0, 14, 32, 46, 17, 240, 240, 182, 167, 167, 167, 167, + 182, 0, 12, 6, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 182, 66, 71, 76, 92, 91, 150, 240, 240, + 192, 65, 23, 0, 5, 101, 240, 53, 240, 53, 240, 53, + 240, 53, 240, 53, 240, 53, 240, 53, 240, 53, 240, 53, + 240, 53, 240, 53, 118, 85, 103, 85, 87, 101, 71, 117, + 55, 133, 39, 149, 23, 172, 187, 203, 204, 189, 174, 150, + 38, 149, 70, 133, 86, 117, 87, 101, 102, 101, 118, 85, + 134, 69, 134, 0, 32, 16, 38, 10, 240, 86, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 0, 14, 32, 71, 37, 0, 60, + 22, 70, 134, 118, 42, 58, 102, 27, 44, 86, 18, 58, + 71, 71, 104, 102, 71, 103, 118, 70, 118, 134, 70, 118, + 134, 70, 118, 134, 70, 118, 134, 70, 118, 134, 70, 118, + 134, 70, 118, 134, 70, 118, 134, 70, 118, 134, 70, 118, + 134, 70, 118, 134, 70, 118, 134, 70, 118, 134, 70, 118, + 134, 70, 118, 134, 0, 51, 48, 50, 23, 0, 37, 54, + 70, 118, 42, 86, 27, 86, 18, 55, 71, 102, 71, 102, + 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, + 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, + 70, 118, 70, 118, 70, 118, 0, 32, 16, 45, 26, 0, + 43, 24, 254, 191, 1, 150, 102, 118, 134, 102, 134, 101, + 165, 86, 166, 70, 166, 70, 166, 70, 166, 70, 166, 70, + 166, 70, 166, 86, 135, 86, 134, 104, 87, 127, 3, 159, + 1, 190, 248, 0, 37, 16, 67, 24, 0, 37, 37, 150, + 41, 118, 27, 111, 4, 88, 71, 86, 118, 86, 119, 70, + 134, 70, 134, 70, 134, 70, 134, 70, 134, 70, 134, 70, + 134, 70, 134, 70, 134, 70, 118, 86, 118, 87, 71, 111, + 2, 118, 25, 134, 38, 166, 240, 54, 240, 54, 240, 54, + 240, 54, 240, 54, 240, 54, 240, 54, 240, 54, 0, 8, + 32, 69, 24, 0, 36, 101, 69, 137, 22, 127, 2, 111, + 3, 88, 56, 86, 103, 86, 118, 70, 134, 70, 134, 70, + 134, 70, 134, 70, 134, 70, 134, 70, 134, 70, 134, 70, + 134, 86, 118, 86, 103, 102, 72, 111, 3, 122, 22, 150, + 54, 240, 54, 240, 54, 240, 54, 240, 54, 240, 54, 240, + 54, 240, 54, 240, 54, 240, 54, 0, 6, 64, 32, 17, + 0, 27, 86, 67, 70, 37, 70, 22, 70, 22, 74, 120, + 151, 167, 166, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 0, 24, 96, 34, 19, 0, 29, 8, 156, + 109, 101, 68, 85, 114, 85, 229, 231, 203, 156, 140, 139, + 170, 214, 244, 81, 148, 67, 132, 69, 85, 78, 94, 123, + 167, 0, 27, 16, 35, 20, 0, 17, 118, 230, 230, 230, + 230, 230, 191, 95, 95, 134, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 231, 51, 125, 140, 138, 197, + 0, 28, 80, 50, 23, 0, 37, 54, 118, 70, 118, 70, + 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, + 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, 118, 70, + 118, 70, 118, 70, 103, 70, 103, 71, 72, 91, 22, 105, + 37, 135, 0, 30, 48, 43, 24, 0, 39, 5, 165, 70, + 149, 70, 134, 85, 133, 101, 133, 102, 102, 117, 101, 133, + 101, 134, 70, 149, 69, 165, 69, 166, 38, 166, 38, 181, + 37, 204, 204, 218, 234, 234, 248, 240, 24, 0, 34, 32, + 71, 35, 0, 56, 117, 147, 149, 69, 133, 133, 70, 117, + 118, 85, 102, 117, 101, 103, 101, 102, 87, 101, 102, 87, + 86, 117, 67, 21, 69, 133, 67, 21, 69, 134, 51, 21, + 69, 134, 36, 21, 53, 165, 36, 37, 37, 165, 35, 53, + 37, 166, 19, 53, 22, 185, 53, 21, 201, 74, 200, 90, + 200, 90, 215, 89, 230, 120, 245, 119, 0, 49, 48, 45, + 24, 0, 39, 6, 133, 86, 118, 102, 86, 134, 70, 150, + 38, 188, 203, 233, 240, 24, 240, 38, 240, 54, 240, 39, + 240, 40, 250, 213, 37, 182, 38, 150, 69, 149, 101, 118, + 102, 86, 134, 69, 165, 0, 33, 64, 61, 24, 0, 39, + 5, 165, 70, 149, 70, 134, 86, 117, 102, 117, 118, 86, + 118, 85, 149, 70, 150, 54, 165, 53, 182, 37, 182, 21, + 213, 21, 219, 233, 249, 240, 24, 240, 23, 240, 54, 240, + 54, 240, 53, 240, 69, 240, 69, 240, 68, 240, 69, 194, + 69, 219, 218, 233, 240, 22, 0, 8, 16, 34, 22, 0, + 35, 127, 2, 95, 2, 95, 2, 246, 247, 231, 246, 246, + 247, 231, 246, 246, 247, 246, 246, 246, 247, 246, 255, 3, + 79, 3, 79, 3, 0, 30, 96, 13, 29, 0, 72, 79, + 10, 79, 10, 79, 10, 0, 80, 32, 22, 54, 0, 127, + 0, 8, 15, 15, 15, 5, 79, 15, 15, 5, 79, 15, + 15, 5, 0, 127, 0, 22, 21, 19, 240, 240, 150, 38, + 85, 53, 101, 53, 85, 68, 100, 69, 100, 68, 115, 83, + 0, 86, 64, 19, 20, 240, 240, 212, 99, 103, 67, 90, + 20, 68, 26, 83, 72, 83, 100, 0, 93, 48, +}; + +//***************************************************************************** +// +// The font definition for the 46 point Cmss bold font. +// +//***************************************************************************** +const tFont g_sFontCmss46b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 49, + + // + // The height of the font. + // + 45, + + // + // The baseline of the font. + // + 34, + + // + // The offset to each character in the font. + // + { + 0, 5, 42, 71, 200, 270, 394, 487, + 504, 552, 600, 652, 755, 773, 782, 795, + 889, 960, 1004, 1073, 1139, 1209, 1277, 1344, + 1417, 1482, 1549, 1570, 1596, 1633, 1665, 1722, + 1771, 1855, 1935, 2006, 2077, 2164, 2235, 2305, + 2377, 2448, 2486, 2529, 2604, 2675, 2792, 2881, + 2967, 3037, 3141, 3212, 3277, 3347, 3419, 3501, + 3623, 3700, 3774, 3846, 3894, 3923, 3971, 3988, + 3998, 4015, 4063, 4134, 4179, 4248, 4293, 4334, + 4397, 4468, 4503, 4549, 4614, 4652, 4723, 4773, + 4818, 4885, 4954, 4986, 5020, 5055, 5105, 5148, + 5219, 5264, 5325, 5359, 5372, 5394, 5415, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss46bData +}; diff --git a/grlib/fonts/fontcmss46i.c b/grlib/fonts/fontcmss46i.c new file mode 100644 index 0000000..16a9e42 --- /dev/null +++ b/grlib/fonts/fontcmss46i.c @@ -0,0 +1,582 @@ +//***************************************************************************** +// +// fontcmss46i.c - Font definition for the 46pt Cmss italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 46 point +// Bold: no +// Italic: yes +// Memory usage: 5904 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 46 point Cmss italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss46iData[5701] = +{ + 5, 18, 0, 105, 96, 37, 14, 0, 6, 4, 164, 163, + 179, 179, 164, 164, 163, 179, 179, 164, 163, 179, 179, 179, + 179, 163, 179, 179, 179, 179, 163, 179, 179, 0, 8, 35, + 164, 164, 164, 0, 22, 32, 25, 19, 0, 7, 52, 84, + 100, 84, 99, 99, 100, 84, 115, 99, 114, 114, 114, 114, + 130, 114, 114, 114, 0, 84, 16, 129, 37, 0, 16, 49, + 145, 240, 162, 130, 240, 162, 130, 240, 146, 130, 240, 162, + 130, 240, 161, 145, 240, 162, 130, 240, 161, 145, 240, 162, + 130, 240, 161, 145, 240, 162, 130, 240, 161, 145, 240, 162, + 130, 240, 161, 145, 240, 162, 130, 239, 15, 1, 111, 15, + 1, 240, 18, 130, 240, 146, 130, 240, 162, 130, 240, 146, + 130, 240, 162, 130, 240, 146, 130, 240, 31, 15, 1, 111, + 15, 1, 226, 130, 240, 161, 145, 240, 162, 130, 240, 162, + 130, 240, 146, 130, 240, 162, 130, 240, 146, 130, 240, 162, + 130, 240, 146, 130, 240, 162, 130, 240, 161, 145, 240, 162, + 130, 240, 161, 145, 240, 162, 130, 240, 162, 130, 240, 161, + 145, 0, 16, 112, 97, 27, 243, 240, 147, 240, 131, 240, + 106, 240, 28, 238, 197, 19, 36, 180, 50, 82, 164, 51, + 240, 36, 51, 240, 20, 67, 240, 20, 66, 240, 36, 66, + 240, 36, 51, 240, 37, 35, 240, 38, 18, 240, 72, 240, + 74, 240, 59, 240, 58, 240, 72, 240, 66, 37, 240, 35, + 37, 240, 35, 52, 240, 35, 52, 240, 34, 68, 240, 19, + 68, 240, 19, 67, 240, 35, 52, 145, 114, 52, 163, 82, + 37, 150, 35, 21, 191, 221, 240, 25, 240, 100, 240, 131, + 240, 147, 0, 32, 64, 117, 33, 116, 240, 33, 151, 242, + 137, 210, 132, 37, 178, 147, 68, 177, 148, 68, 162, 132, + 84, 146, 148, 84, 130, 164, 84, 129, 165, 84, 114, 164, + 84, 114, 180, 84, 98, 196, 84, 82, 212, 68, 98, 212, + 68, 82, 244, 36, 82, 240, 25, 82, 240, 55, 98, 240, + 68, 114, 240, 242, 116, 240, 66, 118, 240, 50, 104, 240, + 18, 100, 21, 226, 100, 52, 210, 115, 68, 210, 100, 68, + 194, 116, 68, 178, 132, 68, 162, 132, 84, 162, 132, 83, + 162, 148, 68, 146, 164, 68, 130, 180, 67, 146, 180, 52, + 130, 212, 20, 130, 232, 130, 240, 22, 146, 240, 36, 0, + 38, 48, 87, 34, 0, 14, 84, 240, 216, 240, 169, 240, + 163, 52, 240, 131, 68, 240, 116, 68, 240, 116, 68, 240, + 115, 84, 240, 115, 68, 240, 116, 68, 240, 116, 52, 240, + 132, 36, 240, 148, 20, 240, 168, 240, 183, 178, 230, 180, + 213, 195, 199, 179, 200, 179, 165, 21, 147, 164, 53, 131, + 164, 84, 115, 164, 101, 83, 180, 116, 68, 164, 148, 36, + 180, 152, 212, 166, 229, 164, 246, 105, 239, 12, 140, 59, + 167, 136, 0, 51, 112, 16, 10, 240, 240, 36, 100, 99, + 100, 115, 114, 114, 130, 114, 0, 44, 96, 96, 21, 227, + 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, 36, + 240, 35, 240, 36, 240, 20, 240, 35, 240, 36, 240, 36, + 240, 20, 240, 36, 240, 35, 240, 36, 240, 36, 240, 20, + 240, 36, 240, 36, 240, 36, 240, 20, 240, 36, 240, 36, + 240, 36, 240, 36, 240, 20, 240, 36, 240, 36, 240, 36, + 240, 36, 240, 36, 240, 36, 240, 36, 240, 36, 240, 36, + 240, 36, 240, 51, 240, 52, 240, 36, 240, 36, 240, 51, + 240, 52, 240, 51, 240, 67, 240, 51, 224, 97, 21, 163, + 240, 51, 240, 67, 240, 52, 240, 51, 240, 52, 240, 36, + 240, 51, 240, 52, 240, 36, 240, 36, 240, 36, 240, 36, + 240, 36, 240, 36, 240, 36, 240, 36, 240, 36, 240, 36, + 240, 36, 240, 20, 240, 36, 240, 36, 240, 36, 240, 36, + 240, 20, 240, 36, 240, 36, 240, 36, 240, 20, 240, 36, + 240, 36, 240, 20, 240, 36, 240, 20, 240, 36, 240, 35, + 240, 36, 240, 35, 240, 35, 240, 36, 240, 35, 240, 35, + 240, 35, 240, 35, 240, 35, 240, 35, 240, 48, 42, 22, + 162, 240, 67, 240, 67, 240, 67, 240, 67, 195, 66, 67, + 100, 50, 37, 105, 21, 155, 215, 246, 233, 189, 117, 34, + 37, 100, 50, 52, 98, 67, 66, 211, 240, 67, 240, 67, + 240, 66, 0, 76, 90, 33, 0, 39, 33, 240, 240, 18, + 240, 240, 18, 240, 240, 18, 240, 240, 17, 240, 240, 33, + 240, 240, 18, 240, 240, 18, 240, 240, 18, 240, 240, 17, + 240, 240, 18, 240, 240, 18, 240, 240, 18, 240, 47, 14, + 79, 14, 240, 34, 240, 240, 18, 240, 240, 18, 240, 240, + 17, 240, 240, 33, 240, 240, 18, 240, 240, 18, 240, 240, + 18, 240, 240, 17, 240, 240, 33, 240, 240, 18, 240, 240, + 18, 240, 240, 18, 240, 240, 17, 0, 39, 96, 17, 10, + 0, 39, 4, 100, 99, 100, 115, 114, 115, 114, 130, 114, + 0, 8, 64, 10, 16, 0, 46, 12, 76, 76, 0, 42, + 64, 11, 8, 0, 31, 19, 68, 68, 67, 0, 12, 80, + 98, 30, 240, 161, 240, 210, 240, 194, 240, 210, 240, 194, + 240, 210, 240, 194, 240, 210, 240, 194, 240, 209, 240, 210, + 240, 209, 240, 210, 240, 194, 240, 210, 240, 194, 240, 210, + 240, 194, 240, 210, 240, 194, 240, 210, 240, 194, 240, 209, + 240, 210, 240, 209, 240, 210, 240, 194, 240, 210, 240, 194, + 240, 210, 240, 194, 240, 210, 240, 194, 240, 210, 240, 194, + 240, 209, 240, 210, 240, 209, 240, 210, 240, 194, 240, 210, + 240, 194, 240, 210, 240, 194, 240, 210, 240, 194, 240, 210, + 240, 208, 65, 25, 0, 13, 118, 240, 42, 235, 212, 69, + 180, 100, 164, 132, 132, 148, 131, 164, 116, 164, 116, 164, + 100, 180, 100, 180, 100, 180, 99, 180, 100, 180, 100, 180, + 100, 180, 100, 165, 84, 180, 100, 180, 100, 180, 100, 164, + 116, 164, 116, 148, 132, 148, 132, 132, 164, 100, 181, 69, + 204, 218, 240, 38, 0, 39, 48, 62, 20, 0, 11, 113, + 240, 35, 229, 185, 185, 164, 36, 240, 20, 240, 19, 240, + 20, 240, 20, 240, 20, 240, 19, 240, 35, 240, 20, 240, + 20, 240, 20, 240, 19, 240, 20, 240, 20, 240, 20, 240, + 19, 240, 35, 240, 20, 240, 20, 240, 20, 240, 19, 240, + 20, 240, 20, 190, 95, 95, 0, 30, 80, 68, 26, 0, + 14, 54, 240, 58, 252, 212, 70, 179, 133, 147, 149, 146, + 180, 131, 180, 145, 196, 145, 196, 240, 116, 240, 100, 240, + 116, 240, 100, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 100, 240, 100, 240, 99, 240, 115, 240, 115, 240, + 100, 240, 99, 240, 115, 240, 115, 240, 127, 2, 159, 2, + 159, 2, 0, 40, 16, 65, 25, 0, 13, 118, 240, 42, + 236, 181, 85, 163, 132, 147, 148, 161, 164, 240, 100, 240, + 99, 240, 100, 240, 84, 240, 84, 240, 84, 240, 24, 240, + 38, 240, 72, 240, 117, 240, 100, 240, 116, 240, 100, 240, + 100, 240, 100, 240, 100, 240, 84, 113, 212, 114, 180, 131, + 149, 133, 101, 174, 203, 240, 23, 0, 39, 32, 72, 24, + 0, 13, 117, 240, 69, 240, 53, 240, 50, 19, 240, 35, + 19, 240, 34, 20, 240, 19, 20, 243, 35, 244, 35, 243, + 36, 227, 52, 212, 52, 196, 67, 211, 83, 195, 84, 180, + 84, 164, 99, 179, 115, 163, 131, 148, 116, 159, 4, 79, + 5, 79, 4, 240, 20, 240, 84, 240, 84, 240, 83, 240, + 99, 240, 84, 240, 84, 240, 84, 0, 37, 32, 61, 26, + 0, 13, 127, 190, 191, 180, 240, 115, 240, 131, 240, 131, + 240, 116, 240, 115, 240, 131, 240, 131, 240, 116, 37, 253, + 222, 198, 53, 196, 101, 164, 132, 240, 116, 240, 116, 240, + 116, 240, 116, 240, 116, 240, 100, 240, 116, 145, 180, 146, + 180, 147, 148, 165, 85, 205, 234, 240, 54, 0, 41, 65, + 25, 0, 14, 23, 240, 26, 220, 197, 97, 196, 240, 84, + 240, 84, 240, 84, 240, 100, 240, 84, 240, 85, 69, 180, + 56, 164, 27, 136, 69, 134, 117, 117, 148, 117, 148, 101, + 164, 101, 164, 100, 180, 100, 180, 100, 164, 116, 164, 116, + 164, 116, 148, 132, 132, 164, 116, 165, 69, 203, 249, 240, + 38, 0, 39, 48, 69, 24, 0, 12, 47, 3, 95, 4, + 95, 3, 240, 99, 240, 83, 240, 83, 240, 83, 240, 83, + 240, 83, 240, 84, 240, 83, 240, 83, 240, 84, 240, 83, + 240, 83, 240, 84, 240, 83, 240, 84, 240, 83, 240, 84, + 240, 83, 240, 84, 240, 83, 240, 84, 240, 84, 240, 83, + 240, 84, 240, 84, 240, 83, 240, 84, 240, 84, 0, 38, + 64, 64, 25, 0, 13, 118, 240, 42, 236, 196, 85, 163, + 132, 148, 147, 147, 163, 132, 163, 131, 179, 131, 164, 132, + 147, 163, 131, 180, 84, 219, 240, 22, 240, 42, 213, 68, + 180, 116, 148, 148, 116, 164, 116, 164, 100, 180, 100, 180, + 100, 164, 116, 164, 116, 148, 133, 117, 149, 85, 189, 218, + 240, 38, 0, 39, 32, 65, 24, 0, 13, 53, 240, 41, + 235, 181, 53, 179, 100, 163, 132, 132, 132, 131, 148, 116, + 148, 116, 148, 115, 164, 100, 164, 100, 164, 100, 149, 100, + 149, 100, 148, 116, 133, 117, 102, 133, 51, 20, 138, 20, + 168, 36, 181, 52, 240, 84, 240, 68, 240, 84, 240, 68, + 240, 68, 178, 85, 188, 217, 240, 22, 0, 38, 16, 12, + 0, 23, 4, 132, 131, 147, 0, 18, 99, 147, 132, 132, + 0, 19, 23, 13, 0, 25, 4, 148, 148, 147, 0, 20, + 52, 147, 163, 148, 163, 162, 163, 162, 178, 162, 0, 11, + 16, 37, 14, 0, 20, 4, 164, 164, 163, 0, 10, 3, + 179, 179, 163, 179, 179, 179, 179, 163, 179, 179, 179, 179, + 164, 163, 179, 179, 164, 164, 163, 179, 179, 164, 164, 0, + 6, 64, 17, 35, 0, 79, 15, 14, 111, 14, 0, 26, + 111, 14, 111, 14, 0, 83, 112, 42, 19, 0, 27, 68, + 244, 244, 243, 0, 13, 99, 240, 19, 240, 19, 243, 240, + 19, 244, 243, 244, 243, 243, 244, 228, 228, 228, 228, 244, + 228, 244, 244, 244, 146, 69, 100, 94, 92, 151, 0, 8, + 32, 53, 20, 0, 8, 23, 187, 126, 100, 101, 82, 148, + 240, 20, 240, 20, 240, 20, 244, 240, 20, 244, 229, 229, + 229, 244, 244, 244, 240, 19, 240, 19, 240, 35, 240, 35, + 240, 19, 240, 35, 240, 35, 0, 11, 116, 240, 20, 240, + 20, 240, 19, 0, 32, 16, 86, 30, 0, 13, 23, 240, + 92, 240, 31, 230, 85, 198, 148, 165, 85, 20, 149, 76, + 133, 77, 132, 69, 54, 116, 68, 101, 101, 53, 101, 100, + 68, 132, 84, 68, 148, 84, 68, 147, 100, 68, 147, 84, + 68, 148, 84, 68, 148, 84, 68, 147, 100, 68, 132, 100, + 68, 131, 116, 68, 116, 116, 84, 84, 133, 69, 52, 164, + 90, 180, 104, 197, 101, 245, 240, 181, 240, 167, 116, 223, + 1, 240, 28, 240, 87, 0, 46, 112, 85, 30, 0, 13, + 68, 240, 165, 240, 166, 240, 135, 240, 135, 240, 115, 20, + 240, 99, 36, 240, 99, 51, 240, 83, 67, 240, 83, 67, + 240, 67, 84, 240, 51, 84, 240, 35, 100, 240, 35, 100, + 240, 19, 116, 244, 116, 243, 132, 228, 148, 211, 164, 196, + 164, 207, 3, 191, 4, 191, 4, 164, 196, 148, 213, 131, + 244, 116, 244, 115, 240, 20, 100, 240, 20, 99, 240, 36, + 84, 240, 36, 68, 240, 52, 0, 45, 64, 70, 30, 0, + 12, 14, 240, 31, 2, 223, 3, 195, 151, 164, 182, 148, + 212, 148, 212, 147, 228, 132, 228, 132, 228, 132, 212, 148, + 196, 163, 196, 164, 150, 191, 2, 222, 240, 31, 2, 211, + 166, 164, 197, 148, 212, 148, 228, 131, 244, 116, 244, 116, + 244, 116, 229, 115, 244, 131, 228, 132, 198, 132, 167, 159, + 4, 191, 2, 223, 0, 46, 112, 68, 30, 0, 13, 9, + 240, 78, 239, 214, 116, 197, 178, 181, 240, 149, 240, 149, + 240, 164, 240, 164, 240, 180, 240, 164, 240, 180, 240, 164, + 240, 180, 240, 180, 240, 164, 240, 180, 240, 180, 240, 180, + 240, 180, 240, 180, 240, 180, 240, 181, 240, 180, 240, 181, + 240, 180, 225, 181, 193, 214, 116, 239, 1, 253, 240, 88, + 0, 46, 96, 85, 33, 0, 13, 47, 240, 63, 2, 240, + 31, 3, 228, 166, 212, 197, 196, 213, 180, 228, 179, 244, + 164, 245, 148, 240, 20, 148, 240, 20, 148, 240, 20, 132, + 240, 36, 132, 240, 36, 132, 240, 36, 132, 240, 36, 131, + 240, 52, 116, 240, 36, 132, 240, 36, 132, 240, 36, 132, + 240, 20, 147, 240, 36, 132, 240, 20, 148, 245, 148, 244, + 163, 244, 179, 213, 180, 197, 196, 166, 223, 4, 239, 2, + 255, 0, 51, 96, 71, 30, 0, 12, 31, 4, 175, 5, + 175, 5, 164, 240, 180, 240, 179, 240, 180, 240, 180, 240, + 180, 240, 180, 240, 179, 240, 180, 240, 180, 240, 180, 240, + 191, 3, 207, 3, 191, 3, 196, 240, 180, 240, 180, 240, + 164, 240, 180, 240, 180, 240, 180, 240, 180, 240, 164, 240, + 180, 240, 180, 240, 180, 240, 191, 5, 159, 5, 175, 5, + 0, 46, 32, 70, 29, 0, 11, 111, 3, 175, 4, 175, + 4, 164, 240, 164, 240, 163, 240, 164, 240, 164, 240, 164, + 240, 164, 240, 163, 240, 164, 240, 164, 240, 164, 240, 175, + 2, 207, 1, 207, 2, 196, 240, 164, 240, 163, 240, 164, + 240, 164, 240, 164, 240, 164, 240, 163, 240, 164, 240, 164, + 240, 164, 240, 164, 240, 163, 240, 164, 240, 164, 0, 46, + 80, 69, 30, 0, 13, 8, 240, 93, 255, 1, 198, 117, + 181, 178, 181, 209, 165, 240, 149, 240, 164, 240, 164, 240, + 180, 240, 164, 240, 180, 240, 164, 240, 180, 240, 179, 240, + 180, 240, 180, 240, 180, 169, 116, 169, 116, 154, 116, 243, + 132, 243, 148, 212, 148, 212, 149, 196, 164, 195, 181, 179, + 198, 117, 223, 2, 238, 240, 71, 0, 46, 112, 71, 33, + 0, 13, 36, 228, 179, 244, 164, 244, 164, 243, 180, 228, + 180, 228, 164, 244, 164, 244, 164, 243, 180, 228, 179, 244, + 164, 244, 164, 244, 164, 228, 191, 7, 191, 7, 175, 8, + 164, 243, 180, 228, 180, 228, 164, 244, 164, 244, 164, 243, + 180, 228, 180, 228, 164, 244, 164, 244, 164, 243, 180, 228, + 179, 244, 164, 244, 164, 244, 0, 50, 96, 39, 15, 0, + 6, 68, 180, 164, 180, 180, 180, 180, 164, 180, 180, 180, + 164, 180, 180, 180, 180, 164, 180, 180, 180, 180, 164, 180, + 180, 180, 164, 180, 180, 180, 180, 164, 180, 0, 23, 112, + 68, 25, 0, 11, 83, 240, 100, 240, 100, 240, 100, 240, + 100, 240, 99, 240, 100, 240, 100, 240, 100, 240, 100, 240, + 99, 240, 100, 240, 100, 240, 100, 240, 99, 240, 100, 240, + 100, 240, 100, 240, 100, 240, 99, 240, 100, 240, 100, 240, + 100, 240, 99, 240, 100, 240, 100, 240, 100, 161, 148, 179, + 85, 190, 203, 240, 23, 0, 39, 48, 89, 34, 0, 13, + 84, 229, 179, 229, 180, 213, 196, 196, 228, 180, 244, 164, + 244, 164, 240, 20, 133, 240, 36, 117, 240, 52, 101, 240, + 67, 101, 240, 68, 84, 240, 100, 68, 240, 116, 53, 240, + 116, 39, 240, 99, 40, 240, 89, 21, 240, 72, 52, 240, + 71, 69, 240, 54, 100, 240, 37, 132, 240, 36, 149, 240, + 20, 164, 240, 20, 165, 244, 180, 228, 196, 228, 212, 212, + 212, 212, 213, 195, 244, 180, 245, 164, 240, 20, 0, 52, + 32, 71, 22, 0, 9, 20, 240, 51, 240, 52, 240, 52, + 240, 52, 240, 52, 240, 36, 240, 52, 240, 52, 240, 52, + 240, 51, 240, 52, 240, 52, 240, 52, 240, 52, 240, 51, + 240, 52, 240, 52, 240, 52, 240, 52, 240, 36, 240, 52, + 240, 52, 240, 52, 240, 52, 240, 36, 240, 52, 240, 52, + 240, 52, 240, 63, 2, 79, 3, 79, 3, 0, 33, 64, + 124, 40, 0, 15, 117, 240, 69, 182, 240, 38, 167, 240, + 38, 167, 240, 23, 167, 243, 19, 179, 19, 243, 19, 179, + 19, 227, 20, 164, 19, 227, 20, 164, 20, 195, 36, 164, + 20, 195, 35, 179, 36, 179, 36, 179, 51, 164, 36, 164, + 51, 163, 52, 164, 51, 148, 51, 179, 67, 147, 67, 179, + 67, 132, 52, 164, 68, 115, 68, 164, 68, 99, 84, 164, + 68, 99, 83, 179, 99, 83, 99, 179, 99, 68, 84, 164, + 99, 67, 100, 164, 99, 52, 100, 164, 100, 35, 115, 179, + 116, 19, 131, 179, 116, 19, 116, 164, 134, 132, 164, 134, + 131, 179, 149, 147, 179, 149, 132, 164, 148, 148, 164, 240, + 116, 0, 61, 32, 95, 33, 0, 13, 38, 211, 182, 196, + 167, 196, 167, 195, 179, 20, 179, 179, 20, 164, 164, 20, + 164, 164, 35, 164, 164, 36, 147, 179, 52, 147, 179, 52, + 132, 164, 67, 132, 164, 68, 116, 164, 68, 115, 179, 84, + 115, 179, 99, 100, 164, 100, 84, 164, 100, 83, 179, 116, + 83, 179, 131, 68, 164, 132, 52, 164, 132, 52, 164, 132, + 51, 179, 163, 51, 179, 164, 20, 164, 164, 20, 164, 164, + 20, 164, 179, 19, 179, 199, 179, 199, 164, 199, 164, 214, + 0, 50, 96, 87, 33, 0, 14, 39, 240, 140, 240, 79, + 240, 37, 102, 229, 165, 197, 197, 165, 228, 164, 244, 148, + 240, 36, 116, 240, 52, 115, 240, 68, 100, 240, 68, 100, + 240, 68, 84, 240, 84, 84, 240, 84, 84, 240, 84, 68, + 240, 84, 84, 240, 84, 84, 240, 84, 84, 240, 68, 100, + 240, 68, 100, 240, 52, 116, 240, 52, 117, 240, 20, 148, + 244, 164, 229, 180, 197, 197, 150, 230, 86, 240, 47, 240, + 76, 240, 135, 0, 51, 112, 69, 30, 0, 12, 14, 240, + 31, 2, 223, 3, 196, 150, 164, 181, 164, 197, 148, 212, + 148, 212, 147, 228, 132, 228, 132, 228, 132, 212, 148, 212, + 147, 212, 148, 181, 164, 150, 191, 3, 207, 1, 223, 244, + 240, 180, 240, 180, 240, 180, 240, 164, 240, 180, 240, 180, + 240, 180, 240, 179, 240, 180, 240, 180, 240, 180, 240, 180, + 0, 48, 32, 103, 33, 0, 14, 39, 240, 140, 240, 79, + 240, 38, 86, 244, 165, 197, 197, 165, 228, 164, 244, 148, + 240, 36, 116, 240, 52, 116, 240, 52, 100, 240, 68, 100, + 240, 68, 84, 240, 84, 84, 240, 84, 84, 240, 84, 68, + 240, 84, 84, 240, 84, 84, 240, 84, 84, 240, 68, 100, + 240, 68, 100, 240, 52, 116, 240, 52, 117, 100, 100, 148, + 116, 68, 164, 117, 37, 180, 116, 21, 197, 104, 246, 86, + 240, 47, 240, 78, 240, 103, 21, 240, 228, 240, 228, 240, + 229, 240, 228, 240, 229, 240, 228, 0, 26, 16, 74, 31, + 0, 12, 78, 240, 47, 2, 223, 4, 196, 166, 180, 196, + 180, 197, 163, 228, 148, 228, 148, 228, 148, 228, 148, 212, + 163, 212, 164, 197, 164, 151, 191, 3, 223, 1, 253, 240, + 36, 116, 240, 20, 116, 240, 20, 131, 240, 19, 148, 228, + 148, 228, 164, 212, 164, 212, 164, 211, 196, 180, 196, 180, + 196, 180, 212, 164, 212, 163, 228, 148, 244, 0, 47, 64, + 68, 29, 0, 12, 87, 240, 77, 239, 1, 197, 116, 197, + 162, 195, 240, 164, 240, 163, 240, 164, 240, 164, 240, 164, + 240, 165, 240, 150, 240, 153, 240, 107, 240, 75, 240, 90, + 240, 135, 240, 150, 240, 149, 240, 164, 240, 164, 240, 164, + 240, 164, 240, 148, 240, 164, 146, 212, 163, 180, 167, 101, + 207, 1, 253, 240, 71, 0, 45, 64, 71, 31, 0, 11, + 95, 12, 79, 11, 95, 11, 240, 20, 240, 195, 240, 196, + 240, 196, 240, 196, 240, 196, 240, 195, 240, 196, 240, 196, + 240, 196, 240, 196, 240, 180, 240, 196, 240, 196, 240, 196, + 240, 196, 240, 180, 240, 196, 240, 196, 240, 196, 240, 195, + 240, 196, 240, 196, 240, 196, 240, 196, 240, 195, 240, 196, + 240, 196, 240, 196, 0, 49, 32, 71, 30, 0, 11, 116, + 227, 147, 243, 132, 228, 132, 228, 132, 227, 148, 227, 132, + 243, 132, 228, 132, 228, 132, 227, 147, 243, 132, 228, 132, + 228, 132, 227, 148, 227, 132, 243, 132, 228, 132, 228, 132, + 227, 147, 243, 132, 228, 132, 228, 132, 227, 148, 212, 148, + 212, 148, 196, 180, 164, 197, 132, 229, 85, 240, 29, 240, + 58, 240, 118, 0, 47, 32, 90, 32, 0, 12, 5, 240, + 68, 84, 240, 52, 100, 240, 51, 116, 240, 36, 116, 240, + 35, 132, 240, 20, 132, 240, 19, 164, 228, 164, 212, 180, + 211, 196, 196, 196, 195, 212, 180, 212, 179, 244, 148, 244, + 132, 240, 20, 131, 240, 36, 116, 240, 36, 115, 240, 52, + 100, 240, 68, 83, 240, 84, 67, 240, 100, 67, 240, 100, + 51, 240, 116, 36, 240, 116, 35, 240, 132, 20, 240, 147, + 19, 240, 166, 240, 182, 240, 181, 240, 197, 0, 50, 96, + 133, 44, 0, 16, 68, 228, 228, 68, 228, 227, 99, 213, + 212, 100, 197, 211, 116, 182, 196, 116, 183, 179, 132, 163, + 20, 164, 132, 163, 20, 163, 148, 147, 36, 148, 148, 147, + 36, 147, 164, 131, 52, 132, 164, 131, 52, 131, 180, 115, + 68, 116, 180, 115, 68, 115, 196, 100, 68, 100, 196, 99, + 84, 99, 212, 99, 99, 99, 212, 83, 115, 83, 243, 83, + 115, 83, 243, 67, 131, 67, 240, 19, 67, 131, 67, 240, + 19, 51, 147, 51, 240, 35, 51, 147, 51, 240, 35, 35, + 163, 36, 240, 35, 35, 163, 35, 240, 51, 19, 179, 20, + 240, 51, 19, 179, 19, 240, 67, 18, 195, 19, 240, 70, + 198, 240, 85, 214, 240, 85, 213, 240, 100, 229, 0, 68, + 48, 92, 36, 0, 14, 53, 245, 196, 244, 213, 212, 244, + 196, 240, 21, 164, 240, 52, 148, 240, 69, 116, 240, 100, + 100, 240, 117, 68, 240, 148, 53, 240, 149, 36, 240, 180, + 20, 240, 200, 240, 230, 240, 245, 240, 240, 21, 240, 240, + 21, 240, 247, 240, 216, 240, 196, 36, 240, 164, 52, 240, + 148, 84, 240, 116, 100, 240, 100, 132, 240, 68, 148, 240, + 52, 180, 240, 36, 180, 240, 20, 197, 228, 228, 212, 245, + 180, 240, 36, 164, 240, 53, 0, 55, 16, 79, 32, 0, + 12, 5, 240, 68, 84, 240, 52, 100, 240, 36, 117, 244, + 148, 244, 149, 212, 180, 196, 197, 164, 228, 148, 244, 132, + 240, 21, 100, 240, 52, 100, 240, 53, 68, 240, 84, 52, + 240, 101, 20, 240, 136, 240, 151, 240, 166, 240, 197, 240, + 196, 240, 212, 240, 211, 240, 212, 240, 212, 240, 212, 240, + 212, 240, 211, 240, 212, 240, 212, 240, 212, 240, 212, 240, + 211, 0, 50, 112, 72, 33, 0, 13, 63, 6, 191, 6, + 207, 6, 240, 212, 240, 212, 240, 212, 240, 213, 240, 212, + 240, 212, 240, 212, 240, 212, 240, 212, 240, 213, 240, 212, + 240, 212, 240, 212, 240, 212, 240, 212, 240, 213, 240, 212, + 240, 212, 240, 212, 240, 212, 240, 212, 240, 213, 240, 212, + 240, 212, 240, 212, 240, 212, 240, 223, 7, 191, 7, 175, + 7, 0, 50, 112, 91, 21, 152, 216, 215, 227, 240, 51, + 240, 36, 240, 36, 240, 35, 240, 51, 240, 51, 240, 36, + 240, 36, 240, 35, 240, 51, 240, 51, 240, 36, 240, 36, + 240, 35, 240, 51, 240, 51, 240, 36, 240, 35, 240, 51, + 240, 51, 240, 51, 240, 36, 240, 35, 240, 51, 240, 51, + 240, 36, 240, 36, 240, 35, 240, 51, 240, 51, 240, 36, + 240, 36, 240, 35, 240, 51, 240, 51, 240, 36, 240, 36, + 240, 35, 240, 51, 240, 51, 240, 40, 215, 231, 224, 25, + 18, 0, 7, 34, 98, 114, 98, 130, 98, 114, 98, 115, + 83, 116, 68, 99, 83, 100, 68, 100, 68, 0, 79, 64, + 91, 20, 151, 215, 215, 240, 20, 240, 20, 240, 19, 240, + 35, 240, 35, 240, 20, 240, 20, 240, 19, 240, 35, 240, + 35, 240, 20, 240, 20, 240, 19, 240, 35, 240, 35, 240, + 20, 240, 20, 240, 19, 240, 35, 240, 35, 240, 20, 240, + 19, 240, 35, 240, 35, 240, 20, 240, 20, 240, 19, 240, + 35, 240, 35, 240, 20, 240, 20, 240, 19, 240, 35, 240, + 35, 240, 20, 240, 20, 240, 19, 240, 35, 240, 35, 240, + 20, 240, 20, 199, 215, 215, 208, 20, 19, 0, 8, 4, + 229, 211, 19, 179, 51, 147, 67, 131, 99, 99, 115, 83, + 147, 0, 86, 11, 9, 240, 240, 116, 84, 68, 84, 0, + 44, 64, 16, 10, 240, 240, 66, 114, 130, 114, 115, 116, + 99, 100, 100, 0, 44, 64, 40, 22, 0, 42, 39, 218, + 188, 163, 85, 240, 52, 240, 52, 240, 52, 240, 52, 201, + 172, 142, 118, 84, 100, 131, 100, 147, 100, 132, 100, 132, + 101, 85, 127, 137, 35, 150, 52, 0, 33, 112, 69, 24, + 0, 9, 115, 240, 84, 240, 84, 240, 83, 240, 99, 240, + 84, 240, 84, 240, 83, 240, 99, 240, 99, 240, 84, 240, + 84, 240, 83, 70, 179, 41, 175, 134, 85, 132, 133, 115, + 164, 115, 164, 115, 164, 100, 164, 100, 164, 99, 180, 99, + 164, 100, 164, 100, 148, 115, 149, 116, 117, 133, 85, 143, + 148, 25, 163, 69, 0, 37, 64, 40, 23, 0, 44, 39, + 235, 174, 133, 99, 133, 145, 116, 240, 68, 240, 52, 240, + 68, 240, 52, 240, 68, 240, 68, 240, 68, 240, 68, 240, + 69, 240, 68, 161, 133, 100, 158, 171, 230, 0, 36, 69, + 27, 0, 12, 68, 240, 131, 240, 147, 240, 147, 240, 132, + 240, 132, 240, 131, 240, 147, 240, 147, 240, 132, 240, 131, + 240, 147, 246, 51, 217, 35, 207, 181, 85, 181, 116, 165, + 147, 164, 148, 148, 164, 148, 163, 148, 179, 148, 164, 148, + 164, 148, 164, 148, 163, 164, 148, 165, 117, 181, 86, 187, + 19, 217, 35, 245, 67, 0, 41, 112, 41, 22, 0, 42, + 54, 233, 188, 149, 69, 116, 116, 100, 147, 99, 163, 95, + 2, 95, 2, 79, 3, 68, 240, 52, 240, 52, 240, 52, + 240, 53, 240, 52, 161, 118, 99, 142, 155, 215, 0, 34, + 32, 63, 21, 0, 9, 38, 216, 201, 180, 240, 20, 240, + 35, 240, 36, 240, 35, 240, 51, 240, 51, 240, 36, 240, + 35, 251, 156, 156, 196, 240, 36, 240, 35, 240, 51, 240, + 51, 240, 36, 240, 36, 240, 35, 240, 51, 240, 51, 240, + 36, 240, 35, 240, 51, 240, 51, 240, 51, 240, 36, 240, + 35, 0, 33, 96, 66, 29, 0, 55, 101, 84, 216, 23, + 207, 2, 180, 69, 244, 100, 244, 100, 228, 116, 228, 116, + 228, 100, 244, 100, 240, 20, 68, 240, 28, 240, 43, 240, + 35, 37, 240, 66, 240, 194, 240, 195, 240, 189, 240, 31, + 223, 2, 180, 149, 164, 180, 148, 196, 148, 196, 149, 164, + 181, 117, 207, 1, 253, 240, 56, 0, 12, 112, 71, 23, + 0, 9, 67, 240, 83, 240, 68, 240, 68, 240, 67, 240, + 83, 240, 83, 240, 68, 240, 68, 240, 67, 240, 83, 240, + 68, 240, 68, 54, 163, 41, 147, 27, 133, 85, 117, 116, + 116, 132, 116, 132, 116, 132, 115, 147, 116, 132, 116, 132, + 115, 148, 115, 147, 116, 132, 116, 132, 116, 132, 115, 147, + 131, 147, 116, 132, 116, 132, 0, 35, 48, 33, 14, 0, + 7, 100, 164, 164, 148, 0, 13, 51, 179, 179, 164, 164, + 163, 179, 179, 164, 164, 163, 179, 179, 164, 164, 163, 179, + 179, 164, 164, 0, 22, 32, 71, 23, 0, 13, 52, 240, + 68, 240, 67, 240, 68, 0, 22, 52, 240, 67, 240, 83, + 240, 83, 240, 68, 240, 68, 240, 67, 240, 83, 240, 68, + 240, 68, 240, 67, 240, 83, 240, 83, 240, 68, 240, 68, + 240, 67, 240, 83, 240, 68, 240, 68, 240, 67, 240, 83, + 240, 83, 240, 68, 240, 68, 240, 67, 209, 69, 202, 217, + 240, 21, 0, 10, 80, 68, 23, 0, 9, 52, 240, 67, + 240, 83, 240, 83, 240, 68, 240, 67, 240, 83, 240, 83, + 240, 68, 240, 68, 240, 67, 240, 83, 240, 83, 132, 116, + 101, 132, 85, 147, 85, 163, 68, 195, 52, 196, 36, 211, + 36, 233, 234, 203, 197, 51, 196, 68, 179, 84, 179, 100, + 148, 100, 148, 116, 131, 132, 131, 148, 115, 148, 0, 35, + 48, 39, 14, 0, 6, 19, 164, 163, 179, 179, 179, 164, + 163, 179, 179, 164, 164, 163, 179, 179, 164, 164, 163, 179, + 179, 164, 164, 163, 179, 179, 164, 163, 179, 179, 179, 164, + 163, 0, 22, 48, 67, 35, 0, 66, 20, 54, 102, 163, + 41, 57, 147, 26, 43, 133, 87, 85, 117, 117, 116, 116, + 132, 132, 116, 132, 132, 115, 147, 148, 115, 147, 147, 116, + 132, 132, 116, 132, 132, 115, 147, 148, 115, 147, 147, 116, + 132, 132, 116, 132, 132, 116, 132, 132, 115, 147, 147, 131, + 147, 147, 116, 132, 132, 116, 132, 132, 0, 53, 48, 47, + 23, 0, 43, 84, 54, 163, 41, 147, 27, 133, 85, 117, + 116, 116, 132, 116, 132, 116, 132, 115, 147, 116, 132, 116, + 132, 115, 148, 115, 147, 116, 132, 116, 132, 116, 132, 115, + 147, 131, 147, 116, 132, 116, 132, 0, 35, 48, 43, 24, + 0, 46, 22, 240, 26, 205, 165, 85, 132, 132, 116, 164, + 100, 164, 84, 180, 84, 180, 68, 196, 68, 196, 68, 180, + 84, 180, 84, 164, 101, 148, 116, 132, 133, 85, 173, 202, + 240, 22, 0, 37, 80, 62, 26, 0, 49, 67, 70, 211, + 41, 207, 166, 85, 164, 133, 148, 133, 147, 164, 147, 164, + 132, 164, 132, 164, 131, 180, 131, 164, 147, 164, 132, 148, + 148, 133, 148, 117, 165, 70, 175, 180, 25, 195, 69, 227, + 240, 131, 240, 116, 240, 116, 240, 115, 240, 131, 240, 131, + 240, 116, 240, 116, 0, 12, 64, 64, 24, 0, 46, 5, + 67, 169, 20, 159, 134, 69, 133, 116, 117, 132, 116, 148, + 100, 164, 100, 163, 115, 179, 100, 164, 100, 164, 100, 163, + 116, 163, 117, 132, 117, 117, 133, 86, 139, 19, 169, 35, + 197, 52, 240, 84, 240, 84, 240, 83, 240, 99, 240, 84, + 240, 84, 240, 84, 240, 83, 240, 99, 0, 10, 32, 30, + 18, 0, 34, 35, 67, 116, 37, 115, 38, 119, 182, 196, + 213, 212, 227, 243, 228, 228, 227, 243, 243, 228, 228, 227, + 243, 243, 0, 28, 112, 37, 23, 0, 44, 39, 221, 158, + 133, 99, 147, 240, 68, 240, 68, 240, 69, 240, 58, 235, + 234, 240, 39, 240, 53, 240, 68, 240, 68, 113, 164, 132, + 101, 127, 157, 215, 0, 36, 34, 18, 0, 21, 3, 243, + 243, 228, 227, 243, 189, 93, 78, 131, 243, 228, 228, 228, + 227, 243, 228, 228, 227, 243, 228, 228, 228, 66, 138, 137, + 166, 0, 28, 32, 47, 23, 0, 43, 83, 132, 116, 132, + 116, 132, 115, 147, 131, 147, 116, 132, 116, 132, 115, 147, + 131, 147, 116, 132, 116, 132, 116, 132, 115, 147, 116, 147, + 116, 132, 116, 117, 116, 87, 123, 19, 138, 35, 165, 83, + 0, 35, 64, 46, 22, 0, 41, 36, 179, 68, 164, 68, + 148, 84, 147, 100, 132, 115, 131, 131, 116, 132, 99, 148, + 84, 148, 83, 164, 67, 195, 52, 195, 51, 211, 36, 211, + 35, 227, 20, 227, 19, 246, 240, 37, 240, 36, 0, 34, + 112, 75, 32, 0, 60, 3, 147, 148, 68, 132, 131, 84, + 117, 116, 84, 117, 115, 100, 102, 100, 100, 98, 19, 99, + 116, 83, 19, 84, 116, 82, 35, 83, 147, 67, 35, 68, + 147, 66, 51, 67, 163, 51, 51, 52, 163, 50, 67, 51, + 179, 35, 67, 36, 179, 34, 83, 35, 195, 19, 83, 20, + 195, 18, 99, 19, 214, 114, 19, 213, 133, 229, 133, 243, + 148, 0, 49, 96, 52, 27, 0, 51, 36, 164, 148, 148, + 180, 116, 212, 84, 228, 68, 240, 20, 36, 240, 36, 20, + 240, 71, 240, 101, 240, 116, 240, 132, 240, 118, 240, 83, + 19, 240, 67, 36, 240, 35, 68, 243, 84, 227, 116, 195, + 132, 179, 164, 132, 196, 0, 41, 48, 71, 27, 0, 51, + 36, 179, 148, 164, 148, 148, 179, 147, 195, 132, 196, 115, + 212, 100, 212, 99, 228, 83, 240, 19, 68, 240, 19, 67, + 240, 36, 36, 240, 36, 35, 240, 52, 19, 240, 83, 19, + 240, 86, 240, 102, 240, 101, 240, 117, 240, 131, 240, 131, + 240, 147, 240, 131, 240, 132, 240, 131, 240, 131, 240, 72, + 240, 71, 240, 85, 0, 12, 112, 44, 24, 0, 45, 95, + 159, 158, 240, 83, 240, 84, 240, 68, 240, 68, 240, 68, + 240, 68, 240, 68, 240, 68, 240, 68, 240, 68, 240, 68, + 240, 68, 240, 68, 240, 68, 240, 79, 1, 143, 1, 127, + 1, 0, 37, 13, 26, 0, 68, 47, 7, 79, 7, 79, + 7, 0, 75, 32, 18, 48, 0, 126, 15, 15, 14, 79, + 15, 14, 79, 15, 14, 0, 127, 0, 11, 64, 23, 19, + 0, 7, 84, 52, 131, 67, 131, 67, 132, 67, 131, 67, + 131, 82, 147, 67, 131, 67, 0, 86, 80, 16, 19, 0, + 9, 116, 98, 103, 51, 93, 98, 71, 83, 84, 0, 91, + 16, +}; + +//***************************************************************************** +// +// The font definition for the 46 point Cmss italic font. +// +//***************************************************************************** +const tFont g_sFontCmss46i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 43, + + // + // The height of the font. + // + 47, + + // + // The baseline of the font. + // + 35, + + // + // The offset to each character in the font. + // + { + 0, 5, 42, 67, 196, 293, 410, 497, + 513, 609, 706, 748, 838, 855, 865, 876, + 974, 1039, 1101, 1169, 1234, 1306, 1367, 1432, + 1501, 1565, 1630, 1646, 1669, 1706, 1723, 1765, + 1818, 1904, 1989, 2059, 2127, 2212, 2283, 2353, + 2422, 2493, 2532, 2600, 2689, 2760, 2884, 2979, + 3066, 3135, 3238, 3312, 3380, 3451, 3522, 3612, + 3745, 3837, 3916, 3988, 4079, 4104, 4195, 4215, + 4226, 4242, 4282, 4351, 4391, 4460, 4501, 4564, + 4630, 4701, 4734, 4805, 4873, 4912, 4979, 5026, + 5069, 5131, 5195, 5225, 5262, 5296, 5343, 5389, + 5464, 5516, 5587, 5631, 5644, 5662, 5685, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss46iData +}; diff --git a/grlib/fonts/fontcmss48.c b/grlib/fonts/fontcmss48.c new file mode 100644 index 0000000..165106e --- /dev/null +++ b/grlib/fonts/fontcmss48.c @@ -0,0 +1,587 @@ +//***************************************************************************** +// +// fontcmss48.c - Font definition for the 48pt Cmss font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 48 point +// Bold: no +// Italic: no +// Memory usage: 5968 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 48 point Cmss font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss48Data[5766] = +{ + 5, 19, 0, 116, 48, 38, 8, 240, 148, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 240, 240, + 100, 68, 68, 68, 0, 12, 64, 27, 17, 0, 6, 52, + 84, 68, 84, 68, 84, 68, 84, 83, 99, 82, 114, 98, + 114, 98, 114, 82, 114, 98, 114, 0, 77, 32, 133, 37, + 0, 15, 113, 146, 240, 146, 146, 240, 146, 145, 240, 162, + 130, 240, 161, 146, 240, 146, 146, 240, 146, 145, 240, 162, + 130, 240, 161, 146, 240, 146, 146, 240, 146, 145, 240, 162, + 130, 240, 161, 146, 240, 146, 146, 240, 146, 145, 240, 162, + 130, 223, 15, 3, 79, 15, 3, 242, 145, 240, 162, 130, + 240, 161, 146, 240, 146, 146, 240, 146, 145, 240, 162, 130, + 240, 161, 146, 255, 15, 3, 79, 15, 3, 210, 130, 240, + 161, 146, 240, 146, 146, 240, 146, 145, 240, 162, 130, 240, + 161, 146, 240, 146, 146, 240, 146, 145, 240, 162, 130, 240, + 161, 146, 240, 146, 146, 240, 146, 145, 240, 162, 130, 240, + 161, 146, 240, 146, 146, 240, 146, 145, 0, 16, 48, 79, + 22, 115, 240, 67, 240, 67, 240, 41, 189, 143, 116, 19, + 52, 100, 35, 82, 100, 35, 196, 51, 196, 51, 196, 51, + 196, 51, 196, 51, 197, 35, 212, 35, 213, 19, 232, 235, + 218, 218, 233, 211, 22, 195, 37, 195, 53, 179, 68, 179, + 68, 179, 68, 179, 68, 179, 68, 179, 68, 65, 99, 52, + 82, 83, 37, 85, 35, 21, 111, 141, 186, 240, 19, 240, + 67, 240, 67, 0, 26, 32, 131, 37, 84, 240, 33, 215, + 242, 201, 226, 195, 36, 210, 196, 52, 194, 195, 68, 178, + 196, 84, 161, 212, 84, 146, 212, 84, 145, 228, 84, 130, + 228, 84, 114, 244, 84, 114, 244, 84, 98, 240, 20, 84, + 98, 240, 35, 68, 98, 240, 52, 52, 98, 240, 67, 36, + 98, 240, 89, 98, 240, 103, 98, 240, 132, 130, 240, 240, + 66, 132, 240, 130, 103, 240, 98, 105, 240, 82, 99, 36, + 240, 66, 100, 52, 240, 50, 99, 68, 240, 34, 100, 84, + 240, 17, 116, 84, 242, 116, 84, 241, 132, 84, 226, 132, + 84, 225, 148, 84, 210, 148, 84, 194, 164, 84, 194, 179, + 68, 194, 196, 52, 194, 211, 36, 194, 233, 194, 247, 209, + 240, 36, 0, 42, 96, 100, 34, 0, 9, 100, 240, 216, + 240, 169, 240, 164, 36, 240, 132, 68, 240, 115, 84, 240, + 100, 84, 240, 100, 84, 240, 100, 84, 240, 100, 84, 240, + 100, 68, 240, 116, 68, 240, 116, 52, 240, 133, 20, 240, + 164, 20, 240, 168, 240, 183, 195, 213, 211, 212, 212, 183, + 195, 184, 195, 165, 20, 164, 149, 36, 163, 164, 68, 132, + 148, 85, 115, 148, 116, 100, 148, 117, 68, 164, 133, 51, + 180, 149, 20, 180, 153, 197, 151, 228, 150, 246, 90, 113, + 111, 13, 139, 75, 166, 152, 0, 47, 48, 16, 8, 240, + 148, 68, 68, 68, 83, 82, 98, 98, 82, 98, 0, 36, + 96, 52, 15, 131, 195, 179, 179, 179, 195, 179, 180, 180, + 179, 180, 180, 179, 180, 180, 180, 180, 179, 180, 180, 180, + 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 196, + 180, 180, 180, 195, 196, 180, 195, 196, 180, 195, 211, 196, + 195, 211, 196, 195, 64, 52, 15, 3, 196, 195, 211, 211, + 196, 195, 196, 180, 196, 180, 180, 196, 180, 180, 180, 180, + 196, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, + 180, 180, 180, 179, 180, 180, 180, 180, 164, 180, 180, 179, + 180, 179, 180, 179, 179, 179, 195, 179, 192, 47, 22, 130, + 240, 68, 240, 52, 240, 52, 240, 52, 194, 68, 66, 84, + 52, 52, 69, 36, 37, 110, 170, 230, 248, 204, 133, 20, + 21, 85, 36, 37, 68, 52, 52, 81, 84, 81, 196, 240, + 52, 240, 52, 240, 66, 0, 78, 64, 96, 34, 0, 40, + 2, 240, 240, 34, 240, 240, 34, 240, 240, 34, 240, 240, + 34, 240, 240, 34, 240, 240, 34, 240, 240, 34, 240, 240, + 34, 240, 240, 34, 240, 240, 34, 240, 240, 34, 240, 240, + 34, 240, 240, 34, 240, 240, 34, 240, 63, 15, 79, 15, + 240, 50, 240, 240, 34, 240, 240, 34, 240, 240, 34, 240, + 240, 34, 240, 240, 34, 240, 240, 34, 240, 240, 34, 240, + 240, 34, 240, 240, 34, 240, 240, 34, 240, 240, 34, 240, + 240, 34, 240, 240, 34, 0, 40, 64, 17, 8, 0, 33, + 4, 68, 68, 68, 83, 82, 98, 98, 82, 98, 0, 6, + 96, 10, 16, 0, 50, 12, 76, 76, 0, 42, 64, 11, + 8, 0, 33, 4, 68, 68, 68, 0, 12, 64, 102, 22, + 240, 18, 240, 82, 240, 81, 240, 82, 240, 82, 240, 81, + 240, 82, 240, 82, 240, 81, 240, 82, 240, 82, 240, 81, + 240, 82, 240, 82, 240, 81, 240, 82, 240, 82, 240, 66, + 240, 82, 240, 82, 240, 66, 240, 82, 240, 82, 240, 66, + 240, 82, 240, 82, 240, 66, 240, 82, 240, 82, 240, 66, + 240, 82, 240, 82, 240, 66, 240, 82, 240, 81, 240, 82, + 240, 82, 240, 81, 240, 82, 240, 82, 240, 81, 240, 82, + 240, 82, 240, 81, 240, 82, 240, 82, 240, 81, 240, 82, + 240, 82, 240, 80, 70, 23, 0, 12, 53, 240, 25, 219, + 181, 53, 148, 116, 132, 116, 116, 148, 100, 148, 100, 148, + 99, 179, 84, 180, 68, 180, 68, 180, 68, 180, 68, 180, + 68, 180, 68, 180, 68, 180, 68, 180, 68, 180, 68, 180, + 68, 180, 68, 180, 68, 180, 68, 180, 84, 148, 100, 148, + 100, 148, 116, 116, 132, 116, 149, 53, 187, 217, 240, 21, + 0, 33, 69, 20, 0, 11, 17, 240, 35, 245, 170, 170, + 164, 36, 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, + 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, + 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, + 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, + 240, 20, 175, 1, 79, 1, 79, 1, 0, 30, 64, 70, + 23, 0, 12, 39, 235, 189, 148, 86, 131, 133, 99, 164, + 99, 164, 83, 196, 82, 196, 97, 196, 240, 68, 240, 68, + 240, 68, 240, 52, 240, 68, 240, 68, 240, 52, 240, 52, + 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, + 240, 67, 240, 67, 240, 67, 240, 67, 240, 68, 240, 52, + 240, 79, 3, 95, 3, 95, 3, 0, 35, 66, 23, 0, + 12, 54, 250, 189, 149, 85, 116, 132, 115, 164, 113, 180, + 113, 180, 240, 68, 240, 68, 240, 52, 240, 68, 240, 52, + 240, 52, 232, 247, 240, 25, 240, 84, 240, 84, 240, 84, + 240, 68, 240, 84, 240, 68, 240, 68, 240, 68, 240, 68, + 240, 68, 81, 196, 83, 180, 99, 148, 118, 85, 157, 187, + 230, 0, 33, 71, 24, 0, 16, 53, 240, 69, 240, 54, + 240, 54, 240, 39, 240, 34, 20, 240, 19, 20, 244, 20, + 243, 36, 228, 36, 227, 52, 212, 52, 211, 68, 196, 68, + 195, 84, 180, 84, 179, 100, 164, 100, 163, 116, 148, 116, + 132, 132, 143, 5, 79, 5, 79, 5, 240, 20, 240, 84, + 240, 84, 240, 84, 240, 84, 240, 84, 240, 84, 240, 84, + 0, 37, 65, 22, 0, 14, 15, 127, 127, 116, 240, 52, + 240, 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, 52, + 240, 52, 37, 188, 173, 150, 68, 133, 100, 116, 116, 116, + 116, 240, 68, 240, 52, 240, 52, 240, 52, 240, 52, 240, + 52, 240, 52, 240, 52, 81, 180, 83, 164, 84, 132, 117, + 85, 141, 185, 246, 0, 31, 64, 69, 23, 0, 12, 87, + 234, 203, 180, 98, 164, 240, 52, 240, 67, 240, 68, 240, + 67, 240, 68, 240, 68, 240, 67, 85, 163, 56, 132, 27, + 119, 85, 102, 117, 85, 148, 85, 148, 84, 180, 68, 180, + 68, 180, 68, 180, 68, 180, 68, 180, 83, 180, 84, 164, + 84, 164, 84, 148, 116, 132, 116, 116, 148, 84, 187, 217, + 240, 21, 0, 33, 71, 23, 0, 14, 63, 4, 79, 4, + 79, 4, 240, 82, 240, 83, 240, 67, 240, 67, 240, 83, + 240, 67, 240, 68, 240, 67, 240, 68, 240, 67, 240, 68, + 240, 67, 240, 68, 240, 68, 240, 67, 240, 68, 240, 68, + 240, 67, 240, 68, 240, 68, 240, 68, 240, 68, 240, 67, + 240, 68, 240, 68, 240, 68, 240, 68, 240, 68, 240, 68, + 0, 36, 32, 66, 23, 0, 12, 54, 250, 189, 149, 85, + 132, 116, 116, 148, 99, 179, 99, 179, 99, 179, 99, 179, + 99, 179, 100, 148, 116, 131, 148, 84, 187, 231, 235, 180, + 84, 148, 116, 116, 148, 100, 148, 84, 180, 68, 180, 68, + 180, 68, 180, 68, 180, 68, 180, 84, 148, 100, 148, 116, + 116, 133, 85, 157, 186, 240, 21, 0, 33, 70, 23, 0, + 12, 53, 240, 25, 219, 181, 68, 148, 116, 116, 147, 116, + 148, 99, 164, 84, 179, 84, 179, 84, 180, 68, 180, 68, + 180, 68, 180, 68, 180, 68, 180, 84, 149, 84, 149, 100, + 118, 101, 87, 123, 20, 136, 52, 149, 83, 240, 83, 240, + 68, 240, 67, 240, 83, 240, 68, 240, 52, 161, 131, 163, + 85, 172, 186, 246, 0, 33, 32, 17, 8, 0, 16, 4, + 68, 68, 68, 0, 13, 68, 68, 68, 68, 0, 12, 64, + 23, 8, 0, 16, 4, 68, 68, 68, 0, 13, 68, 68, + 68, 68, 83, 82, 98, 98, 82, 98, 0, 6, 96, 37, + 8, 0, 12, 4, 68, 68, 68, 240, 240, 228, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 240, 208, + 17, 34, 0, 80, 111, 15, 79, 15, 0, 30, 47, 15, + 79, 15, 0, 81, 32, 58, 20, 0, 30, 84, 240, 20, + 240, 20, 240, 20, 0, 14, 68, 240, 20, 240, 20, 240, + 20, 240, 20, 240, 20, 240, 20, 244, 240, 20, 240, 20, + 244, 240, 20, 245, 229, 244, 245, 244, 240, 20, 240, 20, + 240, 20, 240, 20, 240, 21, 130, 100, 101, 95, 108, 167, + 0, 6, 16, 54, 20, 0, 8, 7, 172, 126, 100, 101, + 82, 148, 81, 180, 240, 20, 240, 20, 240, 20, 240, 20, + 245, 229, 229, 230, 229, 229, 244, 245, 244, 245, 244, 240, + 20, 240, 20, 240, 20, 240, 20, 240, 20, 0, 12, 4, + 240, 20, 240, 20, 240, 20, 0, 31, 48, 90, 29, 0, + 12, 54, 240, 91, 240, 30, 230, 85, 197, 133, 165, 164, + 149, 101, 20, 132, 92, 116, 93, 116, 69, 55, 84, 84, + 86, 84, 68, 117, 84, 68, 117, 68, 68, 148, 68, 68, + 148, 68, 68, 148, 68, 68, 148, 68, 68, 148, 68, 68, + 148, 68, 68, 148, 68, 69, 132, 84, 68, 116, 100, 68, + 116, 100, 84, 84, 132, 69, 53, 132, 91, 164, 89, 181, + 101, 229, 240, 165, 240, 166, 117, 207, 1, 252, 240, 72, + 0, 44, 96, 94, 32, 0, 13, 68, 240, 198, 240, 182, + 240, 182, 240, 168, 240, 147, 20, 240, 147, 20, 240, 132, + 36, 240, 115, 52, 240, 115, 52, 240, 100, 68, 240, 83, + 84, 240, 83, 84, 240, 68, 100, 240, 51, 116, 240, 51, + 116, 240, 36, 132, 240, 19, 148, 240, 19, 148, 244, 164, + 227, 180, 239, 3, 223, 5, 207, 5, 195, 212, 180, 228, + 163, 244, 148, 244, 148, 240, 20, 131, 240, 36, 116, 240, + 37, 100, 240, 52, 99, 240, 68, 84, 240, 69, 0, 48, + 64, 77, 28, 0, 10, 79, 223, 3, 175, 4, 148, 151, + 132, 197, 116, 213, 100, 228, 100, 244, 84, 244, 84, 244, + 84, 228, 100, 228, 100, 212, 116, 196, 132, 150, 159, 2, + 191, 223, 4, 148, 166, 132, 198, 100, 229, 84, 244, 84, + 245, 68, 240, 20, 68, 240, 20, 68, 240, 20, 68, 240, + 20, 68, 244, 84, 229, 84, 213, 100, 182, 127, 5, 143, + 4, 159, 1, 0, 43, 64, 73, 28, 0, 11, 121, 240, + 46, 207, 1, 182, 101, 165, 178, 149, 240, 117, 240, 132, + 240, 132, 240, 148, 240, 132, 240, 148, 240, 148, 240, 132, + 240, 148, 240, 148, 240, 148, 240, 148, 240, 148, 240, 148, + 240, 148, 240, 164, 240, 148, 240, 148, 240, 149, 240, 148, + 240, 149, 240, 149, 240, 149, 240, 149, 178, 182, 116, 207, + 2, 221, 240, 40, 0, 43, 16, 91, 30, 0, 11, 47, + 255, 3, 207, 4, 180, 167, 148, 198, 132, 213, 132, 229, + 116, 245, 100, 240, 20, 100, 240, 21, 84, 240, 36, 84, + 240, 36, 84, 240, 37, 68, 240, 52, 68, 240, 52, 68, + 240, 52, 68, 240, 52, 68, 240, 52, 68, 240, 52, 68, + 240, 52, 68, 240, 52, 68, 240, 52, 68, 240, 36, 84, + 240, 36, 84, 240, 36, 84, 240, 20, 100, 245, 100, 244, + 116, 228, 132, 198, 132, 167, 159, 4, 191, 3, 207, 0, + 46, 112, 74, 25, 0, 9, 63, 5, 95, 5, 95, 5, + 84, 240, 100, 240, 100, 240, 100, 240, 100, 240, 100, 240, + 100, 240, 100, 240, 100, 240, 100, 240, 100, 240, 100, 240, + 111, 4, 111, 4, 111, 4, 100, 240, 100, 240, 100, 240, + 100, 240, 100, 240, 100, 240, 100, 240, 100, 240, 100, 240, + 100, 240, 100, 240, 100, 240, 100, 240, 111, 6, 79, 6, + 79, 6, 0, 38, 74, 24, 0, 9, 15, 5, 79, 5, + 79, 5, 68, 240, 84, 240, 84, 240, 84, 240, 84, 240, + 84, 240, 84, 240, 84, 240, 84, 240, 84, 240, 84, 240, + 84, 240, 84, 240, 95, 3, 111, 3, 111, 3, 100, 240, + 84, 240, 84, 240, 84, 240, 84, 240, 84, 240, 84, 240, + 84, 240, 84, 240, 84, 240, 84, 240, 84, 240, 84, 240, + 84, 240, 84, 0, 38, 64, 73, 28, 0, 11, 120, 240, + 46, 223, 2, 166, 102, 149, 179, 133, 209, 133, 240, 132, + 240, 132, 240, 148, 240, 132, 240, 148, 240, 148, 240, 132, + 240, 148, 240, 148, 240, 148, 240, 148, 240, 148, 240, 148, + 240, 148, 170, 69, 154, 84, 154, 84, 244, 85, 228, 100, + 228, 101, 212, 116, 212, 132, 196, 149, 164, 166, 117, 191, + 2, 206, 240, 40, 0, 43, 16, 106, 28, 0, 10, 68, + 240, 20, 68, 240, 20, 68, 240, 20, 68, 240, 20, 68, + 240, 20, 68, 240, 20, 68, 240, 20, 68, 240, 20, 68, + 240, 20, 68, 240, 20, 68, 240, 20, 68, 240, 20, 68, + 240, 20, 68, 240, 20, 68, 240, 20, 79, 9, 79, 9, + 79, 9, 68, 240, 20, 68, 240, 20, 68, 240, 20, 68, + 240, 20, 68, 240, 20, 68, 240, 20, 68, 240, 20, 68, + 240, 20, 68, 240, 20, 68, 240, 20, 68, 240, 20, 68, + 240, 20, 68, 240, 20, 68, 240, 20, 68, 240, 20, 68, + 240, 20, 0, 42, 64, 40, 8, 240, 148, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 0, 12, 64, 72, 20, 0, + 9, 4, 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, + 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, + 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, + 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, + 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, 245, 81, + 148, 99, 86, 94, 124, 183, 0, 28, 80, 79, 29, 0, + 10, 116, 245, 84, 229, 100, 228, 116, 212, 132, 196, 148, + 181, 148, 165, 164, 149, 180, 133, 196, 117, 212, 101, 228, + 100, 244, 84, 240, 20, 69, 240, 20, 54, 240, 20, 40, + 244, 25, 249, 21, 232, 53, 215, 84, 214, 101, 197, 132, + 196, 164, 180, 165, 164, 180, 164, 181, 148, 196, 148, 212, + 132, 213, 116, 228, 116, 229, 100, 245, 84, 240, 20, 84, + 240, 21, 0, 44, 75, 22, 0, 8, 36, 240, 52, 240, + 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, + 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, + 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, + 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, + 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, 63, 3, + 79, 3, 79, 3, 0, 33, 64, 130, 35, 0, 13, 22, + 240, 70, 70, 240, 70, 71, 240, 39, 71, 240, 39, 71, + 240, 39, 72, 248, 68, 19, 243, 20, 68, 19, 243, 20, + 68, 20, 212, 20, 68, 35, 211, 36, 68, 35, 211, 36, + 68, 36, 180, 36, 68, 51, 179, 52, 68, 52, 163, 52, + 68, 52, 148, 52, 68, 67, 147, 68, 68, 68, 131, 68, + 68, 68, 116, 68, 68, 83, 115, 84, 68, 84, 99, 84, + 68, 84, 84, 84, 68, 99, 83, 100, 68, 100, 67, 100, + 68, 100, 52, 100, 68, 115, 51, 116, 68, 116, 35, 116, + 68, 116, 20, 116, 68, 131, 19, 132, 68, 131, 19, 132, + 68, 134, 148, 68, 149, 148, 68, 149, 148, 68, 148, 164, + 68, 240, 132, 0, 53, 99, 28, 0, 10, 70, 228, 71, + 212, 71, 212, 72, 196, 72, 196, 68, 20, 180, 68, 20, + 180, 68, 36, 164, 68, 36, 164, 68, 52, 148, 68, 52, + 148, 68, 53, 132, 68, 68, 132, 68, 68, 132, 68, 84, + 116, 68, 84, 116, 68, 100, 100, 68, 100, 100, 68, 116, + 84, 68, 116, 84, 68, 132, 68, 68, 132, 68, 68, 133, + 52, 68, 148, 52, 68, 148, 52, 68, 164, 36, 68, 164, + 36, 68, 180, 20, 68, 180, 20, 68, 200, 68, 200, 68, + 215, 68, 215, 68, 230, 0, 42, 64, 99, 32, 0, 9, + 54, 240, 140, 240, 78, 240, 37, 101, 244, 149, 212, 196, + 180, 228, 164, 228, 148, 240, 20, 132, 240, 20, 116, 240, + 52, 100, 240, 52, 100, 240, 52, 84, 240, 84, 68, 240, + 84, 68, 240, 84, 68, 240, 84, 68, 240, 84, 68, 240, + 84, 68, 240, 84, 68, 240, 84, 68, 240, 84, 69, 240, + 68, 84, 240, 52, 100, 240, 52, 100, 240, 52, 116, 240, + 20, 132, 240, 20, 148, 228, 165, 197, 181, 180, 213, 133, + 246, 85, 240, 46, 240, 76, 240, 134, 0, 45, 112, 72, + 26, 0, 9, 111, 191, 2, 159, 3, 132, 150, 116, 181, + 100, 197, 84, 212, 84, 228, 68, 228, 68, 228, 68, 228, + 68, 228, 68, 228, 68, 212, 84, 197, 84, 181, 100, 150, + 127, 3, 143, 2, 159, 180, 240, 116, 240, 116, 240, 116, + 240, 116, 240, 116, 240, 116, 240, 116, 240, 116, 240, 116, + 240, 116, 240, 116, 240, 116, 240, 116, 0, 41, 96, 113, + 32, 0, 9, 54, 240, 140, 240, 78, 240, 37, 86, 245, + 133, 212, 196, 181, 197, 164, 228, 148, 240, 20, 132, 240, + 20, 116, 240, 52, 100, 240, 52, 100, 240, 52, 84, 240, + 84, 68, 240, 84, 68, 240, 84, 68, 240, 84, 68, 240, + 84, 68, 240, 84, 68, 240, 84, 68, 240, 84, 68, 240, + 84, 68, 240, 84, 84, 240, 52, 100, 240, 52, 100, 240, + 52, 116, 101, 84, 132, 116, 84, 148, 116, 52, 165, 101, + 36, 180, 116, 20, 213, 103, 246, 70, 240, 46, 240, 78, + 240, 102, 21, 240, 212, 240, 228, 240, 213, 240, 213, 240, + 212, 0, 24, 96, 75, 28, 0, 10, 79, 223, 3, 175, + 4, 148, 166, 132, 197, 116, 213, 100, 228, 100, 244, 84, + 244, 84, 244, 84, 244, 84, 244, 84, 228, 100, 213, 100, + 197, 116, 166, 143, 4, 159, 2, 191, 1, 196, 132, 196, + 133, 180, 148, 180, 149, 164, 164, 164, 165, 148, 180, 148, + 196, 132, 197, 116, 212, 116, 213, 100, 228, 100, 244, 84, + 244, 84, 240, 20, 0, 42, 64, 69, 24, 0, 9, 119, + 252, 175, 134, 85, 117, 162, 116, 193, 101, 240, 68, 240, + 84, 240, 84, 240, 84, 240, 85, 240, 84, 240, 86, 240, + 71, 240, 43, 236, 235, 240, 25, 240, 55, 240, 70, 240, + 69, 240, 85, 240, 84, 240, 84, 240, 84, 240, 84, 240, + 84, 65, 228, 82, 212, 83, 180, 102, 102, 111, 2, 157, + 232, 0, 34, 48, 74, 32, 0, 12, 15, 13, 79, 13, + 79, 13, 240, 20, 240, 212, 240, 212, 240, 212, 240, 212, + 240, 212, 240, 212, 240, 212, 240, 212, 240, 212, 240, 212, + 240, 212, 240, 212, 240, 212, 240, 212, 240, 212, 240, 212, + 240, 212, 240, 212, 240, 212, 240, 212, 240, 212, 240, 212, + 240, 212, 240, 212, 240, 212, 240, 212, 240, 212, 240, 212, + 240, 212, 240, 212, 0, 50, 75, 27, 0, 10, 20, 244, + 68, 244, 68, 244, 68, 244, 68, 244, 68, 244, 68, 244, + 68, 244, 68, 244, 68, 244, 68, 244, 68, 244, 68, 244, + 68, 244, 68, 244, 68, 244, 68, 244, 68, 244, 68, 244, + 68, 244, 68, 244, 68, 244, 68, 244, 68, 244, 68, 244, + 68, 244, 84, 212, 100, 212, 101, 196, 116, 180, 148, 148, + 166, 85, 206, 251, 240, 55, 0, 38, 80, 93, 32, 0, + 12, 4, 240, 84, 68, 240, 84, 84, 240, 67, 100, 240, + 52, 100, 240, 52, 116, 240, 35, 132, 240, 20, 133, 244, + 148, 243, 164, 228, 165, 212, 180, 211, 196, 196, 197, 179, + 228, 164, 228, 164, 244, 147, 240, 20, 132, 240, 20, 132, + 240, 36, 115, 240, 52, 100, 240, 52, 100, 240, 68, 83, + 240, 84, 68, 240, 85, 52, 240, 100, 51, 240, 116, 36, + 240, 131, 35, 240, 148, 19, 240, 152, 240, 166, 240, 182, + 240, 182, 240, 196, 0, 50, 137, 45, 0, 16, 116, 229, + 228, 68, 229, 227, 84, 229, 227, 100, 198, 212, 100, 199, + 196, 100, 199, 195, 117, 179, 19, 180, 132, 164, 19, 180, + 132, 163, 36, 164, 132, 163, 36, 163, 149, 147, 51, 148, + 164, 132, 51, 148, 164, 131, 68, 132, 164, 131, 68, 131, + 196, 115, 68, 116, 196, 100, 84, 100, 196, 99, 100, 99, + 212, 99, 100, 99, 228, 83, 115, 84, 228, 68, 116, 68, + 228, 67, 132, 67, 244, 67, 132, 67, 240, 20, 51, 147, + 52, 240, 20, 36, 148, 36, 240, 20, 35, 164, 35, 240, + 36, 35, 164, 35, 240, 51, 35, 179, 35, 240, 52, 18, + 195, 19, 240, 71, 199, 240, 86, 199, 240, 86, 214, 240, + 85, 229, 240, 101, 229, 240, 116, 229, 0, 69, 16, 91, + 32, 0, 12, 20, 240, 36, 117, 244, 149, 213, 164, 212, + 181, 180, 213, 149, 228, 148, 240, 20, 116, 240, 37, 85, + 240, 52, 84, 240, 84, 52, 240, 101, 21, 240, 116, 20, + 240, 151, 240, 182, 240, 181, 240, 197, 240, 198, 240, 167, + 240, 148, 20, 240, 132, 36, 240, 100, 52, 240, 84, 84, + 240, 68, 100, 240, 36, 117, 245, 132, 244, 164, 212, 181, + 181, 196, 180, 228, 148, 245, 117, 240, 21, 100, 240, 52, + 84, 240, 69, 0, 48, 64, 85, 34, 0, 12, 101, 240, + 85, 85, 240, 68, 116, 240, 52, 133, 240, 36, 149, 244, + 180, 228, 197, 212, 213, 180, 229, 165, 245, 148, 240, 36, + 132, 240, 53, 116, 240, 69, 84, 240, 100, 68, 240, 117, + 52, 240, 133, 20, 240, 168, 240, 184, 240, 198, 240, 214, + 240, 228, 240, 244, 240, 244, 240, 244, 240, 244, 240, 244, + 240, 244, 240, 244, 240, 244, 240, 244, 240, 244, 240, 244, + 240, 244, 240, 244, 0, 53, 16, 75, 27, 0, 10, 47, + 7, 95, 7, 95, 7, 240, 116, 240, 117, 240, 101, 240, + 116, 240, 117, 240, 116, 240, 117, 240, 101, 240, 116, 240, + 117, 240, 116, 240, 117, 240, 101, 240, 116, 240, 117, 240, + 116, 240, 117, 240, 101, 240, 116, 240, 117, 240, 116, 240, + 116, 240, 117, 240, 116, 240, 117, 240, 116, 240, 116, 240, + 117, 240, 127, 7, 79, 8, 79, 8, 0, 41, 52, 12, + 8, 72, 72, 68, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 136, 72, + 72, 64, 26, 17, 0, 6, 82, 114, 98, 114, 82, 114, + 98, 114, 98, 114, 83, 99, 84, 84, 68, 84, 68, 84, + 68, 84, 0, 77, 52, 12, 8, 72, 72, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 72, 72, 72, 64, 23, 19, 0, 7, + 116, 229, 226, 19, 195, 35, 163, 66, 147, 83, 131, 99, + 99, 131, 67, 147, 0, 88, 48, 11, 8, 240, 240, 164, + 68, 68, 68, 0, 40, 64, 16, 8, 240, 178, 98, 82, + 98, 98, 83, 84, 68, 68, 68, 0, 36, 64, 44, 20, + 0, 38, 22, 202, 156, 131, 85, 113, 132, 240, 36, 240, + 20, 240, 20, 240, 20, 240, 20, 185, 140, 110, 86, 84, + 69, 116, 68, 132, 68, 132, 68, 132, 70, 70, 95, 105, + 20, 118, 52, 0, 30, 64, 74, 22, 0, 8, 36, 240, + 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, + 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, + 52, 69, 148, 41, 127, 1, 102, 85, 101, 117, 84, 148, + 84, 148, 84, 164, 68, 164, 68, 164, 68, 164, 68, 164, + 68, 164, 68, 164, 68, 148, 84, 148, 85, 117, 86, 70, + 111, 116, 25, 132, 53, 0, 34, 32, 44, 22, 0, 42, + 23, 220, 157, 133, 99, 116, 161, 101, 240, 36, 240, 52, + 240, 36, 240, 52, 240, 52, 240, 52, 240, 52, 240, 52, + 240, 68, 240, 52, 240, 53, 240, 52, 161, 133, 84, 158, + 155, 215, 0, 34, 72, 22, 0, 10, 4, 240, 52, 240, + 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, + 52, 240, 52, 240, 52, 240, 52, 240, 52, 165, 52, 137, + 20, 127, 102, 70, 85, 117, 84, 148, 84, 148, 68, 164, + 68, 164, 68, 164, 68, 164, 68, 164, 68, 164, 68, 164, + 84, 148, 84, 148, 85, 117, 102, 70, 127, 136, 36, 149, + 68, 0, 33, 64, 45, 23, 0, 44, 6, 250, 205, 149, + 84, 132, 132, 101, 147, 100, 164, 83, 195, 79, 4, 79, + 4, 79, 4, 68, 240, 68, 240, 68, 240, 84, 240, 68, + 240, 69, 240, 69, 162, 118, 100, 143, 156, 231, 0, 35, + 64, 41, 19, 0, 8, 23, 169, 154, 133, 81, 132, 228, + 244, 244, 244, 244, 244, 244, 244, 204, 124, 124, 164, 244, + 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, + 244, 244, 244, 244, 0, 30, 65, 25, 0, 47, 85, 84, + 152, 23, 143, 3, 101, 53, 196, 84, 180, 116, 164, 116, + 164, 116, 164, 116, 164, 116, 164, 116, 180, 84, 197, 53, + 204, 219, 211, 37, 243, 240, 116, 240, 110, 207, 175, 1, + 143, 3, 101, 150, 84, 181, 83, 212, 83, 212, 84, 196, + 85, 164, 118, 102, 143, 1, 173, 247, 0, 7, 96, 75, + 20, 0, 7, 68, 240, 20, 240, 20, 240, 20, 240, 20, + 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, 240, 20, + 240, 20, 240, 20, 240, 20, 54, 116, 40, 100, 26, 86, + 70, 69, 101, 69, 116, 68, 132, 68, 132, 68, 132, 68, + 132, 68, 132, 68, 132, 68, 132, 68, 132, 68, 132, 68, + 132, 68, 132, 68, 132, 68, 132, 68, 132, 68, 132, 0, + 30, 64, 34, 8, 240, 240, 164, 68, 68, 68, 0, 7, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 0, 12, 64, + 45, 15, 0, 10, 36, 180, 180, 180, 0, 14, 68, 180, + 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, + 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, + 180, 66, 68, 90, 89, 133, 240, 240, 128, 73, 22, 0, + 8, 36, 240, 52, 240, 52, 240, 52, 240, 52, 240, 52, + 240, 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, 52, + 240, 52, 240, 52, 133, 84, 117, 100, 101, 116, 85, 132, + 69, 148, 53, 164, 37, 180, 36, 196, 21, 202, 203, 182, + 36, 166, 36, 165, 68, 148, 100, 132, 100, 132, 116, 116, + 132, 100, 132, 100, 148, 84, 164, 0, 33, 64, 40, 8, + 240, 148, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 0, + 12, 64, 70, 33, 0, 66, 4, 54, 117, 132, 40, 73, + 100, 26, 43, 86, 69, 19, 70, 69, 102, 117, 69, 117, + 132, 68, 132, 148, 68, 132, 148, 68, 132, 148, 68, 132, + 148, 68, 132, 148, 68, 132, 148, 68, 132, 148, 68, 132, + 148, 68, 132, 148, 68, 132, 148, 68, 132, 148, 68, 132, + 148, 68, 132, 148, 68, 132, 148, 68, 132, 148, 0, 50, + 49, 20, 0, 40, 4, 54, 116, 40, 100, 26, 86, 70, + 69, 101, 69, 116, 68, 132, 68, 132, 68, 132, 68, 132, + 68, 132, 68, 132, 68, 132, 68, 132, 68, 132, 68, 132, + 68, 132, 68, 132, 68, 132, 68, 132, 68, 132, 0, 30, + 64, 47, 25, 0, 47, 118, 240, 27, 221, 181, 85, 148, + 148, 132, 149, 100, 180, 99, 196, 84, 212, 68, 212, 68, + 212, 68, 212, 68, 212, 68, 212, 69, 181, 84, 180, 101, + 149, 117, 132, 149, 85, 189, 219, 240, 23, 0, 38, 112, + 65, 22, 0, 44, 4, 69, 148, 41, 127, 1, 102, 70, + 101, 117, 84, 148, 84, 149, 68, 164, 68, 164, 68, 164, + 68, 164, 68, 164, 68, 164, 68, 164, 68, 148, 84, 148, + 85, 117, 86, 70, 111, 116, 25, 132, 53, 164, 240, 52, + 240, 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, 52, + 240, 52, 0, 10, 64, 65, 22, 0, 44, 101, 52, 137, + 20, 127, 102, 70, 100, 117, 85, 132, 84, 148, 69, 148, + 68, 164, 68, 164, 68, 164, 68, 164, 68, 164, 69, 148, + 84, 148, 85, 132, 85, 117, 102, 70, 127, 136, 36, 149, + 68, 240, 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, + 52, 240, 52, 240, 52, 240, 52, 0, 8, 96, 31, 16, + 0, 32, 4, 83, 68, 53, 68, 23, 73, 119, 150, 165, + 181, 180, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 0, 25, 64, 38, 20, 0, 38, 23, 173, 110, + 100, 100, 84, 240, 20, 240, 20, 240, 21, 247, 234, 187, + 186, 216, 246, 240, 20, 240, 20, 240, 20, 66, 164, 68, + 101, 95, 109, 167, 0, 31, 16, 35, 19, 0, 24, 36, + 244, 244, 244, 244, 244, 190, 94, 94, 148, 244, 244, 244, + 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 50, + 170, 153, 182, 0, 29, 48, 49, 20, 0, 40, 4, 132, + 68, 132, 68, 132, 68, 132, 68, 132, 68, 132, 68, 132, + 68, 132, 68, 132, 68, 132, 68, 132, 68, 132, 68, 132, + 68, 132, 68, 132, 68, 132, 68, 117, 69, 86, 79, 1, + 89, 36, 102, 68, 0, 30, 64, 51, 23, 0, 46, 4, + 180, 68, 180, 83, 164, 100, 148, 100, 147, 131, 132, 132, + 116, 132, 115, 163, 100, 164, 84, 164, 83, 196, 52, 196, + 52, 196, 51, 227, 36, 228, 19, 240, 19, 19, 240, 19, + 19, 240, 22, 240, 53, 240, 53, 0, 35, 112, 76, 33, + 0, 66, 4, 132, 148, 68, 132, 148, 68, 133, 131, 99, + 133, 116, 100, 102, 116, 100, 103, 99, 131, 99, 19, 99, + 132, 67, 35, 84, 132, 67, 35, 84, 132, 67, 36, 67, + 163, 67, 51, 52, 164, 35, 67, 52, 164, 35, 68, 35, + 195, 35, 83, 35, 195, 34, 99, 20, 199, 99, 20, 214, + 99, 19, 230, 118, 229, 134, 229, 133, 240, 20, 133, 0, + 50, 96, 49, 24, 0, 48, 20, 165, 85, 148, 116, 132, + 148, 100, 180, 68, 212, 52, 228, 20, 248, 240, 38, 240, + 68, 240, 84, 240, 70, 240, 55, 240, 19, 36, 228, 51, + 212, 68, 195, 100, 164, 116, 132, 148, 100, 164, 85, 180, + 0, 36, 64, 69, 23, 0, 46, 4, 180, 68, 179, 100, + 148, 100, 148, 100, 147, 132, 116, 132, 116, 148, 99, 164, + 84, 164, 84, 180, 67, 196, 52, 211, 51, 228, 35, 228, + 20, 243, 19, 240, 19, 19, 240, 38, 240, 37, 240, 53, + 240, 68, 240, 67, 240, 83, 240, 67, 240, 83, 240, 83, + 240, 67, 240, 68, 247, 240, 23, 240, 21, 0, 7, 112, + 49, 21, 0, 42, 31, 1, 95, 1, 95, 1, 240, 20, + 240, 20, 240, 20, 240, 21, 240, 20, 240, 20, 240, 20, + 240, 21, 240, 20, 240, 20, 240, 20, 240, 21, 240, 20, + 240, 20, 240, 20, 240, 31, 2, 79, 2, 79, 2, 0, + 32, 13, 27, 0, 77, 95, 8, 79, 8, 79, 8, 0, + 78, 16, 20, 49, 0, 127, 0, 13, 127, 15, 15, 79, + 15, 15, 79, 15, 15, 0, 127, 0, 14, 48, 25, 17, + 0, 6, 84, 52, 99, 67, 115, 67, 115, 67, 99, 67, + 115, 67, 115, 67, 99, 67, 115, 67, 0, 79, 64, 19, + 19, 0, 12, 20, 99, 86, 83, 88, 35, 83, 56, 83, + 70, 99, 99, 0, 91, 16, +}; + +//***************************************************************************** +// +// The font definition for the 48 point Cmss font. +// +//***************************************************************************** +const tFont g_sFontCmss48 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 44, + + // + // The height of the font. + // + 49, + + // + // The baseline of the font. + // + 37, + + // + // The offset to each character in the font. + // + { + 0, 5, 43, 70, 203, 282, 413, 513, + 529, 581, 633, 680, 776, 793, 803, 814, + 916, 986, 1055, 1125, 1191, 1262, 1327, 1396, + 1467, 1533, 1603, 1620, 1643, 1680, 1697, 1755, + 1809, 1899, 1993, 2070, 2143, 2234, 2308, 2382, + 2455, 2561, 2601, 2673, 2752, 2827, 2957, 3056, + 3155, 3227, 3340, 3415, 3484, 3558, 3633, 3726, + 3863, 3954, 4039, 4114, 4166, 4192, 4244, 4267, + 4278, 4294, 4338, 4412, 4456, 4528, 4573, 4614, + 4679, 4754, 4788, 4833, 4906, 4946, 5016, 5065, + 5112, 5177, 5242, 5273, 5311, 5346, 5395, 5446, + 5522, 5571, 5640, 5689, 5702, 5722, 5747, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss48Data +}; diff --git a/grlib/fonts/fontcmss48b.c b/grlib/fonts/fontcmss48b.c new file mode 100644 index 0000000..22567cb --- /dev/null +++ b/grlib/fonts/fontcmss48b.c @@ -0,0 +1,594 @@ +//***************************************************************************** +// +// fontcmss48b.c - Font definition for the 48pt Cmss bold font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 48 point +// Bold: yes +// Italic: no +// Memory usage: 6052 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 48 point Cmss bold font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss48bData[5849] = +{ + 4, 19, 0, 114, 39, 11, 240, 240, 55, 71, 71, 71, + 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, + 71, 71, 71, 71, 71, 71, 71, 71, 240, 240, 134, 71, + 71, 71, 71, 70, 0, 17, 16, 29, 21, 0, 7, 119, + 55, 71, 55, 71, 55, 71, 55, 71, 55, 71, 55, 100, + 100, 101, 85, 100, 100, 100, 100, 116, 100, 0, 90, 16, + 132, 42, 0, 18, 2, 147, 240, 196, 116, 240, 196, 116, + 240, 181, 101, 240, 180, 116, 240, 196, 116, 240, 181, 101, + 240, 180, 116, 240, 196, 116, 240, 181, 101, 240, 180, 116, + 240, 196, 116, 239, 15, 6, 95, 15, 8, 79, 15, 8, + 79, 15, 8, 95, 15, 6, 240, 36, 117, 240, 180, 116, + 240, 196, 116, 240, 181, 101, 240, 180, 116, 240, 196, 116, + 240, 181, 116, 240, 47, 15, 6, 95, 15, 8, 79, 15, + 8, 79, 15, 8, 95, 15, 6, 228, 116, 240, 196, 116, + 240, 181, 116, 240, 180, 116, 240, 196, 116, 240, 181, 116, + 240, 180, 116, 240, 196, 116, 240, 196, 116, 240, 180, 117, + 240, 180, 116, 240, 196, 116, 240, 210, 146, 0, 18, 64, + 76, 25, 131, 240, 115, 240, 89, 238, 159, 2, 143, 3, + 111, 4, 102, 19, 54, 86, 35, 83, 102, 35, 113, 102, + 35, 230, 35, 230, 35, 231, 19, 235, 251, 238, 207, 191, + 191, 191, 220, 221, 195, 40, 195, 55, 195, 70, 195, 70, + 195, 70, 66, 99, 70, 68, 67, 55, 70, 35, 39, 95, + 5, 95, 4, 127, 2, 159, 203, 240, 51, 240, 115, 240, + 115, 0, 29, 112, 134, 47, 102, 240, 114, 235, 240, 68, + 205, 240, 37, 182, 54, 245, 198, 69, 244, 213, 101, 213, + 198, 101, 197, 214, 101, 181, 230, 101, 180, 246, 101, 165, + 246, 101, 149, 240, 22, 101, 133, 240, 38, 101, 132, 240, + 54, 101, 117, 240, 70, 69, 117, 240, 86, 54, 101, 240, + 125, 117, 240, 140, 101, 240, 169, 117, 240, 240, 196, 240, + 240, 197, 105, 240, 181, 108, 240, 133, 109, 240, 132, 102, + 54, 240, 101, 102, 69, 240, 85, 117, 101, 240, 53, 118, + 101, 240, 52, 134, 101, 240, 37, 134, 101, 240, 21, 150, + 101, 245, 166, 101, 244, 182, 101, 229, 182, 101, 213, 213, + 101, 197, 230, 69, 213, 230, 54, 197, 240, 29, 212, 240, + 59, 242, 240, 103, 0, 54, 97, 37, 0, 10, 85, 240, + 249, 240, 203, 240, 165, 53, 240, 133, 69, 240, 132, 101, + 240, 101, 101, 240, 101, 101, 240, 101, 101, 240, 101, 101, + 240, 101, 85, 240, 117, 69, 240, 134, 53, 240, 149, 22, + 147, 219, 165, 185, 181, 200, 197, 214, 198, 199, 197, 186, + 166, 172, 149, 165, 39, 118, 150, 39, 117, 150, 71, 86, + 150, 87, 54, 166, 103, 22, 182, 109, 198, 123, 215, 121, + 232, 91, 114, 95, 15, 2, 95, 15, 2, 111, 1, 30, + 140, 92, 167, 168, 0, 51, 80, 18, 11, 240, 240, 55, + 71, 71, 71, 71, 71, 100, 101, 100, 100, 116, 0, 47, + 80, 51, 18, 164, 212, 213, 197, 197, 213, 197, 198, 197, + 198, 198, 182, 198, 198, 183, 183, 182, 198, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 198, 199, 183, + 183, 198, 198, 198, 214, 198, 213, 214, 213, 214, 213, 229, + 229, 228, 244, 64, 51, 18, 4, 244, 229, 229, 229, 214, + 213, 214, 214, 198, 198, 214, 198, 199, 183, 183, 198, 198, + 199, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 182, 198, 183, 183, 183, 182, 198, 182, 198, 197, 198, 197, + 198, 197, 197, 197, 212, 212, 224, 52, 23, 131, 240, 69, + 240, 53, 240, 53, 194, 68, 82, 84, 67, 68, 70, 35, + 53, 71, 19, 23, 79, 4, 125, 215, 240, 23, 221, 127, + 4, 71, 19, 23, 69, 51, 38, 68, 67, 68, 82, 84, + 66, 197, 240, 53, 240, 53, 240, 67, 0, 76, 32, 113, + 40, 0, 32, 18, 240, 240, 116, 240, 240, 100, 240, 240, + 100, 240, 240, 100, 240, 240, 100, 240, 240, 100, 240, 240, + 100, 240, 240, 100, 240, 240, 100, 240, 240, 100, 240, 240, + 100, 240, 240, 100, 240, 240, 100, 240, 240, 100, 240, 111, + 15, 4, 111, 15, 4, 95, 15, 6, 95, 15, 4, 111, + 15, 4, 240, 100, 240, 240, 100, 240, 240, 100, 240, 240, + 100, 240, 240, 100, 240, 240, 100, 240, 240, 100, 240, 240, + 100, 240, 240, 100, 240, 240, 100, 240, 240, 100, 240, 240, + 100, 240, 240, 100, 240, 240, 100, 240, 240, 100, 240, 240, + 114, 0, 32, 80, 18, 11, 0, 41, 39, 71, 71, 71, + 71, 71, 100, 101, 100, 100, 116, 0, 10, 64, 10, 18, + 0, 54, 14, 78, 78, 0, 47, 96, 12, 11, 0, 41, + 39, 71, 71, 71, 71, 71, 0, 17, 100, 25, 240, 50, + 240, 116, 240, 100, 240, 85, 240, 84, 240, 85, 240, 84, + 240, 100, 240, 85, 240, 84, 240, 85, 240, 84, 240, 100, + 240, 85, 240, 84, 240, 100, 240, 85, 240, 84, 240, 85, + 240, 84, 240, 100, 240, 85, 240, 84, 240, 85, 240, 85, + 240, 84, 240, 85, 240, 84, 240, 100, 240, 85, 240, 84, + 240, 85, 240, 84, 240, 100, 240, 85, 240, 84, 240, 100, + 240, 85, 240, 84, 240, 85, 240, 84, 240, 100, 240, 85, + 240, 84, 240, 85, 240, 84, 240, 100, 240, 114, 240, 112, + 73, 26, 0, 7, 56, 240, 28, 222, 182, 70, 150, 102, + 134, 102, 119, 103, 102, 134, 102, 134, 102, 135, 71, 135, + 71, 135, 71, 135, 71, 135, 71, 135, 71, 135, 71, 135, + 71, 135, 71, 135, 71, 135, 71, 135, 71, 135, 71, 135, + 71, 135, 71, 135, 71, 135, 86, 134, 103, 118, 103, 103, + 118, 102, 135, 86, 150, 70, 190, 220, 240, 24, 0, 37, + 16, 71, 24, 0, 7, 36, 240, 69, 240, 39, 189, 174, + 174, 194, 55, 240, 39, 240, 39, 240, 39, 240, 39, 240, + 39, 240, 39, 240, 39, 240, 39, 240, 39, 240, 39, 240, + 39, 240, 39, 240, 39, 240, 39, 240, 39, 240, 39, 240, + 39, 240, 39, 240, 39, 240, 39, 240, 39, 240, 39, 240, + 39, 240, 39, 191, 3, 111, 4, 95, 3, 0, 36, 80, + 76, 26, 240, 240, 55, 240, 44, 207, 175, 2, 159, 3, + 118, 89, 101, 120, 85, 151, 100, 152, 98, 183, 98, 183, + 240, 71, 240, 71, 240, 71, 240, 71, 240, 55, 240, 71, + 240, 55, 240, 55, 240, 70, 240, 70, 240, 70, 240, 70, + 240, 70, 240, 70, 240, 70, 240, 70, 240, 69, 240, 85, + 240, 100, 240, 111, 5, 95, 6, 95, 6, 95, 6, 95, + 5, 0, 39, 80, 75, 26, 240, 240, 56, 240, 28, 222, + 191, 1, 159, 3, 119, 87, 117, 134, 131, 151, 129, 167, + 240, 71, 240, 70, 240, 86, 240, 71, 240, 70, 240, 55, + 250, 240, 25, 240, 42, 240, 28, 240, 87, 240, 87, 240, + 86, 240, 87, 240, 71, 240, 71, 240, 71, 240, 71, 240, + 71, 82, 199, 68, 167, 87, 104, 95, 5, 127, 4, 159, + 1, 189, 240, 24, 0, 37, 16, 73, 27, 0, 11, 72, + 240, 72, 240, 57, 240, 57, 240, 42, 240, 42, 240, 20, + 22, 245, 22, 244, 38, 229, 38, 228, 54, 213, 54, 212, + 70, 197, 70, 196, 86, 181, 86, 165, 102, 165, 102, 149, + 118, 149, 118, 133, 134, 143, 8, 79, 8, 79, 8, 79, + 8, 79, 8, 240, 38, 240, 102, 240, 102, 240, 102, 240, + 102, 240, 102, 240, 101, 0, 41, 80, 73, 26, 0, 10, + 31, 2, 143, 3, 143, 3, 143, 3, 143, 3, 135, 240, + 71, 240, 71, 240, 71, 240, 71, 240, 71, 240, 71, 240, + 78, 207, 1, 175, 3, 136, 70, 134, 103, 117, 134, 131, + 151, 240, 71, 240, 71, 240, 71, 240, 71, 240, 71, 97, + 199, 82, 199, 83, 183, 69, 151, 87, 104, 111, 4, 143, + 3, 159, 1, 189, 240, 24, 0, 37, 16, 73, 26, 240, + 240, 103, 240, 27, 236, 206, 206, 184, 82, 167, 240, 71, + 240, 55, 240, 71, 240, 70, 240, 86, 240, 71, 54, 167, + 41, 135, 28, 105, 71, 104, 103, 88, 118, 88, 119, 71, + 135, 71, 135, 71, 135, 71, 135, 71, 135, 71, 135, 71, + 135, 86, 135, 86, 135, 87, 119, 102, 103, 119, 72, 143, + 2, 159, 1, 191, 204, 240, 39, 0, 37, 16, 75, 26, + 0, 9, 127, 6, 79, 7, 79, 7, 79, 7, 95, 6, + 240, 70, 240, 85, 240, 85, 240, 86, 240, 70, 240, 86, + 240, 70, 240, 71, 240, 70, 240, 71, 240, 70, 240, 71, + 240, 70, 240, 86, 240, 71, 240, 70, 240, 71, 240, 71, + 240, 71, 240, 71, 240, 70, 240, 71, 240, 71, 240, 71, + 240, 71, 240, 71, 240, 71, 240, 71, 240, 85, 0, 37, + 80, 72, 26, 240, 240, 56, 240, 28, 223, 175, 1, 159, + 3, 135, 72, 103, 103, 102, 134, 102, 134, 102, 134, 102, + 134, 102, 134, 102, 134, 102, 134, 118, 102, 150, 70, 190, + 234, 238, 167, 71, 119, 103, 102, 134, 87, 135, 71, 135, + 71, 135, 71, 135, 71, 135, 71, 135, 71, 135, 87, 103, + 104, 72, 111, 5, 127, 3, 159, 1, 190, 248, 0, 37, + 16, 75, 26, 240, 240, 56, 240, 28, 222, 191, 1, 159, + 2, 136, 71, 119, 102, 119, 103, 87, 134, 87, 134, 87, + 135, 71, 135, 71, 135, 71, 135, 71, 135, 71, 135, 71, + 135, 71, 135, 71, 120, 86, 120, 87, 104, 103, 58, 123, + 23, 137, 39, 166, 55, 240, 70, 240, 86, 240, 71, 240, + 70, 240, 71, 147, 103, 159, 2, 159, 1, 175, 204, 240, + 39, 0, 37, 48, 20, 11, 0, 19, 39, 71, 71, 71, + 71, 71, 0, 14, 39, 71, 71, 71, 71, 71, 0, 17, + 26, 11, 0, 19, 39, 71, 71, 71, 71, 71, 0, 14, + 39, 71, 71, 71, 71, 71, 100, 101, 100, 100, 115, 0, + 10, 80, 39, 11, 0, 16, 86, 71, 71, 71, 71, 70, + 240, 240, 135, 71, 71, 71, 71, 71, 71, 71, 71, 71, + 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, + 71, 71, 240, 240, 112, 39, 39, 0, 73, 47, 15, 3, + 95, 15, 5, 79, 15, 5, 79, 15, 5, 95, 15, 3, + 0, 34, 127, 15, 3, 95, 15, 5, 79, 15, 5, 79, + 15, 5, 95, 15, 3, 0, 78, 80, 66, 23, 0, 35, + 37, 240, 39, 240, 23, 240, 23, 240, 23, 240, 37, 0, + 10, 117, 240, 53, 240, 53, 240, 53, 240, 53, 240, 53, + 240, 53, 240, 37, 240, 53, 240, 38, 240, 37, 240, 38, + 240, 22, 240, 23, 247, 240, 23, 240, 22, 240, 38, 240, + 38, 161, 102, 147, 86, 132, 87, 87, 95, 3, 111, 169, + 0, 7, 62, 23, 0, 9, 41, 190, 127, 3, 102, 71, + 100, 119, 82, 151, 240, 23, 240, 23, 240, 23, 248, 247, + 248, 231, 240, 22, 240, 22, 240, 38, 240, 22, 240, 38, + 240, 37, 240, 53, 240, 53, 240, 53, 240, 53, 240, 53, + 0, 10, 118, 240, 23, 240, 23, 240, 23, 240, 23, 240, + 37, 0, 35, 112, 91, 33, 0, 13, 122, 240, 95, 240, + 31, 4, 200, 118, 183, 166, 151, 198, 134, 109, 118, 95, + 102, 95, 2, 86, 70, 72, 86, 54, 103, 85, 70, 103, + 70, 69, 134, 70, 54, 134, 70, 54, 134, 70, 54, 134, + 70, 54, 134, 70, 54, 134, 70, 54, 134, 70, 54, 134, + 70, 54, 134, 70, 70, 102, 102, 54, 102, 102, 70, 70, + 118, 94, 150, 92, 166, 120, 214, 240, 199, 244, 135, 198, + 153, 119, 207, 4, 240, 31, 240, 105, 0, 46, 112, 84, + 35, 0, 14, 73, 240, 186, 240, 155, 240, 155, 240, 156, + 240, 125, 240, 125, 240, 103, 23, 240, 86, 39, 240, 86, + 39, 240, 71, 55, 240, 54, 71, 240, 54, 71, 240, 39, + 87, 240, 22, 103, 240, 22, 104, 231, 119, 230, 135, 230, + 136, 198, 167, 198, 167, 207, 9, 175, 10, 175, 10, 159, + 12, 143, 12, 134, 231, 119, 232, 103, 247, 102, 240, 23, + 87, 240, 24, 70, 240, 55, 70, 240, 70, 0, 53, 72, + 33, 0, 12, 79, 4, 223, 8, 175, 10, 143, 11, 119, + 170, 103, 200, 103, 215, 103, 215, 103, 230, 103, 230, 103, + 215, 103, 215, 103, 199, 119, 168, 143, 8, 175, 6, 207, + 9, 151, 169, 119, 200, 103, 231, 87, 231, 87, 247, 71, + 247, 71, 247, 71, 247, 71, 247, 71, 232, 71, 216, 87, + 201, 95, 12, 111, 11, 127, 9, 159, 6, 0, 51, 76, + 32, 0, 9, 75, 240, 63, 3, 207, 5, 175, 7, 159, + 8, 139, 118, 136, 211, 120, 242, 119, 240, 152, 240, 151, + 240, 167, 240, 151, 240, 167, 240, 167, 240, 167, 240, 167, + 240, 167, 240, 167, 240, 167, 240, 167, 240, 167, 240, 183, + 240, 167, 240, 168, 240, 167, 240, 168, 240, 18, 121, 211, + 123, 134, 143, 9, 159, 8, 191, 5, 239, 1, 240, 75, + 0, 49, 16, 90, 35, 0, 13, 47, 4, 255, 8, 207, + 10, 175, 11, 151, 170, 135, 216, 119, 232, 103, 247, 103, + 240, 23, 87, 240, 23, 87, 240, 23, 87, 240, 39, 71, + 240, 39, 71, 240, 39, 71, 240, 39, 71, 240, 39, 71, + 240, 39, 71, 240, 39, 71, 240, 39, 71, 240, 39, 71, + 240, 39, 71, 240, 39, 71, 240, 23, 87, 240, 23, 87, + 240, 23, 87, 247, 103, 232, 103, 216, 119, 185, 143, 11, + 159, 10, 175, 8, 207, 5, 0, 54, 48, 73, 28, 0, + 10, 95, 7, 95, 8, 95, 8, 95, 8, 95, 8, 87, + 240, 103, 240, 103, 240, 103, 240, 103, 240, 103, 240, 103, + 240, 103, 240, 111, 6, 127, 7, 111, 7, 111, 7, 111, + 6, 119, 240, 103, 240, 103, 240, 103, 240, 103, 240, 103, + 240, 103, 240, 103, 240, 103, 240, 103, 240, 111, 9, 79, + 9, 79, 9, 79, 9, 79, 9, 0, 42, 64, 71, 27, + 0, 10, 47, 6, 95, 8, 79, 8, 79, 8, 79, 7, + 87, 240, 87, 240, 87, 240, 87, 240, 87, 240, 87, 240, + 87, 240, 87, 240, 87, 240, 95, 5, 127, 5, 127, 5, + 127, 5, 127, 5, 119, 240, 87, 240, 87, 240, 87, 240, + 87, 240, 87, 240, 87, 240, 87, 240, 87, 240, 87, 240, + 87, 240, 87, 240, 87, 240, 87, 0, 43, 77, 33, 0, + 9, 122, 240, 79, 3, 223, 7, 159, 9, 143, 10, 123, + 134, 137, 196, 120, 240, 18, 119, 240, 49, 104, 240, 167, + 240, 183, 240, 167, 240, 183, 240, 183, 240, 183, 240, 183, + 240, 183, 240, 183, 187, 71, 187, 71, 187, 72, 171, 87, + 171, 87, 246, 88, 230, 103, 230, 104, 214, 121, 182, 123, + 150, 143, 10, 159, 9, 191, 7, 223, 2, 240, 75, 0, + 50, 96, 101, 34, 0, 12, 103, 240, 23, 71, 240, 23, + 71, 240, 23, 71, 240, 23, 71, 240, 23, 71, 240, 23, + 71, 240, 23, 71, 240, 23, 71, 240, 23, 71, 240, 23, + 71, 240, 23, 71, 240, 23, 71, 240, 23, 79, 15, 79, + 15, 79, 15, 79, 15, 79, 15, 71, 240, 23, 71, 240, + 23, 71, 240, 23, 71, 240, 23, 71, 240, 23, 71, 240, + 23, 71, 240, 23, 71, 240, 23, 71, 240, 23, 71, 240, + 23, 71, 240, 23, 71, 240, 23, 71, 240, 23, 71, 240, + 23, 70, 240, 53, 0, 51, 80, 40, 11, 240, 240, 70, + 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, + 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, + 71, 71, 71, 71, 71, 71, 71, 70, 0, 17, 16, 47, + 22, 0, 9, 102, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 66, 151, 67, 135, 68, 89, 79, + 2, 95, 2, 95, 1, 126, 184, 0, 31, 64, 80, 34, + 0, 12, 117, 240, 39, 71, 248, 71, 232, 87, 216, 103, + 200, 119, 183, 151, 167, 167, 136, 183, 120, 199, 104, 215, + 88, 231, 72, 247, 56, 240, 23, 40, 240, 39, 25, 240, + 47, 3, 240, 31, 4, 255, 4, 251, 39, 234, 71, 217, + 88, 200, 119, 199, 151, 183, 167, 167, 168, 151, 183, 151, + 199, 135, 215, 119, 216, 103, 231, 103, 247, 87, 240, 23, + 85, 240, 54, 0, 51, 64, 72, 25, 0, 9, 70, 240, + 55, 240, 55, 240, 55, 240, 55, 240, 55, 240, 55, 240, + 55, 240, 55, 240, 55, 240, 55, 240, 55, 240, 55, 240, + 55, 240, 55, 240, 55, 240, 55, 240, 55, 240, 55, 240, + 55, 240, 55, 240, 55, 240, 55, 240, 55, 240, 55, 240, + 55, 240, 55, 240, 55, 240, 63, 6, 79, 6, 79, 6, + 79, 6, 95, 5, 0, 38, 124, 43, 0, 16, 40, 240, + 105, 74, 240, 89, 74, 240, 74, 74, 240, 74, 75, 240, + 43, 75, 240, 43, 76, 252, 70, 21, 245, 22, 70, 21, + 245, 22, 70, 22, 214, 22, 70, 37, 213, 38, 70, 38, + 182, 38, 70, 38, 181, 54, 70, 54, 150, 54, 70, 54, + 150, 54, 70, 69, 149, 70, 70, 70, 118, 70, 70, 70, + 117, 86, 70, 86, 86, 86, 70, 86, 86, 86, 70, 101, + 85, 102, 70, 102, 54, 102, 70, 117, 53, 118, 70, 118, + 22, 118, 70, 118, 21, 134, 70, 133, 21, 134, 70, 139, + 134, 70, 153, 150, 70, 153, 150, 70, 167, 166, 70, 167, + 166, 70, 181, 182, 69, 240, 228, 0, 65, 16, 94, 34, + 0, 12, 120, 240, 21, 74, 230, 75, 214, 75, 214, 76, + 198, 76, 198, 77, 182, 70, 22, 182, 70, 23, 166, 70, + 38, 166, 70, 54, 150, 70, 55, 134, 70, 70, 134, 70, + 71, 118, 70, 86, 118, 70, 87, 102, 70, 102, 102, 70, + 103, 86, 70, 118, 86, 70, 119, 70, 70, 134, 70, 70, + 135, 54, 70, 150, 54, 70, 166, 38, 70, 167, 22, 70, + 182, 22, 70, 189, 70, 204, 70, 204, 70, 219, 70, 219, + 70, 234, 69, 240, 24, 0, 51, 80, 100, 36, 0, 5, + 122, 240, 143, 1, 240, 63, 5, 255, 7, 217, 105, 184, + 168, 167, 199, 151, 231, 134, 240, 22, 119, 240, 23, 103, + 240, 23, 102, 240, 54, 102, 240, 55, 71, 240, 55, 71, + 240, 55, 71, 240, 55, 71, 240, 55, 71, 240, 55, 71, + 240, 55, 71, 240, 55, 71, 240, 55, 71, 240, 55, 71, + 240, 55, 71, 240, 55, 87, 240, 23, 103, 240, 23, 103, + 240, 23, 119, 232, 119, 231, 136, 200, 152, 168, 185, 105, + 223, 7, 255, 5, 240, 63, 1, 240, 138, 0, 51, 48, + 72, 31, 0, 11, 111, 3, 207, 7, 159, 9, 127, 10, + 103, 169, 87, 199, 87, 200, 71, 215, 71, 215, 71, 215, + 71, 215, 71, 215, 71, 215, 71, 200, 71, 199, 87, 169, + 95, 10, 111, 9, 127, 7, 159, 4, 199, 240, 151, 240, + 151, 240, 151, 240, 151, 240, 151, 240, 151, 240, 151, 240, + 151, 240, 151, 240, 151, 240, 151, 240, 151, 0, 49, 64, + 110, 36, 0, 5, 122, 240, 143, 1, 240, 63, 5, 255, + 7, 217, 105, 184, 168, 167, 199, 151, 231, 135, 231, 119, + 240, 23, 103, 240, 23, 103, 240, 23, 102, 240, 55, 71, + 240, 55, 71, 240, 55, 71, 240, 55, 71, 240, 55, 71, + 240, 55, 71, 240, 55, 71, 240, 55, 71, 240, 55, 71, + 240, 55, 71, 240, 55, 71, 240, 55, 87, 240, 39, 87, + 101, 87, 103, 102, 71, 119, 87, 55, 119, 103, 23, 136, + 95, 152, 93, 185, 75, 223, 7, 255, 5, 240, 63, 3, + 240, 111, 1, 240, 232, 240, 217, 240, 217, 240, 215, 0, + 32, 48, 73, 32, 0, 12, 31, 3, 223, 7, 175, 9, + 143, 10, 119, 169, 103, 199, 103, 200, 87, 215, 87, 215, + 87, 215, 87, 215, 87, 215, 87, 199, 103, 199, 103, 168, + 127, 9, 143, 7, 175, 5, 199, 103, 199, 103, 199, 119, + 183, 119, 183, 135, 167, 151, 151, 151, 151, 167, 135, 168, + 119, 183, 119, 184, 103, 199, 103, 215, 87, 216, 70, 246, + 0, 48, 80, 74, 28, 0, 7, 122, 240, 31, 191, 4, + 143, 5, 127, 6, 120, 102, 135, 163, 119, 194, 119, 240, + 103, 240, 103, 240, 104, 240, 89, 240, 91, 240, 47, 1, + 223, 2, 207, 2, 207, 2, 207, 2, 239, 240, 28, 240, + 89, 240, 88, 240, 103, 240, 103, 240, 103, 66, 247, 68, + 215, 69, 183, 88, 120, 95, 8, 95, 7, 127, 5, 175, + 1, 240, 25, 0, 40, 78, 35, 0, 13, 31, 15, 1, + 79, 15, 1, 79, 15, 1, 79, 15, 1, 79, 15, 1, + 240, 23, 240, 215, 240, 215, 240, 215, 240, 215, 240, 215, + 240, 215, 240, 215, 240, 215, 240, 215, 240, 215, 240, 215, + 240, 215, 240, 215, 240, 215, 240, 215, 240, 215, 240, 215, + 240, 215, 240, 215, 240, 215, 240, 215, 240, 215, 240, 215, + 240, 215, 240, 215, 240, 215, 240, 214, 0, 54, 80, 76, + 33, 0, 12, 55, 240, 21, 87, 247, 71, 247, 71, 247, + 71, 247, 71, 247, 71, 247, 71, 247, 71, 247, 71, 247, + 71, 247, 71, 247, 71, 247, 71, 247, 71, 247, 71, 247, + 71, 247, 71, 247, 71, 247, 71, 247, 71, 247, 71, 247, + 71, 247, 71, 247, 71, 247, 87, 216, 87, 215, 104, 184, + 121, 121, 143, 10, 159, 8, 207, 4, 255, 2, 240, 74, + 0, 47, 16, 88, 37, 0, 14, 6, 240, 86, 72, 240, + 55, 87, 240, 54, 103, 240, 39, 104, 240, 23, 119, 240, + 22, 136, 231, 151, 231, 151, 230, 168, 199, 183, 198, 199, + 198, 200, 167, 215, 166, 231, 151, 232, 135, 247, 134, 240, + 23, 119, 240, 39, 102, 240, 55, 102, 240, 56, 71, 240, + 71, 70, 240, 87, 70, 240, 88, 39, 240, 103, 38, 240, + 119, 38, 240, 142, 240, 141, 240, 157, 240, 171, 240, 187, + 240, 202, 240, 201, 0, 57, 64, 129, 52, 0, 19, 85, + 247, 244, 86, 232, 230, 71, 202, 213, 102, 202, 198, 102, + 202, 198, 103, 187, 182, 103, 172, 181, 134, 165, 22, 166, + 134, 165, 22, 166, 135, 149, 38, 149, 166, 134, 38, 149, + 166, 133, 54, 134, 166, 133, 54, 134, 167, 117, 70, 117, + 198, 102, 70, 102, 198, 101, 86, 102, 199, 85, 86, 102, + 199, 70, 102, 85, 230, 70, 102, 70, 230, 69, 118, 70, + 231, 53, 134, 53, 240, 22, 38, 134, 53, 240, 22, 37, + 150, 38, 240, 22, 37, 150, 38, 240, 23, 21, 166, 21, + 240, 60, 166, 21, 240, 59, 188, 240, 59, 188, 240, 74, + 202, 240, 90, 202, 240, 89, 218, 240, 89, 232, 240, 119, + 248, 0, 79, 80, 80, 36, 0, 13, 88, 231, 120, 216, + 136, 184, 168, 152, 185, 136, 200, 120, 232, 88, 240, 24, + 56, 240, 41, 40, 240, 56, 24, 240, 95, 240, 125, 240, + 156, 240, 155, 240, 185, 240, 215, 240, 217, 240, 202, 240, + 172, 240, 142, 240, 111, 240, 103, 24, 240, 71, 56, 240, + 40, 72, 248, 103, 247, 120, 216, 136, 184, 168, 152, 185, + 135, 216, 120, 232, 88, 249, 71, 240, 40, 0, 54, 64, + 79, 37, 0, 13, 119, 240, 86, 73, 240, 24, 88, 240, + 23, 105, 232, 121, 200, 152, 184, 184, 167, 201, 136, 216, + 120, 248, 103, 240, 25, 72, 240, 41, 40, 240, 72, 39, + 240, 111, 240, 127, 240, 141, 240, 171, 240, 187, 240, 201, + 240, 231, 240, 247, 240, 247, 240, 247, 240, 247, 240, 247, + 240, 247, 240, 247, 240, 247, 240, 247, 240, 247, 240, 247, + 240, 247, 240, 247, 0, 57, 80, 73, 31, 0, 11, 111, + 11, 95, 11, 95, 11, 95, 11, 95, 11, 240, 120, 240, + 120, 240, 120, 240, 120, 240, 136, 240, 120, 240, 120, 240, + 120, 240, 136, 240, 120, 240, 120, 240, 135, 240, 136, 240, + 120, 240, 120, 240, 135, 240, 136, 240, 120, 240, 120, 240, + 135, 240, 136, 240, 120, 240, 120, 240, 143, 11, 79, 12, + 79, 12, 79, 12, 95, 11, 0, 47, 51, 16, 11, 92, + 75, 87, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, + 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, + 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, + 151, 151, 151, 151, 151, 151, 151, 155, 92, 75, 80, 28, + 22, 0, 8, 84, 116, 116, 116, 100, 116, 101, 101, 100, + 116, 103, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, + 71, 0, 94, 51, 16, 26, 92, 91, 151, 151, 151, 151, + 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, + 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, + 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, + 151, 151, 91, 76, 90, 80, 17, 20, 0, 8, 22, 216, + 201, 171, 133, 38, 101, 84, 84, 132, 0, 95, 64, 13, + 11, 240, 240, 69, 87, 71, 71, 71, 85, 0, 54, 32, + 18, 11, 240, 240, 100, 116, 100, 101, 100, 103, 71, 71, + 71, 71, 71, 0, 47, 32, 52, 26, 0, 43, 11, 207, + 1, 159, 3, 134, 103, 116, 135, 130, 167, 113, 183, 240, + 71, 240, 71, 240, 71, 191, 143, 3, 120, 71, 103, 103, + 87, 119, 71, 135, 71, 135, 71, 135, 71, 135, 72, 104, + 88, 73, 108, 23, 122, 38, 166, 0, 37, 80, 75, 27, + 0, 10, 37, 240, 103, 240, 87, 240, 87, 240, 87, 240, + 87, 240, 87, 240, 87, 240, 87, 240, 87, 240, 87, 240, + 87, 70, 167, 27, 143, 5, 121, 87, 103, 135, 87, 135, + 87, 151, 71, 151, 71, 151, 71, 151, 71, 151, 71, 151, + 71, 151, 71, 151, 71, 151, 71, 151, 71, 150, 87, 135, + 87, 134, 105, 72, 111, 5, 119, 27, 240, 39, 0, 38, + 64, 50, 24, 0, 40, 8, 222, 159, 1, 127, 2, 103, + 101, 87, 147, 87, 161, 102, 240, 39, 240, 39, 240, 39, + 240, 39, 240, 39, 240, 39, 240, 39, 240, 39, 240, 54, + 240, 55, 177, 87, 147, 104, 85, 111, 3, 127, 2, 157, + 217, 0, 34, 73, 27, 0, 12, 37, 240, 103, 240, 87, + 240, 87, 240, 87, 240, 87, 240, 87, 240, 87, 240, 87, + 240, 87, 240, 87, 182, 55, 139, 23, 127, 5, 104, 73, + 102, 135, 87, 135, 86, 151, 71, 151, 71, 151, 71, 151, + 71, 151, 71, 151, 71, 151, 71, 151, 71, 151, 71, 151, + 86, 151, 87, 135, 87, 120, 104, 73, 127, 5, 139, 22, + 183, 0, 38, 112, 49, 26, 0, 46, 72, 254, 191, 1, + 151, 86, 118, 133, 103, 148, 102, 165, 71, 165, 71, 165, + 79, 7, 79, 7, 79, 7, 71, 240, 71, 240, 71, 240, + 86, 240, 87, 240, 71, 194, 103, 148, 120, 86, 143, 3, + 174, 233, 0, 36, 112, 43, 22, 0, 9, 56, 188, 157, + 135, 67, 134, 113, 119, 247, 247, 247, 247, 247, 221, 143, + 141, 183, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 240, 21, 0, 34, 80, + 69, 28, 0, 49, 121, 68, 143, 5, 127, 6, 103, 70, + 182, 102, 151, 102, 151, 102, 151, 102, 151, 102, 151, 102, + 166, 102, 167, 70, 207, 237, 226, 40, 240, 18, 240, 164, + 240, 148, 240, 159, 2, 207, 3, 175, 4, 159, 5, 111, + 8, 85, 183, 70, 213, 70, 213, 70, 213, 86, 182, 87, + 135, 127, 5, 159, 3, 220, 0, 8, 32, 73, 25, 0, + 9, 69, 240, 71, 240, 55, 240, 55, 240, 55, 240, 55, + 240, 55, 240, 55, 240, 55, 240, 55, 240, 55, 240, 55, + 70, 135, 42, 103, 28, 90, 56, 72, 103, 72, 103, 71, + 119, 71, 119, 71, 119, 71, 119, 71, 119, 71, 119, 71, + 119, 71, 119, 71, 119, 71, 119, 71, 119, 71, 119, 71, + 119, 71, 119, 71, 119, 85, 149, 0, 38, 16, 38, 11, + 240, 240, 55, 71, 71, 71, 71, 71, 71, 0, 6, 21, + 87, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, + 71, 71, 71, 71, 71, 71, 71, 71, 85, 0, 17, 16, + 49, 19, 0, 8, 22, 200, 184, 184, 184, 184, 198, 0, + 11, 37, 215, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 82, 72, 93, 94, 93, 123, 182, 0, 5, + 112, 66, 25, 0, 9, 68, 240, 86, 240, 70, 240, 70, + 240, 70, 240, 70, 240, 70, 240, 70, 240, 70, 240, 70, + 240, 70, 240, 70, 134, 86, 104, 86, 88, 102, 72, 118, + 56, 134, 40, 150, 24, 174, 189, 205, 205, 206, 191, 167, + 39, 150, 70, 150, 71, 134, 87, 118, 103, 102, 118, 102, + 119, 86, 135, 84, 166, 0, 38, 40, 11, 240, 240, 69, + 87, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, + 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, + 71, 71, 71, 71, 71, 71, 71, 85, 0, 17, 16, 74, + 40, 0, 70, 22, 87, 118, 135, 58, 74, 103, 29, 44, + 87, 18, 75, 56, 73, 104, 103, 72, 120, 103, 71, 135, + 119, 71, 135, 119, 71, 135, 119, 71, 135, 119, 71, 135, + 119, 71, 135, 119, 71, 135, 119, 71, 135, 119, 71, 135, + 119, 71, 135, 119, 71, 135, 119, 71, 135, 119, 71, 135, + 119, 71, 135, 119, 71, 135, 119, 85, 165, 149, 0, 60, + 80, 52, 25, 0, 43, 118, 70, 135, 42, 103, 28, 87, + 18, 56, 72, 103, 72, 103, 71, 119, 71, 119, 71, 119, + 71, 119, 71, 119, 71, 119, 71, 119, 71, 119, 71, 119, + 71, 119, 71, 119, 71, 119, 71, 119, 71, 119, 71, 119, + 85, 149, 0, 38, 16, 50, 28, 0, 50, 8, 240, 46, + 223, 2, 166, 88, 134, 134, 119, 135, 102, 166, 87, 167, + 71, 167, 71, 167, 71, 167, 71, 167, 71, 167, 71, 167, + 71, 167, 71, 167, 87, 135, 103, 135, 120, 87, 143, 5, + 159, 3, 206, 240, 25, 0, 40, 69, 27, 0, 45, 38, + 182, 42, 135, 28, 127, 6, 105, 73, 87, 120, 87, 135, + 87, 136, 71, 151, 71, 151, 71, 151, 71, 151, 71, 151, + 71, 151, 71, 151, 71, 151, 71, 151, 71, 135, 87, 135, + 87, 119, 105, 72, 111, 5, 119, 26, 151, 39, 183, 240, + 87, 240, 87, 240, 87, 240, 87, 240, 87, 240, 87, 240, + 87, 0, 12, 80, 71, 26, 0, 43, 21, 69, 154, 23, + 127, 4, 111, 5, 104, 57, 88, 88, 87, 119, 87, 119, + 71, 135, 71, 135, 71, 135, 71, 135, 71, 135, 71, 135, + 71, 135, 71, 135, 71, 135, 87, 119, 87, 119, 88, 88, + 104, 57, 127, 4, 138, 23, 166, 55, 240, 71, 240, 71, + 240, 71, 240, 71, 240, 71, 240, 71, 240, 71, 240, 70, + 0, 10, 48, 33, 19, 0, 33, 53, 99, 71, 53, 71, + 38, 71, 23, 71, 23, 75, 137, 168, 184, 183, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 214, 0, 30, + 40, 21, 0, 37, 56, 174, 111, 101, 85, 85, 131, 85, + 145, 101, 240, 23, 235, 189, 142, 142, 156, 202, 246, 240, + 21, 82, 149, 68, 133, 70, 86, 79, 1, 95, 1, 125, + 184, 0, 29, 112, 41, 21, 0, 21, 69, 247, 231, 231, + 231, 231, 191, 1, 95, 2, 79, 1, 135, 231, 231, 231, + 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 97, + 120, 51, 141, 141, 155, 183, 0, 29, 112, 52, 25, 0, + 43, 117, 149, 87, 119, 71, 119, 71, 119, 71, 119, 71, + 119, 71, 119, 71, 119, 71, 119, 71, 119, 71, 119, 71, + 119, 71, 119, 71, 119, 71, 119, 71, 119, 71, 119, 71, + 104, 71, 104, 87, 73, 92, 23, 106, 53, 151, 0, 36, + 16, 47, 25, 0, 43, 101, 181, 70, 150, 70, 150, 85, + 149, 102, 118, 102, 118, 117, 117, 134, 86, 134, 86, 149, + 85, 166, 69, 166, 54, 166, 54, 182, 37, 198, 22, 198, + 22, 219, 235, 235, 249, 240, 25, 240, 39, 0, 38, 112, + 75, 37, 0, 64, 101, 148, 165, 70, 133, 134, 70, 118, + 134, 85, 119, 117, 102, 103, 117, 102, 103, 102, 102, 88, + 102, 117, 83, 21, 85, 134, 67, 21, 70, 134, 67, 21, + 70, 134, 52, 22, 53, 166, 36, 37, 53, 166, 35, 53, + 38, 166, 20, 53, 38, 181, 20, 54, 21, 202, 69, 21, + 201, 91, 201, 91, 216, 90, 232, 105, 231, 121, 245, 151, + 0, 56, 96, 48, 26, 0, 45, 70, 150, 87, 134, 103, + 102, 135, 70, 166, 55, 182, 38, 220, 235, 240, 25, 240, + 55, 240, 86, 240, 71, 240, 72, 240, 42, 252, 214, 38, + 182, 70, 166, 70, 150, 102, 118, 134, 87, 135, 70, 166, + 0, 39, 64, 64, 25, 0, 43, 101, 181, 70, 150, 70, + 150, 86, 133, 102, 118, 118, 102, 118, 101, 150, 70, 150, + 70, 166, 53, 182, 38, 197, 38, 198, 21, 220, 235, 234, + 240, 25, 240, 25, 240, 39, 240, 55, 240, 70, 240, 69, + 240, 85, 240, 69, 240, 85, 240, 70, 194, 70, 220, 219, + 234, 249, 240, 38, 0, 8, 64, 52, 24, 0, 42, 31, + 3, 111, 4, 95, 4, 95, 4, 240, 23, 240, 23, 240, + 23, 240, 38, 240, 38, 240, 39, 240, 23, 240, 23, 240, + 23, 240, 38, 240, 38, 240, 38, 240, 39, 240, 23, 240, + 31, 4, 95, 5, 79, 5, 95, 3, 0, 36, 80, 13, + 30, 0, 78, 111, 11, 79, 11, 79, 11, 0, 90, 64, + 23, 57, 0, 127, 0, 22, 111, 15, 15, 7, 79, 15, + 15, 8, 79, 15, 15, 8, 0, 127, 0, 44, 64, 23, + 20, 0, 7, 86, 54, 86, 39, 85, 54, 101, 53, 101, + 69, 101, 68, 116, 84, 115, 99, 0, 93, 64, 19, 22, + 0, 8, 85, 115, 104, 68, 91, 21, 69, 27, 84, 72, + 100, 101, 0, 108, 16, +}; + +//***************************************************************************** +// +// The font definition for the 48 point Cmss bold font. +// +//***************************************************************************** +const tFont g_sFontCmss48b = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 52, + + // + // The height of the font. + // + 48, + + // + // The baseline of the font. + // + 36, + + // + // The offset to each character in the font. + // + { + 0, 4, 43, 72, 204, 280, 414, 511, + 529, 580, 631, 683, 796, 814, 824, 836, + 936, 1009, 1080, 1156, 1231, 1304, 1377, 1450, + 1525, 1597, 1672, 1692, 1718, 1757, 1796, 1862, + 1924, 2015, 2099, 2171, 2247, 2337, 2410, 2481, + 2558, 2659, 2699, 2746, 2826, 2898, 3022, 3116, + 3216, 3288, 3398, 3471, 3545, 3623, 3699, 3787, + 3916, 3996, 4075, 4148, 4199, 4227, 4278, 4295, + 4308, 4326, 4378, 4453, 4503, 4576, 4625, 4668, + 4737, 4810, 4848, 4897, 4963, 5003, 5077, 5129, + 5179, 5248, 5319, 5352, 5392, 5433, 5485, 5532, + 5607, 5655, 5719, 5771, 5784, 5807, 5830, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss48bData +}; diff --git a/grlib/fonts/fontcmss48i.c b/grlib/fonts/fontcmss48i.c new file mode 100644 index 0000000..1772cff --- /dev/null +++ b/grlib/fonts/fontcmss48i.c @@ -0,0 +1,616 @@ +//***************************************************************************** +// +// fontcmss48i.c - Font definition for the 48pt Cmss italic font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmss +// Size: 48 point +// Bold: no +// Italic: yes +// Memory usage: 6320 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 48 point Cmss italic font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmss48iData[6118] = +{ + 5, 19, 0, 116, 48, 39, 15, 0, 6, 68, 180, 179, + 180, 180, 180, 180, 179, 180, 180, 180, 179, 195, 195, 180, + 180, 179, 195, 195, 180, 179, 195, 195, 195, 180, 179, 0, + 8, 116, 179, 180, 180, 0, 23, 112, 27, 19, 0, 7, + 52, 84, 100, 84, 100, 84, 84, 84, 115, 99, 114, 114, + 115, 99, 114, 114, 130, 114, 114, 114, 0, 86, 64, 138, + 38, 0, 16, 113, 145, 240, 178, 130, 240, 177, 146, 240, + 162, 130, 240, 177, 146, 240, 162, 145, 240, 178, 130, 240, + 162, 145, 240, 178, 130, 240, 162, 145, 240, 178, 130, 240, + 162, 146, 240, 162, 130, 240, 162, 146, 240, 162, 130, 240, + 177, 146, 239, 15, 2, 111, 15, 2, 240, 18, 145, 240, + 178, 130, 240, 162, 146, 240, 162, 130, 240, 162, 146, 240, + 162, 130, 240, 177, 146, 240, 31, 15, 2, 111, 15, 2, + 226, 145, 240, 178, 130, 240, 162, 146, 240, 162, 130, 240, + 177, 146, 240, 162, 130, 240, 178, 130, 240, 162, 145, 240, + 178, 130, 240, 162, 146, 240, 162, 130, 240, 162, 146, 240, + 162, 130, 240, 177, 146, 240, 162, 130, 240, 178, 130, 240, + 177, 145, 0, 12, 80, 103, 27, 243, 240, 147, 240, 131, + 240, 121, 240, 28, 238, 197, 19, 36, 180, 50, 82, 179, + 51, 240, 36, 51, 240, 35, 67, 240, 20, 67, 240, 20, + 66, 240, 36, 51, 240, 36, 51, 240, 37, 35, 240, 38, + 18, 240, 72, 240, 74, 240, 59, 240, 58, 240, 72, 240, + 66, 22, 240, 35, 37, 240, 35, 52, 240, 35, 52, 240, + 34, 68, 240, 34, 68, 240, 19, 68, 240, 19, 52, 240, + 35, 52, 145, 114, 52, 163, 67, 37, 150, 35, 21, 191, + 221, 240, 25, 240, 99, 240, 147, 240, 147, 0, 32, 64, + 124, 33, 100, 240, 49, 150, 240, 18, 136, 226, 132, 21, + 194, 132, 52, 194, 132, 52, 178, 132, 68, 162, 148, 68, + 161, 164, 68, 146, 149, 68, 130, 164, 84, 114, 180, 68, + 130, 180, 68, 114, 196, 68, 98, 212, 67, 113, 228, 52, + 98, 244, 20, 98, 240, 24, 98, 240, 54, 114, 240, 68, + 114, 240, 242, 116, 240, 66, 118, 240, 50, 104, 240, 18, + 100, 21, 226, 100, 52, 226, 100, 52, 210, 100, 68, 194, + 116, 68, 178, 132, 68, 178, 116, 84, 162, 132, 84, 146, + 148, 68, 162, 148, 68, 146, 164, 68, 130, 180, 52, 130, + 196, 52, 130, 212, 20, 130, 232, 130, 240, 22, 146, 240, + 36, 0, 38, 48, 101, 35, 0, 10, 100, 240, 232, 240, + 185, 240, 164, 37, 240, 132, 68, 240, 131, 84, 240, 116, + 84, 240, 116, 84, 240, 115, 100, 240, 115, 84, 240, 116, + 84, 240, 116, 68, 240, 132, 52, 240, 148, 36, 240, 164, + 20, 240, 184, 240, 199, 195, 214, 211, 213, 211, 199, 196, + 184, 195, 180, 21, 164, 164, 37, 163, 164, 68, 147, 164, + 85, 115, 164, 116, 100, 164, 117, 68, 164, 148, 52, 180, + 149, 20, 196, 168, 212, 167, 229, 165, 240, 21, 106, 113, + 111, 28, 140, 75, 167, 153, 0, 48, 112, 16, 10, 240, + 240, 36, 100, 100, 84, 115, 114, 115, 114, 130, 114, 0, + 46, 100, 21, 227, 240, 35, 240, 35, 240, 36, 240, 20, + 240, 35, 240, 35, 240, 36, 240, 20, 240, 35, 240, 36, + 240, 35, 240, 36, 240, 36, 240, 20, 240, 36, 240, 20, + 240, 36, 240, 36, 240, 20, 240, 36, 240, 36, 240, 36, + 240, 20, 240, 36, 240, 36, 240, 36, 240, 36, 240, 21, + 240, 20, 240, 36, 240, 36, 240, 36, 240, 36, 240, 36, + 240, 36, 240, 36, 240, 36, 240, 36, 240, 36, 240, 51, + 240, 52, 240, 36, 240, 51, 240, 51, 240, 52, 240, 51, + 240, 67, 240, 51, 224, 101, 22, 179, 240, 67, 240, 83, + 240, 68, 240, 67, 240, 68, 240, 52, 240, 52, 240, 67, + 240, 68, 240, 52, 240, 52, 240, 52, 240, 52, 240, 52, + 240, 52, 240, 52, 240, 52, 240, 52, 240, 52, 240, 52, + 240, 36, 240, 52, 240, 52, 240, 52, 240, 52, 240, 36, + 240, 52, 240, 52, 240, 52, 240, 36, 240, 52, 240, 52, + 240, 36, 240, 52, 240, 51, 240, 52, 240, 51, 240, 52, + 240, 51, 240, 52, 240, 36, 240, 51, 240, 51, 240, 52, + 240, 36, 240, 51, 240, 51, 240, 36, 240, 48, 49, 23, + 163, 240, 83, 240, 83, 240, 83, 240, 67, 226, 67, 67, + 100, 51, 52, 101, 35, 22, 120, 21, 186, 246, 240, 23, + 235, 165, 18, 21, 117, 35, 37, 100, 51, 52, 113, 83, + 66, 227, 240, 67, 240, 83, 240, 83, 0, 82, 32, 96, + 34, 0, 40, 50, 240, 240, 34, 240, 240, 34, 240, 240, + 33, 240, 240, 34, 240, 240, 34, 240, 240, 34, 240, 240, + 34, 240, 240, 33, 240, 240, 34, 240, 240, 34, 240, 240, + 34, 240, 240, 34, 240, 240, 33, 240, 240, 34, 240, 63, + 15, 79, 15, 240, 50, 240, 240, 33, 240, 240, 34, 240, + 240, 34, 240, 240, 34, 240, 240, 34, 240, 240, 33, 240, + 240, 34, 240, 240, 34, 240, 240, 34, 240, 240, 33, 240, + 240, 49, 240, 240, 34, 240, 240, 34, 0, 40, 112, 17, + 10, 0, 41, 68, 100, 99, 100, 115, 114, 115, 114, 130, + 114, 0, 8, 64, 10, 17, 0, 53, 29, 77, 77, 0, + 45, 16, 11, 9, 0, 37, 36, 84, 68, 84, 0, 14, + 16, 102, 31, 240, 162, 240, 226, 240, 210, 240, 226, 240, + 210, 240, 226, 240, 210, 240, 226, 240, 210, 240, 226, 240, + 210, 240, 225, 240, 226, 240, 210, 240, 226, 240, 210, 240, + 226, 240, 210, 240, 226, 240, 210, 240, 226, 240, 210, 240, + 226, 240, 210, 240, 225, 240, 226, 240, 210, 240, 226, 240, + 210, 240, 226, 240, 210, 240, 226, 240, 210, 240, 226, 240, + 210, 240, 226, 240, 210, 240, 226, 240, 210, 240, 225, 240, + 226, 240, 210, 240, 226, 240, 210, 240, 226, 240, 210, 240, + 226, 240, 210, 240, 226, 240, 224, 71, 26, 0, 14, 70, + 240, 57, 252, 213, 69, 180, 116, 179, 133, 148, 148, 132, + 164, 131, 180, 116, 180, 116, 180, 115, 196, 100, 196, 100, + 196, 100, 180, 100, 196, 100, 196, 100, 196, 100, 196, 100, + 180, 100, 196, 100, 196, 100, 180, 116, 180, 116, 180, 116, + 164, 132, 164, 132, 148, 149, 132, 164, 116, 181, 69, 220, + 249, 240, 54, 0, 37, 96, 66, 20, 0, 11, 113, 240, + 35, 229, 185, 185, 164, 36, 240, 20, 240, 19, 240, 35, + 240, 20, 240, 20, 240, 20, 240, 19, 240, 35, 240, 20, + 240, 20, 240, 20, 240, 19, 240, 35, 240, 20, 240, 20, + 240, 20, 240, 19, 240, 20, 240, 20, 240, 20, 240, 20, + 240, 19, 240, 20, 240, 20, 190, 95, 95, 0, 30, 80, + 73, 27, 0, 15, 6, 240, 74, 240, 28, 227, 86, 195, + 132, 179, 149, 147, 180, 147, 180, 146, 196, 161, 196, 240, + 132, 240, 131, 240, 132, 240, 131, 240, 132, 240, 116, 240, + 116, 240, 131, 240, 116, 240, 116, 240, 116, 240, 116, 240, + 116, 240, 115, 240, 131, 240, 116, 240, 116, 240, 116, 240, + 116, 240, 115, 240, 143, 3, 159, 3, 159, 3, 0, 41, + 80, 71, 26, 0, 14, 70, 240, 58, 237, 197, 85, 164, + 132, 163, 148, 162, 164, 161, 180, 240, 116, 240, 115, 240, + 116, 240, 100, 240, 100, 240, 85, 240, 40, 240, 39, 240, + 73, 240, 132, 240, 132, 240, 132, 240, 116, 240, 116, 240, + 116, 240, 116, 240, 116, 240, 100, 129, 212, 129, 196, 131, + 180, 132, 148, 165, 85, 205, 235, 240, 38, 0, 37, 80, + 75, 25, 0, 17, 85, 240, 85, 240, 69, 240, 66, 19, + 240, 55, 240, 35, 20, 240, 35, 20, 240, 19, 35, 240, + 19, 36, 244, 36, 243, 52, 227, 68, 212, 67, 212, 68, + 211, 84, 196, 84, 180, 99, 180, 115, 179, 116, 164, 116, + 148, 132, 159, 5, 79, 6, 79, 5, 240, 36, 240, 100, + 240, 99, 240, 100, 240, 100, 240, 100, 240, 100, 240, 84, + 0, 38, 112, 71, 27, 0, 17, 111, 1, 191, 1, 191, + 195, 240, 147, 240, 132, 240, 132, 240, 131, 240, 147, 240, + 147, 240, 132, 240, 132, 37, 240, 19, 24, 253, 214, 69, + 197, 100, 196, 132, 179, 148, 240, 132, 240, 132, 240, 132, + 240, 132, 240, 132, 240, 116, 240, 132, 240, 116, 161, 196, + 147, 164, 164, 132, 197, 85, 205, 240, 26, 240, 69, 0, + 39, 32, 71, 26, 0, 14, 103, 240, 42, 236, 213, 97, + 212, 240, 100, 240, 100, 240, 100, 240, 101, 240, 100, 240, + 100, 240, 116, 70, 181, 41, 164, 28, 137, 69, 135, 117, + 118, 148, 117, 164, 101, 180, 101, 180, 101, 180, 100, 196, + 100, 196, 100, 180, 116, 180, 116, 180, 116, 164, 132, 163, + 149, 132, 164, 116, 181, 69, 220, 249, 240, 54, 0, 37, + 96, 71, 25, 0, 15, 127, 4, 95, 5, 95, 4, 240, + 115, 240, 99, 240, 99, 240, 99, 240, 99, 240, 99, 240, + 100, 240, 84, 240, 99, 240, 99, 240, 100, 240, 99, 240, + 100, 240, 84, 240, 99, 240, 100, 240, 99, 240, 100, 240, + 99, 240, 100, 240, 100, 240, 84, 240, 100, 240, 99, 240, + 100, 240, 100, 240, 100, 240, 84, 240, 100, 0, 40, 16, + 70, 26, 0, 14, 54, 240, 58, 252, 212, 85, 180, 116, + 164, 148, 147, 164, 147, 164, 131, 179, 147, 179, 147, 164, + 148, 147, 179, 131, 196, 84, 234, 240, 54, 240, 58, 244, + 68, 196, 116, 164, 147, 164, 148, 132, 164, 132, 164, 116, + 180, 116, 180, 116, 164, 132, 164, 132, 164, 132, 148, 164, + 116, 181, 84, 220, 250, 240, 53, 0, 37, 96, 71, 25, + 0, 13, 118, 240, 42, 235, 212, 69, 180, 100, 164, 132, + 147, 148, 131, 164, 116, 164, 116, 164, 115, 180, 100, 180, + 100, 180, 100, 180, 100, 165, 100, 165, 100, 149, 116, 134, + 117, 103, 133, 72, 139, 20, 168, 52, 181, 69, 240, 84, + 240, 100, 240, 84, 240, 99, 240, 100, 240, 84, 177, 132, + 195, 69, 204, 233, 240, 38, 0, 36, 64, 16, 12, 0, + 24, 68, 132, 131, 147, 0, 20, 35, 147, 132, 132, 0, + 19, 22, 14, 0, 28, 100, 164, 148, 164, 0, 23, 84, + 164, 164, 148, 179, 179, 178, 178, 194, 178, 0, 12, 39, + 15, 0, 23, 52, 180, 179, 180, 0, 10, 99, 180, 179, + 195, 195, 195, 180, 179, 195, 195, 180, 180, 179, 195, 195, + 180, 180, 180, 179, 180, 180, 180, 180, 179, 180, 180, 240, + 240, 176, 17, 36, 0, 85, 111, 15, 111, 15, 0, 32, + 15, 15, 111, 15, 0, 86, 32, 59, 20, 0, 31, 67, + 240, 20, 240, 20, 240, 20, 0, 14, 51, 240, 35, 240, + 35, 240, 35, 240, 19, 240, 35, 240, 20, 240, 19, 240, + 20, 240, 19, 240, 20, 244, 244, 244, 244, 244, 240, 20, + 244, 240, 20, 240, 20, 240, 20, 240, 20, 147, 69, 101, + 95, 108, 151, 0, 6, 32, 60, 21, 0, 8, 87, 188, + 127, 101, 86, 82, 164, 240, 36, 240, 36, 240, 36, 240, + 36, 240, 20, 240, 21, 245, 245, 245, 245, 245, 240, 20, + 240, 20, 240, 35, 240, 35, 240, 51, 240, 36, 240, 35, + 240, 51, 240, 51, 240, 35, 0, 12, 84, 240, 36, 240, + 20, 240, 36, 0, 33, 80, 91, 31, 0, 13, 71, 240, + 123, 240, 62, 246, 86, 213, 148, 197, 164, 180, 117, 19, + 164, 108, 132, 94, 132, 69, 55, 116, 69, 85, 116, 84, + 116, 116, 68, 132, 116, 68, 132, 100, 68, 148, 100, 68, + 148, 100, 67, 164, 84, 68, 163, 100, 68, 148, 100, 68, + 148, 100, 68, 147, 116, 68, 132, 116, 68, 116, 132, 84, + 99, 149, 69, 53, 164, 91, 180, 104, 213, 101, 240, 21, + 240, 197, 240, 183, 117, 239, 240, 44, 240, 103, 0, 48, + 64, 92, 31, 0, 13, 116, 240, 181, 240, 181, 240, 167, + 240, 136, 240, 131, 20, 240, 115, 36, 240, 115, 36, 240, + 99, 52, 240, 99, 67, 240, 83, 84, 240, 67, 84, 240, + 51, 100, 240, 51, 100, 240, 35, 116, 240, 20, 116, 240, + 19, 132, 244, 133, 227, 149, 212, 164, 211, 180, 207, 4, + 207, 4, 191, 5, 164, 212, 163, 229, 132, 244, 131, 240, + 20, 116, 240, 20, 115, 240, 36, 100, 240, 36, 99, 240, + 52, 84, 240, 53, 67, 240, 69, 0, 47, 76, 31, 0, + 12, 78, 240, 31, 3, 223, 4, 196, 151, 180, 181, 164, + 213, 148, 228, 148, 228, 148, 228, 148, 228, 132, 228, 148, + 228, 148, 212, 164, 181, 180, 149, 207, 2, 239, 240, 31, + 3, 212, 151, 179, 213, 148, 228, 148, 229, 132, 244, 132, + 244, 131, 240, 20, 116, 240, 20, 116, 244, 132, 229, 132, + 213, 132, 213, 148, 167, 175, 5, 191, 3, 223, 0, 48, + 64, 74, 31, 0, 13, 73, 240, 79, 239, 1, 230, 116, + 213, 178, 196, 240, 180, 240, 180, 240, 180, 240, 196, 240, + 180, 240, 180, 240, 196, 240, 196, 240, 180, 240, 196, 240, + 196, 240, 180, 240, 196, 240, 196, 240, 196, 240, 196, 240, + 196, 240, 196, 240, 196, 240, 212, 240, 196, 240, 197, 240, + 197, 240, 182, 178, 214, 132, 239, 2, 240, 29, 240, 88, + 0, 48, 48, 95, 34, 0, 13, 95, 1, 240, 63, 3, + 240, 31, 4, 244, 151, 212, 198, 196, 228, 196, 229, 180, + 244, 180, 244, 164, 240, 36, 148, 240, 36, 148, 240, 36, + 148, 240, 36, 147, 240, 52, 132, 240, 52, 132, 240, 52, + 132, 240, 52, 132, 240, 52, 131, 240, 52, 132, 240, 52, + 132, 240, 52, 132, 240, 36, 148, 240, 36, 132, 240, 36, + 148, 240, 36, 148, 240, 20, 164, 244, 180, 229, 164, 229, + 180, 198, 196, 166, 239, 4, 255, 2, 240, 31, 1, 0, + 53, 32, 75, 31, 0, 12, 79, 5, 191, 5, 191, 5, + 180, 240, 180, 240, 196, 240, 196, 240, 196, 240, 196, 240, + 180, 240, 196, 240, 196, 240, 196, 240, 181, 240, 180, 240, + 207, 4, 207, 4, 207, 4, 180, 240, 196, 240, 196, 240, + 196, 240, 196, 240, 180, 240, 196, 240, 196, 240, 196, 240, + 196, 240, 180, 240, 196, 240, 196, 240, 207, 6, 175, 5, + 175, 6, 0, 47, 96, 74, 31, 0, 12, 79, 5, 191, + 4, 207, 4, 196, 240, 180, 240, 196, 240, 196, 240, 196, + 240, 196, 240, 180, 240, 196, 240, 196, 240, 196, 240, 181, + 240, 180, 240, 196, 240, 207, 3, 223, 2, 223, 3, 212, + 240, 196, 240, 196, 240, 196, 240, 181, 240, 180, 240, 196, + 240, 196, 240, 196, 240, 180, 240, 196, 240, 196, 240, 196, + 240, 196, 240, 180, 0, 49, 112, 76, 31, 0, 13, 72, + 240, 94, 240, 31, 1, 214, 117, 197, 178, 196, 225, 180, + 240, 180, 240, 181, 240, 180, 240, 180, 240, 196, 240, 180, + 240, 196, 240, 180, 240, 196, 240, 196, 240, 180, 240, 196, + 240, 196, 240, 196, 170, 116, 170, 116, 169, 132, 240, 19, + 132, 244, 148, 228, 148, 227, 165, 211, 180, 196, 182, 164, + 198, 133, 223, 2, 240, 29, 240, 88, 0, 48, 48, 84, + 35, 0, 14, 4, 240, 20, 180, 244, 196, 244, 196, 244, + 180, 240, 20, 180, 245, 180, 244, 196, 244, 196, 244, 180, + 240, 20, 180, 244, 196, 244, 196, 244, 196, 244, 180, 240, + 20, 191, 8, 207, 8, 207, 8, 181, 244, 180, 240, 20, + 180, 244, 196, 244, 196, 244, 180, 240, 20, 180, 240, 20, + 180, 244, 196, 244, 196, 244, 180, 240, 20, 180, 244, 196, + 244, 196, 244, 196, 244, 180, 240, 20, 0, 53, 112, 41, + 15, 0, 6, 68, 180, 164, 180, 180, 180, 180, 164, 180, + 180, 180, 180, 164, 180, 180, 180, 180, 164, 180, 180, 180, + 180, 164, 180, 180, 180, 180, 164, 180, 180, 180, 180, 164, + 180, 0, 23, 112, 74, 27, 0, 12, 68, 240, 116, 240, + 132, 240, 132, 240, 132, 240, 131, 240, 132, 240, 132, 240, + 132, 240, 132, 240, 131, 240, 132, 240, 132, 240, 132, 240, + 132, 240, 116, 240, 132, 240, 132, 240, 132, 240, 132, 240, + 116, 240, 132, 240, 132, 240, 132, 240, 131, 240, 132, 240, + 132, 240, 132, 240, 132, 177, 164, 194, 133, 195, 86, 206, + 236, 240, 55, 0, 39, 16, 95, 35, 0, 14, 4, 240, + 20, 180, 244, 196, 213, 212, 197, 212, 197, 228, 181, 244, + 165, 240, 20, 149, 240, 36, 132, 240, 52, 132, 240, 68, + 116, 240, 84, 100, 240, 100, 69, 240, 115, 69, 240, 116, + 54, 240, 116, 40, 240, 100, 25, 240, 105, 21, 240, 73, + 52, 240, 71, 84, 240, 70, 101, 240, 53, 132, 240, 52, + 149, 240, 20, 180, 240, 20, 181, 244, 181, 244, 196, 244, + 197, 212, 228, 212, 229, 196, 229, 196, 244, 196, 245, 164, + 240, 36, 0, 53, 96, 74, 23, 0, 9, 68, 240, 68, + 240, 68, 240, 68, 240, 52, 240, 68, 240, 68, 240, 68, + 240, 68, 240, 52, 240, 68, 240, 68, 240, 68, 240, 68, + 240, 52, 240, 68, 240, 68, 240, 68, 240, 53, 240, 52, + 240, 68, 240, 68, 240, 68, 240, 52, 240, 68, 240, 68, + 240, 68, 240, 68, 240, 52, 240, 68, 240, 68, 240, 79, + 3, 95, 3, 79, 4, 0, 35, 130, 42, 0, 16, 86, + 240, 70, 182, 240, 70, 182, 240, 55, 183, 240, 38, 184, + 240, 23, 184, 248, 180, 19, 243, 20, 180, 19, 228, 20, + 179, 35, 227, 35, 180, 35, 212, 20, 180, 35, 211, 36, + 180, 36, 179, 52, 180, 36, 179, 51, 195, 52, 163, 52, + 180, 52, 148, 52, 180, 67, 147, 68, 180, 67, 132, 68, + 180, 67, 131, 83, 195, 84, 100, 68, 180, 84, 99, 84, + 180, 84, 84, 84, 180, 84, 83, 100, 179, 100, 67, 115, + 195, 115, 67, 100, 180, 115, 51, 116, 180, 115, 51, 116, + 180, 116, 19, 132, 179, 132, 19, 131, 180, 135, 132, 180, + 135, 132, 180, 149, 148, 180, 148, 164, 179, 164, 163, 180, + 240, 132, 0, 64, 48, 100, 35, 0, 14, 6, 228, 183, + 211, 199, 196, 199, 196, 184, 196, 180, 20, 180, 180, 20, + 179, 195, 36, 164, 195, 36, 164, 180, 52, 148, 180, 52, + 147, 196, 52, 147, 195, 68, 132, 195, 84, 116, 180, 84, + 116, 180, 84, 115, 196, 84, 100, 195, 116, 84, 180, 116, + 84, 180, 116, 84, 180, 116, 83, 196, 132, 52, 195, 148, + 52, 180, 148, 52, 180, 148, 52, 180, 164, 35, 196, 164, + 20, 195, 180, 20, 180, 180, 20, 180, 195, 19, 196, 199, + 195, 215, 195, 215, 180, 215, 0, 53, 112, 98, 33, 0, + 10, 22, 240, 156, 240, 94, 240, 38, 86, 245, 149, 212, + 196, 196, 213, 164, 244, 163, 240, 20, 148, 240, 36, 116, + 240, 52, 116, 240, 52, 100, 240, 68, 100, 240, 68, 99, + 240, 84, 84, 240, 84, 84, 240, 84, 84, 240, 84, 68, + 240, 84, 84, 240, 84, 84, 240, 84, 84, 240, 69, 84, + 240, 68, 100, 240, 68, 100, 240, 52, 116, 240, 52, 117, + 240, 20, 148, 244, 164, 229, 165, 212, 196, 181, 213, 149, + 246, 86, 240, 46, 240, 92, 240, 150, 0, 47, 96, 74, + 31, 0, 12, 78, 240, 31, 3, 223, 4, 196, 151, 180, + 181, 180, 197, 148, 228, 148, 228, 148, 228, 148, 228, 147, + 244, 132, 228, 148, 228, 148, 212, 164, 197, 148, 197, 164, + 166, 191, 4, 207, 2, 238, 240, 20, 240, 196, 240, 196, + 240, 196, 240, 196, 240, 180, 240, 196, 240, 196, 240, 196, + 240, 196, 240, 180, 240, 196, 240, 196, 240, 196, 0, 49, + 112, 112, 33, 0, 10, 22, 240, 156, 240, 94, 240, 38, + 86, 245, 149, 212, 196, 196, 213, 164, 244, 164, 244, 148, + 240, 36, 116, 240, 52, 116, 240, 52, 100, 240, 68, 100, + 240, 68, 99, 240, 84, 84, 240, 84, 84, 240, 84, 84, + 240, 84, 68, 240, 84, 84, 240, 84, 84, 240, 84, 84, + 240, 84, 84, 240, 68, 100, 240, 68, 100, 240, 52, 116, + 240, 52, 116, 116, 100, 148, 116, 84, 148, 116, 68, 165, + 116, 36, 196, 116, 20, 213, 104, 246, 86, 240, 47, 240, + 93, 240, 118, 21, 240, 228, 240, 229, 240, 228, 240, 229, + 240, 228, 0, 26, 16, 78, 32, 0, 12, 127, 240, 47, + 2, 255, 4, 212, 150, 196, 197, 180, 213, 164, 228, 164, + 228, 164, 228, 148, 244, 148, 244, 148, 228, 164, 228, 164, + 212, 164, 197, 180, 166, 207, 4, 223, 2, 239, 240, 36, + 132, 240, 20, 132, 240, 20, 132, 240, 20, 148, 228, 164, + 228, 164, 228, 180, 212, 180, 212, 180, 196, 212, 180, 212, + 180, 213, 164, 228, 163, 244, 148, 240, 20, 0, 49, 73, + 29, 0, 12, 87, 240, 77, 255, 198, 100, 212, 162, 196, + 193, 180, 240, 163, 240, 164, 240, 164, 240, 164, 240, 164, + 240, 165, 240, 150, 240, 152, 240, 122, 240, 76, 240, 75, + 240, 105, 240, 134, 240, 150, 240, 149, 240, 164, 240, 164, + 240, 164, 240, 164, 240, 163, 240, 164, 145, 243, 162, 212, + 164, 164, 167, 101, 207, 1, 252, 240, 87, 0, 41, 112, + 75, 32, 0, 12, 31, 12, 79, 13, 79, 13, 240, 20, + 240, 196, 240, 212, 240, 212, 240, 212, 240, 212, 240, 196, + 240, 212, 240, 212, 240, 212, 240, 212, 240, 196, 240, 212, + 240, 212, 240, 212, 240, 212, 240, 196, 240, 212, 240, 212, + 240, 212, 240, 212, 240, 196, 240, 212, 240, 212, 240, 212, + 240, 197, 240, 196, 240, 212, 240, 212, 240, 212, 240, 196, + 0, 50, 112, 76, 31, 0, 12, 36, 243, 148, 228, 133, + 228, 132, 244, 132, 243, 148, 243, 148, 228, 132, 244, 132, + 244, 132, 243, 148, 243, 148, 228, 132, 244, 132, 244, 132, + 243, 148, 243, 148, 228, 132, 244, 132, 244, 132, 243, 148, + 243, 148, 228, 132, 244, 132, 244, 132, 243, 148, 228, 148, + 227, 164, 212, 165, 180, 196, 164, 213, 133, 229, 86, 240, + 29, 240, 75, 240, 118, 0, 45, 93, 32, 0, 12, 4, + 240, 84, 68, 240, 84, 68, 240, 68, 84, 240, 67, 101, + 240, 36, 116, 240, 35, 132, 240, 20, 132, 244, 148, 244, + 148, 228, 164, 227, 181, 196, 196, 195, 212, 180, 212, 164, + 228, 164, 228, 148, 245, 131, 240, 36, 116, 240, 36, 115, + 240, 52, 100, 240, 52, 99, 240, 68, 84, 240, 68, 83, + 240, 84, 67, 240, 116, 36, 240, 116, 35, 240, 132, 20, + 240, 132, 19, 240, 152, 240, 151, 240, 167, 240, 181, 240, + 196, 0, 50, 112, 135, 45, 0, 16, 116, 229, 228, 68, + 229, 227, 84, 214, 212, 84, 214, 211, 100, 199, 196, 100, + 199, 195, 116, 179, 20, 180, 116, 179, 20, 179, 132, 164, + 20, 164, 132, 163, 36, 163, 148, 163, 36, 148, 148, 147, + 52, 147, 165, 131, 52, 132, 180, 115, 68, 131, 196, 115, + 83, 116, 196, 99, 99, 116, 196, 99, 99, 115, 212, 84, + 100, 84, 212, 83, 116, 83, 228, 68, 116, 68, 228, 67, + 132, 67, 244, 52, 132, 52, 244, 51, 148, 51, 240, 20, + 51, 148, 36, 240, 20, 35, 164, 35, 240, 36, 35, 164, + 35, 240, 36, 19, 180, 19, 240, 52, 19, 180, 19, 240, + 55, 199, 240, 71, 199, 240, 85, 214, 240, 101, 214, 240, + 100, 229, 240, 116, 244, 0, 70, 100, 37, 0, 14, 116, + 240, 36, 197, 244, 228, 228, 245, 196, 240, 36, 181, 240, + 37, 149, 240, 68, 133, 240, 85, 116, 240, 116, 100, 240, + 133, 68, 240, 164, 52, 240, 180, 36, 240, 216, 240, 232, + 240, 246, 240, 240, 21, 240, 240, 37, 240, 240, 22, 240, + 248, 240, 212, 20, 240, 212, 21, 240, 180, 52, 240, 164, + 69, 240, 132, 100, 240, 116, 117, 240, 84, 148, 240, 68, + 165, 240, 37, 180, 240, 21, 197, 244, 213, 228, 245, 196, + 240, 21, 180, 240, 53, 148, 240, 69, 0, 56, 80, 84, + 34, 0, 12, 101, 240, 85, 85, 240, 53, 101, 240, 52, + 132, 240, 36, 149, 244, 180, 228, 197, 196, 213, 181, 228, + 180, 245, 148, 240, 36, 132, 240, 53, 100, 240, 69, 84, + 240, 101, 53, 240, 101, 52, 240, 132, 36, 240, 153, 240, + 183, 240, 198, 240, 214, 240, 228, 240, 244, 240, 228, 240, + 244, 240, 244, 240, 244, 240, 244, 240, 228, 240, 244, 240, + 244, 240, 244, 240, 243, 240, 244, 240, 244, 0, 54, 76, + 33, 0, 13, 47, 7, 191, 7, 191, 6, 240, 212, 240, + 213, 240, 197, 240, 212, 240, 212, 240, 212, 240, 213, 240, + 197, 240, 212, 240, 212, 240, 212, 240, 213, 240, 197, 240, + 197, 240, 212, 240, 212, 240, 213, 240, 197, 240, 197, 240, + 212, 240, 212, 240, 212, 240, 213, 240, 197, 240, 212, 240, + 212, 240, 212, 240, 213, 240, 207, 8, 175, 8, 175, 7, + 0, 50, 112, 95, 22, 168, 231, 247, 228, 240, 52, 240, + 51, 240, 67, 240, 67, 240, 52, 240, 52, 240, 51, 240, + 67, 240, 52, 240, 52, 240, 52, 240, 51, 240, 67, 240, + 52, 240, 52, 240, 52, 240, 51, 240, 67, 240, 52, 240, + 52, 240, 51, 240, 67, 240, 67, 240, 52, 240, 52, 240, + 51, 240, 67, 240, 67, 240, 52, 240, 52, 240, 51, 240, + 67, 240, 67, 240, 52, 240, 52, 240, 51, 240, 67, 240, + 52, 240, 52, 240, 52, 240, 51, 240, 67, 240, 56, 232, + 232, 224, 27, 19, 0, 7, 82, 114, 114, 114, 130, 114, + 115, 99, 114, 114, 115, 99, 116, 84, 99, 99, 100, 84, + 100, 84, 0, 86, 32, 95, 21, 152, 216, 216, 240, 35, + 240, 51, 240, 51, 240, 36, 240, 36, 240, 35, 240, 51, + 240, 51, 240, 36, 240, 36, 240, 35, 240, 51, 240, 51, + 240, 36, 240, 36, 240, 35, 240, 51, 240, 36, 240, 36, + 240, 36, 240, 35, 240, 51, 240, 36, 240, 36, 240, 36, + 240, 35, 240, 51, 240, 36, 240, 36, 240, 35, 240, 51, + 240, 51, 240, 36, 240, 36, 240, 35, 240, 51, 240, 51, + 240, 36, 240, 36, 240, 35, 240, 51, 240, 36, 240, 36, + 216, 215, 231, 224, 22, 20, 0, 8, 68, 245, 227, 19, + 195, 35, 179, 67, 147, 83, 131, 115, 99, 131, 83, 163, + 0, 93, 11, 9, 0, 5, 100, 84, 68, 84, 0, 45, + 80, 17, 10, 240, 240, 66, 114, 130, 115, 114, 115, 116, + 99, 100, 100, 0, 45, 96, 44, 22, 0, 42, 38, 234, + 188, 163, 85, 145, 132, 240, 52, 240, 52, 240, 52, 240, + 52, 240, 51, 217, 172, 142, 118, 83, 116, 131, 100, 147, + 100, 132, 100, 132, 101, 85, 127, 137, 35, 150, 52, 0, + 33, 112, 74, 25, 0, 10, 36, 240, 100, 240, 99, 240, + 115, 240, 100, 240, 100, 240, 99, 240, 115, 240, 100, 240, + 100, 240, 100, 240, 99, 240, 115, 240, 100, 70, 180, 41, + 175, 1, 150, 70, 148, 133, 116, 149, 116, 164, 116, 164, + 115, 180, 115, 180, 100, 180, 100, 164, 116, 164, 115, 180, + 115, 164, 116, 148, 133, 117, 134, 70, 159, 148, 25, 180, + 53, 0, 39, 16, 45, 23, 0, 44, 55, 220, 173, 149, + 99, 132, 145, 132, 240, 52, 240, 68, 240, 52, 240, 68, + 240, 52, 240, 68, 240, 68, 240, 68, 240, 68, 240, 68, + 240, 69, 240, 68, 161, 134, 84, 158, 171, 231, 0, 35, + 112, 73, 27, 0, 12, 83, 240, 147, 240, 132, 240, 132, + 240, 132, 240, 131, 240, 147, 240, 132, 240, 132, 240, 132, + 240, 131, 240, 147, 240, 132, 230, 52, 202, 20, 191, 182, + 70, 165, 132, 149, 148, 148, 163, 148, 179, 148, 164, 148, + 164, 132, 180, 132, 179, 148, 179, 148, 164, 148, 164, 149, + 148, 149, 132, 182, 70, 191, 1, 201, 36, 229, 68, 0, + 41, 96, 45, 22, 0, 42, 54, 233, 203, 149, 68, 148, + 100, 116, 131, 100, 147, 99, 163, 95, 2, 95, 2, 79, + 3, 68, 240, 52, 240, 52, 240, 52, 240, 52, 240, 53, + 240, 52, 161, 118, 84, 142, 155, 215, 0, 34, 32, 67, + 22, 0, 9, 102, 232, 217, 196, 240, 35, 240, 52, 240, + 51, 240, 67, 240, 52, 240, 52, 240, 51, 240, 67, 240, + 52, 252, 171, 187, 227, 240, 52, 240, 52, 240, 52, 240, + 51, 240, 67, 240, 52, 240, 52, 240, 52, 240, 51, 240, + 67, 240, 52, 240, 52, 240, 51, 240, 67, 240, 67, 240, + 52, 240, 52, 0, 35, 32, 73, 30, 0, 57, 101, 84, + 232, 23, 207, 3, 181, 68, 240, 36, 100, 244, 116, 244, + 116, 228, 132, 228, 132, 228, 116, 244, 116, 244, 100, 240, + 36, 68, 240, 44, 240, 59, 240, 51, 37, 240, 82, 240, + 211, 240, 205, 240, 47, 255, 1, 207, 4, 180, 150, 164, + 196, 148, 212, 148, 212, 148, 196, 165, 165, 182, 102, 223, + 1, 253, 240, 72, 0, 9, 80, 75, 23, 0, 9, 52, + 240, 68, 240, 68, 240, 67, 240, 83, 240, 68, 240, 68, + 240, 68, 240, 67, 240, 83, 240, 68, 240, 68, 240, 68, + 240, 67, 70, 163, 41, 132, 27, 118, 85, 117, 116, 116, + 132, 101, 132, 100, 148, 100, 147, 116, 132, 115, 148, 100, + 148, 100, 147, 116, 147, 115, 148, 115, 148, 100, 148, 100, + 147, 116, 132, 115, 148, 115, 148, 0, 35, 48, 34, 14, + 0, 9, 68, 164, 164, 148, 0, 13, 51, 179, 179, 164, + 164, 163, 179, 179, 164, 164, 163, 179, 179, 164, 164, 163, + 179, 179, 179, 164, 163, 0, 22, 48, 74, 24, 0, 17, + 4, 240, 84, 240, 68, 240, 84, 0, 23, 51, 240, 99, + 240, 84, 240, 84, 240, 84, 240, 83, 240, 99, 240, 84, + 240, 84, 240, 84, 240, 83, 240, 99, 240, 84, 240, 84, + 240, 83, 240, 99, 240, 84, 240, 84, 240, 84, 240, 83, + 240, 99, 240, 84, 240, 84, 240, 84, 240, 83, 240, 99, + 240, 84, 209, 84, 218, 233, 240, 38, 0, 8, 72, 24, + 0, 9, 115, 240, 84, 240, 84, 240, 84, 240, 83, 240, + 99, 240, 84, 240, 84, 240, 83, 240, 99, 240, 99, 240, + 84, 240, 84, 240, 83, 133, 131, 117, 132, 101, 148, 85, + 164, 68, 195, 68, 211, 52, 212, 21, 234, 234, 235, 214, + 20, 197, 52, 196, 84, 179, 100, 179, 116, 163, 116, 148, + 132, 132, 132, 131, 149, 115, 164, 0, 36, 112, 41, 15, + 0, 6, 68, 180, 179, 195, 180, 180, 180, 179, 180, 180, + 180, 180, 179, 180, 180, 180, 179, 195, 180, 180, 180, 179, + 180, 180, 180, 180, 179, 180, 180, 180, 179, 195, 180, 180, + 0, 23, 112, 71, 36, 0, 72, 68, 69, 118, 164, 25, + 73, 147, 27, 43, 134, 69, 18, 85, 117, 118, 116, 117, + 117, 132, 116, 148, 132, 116, 132, 148, 115, 148, 147, 116, + 148, 132, 116, 147, 148, 116, 132, 148, 115, 148, 147, 116, + 148, 147, 116, 147, 148, 116, 147, 148, 116, 132, 148, 115, + 148, 147, 116, 148, 132, 116, 147, 148, 116, 147, 148, 0, + 54, 112, 49, 23, 0, 46, 67, 70, 163, 41, 132, 27, + 118, 85, 117, 116, 116, 132, 101, 132, 100, 148, 100, 147, + 116, 132, 115, 148, 100, 148, 100, 147, 116, 147, 115, 148, + 115, 148, 100, 148, 100, 147, 116, 132, 115, 148, 115, 148, + 0, 35, 48, 47, 25, 0, 48, 22, 240, 27, 221, 181, + 70, 148, 132, 132, 149, 100, 180, 99, 196, 84, 196, 84, + 196, 68, 212, 68, 212, 68, 196, 84, 196, 84, 181, 84, + 180, 101, 148, 132, 132, 150, 69, 189, 219, 240, 22, 0, + 39, 32, 67, 27, 0, 54, 100, 70, 212, 41, 207, 1, + 182, 70, 180, 133, 148, 149, 148, 164, 148, 164, 148, 164, + 147, 180, 132, 180, 132, 179, 148, 164, 147, 180, 147, 164, + 148, 149, 149, 117, 166, 70, 191, 195, 26, 196, 53, 244, + 240, 132, 240, 131, 240, 147, 240, 132, 240, 132, 240, 132, + 240, 131, 240, 147, 240, 132, 0, 9, 80, 69, 25, 0, + 51, 21, 52, 184, 36, 155, 19, 150, 70, 133, 117, 132, + 148, 116, 164, 100, 179, 116, 164, 115, 180, 100, 180, 100, + 179, 116, 179, 116, 164, 116, 164, 117, 148, 117, 132, 150, + 70, 159, 1, 169, 36, 197, 68, 240, 99, 240, 100, 240, + 100, 240, 100, 240, 100, 240, 99, 240, 100, 240, 100, 240, + 100, 240, 100, 0, 7, 64, 34, 19, 0, 38, 67, 83, + 131, 53, 116, 23, 121, 167, 197, 228, 229, 228, 244, 243, + 240, 19, 244, 244, 244, 243, 240, 19, 244, 244, 243, 240, + 19, 0, 30, 64, 41, 22, 0, 42, 39, 220, 157, 133, + 83, 148, 240, 36, 240, 52, 240, 52, 240, 54, 240, 26, + 218, 218, 248, 240, 37, 240, 52, 240, 52, 240, 52, 113, + 148, 132, 85, 126, 156, 215, 0, 34, 48, 35, 18, 0, + 23, 35, 243, 243, 228, 228, 227, 189, 78, 78, 132, 227, + 243, 228, 228, 227, 243, 228, 228, 228, 227, 228, 228, 228, + 228, 66, 138, 138, 150, 0, 28, 32, 49, 24, 0, 48, + 67, 148, 116, 147, 132, 147, 132, 132, 131, 148, 131, 148, + 116, 147, 132, 132, 131, 148, 131, 148, 116, 148, 116, 147, + 132, 132, 131, 148, 116, 148, 116, 132, 132, 117, 133, 86, + 143, 1, 138, 36, 165, 83, 0, 37, 16, 49, 23, 0, + 46, 4, 180, 68, 180, 68, 164, 99, 163, 115, 148, 116, + 131, 132, 116, 132, 115, 148, 100, 148, 84, 179, 83, 196, + 52, 196, 51, 212, 36, 212, 35, 228, 20, 228, 19, 240, + 22, 240, 38, 240, 37, 240, 53, 0, 36, 48, 79, 33, + 0, 66, 4, 147, 163, 68, 132, 148, 68, 133, 131, 84, + 118, 116, 84, 114, 19, 115, 100, 99, 19, 100, 115, 99, + 19, 99, 131, 83, 35, 84, 131, 83, 35, 83, 148, 51, + 51, 68, 148, 51, 51, 67, 164, 35, 67, 52, 164, 35, + 67, 51, 180, 19, 83, 36, 180, 19, 83, 35, 196, 18, + 99, 20, 199, 99, 19, 229, 115, 19, 229, 118, 244, 149, + 244, 148, 0, 51, 32, 53, 28, 0, 56, 84, 180, 164, + 148, 180, 132, 212, 100, 228, 84, 240, 20, 52, 240, 52, + 20, 240, 72, 240, 102, 240, 117, 240, 132, 240, 134, 240, + 104, 240, 68, 35, 240, 52, 52, 240, 20, 83, 244, 100, + 212, 132, 195, 148, 180, 164, 133, 180, 0, 43, 78, 28, + 0, 56, 84, 180, 148, 180, 163, 164, 180, 147, 196, 132, + 196, 131, 212, 116, 212, 115, 243, 100, 244, 68, 240, 20, + 67, 240, 36, 52, 240, 36, 51, 240, 67, 36, 240, 67, + 35, 240, 83, 20, 240, 83, 19, 240, 99, 18, 240, 133, + 240, 132, 240, 148, 240, 147, 240, 148, 240, 147, 240, 147, + 240, 163, 240, 147, 240, 65, 68, 240, 72, 240, 87, 240, + 101, 0, 9, 112, 49, 25, 0, 50, 95, 1, 159, 1, + 159, 240, 99, 240, 99, 240, 100, 240, 84, 240, 84, 240, + 84, 240, 84, 240, 84, 240, 84, 240, 84, 240, 84, 240, + 84, 240, 84, 240, 84, 240, 84, 240, 95, 2, 143, 1, + 143, 2, 0, 38, 64, 13, 27, 0, 77, 111, 7, 79, + 8, 79, 7, 0, 78, 32, 21, 50, 0, 127, 0, 16, + 127, 15, 15, 79, 15, 15, 1, 79, 15, 15, 0, 127, + 0, 17, 48, 25, 20, 0, 8, 4, 68, 131, 83, 132, + 67, 147, 68, 132, 67, 147, 68, 131, 83, 147, 67, 147, + 83, 0, 93, 80, 18, 20, 0, 13, 3, 99, 103, 67, + 104, 35, 99, 41, 98, 86, 99, 99, 0, 96, +}; + +//***************************************************************************** +// +// The font definition for the 48 point Cmss italic font. +// +//***************************************************************************** +const tFont g_sFontCmss48i = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 45, + + // + // The height of the font. + // + 49, + + // + // The baseline of the font. + // + 37, + + // + // The offset to each character in the font. + // + { + 0, 5, 44, 71, 209, 312, 436, 537, + 553, 653, 754, 803, 899, 916, 926, 937, + 1039, 1110, 1176, 1249, 1320, 1395, 1466, 1537, + 1608, 1678, 1749, 1765, 1787, 1826, 1843, 1902, + 1962, 2053, 2145, 2221, 2295, 2390, 2465, 2539, + 2615, 2699, 2740, 2814, 2909, 2983, 3113, 3213, + 3311, 3385, 3497, 3575, 3648, 3723, 3799, 3892, + 4027, 4127, 4211, 4287, 4382, 4409, 4504, 4526, + 4537, 4554, 4598, 4672, 4717, 4790, 4835, 4902, + 4975, 5050, 5084, 5158, 5230, 5271, 5342, 5391, + 5438, 5505, 5574, 5608, 5649, 5684, 5733, 5782, + 5861, 5914, 5992, 6041, 6054, 6075, 6100, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmss48iData +}; diff --git a/grlib/fonts/fontcmtt12.c b/grlib/fonts/fontcmtt12.c new file mode 100644 index 0000000..bb65190 --- /dev/null +++ b/grlib/fonts/fontcmtt12.c @@ -0,0 +1,216 @@ +//***************************************************************************** +// +// fontcmtt12.c - Font definition for the 12pt Cmtt font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmtt +// Size: 12 point +// Bold: no +// Italic: no +// Memory usage: 1516 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 12 point Cmtt font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmtt12Data[1313] = +{ + 4, 8, 0, 12, 11, 8, 240, 81, 113, 113, 113, 113, + 241, 240, 192, 12, 8, 240, 65, 17, 81, 17, 81, 17, + 0, 7, 32, 15, 8, 240, 97, 81, 17, 69, 65, 17, + 69, 65, 17, 81, 240, 208, 17, 8, 49, 113, 100, 66, + 17, 66, 115, 66, 17, 66, 17, 67, 97, 240, 80, 16, + 8, 162, 98, 17, 67, 113, 113, 97, 113, 18, 65, 18, + 98, 240, 32, 16, 8, 240, 66, 98, 100, 65, 17, 67, + 81, 17, 17, 65, 18, 240, 160, 9, 8, 240, 81, 113, + 113, 0, 7, 48, 14, 8, 81, 97, 97, 113, 113, 113, + 113, 113, 129, 129, 240, 48, 14, 8, 49, 129, 113, 129, + 113, 113, 113, 97, 113, 97, 240, 80, 12, 8, 240, 209, + 81, 18, 82, 84, 97, 240, 240, 80, 12, 8, 240, 81, + 113, 113, 85, 81, 113, 240, 240, 80, 9, 8, 0, 7, + 50, 98, 97, 240, 80, 8, 8, 240, 240, 196, 0, 6, + 32, 7, 8, 0, 8, 65, 240, 192, 14, 8, 81, 113, + 97, 113, 113, 97, 113, 113, 97, 113, 240, 96, 17, 8, + 240, 67, 66, 18, 49, 49, 49, 49, 49, 49, 50, 18, + 67, 240, 176, 12, 8, 240, 81, 98, 113, 113, 113, 113, + 99, 240, 176, 14, 8, 240, 67, 65, 49, 49, 49, 113, + 82, 81, 101, 240, 160, 14, 8, 240, 51, 81, 33, 113, + 82, 129, 65, 33, 82, 240, 192, 15, 8, 240, 82, 81, + 17, 81, 17, 65, 33, 69, 97, 99, 240, 160, 14, 8, + 240, 52, 65, 115, 81, 33, 113, 65, 33, 67, 240, 192, + 16, 8, 240, 83, 65, 33, 52, 65, 49, 49, 49, 49, + 49, 67, 240, 176, 13, 8, 240, 53, 49, 49, 97, 113, + 97, 113, 113, 240, 192, 16, 8, 240, 67, 65, 49, 49, + 49, 67, 66, 18, 49, 49, 67, 240, 176, 16, 8, 240, + 66, 81, 33, 65, 33, 65, 33, 83, 65, 33, 67, 240, + 192, 10, 8, 240, 240, 97, 240, 240, 17, 240, 192, 11, + 8, 240, 240, 97, 240, 240, 17, 113, 240, 64, 12, 8, + 240, 97, 97, 82, 98, 129, 129, 240, 240, 64, 9, 8, + 240, 240, 69, 181, 240, 240, 176, 12, 8, 240, 49, 129, + 130, 98, 81, 97, 240, 240, 112, 12, 8, 240, 51, 81, + 33, 98, 81, 113, 241, 240, 208, 20, 8, 240, 67, 81, + 18, 49, 17, 17, 49, 17, 17, 49, 17, 17, 65, 17, + 99, 240, 160, 16, 8, 240, 81, 98, 97, 17, 81, 17, + 83, 81, 17, 66, 18, 240, 160, 16, 8, 240, 52, 81, + 33, 65, 33, 67, 81, 33, 65, 33, 52, 240, 176, 15, + 8, 240, 68, 50, 33, 49, 49, 49, 113, 114, 33, 67, + 240, 176, 17, 8, 240, 52, 81, 33, 65, 33, 65, 33, + 65, 33, 65, 33, 52, 240, 176, 16, 8, 240, 53, 65, + 33, 65, 17, 83, 81, 17, 81, 33, 53, 240, 160, 15, + 8, 240, 53, 65, 33, 65, 17, 83, 81, 17, 81, 99, + 240, 192, 16, 8, 240, 68, 65, 33, 49, 49, 49, 113, + 34, 50, 33, 68, 240, 160, 16, 8, 240, 38, 49, 33, + 65, 33, 68, 65, 33, 65, 33, 54, 240, 160, 12, 8, + 240, 53, 81, 113, 113, 113, 113, 85, 240, 160, 13, 8, + 240, 67, 97, 113, 113, 113, 81, 17, 83, 240, 192, 18, + 8, 240, 35, 17, 65, 33, 65, 17, 83, 81, 17, 81, + 33, 51, 18, 240, 160, 13, 8, 240, 51, 97, 113, 113, + 113, 113, 33, 53, 240, 160, 17, 8, 240, 34, 34, 50, + 17, 68, 68, 65, 33, 65, 33, 50, 34, 240, 160, 19, + 8, 240, 34, 19, 50, 17, 66, 17, 66, 17, 65, 18, + 65, 18, 51, 17, 240, 176, 17, 8, 240, 53, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 53, 240, 160, 14, + 8, 240, 52, 81, 33, 65, 33, 67, 81, 113, 99, 240, + 192, 19, 8, 240, 53, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 17, 17, 52, 129, 240, 32, 17, 8, 240, 36, + 81, 33, 65, 33, 67, 81, 33, 65, 34, 35, 18, 240, + 160, 15, 8, 240, 66, 17, 49, 34, 49, 131, 129, 49, + 49, 52, 240, 176, 14, 8, 240, 53, 49, 17, 17, 81, + 113, 113, 113, 99, 240, 176, 17, 8, 240, 38, 49, 33, + 65, 33, 65, 33, 65, 33, 65, 33, 82, 240, 192, 17, + 8, 240, 50, 18, 49, 33, 81, 17, 81, 17, 81, 17, + 82, 113, 240, 192, 17, 8, 240, 50, 18, 49, 49, 49, + 33, 65, 18, 68, 68, 81, 17, 240, 176, 17, 8, 240, + 50, 18, 65, 17, 97, 113, 97, 17, 81, 17, 66, 18, + 240, 160, 15, 8, 240, 50, 18, 65, 17, 81, 17, 97, + 113, 113, 99, 240, 176, 14, 8, 240, 53, 49, 33, 113, + 97, 97, 97, 49, 53, 240, 160, 13, 8, 179, 81, 113, + 113, 113, 113, 113, 113, 115, 240, 48, 14, 8, 33, 113, + 113, 129, 113, 129, 113, 113, 129, 113, 240, 48, 13, 8, + 179, 113, 113, 113, 113, 113, 113, 113, 83, 240, 48, 7, + 8, 240, 66, 0, 9, 48, 7, 8, 0, 9, 36, 240, + 48, 9, 8, 240, 81, 113, 113, 0, 7, 48, 13, 8, + 240, 240, 67, 81, 33, 83, 65, 33, 69, 240, 160, 15, + 8, 240, 50, 113, 115, 81, 33, 65, 33, 65, 33, 67, + 240, 176, 13, 8, 240, 240, 83, 65, 33, 65, 113, 33, + 83, 240, 176, 15, 8, 240, 82, 113, 68, 49, 49, 49, + 49, 49, 49, 69, 240, 160, 13, 8, 240, 240, 83, 65, + 49, 53, 49, 49, 67, 240, 176, 12, 8, 240, 67, 81, + 100, 81, 113, 113, 100, 240, 176, 17, 8, 240, 240, 83, + 65, 17, 81, 17, 82, 99, 81, 33, 65, 33, 82, 48, + 15, 8, 240, 34, 113, 116, 65, 33, 65, 33, 65, 33, + 54, 240, 160, 11, 8, 240, 65, 226, 113, 113, 113, 100, + 240, 176, 14, 8, 240, 97, 211, 113, 113, 113, 113, 113, + 65, 33, 67, 48, 15, 8, 240, 34, 113, 113, 18, 65, + 17, 83, 81, 17, 70, 240, 160, 12, 8, 240, 51, 113, + 113, 113, 113, 113, 85, 240, 160, 19, 8, 240, 240, 54, + 49, 17, 17, 49, 17, 17, 49, 17, 17, 34, 17, 18, + 240, 144, 14, 8, 240, 240, 53, 65, 33, 65, 33, 65, + 33, 54, 240, 160, 14, 8, 240, 240, 83, 65, 49, 49, + 49, 49, 49, 67, 240, 176, 16, 8, 240, 240, 68, 81, + 33, 65, 33, 65, 33, 67, 81, 113, 99, 48, 15, 8, + 240, 240, 68, 49, 49, 49, 49, 49, 49, 68, 113, 113, + 99, 12, 8, 240, 240, 66, 18, 66, 97, 113, 100, 240, + 176, 13, 8, 240, 240, 68, 65, 33, 83, 65, 33, 68, + 240, 176, 13, 8, 240, 65, 113, 101, 65, 113, 113, 33, + 67, 240, 176, 15, 8, 240, 240, 50, 18, 65, 33, 65, + 33, 65, 33, 69, 240, 160, 14, 8, 240, 240, 66, 18, + 65, 17, 81, 17, 82, 113, 240, 192, 15, 8, 240, 240, + 66, 18, 49, 33, 65, 18, 83, 81, 17, 240, 176, 15, + 8, 240, 240, 66, 18, 65, 17, 97, 97, 17, 66, 18, + 240, 160, 14, 8, 240, 240, 69, 49, 33, 82, 98, 113, + 113, 82, 98, 64, 13, 8, 240, 240, 69, 49, 33, 97, + 97, 33, 53, 240, 160, 13, 8, 195, 81, 113, 113, 82, + 129, 113, 113, 115, 240, 32, 14, 8, 65, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 240, 64, 13, 8, 163, 113, + 113, 113, 130, 81, 113, 113, 83, 240, 64, 8, 8, 240, + 50, 17, 0, 9, 32, +}; + +//***************************************************************************** +// +// The font definition for the 12 point Cmtt font. +// +//***************************************************************************** +const tFont g_sFontCmtt12 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 6, + + // + // The height of the font. + // + 12, + + // + // The baseline of the font. + // + 9, + + // + // The offset to each character in the font. + // + { + 0, 4, 15, 27, 42, 59, 75, 91, + 100, 114, 128, 140, 152, 161, 169, 176, + 190, 207, 219, 233, 247, 262, 276, 292, + 305, 321, 337, 347, 358, 370, 379, 391, + 403, 423, 439, 455, 470, 487, 503, 518, + 534, 550, 562, 575, 593, 606, 623, 642, + 659, 673, 692, 709, 724, 738, 755, 772, + 789, 806, 821, 835, 848, 862, 875, 882, + 889, 898, 911, 926, 939, 954, 967, 979, + 996, 1011, 1022, 1036, 1051, 1063, 1082, 1096, + 1110, 1126, 1141, 1153, 1166, 1179, 1194, 1208, + 1223, 1238, 1252, 1265, 1278, 1292, 1305, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmtt12Data +}; diff --git a/grlib/fonts/fontcmtt14.c b/grlib/fonts/fontcmtt14.c new file mode 100644 index 0000000..cc48f1e --- /dev/null +++ b/grlib/fonts/fontcmtt14.c @@ -0,0 +1,236 @@ +//***************************************************************************** +// +// fontcmtt14.c - Font definition for the 14pt Cmtt font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmtt +// Size: 14 point +// Bold: no +// Italic: no +// Memory usage: 1760 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 14 point Cmtt font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmtt14Data[1557] = +{ + 5, 9, 0, 15, 96, 14, 9, 240, 113, 129, 129, 129, + 129, 129, 240, 177, 240, 240, 16, 14, 9, 240, 97, 33, + 81, 33, 81, 33, 81, 33, 0, 9, 32, 20, 9, 240, + 129, 97, 17, 97, 17, 85, 81, 17, 97, 17, 85, 81, + 17, 97, 240, 240, 32, 25, 9, 65, 129, 115, 81, 17, + 17, 65, 17, 17, 67, 115, 113, 17, 65, 17, 17, 65, + 17, 17, 83, 113, 240, 112, 22, 9, 179, 97, 17, 17, + 65, 18, 84, 129, 129, 113, 129, 18, 81, 18, 65, 34, + 65, 34, 240, 64, 23, 9, 240, 114, 97, 17, 97, 17, + 97, 19, 66, 17, 67, 17, 65, 18, 81, 33, 17, 66, + 18, 240, 208, 10, 9, 240, 114, 129, 129, 113, 0, 9, + 64, 16, 9, 81, 113, 129, 113, 129, 129, 129, 129, 129, + 145, 129, 145, 240, 96, 16, 9, 49, 145, 129, 145, 129, + 129, 129, 129, 129, 113, 129, 113, 240, 128, 17, 9, 240, + 240, 161, 97, 17, 17, 83, 99, 81, 17, 17, 97, 240, + 240, 160, 14, 9, 240, 240, 17, 129, 129, 101, 97, 129, + 129, 240, 240, 160, 9, 9, 0, 10, 82, 114, 129, 113, + 208, 8, 9, 0, 7, 5, 0, 8, 16, 8, 9, 0, + 10, 82, 114, 240, 240, 16, 9, 97, 129, 113, 129, 129, + 113, 129, 113, 129, 129, 113, 129, 240, 144, 21, 9, 240, + 99, 97, 17, 81, 49, 65, 49, 65, 49, 65, 49, 65, + 49, 81, 17, 99, 240, 240, 14, 9, 240, 113, 129, 99, + 129, 129, 129, 129, 129, 101, 240, 224, 17, 9, 240, 99, + 81, 34, 65, 49, 129, 114, 113, 113, 113, 33, 69, 240, + 224, 18, 9, 240, 99, 81, 49, 65, 49, 129, 83, 145, + 65, 49, 65, 49, 83, 240, 240, 18, 9, 240, 130, 114, + 97, 17, 81, 33, 81, 33, 65, 49, 70, 113, 115, 240, + 208, 16, 9, 240, 85, 65, 129, 129, 132, 81, 34, 129, + 65, 49, 83, 240, 240, 19, 9, 240, 115, 97, 17, 81, + 131, 97, 33, 81, 33, 81, 33, 81, 33, 98, 240, 240, + 16, 9, 240, 86, 49, 49, 129, 113, 129, 113, 129, 129, + 129, 240, 240, 16, 20, 9, 240, 99, 81, 49, 65, 49, + 65, 49, 83, 82, 18, 65, 49, 65, 49, 83, 240, 240, + 20, 9, 240, 99, 81, 33, 81, 49, 65, 49, 65, 49, + 84, 129, 65, 33, 83, 240, 240, 16, 11, 9, 0, 6, + 18, 114, 240, 162, 114, 240, 240, 12, 9, 0, 6, 18, + 114, 240, 162, 114, 129, 113, 208, 14, 9, 240, 145, 113, + 98, 98, 114, 130, 145, 145, 240, 240, 128, 8, 9, 0, + 5, 117, 213, 0, 7, 14, 9, 240, 81, 145, 146, 130, + 114, 98, 97, 113, 240, 240, 192, 15, 9, 240, 84, 81, + 49, 114, 97, 113, 129, 240, 177, 240, 240, 32, 25, 9, + 240, 115, 81, 34, 50, 19, 49, 17, 33, 49, 17, 33, + 49, 17, 33, 49, 17, 33, 65, 18, 100, 240, 208, 18, + 9, 240, 114, 114, 114, 114, 97, 33, 81, 33, 84, 81, + 33, 66, 34, 240, 208, 20, 9, 240, 85, 81, 49, 65, + 49, 65, 49, 68, 81, 49, 65, 49, 65, 49, 53, 240, + 224, 18, 9, 240, 116, 65, 34, 49, 65, 49, 129, 129, + 129, 65, 65, 49, 83, 240, 224, 21, 9, 240, 85, 81, + 33, 81, 49, 65, 49, 65, 49, 65, 49, 65, 49, 65, + 33, 69, 240, 224, 18, 9, 240, 86, 65, 49, 65, 129, + 17, 99, 97, 17, 97, 129, 49, 54, 240, 208, 18, 9, + 240, 86, 65, 49, 65, 129, 33, 84, 81, 33, 81, 129, + 115, 240, 240, 16, 19, 9, 240, 100, 81, 33, 65, 49, + 65, 129, 129, 35, 49, 49, 81, 33, 84, 240, 224, 20, + 9, 240, 86, 65, 33, 81, 33, 81, 33, 84, 81, 33, + 81, 33, 81, 33, 70, 240, 208, 14, 9, 240, 85, 97, + 129, 129, 129, 129, 129, 129, 101, 240, 224, 16, 9, 240, + 115, 113, 129, 129, 129, 129, 129, 81, 33, 83, 240, 240, + 16, 22, 9, 240, 83, 18, 65, 33, 81, 17, 97, 17, + 99, 97, 17, 97, 33, 81, 33, 67, 18, 240, 208, 16, + 9, 240, 83, 113, 129, 129, 129, 129, 129, 49, 65, 49, + 54, 240, 208, 24, 9, 240, 66, 50, 50, 18, 66, 18, + 67, 17, 67, 17, 65, 17, 17, 65, 49, 65, 49, 51, + 19, 240, 208, 23, 9, 240, 82, 19, 65, 33, 82, 17, + 82, 17, 82, 17, 82, 17, 81, 18, 81, 18, 67, 17, + 240, 224, 21, 9, 240, 99, 81, 49, 65, 49, 65, 49, + 65, 49, 65, 49, 65, 49, 65, 49, 83, 240, 240, 19, + 9, 240, 85, 81, 34, 65, 49, 65, 49, 65, 34, 68, + 81, 129, 115, 240, 240, 16, 22, 9, 240, 99, 81, 49, + 65, 49, 65, 49, 65, 49, 65, 49, 65, 49, 65, 49, + 83, 129, 145, 176, 21, 9, 240, 84, 97, 33, 81, 33, + 81, 33, 83, 97, 33, 81, 33, 81, 34, 51, 18, 240, + 208, 19, 9, 240, 98, 17, 65, 34, 65, 49, 66, 131, + 145, 65, 49, 65, 49, 68, 240, 240, 16, 9, 240, 86, + 49, 33, 17, 97, 129, 129, 129, 129, 129, 115, 240, 224, + 21, 9, 240, 86, 65, 33, 81, 33, 81, 33, 81, 33, + 81, 33, 81, 33, 81, 33, 98, 240, 240, 19, 9, 240, + 82, 34, 65, 33, 81, 33, 81, 33, 81, 33, 98, 114, + 114, 114, 240, 240, 19, 9, 240, 82, 34, 49, 49, 65, + 49, 65, 49, 84, 84, 84, 84, 81, 33, 240, 224, 19, + 9, 240, 82, 19, 65, 33, 98, 114, 113, 130, 97, 18, + 81, 33, 66, 34, 240, 208, 18, 9, 240, 67, 19, 49, + 49, 81, 17, 97, 17, 113, 129, 129, 129, 115, 240, 240, + 17, 9, 240, 85, 65, 34, 113, 114, 113, 113, 129, 33, + 65, 49, 69, 240, 224, 15, 9, 195, 97, 129, 129, 129, + 129, 129, 129, 129, 129, 131, 240, 96, 16, 9, 33, 129, + 145, 129, 129, 145, 129, 145, 129, 129, 145, 129, 240, 80, + 15, 9, 195, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 99, 240, 96, 9, 9, 240, 114, 97, 33, 0, 11, 64, + 7, 9, 0, 12, 85, 240, 80, 10, 9, 240, 129, 113, + 129, 130, 0, 9, 48, 15, 9, 0, 5, 115, 97, 33, + 99, 81, 33, 81, 33, 85, 240, 224, 18, 9, 240, 82, + 129, 129, 132, 81, 34, 65, 49, 65, 49, 65, 49, 68, + 240, 224, 14, 9, 0, 6, 19, 81, 33, 81, 129, 129, + 33, 99, 240, 224, 18, 9, 240, 130, 129, 129, 84, 66, + 33, 65, 49, 65, 49, 66, 33, 85, 240, 208, 14, 9, + 0, 6, 3, 81, 49, 69, 65, 130, 33, 83, 240, 240, + 15, 9, 240, 130, 97, 17, 97, 101, 97, 129, 129, 129, + 101, 240, 224, 18, 9, 0, 6, 20, 65, 33, 81, 33, + 83, 97, 132, 65, 65, 49, 65, 68, 32, 18, 9, 240, + 82, 129, 129, 132, 81, 33, 81, 33, 81, 33, 81, 33, + 70, 240, 208, 13, 9, 240, 113, 240, 162, 129, 129, 129, + 129, 101, 240, 224, 16, 9, 240, 145, 240, 147, 129, 129, + 129, 129, 129, 129, 81, 33, 83, 48, 19, 9, 240, 82, + 129, 129, 129, 19, 65, 17, 98, 113, 17, 97, 33, 67, + 18, 240, 208, 14, 9, 240, 83, 129, 129, 129, 129, 129, + 129, 129, 101, 240, 224, 21, 9, 0, 5, 103, 49, 33, + 17, 49, 33, 17, 49, 33, 17, 49, 33, 17, 37, 18, + 240, 192, 16, 9, 0, 5, 117, 81, 33, 81, 33, 81, + 33, 81, 33, 70, 240, 208, 16, 9, 0, 6, 3, 81, + 49, 65, 49, 65, 49, 66, 18, 83, 240, 240, 18, 9, + 0, 5, 117, 81, 34, 65, 49, 65, 49, 65, 34, 68, + 81, 129, 115, 64, 17, 9, 0, 6, 4, 66, 33, 65, + 49, 65, 49, 66, 33, 84, 129, 129, 115, 13, 9, 0, + 5, 114, 18, 82, 113, 129, 129, 116, 240, 240, 14, 9, + 0, 6, 19, 81, 33, 82, 146, 81, 33, 84, 240, 224, + 15, 9, 240, 113, 129, 129, 101, 97, 129, 129, 129, 17, + 99, 240, 224, 17, 9, 0, 5, 114, 18, 81, 33, 81, + 33, 81, 33, 81, 33, 85, 240, 208, 16, 9, 0, 5, + 114, 34, 65, 33, 81, 33, 81, 17, 114, 114, 240, 240, + 15, 9, 0, 5, 114, 34, 49, 49, 84, 84, 84, 82, + 17, 240, 224, 14, 9, 0, 5, 118, 65, 17, 114, 114, + 97, 33, 70, 240, 208, 18, 9, 0, 5, 114, 18, 65, + 33, 97, 17, 97, 17, 113, 129, 129, 98, 114, 80, 14, + 9, 0, 5, 117, 65, 33, 113, 114, 113, 33, 69, 240, + 224, 15, 9, 226, 97, 129, 129, 129, 98, 145, 129, 129, + 129, 146, 240, 80, 16, 9, 65, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 240, 112, 15, 9, 179, 129, + 129, 129, 129, 146, 97, 129, 129, 129, 98, 240, 128, 10, + 9, 240, 113, 17, 81, 17, 0, 11, 80, +}; + +//***************************************************************************** +// +// The font definition for the 14 point Cmtt font. +// +//***************************************************************************** +const tFont g_sFontCmtt14 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 7, + + // + // The height of the font. + // + 14, + + // + // The baseline of the font. + // + 11, + + // + // The offset to each character in the font. + // + { + 0, 5, 19, 33, 53, 78, 100, 123, + 133, 149, 165, 182, 196, 205, 213, 221, + 237, 258, 272, 289, 307, 325, 341, 360, + 376, 396, 416, 427, 439, 453, 461, 475, + 490, 515, 533, 553, 571, 592, 610, 628, + 647, 667, 681, 697, 719, 735, 759, 782, + 803, 822, 844, 865, 884, 900, 921, 940, + 959, 978, 996, 1013, 1028, 1044, 1059, 1068, + 1075, 1085, 1100, 1118, 1132, 1150, 1164, 1179, + 1197, 1215, 1228, 1244, 1263, 1277, 1298, 1314, + 1330, 1348, 1365, 1378, 1392, 1407, 1424, 1440, + 1455, 1469, 1487, 1501, 1516, 1532, 1547, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmtt14Data +}; diff --git a/grlib/fonts/fontcmtt16.c b/grlib/fonts/fontcmtt16.c new file mode 100644 index 0000000..6e6b871 --- /dev/null +++ b/grlib/fonts/fontcmtt16.c @@ -0,0 +1,257 @@ +//***************************************************************************** +// +// fontcmtt16.c - Font definition for the 16pt Cmtt font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmtt +// Size: 16 point +// Bold: no +// Italic: no +// Memory usage: 2004 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 16 point Cmtt font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmtt16Data[1802] = +{ + 4, 9, 0, 18, 16, 9, 240, 113, 129, 129, 129, 129, + 129, 129, 240, 33, 129, 240, 240, 160, 16, 9, 240, 97, + 17, 97, 17, 97, 17, 97, 17, 97, 17, 0, 10, 64, + 24, 9, 240, 113, 17, 97, 17, 97, 17, 70, 65, 33, + 81, 33, 70, 65, 17, 97, 17, 97, 17, 240, 240, 144, + 28, 9, 65, 129, 116, 65, 17, 33, 49, 17, 33, 49, + 17, 115, 115, 97, 33, 49, 17, 33, 49, 17, 18, 67, + 113, 240, 240, 16, 28, 9, 163, 33, 49, 17, 33, 49, + 17, 17, 67, 17, 114, 113, 129, 114, 113, 19, 65, 17, + 17, 49, 33, 17, 49, 35, 240, 208, 27, 9, 240, 98, + 97, 17, 97, 17, 97, 20, 50, 33, 66, 17, 65, 17, + 17, 65, 33, 81, 33, 33, 50, 18, 240, 240, 128, 11, + 9, 240, 114, 114, 129, 129, 113, 0, 10, 80, 17, 9, + 97, 113, 113, 129, 113, 129, 129, 129, 129, 145, 129, 145, + 145, 240, 224, 18, 9, 50, 129, 145, 129, 145, 129, 129, + 129, 129, 113, 129, 113, 113, 240, 240, 32, 16, 9, 240, + 240, 17, 129, 101, 97, 101, 65, 17, 17, 97, 0, 7, + 32, 15, 9, 240, 240, 17, 129, 129, 129, 87, 81, 129, + 129, 0, 6, 16, 10, 9, 0, 11, 98, 114, 129, 113, + 240, 112, 8, 9, 0, 8, 22, 0, 9, 16, 9, 9, + 0, 11, 98, 114, 240, 240, 144, 18, 9, 113, 129, 113, + 129, 113, 129, 114, 113, 129, 113, 129, 113, 129, 240, 240, + 48, 24, 9, 240, 114, 97, 33, 65, 65, 49, 65, 49, + 65, 49, 65, 49, 65, 49, 65, 65, 33, 98, 240, 240, + 144, 16, 9, 240, 113, 114, 99, 129, 129, 129, 129, 129, + 129, 101, 240, 240, 128, 19, 9, 240, 100, 65, 50, 49, + 65, 129, 129, 113, 113, 113, 113, 49, 54, 240, 240, 112, + 19, 9, 240, 115, 81, 49, 129, 129, 83, 130, 129, 49, + 65, 49, 50, 68, 240, 240, 128, 20, 9, 240, 114, 114, + 97, 17, 81, 33, 81, 33, 65, 49, 71, 97, 129, 115, + 240, 240, 128, 19, 9, 240, 86, 49, 129, 129, 133, 65, + 50, 129, 49, 65, 49, 50, 67, 240, 240, 144, 22, 9, + 240, 115, 81, 33, 81, 33, 65, 132, 81, 49, 65, 49, + 65, 49, 81, 33, 83, 240, 240, 144, 17, 9, 240, 85, + 65, 34, 113, 113, 129, 129, 113, 129, 129, 129, 240, 240, + 176, 23, 9, 240, 100, 66, 34, 49, 65, 50, 34, 82, + 97, 33, 65, 65, 49, 65, 50, 34, 68, 240, 240, 128, + 22, 9, 240, 99, 81, 33, 81, 49, 65, 49, 65, 49, + 84, 129, 65, 49, 65, 33, 83, 240, 240, 160, 13, 9, + 0, 6, 18, 114, 240, 240, 66, 114, 240, 240, 144, 14, + 9, 0, 6, 18, 114, 240, 240, 66, 114, 129, 113, 240, + 112, 15, 9, 240, 161, 98, 98, 98, 97, 146, 130, 130, + 145, 0, 5, 96, 9, 9, 0, 5, 118, 240, 102, 0, + 8, 15, 9, 240, 81, 146, 130, 130, 145, 98, 98, 98, + 97, 0, 6, 48, 18, 9, 240, 99, 81, 49, 65, 49, + 113, 113, 129, 129, 240, 33, 129, 240, 240, 160, 28, 9, + 240, 115, 81, 34, 50, 19, 49, 17, 33, 49, 17, 33, + 49, 17, 33, 49, 17, 33, 50, 18, 81, 49, 83, 240, + 240, 128, 24, 9, 240, 113, 113, 17, 97, 17, 97, 17, + 97, 17, 97, 17, 85, 65, 49, 65, 49, 51, 19, 240, + 240, 112, 23, 9, 240, 85, 81, 49, 65, 49, 65, 49, + 68, 81, 49, 65, 49, 65, 49, 65, 49, 53, 240, 240, + 128, 20, 9, 240, 116, 65, 34, 50, 49, 49, 129, 129, + 129, 130, 49, 65, 49, 83, 240, 240, 128, 24, 9, 240, + 69, 81, 49, 65, 50, 49, 65, 49, 65, 49, 65, 49, + 65, 49, 50, 49, 49, 53, 240, 240, 144, 21, 9, 240, + 71, 49, 65, 49, 129, 33, 84, 81, 33, 81, 129, 65, + 49, 65, 39, 240, 240, 112, 20, 9, 240, 71, 49, 65, + 49, 65, 49, 129, 33, 84, 81, 33, 81, 129, 115, 240, + 240, 176, 22, 9, 240, 115, 81, 33, 65, 49, 65, 49, + 65, 129, 129, 35, 49, 49, 81, 33, 84, 240, 240, 128, + 25, 9, 240, 67, 19, 49, 49, 65, 49, 65, 49, 69, + 65, 49, 65, 49, 65, 49, 65, 49, 51, 19, 240, 240, + 112, 16, 9, 240, 85, 97, 129, 129, 129, 129, 129, 129, + 129, 101, 240, 240, 128, 17, 9, 240, 116, 113, 129, 129, + 129, 129, 129, 129, 65, 49, 83, 240, 240, 144, 25, 9, + 240, 67, 19, 49, 49, 65, 33, 81, 17, 97, 17, 99, + 97, 33, 81, 33, 81, 49, 51, 34, 240, 240, 112, 18, + 9, 240, 83, 113, 129, 129, 129, 129, 129, 129, 49, 65, + 49, 54, 240, 240, 112, 27, 9, 240, 66, 50, 50, 33, + 66, 18, 66, 18, 67, 17, 67, 17, 65, 17, 17, 65, + 49, 65, 49, 51, 19, 240, 240, 112, 29, 9, 240, 66, + 35, 50, 33, 66, 33, 66, 33, 65, 17, 17, 65, 17, + 17, 65, 17, 17, 65, 34, 65, 34, 51, 18, 240, 240, + 128, 24, 9, 240, 100, 65, 65, 49, 65, 49, 65, 49, + 65, 49, 65, 49, 65, 49, 65, 49, 65, 68, 240, 240, + 128, 20, 9, 240, 70, 65, 50, 49, 65, 49, 65, 49, + 50, 53, 65, 129, 129, 115, 240, 240, 176, 27, 9, 240, + 100, 65, 65, 49, 65, 49, 65, 49, 65, 49, 65, 49, + 65, 49, 33, 17, 49, 33, 17, 68, 129, 145, 240, 64, + 24, 9, 240, 69, 81, 34, 65, 49, 65, 49, 65, 34, + 68, 81, 49, 65, 49, 65, 50, 35, 34, 240, 240, 112, + 21, 9, 240, 99, 17, 49, 50, 49, 50, 49, 147, 130, + 145, 49, 65, 50, 49, 53, 240, 240, 128, 20, 9, 240, + 71, 33, 33, 33, 33, 33, 33, 81, 129, 129, 129, 129, + 129, 115, 240, 240, 144, 25, 9, 240, 67, 19, 49, 49, + 65, 49, 65, 49, 65, 49, 65, 49, 65, 49, 65, 49, + 66, 18, 83, 240, 240, 144, 24, 9, 240, 67, 19, 49, + 49, 65, 49, 65, 49, 81, 17, 97, 17, 97, 17, 97, + 17, 98, 129, 240, 240, 160, 27, 9, 240, 66, 50, 33, + 65, 49, 65, 65, 49, 65, 17, 17, 67, 17, 66, 18, + 66, 18, 66, 18, 81, 17, 240, 240, 144, 22, 9, 240, + 82, 19, 65, 33, 81, 17, 114, 113, 130, 114, 97, 33, + 81, 33, 66, 34, 240, 240, 112, 21, 9, 240, 67, 19, + 49, 49, 81, 17, 97, 17, 97, 17, 113, 129, 129, 129, + 115, 240, 240, 144, 20, 9, 240, 86, 49, 50, 49, 49, + 113, 129, 113, 129, 113, 49, 49, 65, 54, 240, 240, 112, + 16, 9, 196, 81, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 132, 240, 224, 17, 9, 33, 129, 145, 129, 145, 129, + 130, 129, 129, 145, 129, 145, 129, 240, 208, 16, 9, 196, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 84, 240, + 224, 9, 9, 240, 114, 82, 33, 0, 13, 96, 7, 9, + 0, 14, 118, 240, 64, 10, 9, 225, 113, 129, 130, 114, + 0, 11, 80, 18, 9, 0, 5, 116, 81, 49, 84, 65, + 49, 65, 49, 65, 49, 85, 240, 240, 112, 21, 9, 240, + 66, 129, 129, 133, 66, 33, 65, 65, 49, 65, 49, 65, + 50, 33, 68, 240, 240, 144, 16, 9, 0, 6, 4, 81, + 33, 65, 129, 129, 145, 33, 83, 240, 240, 144, 21, 9, + 240, 130, 129, 129, 84, 65, 34, 49, 65, 49, 65, 49, + 65, 65, 34, 70, 240, 240, 112, 17, 9, 0, 6, 19, + 81, 34, 49, 65, 54, 49, 145, 49, 83, 240, 240, 128, + 17, 9, 240, 130, 97, 17, 97, 101, 97, 129, 129, 129, + 129, 101, 240, 240, 128, 22, 9, 0, 6, 5, 49, 49, + 65, 49, 65, 49, 68, 81, 133, 49, 81, 33, 81, 34, + 50, 68, 32, 22, 9, 240, 66, 129, 129, 132, 82, 33, + 65, 49, 65, 49, 65, 49, 65, 49, 51, 19, 240, 240, + 112, 15, 9, 240, 113, 129, 243, 129, 129, 129, 129, 129, + 101, 240, 240, 128, 18, 9, 240, 145, 129, 243, 129, 129, + 129, 129, 129, 129, 129, 129, 81, 33, 83, 48, 22, 9, + 240, 66, 129, 129, 129, 19, 65, 33, 81, 17, 99, 97, + 33, 81, 33, 67, 19, 240, 240, 112, 16, 9, 240, 83, + 129, 129, 129, 129, 129, 129, 129, 129, 101, 240, 240, 128, + 25, 9, 0, 5, 103, 49, 17, 33, 49, 17, 33, 49, + 17, 33, 49, 17, 33, 49, 17, 33, 34, 21, 240, 240, + 96, 20, 9, 0, 5, 101, 82, 33, 65, 49, 65, 49, + 65, 49, 65, 49, 51, 19, 240, 240, 112, 19, 9, 0, + 6, 4, 81, 33, 65, 65, 49, 65, 49, 65, 65, 33, + 84, 240, 240, 128, 21, 9, 0, 5, 102, 66, 33, 65, + 65, 49, 65, 49, 65, 50, 33, 68, 81, 129, 129, 115, + 80, 20, 9, 0, 6, 4, 66, 33, 65, 49, 65, 49, + 65, 49, 66, 18, 84, 129, 129, 129, 115, 16, 9, 0, + 5, 99, 19, 66, 33, 65, 129, 129, 129, 102, 240, 240, + 128, 17, 9, 0, 6, 4, 65, 49, 65, 147, 81, 49, + 66, 33, 68, 240, 240, 144, 18, 9, 240, 113, 129, 129, + 102, 81, 129, 129, 129, 33, 81, 33, 98, 240, 240, 128, + 20, 9, 0, 5, 98, 34, 65, 49, 65, 49, 65, 49, + 65, 49, 65, 49, 85, 240, 240, 112, 20, 9, 0, 5, + 99, 19, 49, 49, 65, 49, 81, 17, 97, 17, 97, 17, + 113, 240, 240, 160, 22, 9, 0, 5, 99, 19, 49, 49, + 65, 49, 65, 17, 17, 67, 17, 66, 18, 81, 17, 240, + 240, 144, 20, 9, 0, 5, 99, 19, 65, 17, 97, 17, + 113, 113, 17, 81, 34, 51, 19, 240, 240, 112, 23, 9, + 0, 5, 114, 19, 49, 49, 65, 33, 97, 17, 97, 17, + 97, 17, 113, 129, 129, 97, 17, 98, 80, 16, 9, 0, + 5, 118, 49, 49, 113, 114, 98, 113, 49, 54, 240, 240, + 112, 16, 9, 226, 97, 129, 129, 129, 129, 98, 145, 129, + 129, 129, 146, 240, 224, 18, 9, 65, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 240, 240, 16, 17, + 9, 178, 145, 129, 129, 129, 129, 146, 97, 129, 129, 129, + 98, 240, 240, 32, 10, 9, 240, 98, 17, 65, 18, 0, + 13, 112, +}; + +//***************************************************************************** +// +// The font definition for the 16 point Cmtt font. +// +//***************************************************************************** +const tFont g_sFontCmtt16 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 7, + + // + // The height of the font. + // + 16, + + // + // The baseline of the font. + // + 12, + + // + // The offset to each character in the font. + // + { + 0, 4, 20, 36, 60, 88, 116, 143, + 154, 171, 189, 205, 220, 230, 238, 247, + 265, 289, 305, 324, 343, 363, 382, 404, + 421, 444, 466, 479, 493, 508, 517, 532, + 550, 578, 602, 625, 645, 669, 690, 710, + 732, 757, 773, 790, 815, 833, 860, 889, + 913, 933, 960, 984, 1005, 1025, 1050, 1074, + 1101, 1123, 1144, 1164, 1180, 1197, 1213, 1222, + 1229, 1239, 1257, 1278, 1294, 1315, 1332, 1349, + 1371, 1393, 1408, 1426, 1448, 1464, 1489, 1509, + 1528, 1549, 1569, 1585, 1602, 1620, 1640, 1660, + 1682, 1702, 1725, 1741, 1757, 1775, 1792, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmtt16Data +}; diff --git a/grlib/fonts/fontcmtt18.c b/grlib/fonts/fontcmtt18.c new file mode 100644 index 0000000..49fb4ac --- /dev/null +++ b/grlib/fonts/fontcmtt18.c @@ -0,0 +1,275 @@ +//***************************************************************************** +// +// fontcmtt18.c - Font definition for the 18pt Cmtt font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmtt +// Size: 18 point +// Bold: no +// Italic: no +// Memory usage: 2228 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 18 point Cmtt font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmtt18Data[2027] = +{ + 5, 10, 0, 22, 64, 17, 10, 240, 240, 81, 145, 145, + 145, 145, 145, 145, 240, 225, 145, 240, 240, 224, 17, 10, + 240, 240, 49, 33, 97, 33, 97, 33, 97, 33, 97, 33, + 0, 12, 112, 27, 10, 240, 240, 65, 33, 97, 33, 97, + 33, 71, 81, 17, 113, 17, 113, 17, 87, 65, 33, 97, + 33, 97, 33, 240, 240, 208, 32, 10, 81, 145, 131, 101, + 66, 17, 17, 65, 33, 17, 66, 17, 115, 146, 129, 17, + 65, 33, 17, 65, 33, 17, 66, 17, 17, 99, 129, 240, + 240, 64, 33, 10, 193, 65, 49, 17, 34, 49, 17, 33, + 65, 17, 33, 81, 34, 129, 145, 129, 145, 130, 129, 35, + 65, 33, 17, 50, 33, 17, 49, 51, 240, 240, 16, 32, + 10, 240, 240, 66, 113, 17, 113, 17, 113, 20, 66, 33, + 82, 17, 81, 17, 17, 65, 33, 17, 65, 49, 33, 33, + 49, 33, 51, 18, 240, 240, 192, 13, 10, 240, 240, 66, + 130, 145, 145, 129, 145, 0, 11, 112, 20, 10, 97, 129, + 129, 145, 129, 145, 145, 145, 145, 145, 145, 161, 145, 161, + 161, 240, 240, 48, 20, 10, 49, 161, 161, 145, 161, 145, + 145, 145, 145, 145, 145, 129, 145, 129, 129, 240, 240, 96, + 17, 10, 240, 240, 241, 145, 98, 17, 17, 99, 115, 82, + 19, 113, 145, 0, 8, 15, 10, 240, 240, 81, 145, 145, + 145, 145, 103, 97, 145, 145, 0, 8, 11, 10, 0, 14, + 34, 130, 130, 145, 129, 240, 160, 8, 10, 0, 10, 38, + 0, 11, 64, 9, 10, 0, 15, 66, 130, 240, 240, 224, + 20, 10, 113, 145, 129, 145, 145, 129, 145, 130, 129, 145, + 129, 145, 145, 129, 145, 240, 240, 112, 27, 10, 240, 240, + 66, 113, 33, 81, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 66, 34, 81, 33, 114, 240, 240, 224, 18, + 10, 240, 240, 81, 130, 115, 145, 145, 145, 145, 145, 145, + 145, 117, 240, 240, 192, 22, 10, 240, 240, 51, 97, 49, + 81, 65, 65, 65, 145, 129, 145, 129, 129, 129, 49, 70, + 240, 240, 192, 22, 10, 240, 240, 68, 81, 65, 145, 130, + 84, 146, 145, 49, 81, 49, 81, 50, 49, 99, 240, 240, + 208, 23, 10, 240, 240, 82, 115, 113, 17, 97, 33, 97, + 33, 81, 49, 65, 65, 72, 113, 145, 117, 240, 240, 176, + 21, 10, 240, 240, 54, 65, 145, 145, 148, 97, 49, 161, + 145, 49, 81, 49, 66, 68, 240, 240, 208, 26, 10, 240, + 240, 68, 82, 33, 81, 49, 65, 145, 19, 82, 49, 65, + 65, 65, 65, 65, 65, 81, 49, 99, 240, 240, 208, 19, + 10, 240, 240, 39, 49, 65, 129, 145, 129, 145, 129, 145, + 145, 145, 145, 240, 240, 240, 26, 10, 240, 240, 52, 82, + 34, 65, 65, 66, 34, 98, 113, 33, 81, 65, 65, 65, + 65, 65, 81, 33, 100, 240, 240, 208, 26, 10, 240, 240, + 51, 113, 33, 81, 65, 65, 65, 65, 65, 65, 50, 83, + 17, 145, 65, 49, 81, 34, 84, 240, 240, 224, 13, 10, + 0, 8, 2, 130, 0, 6, 2, 130, 240, 240, 224, 14, + 10, 0, 8, 2, 130, 0, 6, 2, 130, 145, 129, 240, + 160, 17, 10, 240, 240, 113, 130, 98, 114, 114, 130, 146, + 146, 162, 145, 0, 6, 64, 10, 10, 0, 7, 103, 240, + 135, 0, 10, 16, 17, 10, 240, 240, 33, 146, 162, 146, + 146, 130, 114, 114, 98, 129, 0, 7, 16, 19, 10, 240, + 240, 52, 81, 65, 65, 65, 114, 114, 129, 145, 240, 225, + 145, 240, 240, 240, 32, 10, 240, 240, 68, 82, 33, 81, + 20, 49, 18, 18, 49, 17, 49, 49, 17, 49, 49, 17, + 49, 49, 18, 18, 65, 19, 82, 34, 84, 240, 240, 192, + 26, 10, 240, 240, 81, 145, 129, 17, 113, 17, 113, 17, + 113, 17, 113, 17, 101, 81, 49, 81, 49, 67, 19, 240, + 240, 176, 26, 10, 240, 240, 38, 81, 50, 65, 65, 65, + 65, 65, 49, 84, 97, 50, 65, 65, 65, 65, 65, 50, + 54, 240, 240, 192, 24, 10, 240, 240, 69, 66, 34, 65, + 65, 49, 81, 49, 145, 145, 145, 81, 65, 65, 66, 34, + 84, 240, 240, 192, 27, 10, 240, 240, 22, 81, 50, 65, + 65, 65, 81, 49, 81, 49, 81, 49, 81, 49, 81, 49, + 65, 65, 50, 54, 240, 240, 208, 24, 10, 240, 240, 39, + 65, 65, 65, 65, 65, 145, 33, 100, 97, 33, 97, 145, + 65, 65, 65, 55, 240, 240, 176, 22, 10, 240, 240, 39, + 65, 65, 65, 65, 65, 145, 33, 100, 97, 33, 97, 145, + 145, 131, 240, 240, 240, 25, 10, 240, 240, 68, 81, 34, + 81, 49, 65, 65, 65, 145, 145, 51, 49, 65, 81, 49, + 81, 34, 100, 240, 240, 192, 28, 10, 240, 240, 19, 35, + 49, 65, 65, 65, 65, 65, 65, 65, 70, 65, 65, 65, + 65, 65, 65, 65, 65, 51, 35, 240, 240, 176, 18, 10, + 240, 240, 53, 113, 145, 145, 145, 145, 145, 145, 145, 145, + 117, 240, 240, 192, 20, 10, 240, 240, 68, 129, 145, 145, + 145, 145, 145, 145, 81, 49, 81, 49, 99, 240, 240, 224, + 29, 10, 240, 240, 19, 34, 65, 49, 81, 33, 97, 33, + 97, 17, 114, 17, 98, 17, 97, 33, 97, 49, 81, 49, + 67, 35, 240, 240, 176, 20, 10, 240, 240, 36, 113, 145, + 145, 145, 145, 145, 145, 145, 65, 65, 65, 55, 240, 240, + 176, 33, 10, 240, 240, 19, 50, 50, 34, 66, 34, 66, + 17, 17, 65, 18, 17, 65, 18, 17, 65, 18, 17, 65, + 65, 65, 65, 65, 65, 51, 35, 240, 240, 176, 35, 10, + 240, 240, 19, 35, 50, 49, 66, 49, 65, 17, 33, 65, + 17, 33, 65, 17, 33, 65, 33, 17, 65, 33, 17, 65, + 33, 17, 65, 50, 51, 34, 240, 240, 192, 27, 10, 240, + 240, 52, 81, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 84, 240, 240, 208, + 22, 10, 240, 240, 38, 81, 50, 65, 65, 65, 65, 65, + 50, 69, 81, 145, 145, 145, 131, 240, 240, 240, 30, 10, + 240, 240, 52, 81, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 33, 17, 65, 33, 17, 84, + 145, 161, 240, 112, 27, 10, 240, 240, 22, 81, 50, 65, + 65, 65, 65, 65, 50, 69, 81, 65, 65, 65, 65, 65, + 65, 66, 35, 50, 240, 240, 176, 25, 10, 240, 240, 51, + 17, 65, 50, 65, 50, 65, 65, 66, 163, 146, 65, 65, + 65, 65, 66, 34, 69, 240, 240, 208, 22, 10, 240, 240, + 24, 33, 49, 33, 33, 49, 33, 97, 145, 145, 145, 145, + 145, 145, 116, 240, 240, 208, 28, 10, 240, 240, 19, 35, + 49, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 81, 33, 114, 240, 240, 224, 25, 10, + 240, 240, 19, 35, 49, 65, 65, 65, 81, 33, 97, 33, + 97, 33, 97, 33, 100, 114, 130, 130, 240, 240, 224, 33, + 10, 240, 240, 19, 35, 49, 65, 65, 65, 65, 65, 65, + 18, 17, 65, 18, 17, 65, 18, 17, 65, 18, 17, 66, + 18, 97, 33, 97, 33, 240, 240, 208, 25, 10, 240, 240, + 35, 19, 65, 34, 97, 17, 115, 129, 145, 131, 113, 17, + 98, 18, 81, 49, 67, 19, 240, 240, 176, 23, 10, 240, + 240, 35, 19, 65, 49, 81, 49, 97, 17, 113, 17, 129, + 145, 145, 145, 145, 131, 240, 240, 208, 22, 10, 240, 240, + 39, 49, 66, 49, 65, 129, 130, 129, 129, 145, 129, 65, + 49, 81, 55, 240, 240, 176, 19, 10, 212, 97, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 148, 240, 240, + 48, 20, 10, 33, 145, 161, 145, 145, 161, 145, 146, 145, + 145, 161, 145, 145, 161, 145, 240, 240, 32, 19, 10, 212, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 100, 240, 240, 48, 10, 10, 240, 240, 66, 113, 34, 0, + 16, 64, 7, 10, 0, 19, 6, 240, 112, 11, 10, 241, + 145, 129, 145, 146, 130, 0, 14, 32, 19, 10, 0, 7, + 101, 81, 50, 145, 85, 51, 49, 50, 65, 50, 65, 72, + 240, 240, 160, 24, 10, 240, 240, 34, 145, 145, 148, 98, + 33, 81, 65, 65, 65, 65, 65, 65, 65, 66, 33, 84, + 240, 240, 208, 17, 10, 0, 8, 4, 81, 49, 65, 145, + 145, 145, 161, 49, 99, 240, 240, 208, 24, 10, 240, 240, + 98, 145, 145, 100, 81, 34, 65, 65, 65, 65, 65, 65, + 65, 65, 81, 34, 101, 240, 240, 176, 19, 10, 0, 8, + 3, 97, 34, 65, 65, 70, 65, 145, 65, 81, 49, 99, + 240, 240, 208, 19, 10, 240, 240, 83, 97, 33, 97, 118, + 97, 145, 145, 145, 145, 145, 118, 240, 240, 192, 25, 10, + 0, 7, 118, 50, 18, 17, 49, 49, 81, 49, 82, 18, + 84, 97, 150, 49, 82, 33, 97, 34, 66, 68, 48, 25, + 10, 240, 240, 34, 145, 145, 148, 98, 33, 81, 49, 81, + 49, 81, 49, 81, 49, 81, 49, 67, 19, 240, 240, 176, + 18, 10, 240, 240, 81, 145, 240, 35, 145, 145, 145, 145, + 145, 145, 117, 240, 240, 192, 21, 10, 240, 240, 113, 145, + 240, 20, 145, 145, 145, 145, 145, 145, 145, 145, 145, 81, + 34, 84, 48, 25, 10, 240, 240, 34, 145, 145, 145, 20, + 65, 33, 97, 18, 99, 114, 17, 97, 33, 97, 49, 67, + 19, 240, 240, 176, 18, 10, 240, 240, 36, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 103, 240, 240, 176, 28, 10, + 0, 7, 87, 66, 17, 17, 65, 33, 17, 65, 33, 17, + 65, 33, 17, 65, 33, 17, 65, 33, 17, 53, 18, 240, + 240, 176, 22, 10, 0, 7, 101, 98, 33, 81, 49, 81, + 49, 81, 49, 81, 49, 81, 49, 67, 19, 240, 240, 176, + 21, 10, 0, 8, 2, 113, 33, 81, 65, 65, 65, 65, + 65, 65, 65, 81, 33, 114, 240, 240, 224, 23, 10, 0, + 7, 101, 98, 33, 81, 65, 65, 65, 65, 65, 65, 65, + 66, 33, 84, 97, 145, 145, 131, 80, 23, 10, 0, 8, + 4, 81, 34, 65, 65, 65, 65, 65, 65, 65, 65, 81, + 34, 98, 17, 145, 145, 145, 131, 17, 10, 0, 7, 99, + 19, 82, 33, 82, 129, 145, 145, 145, 118, 240, 240, 192, + 19, 10, 0, 7, 117, 65, 65, 65, 65, 83, 162, 65, + 65, 66, 49, 69, 240, 240, 208, 20, 10, 240, 240, 65, + 145, 145, 119, 81, 145, 145, 145, 145, 49, 81, 49, 99, + 240, 240, 192, 22, 10, 0, 7, 98, 34, 81, 49, 81, + 49, 81, 49, 81, 49, 81, 49, 81, 49, 101, 240, 240, + 176, 20, 10, 0, 7, 83, 35, 49, 65, 81, 33, 97, + 33, 97, 33, 114, 130, 130, 240, 240, 224, 25, 10, 0, + 7, 83, 35, 49, 65, 65, 65, 65, 18, 17, 65, 18, + 17, 65, 19, 98, 17, 97, 33, 240, 240, 208, 21, 10, + 0, 7, 99, 19, 81, 17, 113, 17, 129, 145, 129, 17, + 97, 49, 67, 19, 240, 240, 176, 24, 10, 0, 7, 98, + 19, 65, 49, 81, 49, 97, 33, 97, 17, 113, 17, 130, + 130, 129, 145, 113, 17, 114, 96, 18, 10, 0, 7, 102, + 65, 50, 114, 129, 129, 129, 49, 66, 49, 70, 240, 240, + 192, 20, 10, 240, 19, 97, 145, 145, 145, 145, 145, 99, + 161, 145, 145, 145, 145, 163, 240, 240, 16, 20, 10, 81, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 240, 240, 64, 19, 10, 195, 161, 145, 145, 145, + 145, 145, 163, 97, 145, 145, 145, 145, 99, 240, 240, 80, + 11, 10, 240, 240, 50, 33, 65, 34, 0, 16, 80, +}; + +//***************************************************************************** +// +// The font definition for the 18 point Cmtt font. +// +//***************************************************************************** +const tFont g_sFontCmtt18 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 8, + + // + // The height of the font. + // + 18, + + // + // The baseline of the font. + // + 14, + + // + // The offset to each character in the font. + // + { + 0, 5, 22, 39, 66, 98, 131, 163, + 176, 196, 216, 233, 248, 259, 267, 276, + 296, 323, 341, 363, 385, 408, 429, 455, + 474, 500, 526, 539, 553, 570, 580, 597, + 616, 648, 674, 700, 724, 751, 775, 797, + 822, 850, 868, 888, 917, 937, 970, 1005, + 1032, 1054, 1084, 1111, 1136, 1158, 1186, 1211, + 1244, 1269, 1292, 1314, 1333, 1353, 1372, 1382, + 1389, 1400, 1419, 1443, 1460, 1484, 1503, 1522, + 1547, 1572, 1590, 1611, 1636, 1654, 1682, 1704, + 1725, 1748, 1771, 1788, 1807, 1827, 1849, 1869, + 1894, 1915, 1939, 1957, 1977, 1997, 2016, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmtt18Data +}; diff --git a/grlib/fonts/fontcmtt20.c b/grlib/fonts/fontcmtt20.c new file mode 100644 index 0000000..d8fe979 --- /dev/null +++ b/grlib/fonts/fontcmtt20.c @@ -0,0 +1,290 @@ +//***************************************************************************** +// +// fontcmtt20.c - Font definition for the 20pt Cmtt font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmtt +// Size: 20 point +// Bold: no +// Italic: no +// Memory usage: 2404 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 20 point Cmtt font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmtt20Data[2201] = +{ + 5, 11, 0, 27, 64, 19, 11, 240, 193, 161, 161, 161, + 161, 161, 161, 161, 161, 240, 240, 33, 161, 0, 7, 64, + 18, 11, 240, 177, 33, 113, 33, 113, 33, 113, 33, 113, + 33, 113, 33, 0, 16, 112, 30, 11, 240, 193, 33, 98, + 18, 98, 18, 97, 34, 72, 81, 33, 113, 33, 113, 33, + 113, 33, 88, 66, 33, 98, 18, 97, 34, 0, 7, 32, + 36, 11, 81, 161, 133, 82, 17, 18, 65, 33, 33, 65, + 33, 33, 66, 17, 131, 148, 131, 129, 33, 65, 33, 33, + 65, 33, 33, 66, 17, 18, 85, 129, 161, 240, 240, 128, + 39, 11, 225, 65, 65, 17, 49, 65, 17, 33, 81, 17, + 33, 97, 49, 145, 161, 161, 145, 161, 161, 33, 97, 33, + 17, 81, 33, 17, 81, 33, 17, 65, 49, 17, 65, 65, + 240, 240, 80, 35, 11, 240, 177, 145, 17, 129, 17, 129, + 17, 129, 21, 66, 33, 98, 33, 83, 18, 81, 17, 17, + 97, 17, 17, 97, 33, 49, 49, 34, 33, 66, 19, 0, + 7, 16, 12, 11, 240, 194, 146, 161, 161, 145, 146, 0, + 17, 16, 22, 11, 113, 146, 145, 145, 161, 145, 161, 161, + 161, 161, 161, 161, 177, 161, 177, 162, 161, 240, 240, 96, + 22, 11, 65, 162, 161, 177, 161, 177, 161, 161, 161, 161, + 161, 161, 145, 161, 145, 146, 145, 240, 240, 144, 20, 11, + 0, 6, 17, 161, 114, 17, 18, 85, 129, 133, 82, 17, + 18, 113, 161, 0, 10, 32, 17, 11, 240, 240, 129, 161, + 161, 161, 161, 119, 113, 161, 161, 161, 0, 10, 32, 12, + 11, 0, 17, 2, 147, 131, 146, 145, 145, 240, 208, 8, + 11, 0, 11, 39, 0, 15, 48, 10, 11, 0, 17, 18, + 146, 146, 0, 7, 48, 22, 11, 129, 146, 145, 161, 146, + 145, 161, 146, 145, 146, 145, 161, 146, 145, 161, 146, 145, + 240, 240, 176, 30, 11, 240, 179, 113, 49, 97, 49, 81, + 81, 65, 81, 65, 81, 65, 81, 65, 81, 65, 81, 65, + 81, 81, 49, 97, 49, 115, 0, 7, 48, 19, 11, 240, + 193, 161, 146, 131, 161, 161, 161, 161, 161, 161, 161, 161, + 133, 0, 7, 32, 23, 11, 240, 164, 113, 49, 81, 81, + 65, 81, 161, 161, 145, 146, 130, 145, 145, 145, 65, 71, + 0, 7, 16, 24, 11, 240, 180, 97, 66, 65, 81, 161, + 161, 145, 101, 162, 161, 49, 97, 49, 97, 50, 65, 100, + 0, 7, 32, 24, 11, 240, 210, 131, 129, 17, 114, 17, + 113, 33, 97, 49, 97, 49, 81, 65, 88, 129, 161, 161, + 133, 0, 7, 23, 11, 240, 166, 81, 161, 161, 161, 164, + 114, 33, 97, 65, 161, 161, 65, 81, 65, 66, 84, 0, + 7, 48, 28, 11, 240, 210, 129, 33, 97, 49, 81, 161, + 161, 19, 98, 33, 97, 65, 81, 65, 81, 65, 81, 65, + 97, 33, 131, 0, 7, 32, 20, 11, 240, 151, 65, 66, + 130, 145, 146, 145, 161, 161, 145, 161, 161, 161, 161, 0, + 7, 80, 29, 11, 240, 179, 113, 49, 81, 81, 65, 81, + 65, 81, 81, 49, 115, 113, 49, 81, 81, 65, 81, 65, + 81, 81, 49, 115, 0, 7, 48, 28, 11, 240, 179, 113, + 49, 81, 65, 81, 81, 65, 81, 65, 81, 81, 50, 99, + 17, 161, 145, 81, 65, 81, 49, 115, 0, 7, 64, 15, + 11, 0, 8, 114, 146, 146, 240, 240, 194, 146, 146, 0, + 7, 48, 17, 11, 0, 8, 114, 146, 146, 240, 240, 194, + 146, 146, 161, 146, 145, 240, 192, 18, 11, 240, 240, 177, + 131, 114, 130, 130, 130, 162, 162, 162, 163, 161, 0, 8, + 64, 10, 11, 0, 9, 120, 240, 168, 0, 12, 64, 18, + 11, 240, 240, 81, 163, 162, 162, 162, 162, 130, 130, 130, + 115, 129, 0, 9, 32, 21, 11, 240, 165, 81, 81, 65, + 81, 146, 130, 130, 145, 161, 161, 240, 240, 33, 161, 0, + 7, 64, 36, 11, 240, 194, 129, 33, 97, 50, 81, 20, + 65, 33, 18, 65, 17, 49, 65, 17, 49, 65, 17, 49, + 65, 17, 49, 65, 33, 17, 97, 19, 98, 34, 100, 0, + 7, 32, 25, 11, 240, 194, 146, 146, 146, 132, 113, 33, + 113, 33, 113, 33, 116, 98, 34, 81, 65, 81, 65, 67, + 35, 0, 7, 29, 11, 240, 150, 97, 50, 81, 65, 81, + 65, 81, 65, 81, 49, 100, 113, 49, 97, 65, 81, 65, + 81, 65, 81, 50, 70, 0, 7, 32, 25, 11, 240, 181, + 82, 34, 81, 65, 65, 81, 65, 161, 161, 161, 161, 161, + 81, 81, 65, 82, 33, 115, 0, 7, 48, 30, 11, 240, + 149, 113, 49, 97, 49, 97, 65, 81, 65, 81, 65, 81, + 65, 81, 65, 81, 65, 81, 65, 81, 49, 97, 49, 85, + 0, 7, 48, 24, 11, 240, 152, 65, 81, 65, 81, 65, + 161, 161, 33, 116, 113, 33, 113, 161, 161, 81, 65, 81, + 56, 0, 7, 23, 11, 240, 151, 81, 65, 81, 65, 81, + 161, 161, 33, 116, 113, 33, 113, 161, 161, 161, 147, 0, + 7, 80, 27, 11, 240, 181, 82, 34, 81, 65, 81, 65, + 65, 81, 65, 161, 161, 161, 52, 49, 81, 81, 65, 82, + 34, 101, 0, 7, 16, 30, 11, 240, 147, 35, 65, 65, + 81, 65, 81, 65, 81, 65, 81, 65, 86, 81, 65, 81, + 65, 81, 65, 81, 65, 81, 65, 67, 35, 0, 7, 19, + 11, 240, 151, 113, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 119, 0, 7, 16, 21, 11, 240, 181, 145, 161, + 161, 161, 161, 161, 161, 161, 161, 81, 65, 81, 50, 100, + 0, 7, 48, 30, 11, 240, 147, 35, 65, 50, 81, 49, + 97, 33, 113, 33, 113, 17, 132, 114, 17, 113, 49, 97, + 49, 97, 50, 81, 65, 67, 35, 0, 7, 21, 11, 240, + 148, 129, 161, 161, 161, 161, 161, 161, 161, 161, 161, 65, + 81, 65, 71, 0, 7, 16, 40, 11, 240, 131, 51, 50, + 50, 66, 50, 66, 33, 17, 65, 17, 17, 17, 65, 17, + 17, 17, 65, 17, 17, 17, 65, 18, 33, 65, 33, 33, + 65, 81, 65, 81, 65, 81, 51, 51, 0, 7, 39, 11, + 240, 147, 35, 66, 49, 82, 49, 81, 17, 33, 81, 17, + 33, 81, 17, 33, 81, 17, 33, 81, 33, 17, 81, 33, + 17, 81, 33, 17, 81, 50, 81, 50, 67, 34, 0, 7, + 16, 30, 11, 240, 165, 82, 50, 65, 81, 65, 81, 65, + 81, 65, 81, 65, 81, 65, 81, 65, 81, 65, 81, 65, + 81, 66, 50, 85, 0, 7, 32, 25, 11, 240, 150, 97, + 49, 97, 65, 81, 65, 81, 65, 81, 65, 81, 49, 101, + 97, 161, 161, 161, 147, 0, 7, 80, 34, 11, 240, 165, + 82, 50, 65, 81, 65, 81, 65, 81, 65, 81, 65, 81, + 65, 81, 65, 81, 65, 81, 65, 34, 17, 66, 33, 17, + 85, 161, 162, 161, 240, 144, 31, 11, 240, 149, 113, 34, + 97, 49, 97, 49, 97, 49, 97, 34, 100, 113, 49, 97, + 49, 97, 49, 97, 49, 97, 49, 17, 51, 34, 0, 7, + 16, 26, 11, 240, 164, 17, 66, 50, 65, 66, 65, 66, + 65, 178, 164, 162, 161, 65, 81, 65, 81, 66, 49, 86, + 0, 7, 32, 23, 11, 240, 152, 49, 33, 49, 49, 33, + 49, 97, 161, 161, 161, 161, 161, 161, 161, 161, 148, 0, + 7, 32, 31, 11, 240, 131, 51, 49, 81, 65, 81, 65, + 81, 65, 81, 65, 81, 65, 81, 65, 81, 65, 81, 65, + 81, 65, 81, 81, 49, 115, 0, 7, 48, 30, 11, 240, + 131, 51, 49, 81, 66, 50, 81, 49, 97, 49, 97, 49, + 98, 18, 98, 18, 113, 17, 129, 17, 129, 17, 131, 145, + 0, 7, 64, 34, 11, 240, 131, 51, 49, 81, 65, 81, + 65, 81, 65, 81, 65, 81, 65, 33, 33, 65, 18, 33, + 82, 18, 98, 18, 98, 18, 98, 18, 97, 49, 0, 7, + 32, 25, 11, 240, 147, 19, 82, 33, 113, 18, 115, 146, + 146, 146, 146, 131, 129, 33, 98, 33, 97, 50, 67, 35, + 0, 7, 25, 11, 240, 132, 20, 65, 49, 97, 49, 98, + 18, 113, 17, 129, 17, 131, 145, 161, 161, 161, 161, 147, + 0, 7, 48, 24, 11, 240, 151, 65, 66, 65, 65, 146, + 145, 146, 145, 146, 145, 145, 65, 81, 65, 65, 81, 71, + 0, 7, 16, 21, 11, 244, 113, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 164, 240, 240, 96, + 22, 11, 33, 162, 161, 161, 162, 161, 161, 162, 161, 162, + 161, 161, 162, 161, 161, 162, 161, 240, 240, 80, 21, 11, + 244, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 116, 240, 240, 96, 10, 11, 240, 194, 114, + 18, 97, 49, 0, 21, 8, 11, 0, 22, 39, 240, 240, + 80, 12, 11, 240, 18, 145, 145, 161, 162, 146, 0, 18, + 64, 20, 11, 0, 8, 68, 113, 49, 177, 101, 82, 49, + 66, 65, 66, 65, 66, 50, 88, 0, 7, 26, 11, 240, + 146, 161, 161, 161, 164, 114, 33, 97, 65, 81, 65, 81, + 65, 81, 65, 81, 65, 82, 33, 100, 0, 7, 48, 19, + 11, 0, 8, 116, 97, 49, 81, 161, 161, 161, 162, 49, + 97, 49, 115, 0, 7, 32, 26, 11, 240, 210, 161, 161, + 161, 116, 97, 34, 81, 65, 81, 65, 81, 65, 81, 65, + 81, 65, 97, 34, 117, 0, 7, 16, 21, 11, 0, 8, + 99, 113, 49, 82, 65, 65, 81, 71, 65, 162, 65, 82, + 34, 100, 0, 7, 32, 20, 11, 240, 211, 113, 33, 113, + 161, 134, 113, 161, 161, 161, 161, 161, 161, 134, 0, 7, + 16, 29, 11, 0, 8, 87, 65, 34, 17, 49, 65, 81, + 65, 81, 65, 82, 33, 101, 97, 166, 66, 82, 33, 113, + 33, 113, 49, 81, 85, 48, 27, 11, 240, 146, 161, 161, + 161, 164, 114, 33, 97, 49, 97, 49, 97, 49, 97, 49, + 97, 49, 97, 49, 83, 19, 0, 7, 16, 18, 11, 240, + 193, 161, 240, 244, 161, 161, 161, 161, 161, 161, 161, 118, + 0, 7, 16, 22, 11, 240, 209, 161, 240, 244, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 97, 33, 116, + 64, 26, 11, 240, 131, 161, 161, 161, 161, 21, 65, 34, + 97, 33, 113, 17, 132, 114, 17, 113, 49, 97, 49, 69, + 19, 0, 7, 19, 11, 240, 148, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 119, 0, 7, 16, 29, 11, + 0, 8, 56, 66, 18, 17, 65, 33, 33, 65, 33, 33, + 65, 33, 33, 65, 33, 33, 65, 33, 33, 65, 33, 33, + 57, 0, 7, 24, 11, 0, 8, 69, 114, 33, 97, 49, + 97, 49, 97, 49, 97, 49, 97, 49, 97, 49, 83, 19, + 0, 7, 16, 23, 11, 0, 8, 99, 113, 49, 81, 81, + 65, 81, 65, 81, 65, 81, 65, 81, 81, 49, 115, 0, + 7, 48, 26, 11, 0, 8, 69, 114, 33, 97, 65, 81, + 65, 81, 65, 81, 65, 81, 65, 82, 33, 100, 113, 161, + 161, 161, 147, 96, 27, 11, 0, 8, 83, 17, 81, 50, + 65, 81, 65, 81, 65, 81, 65, 81, 65, 81, 81, 50, + 99, 17, 161, 161, 161, 161, 133, 18, 11, 0, 8, 67, + 19, 98, 33, 98, 145, 161, 161, 161, 161, 134, 0, 7, + 32, 21, 11, 0, 8, 86, 65, 81, 65, 81, 67, 165, + 65, 82, 49, 97, 50, 66, 55, 0, 7, 16, 21, 11, + 240, 240, 113, 161, 161, 135, 97, 161, 161, 161, 161, 161, + 49, 97, 49, 115, 0, 7, 32, 24, 11, 0, 8, 66, + 34, 97, 49, 97, 49, 97, 49, 97, 49, 97, 49, 97, + 49, 97, 34, 117, 0, 7, 16, 22, 11, 0, 8, 67, + 35, 65, 65, 97, 33, 113, 33, 113, 33, 113, 33, 130, + 146, 146, 0, 7, 48, 26, 11, 0, 8, 52, 20, 49, + 81, 65, 81, 65, 81, 65, 33, 33, 82, 18, 98, 18, + 98, 18, 98, 18, 0, 7, 32, 20, 11, 0, 8, 67, + 20, 81, 33, 116, 130, 146, 146, 129, 33, 113, 33, 83, + 35, 0, 7, 26, 11, 0, 8, 66, 35, 65, 65, 81, + 49, 113, 33, 113, 33, 113, 33, 130, 146, 146, 146, 145, + 161, 129, 17, 130, 112, 20, 11, 0, 8, 71, 65, 66, + 65, 50, 130, 145, 145, 146, 49, 66, 65, 71, 0, 7, + 16, 22, 11, 240, 35, 113, 161, 161, 161, 161, 161, 115, + 177, 161, 161, 161, 161, 161, 161, 179, 240, 240, 80, 22, + 11, 81, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 240, 240, 128, 21, 11, 211, + 177, 161, 161, 161, 161, 161, 179, 113, 161, 161, 161, 161, + 161, 161, 115, 240, 240, 144, 11, 11, 240, 178, 33, 82, + 19, 81, 34, 0, 21, +}; + +//***************************************************************************** +// +// The font definition for the 20 point Cmtt font. +// +//***************************************************************************** +const tFont g_sFontCmtt20 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 8, + + // + // The height of the font. + // + 20, + + // + // The baseline of the font. + // + 15, + + // + // The offset to each character in the font. + // + { + 0, 5, 24, 42, 72, 108, 147, 182, + 194, 216, 238, 258, 275, 287, 295, 305, + 327, 357, 376, 399, 423, 447, 470, 498, + 518, 547, 575, 590, 607, 625, 635, 653, + 674, 710, 735, 764, 789, 819, 843, 866, + 893, 923, 942, 963, 993, 1014, 1054, 1093, + 1123, 1148, 1182, 1213, 1239, 1262, 1293, 1323, + 1357, 1382, 1407, 1431, 1452, 1474, 1495, 1505, + 1513, 1525, 1545, 1571, 1590, 1616, 1637, 1657, + 1686, 1713, 1731, 1753, 1779, 1798, 1827, 1851, + 1874, 1900, 1927, 1945, 1966, 1987, 2011, 2033, + 2059, 2079, 2105, 2125, 2147, 2169, 2190, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmtt20Data +}; diff --git a/grlib/fonts/fontcmtt22.c b/grlib/fonts/fontcmtt22.c new file mode 100644 index 0000000..a920aee --- /dev/null +++ b/grlib/fonts/fontcmtt22.c @@ -0,0 +1,291 @@ +//***************************************************************************** +// +// fontcmtt22.c - Font definition for the 22pt Cmtt font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmtt +// Size: 22 point +// Bold: no +// Italic: no +// Memory usage: 2416 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 22 point Cmtt font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmtt22Data[2213] = +{ + 4, 12, 0, 30, 19, 12, 240, 241, 177, 177, 177, 177, + 177, 177, 177, 177, 240, 240, 81, 177, 0, 8, 16, 18, + 12, 240, 209, 49, 113, 49, 113, 49, 113, 49, 113, 49, + 113, 49, 0, 18, 48, 29, 12, 240, 225, 34, 113, 34, + 113, 33, 129, 33, 89, 82, 33, 114, 33, 113, 34, 113, + 34, 89, 81, 33, 114, 33, 114, 33, 0, 8, 36, 12, + 81, 177, 150, 82, 17, 34, 65, 33, 49, 65, 33, 49, + 66, 17, 147, 164, 148, 129, 34, 65, 33, 49, 65, 33, + 49, 66, 17, 33, 101, 145, 177, 240, 240, 192, 39, 12, + 241, 65, 81, 17, 49, 81, 17, 33, 97, 17, 33, 113, + 49, 161, 177, 177, 161, 177, 177, 33, 113, 33, 17, 97, + 33, 17, 97, 33, 17, 81, 49, 17, 81, 65, 240, 240, + 144, 34, 12, 240, 210, 145, 33, 129, 33, 129, 33, 129, + 21, 83, 33, 98, 33, 114, 33, 97, 18, 17, 97, 34, + 113, 49, 33, 65, 35, 17, 83, 18, 0, 7, 112, 12, + 12, 240, 242, 162, 177, 177, 161, 162, 0, 18, 80, 22, + 12, 114, 146, 161, 161, 177, 161, 177, 177, 177, 177, 177, + 177, 193, 177, 193, 178, 178, 240, 240, 144, 22, 12, 66, + 178, 177, 193, 177, 193, 177, 177, 177, 177, 177, 177, 161, + 177, 161, 162, 146, 240, 240, 192, 20, 12, 0, 6, 97, + 177, 130, 17, 18, 101, 131, 133, 98, 17, 18, 129, 177, + 0, 11, 16, 17, 12, 240, 240, 193, 177, 177, 177, 177, + 121, 113, 177, 177, 177, 0, 11, 16, 12, 12, 0, 18, + 82, 163, 147, 162, 161, 161, 240, 240, 8, 12, 0, 12, + 40, 0, 16, 96, 10, 12, 0, 18, 82, 162, 162, 0, + 8, 16, 22, 12, 145, 162, 161, 162, 161, 177, 162, 161, + 162, 161, 162, 161, 177, 162, 161, 162, 161, 240, 240, 240, + 29, 12, 240, 212, 114, 34, 97, 65, 81, 97, 65, 97, + 65, 97, 65, 97, 65, 97, 65, 97, 66, 66, 81, 65, + 98, 34, 116, 0, 8, 19, 12, 240, 241, 177, 162, 132, + 177, 177, 177, 177, 177, 177, 177, 177, 149, 0, 7, 112, + 23, 12, 240, 212, 113, 50, 81, 97, 65, 97, 177, 177, + 161, 162, 146, 145, 161, 161, 81, 72, 0, 7, 96, 23, + 12, 240, 212, 113, 66, 81, 81, 177, 177, 161, 117, 178, + 177, 65, 97, 65, 97, 66, 65, 116, 0, 8, 25, 12, + 240, 242, 147, 145, 17, 130, 17, 129, 33, 113, 49, 113, + 49, 97, 65, 104, 145, 177, 177, 149, 0, 7, 96, 22, + 12, 240, 199, 81, 177, 177, 177, 181, 114, 49, 97, 66, + 177, 177, 65, 97, 66, 65, 101, 0, 8, 27, 12, 240, + 243, 129, 49, 97, 65, 97, 161, 177, 19, 114, 49, 97, + 81, 81, 81, 81, 81, 81, 81, 97, 49, 131, 0, 8, + 20, 12, 240, 199, 81, 66, 161, 161, 177, 161, 177, 177, + 161, 177, 177, 177, 177, 0, 8, 32, 28, 12, 240, 212, + 113, 65, 81, 97, 65, 97, 65, 97, 81, 65, 116, 113, + 65, 81, 97, 65, 97, 65, 97, 81, 65, 116, 0, 8, + 28, 12, 240, 212, 114, 49, 82, 65, 82, 81, 66, 81, + 66, 81, 82, 50, 100, 17, 177, 161, 97, 65, 97, 49, + 131, 0, 8, 16, 15, 12, 0, 9, 82, 162, 162, 0, + 5, 98, 162, 162, 0, 8, 16, 17, 12, 0, 9, 82, + 162, 162, 0, 5, 98, 162, 162, 177, 162, 161, 240, 240, + 18, 12, 240, 240, 226, 147, 130, 131, 130, 146, 178, 179, + 178, 179, 162, 0, 9, 32, 10, 12, 0, 10, 104, 240, + 216, 0, 13, 96, 17, 12, 240, 240, 130, 163, 178, 179, + 178, 178, 146, 131, 130, 131, 146, 0, 10, 21, 12, 240, + 213, 97, 81, 81, 81, 162, 146, 146, 161, 177, 177, 240, + 240, 81, 177, 0, 8, 16, 36, 12, 240, 227, 129, 49, + 97, 66, 81, 36, 65, 49, 18, 65, 33, 49, 65, 33, + 49, 65, 33, 49, 65, 33, 49, 66, 33, 17, 97, 35, + 113, 50, 116, 0, 7, 112, 29, 12, 240, 241, 163, 145, + 17, 145, 17, 145, 17, 145, 18, 114, 18, 113, 49, 117, + 113, 49, 98, 50, 82, 50, 68, 20, 0, 7, 80, 29, + 12, 240, 198, 113, 50, 97, 65, 97, 65, 97, 65, 97, + 49, 116, 129, 49, 113, 65, 97, 65, 97, 65, 97, 50, + 86, 0, 7, 112, 24, 12, 240, 229, 97, 50, 81, 66, + 66, 81, 65, 177, 177, 177, 177, 178, 81, 81, 81, 97, + 49, 131, 0, 8, 29, 12, 240, 182, 113, 50, 97, 65, + 97, 66, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 65, 97, 50, 86, 0, 8, 25, 12, 240, + 184, 81, 81, 81, 81, 81, 177, 177, 49, 117, 113, 49, + 113, 177, 177, 81, 81, 81, 72, 0, 7, 96, 23, 12, + 240, 184, 81, 81, 81, 81, 81, 177, 177, 49, 117, 113, + 49, 113, 177, 177, 177, 164, 0, 8, 32, 27, 12, 240, + 213, 98, 34, 97, 65, 97, 65, 81, 81, 81, 177, 177, + 177, 52, 65, 81, 97, 65, 98, 34, 117, 0, 7, 112, + 31, 12, 240, 179, 35, 81, 65, 97, 65, 97, 65, 97, + 65, 97, 65, 102, 97, 65, 97, 65, 97, 65, 97, 65, + 97, 65, 83, 35, 0, 7, 96, 19, 12, 240, 199, 129, + 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 135, 0, + 7, 96, 20, 12, 240, 229, 161, 177, 177, 177, 177, 177, + 177, 177, 177, 97, 65, 97, 50, 116, 0, 8, 31, 12, + 240, 179, 35, 81, 65, 97, 49, 113, 34, 113, 33, 129, + 18, 132, 130, 18, 113, 49, 113, 49, 113, 65, 97, 65, + 83, 51, 0, 7, 80, 21, 12, 240, 180, 145, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 81, 81, 81, 72, 0, + 7, 96, 41, 12, 240, 163, 67, 50, 66, 66, 51, 65, + 17, 33, 17, 65, 17, 33, 17, 65, 17, 33, 17, 65, + 34, 33, 65, 34, 33, 65, 34, 33, 65, 97, 65, 97, + 65, 97, 51, 67, 0, 7, 80, 39, 12, 240, 179, 35, + 82, 49, 98, 49, 97, 17, 33, 97, 17, 33, 97, 17, + 33, 97, 17, 33, 97, 33, 17, 97, 33, 17, 97, 33, + 17, 97, 50, 97, 50, 83, 34, 0, 7, 112, 30, 12, + 240, 198, 82, 66, 65, 97, 65, 97, 65, 97, 65, 97, + 65, 97, 65, 97, 65, 97, 65, 97, 65, 97, 66, 66, + 86, 0, 7, 112, 25, 12, 240, 182, 113, 65, 97, 81, + 81, 81, 81, 81, 81, 81, 81, 65, 101, 113, 177, 177, + 177, 163, 0, 8, 48, 34, 12, 240, 198, 82, 66, 65, + 97, 65, 97, 65, 97, 65, 97, 65, 97, 65, 97, 65, + 97, 65, 97, 65, 49, 33, 66, 34, 17, 86, 162, 178, + 162, 240, 176, 31, 12, 240, 181, 129, 49, 113, 65, 97, + 65, 97, 65, 97, 49, 116, 129, 49, 113, 49, 113, 49, + 113, 49, 113, 49, 33, 51, 50, 0, 7, 96, 25, 12, + 240, 213, 97, 50, 81, 81, 81, 81, 82, 179, 165, 177, + 193, 65, 97, 65, 97, 66, 65, 81, 20, 0, 8, 22, + 12, 240, 184, 65, 33, 49, 65, 33, 49, 113, 177, 177, + 177, 177, 177, 177, 177, 177, 164, 0, 8, 30, 12, 240, + 179, 51, 65, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 97, 49, + 131, 0, 8, 30, 12, 240, 179, 51, 65, 81, 82, 50, + 97, 49, 113, 49, 113, 49, 114, 18, 114, 18, 129, 17, + 145, 17, 145, 17, 147, 161, 0, 8, 16, 34, 12, 240, + 179, 51, 65, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 81, 33, 33, 81, 18, 33, 98, 18, 114, 18, 114, 18, + 114, 18, 113, 49, 0, 7, 112, 28, 12, 240, 180, 19, + 82, 34, 113, 34, 114, 17, 147, 146, 162, 163, 145, 17, + 130, 18, 113, 49, 98, 50, 67, 36, 0, 7, 80, 24, + 12, 240, 180, 20, 66, 50, 97, 49, 114, 18, 129, 17, + 145, 17, 147, 161, 177, 177, 177, 177, 163, 0, 8, 24, + 12, 240, 184, 65, 82, 65, 81, 161, 162, 161, 162, 161, + 161, 177, 65, 81, 81, 65, 97, 72, 0, 7, 96, 22, + 12, 240, 21, 113, 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 181, 240, 240, 144, 22, 12, 33, + 178, 177, 178, 177, 177, 178, 177, 178, 177, 178, 177, 177, + 178, 177, 178, 177, 240, 240, 128, 22, 12, 240, 21, 177, + 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, + 177, 117, 240, 240, 144, 11, 12, 240, 226, 130, 34, 97, + 65, 0, 22, 112, 8, 12, 0, 24, 40, 240, 240, 128, + 12, 12, 240, 50, 161, 161, 177, 178, 162, 0, 20, 16, + 21, 12, 0, 9, 52, 129, 49, 193, 117, 98, 49, 82, + 65, 82, 65, 82, 50, 104, 0, 7, 80, 27, 12, 240, + 179, 177, 177, 177, 181, 114, 49, 97, 81, 81, 81, 81, + 81, 81, 81, 81, 66, 82, 34, 97, 19, 0, 7, 112, + 19, 12, 0, 9, 85, 98, 49, 82, 161, 177, 177, 178, + 65, 98, 49, 116, 0, 7, 112, 26, 12, 240, 243, 177, + 177, 177, 117, 97, 50, 82, 65, 81, 81, 81, 81, 81, + 81, 81, 81, 97, 50, 119, 0, 7, 80, 21, 12, 0, + 9, 68, 114, 49, 82, 66, 66, 81, 72, 66, 162, 81, + 82, 50, 101, 0, 7, 112, 21, 12, 240, 240, 19, 129, + 33, 129, 177, 135, 129, 177, 177, 177, 177, 177, 177, 135, + 0, 7, 96, 29, 12, 0, 9, 71, 81, 34, 17, 65, + 65, 97, 65, 97, 65, 98, 33, 117, 113, 182, 82, 82, + 49, 113, 49, 113, 65, 81, 101, 48, 27, 12, 240, 163, + 177, 177, 177, 177, 19, 114, 49, 97, 65, 97, 65, 97, + 65, 97, 65, 97, 65, 97, 65, 74, 0, 7, 80, 19, + 12, 240, 225, 177, 240, 240, 52, 177, 177, 177, 177, 177, + 177, 177, 134, 0, 7, 112, 24, 12, 240, 240, 17, 177, + 240, 240, 37, 177, 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 97, 49, 116, 80, 27, 12, 240, 179, 177, 177, + 177, 177, 36, 81, 49, 113, 33, 129, 17, 148, 130, 17, + 129, 49, 113, 50, 69, 19, 0, 7, 80, 19, 12, 240, + 196, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, + 135, 0, 7, 96, 31, 12, 0, 9, 24, 82, 18, 33, + 65, 33, 49, 65, 33, 49, 65, 33, 49, 65, 33, 49, + 65, 33, 49, 65, 33, 49, 54, 19, 0, 7, 80, 23, + 12, 0, 9, 23, 114, 49, 97, 65, 97, 65, 97, 65, + 97, 65, 97, 65, 97, 65, 74, 0, 7, 80, 22, 12, + 0, 9, 68, 113, 65, 82, 81, 65, 97, 65, 97, 65, + 97, 66, 66, 81, 65, 116, 0, 8, 26, 12, 0, 9, + 39, 114, 49, 97, 81, 81, 81, 81, 81, 81, 81, 81, + 66, 82, 49, 101, 113, 177, 177, 177, 149, 80, 27, 12, + 0, 9, 67, 17, 97, 50, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 97, 50, 115, 17, 177, 177, 177, 177, + 149, 17, 12, 0, 9, 35, 20, 99, 33, 98, 161, 177, + 177, 177, 177, 150, 0, 8, 21, 12, 0, 9, 54, 81, + 81, 81, 81, 83, 181, 81, 82, 65, 97, 66, 66, 71, + 0, 7, 112, 21, 12, 240, 240, 177, 177, 177, 151, 113, + 177, 177, 177, 177, 177, 49, 113, 49, 131, 0, 7, 112, + 24, 12, 0, 9, 19, 35, 97, 65, 97, 65, 97, 65, + 97, 65, 97, 65, 97, 65, 97, 50, 119, 0, 7, 80, + 24, 12, 0, 9, 36, 20, 66, 50, 97, 49, 113, 49, + 113, 49, 129, 17, 145, 17, 145, 17, 161, 0, 8, 16, + 26, 12, 0, 9, 36, 20, 65, 81, 81, 81, 81, 81, + 81, 33, 33, 98, 18, 114, 18, 114, 18, 114, 18, 0, + 7, 112, 23, 12, 0, 9, 36, 20, 81, 49, 129, 17, + 147, 161, 161, 17, 145, 18, 113, 49, 84, 20, 0, 7, + 80, 27, 12, 0, 9, 35, 20, 81, 50, 97, 49, 113, + 49, 129, 33, 129, 17, 145, 17, 162, 161, 177, 177, 177, + 129, 17, 146, 128, 20, 12, 0, 9, 40, 65, 82, 65, + 66, 146, 146, 146, 146, 65, 66, 81, 72, 0, 7, 96, + 22, 12, 240, 67, 129, 177, 177, 177, 177, 177, 131, 193, + 177, 177, 177, 177, 177, 177, 195, 240, 240, 128, 22, 12, + 97, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 240, 240, 176, 21, 12, 243, 193, + 177, 177, 177, 177, 177, 195, 129, 177, 177, 177, 177, 177, + 177, 131, 240, 240, 192, 12, 12, 240, 211, 18, 82, 20, + 81, 50, 0, 22, 112, +}; + +//***************************************************************************** +// +// The font definition for the 22 point Cmtt font. +// +//***************************************************************************** +const tFont g_sFontCmtt22 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 9, + + // + // The height of the font. + // + 20, + + // + // The baseline of the font. + // + 15, + + // + // The offset to each character in the font. + // + { + 0, 4, 23, 41, 70, 106, 145, 179, + 191, 213, 235, 255, 272, 284, 292, 302, + 324, 353, 372, 395, 418, 443, 465, 492, + 512, 540, 568, 583, 600, 618, 628, 645, + 666, 702, 731, 760, 784, 813, 838, 861, + 888, 919, 938, 958, 989, 1010, 1051, 1090, + 1120, 1145, 1179, 1210, 1235, 1257, 1287, 1317, + 1351, 1379, 1403, 1427, 1449, 1471, 1493, 1504, + 1512, 1524, 1545, 1572, 1591, 1617, 1638, 1659, + 1688, 1715, 1734, 1758, 1785, 1804, 1835, 1858, + 1880, 1906, 1933, 1950, 1971, 1992, 2016, 2040, + 2066, 2089, 2116, 2136, 2158, 2180, 2201, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmtt22Data +}; diff --git a/grlib/fonts/fontcmtt24.c b/grlib/fonts/fontcmtt24.c new file mode 100644 index 0000000..92bee91 --- /dev/null +++ b/grlib/fonts/fontcmtt24.c @@ -0,0 +1,308 @@ +//***************************************************************************** +// +// fontcmtt24.c - Font definition for the 24pt Cmtt font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmtt +// Size: 24 point +// Bold: no +// Italic: no +// Memory usage: 2616 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 24 point Cmtt font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmtt24Data[2415] = +{ + 4, 12, 0, 33, 20, 12, 240, 240, 178, 162, 162, 162, + 162, 162, 162, 162, 162, 0, 5, 98, 162, 0, 8, 16, + 21, 12, 240, 240, 161, 33, 129, 33, 129, 33, 129, 33, + 129, 33, 129, 33, 129, 33, 0, 18, 64, 32, 12, 240, + 240, 177, 34, 113, 34, 113, 33, 129, 33, 89, 82, 33, + 114, 33, 113, 34, 113, 34, 89, 81, 34, 113, 33, 114, + 33, 114, 33, 0, 8, 39, 12, 97, 177, 163, 118, 82, + 33, 18, 65, 49, 33, 65, 49, 33, 66, 33, 132, 133, + 148, 145, 18, 129, 33, 65, 49, 33, 65, 49, 33, 66, + 33, 18, 86, 145, 177, 240, 240, 176, 43, 12, 241, 81, + 65, 17, 50, 65, 17, 49, 81, 17, 49, 81, 17, 34, + 97, 49, 177, 162, 161, 177, 162, 161, 177, 49, 98, 33, + 17, 81, 49, 17, 81, 49, 17, 66, 49, 17, 65, 81, + 240, 240, 128, 37, 12, 240, 240, 162, 145, 33, 129, 33, + 129, 33, 129, 22, 67, 34, 82, 49, 98, 49, 84, 17, + 97, 33, 17, 97, 35, 97, 49, 49, 49, 35, 33, 67, + 19, 0, 7, 96, 14, 12, 240, 240, 178, 163, 177, 177, + 162, 146, 146, 0, 18, 96, 24, 12, 129, 161, 161, 162, + 161, 177, 161, 177, 177, 177, 177, 177, 177, 193, 177, 178, + 177, 193, 193, 240, 240, 144, 24, 12, 65, 193, 193, 178, + 177, 177, 193, 177, 177, 177, 177, 177, 177, 161, 177, 162, + 161, 161, 161, 240, 240, 208, 23, 12, 0, 8, 17, 177, + 129, 33, 34, 68, 19, 100, 132, 100, 19, 65, 33, 34, + 113, 177, 0, 11, 32, 18, 12, 0, 6, 97, 177, 177, + 177, 177, 177, 121, 113, 177, 177, 177, 0, 11, 16, 12, + 12, 0, 21, 82, 163, 147, 162, 161, 161, 240, 240, 8, + 12, 0, 15, 40, 0, 16, 96, 9, 12, 0, 21, 83, + 147, 147, 0, 8, 24, 12, 145, 162, 161, 177, 162, 161, + 162, 162, 161, 162, 161, 162, 162, 161, 162, 161, 177, 162, + 161, 240, 240, 240, 33, 12, 240, 240, 179, 129, 34, 97, + 65, 97, 65, 81, 97, 65, 97, 65, 97, 65, 97, 65, + 97, 65, 97, 81, 65, 97, 65, 113, 33, 146, 0, 8, + 16, 21, 12, 240, 240, 193, 177, 162, 132, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 135, 0, 7, 96, 26, 12, + 240, 240, 164, 113, 50, 81, 82, 65, 97, 65, 97, 177, + 162, 161, 161, 161, 161, 161, 161, 81, 72, 0, 7, 96, + 25, 12, 240, 240, 164, 113, 66, 81, 81, 177, 177, 161, + 117, 178, 177, 177, 65, 97, 65, 97, 81, 65, 116, 0, + 8, 28, 12, 240, 240, 210, 147, 145, 17, 129, 33, 129, + 33, 113, 49, 98, 49, 97, 65, 81, 81, 89, 145, 177, + 177, 149, 0, 7, 80, 25, 12, 240, 240, 151, 81, 177, + 177, 177, 181, 114, 49, 97, 66, 177, 177, 65, 97, 65, + 97, 66, 65, 116, 0, 8, 30, 12, 240, 240, 195, 114, + 49, 81, 81, 81, 161, 177, 20, 98, 65, 81, 97, 65, + 97, 65, 97, 65, 97, 81, 81, 82, 49, 131, 0, 8, + 22, 12, 240, 240, 137, 49, 82, 161, 162, 161, 162, 161, + 177, 177, 161, 177, 177, 177, 177, 0, 8, 32, 31, 12, + 240, 240, 164, 113, 65, 81, 97, 65, 97, 65, 97, 81, + 65, 116, 113, 65, 81, 97, 65, 97, 65, 97, 65, 97, + 81, 65, 116, 0, 8, 31, 12, 240, 240, 164, 114, 49, + 82, 65, 82, 81, 66, 81, 66, 81, 66, 81, 82, 50, + 100, 17, 177, 161, 97, 65, 97, 49, 131, 0, 8, 16, + 14, 12, 0, 11, 19, 147, 147, 0, 7, 19, 147, 147, + 0, 8, 17, 12, 0, 11, 34, 147, 147, 0, 7, 19, + 147, 147, 177, 161, 161, 240, 240, 19, 12, 240, 240, 226, + 147, 130, 146, 131, 131, 147, 163, 178, 178, 179, 162, 0, + 10, 96, 10, 12, 0, 12, 41, 240, 201, 0, 15, 16, + 19, 12, 240, 240, 130, 163, 178, 178, 179, 163, 147, 131, + 130, 146, 131, 146, 0, 11, 64, 22, 12, 240, 240, 150, + 81, 82, 65, 97, 162, 145, 161, 161, 177, 177, 0, 5, + 98, 162, 0, 8, 32, 39, 12, 240, 240, 180, 114, 34, + 81, 81, 81, 52, 49, 49, 34, 49, 33, 65, 49, 33, + 65, 49, 33, 65, 49, 33, 65, 49, 49, 33, 81, 50, + 98, 66, 82, 50, 100, 0, 7, 112, 30, 12, 240, 240, + 178, 162, 163, 132, 129, 18, 129, 33, 129, 33, 114, 34, + 98, 34, 102, 97, 65, 97, 65, 82, 66, 52, 36, 0, + 7, 80, 31, 12, 240, 240, 135, 97, 66, 81, 81, 81, + 81, 81, 81, 81, 65, 101, 113, 65, 97, 81, 81, 81, + 81, 81, 81, 81, 81, 65, 86, 0, 8, 29, 12, 240, + 240, 182, 82, 35, 65, 82, 65, 97, 49, 113, 49, 177, + 177, 177, 177, 113, 65, 97, 65, 97, 82, 49, 116, 0, + 7, 112, 32, 12, 240, 240, 134, 113, 65, 97, 81, 81, + 81, 81, 97, 65, 97, 65, 97, 65, 97, 65, 97, 65, + 97, 65, 81, 81, 81, 81, 65, 86, 0, 8, 29, 12, + 240, 240, 136, 81, 81, 81, 81, 81, 177, 177, 49, 117, + 113, 49, 113, 49, 113, 177, 97, 65, 97, 65, 97, 57, + 0, 7, 80, 27, 12, 240, 240, 122, 65, 97, 65, 97, + 65, 97, 65, 177, 49, 113, 49, 117, 113, 49, 113, 177, + 177, 177, 149, 0, 8, 32, 31, 12, 240, 240, 181, 97, + 50, 81, 66, 81, 81, 65, 97, 65, 177, 177, 177, 68, + 49, 97, 81, 81, 81, 66, 97, 50, 115, 17, 0, 7, + 96, 34, 12, 240, 240, 132, 20, 65, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 87, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 68, 20, 0, 7, 80, 21, + 12, 240, 240, 151, 129, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 135, 0, 7, 96, 22, 12, 240, 240, + 181, 161, 177, 177, 177, 177, 177, 177, 177, 177, 177, 97, + 65, 97, 49, 132, 0, 8, 35, 12, 240, 240, 131, 51, + 65, 65, 97, 50, 97, 49, 113, 34, 113, 18, 129, 18, + 130, 18, 114, 33, 113, 50, 97, 65, 97, 65, 97, 81, + 67, 51, 0, 7, 80, 24, 12, 240, 240, 117, 145, 177, + 177, 177, 177, 177, 177, 177, 177, 177, 97, 65, 97, 65, + 97, 42, 0, 7, 80, 44, 12, 240, 240, 131, 51, 66, + 50, 82, 50, 82, 33, 17, 81, 17, 17, 17, 81, 17, + 17, 17, 81, 17, 17, 17, 81, 18, 33, 81, 33, 33, + 81, 81, 81, 81, 81, 81, 81, 81, 67, 51, 0, 7, + 80, 43, 12, 240, 240, 131, 51, 66, 65, 82, 65, 81, + 17, 49, 81, 17, 49, 81, 17, 49, 81, 33, 33, 81, + 33, 33, 81, 49, 17, 81, 49, 17, 81, 49, 17, 81, + 66, 81, 66, 67, 50, 0, 7, 96, 33, 12, 240, 240, + 150, 97, 66, 65, 97, 65, 97, 65, 97, 65, 97, 65, + 97, 65, 97, 65, 97, 65, 97, 65, 97, 65, 97, 66, + 66, 86, 0, 7, 112, 27, 12, 240, 240, 135, 97, 66, + 81, 97, 65, 97, 65, 97, 65, 97, 65, 81, 86, 97, + 177, 177, 177, 177, 164, 0, 8, 32, 37, 12, 240, 240, + 150, 97, 66, 65, 97, 65, 97, 65, 97, 65, 97, 65, + 97, 65, 97, 65, 97, 65, 97, 65, 97, 65, 49, 33, + 66, 34, 17, 86, 162, 178, 162, 240, 176, 34, 12, 240, + 240, 134, 113, 50, 97, 81, 81, 81, 81, 81, 81, 81, + 81, 65, 101, 113, 50, 97, 65, 97, 65, 97, 65, 97, + 65, 17, 51, 66, 0, 7, 80, 28, 12, 240, 240, 165, + 97, 50, 81, 81, 81, 81, 81, 193, 181, 163, 178, 65, + 97, 65, 97, 65, 97, 66, 65, 81, 20, 0, 8, 25, + 12, 240, 240, 137, 49, 49, 49, 49, 49, 49, 113, 177, + 177, 177, 177, 177, 177, 177, 177, 177, 149, 0, 7, 112, + 33, 12, 240, 240, 131, 36, 65, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 81, 81, 82, 65, 97, 49, 131, 0, 8, 31, 12, 240, + 240, 116, 36, 50, 66, 66, 65, 97, 65, 97, 65, 98, + 34, 98, 34, 113, 33, 129, 33, 130, 17, 132, 131, 162, + 162, 0, 8, 16, 39, 12, 240, 240, 115, 67, 49, 97, + 65, 97, 65, 97, 65, 97, 65, 97, 66, 18, 18, 66, + 18, 17, 97, 18, 17, 97, 18, 17, 98, 34, 98, 34, + 98, 34, 98, 34, 0, 7, 112, 30, 12, 240, 240, 132, + 19, 82, 49, 113, 34, 114, 17, 147, 146, 177, 162, 163, + 130, 17, 129, 34, 113, 49, 98, 50, 67, 36, 0, 7, + 80, 27, 12, 240, 240, 131, 36, 66, 50, 97, 49, 113, + 49, 114, 18, 129, 17, 145, 17, 161, 177, 177, 177, 177, + 177, 163, 0, 8, 26, 12, 240, 240, 137, 49, 98, 49, + 82, 161, 162, 161, 161, 162, 161, 161, 177, 81, 65, 97, + 50, 97, 57, 0, 7, 80, 24, 12, 240, 21, 113, 177, + 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 181, 240, 240, 144, 24, 12, 33, 178, 177, 177, + 178, 177, 178, 162, 177, 178, 177, 178, 162, 177, 178, 177, + 177, 178, 177, 240, 240, 128, 24, 12, 240, 21, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 117, 240, 240, 144, 11, 12, 240, 240, 178, 149, + 98, 50, 0, 24, 32, 8, 12, 0, 27, 40, 240, 240, + 128, 13, 12, 240, 50, 146, 161, 161, 177, 179, 147, 0, + 21, 80, 23, 12, 0, 10, 116, 129, 49, 113, 65, 177, + 132, 98, 49, 82, 65, 82, 65, 82, 50, 104, 0, 7, + 80, 31, 12, 240, 240, 115, 177, 177, 177, 177, 20, 98, + 50, 81, 82, 65, 97, 65, 97, 65, 97, 65, 97, 66, + 65, 83, 34, 81, 20, 0, 7, 112, 20, 12, 0, 11, + 21, 98, 49, 97, 161, 177, 177, 177, 193, 65, 98, 49, + 116, 0, 7, 112, 30, 12, 240, 240, 195, 177, 177, 177, + 117, 97, 50, 97, 65, 81, 81, 81, 81, 81, 81, 81, + 81, 82, 65, 97, 50, 115, 19, 0, 7, 80, 21, 12, + 0, 11, 4, 114, 49, 82, 66, 66, 81, 72, 66, 162, + 177, 81, 82, 50, 115, 0, 8, 22, 12, 240, 240, 211, + 129, 33, 129, 177, 135, 129, 177, 177, 177, 177, 177, 177, + 177, 135, 0, 7, 96, 30, 12, 0, 11, 7, 65, 50, + 17, 49, 81, 81, 81, 81, 81, 82, 49, 101, 113, 177, + 183, 66, 98, 33, 129, 33, 129, 50, 81, 86, 48, 30, + 12, 240, 240, 115, 177, 177, 177, 177, 19, 114, 49, 97, + 65, 97, 65, 97, 65, 97, 65, 97, 65, 97, 65, 97, + 65, 74, 0, 7, 80, 21, 12, 240, 240, 178, 162, 240, + 240, 21, 177, 177, 177, 177, 177, 177, 177, 177, 120, 0, + 7, 96, 25, 12, 240, 240, 210, 162, 240, 240, 21, 177, + 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 97, + 49, 116, 80, 30, 12, 240, 240, 115, 177, 177, 177, 177, + 37, 65, 50, 97, 34, 113, 18, 132, 130, 17, 129, 49, + 113, 50, 97, 65, 69, 20, 0, 7, 80, 21, 12, 240, + 240, 132, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 136, 0, 7, 96, 34, 12, 0, 10, 89, 66, + 34, 17, 65, 49, 33, 65, 49, 33, 65, 49, 33, 65, + 49, 33, 65, 49, 33, 65, 49, 33, 65, 49, 33, 51, + 22, 0, 7, 80, 26, 12, 0, 10, 83, 19, 114, 49, + 97, 65, 97, 65, 97, 65, 97, 65, 97, 65, 97, 65, + 97, 65, 74, 0, 7, 80, 24, 12, 0, 11, 4, 114, + 34, 97, 65, 81, 97, 65, 97, 65, 97, 65, 97, 81, + 65, 98, 34, 116, 0, 8, 30, 12, 0, 10, 83, 20, + 98, 50, 81, 82, 65, 97, 65, 97, 65, 97, 65, 97, + 66, 65, 82, 50, 81, 20, 97, 177, 177, 177, 149, 96, + 29, 12, 0, 10, 116, 17, 82, 50, 81, 66, 65, 97, + 65, 97, 65, 97, 65, 97, 81, 66, 82, 50, 100, 17, + 177, 177, 177, 177, 149, 18, 12, 0, 10, 99, 20, 99, + 33, 98, 161, 177, 177, 177, 177, 177, 150, 0, 8, 21, + 12, 0, 10, 118, 82, 65, 81, 81, 82, 181, 163, 81, + 97, 66, 81, 66, 66, 70, 0, 8, 24, 12, 240, 240, + 177, 177, 177, 177, 137, 97, 177, 177, 177, 177, 177, 65, + 97, 65, 97, 50, 116, 0, 7, 96, 26, 12, 0, 10, + 83, 35, 97, 65, 97, 65, 97, 65, 97, 65, 97, 65, + 97, 65, 97, 65, 97, 50, 119, 0, 7, 80, 24, 12, + 0, 10, 84, 36, 65, 65, 97, 65, 97, 65, 98, 34, + 113, 33, 129, 33, 132, 146, 162, 0, 8, 16, 29, 12, + 0, 10, 84, 36, 49, 97, 65, 97, 66, 66, 81, 65, + 97, 18, 17, 97, 18, 17, 97, 20, 98, 34, 98, 34, + 0, 7, 112, 23, 12, 0, 10, 84, 21, 66, 34, 113, + 33, 131, 162, 162, 148, 129, 33, 113, 65, 68, 36, 0, + 7, 80, 28, 12, 0, 10, 99, 36, 65, 65, 97, 65, + 97, 49, 129, 33, 129, 33, 129, 18, 146, 162, 162, 161, + 177, 177, 129, 17, 146, 128, 21, 12, 0, 10, 104, 65, + 82, 65, 66, 146, 146, 161, 161, 162, 65, 66, 81, 72, + 0, 7, 96, 24, 12, 240, 52, 113, 177, 177, 177, 177, + 177, 177, 162, 131, 193, 177, 177, 177, 177, 177, 177, 195, + 240, 240, 144, 24, 12, 97, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, + 240, 240, 176, 23, 12, 228, 178, 177, 177, 177, 177, 177, + 177, 178, 179, 129, 177, 177, 177, 177, 177, 177, 116, 240, + 240, 192, 13, 12, 240, 240, 163, 33, 84, 18, 81, 35, + 0, 24, 48, +}; + +//***************************************************************************** +// +// The font definition for the 24 point Cmtt font. +// +//***************************************************************************** +const tFont g_sFontCmtt24 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 9, + + // + // The height of the font. + // + 22, + + // + // The baseline of the font. + // + 17, + + // + // The offset to each character in the font. + // + { + 0, 4, 24, 45, 77, 116, 159, 196, + 210, 234, 258, 281, 299, 311, 319, 328, + 352, 385, 406, 432, 457, 485, 510, 540, + 562, 593, 624, 638, 655, 674, 684, 703, + 725, 764, 794, 825, 854, 886, 915, 942, + 973, 1007, 1028, 1050, 1085, 1109, 1153, 1196, + 1229, 1256, 1293, 1327, 1355, 1380, 1413, 1444, + 1483, 1513, 1540, 1566, 1590, 1614, 1638, 1649, + 1657, 1670, 1693, 1724, 1744, 1774, 1795, 1817, + 1847, 1877, 1898, 1923, 1953, 1974, 2008, 2034, + 2058, 2088, 2117, 2135, 2156, 2180, 2206, 2230, + 2259, 2282, 2310, 2331, 2355, 2379, 2402, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmtt24Data +}; diff --git a/grlib/fonts/fontcmtt26.c b/grlib/fonts/fontcmtt26.c new file mode 100644 index 0000000..4146c85 --- /dev/null +++ b/grlib/fonts/fontcmtt26.c @@ -0,0 +1,321 @@ +//***************************************************************************** +// +// fontcmtt26.c - Font definition for the 26pt Cmtt font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmtt +// Size: 26 point +// Bold: no +// Italic: no +// Memory usage: 2776 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 26 point Cmtt font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmtt26Data[2574] = +{ + 4, 14, 0, 42, 23, 14, 240, 240, 66, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 240, 178, 194, 194, + 0, 11, 32, 22, 14, 240, 240, 34, 34, 130, 34, 130, + 34, 130, 34, 130, 34, 130, 34, 130, 34, 130, 34, 0, + 25, 35, 14, 240, 240, 50, 33, 146, 33, 145, 49, 145, + 49, 106, 74, 98, 34, 130, 34, 130, 34, 130, 34, 106, + 74, 97, 49, 145, 49, 145, 34, 145, 34, 0, 11, 16, + 41, 14, 98, 194, 180, 136, 98, 18, 19, 66, 34, 34, + 66, 34, 34, 66, 34, 34, 67, 18, 149, 166, 165, 146, + 34, 66, 34, 34, 66, 34, 34, 67, 18, 19, 88, 132, + 178, 194, 0, 7, 96, 42, 14, 50, 81, 84, 50, 84, + 50, 84, 49, 100, 49, 100, 34, 114, 49, 209, 194, 193, + 209, 194, 193, 209, 35, 113, 37, 97, 34, 18, 97, 34, + 18, 81, 50, 18, 81, 53, 81, 67, 0, 7, 32, 40, + 14, 240, 240, 35, 180, 146, 18, 146, 18, 146, 18, 146, + 23, 68, 21, 82, 49, 130, 49, 115, 34, 98, 17, 33, + 114, 35, 114, 34, 50, 50, 35, 34, 68, 21, 67, 51, + 0, 10, 96, 15, 14, 240, 240, 66, 195, 179, 209, 209, + 193, 194, 178, 0, 25, 48, 25, 14, 145, 194, 178, 178, + 178, 194, 194, 178, 194, 194, 194, 194, 194, 210, 194, 194, + 210, 210, 195, 209, 0, 7, 64, 25, 14, 65, 211, 194, + 210, 210, 194, 210, 194, 194, 194, 194, 194, 194, 194, 178, + 194, 178, 178, 179, 177, 0, 8, 16, 25, 14, 0, 9, + 82, 194, 130, 34, 33, 83, 18, 18, 117, 163, 151, 99, + 21, 82, 34, 18, 146, 194, 0, 14, 80, 19, 14, 0, + 7, 98, 194, 194, 194, 194, 138, 74, 130, 194, 194, 194, + 194, 0, 14, 96, 14, 14, 0, 27, 2, 195, 179, 209, + 194, 178, 193, 240, 240, 80, 8, 14, 0, 16, 25, 89, + 0, 23, 10, 14, 0, 27, 3, 179, 179, 0, 11, 16, + 25, 14, 177, 194, 193, 194, 194, 193, 194, 193, 194, 194, + 178, 194, 193, 194, 193, 194, 194, 193, 194, 193, 0, 8, + 32, 35, 14, 240, 240, 52, 150, 115, 35, 98, 66, 98, + 67, 66, 98, 66, 98, 66, 98, 66, 98, 66, 98, 66, + 98, 82, 67, 82, 66, 99, 35, 118, 148, 0, 11, 16, + 24, 14, 240, 240, 81, 194, 179, 149, 146, 18, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 152, 104, 0, 10, 112, + 28, 14, 240, 240, 37, 136, 98, 51, 82, 83, 66, 98, + 81, 98, 194, 178, 194, 178, 178, 163, 162, 178, 82, 74, + 74, 0, 10, 96, 28, 14, 240, 240, 52, 150, 114, 51, + 98, 66, 194, 178, 148, 165, 210, 210, 194, 66, 98, 66, + 98, 67, 66, 104, 117, 0, 11, 16, 31, 14, 240, 240, + 83, 164, 161, 18, 146, 18, 145, 34, 130, 34, 130, 34, + 114, 50, 114, 50, 98, 66, 107, 59, 146, 194, 166, 134, + 0, 10, 96, 28, 14, 240, 240, 24, 104, 98, 194, 194, + 194, 194, 20, 120, 98, 66, 210, 194, 66, 98, 66, 98, + 67, 66, 104, 132, 0, 11, 16, 31, 14, 240, 240, 84, + 150, 114, 50, 98, 66, 98, 178, 194, 20, 120, 99, 51, + 82, 82, 82, 97, 82, 97, 98, 66, 98, 50, 134, 148, + 0, 11, 23, 14, 240, 250, 74, 66, 97, 193, 194, 193, + 194, 193, 194, 194, 193, 194, 194, 194, 194, 194, 0, 11, + 48, 33, 14, 240, 240, 52, 136, 83, 67, 66, 98, 66, + 98, 82, 66, 118, 134, 114, 66, 82, 98, 66, 98, 66, + 98, 66, 98, 82, 66, 104, 132, 0, 11, 16, 32, 14, + 240, 240, 52, 150, 114, 51, 82, 82, 81, 114, 65, 114, + 65, 114, 66, 98, 82, 67, 89, 115, 34, 178, 194, 82, + 66, 103, 133, 0, 11, 32, 15, 14, 0, 13, 3, 179, + 179, 0, 10, 19, 179, 179, 0, 11, 16, 19, 14, 0, + 13, 18, 179, 179, 0, 10, 19, 179, 179, 209, 194, 178, + 193, 240, 240, 80, 20, 14, 0, 8, 34, 179, 163, 147, + 163, 163, 162, 211, 195, 195, 211, 195, 194, 0, 12, 64, + 13, 14, 0, 12, 74, 74, 240, 240, 42, 74, 0, 19, + 64, 20, 14, 0, 7, 50, 195, 195, 211, 195, 195, 210, + 163, 163, 163, 147, 163, 178, 0, 13, 48, 26, 14, 240, + 240, 38, 120, 83, 67, 66, 98, 66, 98, 163, 163, 178, + 178, 194, 194, 194, 240, 178, 194, 194, 0, 11, 32, 41, + 14, 240, 240, 68, 150, 114, 50, 98, 34, 18, 82, 22, + 66, 34, 19, 66, 18, 50, 66, 18, 50, 66, 18, 50, + 66, 18, 50, 66, 19, 19, 82, 21, 98, 35, 130, 66, + 103, 148, 0, 11, 32, 14, 240, 240, 66, 194, 194, 180, + 164, 161, 33, 161, 33, 161, 33, 146, 34, 130, 34, 134, + 134, 129, 65, 114, 66, 84, 36, 68, 36, 0, 10, 96, + 31, 14, 240, 248, 105, 98, 67, 82, 82, 82, 82, 82, + 82, 82, 66, 103, 119, 114, 66, 98, 82, 82, 82, 82, + 82, 82, 67, 73, 88, 0, 11, 31, 14, 240, 240, 67, + 18, 104, 98, 51, 82, 82, 82, 82, 66, 98, 66, 194, + 194, 194, 194, 210, 82, 82, 82, 83, 50, 119, 147, 0, + 11, 16, 34, 14, 240, 247, 120, 114, 51, 98, 66, 98, + 67, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, + 82, 82, 67, 82, 66, 98, 51, 88, 103, 0, 11, 16, + 28, 14, 240, 251, 44, 66, 98, 66, 98, 66, 194, 194, + 50, 119, 119, 114, 50, 114, 194, 194, 98, 66, 98, 59, + 44, 0, 10, 80, 26, 14, 240, 251, 59, 82, 82, 82, + 82, 82, 194, 194, 50, 119, 119, 114, 50, 114, 194, 194, + 194, 166, 134, 0, 11, 32, 34, 14, 240, 240, 51, 18, + 119, 99, 35, 98, 66, 98, 66, 82, 82, 82, 194, 194, + 194, 68, 66, 68, 67, 66, 98, 66, 99, 35, 119, 131, + 18, 0, 10, 112, 36, 14, 240, 244, 36, 68, 36, 82, + 66, 98, 66, 98, 66, 98, 66, 98, 66, 104, 104, 98, + 66, 98, 66, 98, 66, 98, 66, 98, 66, 84, 36, 68, + 36, 0, 10, 96, 23, 14, 240, 240, 24, 104, 146, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 152, 104, + 0, 10, 112, 25, 14, 240, 240, 70, 134, 162, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 114, 50, 114, 50, 118, + 148, 0, 11, 32, 37, 14, 240, 244, 52, 52, 52, 66, + 66, 98, 65, 114, 50, 114, 34, 130, 18, 146, 18, 150, + 131, 33, 130, 50, 114, 65, 114, 66, 98, 81, 84, 52, + 52, 52, 0, 10, 80, 25, 14, 240, 246, 134, 162, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 82, 82, 82, 82, + 82, 59, 59, 0, 10, 80, 48, 14, 240, 228, 83, 36, + 68, 51, 67, 68, 51, 66, 17, 33, 18, 66, 17, 33, + 18, 66, 17, 33, 18, 66, 20, 18, 66, 34, 34, 66, + 34, 34, 66, 34, 34, 66, 98, 66, 98, 66, 98, 52, + 68, 36, 68, 0, 10, 80, 46, 14, 240, 243, 52, 68, + 36, 83, 50, 99, 50, 98, 17, 34, 98, 17, 34, 98, + 17, 34, 98, 17, 34, 98, 33, 18, 98, 33, 18, 98, + 33, 18, 98, 33, 18, 98, 51, 98, 51, 84, 35, 84, + 35, 0, 10, 112, 34, 14, 240, 240, 38, 120, 83, 67, + 66, 98, 66, 98, 66, 98, 66, 98, 66, 98, 66, 98, + 66, 98, 66, 98, 66, 98, 66, 98, 67, 67, 88, 118, + 0, 11, 29, 14, 240, 240, 24, 90, 98, 66, 98, 82, + 82, 82, 82, 82, 82, 82, 82, 66, 104, 103, 114, 194, + 194, 194, 180, 149, 0, 11, 48, 40, 14, 240, 240, 38, + 120, 83, 67, 66, 98, 66, 98, 66, 98, 66, 98, 66, + 98, 66, 98, 66, 98, 66, 98, 66, 98, 66, 49, 34, + 67, 34, 18, 88, 118, 194, 210, 195, 194, 240, 240, 34, + 14, 240, 247, 120, 114, 51, 98, 66, 98, 66, 98, 66, + 98, 50, 119, 119, 114, 51, 98, 66, 98, 66, 98, 66, + 98, 68, 52, 52, 52, 66, 0, 10, 96, 31, 14, 240, + 240, 36, 34, 89, 67, 52, 66, 83, 66, 83, 66, 97, + 99, 197, 181, 195, 194, 66, 98, 66, 98, 67, 66, 89, + 82, 21, 0, 11, 26, 14, 240, 250, 74, 66, 34, 34, + 66, 34, 34, 130, 194, 194, 194, 194, 194, 194, 194, 194, + 194, 180, 164, 0, 11, 16, 36, 14, 240, 244, 37, 37, + 37, 66, 66, 98, 66, 98, 66, 98, 66, 98, 66, 98, + 66, 98, 66, 98, 66, 98, 66, 98, 66, 98, 66, 114, + 34, 134, 148, 0, 11, 16, 36, 14, 240, 244, 52, 52, + 52, 66, 82, 97, 81, 113, 81, 114, 50, 114, 50, 129, + 49, 145, 49, 146, 18, 146, 18, 146, 18, 161, 17, 177, + 17, 179, 179, 0, 11, 16, 50, 14, 240, 243, 83, 51, + 83, 65, 113, 81, 113, 81, 113, 82, 97, 82, 33, 34, + 82, 19, 17, 113, 17, 17, 17, 113, 17, 17, 17, 113, + 17, 17, 17, 113, 17, 17, 17, 113, 17, 17, 17, 115, + 19, 114, 50, 114, 50, 0, 10, 112, 33, 14, 240, 244, + 20, 84, 20, 113, 50, 130, 33, 161, 18, 163, 194, 194, + 194, 179, 177, 18, 146, 33, 145, 50, 114, 65, 100, 36, + 68, 36, 0, 10, 96, 29, 14, 240, 228, 68, 36, 68, + 66, 66, 98, 66, 114, 34, 130, 34, 146, 17, 164, 178, + 194, 194, 194, 194, 194, 180, 164, 0, 11, 16, 27, 14, + 240, 250, 74, 66, 82, 82, 82, 178, 179, 178, 178, 194, + 178, 178, 194, 66, 82, 82, 81, 98, 74, 74, 0, 10, + 96, 25, 14, 70, 134, 130, 194, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 198, 134, 0, + 7, 64, 25, 14, 49, 210, 209, 210, 194, 210, 194, 209, + 210, 194, 210, 194, 209, 210, 194, 210, 194, 209, 210, 209, + 0, 7, 32, 25, 14, 70, 134, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 134, + 134, 0, 7, 64, 13, 14, 240, 240, 82, 180, 131, 34, + 114, 65, 0, 31, 112, 9, 14, 0, 31, 121, 89, 0, + 7, 32, 13, 14, 240, 98, 178, 194, 178, 194, 195, 179, + 194, 0, 27, 23, 14, 0, 12, 101, 135, 114, 51, 194, + 134, 104, 83, 66, 82, 82, 83, 66, 106, 84, 35, 0, + 10, 80, 31, 14, 240, 244, 164, 194, 194, 194, 194, 19, + 136, 99, 50, 98, 67, 82, 82, 82, 82, 82, 82, 82, + 82, 83, 50, 100, 19, 98, 19, 0, 11, 21, 14, 0, + 13, 4, 135, 114, 50, 99, 178, 194, 194, 195, 65, 114, + 50, 118, 163, 0, 11, 16, 32, 14, 240, 240, 84, 164, + 194, 194, 194, 131, 18, 119, 98, 51, 83, 66, 82, 82, + 82, 82, 82, 82, 83, 66, 98, 51, 106, 99, 20, 0, + 10, 80, 21, 14, 0, 12, 117, 135, 98, 66, 82, 98, + 74, 74, 66, 195, 97, 83, 66, 103, 133, 0, 11, 24, + 14, 240, 240, 99, 165, 130, 34, 130, 194, 152, 104, 146, + 194, 194, 194, 194, 194, 194, 152, 104, 0, 10, 112, 32, + 14, 0, 12, 99, 35, 90, 51, 34, 114, 66, 98, 66, + 114, 35, 103, 114, 19, 130, 216, 90, 51, 99, 34, 130, + 34, 130, 35, 84, 58, 102, 64, 30, 14, 240, 228, 164, + 194, 194, 194, 194, 20, 120, 99, 50, 98, 66, 98, 66, + 98, 66, 98, 66, 98, 66, 98, 66, 76, 44, 0, 10, + 80, 23, 14, 240, 240, 66, 194, 194, 240, 240, 117, 149, + 194, 194, 194, 194, 194, 194, 194, 152, 104, 0, 10, 112, + 28, 14, 240, 240, 114, 194, 194, 240, 240, 102, 134, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 98, + 51, 103, 133, 80, 32, 14, 240, 228, 164, 194, 194, 194, + 194, 37, 82, 37, 82, 50, 114, 34, 130, 18, 149, 147, + 33, 130, 50, 114, 66, 70, 21, 38, 21, 0, 10, 80, + 22, 14, 240, 246, 134, 194, 194, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 138, 74, 0, 10, 96, 33, 14, + 0, 12, 54, 19, 75, 67, 19, 18, 66, 34, 34, 66, + 34, 34, 66, 34, 34, 66, 34, 34, 66, 34, 34, 66, + 34, 34, 60, 44, 0, 10, 80, 26, 14, 0, 12, 52, + 20, 90, 99, 50, 98, 66, 98, 66, 98, 66, 98, 66, + 98, 66, 98, 66, 76, 44, 0, 10, 80, 25, 14, 0, + 12, 116, 150, 114, 66, 83, 67, 66, 98, 66, 98, 66, + 98, 67, 67, 83, 50, 118, 148, 0, 11, 16, 31, 14, + 0, 12, 68, 19, 106, 99, 50, 98, 82, 82, 82, 82, + 82, 82, 82, 82, 82, 83, 50, 103, 114, 19, 130, 194, + 194, 194, 166, 134, 96, 30, 14, 0, 12, 115, 18, 119, + 98, 51, 83, 66, 82, 82, 82, 82, 82, 82, 83, 66, + 98, 51, 104, 131, 18, 194, 194, 194, 194, 166, 134, 20, + 14, 0, 12, 69, 35, 69, 21, 100, 34, 99, 178, 194, + 194, 194, 194, 152, 104, 0, 11, 22, 14, 0, 12, 118, + 119, 98, 66, 98, 66, 101, 182, 195, 82, 82, 83, 51, + 88, 98, 20, 0, 11, 22, 14, 0, 7, 82, 194, 194, + 153, 89, 130, 194, 194, 194, 194, 194, 50, 114, 50, 118, + 148, 0, 11, 28, 14, 0, 12, 52, 36, 68, 36, 98, + 66, 98, 66, 98, 66, 98, 66, 98, 66, 98, 66, 98, + 51, 106, 84, 20, 0, 10, 80, 28, 14, 0, 12, 69, + 36, 52, 52, 81, 81, 113, 81, 114, 50, 129, 49, 145, + 49, 146, 18, 161, 17, 177, 17, 179, 0, 11, 16, 34, + 14, 0, 12, 68, 52, 52, 52, 66, 82, 82, 82, 97, + 33, 33, 113, 19, 17, 113, 19, 17, 113, 17, 17, 17, + 115, 17, 17, 115, 19, 130, 33, 0, 11, 26, 14, 0, + 12, 68, 36, 68, 36, 98, 34, 145, 18, 178, 194, 194, + 177, 33, 145, 50, 100, 36, 68, 36, 0, 10, 96, 31, + 14, 0, 12, 68, 36, 68, 36, 82, 66, 113, 65, 130, + 49, 145, 34, 145, 33, 162, 17, 179, 178, 194, 194, 194, + 193, 146, 18, 148, 178, 144, 21, 14, 0, 12, 74, 74, + 66, 82, 178, 178, 178, 178, 178, 66, 82, 82, 74, 74, + 0, 10, 96, 25, 14, 132, 149, 130, 194, 194, 194, 194, + 194, 179, 133, 149, 195, 194, 194, 194, 194, 194, 194, 198, + 164, 0, 7, 32, 25, 14, 98, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 194, 194, 0, 7, 96, 24, 14, 36, 166, 194, 194, 194, + 194, 194, 194, 195, 197, 149, 131, 178, 194, 194, 194, 194, + 194, 134, 132, 0, 8, 13, 14, 240, 240, 50, 49, 116, + 18, 98, 34, 0, 33, 112, +}; + +//***************************************************************************** +// +// The font definition for the 26 point Cmtt font. +// +//***************************************************************************** +const tFont g_sFontCmtt26 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 11, + + // + // The height of the font. + // + 24, + + // + // The baseline of the font. + // + 18, + + // + // The offset to each character in the font. + // + { + 0, 4, 27, 49, 84, 125, 167, 207, + 222, 247, 272, 297, 316, 330, 338, 348, + 373, 408, 432, 460, 488, 519, 547, 578, + 601, 634, 666, 681, 700, 720, 733, 753, + 779, 820, 852, 883, 914, 948, 976, 1002, + 1036, 1072, 1095, 1120, 1157, 1182, 1230, 1276, + 1310, 1339, 1379, 1413, 1444, 1470, 1506, 1542, + 1592, 1625, 1654, 1681, 1706, 1731, 1756, 1769, + 1778, 1791, 1814, 1845, 1866, 1898, 1919, 1943, + 1975, 2005, 2028, 2056, 2088, 2110, 2143, 2169, + 2194, 2225, 2255, 2275, 2297, 2319, 2347, 2375, + 2409, 2435, 2466, 2487, 2512, 2537, 2561, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmtt26Data +}; diff --git a/grlib/fonts/fontcmtt28.c b/grlib/fonts/fontcmtt28.c new file mode 100644 index 0000000..a79ed14 --- /dev/null +++ b/grlib/fonts/fontcmtt28.c @@ -0,0 +1,336 @@ +//***************************************************************************** +// +// fontcmtt28.c - Font definition for the 28pt Cmtt font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmtt +// Size: 28 point +// Bold: no +// Italic: no +// Memory usage: 2960 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 28 point Cmtt font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmtt28Data[2757] = +{ + 5, 15, 0, 48, 96, 23, 15, 0, 6, 66, 210, 210, + 210, 210, 210, 210, 210, 210, 210, 210, 210, 240, 240, 210, + 210, 210, 0, 12, 23, 15, 0, 6, 34, 34, 146, 34, + 146, 34, 146, 34, 146, 34, 146, 34, 146, 34, 146, 34, + 0, 28, 80, 37, 15, 0, 6, 49, 49, 146, 49, 146, + 34, 146, 34, 146, 34, 107, 75, 113, 50, 145, 50, 130, + 49, 146, 49, 123, 75, 98, 34, 146, 34, 145, 50, 145, + 50, 0, 11, 112, 46, 15, 98, 210, 210, 183, 121, 98, + 18, 35, 66, 34, 50, 66, 34, 50, 66, 34, 50, 67, + 18, 165, 183, 166, 146, 35, 66, 34, 50, 66, 34, 50, + 66, 34, 50, 67, 18, 34, 105, 118, 178, 210, 210, 0, + 6, 64, 49, 15, 51, 65, 116, 49, 98, 18, 34, 98, + 18, 33, 114, 18, 33, 114, 18, 18, 131, 34, 131, 33, + 210, 210, 209, 225, 210, 210, 209, 210, 35, 130, 21, 113, + 34, 18, 113, 34, 18, 98, 34, 18, 97, 53, 97, 67, + 0, 7, 112, 42, 15, 0, 6, 35, 181, 146, 34, 146, + 34, 146, 34, 146, 38, 82, 18, 20, 99, 49, 130, 49, + 131, 49, 132, 33, 114, 36, 114, 35, 130, 50, 34, 66, + 36, 18, 85, 20, 83, 51, 0, 11, 80, 16, 15, 0, + 6, 66, 211, 195, 225, 225, 225, 209, 210, 194, 0, 27, + 16, 26, 15, 146, 194, 194, 194, 210, 194, 210, 194, 210, + 210, 210, 210, 210, 210, 211, 210, 210, 226, 210, 226, 226, + 226, 0, 8, 27, 15, 66, 226, 226, 226, 210, 226, 210, + 226, 210, 210, 210, 210, 210, 210, 210, 194, 210, 194, 210, + 194, 194, 194, 0, 8, 80, 26, 15, 0, 12, 18, 210, + 146, 34, 33, 99, 18, 18, 119, 149, 165, 151, 115, 21, + 98, 34, 18, 162, 210, 0, 15, 96, 20, 15, 0, 10, + 34, 210, 210, 210, 210, 210, 154, 90, 146, 210, 210, 210, + 210, 0, 15, 96, 14, 15, 0, 32, 83, 196, 180, 210, + 210, 179, 194, 240, 240, 112, 9, 15, 0, 21, 10, 90, + 0, 24, 80, 9, 15, 0, 32, 83, 195, 195, 0, 12, + 28, 15, 178, 210, 210, 194, 210, 194, 210, 210, 194, 210, + 194, 210, 210, 194, 210, 194, 210, 210, 194, 210, 194, 210, + 210, 0, 6, 112, 36, 15, 0, 6, 51, 167, 130, 50, + 114, 82, 98, 82, 82, 114, 66, 114, 66, 114, 66, 114, + 66, 114, 66, 114, 67, 98, 82, 82, 98, 82, 114, 50, + 135, 163, 0, 12, 25, 15, 0, 6, 81, 210, 195, 165, + 162, 18, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, + 168, 120, 0, 11, 80, 29, 15, 0, 6, 37, 136, 114, + 67, 82, 99, 66, 114, 66, 114, 210, 210, 194, 194, 194, + 194, 194, 178, 194, 98, 75, 75, 0, 11, 64, 29, 15, + 0, 6, 37, 151, 114, 67, 98, 82, 210, 210, 194, 149, + 166, 211, 211, 210, 66, 114, 66, 114, 67, 67, 104, 149, + 0, 11, 112, 32, 15, 0, 6, 83, 180, 177, 18, 162, + 18, 146, 34, 146, 34, 130, 50, 129, 66, 114, 66, 98, + 82, 108, 60, 162, 210, 210, 182, 150, 0, 11, 64, 30, + 15, 0, 6, 9, 105, 98, 210, 210, 210, 210, 20, 136, + 115, 51, 98, 83, 210, 210, 66, 114, 66, 114, 67, 67, + 104, 149, 0, 11, 112, 34, 15, 0, 6, 84, 151, 115, + 50, 99, 66, 98, 209, 210, 36, 121, 99, 66, 98, 98, + 82, 113, 82, 113, 82, 113, 98, 82, 99, 50, 135, 148, + 0, 11, 112, 25, 15, 0, 5, 123, 75, 66, 98, 194, + 194, 210, 194, 210, 194, 210, 210, 209, 210, 210, 210, 210, + 210, 0, 12, 32, 35, 15, 0, 6, 52, 152, 114, 67, + 82, 98, 82, 98, 82, 98, 98, 66, 134, 150, 130, 66, + 98, 98, 82, 98, 82, 98, 82, 98, 98, 66, 120, 148, + 0, 11, 112, 33, 15, 0, 6, 52, 166, 131, 50, 99, + 66, 98, 98, 82, 98, 82, 98, 83, 82, 99, 51, 120, + 132, 18, 210, 194, 114, 66, 114, 50, 134, 164, 0, 12, + 14, 15, 0, 15, 99, 195, 195, 0, 12, 99, 195, 195, + 0, 12, 19, 15, 0, 15, 114, 195, 195, 0, 12, 99, + 195, 195, 225, 210, 194, 209, 240, 240, 128, 22, 15, 0, + 8, 114, 195, 179, 164, 163, 179, 179, 178, 227, 211, 211, + 212, 211, 211, 210, 0, 13, 48, 13, 15, 0, 15, 43, + 75, 0, 6, 27, 75, 0, 20, 112, 22, 15, 0, 7, + 114, 211, 211, 212, 211, 211, 211, 226, 179, 179, 179, 164, + 163, 179, 194, 0, 14, 48, 26, 15, 0, 6, 38, 136, + 99, 67, 82, 98, 82, 98, 179, 179, 194, 194, 210, 210, + 210, 240, 240, 210, 210, 210, 0, 12, 45, 15, 0, 6, + 68, 151, 115, 50, 99, 34, 17, 98, 38, 67, 34, 19, + 66, 34, 50, 66, 34, 50, 66, 34, 50, 66, 34, 50, + 66, 34, 50, 67, 34, 18, 98, 37, 99, 35, 131, 66, + 119, 164, 0, 11, 96, 37, 15, 0, 6, 51, 195, 193, + 17, 193, 17, 193, 17, 178, 18, 162, 18, 161, 49, 161, + 49, 161, 50, 135, 135, 130, 50, 129, 81, 129, 82, 84, + 52, 68, 52, 0, 11, 64, 35, 15, 0, 5, 121, 106, + 114, 67, 98, 82, 98, 82, 98, 82, 98, 66, 119, 136, + 114, 82, 98, 98, 82, 98, 82, 98, 82, 98, 82, 82, + 75, 74, 0, 11, 80, 33, 15, 0, 6, 52, 18, 120, + 99, 51, 83, 67, 82, 98, 67, 98, 66, 210, 210, 210, + 210, 211, 98, 82, 98, 83, 82, 99, 50, 135, 148, 0, + 11, 112, 36, 15, 0, 5, 120, 121, 114, 66, 114, 82, + 98, 82, 98, 98, 82, 98, 82, 98, 82, 98, 82, 98, + 82, 98, 82, 98, 82, 82, 98, 82, 98, 67, 89, 103, + 0, 12, 31, 15, 0, 5, 124, 60, 82, 98, 82, 98, + 82, 210, 210, 50, 135, 135, 130, 50, 130, 210, 210, 98, + 82, 98, 82, 98, 60, 60, 0, 11, 48, 28, 15, 0, + 5, 124, 60, 82, 98, 82, 98, 82, 210, 210, 50, 135, + 135, 130, 50, 130, 210, 210, 210, 210, 182, 150, 0, 12, + 16, 36, 15, 0, 6, 51, 18, 120, 114, 51, 98, 82, + 98, 82, 82, 98, 82, 210, 210, 210, 69, 66, 69, 66, + 98, 98, 82, 98, 67, 114, 51, 120, 147, 18, 0, 11, + 80, 39, 15, 0, 5, 116, 53, 52, 53, 66, 82, 98, + 82, 98, 82, 98, 82, 98, 82, 105, 105, 98, 82, 98, + 82, 98, 82, 98, 82, 98, 82, 98, 82, 84, 53, 52, + 52, 0, 11, 64, 24, 15, 0, 6, 25, 90, 146, 210, + 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 169, + 105, 0, 11, 64, 25, 15, 0, 6, 55, 135, 178, 210, + 210, 210, 210, 210, 210, 210, 210, 210, 210, 114, 66, 114, + 51, 119, 164, 0, 12, 40, 15, 0, 5, 116, 52, 68, + 52, 82, 81, 114, 66, 114, 50, 130, 49, 146, 34, 146, + 18, 166, 147, 33, 147, 34, 130, 65, 130, 66, 114, 81, + 114, 82, 84, 67, 68, 67, 0, 11, 64, 27, 15, 0, + 5, 118, 150, 178, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 82, 98, 82, 98, 82, 75, 75, 0, 11, 64, + 52, 15, 0, 5, 116, 67, 68, 67, 83, 51, 99, 51, + 98, 17, 35, 98, 17, 17, 18, 98, 17, 17, 18, 98, + 17, 17, 18, 98, 17, 17, 18, 98, 33, 34, 98, 33, + 34, 98, 82, 98, 82, 98, 82, 98, 82, 84, 52, 68, + 52, 0, 11, 64, 50, 15, 0, 5, 116, 53, 52, 53, + 67, 66, 100, 50, 98, 17, 50, 98, 17, 50, 98, 17, + 50, 98, 33, 34, 98, 33, 34, 98, 33, 34, 98, 34, + 18, 98, 49, 18, 98, 49, 18, 98, 52, 98, 67, 84, + 51, 84, 51, 0, 11, 80, 37, 15, 0, 6, 23, 121, + 83, 83, 66, 114, 66, 114, 66, 114, 66, 114, 66, 114, + 66, 114, 66, 114, 66, 114, 66, 114, 66, 114, 66, 114, + 67, 83, 89, 119, 0, 11, 96, 30, 15, 0, 5, 121, + 107, 98, 67, 98, 98, 82, 98, 82, 98, 82, 98, 82, + 82, 105, 103, 130, 210, 210, 210, 210, 182, 150, 0, 12, + 16, 43, 15, 0, 6, 23, 121, 83, 83, 66, 114, 66, + 114, 66, 114, 66, 114, 66, 114, 66, 114, 66, 114, 66, + 114, 66, 114, 66, 50, 34, 66, 50, 34, 67, 53, 89, + 119, 210, 226, 211, 210, 240, 240, 32, 39, 15, 0, 5, + 119, 137, 114, 67, 98, 82, 98, 82, 98, 82, 98, 66, + 119, 135, 130, 51, 114, 66, 114, 66, 114, 66, 114, 66, + 18, 66, 66, 18, 52, 53, 52, 67, 0, 11, 64, 34, + 15, 0, 6, 36, 34, 90, 82, 68, 66, 99, 66, 99, + 66, 99, 67, 214, 182, 211, 211, 66, 114, 66, 114, 66, + 114, 68, 66, 90, 82, 36, 0, 11, 112, 28, 15, 0, + 5, 123, 75, 66, 34, 50, 66, 34, 50, 130, 210, 210, + 210, 210, 210, 210, 210, 210, 210, 210, 197, 165, 0, 11, + 112, 38, 15, 0, 5, 101, 53, 37, 53, 66, 82, 98, + 82, 98, 82, 98, 82, 98, 82, 98, 82, 98, 82, 98, + 82, 98, 82, 98, 82, 98, 82, 99, 51, 114, 50, 150, + 163, 0, 12, 35, 15, 0, 5, 116, 68, 52, 68, 81, + 97, 114, 81, 114, 66, 114, 66, 114, 66, 129, 65, 146, + 34, 146, 34, 146, 34, 161, 33, 180, 180, 180, 194, 210, + 0, 12, 47, 15, 0, 5, 116, 68, 52, 68, 65, 129, + 81, 129, 82, 98, 82, 98, 82, 98, 97, 34, 33, 113, + 34, 33, 113, 34, 33, 113, 20, 17, 113, 20, 17, 115, + 33, 17, 115, 35, 115, 35, 130, 34, 146, 49, 0, 11, + 96, 36, 15, 0, 5, 116, 36, 84, 36, 114, 50, 130, + 34, 162, 18, 164, 195, 194, 210, 211, 178, 17, 178, 18, + 146, 34, 146, 50, 114, 66, 100, 52, 68, 52, 0, 11, + 64, 31, 15, 0, 5, 116, 68, 52, 68, 82, 66, 114, + 66, 130, 49, 146, 34, 146, 34, 164, 180, 194, 210, 210, + 210, 210, 210, 197, 164, 0, 11, 112, 29, 15, 0, 5, + 123, 75, 66, 98, 82, 83, 194, 194, 210, 194, 194, 210, + 194, 195, 194, 82, 82, 98, 82, 98, 75, 75, 0, 11, + 64, 26, 15, 71, 135, 130, 210, 210, 210, 210, 210, 210, + 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 215, + 135, 0, 8, 28, 15, 50, 210, 210, 226, 210, 226, 210, + 210, 226, 210, 226, 210, 210, 226, 210, 226, 210, 210, 226, + 210, 226, 210, 210, 0, 5, 112, 26, 15, 71, 135, 210, + 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 210, 210, 210, 135, 135, 0, 8, 12, 15, 0, + 6, 66, 197, 132, 19, 129, 66, 0, 36, 9, 15, 0, + 39, 106, 90, 0, 5, 112, 15, 15, 240, 130, 195, 194, + 194, 210, 210, 211, 195, 210, 0, 30, 96, 25, 15, 0, + 15, 69, 151, 130, 51, 210, 150, 120, 100, 50, 98, 82, + 98, 82, 99, 51, 122, 100, 35, 0, 11, 64, 34, 15, + 0, 5, 116, 180, 210, 210, 210, 210, 20, 136, 115, 51, + 98, 83, 82, 98, 82, 98, 82, 98, 82, 98, 82, 98, + 83, 66, 104, 114, 20, 0, 11, 96, 22, 15, 0, 15, + 101, 151, 115, 50, 114, 194, 210, 210, 210, 211, 81, 115, + 50, 134, 164, 0, 11, 112, 34, 15, 0, 6, 84, 180, + 210, 210, 210, 132, 18, 120, 99, 51, 98, 82, 82, 98, + 82, 98, 82, 98, 82, 98, 83, 67, 99, 51, 122, 100, + 20, 0, 11, 48, 24, 15, 0, 15, 100, 167, 114, 66, + 113, 98, 82, 98, 90, 90, 82, 211, 97, 99, 66, 119, + 149, 0, 11, 96, 25, 15, 0, 6, 83, 181, 146, 34, + 146, 210, 168, 120, 162, 210, 210, 210, 210, 210, 210, 210, + 168, 120, 0, 11, 96, 35, 15, 0, 15, 83, 34, 121, + 83, 34, 18, 82, 66, 114, 66, 114, 66, 130, 35, 119, + 130, 19, 146, 231, 121, 83, 83, 66, 114, 66, 114, 67, + 83, 89, 133, 80, 35, 15, 0, 5, 100, 180, 210, 210, + 210, 210, 35, 136, 116, 50, 99, 66, 98, 82, 98, 82, + 98, 82, 98, 82, 98, 82, 98, 82, 70, 22, 38, 22, + 0, 11, 48, 24, 15, 0, 6, 66, 210, 210, 240, 240, + 165, 165, 210, 210, 210, 210, 210, 210, 210, 210, 168, 120, + 0, 11, 80, 29, 15, 0, 6, 114, 210, 210, 240, 240, + 150, 150, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 210, 114, 50, 135, 149, 80, 35, 15, 0, 5, + 116, 180, 210, 210, 210, 210, 38, 82, 38, 82, 50, 130, + 34, 146, 18, 165, 163, 18, 146, 50, 130, 65, 130, 66, + 86, 36, 54, 36, 0, 11, 48, 24, 15, 0, 6, 6, + 150, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 154, 90, 0, 11, 64, 38, 15, 0, 15, 22, + 35, 76, 67, 19, 34, 66, 34, 50, 66, 34, 50, 66, + 34, 50, 66, 34, 50, 66, 34, 50, 66, 34, 50, 66, + 34, 50, 56, 20, 40, 20, 0, 11, 48, 30, 15, 0, + 15, 20, 21, 90, 116, 50, 99, 66, 98, 82, 98, 82, + 98, 82, 98, 82, 98, 82, 98, 82, 70, 22, 38, 22, + 0, 11, 48, 27, 15, 0, 15, 100, 166, 131, 35, 114, + 67, 82, 98, 82, 98, 82, 98, 82, 98, 83, 67, 99, + 35, 134, 164, 0, 11, 112, 33, 15, 0, 15, 36, 20, + 106, 115, 51, 98, 83, 82, 98, 82, 98, 82, 98, 82, + 98, 83, 67, 83, 51, 104, 114, 20, 130, 210, 210, 210, + 182, 150, 112, 32, 15, 0, 15, 84, 18, 120, 99, 51, + 98, 67, 82, 98, 82, 98, 82, 98, 82, 98, 83, 67, + 99, 51, 120, 132, 18, 210, 210, 210, 210, 182, 150, 22, + 15, 0, 15, 37, 35, 85, 21, 116, 34, 115, 194, 210, + 210, 210, 210, 210, 168, 120, 0, 11, 112, 25, 15, 0, + 15, 87, 120, 99, 66, 98, 82, 99, 215, 196, 98, 98, + 82, 98, 83, 67, 89, 98, 21, 0, 11, 96, 26, 15, + 0, 8, 34, 210, 210, 210, 169, 105, 146, 210, 210, 210, + 210, 210, 50, 130, 50, 130, 50, 149, 164, 0, 11, 96, + 30, 15, 0, 15, 20, 52, 68, 52, 98, 82, 98, 82, + 98, 82, 98, 82, 98, 82, 98, 82, 98, 82, 98, 67, + 107, 85, 20, 0, 11, 48, 29, 15, 0, 15, 37, 36, + 68, 52, 97, 81, 129, 81, 130, 50, 145, 49, 161, 49, + 162, 18, 177, 17, 193, 17, 193, 17, 195, 0, 12, 33, + 15, 0, 15, 37, 37, 53, 37, 66, 98, 82, 98, 97, + 97, 113, 34, 33, 113, 34, 33, 114, 19, 17, 120, 116, + 19, 130, 34, 146, 34, 0, 11, 96, 29, 15, 0, 15, + 37, 21, 69, 21, 98, 50, 146, 18, 177, 17, 209, 211, + 193, 17, 177, 49, 146, 50, 101, 21, 69, 21, 0, 11, + 64, 34, 15, 0, 15, 36, 37, 68, 37, 82, 81, 129, + 66, 130, 49, 161, 49, 161, 34, 162, 18, 177, 17, 193, + 17, 195, 209, 225, 210, 209, 162, 18, 164, 194, 160, 23, + 15, 0, 15, 43, 75, 66, 98, 82, 82, 194, 194, 194, + 194, 194, 82, 82, 98, 75, 75, 0, 11, 64, 27, 15, + 148, 165, 147, 194, 210, 210, 210, 210, 210, 195, 149, 165, + 211, 210, 210, 210, 210, 210, 210, 211, 213, 180, 0, 7, + 96, 28, 15, 114, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 0, 6, 48, 27, 15, 52, 182, 195, 210, 210, + 210, 210, 210, 210, 211, 213, 165, 147, 194, 210, 210, 210, + 210, 210, 195, 149, 164, 0, 8, 64, 13, 15, 0, 6, + 50, 49, 132, 18, 114, 34, 0, 38, 16, +}; + +//***************************************************************************** +// +// The font definition for the 28 point Cmtt font. +// +//***************************************************************************** +const tFont g_sFontCmtt28 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 12, + + // + // The height of the font. + // + 26, + + // + // The baseline of the font. + // + 20, + + // + // The offset to each character in the font. + // + { + 0, 5, 28, 51, 88, 134, 183, 225, + 241, 267, 294, 320, 340, 354, 363, 372, + 400, 436, 461, 490, 519, 551, 581, 615, + 640, 675, 708, 722, 741, 763, 776, 798, + 824, 869, 906, 941, 974, 1010, 1041, 1069, + 1105, 1144, 1168, 1193, 1233, 1260, 1312, 1362, + 1399, 1429, 1472, 1511, 1545, 1573, 1611, 1646, + 1693, 1729, 1760, 1789, 1815, 1843, 1869, 1881, + 1890, 1905, 1930, 1964, 1986, 2020, 2044, 2069, + 2104, 2139, 2163, 2192, 2227, 2251, 2289, 2319, + 2346, 2379, 2411, 2433, 2458, 2484, 2514, 2543, + 2576, 2605, 2639, 2662, 2689, 2717, 2744, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmtt28Data +}; diff --git a/grlib/fonts/fontcmtt30.c b/grlib/fonts/fontcmtt30.c new file mode 100644 index 0000000..7cbe29b --- /dev/null +++ b/grlib/fonts/fontcmtt30.c @@ -0,0 +1,351 @@ +//***************************************************************************** +// +// fontcmtt30.c - Font definition for the 30pt Cmtt font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmtt +// Size: 30 point +// Bold: no +// Italic: no +// Memory usage: 3152 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 30 point Cmtt font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmtt30Data[2952] = +{ + 5, 17, 0, 59, 64, 25, 17, 0, 7, 35, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 0, 6, + 3, 227, 227, 0, 15, 96, 25, 17, 0, 7, 3, 35, + 147, 35, 147, 35, 147, 35, 147, 35, 147, 35, 147, 35, + 147, 35, 147, 35, 0, 34, 64, 39, 17, 0, 7, 33, + 50, 178, 34, 177, 50, 162, 50, 162, 50, 124, 92, 130, + 49, 178, 34, 178, 34, 177, 50, 140, 92, 114, 50, 162, + 50, 162, 49, 178, 34, 178, 49, 0, 15, 80, 49, 17, + 130, 242, 242, 214, 153, 131, 18, 19, 98, 50, 34, 98, + 50, 34, 98, 50, 34, 99, 34, 182, 214, 213, 194, 19, + 98, 50, 34, 98, 50, 34, 98, 50, 34, 98, 50, 34, + 115, 18, 18, 137, 166, 210, 242, 242, 0, 9, 48, 55, + 17, 67, 81, 132, 50, 114, 18, 50, 114, 18, 49, 130, + 18, 49, 130, 18, 34, 147, 50, 147, 49, 242, 242, 241, + 242, 242, 241, 242, 242, 35, 161, 51, 146, 34, 18, 130, + 34, 18, 129, 50, 18, 129, 50, 18, 114, 50, 18, 114, + 67, 129, 83, 0, 8, 112, 44, 17, 0, 7, 19, 228, + 194, 18, 194, 18, 194, 18, 194, 23, 116, 21, 131, 34, + 162, 49, 163, 34, 148, 34, 131, 17, 33, 146, 36, 146, + 50, 162, 50, 50, 83, 20, 34, 101, 20, 131, 51, 0, + 15, 32, 18, 17, 0, 7, 50, 243, 227, 240, 17, 240, + 17, 240, 17, 241, 227, 226, 0, 35, 31, 17, 162, 227, + 211, 226, 226, 227, 226, 242, 226, 242, 242, 242, 242, 242, + 242, 242, 240, 18, 242, 243, 242, 240, 18, 243, 243, 242, + 0, 9, 16, 31, 17, 82, 243, 243, 243, 242, 240, 18, + 242, 242, 240, 18, 242, 242, 242, 242, 242, 242, 242, 226, + 242, 242, 226, 226, 227, 211, 226, 0, 9, 96, 28, 17, + 0, 11, 82, 242, 242, 178, 34, 34, 115, 18, 19, 150, + 196, 198, 147, 18, 19, 114, 34, 34, 178, 242, 242, 0, + 22, 16, 20, 17, 0, 11, 82, 242, 242, 242, 242, 242, + 172, 92, 162, 242, 242, 242, 242, 242, 0, 20, 15, 17, + 0, 37, 18, 228, 212, 227, 242, 226, 227, 226, 0, 7, + 48, 9, 17, 0, 23, 107, 107, 0, 32, 32, 11, 17, + 0, 37, 18, 227, 227, 241, 0, 15, 112, 28, 17, 194, + 242, 226, 242, 242, 226, 242, 226, 242, 242, 226, 242, 226, + 242, 226, 242, 242, 226, 242, 226, 242, 242, 226, 242, 0, + 10, 39, 17, 0, 7, 36, 198, 162, 51, 130, 98, 114, + 98, 99, 114, 82, 130, 82, 130, 82, 130, 82, 130, 82, + 130, 82, 130, 83, 99, 98, 98, 115, 67, 131, 35, 166, + 196, 0, 15, 80, 26, 17, 0, 7, 50, 242, 227, 197, + 179, 18, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 200, 152, 0, 15, 48, 30, 17, 0, 7, 21, 184, + 130, 83, 98, 115, 82, 130, 82, 130, 242, 242, 226, 227, + 211, 211, 210, 226, 211, 210, 114, 92, 92, 0, 15, 16, + 31, 17, 0, 7, 21, 184, 130, 83, 114, 98, 242, 242, + 226, 166, 183, 243, 243, 242, 97, 130, 82, 130, 82, 115, + 98, 83, 121, 165, 0, 15, 80, 34, 17, 0, 7, 67, + 212, 209, 18, 194, 18, 193, 34, 178, 34, 162, 50, 162, + 50, 146, 66, 146, 66, 130, 82, 140, 92, 194, 242, 242, + 215, 167, 0, 15, 16, 32, 17, 0, 6, 122, 122, 114, + 242, 242, 242, 242, 21, 153, 131, 67, 114, 99, 242, 242, + 82, 130, 82, 130, 82, 114, 114, 83, 121, 165, 0, 15, + 80, 36, 17, 0, 7, 53, 168, 131, 66, 130, 82, 114, + 241, 242, 36, 153, 132, 66, 115, 98, 98, 114, 98, 129, + 98, 129, 113, 114, 114, 98, 130, 66, 151, 196, 0, 15, + 80, 25, 17, 0, 6, 107, 107, 98, 98, 226, 242, 226, + 241, 242, 242, 226, 242, 242, 226, 242, 242, 242, 242, 242, + 0, 16, 37, 17, 0, 7, 21, 169, 130, 82, 114, 114, + 98, 114, 98, 114, 114, 82, 151, 167, 147, 51, 130, 83, + 98, 114, 98, 114, 98, 114, 99, 83, 115, 51, 151, 181, + 0, 15, 80, 36, 17, 0, 7, 36, 183, 147, 51, 130, + 82, 115, 98, 98, 114, 98, 114, 99, 98, 99, 98, 115, + 52, 137, 148, 34, 242, 226, 130, 82, 130, 51, 151, 181, + 0, 15, 96, 17, 17, 0, 18, 2, 227, 227, 241, 0, + 12, 82, 227, 227, 241, 0, 15, 112, 22, 17, 0, 18, + 2, 227, 227, 242, 0, 12, 66, 227, 227, 242, 240, 17, + 242, 226, 241, 0, 7, 64, 22, 17, 0, 10, 2, 227, + 196, 195, 196, 196, 195, 211, 243, 244, 228, 243, 244, 243, + 242, 0, 19, 64, 13, 17, 0, 19, 76, 92, 240, 240, + 156, 92, 0, 27, 112, 22, 17, 0, 8, 114, 243, 244, + 243, 244, 228, 243, 243, 211, 196, 196, 195, 196, 195, 226, + 0, 20, 80, 28, 17, 0, 7, 21, 184, 130, 83, 114, + 98, 114, 98, 226, 211, 211, 226, 226, 242, 242, 242, 0, + 6, 19, 227, 226, 0, 15, 112, 47, 17, 0, 7, 52, + 183, 147, 66, 130, 37, 114, 39, 98, 34, 35, 82, 34, + 66, 82, 34, 66, 82, 34, 66, 82, 34, 66, 82, 34, + 66, 82, 35, 50, 98, 34, 34, 114, 38, 130, 36, 147, + 82, 136, 181, 0, 15, 48, 36, 17, 0, 7, 50, 243, + 212, 212, 212, 209, 33, 209, 34, 178, 34, 178, 34, 178, + 34, 177, 65, 168, 152, 146, 66, 146, 66, 145, 97, 117, + 37, 85, 37, 0, 15, 16, 37, 17, 0, 6, 90, 123, + 130, 83, 114, 98, 114, 98, 114, 98, 114, 82, 136, 152, + 146, 83, 114, 98, 114, 114, 98, 114, 98, 114, 98, 99, + 98, 83, 92, 90, 0, 15, 64, 35, 17, 0, 7, 52, + 18, 137, 115, 52, 99, 83, 98, 114, 98, 114, 82, 242, + 242, 242, 242, 242, 240, 18, 114, 98, 114, 99, 98, 115, + 66, 151, 181, 0, 15, 64, 39, 17, 0, 6, 89, 138, + 146, 67, 130, 83, 114, 98, 114, 99, 98, 114, 98, 114, + 98, 114, 98, 114, 98, 114, 98, 114, 98, 99, 98, 98, + 114, 83, 114, 67, 106, 121, 0, 15, 80, 33, 17, 0, + 6, 92, 92, 114, 98, 114, 98, 114, 242, 242, 66, 152, + 152, 146, 66, 146, 66, 146, 242, 242, 114, 98, 114, 98, + 114, 77, 77, 0, 15, 16, 29, 17, 0, 6, 108, 92, + 114, 98, 114, 98, 114, 242, 242, 242, 50, 167, 167, 162, + 50, 162, 242, 242, 242, 242, 214, 182, 0, 15, 112, 37, + 17, 0, 7, 36, 18, 152, 131, 36, 115, 67, 114, 98, + 99, 98, 98, 242, 242, 242, 242, 85, 82, 85, 83, 98, + 114, 98, 115, 67, 131, 51, 152, 164, 18, 0, 15, 32, + 40, 17, 0, 6, 86, 38, 54, 38, 82, 98, 114, 98, + 114, 98, 114, 98, 114, 98, 122, 122, 114, 98, 114, 98, + 114, 98, 114, 98, 114, 98, 114, 98, 114, 98, 86, 38, + 54, 38, 0, 15, 25, 17, 0, 6, 122, 122, 178, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 186, 122, 0, 15, 32, 27, 17, 0, 7, 39, 167, 210, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 130, + 82, 130, 67, 151, 180, 0, 15, 112, 43, 17, 0, 6, + 86, 52, 70, 52, 98, 82, 130, 66, 146, 66, 146, 50, + 162, 34, 178, 33, 194, 19, 180, 17, 179, 34, 163, 50, + 146, 66, 146, 82, 130, 82, 130, 98, 86, 52, 70, 52, + 0, 15, 16, 28, 17, 0, 6, 102, 182, 210, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 98, 114, 98, + 114, 98, 92, 92, 0, 15, 16, 55, 17, 0, 6, 100, + 83, 84, 68, 99, 67, 116, 51, 114, 17, 33, 18, 114, + 17, 33, 18, 114, 17, 33, 18, 114, 18, 17, 18, 114, + 35, 18, 114, 34, 34, 114, 34, 34, 114, 34, 34, 114, + 98, 114, 98, 114, 98, 114, 98, 100, 68, 84, 68, 0, + 15, 16, 54, 17, 0, 6, 85, 54, 53, 54, 83, 82, + 116, 66, 114, 17, 66, 114, 17, 66, 114, 18, 50, 114, + 33, 50, 114, 33, 50, 114, 34, 34, 114, 49, 34, 114, + 49, 34, 114, 50, 18, 114, 65, 18, 114, 65, 18, 114, + 68, 86, 51, 86, 51, 0, 15, 32, 39, 17, 0, 7, + 7, 153, 115, 83, 98, 114, 98, 114, 98, 114, 98, 114, + 98, 114, 98, 114, 98, 114, 98, 114, 98, 114, 98, 114, + 98, 114, 98, 114, 99, 83, 121, 151, 0, 15, 64, 31, + 17, 0, 6, 90, 123, 130, 83, 114, 99, 98, 114, 98, + 114, 98, 114, 98, 99, 98, 83, 121, 136, 146, 242, 242, + 242, 242, 214, 182, 0, 16, 46, 17, 0, 7, 7, 153, + 115, 83, 98, 114, 98, 114, 98, 114, 98, 114, 98, 114, + 98, 114, 98, 114, 98, 114, 98, 114, 98, 114, 98, 50, + 34, 98, 50, 34, 99, 53, 121, 151, 242, 240, 18, 243, + 242, 0, 6, 96, 41, 17, 0, 6, 88, 154, 146, 51, + 146, 82, 130, 82, 130, 82, 130, 82, 130, 66, 151, 167, + 162, 51, 146, 66, 146, 66, 146, 66, 146, 66, 34, 82, + 66, 34, 53, 54, 53, 68, 0, 15, 16, 36, 17, 0, + 7, 21, 33, 122, 114, 68, 98, 99, 98, 114, 98, 114, + 99, 244, 231, 214, 227, 240, 18, 82, 130, 82, 130, 83, + 114, 84, 82, 106, 114, 37, 0, 15, 64, 29, 17, 0, + 6, 108, 92, 82, 50, 50, 82, 50, 50, 162, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 214, 182, 0, + 15, 64, 41, 17, 0, 6, 86, 38, 54, 38, 82, 98, + 114, 98, 114, 98, 114, 98, 114, 98, 114, 98, 114, 98, + 114, 98, 114, 98, 114, 98, 114, 98, 114, 98, 130, 67, + 131, 35, 166, 196, 0, 15, 80, 41, 17, 0, 6, 85, + 53, 69, 53, 98, 82, 130, 82, 130, 82, 130, 82, 145, + 81, 162, 50, 162, 50, 162, 50, 177, 49, 194, 18, 194, + 18, 194, 18, 194, 18, 209, 17, 227, 227, 0, 15, 96, + 51, 17, 0, 6, 84, 84, 68, 84, 82, 114, 98, 114, + 98, 114, 98, 114, 113, 113, 129, 49, 49, 129, 35, 33, + 129, 33, 17, 33, 130, 17, 17, 33, 130, 17, 17, 18, + 132, 20, 132, 20, 147, 34, 162, 50, 162, 50, 162, 50, + 0, 15, 64, 38, 17, 0, 6, 101, 21, 101, 21, 130, + 50, 162, 50, 178, 18, 194, 18, 211, 227, 242, 227, 228, + 194, 18, 194, 34, 177, 50, 162, 66, 146, 66, 117, 37, + 84, 53, 0, 15, 16, 33, 17, 0, 6, 100, 68, 84, + 68, 98, 98, 130, 66, 146, 66, 162, 34, 178, 34, 194, + 17, 212, 212, 226, 242, 242, 242, 242, 242, 214, 182, 0, + 15, 64, 30, 17, 0, 6, 107, 107, 98, 98, 114, 98, + 226, 227, 226, 226, 242, 226, 227, 226, 226, 242, 82, 114, + 98, 114, 98, 107, 107, 0, 15, 32, 29, 17, 87, 167, + 162, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 247, 167, 0, 9, + 16, 34, 17, 50, 242, 243, 242, 242, 240, 18, 242, 240, + 18, 242, 243, 242, 242, 240, 18, 242, 243, 242, 242, 240, + 18, 242, 240, 18, 242, 243, 242, 242, 0, 8, 112, 29, + 17, 87, 167, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 167, + 167, 0, 9, 16, 13, 17, 0, 7, 50, 214, 163, 35, + 146, 66, 0, 45, 16, 9, 17, 0, 47, 27, 107, 0, + 8, 112, 15, 17, 240, 178, 227, 226, 226, 242, 242, 243, + 227, 242, 0, 39, 16, 27, 17, 0, 17, 69, 184, 146, + 67, 242, 182, 152, 131, 66, 115, 82, 114, 98, 114, 98, + 115, 67, 140, 101, 36, 0, 15, 16, 36, 17, 0, 6, + 84, 212, 242, 242, 242, 242, 36, 153, 132, 51, 115, 82, + 114, 114, 98, 114, 98, 114, 98, 114, 98, 114, 99, 82, + 115, 67, 121, 130, 20, 0, 15, 80, 24, 17, 0, 18, + 5, 168, 131, 66, 130, 226, 242, 242, 242, 242, 240, 18, + 97, 131, 66, 151, 196, 0, 15, 64, 36, 17, 0, 7, + 68, 212, 242, 242, 242, 164, 18, 152, 131, 51, 130, 82, + 114, 98, 114, 98, 114, 98, 114, 98, 114, 98, 130, 67, + 131, 51, 154, 132, 20, 0, 15, 16, 26, 17, 0, 17, + 116, 184, 131, 66, 130, 98, 98, 114, 107, 107, 98, 242, + 240, 18, 98, 115, 67, 136, 181, 0, 15, 64, 26, 17, + 0, 7, 83, 213, 178, 34, 178, 242, 185, 137, 194, 242, + 242, 242, 242, 242, 242, 242, 242, 185, 137, 0, 15, 48, + 40, 17, 0, 17, 115, 34, 138, 114, 50, 18, 98, 82, + 130, 82, 130, 82, 130, 82, 146, 50, 152, 146, 19, 178, + 240, 24, 138, 99, 99, 82, 130, 82, 130, 82, 130, 99, + 82, 137, 150, 80, 37, 17, 0, 6, 84, 212, 242, 242, + 242, 242, 35, 168, 148, 35, 131, 66, 130, 82, 130, 82, + 130, 82, 130, 82, 130, 82, 130, 82, 130, 82, 102, 22, + 70, 22, 0, 15, 16, 25, 17, 0, 7, 35, 227, 227, + 240, 240, 246, 182, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 186, 122, 0, 15, 32, 32, 17, 0, 7, 83, 227, + 227, 240, 240, 231, 167, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 130, 67, 130, 66, 152, + 165, 112, 37, 17, 0, 6, 84, 212, 242, 242, 242, 242, + 38, 114, 38, 114, 66, 146, 50, 162, 34, 178, 18, 198, + 179, 34, 162, 50, 162, 66, 146, 82, 102, 37, 70, 37, + 0, 15, 16, 25, 17, 0, 6, 118, 182, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 186, + 122, 0, 15, 32, 43, 17, 0, 17, 35, 19, 35, 93, + 83, 35, 34, 82, 50, 50, 82, 50, 50, 82, 50, 50, + 82, 50, 50, 82, 50, 50, 82, 50, 50, 82, 50, 50, + 82, 50, 50, 68, 20, 20, 52, 20, 20, 0, 15, 32, + 17, 0, 17, 36, 20, 138, 148, 50, 131, 66, 130, 82, + 130, 82, 130, 82, 130, 82, 130, 82, 130, 82, 130, 82, + 102, 22, 70, 22, 0, 15, 16, 29, 17, 0, 17, 101, + 183, 147, 51, 130, 82, 114, 114, 98, 114, 98, 114, 98, + 114, 98, 114, 114, 82, 131, 51, 151, 181, 0, 15, 80, + 36, 17, 0, 17, 36, 36, 123, 132, 51, 115, 82, 114, + 114, 98, 114, 98, 114, 98, 114, 98, 114, 99, 82, 116, + 51, 121, 130, 20, 162, 242, 242, 242, 242, 214, 182, 144, + 36, 17, 0, 17, 100, 18, 137, 115, 52, 114, 83, 98, + 114, 98, 114, 98, 114, 98, 114, 98, 114, 114, 83, 115, + 52, 137, 148, 34, 242, 242, 242, 242, 242, 214, 182, 32, + 23, 17, 0, 17, 53, 35, 117, 21, 148, 34, 147, 227, + 226, 242, 242, 242, 242, 242, 200, 152, 0, 15, 80, 26, + 17, 0, 17, 88, 137, 115, 67, 114, 98, 115, 246, 215, + 228, 98, 114, 99, 98, 100, 67, 106, 114, 22, 0, 15, + 64, 27, 17, 0, 9, 34, 242, 242, 242, 202, 122, 162, + 242, 242, 242, 242, 242, 242, 66, 146, 66, 147, 35, 166, + 196, 0, 15, 64, 32, 17, 0, 17, 36, 52, 100, 52, + 130, 82, 130, 82, 130, 82, 130, 82, 130, 82, 130, 82, + 130, 82, 130, 82, 130, 67, 139, 132, 20, 0, 15, 16, + 31, 17, 0, 17, 37, 53, 69, 53, 98, 82, 130, 82, + 145, 81, 162, 50, 162, 50, 177, 49, 194, 18, 194, 18, + 209, 17, 227, 227, 0, 15, 96, 40, 17, 0, 17, 37, + 53, 69, 53, 82, 114, 113, 113, 129, 113, 129, 50, 33, + 130, 19, 18, 130, 17, 17, 18, 130, 17, 17, 18, 145, + 17, 19, 163, 19, 163, 34, 162, 50, 0, 15, 64, 29, + 17, 0, 17, 53, 37, 85, 37, 114, 65, 178, 34, 196, + 226, 242, 228, 209, 33, 194, 34, 162, 66, 117, 37, 85, + 37, 0, 15, 16, 38, 17, 0, 17, 52, 53, 84, 53, + 98, 82, 145, 81, 162, 65, 162, 50, 177, 50, 178, 33, + 194, 18, 209, 18, 211, 227, 242, 241, 240, 17, 242, 178, + 34, 178, 18, 197, 210, 176, 24, 17, 0, 17, 60, 92, + 82, 99, 98, 83, 226, 226, 226, 226, 226, 226, 98, 98, + 114, 92, 92, 0, 15, 16, 29, 17, 164, 197, 179, 226, + 242, 242, 242, 242, 242, 242, 227, 181, 197, 243, 242, 242, + 242, 242, 242, 242, 242, 243, 245, 212, 0, 8, 112, 29, + 17, 130, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 0, 9, 48, 29, 17, 68, 213, 243, 242, 242, 242, + 242, 242, 242, 242, 243, 245, 197, 179, 226, 242, 242, 242, + 242, 242, 242, 227, 181, 196, 0, 9, 80, 15, 17, 0, + 7, 19, 34, 148, 19, 130, 36, 145, 66, 0, 45, 48,}; + +//***************************************************************************** +// +// The font definition for the 30 point Cmtt font. +// +//***************************************************************************** +const tFont g_sFontCmtt30 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 13, + + // + // The height of the font. + // + 28, + + // + // The baseline of the font. + // + 21, + + // + // The offset to each character in the font. + // + { + 0, 5, 30, 55, 94, 143, 198, 242, + 260, 291, 322, 350, 370, 385, 394, 405, + 433, 472, 498, 528, 559, 593, 625, 661, + 686, 723, 759, 776, 798, 820, 833, 855, + 883, 930, 966, 1003, 1038, 1077, 1110, 1139, + 1176, 1216, 1241, 1268, 1311, 1339, 1394, 1448, + 1487, 1518, 1564, 1605, 1641, 1670, 1711, 1752, + 1803, 1841, 1874, 1904, 1933, 1967, 1996, 2009, + 2018, 2033, 2060, 2096, 2120, 2156, 2182, 2208, + 2248, 2285, 2310, 2342, 2379, 2404, 2447, 2479, + 2508, 2544, 2580, 2603, 2629, 2656, 2688, 2719, + 2759, 2788, 2826, 2850, 2879, 2908, 2937, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmtt30Data +}; diff --git a/grlib/fonts/fontcmtt32.c b/grlib/fonts/fontcmtt32.c new file mode 100644 index 0000000..1db85be --- /dev/null +++ b/grlib/fonts/fontcmtt32.c @@ -0,0 +1,420 @@ +//***************************************************************************** +// +// fontcmtt32.c - Font definition for the 32pt Cmtt font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmtt +// Size: 32 point +// Bold: no +// Italic: no +// Memory usage: 3968 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 32 point Cmtt font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmtt32Data[3765] = +{ + 5, 19, 0, 71, 32, 41, 19, 0, 8, 19, 240, 19, + 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, + 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, + 0, 9, 19, 240, 19, 240, 19, 0, 17, 80, 26, 19, + 0, 7, 115, 35, 179, 35, 179, 35, 179, 35, 179, 35, + 179, 35, 179, 35, 179, 35, 179, 35, 179, 35, 0, 41, + 43, 19, 0, 8, 2, 50, 194, 50, 194, 50, 194, 50, + 194, 50, 194, 50, 141, 109, 146, 50, 194, 50, 194, 50, + 194, 50, 194, 50, 157, 109, 130, 50, 194, 50, 194, 50, + 194, 50, 194, 50, 0, 17, 64, 58, 19, 130, 240, 34, + 240, 34, 246, 201, 162, 18, 19, 146, 34, 50, 130, 34, + 50, 130, 34, 50, 130, 34, 50, 131, 18, 229, 246, 230, + 226, 19, 210, 35, 130, 34, 50, 130, 34, 50, 130, 34, + 50, 130, 34, 35, 146, 18, 19, 168, 198, 242, 240, 34, + 240, 34, 0, 10, 80, 67, 19, 67, 97, 147, 82, 130, + 18, 66, 130, 18, 65, 146, 18, 50, 146, 18, 50, 146, + 18, 49, 179, 50, 179, 50, 240, 33, 240, 34, 240, 34, + 240, 34, 240, 18, 240, 34, 240, 34, 240, 33, 240, 34, + 51, 178, 51, 177, 50, 18, 146, 50, 18, 146, 50, 18, + 145, 66, 18, 130, 66, 18, 130, 83, 145, 99, 0, 10, + 50, 19, 0, 8, 3, 244, 226, 34, 210, 34, 210, 34, + 210, 34, 210, 24, 130, 18, 21, 147, 50, 179, 49, 179, + 50, 165, 34, 162, 18, 33, 162, 52, 162, 52, 162, 66, + 50, 98, 66, 50, 99, 36, 34, 118, 20, 147, 67, 0, + 17, 16, 24, 19, 0, 8, 19, 240, 20, 244, 240, 34, + 240, 34, 240, 34, 240, 18, 240, 19, 243, 240, 18, 0, + 41, 80, 56, 19, 193, 240, 34, 240, 18, 240, 18, 240, + 18, 240, 34, 240, 18, 240, 34, 240, 34, 240, 18, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 50, 240, 34, 240, 34, 240, 50, 240, 34, 240, + 50, 240, 50, 240, 35, 240, 49, 0, 10, 32, 55, 19, + 97, 240, 51, 240, 34, 240, 50, 240, 50, 240, 34, 240, + 50, 240, 34, 240, 34, 240, 50, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 18, 240, + 34, 240, 34, 240, 18, 240, 34, 240, 18, 240, 18, 240, + 19, 240, 17, 0, 11, 33, 19, 0, 15, 50, 240, 34, + 240, 34, 194, 50, 34, 132, 18, 19, 153, 197, 229, 201, + 148, 18, 19, 130, 50, 34, 210, 240, 34, 240, 34, 0, + 24, 96, 33, 19, 0, 15, 50, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 204, 124, 194, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 0, 22, 48, 22, + 19, 0, 46, 34, 240, 20, 244, 240, 19, 240, 34, 240, + 34, 240, 18, 240, 19, 240, 17, 0, 6, 9, 19, 0, + 29, 12, 124, 0, 38, 48, 13, 19, 0, 46, 34, 240, + 20, 244, 240, 18, 0, 17, 80, 56, 19, 210, 240, 34, + 240, 34, 240, 18, 240, 34, 240, 18, 240, 34, 240, 34, + 240, 18, 240, 34, 240, 18, 240, 34, 240, 34, 240, 18, + 240, 34, 240, 34, 240, 18, 240, 34, 240, 18, 240, 34, + 240, 34, 240, 18, 240, 34, 240, 18, 240, 34, 240, 34, + 0, 11, 16, 43, 19, 0, 8, 20, 230, 195, 35, 163, + 67, 146, 98, 146, 98, 130, 130, 114, 130, 114, 130, 114, + 130, 114, 130, 114, 130, 114, 130, 114, 130, 130, 98, 146, + 98, 147, 67, 163, 35, 198, 228, 0, 17, 64, 42, 19, + 0, 8, 34, 240, 34, 240, 19, 244, 214, 211, 18, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 218, + 154, 0, 17, 16, 37, 19, 0, 8, 5, 216, 162, 68, + 130, 114, 130, 130, 114, 130, 114, 130, 240, 34, 240, 34, + 240, 18, 240, 19, 243, 243, 243, 243, 243, 242, 240, 18, + 114, 124, 124, 0, 17, 40, 19, 0, 7, 118, 201, 147, + 82, 146, 114, 130, 114, 240, 34, 240, 19, 243, 183, 215, + 240, 35, 240, 34, 240, 50, 240, 34, 98, 146, 98, 146, + 98, 130, 131, 83, 153, 182, 0, 17, 64, 39, 19, 0, + 8, 51, 244, 241, 18, 226, 18, 210, 34, 210, 34, 194, + 50, 194, 50, 178, 66, 178, 66, 162, 82, 162, 82, 146, + 98, 157, 109, 226, 240, 34, 240, 34, 232, 184, 0, 17, + 42, 19, 0, 7, 106, 154, 146, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 21, 185, 163, 67, 146, 98, 240, + 50, 240, 34, 240, 34, 114, 130, 114, 130, 114, 114, 146, + 83, 153, 197, 0, 17, 64, 42, 19, 0, 8, 37, 215, + 179, 50, 162, 82, 146, 240, 34, 240, 33, 240, 34, 36, + 185, 164, 66, 147, 98, 130, 114, 130, 129, 130, 129, 130, + 129, 146, 98, 146, 97, 178, 66, 183, 228, 0, 17, 64, + 45, 19, 0, 7, 77, 109, 98, 115, 240, 18, 240, 18, + 240, 19, 240, 18, 240, 18, 240, 34, 240, 34, 240, 18, + 240, 34, 240, 34, 240, 34, 240, 18, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 0, 17, 112, 41, 19, 0, + 8, 5, 215, 179, 51, 146, 99, 130, 114, 130, 114, 131, + 98, 147, 51, 183, 214, 179, 51, 162, 82, 146, 114, 130, + 114, 130, 114, 130, 114, 146, 83, 147, 51, 183, 213, 0, + 17, 64, 42, 19, 0, 8, 20, 216, 163, 66, 162, 98, + 131, 98, 130, 130, 114, 130, 114, 130, 115, 114, 130, 99, + 131, 68, 154, 180, 34, 240, 34, 240, 18, 240, 34, 146, + 82, 162, 67, 168, 212, 0, 17, 80, 21, 19, 0, 22, + 66, 240, 20, 244, 240, 18, 0, 16, 50, 240, 20, 244, + 240, 18, 0, 17, 80, 30, 19, 0, 22, 66, 240, 20, + 244, 240, 18, 0, 16, 50, 240, 20, 244, 240, 19, 240, + 34, 240, 19, 240, 18, 240, 18, 240, 33, 0, 6, 31, + 19, 0, 13, 82, 240, 19, 228, 227, 228, 228, 212, 228, + 244, 240, 20, 240, 36, 240, 20, 240, 35, 240, 36, 240, + 20, 240, 34, 0, 21, 96, 13, 19, 0, 24, 29, 109, + 0, 7, 125, 109, 0, 31, 32, 30, 19, 0, 12, 50, + 240, 36, 240, 20, 240, 35, 240, 36, 240, 20, 240, 36, + 240, 20, 244, 228, 212, 228, 227, 228, 227, 240, 18, 0, + 23, 37, 19, 0, 7, 118, 201, 147, 83, 130, 114, 130, + 114, 240, 19, 243, 243, 242, 240, 19, 240, 18, 240, 34, + 240, 34, 240, 34, 0, 9, 35, 240, 19, 240, 18, 0, + 17, 96, 52, 19, 0, 8, 36, 215, 179, 51, 146, 98, + 131, 53, 130, 55, 114, 34, 51, 98, 50, 51, 98, 34, + 82, 98, 34, 82, 98, 34, 82, 98, 34, 82, 98, 34, + 82, 99, 34, 51, 114, 34, 50, 131, 37, 162, 51, 180, + 67, 168, 197, 0, 17, 48, 44, 19, 0, 8, 19, 240, + 19, 240, 19, 240, 17, 17, 242, 18, 226, 18, 226, 18, + 226, 18, 225, 34, 210, 50, 194, 50, 194, 50, 194, 50, + 199, 185, 162, 82, 162, 82, 162, 82, 133, 53, 101, 53, + 0, 17, 41, 19, 0, 7, 73, 171, 162, 82, 162, 98, + 146, 98, 146, 98, 146, 98, 146, 83, 146, 67, 168, 184, + 178, 83, 146, 98, 146, 114, 130, 114, 130, 114, 130, 99, + 130, 83, 124, 122, 0, 17, 48, 44, 19, 0, 8, 20, + 34, 154, 132, 52, 130, 99, 114, 115, 114, 130, 99, 130, + 98, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 35, 130, 114, 130, 115, 114, 130, 99, 132, 51, 168, 213, + 0, 17, 48, 43, 19, 0, 7, 74, 155, 162, 83, 146, + 99, 130, 114, 130, 114, 130, 115, 114, 130, 114, 130, 114, + 130, 114, 130, 114, 130, 114, 130, 114, 130, 114, 114, 130, + 114, 130, 99, 130, 83, 123, 138, 0, 17, 48, 40, 19, + 0, 7, 76, 124, 146, 98, 146, 98, 146, 98, 146, 240, + 34, 240, 34, 50, 194, 50, 199, 199, 194, 50, 194, 50, + 194, 240, 34, 240, 34, 114, 130, 114, 130, 114, 109, 109, + 0, 17, 40, 19, 0, 7, 77, 109, 130, 114, 130, 114, + 130, 114, 130, 240, 34, 240, 34, 66, 178, 66, 184, 184, + 178, 66, 178, 66, 178, 240, 34, 240, 34, 240, 34, 240, + 34, 247, 199, 0, 17, 96, 45, 19, 0, 8, 20, 18, + 169, 147, 52, 146, 83, 130, 114, 130, 114, 114, 130, 114, + 240, 34, 240, 34, 240, 34, 240, 34, 101, 98, 101, 99, + 114, 130, 114, 130, 99, 146, 83, 147, 52, 169, 180, 34, + 0, 17, 16, 45, 19, 0, 7, 70, 38, 86, 38, 114, + 98, 146, 98, 146, 98, 146, 98, 146, 98, 146, 98, 146, + 98, 154, 154, 146, 98, 146, 98, 146, 98, 146, 98, 146, + 98, 146, 98, 146, 98, 118, 38, 86, 38, 0, 16, 112, + 42, 19, 0, 7, 106, 154, 210, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 218, 154, 0, 17, 16, 42, 19, 0, 8, 23, 199, + 242, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 162, 82, 162, 82, 162, 66, 199, 212, 0, 17, 96, + 47, 19, 0, 7, 70, 52, 102, 52, 130, 98, 146, 82, + 162, 66, 178, 66, 178, 50, 194, 34, 210, 34, 210, 19, + 212, 18, 195, 34, 195, 50, 178, 66, 178, 82, 162, 82, + 162, 98, 146, 98, 118, 68, 86, 53, 0, 16, 112, 42, + 19, 0, 7, 71, 199, 226, 240, 34, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 114, 130, 114, 130, + 114, 109, 109, 0, 17, 62, 19, 0, 7, 68, 99, 100, + 84, 115, 83, 132, 67, 130, 17, 49, 18, 130, 17, 49, + 18, 130, 17, 49, 18, 130, 18, 18, 18, 130, 33, 17, + 34, 130, 33, 17, 34, 130, 33, 17, 34, 130, 35, 34, + 130, 49, 50, 130, 114, 130, 114, 130, 114, 130, 114, 130, + 114, 116, 84, 100, 84, 0, 17, 59, 19, 0, 7, 69, + 53, 101, 53, 131, 66, 163, 66, 162, 17, 50, 162, 17, + 50, 162, 17, 50, 162, 17, 50, 162, 33, 34, 162, 33, + 34, 162, 33, 34, 162, 33, 34, 162, 49, 18, 162, 49, + 18, 162, 49, 18, 162, 49, 18, 162, 67, 162, 67, 133, + 51, 133, 51, 0, 17, 32, 43, 19, 0, 7, 119, 185, + 162, 83, 130, 114, 130, 114, 130, 114, 130, 114, 130, 114, + 130, 114, 130, 114, 130, 114, 130, 114, 130, 114, 130, 114, + 130, 114, 130, 114, 131, 98, 146, 82, 169, 183, 0, 17, + 48, 40, 19, 0, 7, 89, 170, 178, 67, 162, 83, 146, + 98, 146, 98, 146, 98, 146, 98, 146, 83, 146, 67, 168, + 183, 194, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 246, 214, 0, 17, 96, 56, 19, 0, 7, 119, 185, 162, + 83, 131, 98, 130, 114, 130, 114, 130, 114, 130, 114, 130, + 114, 130, 114, 130, 114, 130, 114, 130, 114, 130, 114, 130, + 50, 34, 130, 50, 34, 131, 35, 18, 146, 52, 169, 183, + 240, 34, 240, 50, 240, 34, 240, 35, 240, 34, 240, 240, + 192, 44, 19, 0, 7, 57, 170, 178, 67, 162, 83, 146, + 98, 146, 98, 146, 98, 146, 83, 146, 67, 168, 184, 178, + 67, 162, 82, 162, 82, 162, 82, 162, 82, 162, 82, 34, + 98, 82, 34, 70, 69, 70, 68, 0, 17, 42, 19, 0, + 8, 5, 33, 169, 146, 68, 130, 99, 130, 114, 130, 114, + 130, 114, 146, 240, 37, 247, 245, 240, 35, 240, 35, 129, + 130, 114, 130, 114, 130, 115, 99, 116, 67, 138, 146, 37, + 0, 17, 48, 45, 19, 0, 7, 77, 109, 98, 50, 66, + 98, 50, 66, 98, 50, 66, 178, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 247, 199, 0, 17, 48, + 45, 19, 0, 7, 54, 54, 70, 54, 98, 114, 130, 114, + 130, 114, 130, 114, 130, 114, 130, 114, 130, 114, 130, 114, + 130, 114, 130, 114, 130, 114, 130, 114, 130, 114, 131, 98, + 146, 82, 163, 51, 183, 213, 0, 17, 64, 43, 19, 0, + 7, 69, 69, 85, 69, 114, 98, 146, 98, 146, 98, 146, + 98, 162, 66, 178, 66, 178, 66, 178, 66, 194, 34, 210, + 34, 210, 34, 210, 34, 210, 34, 228, 244, 244, 244, 240, + 18, 0, 17, 80, 58, 19, 0, 7, 68, 100, 84, 100, + 98, 130, 114, 130, 114, 130, 114, 130, 129, 129, 145, 129, + 145, 50, 49, 146, 34, 34, 146, 35, 18, 146, 20, 18, + 146, 20, 18, 146, 17, 33, 18, 161, 17, 33, 17, 177, + 17, 33, 17, 179, 35, 179, 35, 178, 66, 178, 66, 0, + 17, 32, 43, 19, 0, 7, 69, 37, 117, 37, 146, 66, + 179, 50, 194, 34, 211, 18, 228, 244, 240, 19, 240, 18, + 240, 35, 244, 242, 18, 210, 34, 210, 35, 194, 50, 178, + 67, 162, 82, 133, 53, 101, 53, 0, 17, 42, 19, 0, + 7, 69, 69, 85, 69, 114, 98, 147, 66, 178, 66, 178, + 66, 194, 34, 210, 34, 228, 244, 244, 240, 18, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 246, 214, + 0, 17, 48, 43, 19, 0, 7, 92, 124, 114, 114, 130, + 99, 130, 98, 240, 19, 240, 18, 240, 18, 240, 34, 240, + 18, 240, 19, 240, 18, 240, 19, 240, 18, 240, 18, 240, + 34, 98, 130, 114, 115, 114, 124, 124, 0, 17, 53, 19, + 103, 199, 194, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 39, 199, + 0, 10, 32, 55, 19, 66, 240, 34, 240, 35, 240, 34, + 240, 34, 240, 50, 240, 34, 240, 34, 240, 50, 240, 34, + 240, 35, 240, 34, 240, 34, 240, 50, 240, 34, 240, 35, + 240, 34, 240, 34, 240, 50, 240, 34, 240, 34, 240, 50, + 240, 34, 240, 35, 240, 34, 240, 34, 0, 10, 53, 19, + 103, 199, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 199, 199, + 0, 10, 32, 16, 19, 0, 8, 18, 240, 21, 196, 19, + 179, 51, 162, 82, 0, 52, 112, 9, 19, 0, 57, 76, + 124, 0, 9, 112, 23, 19, 240, 226, 240, 19, 243, 240, + 18, 240, 18, 240, 34, 240, 34, 240, 36, 244, 240, 19, + 0, 46, 16, 30, 19, 0, 22, 6, 201, 162, 67, 240, + 50, 240, 34, 214, 169, 148, 66, 131, 98, 130, 114, 130, + 114, 131, 83, 157, 118, 36, 0, 16, 112, 44, 19, 0, + 7, 68, 244, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 36, 185, 164, 51, 147, 82, 146, 99, 130, 114, 130, + 114, 130, 114, 130, 114, 130, 114, 131, 82, 147, 67, 153, + 162, 20, 0, 17, 64, 31, 19, 0, 22, 69, 200, 163, + 66, 162, 82, 147, 240, 18, 240, 34, 240, 34, 240, 34, + 240, 35, 97, 162, 97, 163, 66, 183, 228, 0, 17, 48, + 42, 19, 0, 8, 52, 244, 240, 34, 240, 34, 240, 34, + 240, 34, 196, 18, 169, 147, 52, 146, 83, 131, 98, 130, + 114, 130, 114, 130, 114, 130, 114, 131, 98, 146, 83, 147, + 52, 171, 149, 20, 0, 17, 29, 19, 0, 22, 52, 215, + 179, 51, 162, 83, 130, 114, 130, 114, 139, 139, 130, 240, + 34, 240, 50, 98, 147, 67, 168, 213, 0, 17, 48, 39, + 19, 0, 8, 52, 230, 195, 34, 194, 240, 34, 240, 34, + 218, 154, 210, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 218, 154, 0, + 17, 32, 42, 19, 0, 22, 35, 35, 155, 130, 50, 34, + 114, 82, 162, 82, 162, 82, 162, 82, 178, 50, 184, 178, + 19, 210, 240, 34, 240, 56, 171, 115, 115, 98, 146, 98, + 146, 98, 146, 115, 83, 153, 182, 112, 44, 19, 0, 7, + 68, 244, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 35, 200, 180, 35, 163, 66, 162, 82, 162, 82, 162, 82, + 162, 82, 162, 82, 162, 82, 162, 82, 162, 82, 134, 22, + 102, 22, 0, 17, 38, 19, 0, 8, 19, 240, 19, 240, + 19, 0, 8, 102, 214, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 203, 139, 0, 17, 16, 50, 19, 0, 8, 67, 240, + 19, 240, 19, 0, 8, 87, 199, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 162, 67, 162, 66, 183, 213, 128, 45, 19, 0, 7, + 68, 244, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 39, 130, 39, 130, 66, 178, 50, 194, 35, 194, 19, 214, + 212, 18, 195, 34, 194, 66, 178, 82, 162, 82, 134, 38, + 86, 38, 0, 16, 112, 42, 19, 0, 7, 87, 199, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 204, 124, 0, 17, 47, + 19, 0, 21, 99, 19, 35, 110, 115, 35, 34, 114, 50, + 50, 114, 50, 50, 114, 50, 50, 114, 50, 50, 114, 50, + 50, 114, 50, 50, 114, 50, 50, 114, 50, 50, 114, 50, + 50, 100, 20, 21, 68, 20, 21, 0, 16, 96, 33, 19, + 0, 21, 100, 20, 170, 180, 35, 163, 66, 162, 82, 162, + 82, 162, 82, 162, 82, 162, 82, 162, 82, 162, 82, 162, + 82, 134, 22, 102, 22, 0, 17, 31, 19, 0, 22, 52, + 215, 179, 51, 162, 82, 146, 114, 130, 114, 130, 114, 130, + 114, 130, 114, 131, 98, 146, 82, 163, 51, 183, 213, 0, + 17, 64, 42, 19, 0, 21, 100, 36, 155, 164, 51, 147, + 82, 146, 114, 130, 114, 130, 114, 130, 114, 130, 114, 130, + 99, 131, 82, 148, 51, 153, 162, 20, 194, 240, 34, 240, + 34, 240, 34, 240, 34, 246, 214, 160, 43, 19, 0, 22, + 36, 34, 154, 147, 52, 130, 99, 115, 114, 114, 130, 114, + 130, 114, 130, 114, 130, 115, 114, 130, 99, 131, 68, 154, + 180, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 231, 199, 32, 31, 19, 0, 21, 117, 36, 133, 22, 165, + 34, 164, 243, 240, 18, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 233, 169, 0, 17, 48, 30, 19, + 0, 22, 24, 169, 147, 67, 146, 98, 146, 98, 149, 240, + 23, 245, 161, 99, 130, 114, 131, 98, 132, 67, 138, 146, + 21, 0, 17, 64, 38, 19, 0, 12, 98, 240, 34, 240, + 34, 240, 34, 235, 139, 178, 240, 34, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 82, 162, 82, 163, + 51, 183, 213, 0, 17, 32, 33, 19, 0, 21, 100, 52, + 132, 52, 162, 82, 162, 82, 162, 82, 162, 82, 162, 82, + 162, 82, 162, 82, 162, 82, 162, 82, 162, 67, 186, 164, + 20, 0, 17, 35, 19, 0, 21, 101, 53, 101, 53, 130, + 82, 162, 82, 177, 81, 194, 50, 194, 50, 194, 50, 209, + 49, 226, 18, 226, 18, 241, 17, 240, 19, 240, 19, 0, + 17, 80, 42, 19, 0, 21, 102, 38, 86, 38, 113, 129, + 145, 129, 145, 129, 146, 98, 146, 34, 34, 146, 34, 34, + 146, 20, 18, 161, 20, 17, 177, 18, 17, 17, 179, 33, + 17, 179, 35, 179, 35, 0, 17, 32, 34, 19, 0, 21, + 102, 22, 102, 22, 146, 50, 194, 49, 226, 18, 243, 240, + 18, 240, 35, 240, 17, 17, 242, 18, 210, 50, 193, 82, + 133, 53, 101, 53, 0, 17, 43, 19, 0, 21, 117, 37, + 117, 37, 130, 97, 177, 82, 178, 66, 178, 65, 209, 50, + 210, 34, 210, 33, 241, 33, 244, 244, 240, 18, 240, 34, + 240, 34, 240, 33, 240, 34, 210, 34, 210, 18, 229, 243, + 176, 27, 19, 0, 21, 124, 124, 114, 99, 130, 98, 240, + 18, 240, 19, 243, 243, 243, 243, 240, 18, 98, 130, 114, + 124, 124, 0, 17, 51, 19, 196, 214, 195, 240, 18, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 19, 198, 214, 240, 35, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 35, 240, 38, 229, 0, 9, 112, 56, 19, 146, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 0, 10, 64, 51, 19, 69, 230, 240, 35, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 35, 240, 38, 214, 195, 240, 18, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 19, 198, 212, 0, 10, 112, 15, 19, 0, 8, 3, 50, + 165, 19, 147, 21, 162, 51, 0, 55, 48, +}; + +//***************************************************************************** +// +// The font definition for the 32 point Cmtt font. +// +//***************************************************************************** +const tFont g_sFontCmtt32 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 15, + + // + // The height of the font. + // + 30, + + // + // The baseline of the font. + // + 23, + + // + // The offset to each character in the font. + // + { + 0, 5, 46, 72, 115, 173, 240, 290, + 314, 370, 425, 458, 491, 513, 522, 535, + 591, 634, 676, 713, 753, 792, 834, 876, + 921, 962, 1004, 1025, 1055, 1086, 1099, 1129, + 1166, 1218, 1262, 1303, 1347, 1390, 1430, 1470, + 1515, 1560, 1602, 1644, 1691, 1733, 1795, 1854, + 1897, 1937, 1993, 2037, 2079, 2124, 2169, 2212, + 2270, 2313, 2355, 2398, 2451, 2506, 2559, 2575, + 2584, 2607, 2637, 2681, 2712, 2754, 2783, 2822, + 2864, 2908, 2946, 2996, 3041, 3083, 3130, 3163, + 3194, 3236, 3279, 3310, 3340, 3378, 3411, 3446, + 3488, 3522, 3565, 3592, 3643, 3699, 3750, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmtt32Data +}; diff --git a/grlib/fonts/fontcmtt34.c b/grlib/fonts/fontcmtt34.c new file mode 100644 index 0000000..5d7faa2 --- /dev/null +++ b/grlib/fonts/fontcmtt34.c @@ -0,0 +1,436 @@ +//***************************************************************************** +// +// fontcmtt34.c - Font definition for the 34pt Cmtt font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmtt +// Size: 34 point +// Bold: no +// Italic: no +// Memory usage: 4156 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 34 point Cmtt font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmtt34Data[3954] = +{ + 4, 19, 0, 76, 42, 19, 0, 8, 19, 240, 19, 240, + 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, + 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, 240, + 19, 0, 9, 19, 240, 19, 240, 19, 0, 20, 27, 19, + 0, 7, 115, 35, 179, 35, 179, 35, 179, 35, 179, 35, + 179, 35, 179, 35, 179, 35, 179, 35, 178, 50, 0, 45, + 112, 45, 19, 0, 8, 17, 66, 178, 66, 178, 66, 178, + 51, 178, 51, 178, 50, 142, 94, 131, 50, 179, 50, 178, + 66, 178, 51, 178, 51, 142, 94, 130, 50, 194, 50, 179, + 50, 178, 66, 178, 66, 178, 65, 0, 19, 112, 61, 19, + 146, 240, 34, 240, 34, 246, 201, 147, 18, 19, 131, 34, + 50, 114, 50, 50, 114, 50, 50, 114, 50, 50, 115, 34, + 214, 231, 230, 226, 19, 210, 35, 114, 50, 50, 114, 50, + 50, 114, 50, 50, 114, 50, 50, 115, 34, 34, 147, 18, + 19, 168, 198, 242, 240, 34, 240, 34, 0, 12, 112, 70, + 19, 82, 98, 132, 82, 114, 34, 51, 114, 34, 50, 130, + 34, 50, 130, 34, 50, 130, 34, 34, 164, 50, 178, 66, + 240, 18, 240, 34, 240, 34, 240, 18, 240, 34, 240, 34, + 240, 18, 240, 34, 240, 34, 240, 18, 66, 178, 52, 162, + 34, 34, 130, 50, 34, 130, 50, 34, 130, 50, 34, 115, + 50, 34, 114, 84, 130, 98, 0, 12, 48, 53, 19, 0, + 8, 3, 244, 226, 34, 210, 34, 210, 34, 210, 34, 210, + 25, 114, 18, 22, 132, 49, 179, 50, 178, 66, 163, 50, + 162, 18, 34, 147, 18, 34, 146, 52, 162, 52, 162, 66, + 66, 82, 66, 66, 83, 37, 34, 102, 21, 131, 67, 0, + 19, 64, 25, 19, 0, 8, 19, 240, 20, 244, 240, 34, + 240, 34, 240, 34, 240, 19, 240, 18, 240, 19, 243, 240, + 18, 0, 44, 55, 19, 194, 240, 19, 243, 243, 243, 240, + 18, 240, 19, 240, 18, 240, 34, 240, 34, 240, 18, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 35, 240, 34, 240, 34, 240, 35, 240, 34, 240, 35, 240, + 35, 240, 35, 240, 35, 240, 34, 0, 12, 64, 57, 19, + 98, 240, 35, 240, 35, 240, 35, 240, 35, 240, 34, 240, + 35, 240, 34, 240, 34, 240, 50, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 18, 240, 34, 240, 34, 240, 18, 240, 19, 240, 18, 240, + 18, 243, 240, 18, 0, 13, 32, 34, 19, 0, 15, 50, + 240, 34, 240, 34, 194, 50, 50, 115, 34, 35, 138, 182, + 228, 216, 170, 131, 34, 35, 114, 50, 50, 194, 240, 34, + 240, 34, 0, 27, 16, 35, 19, 0, 12, 114, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 205, 109, 178, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 0, 27, 32, 22, 19, 0, 48, 82, 240, 20, 244, + 240, 19, 240, 34, 240, 34, 240, 18, 244, 240, 17, 0, + 8, 48, 9, 19, 0, 31, 60, 124, 0, 40, 96, 12, + 19, 0, 48, 82, 240, 20, 244, 240, 18, 0, 20, 58, + 19, 226, 240, 34, 240, 19, 240, 18, 240, 34, 240, 18, + 240, 34, 240, 19, 240, 18, 240, 19, 240, 18, 240, 34, + 240, 19, 240, 18, 240, 19, 240, 18, 240, 34, 240, 19, + 240, 18, 240, 19, 240, 18, 240, 34, 240, 18, 240, 34, + 240, 19, 240, 18, 240, 34, 0, 13, 64, 45, 19, 0, + 8, 20, 230, 195, 35, 178, 67, 146, 98, 146, 98, 130, + 130, 114, 130, 114, 130, 114, 130, 114, 130, 114, 130, 114, + 130, 114, 130, 115, 114, 130, 98, 146, 98, 162, 66, 179, + 35, 198, 228, 0, 19, 112, 44, 19, 0, 8, 34, 240, + 34, 240, 19, 244, 214, 211, 18, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 218, 154, 0, + 19, 64, 43, 19, 0, 8, 5, 216, 162, 68, 131, 98, + 130, 130, 114, 130, 114, 130, 240, 34, 240, 34, 240, 18, + 240, 34, 240, 18, 240, 19, 243, 243, 242, 240, 18, 240, + 18, 240, 18, 114, 124, 124, 0, 19, 48, 43, 19, 0, + 8, 5, 200, 163, 67, 146, 114, 130, 114, 240, 34, 240, + 34, 240, 18, 240, 19, 183, 215, 240, 35, 240, 34, 240, + 50, 240, 34, 98, 146, 98, 146, 98, 130, 131, 83, 153, + 182, 0, 19, 112, 42, 19, 0, 8, 52, 244, 226, 18, + 226, 18, 210, 34, 195, 34, 194, 50, 178, 66, 178, 66, + 162, 82, 147, 82, 146, 98, 130, 114, 142, 94, 226, 240, + 34, 240, 34, 240, 34, 232, 184, 0, 19, 32, 44, 19, + 0, 7, 106, 154, 146, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 21, 185, 163, 67, 146, 99, 240, + 34, 240, 34, 114, 130, 114, 130, 114, 115, 114, 114, 147, + 67, 168, 197, 0, 19, 112, 44, 19, 0, 8, 37, 215, + 179, 50, 162, 82, 146, 240, 34, 240, 33, 240, 34, 36, + 186, 148, 67, 131, 98, 130, 115, 114, 130, 114, 130, 114, + 130, 129, 130, 130, 99, 130, 98, 162, 67, 183, 212, 0, + 19, 112, 47, 19, 0, 7, 77, 109, 98, 130, 240, 18, + 240, 19, 240, 18, 240, 18, 240, 34, 240, 18, 240, 34, + 240, 19, 240, 18, 240, 34, 240, 34, 240, 18, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 0, 20, + 32, 43, 19, 0, 8, 21, 200, 163, 67, 131, 99, 114, + 130, 114, 130, 114, 130, 130, 98, 147, 67, 182, 214, 179, + 67, 146, 98, 130, 130, 114, 130, 114, 130, 114, 130, 130, + 98, 147, 67, 168, 212, 0, 19, 112, 44, 19, 0, 8, + 5, 200, 164, 66, 146, 114, 115, 114, 114, 146, 98, 146, + 98, 146, 99, 130, 114, 115, 116, 68, 139, 165, 34, 240, + 34, 240, 18, 240, 34, 130, 99, 130, 98, 146, 67, 183, + 212, 0, 20, 16, 20, 19, 0, 22, 66, 240, 20, 244, + 240, 18, 0, 18, 98, 240, 20, 244, 240, 18, 0, 20, + 30, 19, 0, 22, 66, 240, 20, 244, 240, 18, 0, 18, + 98, 240, 20, 244, 240, 19, 240, 34, 240, 19, 240, 18, + 243, 240, 33, 0, 8, 48, 34, 19, 0, 11, 34, 240, + 19, 228, 228, 228, 227, 228, 228, 228, 244, 240, 20, 240, + 20, 240, 35, 240, 36, 240, 20, 240, 20, 240, 35, 240, + 34, 0, 24, 16, 12, 19, 0, 24, 29, 109, 0, 7, + 125, 109, 0, 36, 34, 19, 0, 10, 2, 240, 35, 240, + 36, 240, 20, 240, 20, 240, 35, 240, 36, 240, 20, 240, + 20, 244, 228, 228, 227, 228, 228, 228, 227, 240, 18, 0, + 25, 48, 39, 19, 0, 8, 6, 186, 131, 84, 114, 130, + 114, 130, 129, 115, 243, 243, 242, 240, 18, 240, 19, 240, + 18, 240, 34, 240, 34, 240, 34, 0, 9, 35, 240, 19, + 240, 18, 0, 20, 16, 55, 19, 0, 8, 37, 200, 163, + 67, 131, 53, 115, 55, 98, 50, 51, 98, 50, 51, 82, + 50, 82, 82, 50, 82, 82, 50, 82, 82, 50, 82, 82, + 50, 82, 82, 50, 82, 83, 50, 50, 114, 50, 50, 114, + 69, 146, 67, 163, 114, 132, 67, 153, 197, 0, 19, 80, + 42, 19, 0, 8, 34, 240, 20, 244, 244, 244, 244, 226, + 34, 210, 34, 210, 34, 210, 34, 210, 35, 178, 66, 178, + 66, 184, 184, 178, 67, 146, 98, 146, 98, 146, 98, 118, + 53, 85, 69, 0, 19, 32, 43, 19, 0, 7, 74, 156, + 146, 98, 146, 114, 130, 114, 130, 114, 130, 114, 130, 98, + 146, 83, 153, 169, 162, 99, 130, 114, 130, 130, 114, 130, + 114, 130, 114, 130, 114, 115, 114, 99, 108, 123, 0, 19, + 80, 46, 19, 0, 8, 21, 34, 154, 131, 68, 115, 99, + 99, 115, 98, 146, 98, 146, 82, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 50, 146, 98, 146, + 99, 130, 115, 98, 147, 67, 168, 197, 0, 19, 96, 45, + 19, 0, 7, 74, 155, 162, 83, 146, 98, 146, 114, 130, + 114, 130, 115, 114, 130, 114, 130, 114, 130, 114, 130, 114, + 130, 114, 130, 114, 130, 114, 115, 114, 114, 130, 114, 130, + 98, 146, 83, 123, 138, 0, 19, 96, 43, 19, 0, 7, + 77, 109, 130, 114, 130, 114, 130, 114, 130, 240, 34, 240, + 34, 66, 178, 66, 184, 184, 178, 66, 178, 66, 178, 240, + 34, 240, 34, 130, 114, 130, 114, 130, 114, 130, 94, 94, + 0, 19, 32, 42, 19, 0, 7, 78, 94, 114, 130, 114, + 130, 114, 130, 114, 240, 34, 240, 34, 66, 178, 66, 184, + 184, 178, 66, 178, 66, 178, 240, 34, 240, 34, 240, 34, + 240, 34, 240, 34, 247, 199, 0, 20, 16, 47, 19, 0, + 8, 20, 18, 169, 147, 52, 146, 83, 130, 114, 130, 114, + 130, 114, 114, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 101, 98, 101, 99, 114, 130, 114, 130, 99, 146, 83, + 147, 52, 169, 195, 34, 0, 19, 64, 47, 19, 0, 7, + 70, 38, 86, 38, 114, 98, 146, 98, 146, 98, 146, 98, + 146, 98, 146, 98, 146, 98, 154, 154, 146, 98, 146, 98, + 146, 98, 146, 98, 146, 98, 146, 98, 146, 98, 146, 98, + 118, 38, 86, 38, 0, 19, 32, 44, 19, 0, 7, 106, + 154, 210, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 218, 154, + 0, 19, 64, 43, 19, 0, 8, 24, 184, 242, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 146, 98, 146, 98, 146, 82, 184, 197, 0, 20, 49, 19, + 0, 7, 70, 53, 86, 53, 114, 98, 146, 82, 162, 82, + 162, 66, 178, 50, 194, 50, 194, 34, 210, 19, 210, 20, + 196, 18, 195, 50, 179, 50, 178, 82, 162, 82, 162, 98, + 146, 98, 146, 114, 102, 68, 86, 68, 0, 19, 32, 45, + 19, 0, 7, 71, 199, 226, 240, 34, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 114, 130, 114, 130, + 114, 130, 114, 109, 109, 0, 19, 48, 65, 19, 0, 7, + 52, 101, 68, 101, 84, 83, 116, 68, 114, 17, 65, 18, + 114, 17, 65, 18, 114, 18, 34, 18, 114, 18, 34, 18, + 114, 33, 33, 34, 114, 33, 33, 34, 114, 36, 34, 114, + 51, 34, 114, 50, 50, 114, 50, 50, 114, 130, 114, 130, + 114, 130, 114, 130, 114, 130, 101, 85, 68, 100, 0, 19, + 48, 62, 19, 0, 7, 69, 54, 85, 54, 115, 82, 148, + 66, 146, 17, 66, 146, 17, 66, 146, 18, 50, 146, 18, + 50, 146, 33, 50, 146, 33, 50, 146, 34, 34, 146, 49, + 34, 146, 49, 34, 146, 50, 18, 146, 50, 18, 146, 65, + 18, 146, 65, 18, 146, 68, 146, 83, 118, 51, 118, 51, + 0, 19, 64, 45, 19, 0, 7, 120, 170, 146, 98, 131, + 99, 114, 130, 114, 130, 114, 130, 114, 130, 114, 130, 114, + 130, 114, 130, 114, 130, 114, 130, 114, 130, 114, 130, 114, + 130, 114, 130, 115, 99, 131, 82, 154, 168, 0, 19, 80, + 42, 19, 0, 7, 74, 155, 162, 83, 146, 99, 130, 114, + 130, 114, 130, 114, 130, 114, 130, 99, 130, 83, 153, 168, + 178, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 246, 214, 0, 20, 32, 58, 19, 0, 7, 120, 170, + 146, 98, 131, 99, 114, 130, 114, 130, 114, 130, 114, 130, + 114, 130, 114, 130, 114, 130, 114, 130, 114, 130, 114, 130, + 114, 130, 114, 50, 50, 114, 66, 34, 115, 50, 19, 130, + 53, 154, 168, 240, 34, 240, 35, 240, 34, 240, 35, 240, + 34, 0, 7, 64, 47, 19, 0, 7, 57, 170, 178, 67, + 162, 83, 146, 98, 146, 98, 146, 98, 146, 83, 146, 67, + 168, 184, 178, 66, 178, 82, 162, 82, 162, 82, 162, 82, + 162, 82, 162, 82, 34, 98, 82, 34, 70, 69, 70, 83, + 0, 19, 48, 44, 19, 0, 8, 5, 33, 169, 147, 52, + 131, 83, 130, 114, 130, 114, 130, 114, 131, 240, 35, 240, + 38, 231, 245, 240, 34, 240, 50, 114, 130, 114, 130, 114, + 130, 115, 99, 116, 67, 138, 146, 37, 0, 19, 96, 47, + 19, 0, 7, 78, 94, 82, 66, 66, 82, 66, 66, 82, + 66, 66, 178, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 232, 184, 0, 19, 80, 46, 19, + 0, 7, 54, 54, 70, 54, 98, 114, 130, 114, 130, 114, + 130, 114, 130, 114, 130, 114, 130, 114, 130, 114, 130, 114, + 130, 114, 130, 114, 130, 114, 130, 114, 130, 114, 131, 98, + 146, 82, 163, 51, 183, 212, 0, 20, 47, 19, 0, 7, + 54, 54, 70, 54, 98, 114, 130, 114, 131, 98, 146, 82, + 162, 82, 162, 82, 162, 82, 163, 51, 178, 50, 194, 50, + 194, 50, 195, 19, 210, 18, 226, 18, 226, 18, 226, 18, + 243, 240, 19, 240, 19, 0, 20, 62, 19, 0, 7, 53, + 85, 69, 85, 82, 146, 98, 146, 98, 146, 113, 145, 129, + 145, 129, 145, 130, 114, 130, 35, 34, 130, 35, 34, 130, + 33, 17, 34, 130, 33, 17, 34, 145, 33, 18, 17, 161, + 18, 18, 17, 161, 18, 18, 17, 164, 33, 17, 163, 51, + 163, 51, 163, 51, 163, 51, 0, 19, 80, 46, 19, 0, + 7, 70, 37, 102, 37, 131, 66, 178, 51, 179, 34, 210, + 19, 210, 18, 244, 243, 240, 19, 240, 19, 240, 20, 229, + 226, 19, 210, 34, 194, 50, 194, 66, 162, 82, 162, 83, + 117, 54, 85, 54, 0, 19, 32, 45, 19, 0, 7, 69, + 69, 85, 69, 114, 98, 147, 82, 162, 66, 178, 66, 179, + 35, 194, 34, 210, 34, 228, 244, 240, 18, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 246, + 214, 0, 19, 96, 46, 19, 0, 7, 92, 124, 114, 115, + 114, 99, 130, 98, 240, 19, 240, 18, 240, 19, 240, 18, + 240, 19, 240, 18, 240, 18, 240, 34, 240, 18, 240, 34, + 240, 18, 98, 146, 98, 130, 114, 115, 114, 124, 124, 0, + 19, 48, 55, 19, 104, 184, 178, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 40, 184, 0, 12, 64, 58, 19, 66, + 240, 34, 240, 35, 240, 34, 240, 35, 240, 34, 240, 34, + 240, 35, 240, 34, 240, 35, 240, 34, 240, 34, 240, 35, + 240, 34, 240, 35, 240, 34, 240, 34, 240, 35, 240, 34, + 240, 35, 240, 34, 240, 34, 240, 35, 240, 34, 240, 35, + 240, 34, 240, 34, 0, 12, 32, 55, 19, 104, 184, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 184, 184, 0, + 12, 64, 15, 19, 0, 8, 34, 246, 180, 20, 163, 67, + 146, 97, 0, 57, 80, 9, 19, 0, 59, 124, 124, 0, + 12, 32, 24, 19, 162, 240, 19, 243, 240, 18, 240, 19, + 240, 18, 240, 34, 240, 34, 240, 36, 244, 240, 19, 0, + 50, 112, 32, 19, 0, 21, 118, 201, 162, 83, 240, 50, + 240, 34, 199, 169, 132, 82, 130, 114, 114, 130, 114, 130, + 114, 130, 130, 84, 142, 118, 36, 0, 19, 32, 46, 19, + 0, 7, 68, 244, 240, 34, 240, 34, 240, 34, 240, 34, + 240, 34, 35, 201, 164, 51, 147, 82, 146, 99, 130, 114, + 130, 114, 130, 114, 130, 114, 130, 114, 130, 99, 131, 82, + 148, 51, 153, 162, 20, 0, 19, 112, 33, 19, 0, 22, + 54, 200, 163, 66, 146, 98, 146, 240, 18, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 50, 113, 147, 82, 163, 66, + 183, 213, 0, 19, 96, 45, 19, 0, 8, 53, 229, 240, + 34, 240, 34, 240, 34, 240, 34, 181, 18, 169, 147, 52, + 130, 99, 130, 114, 114, 130, 114, 130, 114, 130, 114, 130, + 114, 130, 115, 114, 130, 99, 131, 68, 156, 148, 36, 0, + 19, 32, 31, 19, 0, 22, 53, 215, 178, 67, 146, 98, + 131, 114, 114, 130, 124, 124, 114, 240, 35, 240, 34, 114, + 131, 98, 147, 66, 184, 197, 0, 19, 96, 41, 19, 0, + 8, 52, 230, 195, 34, 194, 240, 34, 240, 34, 218, 154, + 210, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 218, 154, 0, + 19, 80, 46, 19, 0, 22, 36, 35, 155, 114, 51, 34, + 99, 67, 146, 98, 146, 98, 146, 98, 147, 67, 163, 50, + 168, 178, 20, 194, 240, 34, 240, 57, 156, 114, 115, 98, + 162, 82, 162, 82, 162, 83, 131, 99, 99, 138, 182, 96, + 47, 19, 0, 7, 68, 244, 240, 34, 240, 34, 240, 34, + 240, 34, 240, 34, 36, 185, 164, 51, 147, 82, 146, 98, + 146, 98, 146, 98, 146, 98, 146, 98, 146, 98, 146, 98, + 146, 98, 146, 98, 119, 22, 87, 22, 0, 19, 32, 40, + 19, 0, 8, 19, 240, 19, 240, 19, 0, 8, 87, 199, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 203, 139, + 0, 19, 64, 54, 19, 0, 8, 83, 240, 19, 240, 19, + 0, 8, 72, 184, 240, 34, 240, 34, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 240, 34, 146, 82, 162, 67, 168, 198, 112, 47, 19, 0, + 7, 53, 229, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 54, 130, 54, 130, 67, 162, 51, 178, 50, 194, 34, + 210, 19, 215, 195, 34, 195, 50, 178, 66, 178, 82, 162, + 98, 104, 22, 72, 22, 0, 19, 32, 45, 19, 0, 7, + 87, 199, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 204, 124, 0, 19, 48, 50, 19, 0, 21, 84, 19, 35, + 110, 115, 35, 34, 115, 35, 34, 114, 50, 50, 114, 50, + 50, 114, 50, 50, 114, 50, 50, 114, 50, 50, 114, 50, + 50, 114, 50, 50, 114, 50, 50, 114, 50, 50, 85, 20, + 21, 53, 20, 21, 0, 19, 16, 36, 19, 0, 21, 100, + 36, 155, 164, 51, 147, 82, 146, 98, 146, 98, 146, 98, + 146, 98, 146, 98, 146, 98, 146, 98, 146, 98, 146, 98, + 119, 22, 87, 22, 0, 19, 32, 33, 19, 0, 22, 52, + 216, 178, 67, 146, 98, 146, 99, 114, 130, 114, 130, 114, + 130, 114, 130, 114, 130, 115, 99, 130, 98, 147, 66, 184, + 212, 0, 19, 112, 46, 19, 0, 21, 100, 36, 155, 164, + 51, 147, 82, 146, 99, 130, 114, 130, 114, 130, 114, 130, + 114, 130, 114, 130, 99, 131, 82, 148, 50, 169, 162, 20, + 194, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 246, + 214, 160, 47, 19, 0, 22, 20, 34, 169, 147, 52, 130, + 99, 130, 114, 114, 130, 114, 130, 114, 130, 114, 130, 114, + 130, 115, 99, 130, 99, 146, 68, 154, 180, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 232, 184, + 32, 33, 19, 0, 21, 117, 51, 118, 22, 165, 34, 164, + 243, 240, 19, 240, 18, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 233, 154, 0, 19, 96, 32, 19, + 0, 22, 40, 154, 131, 83, 130, 114, 130, 114, 132, 240, + 23, 231, 240, 35, 130, 130, 114, 130, 115, 114, 116, 83, + 123, 130, 22, 0, 19, 96, 40, 19, 0, 12, 114, 240, + 34, 240, 34, 240, 34, 219, 139, 194, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 66, 178, + 66, 178, 66, 179, 35, 198, 228, 0, 19, 80, 36, 19, + 0, 21, 100, 53, 116, 53, 146, 98, 146, 98, 146, 98, + 146, 98, 146, 98, 146, 98, 146, 98, 146, 98, 146, 98, + 146, 98, 147, 52, 171, 149, 20, 0, 19, 32, 33, 19, + 0, 21, 102, 38, 86, 38, 114, 98, 146, 98, 162, 66, + 178, 66, 178, 66, 193, 65, 210, 34, 210, 34, 210, 34, + 228, 244, 244, 240, 18, 0, 20, 42, 19, 0, 21, 86, + 54, 70, 54, 97, 145, 130, 114, 130, 114, 130, 114, 130, + 50, 34, 130, 35, 34, 145, 35, 33, 161, 33, 18, 17, + 164, 20, 164, 20, 164, 20, 163, 51, 178, 50, 0, 19, + 96, 36, 19, 0, 21, 102, 38, 86, 38, 130, 66, 194, + 34, 210, 34, 228, 240, 18, 240, 34, 240, 20, 241, 18, + 226, 34, 194, 66, 178, 66, 134, 38, 86, 38, 0, 19, + 32, 49, 19, 0, 21, 101, 38, 101, 38, 114, 98, 161, + 97, 178, 66, 178, 66, 193, 66, 194, 49, 210, 34, 225, + 34, 226, 17, 242, 17, 240, 19, 240, 19, 240, 18, 240, + 34, 240, 34, 240, 34, 240, 18, 210, 34, 210, 18, 229, + 243, 192, 29, 19, 0, 21, 109, 109, 98, 115, 114, 99, + 240, 18, 240, 19, 243, 243, 243, 243, 243, 98, 130, 114, + 114, 130, 109, 109, 0, 19, 48, 53, 19, 196, 214, 195, + 240, 18, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 19, 198, 214, 240, 35, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 35, 240, 38, 244, 0, 12, 32, + 58, 19, 146, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, 34, 240, + 34, 240, 34, 240, 34, 240, 34, 0, 12, 112, 53, 19, + 69, 230, 240, 35, 240, 34, 240, 34, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 35, 240, 38, + 214, 195, 240, 18, 240, 34, 240, 34, 240, 34, 240, 34, + 240, 34, 240, 34, 240, 34, 240, 34, 240, 19, 198, 212, + 0, 13, 32, 15, 19, 0, 8, 3, 50, 165, 19, 147, + 21, 162, 51, 0, 60, 16, +}; + +//***************************************************************************** +// +// The font definition for the 34 point Cmtt font. +// +//***************************************************************************** +const tFont g_sFontCmtt34 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 15, + + // + // The height of the font. + // + 32, + + // + // The baseline of the font. + // + 24, + + // + // The offset to each character in the font. + // + { + 0, 4, 46, 73, 118, 179, 249, 302, + 327, 382, 439, 473, 508, 530, 539, 551, + 609, 654, 698, 741, 784, 826, 870, 914, + 961, 1004, 1048, 1068, 1098, 1132, 1144, 1178, + 1217, 1272, 1314, 1357, 1403, 1448, 1491, 1533, + 1580, 1627, 1671, 1714, 1763, 1808, 1873, 1935, + 1980, 2022, 2080, 2127, 2171, 2218, 2264, 2311, + 2373, 2419, 2464, 2510, 2565, 2623, 2678, 2693, + 2702, 2726, 2758, 2804, 2837, 2882, 2913, 2954, + 3000, 3047, 3087, 3141, 3188, 3233, 3283, 3319, + 3352, 3398, 3445, 3478, 3510, 3550, 3586, 3619, + 3661, 3697, 3746, 3775, 3828, 3886, 3939, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmtt34Data +}; diff --git a/grlib/fonts/fontcmtt36.c b/grlib/fonts/fontcmtt36.c new file mode 100644 index 0000000..4e07d14 --- /dev/null +++ b/grlib/fonts/fontcmtt36.c @@ -0,0 +1,467 @@ +//***************************************************************************** +// +// fontcmtt36.c - Font definition for the 36pt Cmtt font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmtt +// Size: 36 point +// Bold: no +// Italic: no +// Memory usage: 4524 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 36 point Cmtt font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmtt36Data[4321] = +{ + 4, 20, 0, 85, 47, 20, 0, 8, 98, 240, 35, 240, + 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, + 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, + 35, 240, 35, 0, 9, 98, 240, 35, 240, 35, 240, 49, + 0, 21, 16, 29, 20, 0, 8, 35, 51, 179, 51, 179, + 51, 179, 51, 179, 51, 179, 51, 179, 51, 179, 51, 179, + 51, 178, 66, 194, 66, 0, 50, 96, 48, 20, 0, 8, + 65, 66, 194, 66, 194, 66, 194, 66, 194, 51, 194, 50, + 210, 50, 158, 110, 147, 50, 195, 50, 194, 66, 194, 66, + 194, 51, 194, 51, 158, 110, 146, 50, 210, 50, 195, 50, + 194, 66, 194, 66, 194, 65, 0, 21, 68, 20, 146, 240, + 50, 240, 50, 240, 23, 201, 163, 18, 35, 146, 34, 51, + 114, 50, 66, 114, 50, 66, 114, 50, 66, 114, 50, 66, + 115, 34, 227, 18, 231, 247, 246, 226, 35, 210, 51, 115, + 34, 66, 115, 34, 66, 115, 34, 66, 115, 34, 66, 115, + 34, 50, 147, 18, 35, 169, 198, 240, 18, 240, 50, 240, + 50, 0, 13, 80, 74, 20, 82, 114, 132, 98, 118, 67, + 114, 34, 66, 130, 34, 66, 130, 34, 51, 130, 34, 50, + 147, 18, 50, 164, 51, 178, 66, 240, 50, 240, 35, 240, + 34, 240, 50, 240, 35, 240, 34, 240, 50, 240, 35, 240, + 34, 240, 50, 66, 179, 52, 162, 51, 18, 146, 50, 34, + 131, 50, 34, 130, 66, 34, 130, 66, 34, 115, 67, 18, + 114, 100, 130, 114, 0, 13, 59, 20, 0, 8, 51, 240, + 21, 242, 34, 210, 50, 210, 50, 210, 50, 210, 50, 210, + 34, 22, 114, 19, 22, 132, 65, 180, 50, 179, 66, 164, + 65, 165, 50, 162, 19, 34, 146, 50, 33, 162, 68, 162, + 68, 162, 82, 66, 82, 83, 50, 98, 38, 34, 102, 37, + 132, 67, 0, 20, 64, 28, 20, 0, 8, 98, 240, 36, + 240, 20, 240, 35, 240, 50, 240, 50, 240, 50, 240, 34, + 240, 35, 240, 19, 240, 34, 0, 51, 32, 62, 20, 194, + 240, 35, 240, 19, 240, 19, 240, 34, 240, 34, 240, 50, + 240, 34, 240, 50, 240, 50, 240, 34, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 66, 240, 50, 240, 50, 240, 66, 240, 51, 240, 50, + 240, 51, 240, 51, 240, 51, 240, 50, 0, 13, 32, 61, + 20, 98, 240, 51, 240, 51, 240, 51, 240, 50, 240, 66, + 240, 50, 240, 66, 240, 50, 240, 50, 240, 66, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 34, 240, 50, 240, 50, 240, 34, 240, 50, + 240, 34, 240, 35, 240, 19, 240, 19, 240, 34, 0, 14, + 39, 20, 0, 18, 82, 240, 50, 240, 50, 210, 50, 50, + 131, 34, 35, 147, 18, 19, 184, 214, 230, 216, 164, 18, + 20, 131, 34, 35, 130, 50, 50, 210, 240, 50, 240, 50, + 0, 28, 80, 37, 20, 0, 16, 18, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 206, 110, + 194, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 0, 28, 80, 23, 20, 0, 53, 83, 240, 21, 245, + 245, 240, 20, 240, 50, 240, 34, 240, 35, 244, 240, 34, + 0, 8, 96, 9, 20, 0, 35, 77, 125, 0, 45, 48, + 16, 20, 0, 53, 82, 240, 36, 240, 20, 240, 20, 240, + 34, 0, 21, 16, 62, 20, 242, 240, 50, 240, 35, 240, + 34, 240, 35, 240, 34, 240, 50, 240, 35, 240, 34, 240, + 35, 240, 34, 240, 50, 240, 35, 240, 34, 240, 35, 240, + 34, 240, 35, 240, 34, 240, 50, 240, 35, 240, 34, 240, + 35, 240, 34, 240, 50, 240, 35, 240, 34, 240, 35, 240, + 34, 240, 50, 0, 14, 32, 48, 20, 0, 8, 83, 247, + 210, 51, 178, 82, 162, 114, 146, 114, 146, 114, 130, 146, + 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, + 114, 146, 115, 130, 130, 114, 146, 114, 147, 98, 162, 82, + 179, 51, 199, 243, 0, 21, 49, 20, 0, 8, 82, 240, + 50, 240, 50, 240, 35, 240, 20, 230, 227, 18, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 234, 170, 0, 20, 80, 50, 20, 0, 8, 54, + 216, 179, 67, 162, 114, 130, 131, 114, 146, 114, 146, 114, + 146, 240, 50, 240, 50, 240, 34, 240, 50, 240, 34, 240, + 34, 240, 35, 240, 19, 240, 19, 240, 19, 240, 18, 240, + 34, 114, 130, 130, 125, 125, 0, 20, 48, 47, 20, 0, + 8, 54, 201, 164, 67, 147, 99, 131, 114, 131, 114, 240, + 50, 240, 50, 240, 34, 240, 35, 199, 231, 240, 36, 240, + 50, 240, 51, 240, 50, 113, 162, 99, 146, 99, 146, 99, + 130, 132, 68, 154, 198, 0, 20, 112, 46, 20, 0, 8, + 100, 240, 20, 245, 242, 18, 227, 18, 226, 34, 210, 50, + 210, 50, 194, 66, 194, 66, 178, 82, 178, 82, 162, 98, + 162, 98, 146, 114, 159, 95, 226, 240, 50, 240, 50, 240, + 50, 248, 200, 0, 20, 48, 48, 20, 0, 8, 27, 155, + 146, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 21, 202, 163, 83, 146, 114, 240, 51, 240, + 50, 240, 50, 115, 130, 115, 130, 115, 115, 115, 114, 147, + 67, 184, 214, 0, 20, 112, 47, 20, 0, 8, 100, 231, + 195, 51, 163, 67, 162, 83, 146, 113, 162, 240, 49, 240, + 50, 240, 50, 36, 202, 164, 67, 147, 98, 146, 130, 130, + 130, 130, 130, 130, 130, 145, 130, 146, 114, 146, 98, 178, + 67, 199, 228, 0, 21, 53, 20, 240, 240, 241, 240, 61, + 125, 114, 131, 114, 115, 240, 34, 240, 34, 240, 50, 240, + 34, 240, 50, 240, 34, 240, 50, 240, 50, 240, 34, 240, + 50, 240, 50, 240, 50, 240, 34, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 0, 21, 32, 47, 20, + 0, 8, 69, 217, 163, 83, 146, 114, 130, 146, 114, 146, + 114, 146, 114, 146, 130, 114, 162, 82, 199, 215, 194, 82, + 162, 114, 130, 146, 114, 146, 114, 146, 114, 146, 115, 130, + 130, 114, 148, 67, 169, 213, 0, 20, 112, 48, 20, 0, + 8, 68, 246, 210, 66, 178, 98, 162, 98, 146, 129, 146, + 130, 130, 130, 130, 130, 130, 130, 131, 114, 146, 99, 147, + 68, 170, 196, 34, 240, 50, 240, 49, 240, 50, 147, 98, + 147, 82, 163, 66, 199, 229, 0, 21, 16, 27, 20, 0, + 26, 18, 240, 36, 240, 20, 240, 20, 240, 34, 0, 17, + 34, 240, 36, 240, 20, 240, 20, 240, 34, 0, 21, 16, + 37, 20, 0, 26, 34, 240, 36, 240, 20, 240, 20, 240, + 34, 0, 17, 34, 240, 36, 240, 20, 240, 20, 240, 35, + 240, 50, 240, 35, 240, 34, 240, 19, 240, 49, 0, 8, + 96, 36, 20, 0, 14, 50, 240, 35, 244, 244, 244, 228, + 244, 244, 229, 243, 240, 37, 240, 36, 240, 36, 240, 36, + 240, 52, 240, 36, 240, 36, 240, 51, 240, 50, 0, 25, + 48, 13, 20, 0, 27, 126, 110, 0, 10, 110, 110, 0, + 37, 112, 36, 20, 0, 13, 2, 240, 51, 240, 52, 240, + 36, 240, 36, 240, 52, 240, 36, 240, 36, 240, 37, 240, + 35, 245, 228, 244, 244, 228, 244, 244, 243, 240, 34, 0, + 26, 96, 46, 20, 0, 8, 54, 202, 163, 83, 131, 114, + 131, 114, 131, 114, 240, 34, 240, 20, 240, 18, 240, 35, + 240, 34, 240, 34, 240, 50, 240, 50, 240, 50, 240, 50, + 0, 9, 98, 240, 35, 240, 35, 240, 50, 0, 21, 16, + 60, 20, 0, 8, 85, 216, 180, 51, 147, 98, 146, 69, + 131, 55, 114, 51, 20, 114, 50, 51, 98, 50, 82, 98, + 50, 82, 98, 50, 82, 98, 50, 82, 98, 50, 82, 98, + 50, 82, 98, 50, 82, 114, 50, 50, 130, 51, 34, 131, + 53, 162, 67, 179, 114, 148, 67, 169, 213, 0, 20, 96, + 51, 20, 0, 8, 83, 240, 35, 240, 35, 240, 18, 18, + 242, 18, 242, 18, 242, 18, 242, 18, 227, 19, 210, 50, + 210, 50, 210, 50, 210, 50, 195, 51, 178, 67, 185, 185, + 178, 82, 163, 83, 146, 114, 146, 114, 118, 54, 86, 54, + 0, 20, 32, 47, 20, 0, 7, 122, 171, 178, 83, 162, + 99, 146, 114, 146, 114, 146, 114, 146, 114, 146, 98, 162, + 83, 169, 185, 178, 98, 162, 114, 146, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 114, 146, 99, 124, 139, 0, + 20, 96, 50, 20, 0, 8, 69, 34, 170, 147, 53, 131, + 84, 130, 115, 114, 131, 114, 146, 114, 146, 98, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 51, + 240, 50, 146, 114, 146, 130, 130, 131, 98, 163, 67, 184, + 213, 0, 20, 112, 48, 20, 0, 7, 121, 187, 178, 83, + 162, 98, 162, 99, 146, 114, 146, 114, 146, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 114, 146, 114, 146, 114, 146, 98, 162, 83, + 139, 153, 0, 21, 47, 20, 0, 7, 126, 110, 130, 130, + 130, 130, 130, 130, 130, 129, 146, 240, 50, 240, 50, 66, + 194, 66, 200, 200, 194, 66, 194, 66, 194, 240, 50, 240, + 50, 240, 50, 146, 114, 146, 114, 146, 114, 146, 95, 95, + 0, 20, 32, 47, 20, 0, 7, 126, 110, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 240, 50, 240, 50, 240, 50, + 82, 178, 82, 185, 185, 178, 82, 178, 82, 178, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 23, 215, 0, + 21, 32, 51, 20, 0, 8, 68, 34, 185, 163, 52, 146, + 99, 146, 99, 130, 130, 130, 130, 130, 130, 114, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 102, 98, 102, 99, + 130, 130, 130, 130, 130, 131, 99, 146, 99, 163, 52, 185, + 196, 34, 0, 20, 64, 51, 20, 0, 7, 118, 54, 86, + 54, 114, 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, + 114, 146, 114, 146, 114, 155, 155, 146, 114, 146, 114, 146, + 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, + 114, 118, 54, 86, 54, 0, 20, 32, 48, 20, 0, 8, + 12, 140, 210, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 220, 140, 0, 20, 64, 48, 20, 0, 8, + 88, 200, 240, 18, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 147, 98, + 147, 98, 148, 66, 184, 229, 0, 21, 53, 20, 0, 7, + 118, 54, 86, 54, 114, 99, 146, 98, 162, 82, 178, 67, + 178, 66, 194, 50, 210, 35, 210, 34, 226, 20, 210, 20, + 212, 19, 195, 50, 195, 50, 194, 82, 178, 82, 178, 98, + 162, 98, 162, 114, 146, 114, 118, 69, 86, 69, 0, 20, + 32, 49, 20, 0, 8, 7, 215, 242, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 114, 146, 114, 146, 114, 146, 114, 125, 125, 0, + 20, 48, 73, 20, 0, 7, 101, 117, 53, 117, 84, 84, + 116, 84, 114, 17, 81, 18, 114, 18, 65, 18, 114, 18, + 50, 18, 114, 18, 50, 18, 114, 33, 49, 34, 114, 34, + 18, 34, 114, 34, 18, 34, 114, 49, 17, 50, 114, 49, + 17, 50, 114, 51, 50, 114, 65, 66, 114, 146, 114, 146, + 114, 146, 114, 146, 114, 146, 114, 146, 86, 86, 54, 86, + 0, 20, 16, 68, 20, 0, 7, 117, 70, 85, 70, 116, + 82, 148, 82, 146, 17, 82, 146, 17, 82, 146, 18, 66, + 146, 18, 66, 146, 33, 66, 146, 34, 50, 146, 34, 50, + 146, 49, 50, 146, 50, 34, 146, 50, 34, 146, 65, 34, + 146, 65, 34, 146, 66, 18, 146, 66, 18, 146, 81, 18, + 146, 84, 146, 84, 118, 67, 118, 67, 0, 20, 64, 49, + 20, 0, 8, 56, 171, 147, 83, 131, 115, 114, 146, 114, + 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, + 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, + 146, 114, 146, 115, 115, 131, 83, 155, 168, 0, 20, 96, + 47, 20, 0, 7, 122, 172, 162, 99, 146, 114, 146, 115, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 115, 130, 114, + 146, 99, 154, 168, 194, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 22, 230, 0, 21, 48, 62, + 20, 0, 8, 56, 171, 147, 83, 131, 115, 114, 146, 114, + 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, + 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, + 66, 50, 114, 67, 34, 115, 66, 19, 131, 53, 155, 169, + 240, 50, 240, 51, 240, 35, 240, 51, 240, 35, 0, 7, + 112, 51, 20, 0, 7, 121, 187, 178, 83, 162, 98, 162, + 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, 98, 162, + 83, 169, 185, 178, 82, 178, 98, 162, 98, 162, 98, 162, + 98, 162, 98, 162, 98, 18, 114, 98, 18, 86, 84, 86, + 83, 0, 20, 48, 49, 20, 0, 8, 53, 34, 170, 147, + 68, 146, 99, 130, 115, 130, 130, 130, 130, 131, 113, 162, + 240, 53, 240, 23, 232, 240, 21, 240, 35, 240, 51, 240, + 50, 114, 146, 114, 146, 114, 146, 115, 114, 132, 83, 139, + 146, 37, 0, 20, 112, 52, 20, 0, 7, 127, 95, 82, + 66, 82, 82, 66, 82, 82, 66, 82, 82, 66, 81, 194, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 248, 200, 0, 20, 96, 50, 20, 0, + 7, 102, 70, 70, 70, 98, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 146, 98, 162, 98, 178, 66, 200, 228, 0, 21, 52, + 20, 0, 7, 118, 54, 86, 54, 114, 114, 146, 114, 146, + 114, 147, 83, 162, 82, 178, 82, 178, 82, 178, 82, 179, + 50, 210, 50, 210, 50, 210, 50, 211, 34, 226, 18, 242, + 18, 242, 18, 242, 18, 242, 18, 240, 19, 240, 35, 240, + 35, 0, 21, 61, 20, 0, 7, 101, 101, 69, 101, 82, + 162, 98, 162, 98, 161, 129, 161, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 50, 50, 130, 51, 34, 130, 36, 34, + 145, 36, 33, 161, 36, 33, 162, 17, 33, 18, 162, 17, + 36, 164, 36, 164, 36, 164, 36, 163, 67, 163, 67, 178, + 66, 0, 20, 96, 52, 20, 0, 7, 118, 37, 118, 37, + 147, 66, 194, 51, 194, 50, 211, 34, 226, 18, 245, 240, + 20, 240, 19, 240, 35, 240, 35, 240, 36, 240, 20, 242, + 18, 242, 19, 211, 34, 210, 51, 194, 66, 178, 82, 178, + 83, 133, 54, 101, 54, 0, 20, 48, 51, 20, 0, 7, + 117, 69, 101, 69, 130, 98, 162, 98, 163, 67, 178, 66, + 195, 50, 195, 34, 226, 34, 227, 18, 244, 240, 20, 240, + 20, 240, 34, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 22, 230, 0, 20, 112, 50, + 20, 0, 8, 13, 125, 114, 131, 114, 115, 130, 114, 146, + 99, 240, 34, 240, 35, 240, 34, 240, 35, 240, 34, 240, + 35, 240, 34, 240, 34, 240, 50, 240, 34, 240, 50, 240, + 34, 114, 131, 114, 130, 130, 115, 130, 125, 125, 0, 20, + 48, 59, 20, 104, 200, 194, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 56, 200, 0, 13, 32, + 62, 20, 66, 240, 50, 240, 51, 240, 50, 240, 51, 240, + 50, 240, 50, 240, 51, 240, 50, 240, 51, 240, 50, 240, + 51, 240, 35, 240, 50, 240, 51, 240, 50, 240, 51, 240, + 35, 240, 50, 240, 51, 240, 50, 240, 51, 240, 50, 240, + 50, 240, 51, 240, 50, 240, 51, 240, 50, 240, 50, 0, + 12, 112, 59, 20, 104, 200, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 200, 200, 0, 13, + 32, 17, 20, 0, 8, 82, 240, 37, 231, 181, 20, 163, + 67, 177, 98, 0, 63, 16, 9, 20, 0, 68, 13, 125, + 0, 12, 112, 28, 20, 240, 240, 18, 240, 35, 240, 19, + 240, 34, 240, 34, 240, 50, 240, 50, 240, 52, 240, 20, + 240, 35, 240, 34, 0, 56, 16, 34, 20, 0, 25, 102, + 201, 179, 67, 163, 83, 240, 50, 240, 50, 215, 185, 149, + 66, 147, 98, 131, 114, 131, 114, 131, 114, 147, 83, 158, + 134, 36, 0, 20, 32, 50, 20, 0, 7, 117, 245, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 36, + 202, 164, 51, 163, 98, 146, 114, 146, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 131, 98, 147, 83, 148, + 51, 169, 178, 36, 0, 20, 96, 35, 20, 0, 26, 22, + 201, 163, 67, 147, 83, 146, 240, 34, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 66, 114, 147, 98, 163, + 66, 200, 213, 0, 20, 112, 49, 20, 0, 8, 101, 245, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 197, 18, + 185, 163, 52, 147, 83, 146, 114, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 146, 99, 146, 99, 163, + 52, 173, 148, 37, 0, 20, 32, 33, 20, 0, 26, 20, + 232, 179, 67, 147, 98, 146, 115, 115, 130, 114, 146, 125, + 125, 114, 240, 51, 240, 50, 130, 131, 114, 148, 51, 185, + 213, 0, 20, 96, 45, 20, 0, 8, 116, 246, 226, 34, + 210, 240, 50, 240, 50, 240, 50, 234, 170, 226, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 234, 170, 0, 20, + 80, 48, 20, 0, 25, 116, 36, 156, 115, 35, 50, 114, + 67, 162, 98, 162, 98, 162, 98, 162, 98, 163, 67, 179, + 35, 184, 194, 20, 210, 240, 50, 240, 73, 172, 130, 131, + 98, 178, 82, 178, 82, 178, 83, 147, 99, 100, 139, 182, + 112, 51, 20, 0, 7, 101, 245, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 36, 201, 180, 51, 163, + 82, 163, 82, 162, 98, 162, 98, 162, 98, 162, 98, 162, + 98, 162, 98, 162, 98, 162, 98, 162, 98, 120, 23, 72, + 23, 0, 20, 32, 44, 20, 0, 8, 82, 240, 35, 240, + 35, 240, 50, 0, 9, 23, 215, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 220, 140, 0, 20, 64, + 58, 20, 0, 9, 18, 240, 35, 240, 35, 240, 50, 0, + 9, 23, 215, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 163, 66, 179, 51, 184, 214, 128, 51, 20, + 0, 7, 101, 245, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 55, 130, 55, 130, 82, 178, 66, 194, + 51, 194, 35, 210, 19, 230, 228, 18, 211, 35, 194, 66, + 194, 82, 178, 83, 162, 98, 120, 38, 72, 38, 0, 20, + 32, 49, 20, 0, 8, 7, 215, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 220, 140, 0, + 20, 64, 53, 20, 0, 25, 36, 19, 36, 110, 131, 36, + 34, 115, 35, 50, 114, 50, 66, 114, 50, 66, 114, 50, + 66, 114, 50, 66, 114, 50, 66, 114, 50, 66, 114, 50, + 66, 114, 50, 66, 114, 50, 66, 114, 50, 66, 85, 21, + 21, 53, 21, 21, 0, 20, 16, 38, 20, 0, 25, 37, + 36, 156, 180, 51, 163, 82, 163, 82, 162, 98, 162, 98, + 162, 98, 162, 98, 162, 98, 162, 98, 162, 98, 162, 98, + 162, 98, 120, 23, 72, 23, 0, 20, 32, 35, 20, 0, + 26, 5, 231, 195, 51, 162, 99, 146, 114, 130, 146, 114, + 146, 114, 146, 114, 146, 114, 146, 115, 130, 130, 114, 147, + 83, 163, 51, 199, 229, 0, 20, 112, 48, 20, 0, 25, + 53, 36, 157, 164, 51, 163, 98, 146, 114, 146, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 131, 98, 147, + 83, 148, 51, 169, 178, 36, 194, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 248, 200, 144, 50, 20, 0, 25, + 116, 34, 170, 147, 68, 131, 99, 130, 115, 114, 146, 114, + 146, 114, 146, 114, 146, 114, 146, 114, 146, 130, 115, 131, + 99, 147, 53, 167, 18, 181, 34, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 248, 200, 32, 36, 20, + 0, 25, 54, 52, 118, 23, 166, 34, 164, 240, 19, 240, + 35, 240, 34, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 235, 155, 0, 20, 96, 34, 20, + 0, 25, 121, 155, 131, 99, 130, 130, 130, 130, 131, 240, + 54, 248, 240, 22, 240, 51, 114, 146, 115, 130, 115, 130, + 117, 82, 140, 130, 38, 0, 20, 96, 44, 20, 0, 13, + 66, 240, 50, 240, 50, 240, 50, 240, 50, 236, 140, 194, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 82, 178, 82, 178, 82, 179, 51, 199, + 228, 0, 20, 96, 38, 20, 0, 25, 37, 53, 117, 53, + 162, 98, 162, 98, 162, 98, 162, 98, 162, 98, 162, 98, + 162, 98, 162, 98, 162, 98, 162, 98, 162, 83, 163, 52, + 188, 149, 21, 0, 20, 32, 38, 20, 0, 25, 54, 54, + 86, 54, 114, 114, 162, 97, 178, 82, 178, 82, 178, 82, + 194, 50, 210, 50, 210, 50, 226, 33, 242, 18, 242, 18, + 242, 18, 240, 19, 240, 35, 0, 21, 45, 20, 0, 25, + 38, 70, 70, 70, 98, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 50, 49, 162, 35, 33, 162, 20, 18, 162, + 20, 18, 162, 18, 17, 18, 164, 36, 164, 36, 179, 35, + 194, 66, 0, 20, 96, 40, 20, 0, 25, 54, 39, 86, + 39, 130, 67, 194, 50, 211, 18, 242, 18, 240, 19, 240, + 34, 240, 51, 240, 18, 18, 242, 18, 226, 50, 195, 51, + 178, 82, 134, 54, 86, 54, 0, 20, 32, 53, 20, 0, + 25, 53, 54, 101, 54, 114, 98, 177, 98, 178, 82, 178, + 81, 209, 66, 210, 50, 210, 50, 225, 34, 242, 18, 242, + 18, 240, 17, 17, 240, 35, 240, 35, 240, 35, 240, 34, + 240, 50, 240, 50, 240, 49, 226, 34, 226, 18, 245, 240, + 19, 208, 36, 20, 0, 25, 77, 125, 114, 115, 130, 115, + 129, 115, 240, 19, 240, 19, 240, 19, 240, 19, 240, 19, + 240, 35, 240, 19, 98, 131, 114, 115, 130, 125, 125, 0, + 20, 48, 57, 20, 196, 230, 226, 240, 34, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 35, 214, 230, 240, 51, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 51, 240, 54, 240, 20, 0, 13, 62, + 20, 146, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 0, 13, + 80, 57, 20, 68, 240, 22, 240, 51, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 51, 240, 54, 230, 211, 240, 34, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 35, 214, 228, 0, 14, 15, 20, + 0, 8, 52, 50, 166, 19, 147, 37, 162, 67, 0, 68, + 32, +}; + +//***************************************************************************** +// +// The font definition for the 36 point Cmtt font. +// +//***************************************************************************** +const tFont g_sFontCmtt36 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 16, + + // + // The height of the font. + // + 34, + + // + // The baseline of the font. + // + 26, + + // + // The offset to each character in the font. + // + { + 0, 4, 51, 80, 128, 196, 270, 329, + 357, 419, 480, 519, 556, 579, 588, 604, + 666, 714, 763, 813, 860, 906, 954, 1001, + 1054, 1101, 1149, 1176, 1213, 1249, 1262, 1298, + 1344, 1404, 1455, 1502, 1552, 1600, 1647, 1694, + 1745, 1796, 1844, 1892, 1945, 1994, 2067, 2135, + 2184, 2231, 2293, 2344, 2393, 2445, 2495, 2547, + 2608, 2660, 2711, 2761, 2820, 2882, 2941, 2958, + 2967, 2995, 3029, 3079, 3114, 3163, 3196, 3241, + 3289, 3340, 3384, 3442, 3493, 3542, 3595, 3633, + 3668, 3716, 3766, 3802, 3836, 3880, 3918, 3956, + 4001, 4041, 4094, 4130, 4187, 4249, 4306, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmtt36Data +}; diff --git a/grlib/fonts/fontcmtt38.c b/grlib/fonts/fontcmtt38.c new file mode 100644 index 0000000..94caf4e --- /dev/null +++ b/grlib/fonts/fontcmtt38.c @@ -0,0 +1,467 @@ +//***************************************************************************** +// +// fontcmtt38.c - Font definition for the 38pt Cmtt font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmtt +// Size: 38 point +// Bold: no +// Italic: no +// Memory usage: 4528 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 38 point Cmtt font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmtt38Data[4325] = +{ + 4, 20, 0, 85, 47, 20, 0, 8, 98, 240, 35, 240, + 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, + 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, 35, 240, + 35, 240, 35, 0, 9, 98, 240, 35, 240, 35, 240, 49, + 0, 21, 16, 29, 20, 0, 8, 35, 51, 179, 51, 179, + 51, 179, 51, 179, 51, 179, 51, 179, 51, 179, 51, 179, + 51, 179, 51, 193, 81, 0, 50, 96, 49, 20, 0, 8, + 66, 65, 210, 51, 194, 51, 179, 50, 195, 50, 195, 50, + 194, 66, 143, 95, 146, 51, 194, 51, 194, 51, 179, 51, + 179, 50, 195, 50, 159, 95, 130, 66, 194, 51, 194, 51, + 179, 51, 179, 50, 209, 66, 0, 20, 112, 68, 20, 162, + 240, 50, 240, 50, 240, 22, 202, 147, 34, 19, 146, 50, + 35, 114, 66, 50, 114, 66, 50, 114, 66, 50, 114, 66, + 50, 115, 50, 212, 18, 231, 232, 246, 226, 19, 226, 35, + 115, 50, 50, 115, 50, 50, 115, 50, 50, 115, 50, 50, + 130, 50, 34, 147, 34, 19, 169, 199, 240, 18, 240, 50, + 240, 50, 0, 13, 64, 74, 20, 82, 114, 132, 98, 118, + 67, 114, 34, 66, 130, 34, 66, 130, 34, 51, 130, 34, + 50, 147, 18, 50, 164, 51, 178, 66, 240, 50, 240, 35, + 240, 34, 240, 50, 240, 35, 240, 34, 240, 50, 240, 35, + 240, 34, 240, 50, 66, 179, 52, 162, 51, 18, 146, 50, + 34, 131, 50, 34, 130, 66, 34, 130, 66, 34, 115, 67, + 18, 114, 100, 130, 114, 0, 13, 59, 20, 0, 8, 51, + 240, 21, 242, 34, 210, 50, 210, 50, 210, 50, 210, 50, + 210, 34, 22, 114, 19, 22, 132, 65, 180, 50, 179, 66, + 164, 65, 165, 50, 162, 19, 34, 146, 50, 33, 162, 68, + 162, 68, 162, 82, 66, 82, 83, 50, 98, 38, 34, 102, + 37, 132, 67, 0, 20, 64, 28, 20, 0, 8, 98, 240, + 36, 240, 20, 240, 35, 240, 50, 240, 50, 240, 50, 240, + 34, 240, 35, 240, 19, 240, 34, 0, 51, 32, 62, 20, + 194, 240, 35, 240, 19, 240, 19, 240, 34, 240, 35, 240, + 34, 240, 34, 240, 50, 240, 50, 240, 34, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 51, 240, 50, 240, 50, 240, 51, 240, 50, 240, 51, 240, + 50, 240, 51, 240, 51, 240, 51, 240, 50, 0, 13, 32, + 61, 20, 98, 240, 51, 240, 51, 240, 51, 240, 50, 240, + 51, 240, 50, 240, 66, 240, 50, 240, 50, 240, 66, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 34, 240, 50, 240, 50, 240, 34, 240, + 50, 240, 34, 240, 35, 240, 19, 240, 19, 240, 34, 0, + 14, 39, 20, 0, 18, 82, 240, 50, 240, 50, 210, 50, + 66, 115, 34, 36, 131, 18, 20, 169, 213, 245, 217, 148, + 18, 21, 115, 34, 51, 114, 50, 66, 194, 240, 50, 240, + 50, 0, 28, 80, 37, 20, 0, 16, 18, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 206, + 110, 194, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 0, 28, 80, 23, 20, 0, 53, 83, 240, 21, + 245, 245, 240, 20, 240, 50, 240, 34, 240, 35, 244, 240, + 34, 0, 8, 96, 9, 20, 0, 35, 77, 125, 0, 45, + 48, 16, 20, 0, 53, 82, 240, 36, 240, 20, 240, 20, + 240, 34, 0, 21, 16, 62, 20, 242, 240, 50, 240, 35, + 240, 34, 240, 35, 240, 34, 240, 50, 240, 35, 240, 34, + 240, 35, 240, 34, 240, 50, 240, 35, 240, 34, 240, 35, + 240, 34, 240, 35, 240, 34, 240, 50, 240, 35, 240, 34, + 240, 35, 240, 34, 240, 50, 240, 35, 240, 34, 240, 35, + 240, 34, 240, 50, 0, 14, 32, 48, 20, 0, 8, 83, + 247, 210, 51, 178, 82, 162, 114, 146, 114, 146, 114, 130, + 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, + 146, 114, 146, 115, 130, 130, 114, 146, 114, 147, 98, 162, + 82, 179, 51, 199, 243, 0, 21, 49, 20, 0, 8, 82, + 240, 50, 240, 50, 240, 35, 240, 20, 230, 227, 18, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 234, 170, 0, 20, 80, 50, 20, 0, 8, + 54, 216, 179, 67, 162, 114, 130, 131, 114, 146, 114, 146, + 114, 146, 240, 50, 240, 50, 240, 34, 240, 50, 240, 34, + 240, 34, 240, 35, 240, 19, 240, 19, 240, 19, 240, 18, + 240, 34, 114, 130, 130, 125, 125, 0, 20, 48, 47, 20, + 0, 8, 55, 186, 163, 83, 131, 115, 115, 130, 115, 130, + 240, 50, 240, 50, 240, 34, 240, 35, 199, 216, 240, 36, + 240, 50, 240, 51, 240, 50, 97, 178, 83, 162, 83, 147, + 83, 146, 116, 83, 154, 199, 0, 20, 96, 49, 20, 0, + 8, 100, 240, 20, 242, 18, 242, 18, 226, 34, 211, 34, + 210, 50, 194, 66, 194, 66, 178, 82, 178, 82, 162, 98, + 146, 114, 146, 114, 130, 130, 143, 1, 79, 1, 226, 240, + 50, 240, 50, 240, 50, 233, 185, 0, 20, 48, 48, 20, + 0, 8, 27, 155, 146, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 21, 202, 163, 83, 146, + 114, 240, 51, 240, 50, 240, 50, 115, 130, 115, 130, 115, + 115, 115, 114, 147, 67, 184, 214, 0, 20, 112, 48, 20, + 0, 8, 101, 216, 179, 67, 162, 83, 146, 99, 130, 129, + 146, 240, 50, 240, 34, 240, 50, 37, 187, 148, 83, 131, + 114, 130, 131, 114, 146, 114, 146, 114, 146, 129, 146, 130, + 115, 130, 114, 163, 51, 200, 213, 0, 20, 112, 53, 20, + 240, 240, 225, 240, 62, 110, 98, 131, 114, 115, 240, 34, + 240, 35, 240, 34, 240, 34, 240, 50, 240, 34, 240, 50, + 240, 50, 240, 34, 240, 50, 240, 50, 240, 50, 240, 34, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 0, 21, 48, 47, 20, 0, 8, 69, 217, 163, 83, 146, + 114, 130, 146, 114, 146, 114, 146, 114, 146, 130, 114, 162, + 82, 199, 215, 179, 82, 146, 130, 115, 146, 98, 162, 98, + 162, 98, 162, 99, 146, 114, 130, 147, 83, 169, 213, 0, + 20, 112, 48, 20, 0, 8, 69, 231, 195, 51, 162, 114, + 146, 114, 130, 145, 130, 146, 114, 146, 114, 146, 114, 146, + 115, 130, 130, 115, 147, 68, 155, 181, 34, 240, 50, 240, + 34, 240, 50, 131, 98, 147, 98, 147, 67, 184, 213, 0, + 21, 16, 27, 20, 0, 26, 18, 240, 36, 240, 20, 240, + 20, 240, 34, 0, 17, 34, 240, 36, 240, 20, 240, 20, + 240, 34, 0, 21, 16, 37, 20, 0, 26, 34, 240, 36, + 240, 20, 240, 20, 240, 34, 0, 17, 34, 240, 36, 240, + 20, 240, 20, 240, 35, 240, 50, 240, 35, 240, 34, 240, + 19, 240, 49, 0, 8, 96, 36, 20, 0, 14, 50, 240, + 35, 244, 244, 244, 228, 244, 244, 229, 243, 240, 37, 240, + 36, 240, 36, 240, 36, 240, 52, 240, 36, 240, 36, 240, + 51, 240, 50, 0, 25, 48, 13, 20, 0, 27, 127, 95, + 0, 10, 95, 95, 0, 37, 96, 36, 20, 0, 13, 2, + 240, 51, 240, 52, 240, 36, 240, 36, 240, 52, 240, 36, + 240, 36, 240, 37, 240, 35, 245, 228, 244, 244, 228, 244, + 244, 243, 240, 34, 0, 26, 96, 46, 20, 0, 8, 55, + 187, 147, 84, 115, 130, 115, 130, 115, 130, 240, 19, 240, + 19, 240, 19, 240, 19, 240, 34, 240, 34, 240, 50, 240, + 50, 240, 50, 240, 50, 0, 9, 98, 240, 35, 240, 35, + 240, 50, 0, 21, 16, 60, 20, 0, 8, 85, 216, 179, + 67, 147, 98, 146, 54, 130, 56, 114, 35, 36, 114, 34, + 67, 98, 35, 82, 98, 34, 98, 98, 34, 98, 98, 34, + 98, 98, 34, 98, 98, 34, 98, 98, 35, 82, 114, 34, + 66, 130, 35, 35, 130, 54, 162, 52, 179, 99, 147, 68, + 169, 213, 0, 20, 96, 51, 20, 0, 8, 83, 240, 35, + 240, 35, 240, 18, 18, 242, 18, 242, 18, 242, 18, 242, + 18, 227, 19, 210, 50, 210, 50, 210, 50, 210, 50, 195, + 51, 178, 67, 185, 185, 178, 82, 163, 83, 146, 114, 146, + 114, 118, 54, 86, 54, 0, 20, 32, 47, 20, 0, 7, + 123, 156, 162, 99, 146, 115, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 114, 146, 99, 153, 186, 162, 114, 146, 130, + 130, 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, 130, + 130, 115, 109, 124, 0, 20, 80, 50, 20, 0, 8, 85, + 34, 155, 131, 69, 115, 100, 114, 131, 98, 147, 98, 162, + 98, 162, 82, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 66, 240, 50, 162, 98, 162, 114, 146, + 115, 114, 147, 83, 169, 213, 0, 20, 96, 49, 20, 0, + 7, 122, 172, 162, 83, 162, 99, 146, 115, 130, 130, 130, + 130, 130, 131, 114, 146, 114, 146, 114, 146, 114, 146, 114, + 146, 114, 146, 114, 146, 114, 146, 114, 130, 130, 130, 130, + 115, 130, 114, 146, 83, 140, 138, 0, 20, 112, 47, 20, + 0, 7, 126, 110, 130, 130, 130, 130, 130, 130, 130, 129, + 146, 240, 50, 240, 50, 82, 178, 82, 185, 185, 178, 82, + 178, 82, 178, 240, 50, 240, 50, 240, 50, 146, 114, 146, + 114, 146, 114, 146, 95, 95, 0, 20, 32, 47, 20, 0, + 7, 127, 95, 114, 146, 114, 146, 114, 146, 114, 146, 114, + 240, 50, 240, 50, 240, 50, 82, 178, 82, 185, 185, 178, + 82, 178, 82, 178, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 23, 215, 0, 21, 32, 51, 20, 0, 8, + 68, 34, 185, 163, 52, 146, 99, 146, 99, 130, 130, 130, + 130, 130, 130, 114, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 102, 98, 102, 99, 130, 130, 130, 130, 130, 131, + 99, 146, 99, 163, 52, 185, 196, 34, 0, 20, 64, 51, + 20, 0, 7, 118, 54, 86, 54, 114, 114, 146, 114, 146, + 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, 155, + 155, 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, + 114, 146, 114, 146, 114, 146, 114, 118, 54, 86, 54, 0, + 20, 32, 48, 20, 0, 8, 12, 140, 210, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 220, 140, 0, + 20, 64, 48, 20, 0, 8, 88, 200, 240, 18, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 147, 98, 147, 98, 148, 66, 184, 229, + 0, 21, 53, 20, 0, 7, 118, 69, 86, 69, 114, 114, + 146, 98, 162, 83, 162, 82, 178, 66, 194, 51, 194, 50, + 210, 34, 226, 20, 210, 20, 212, 34, 196, 34, 195, 66, + 178, 82, 178, 83, 162, 98, 162, 99, 146, 114, 146, 114, + 118, 69, 86, 69, 0, 20, 32, 49, 20, 0, 7, 119, + 215, 242, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 130, 130, 130, 130, + 130, 130, 130, 110, 110, 0, 20, 48, 73, 20, 0, 7, + 101, 117, 53, 117, 84, 84, 116, 84, 114, 17, 81, 18, + 114, 18, 65, 18, 114, 18, 50, 18, 114, 18, 50, 18, + 114, 33, 49, 34, 114, 34, 18, 34, 114, 34, 18, 34, + 114, 49, 17, 50, 114, 49, 17, 50, 114, 51, 50, 114, + 65, 66, 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, + 114, 146, 86, 86, 54, 86, 0, 20, 16, 68, 20, 0, + 7, 117, 70, 85, 70, 116, 82, 148, 82, 146, 17, 82, + 146, 17, 82, 146, 18, 66, 146, 18, 66, 146, 33, 66, + 146, 34, 50, 146, 34, 50, 146, 49, 50, 146, 50, 34, + 146, 50, 34, 146, 65, 34, 146, 65, 34, 146, 66, 18, + 146, 66, 18, 146, 81, 18, 146, 84, 146, 84, 118, 67, + 118, 67, 0, 20, 64, 49, 20, 0, 8, 56, 171, 147, + 83, 131, 115, 114, 146, 114, 146, 114, 146, 114, 146, 114, + 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, + 146, 114, 146, 114, 146, 114, 146, 114, 146, 115, 115, 131, + 83, 155, 168, 0, 20, 96, 47, 20, 0, 7, 122, 172, + 162, 99, 146, 114, 146, 115, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 115, 130, 114, 146, 99, 154, 168, 194, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 22, 230, 0, 21, 48, 62, 20, 0, 8, 56, 171, 147, + 83, 131, 115, 114, 146, 114, 146, 114, 146, 114, 146, 114, + 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, + 146, 114, 146, 114, 146, 114, 66, 50, 114, 67, 34, 115, + 66, 19, 131, 53, 155, 169, 240, 50, 240, 51, 240, 35, + 240, 51, 240, 35, 0, 7, 112, 51, 20, 0, 7, 105, + 187, 178, 83, 162, 98, 162, 114, 146, 114, 146, 114, 146, + 114, 146, 114, 146, 98, 162, 83, 169, 185, 178, 82, 178, + 98, 162, 98, 162, 98, 162, 98, 162, 98, 162, 98, 34, + 98, 98, 34, 70, 85, 70, 99, 0, 20, 48, 49, 20, + 0, 8, 53, 34, 170, 147, 68, 146, 99, 130, 115, 130, + 130, 130, 130, 131, 113, 162, 240, 53, 240, 23, 232, 240, + 21, 240, 35, 240, 51, 240, 50, 114, 146, 114, 146, 114, + 146, 115, 114, 132, 83, 139, 146, 37, 0, 20, 112, 52, + 20, 0, 7, 127, 95, 82, 66, 82, 82, 66, 82, 82, + 66, 82, 82, 66, 81, 194, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 248, 200, + 0, 20, 96, 50, 20, 0, 7, 118, 54, 86, 54, 114, + 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, + 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, + 114, 146, 114, 146, 114, 146, 114, 162, 82, 178, 82, 179, + 50, 215, 243, 0, 21, 51, 20, 0, 7, 102, 70, 70, + 70, 98, 130, 131, 99, 131, 99, 146, 98, 162, 98, 162, + 98, 163, 67, 178, 66, 194, 66, 194, 66, 195, 50, 195, + 35, 210, 34, 226, 34, 226, 34, 230, 244, 240, 20, 240, + 20, 240, 20, 240, 34, 0, 21, 16, 61, 20, 0, 7, + 101, 101, 69, 101, 82, 162, 98, 162, 98, 161, 129, 161, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 50, 50, 130, + 51, 34, 130, 36, 34, 145, 36, 33, 161, 36, 33, 162, + 17, 33, 18, 162, 17, 36, 164, 36, 164, 36, 164, 36, + 163, 67, 163, 67, 178, 66, 0, 20, 96, 51, 20, 0, + 7, 118, 38, 102, 38, 131, 67, 178, 66, 195, 35, 210, + 34, 227, 18, 245, 244, 240, 20, 240, 34, 240, 51, 240, + 20, 240, 21, 227, 18, 226, 34, 226, 35, 195, 50, 194, + 67, 163, 82, 162, 99, 118, 54, 86, 54, 0, 20, 32, + 51, 20, 0, 7, 102, 70, 70, 70, 99, 99, 146, 98, + 163, 67, 178, 66, 194, 66, 195, 35, 210, 34, 227, 18, + 244, 240, 20, 240, 20, 240, 34, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 22, 230, + 0, 20, 112, 50, 20, 0, 8, 13, 125, 114, 131, 114, + 115, 130, 114, 146, 99, 240, 34, 240, 35, 240, 34, 240, + 35, 240, 34, 240, 35, 240, 34, 240, 34, 240, 50, 240, + 34, 240, 50, 240, 34, 114, 131, 114, 130, 130, 115, 130, + 125, 125, 0, 20, 48, 59, 20, 104, 200, 194, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 56, + 200, 0, 13, 32, 62, 20, 66, 240, 50, 240, 51, 240, + 50, 240, 51, 240, 50, 240, 50, 240, 51, 240, 50, 240, + 51, 240, 50, 240, 51, 240, 35, 240, 50, 240, 51, 240, + 50, 240, 51, 240, 35, 240, 50, 240, 51, 240, 50, 240, + 51, 240, 50, 240, 50, 240, 51, 240, 50, 240, 51, 240, + 50, 240, 50, 0, 12, 112, 59, 20, 104, 200, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 200, 200, 0, 13, 32, 17, 20, 0, 8, 98, 240, 21, + 231, 196, 21, 148, 52, 161, 113, 0, 63, 16, 9, 20, + 0, 68, 13, 125, 0, 12, 112, 28, 20, 240, 240, 18, + 240, 35, 240, 19, 240, 34, 240, 34, 240, 50, 240, 50, + 240, 52, 240, 20, 240, 35, 240, 34, 0, 56, 16, 34, + 20, 0, 25, 102, 201, 179, 67, 163, 83, 240, 50, 240, + 50, 215, 185, 149, 66, 147, 98, 131, 114, 131, 114, 131, + 114, 147, 83, 158, 134, 36, 0, 20, 32, 50, 20, 0, + 7, 101, 245, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 37, 186, 164, 67, 147, 99, 130, 130, 130, + 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, 115, + 114, 131, 99, 132, 67, 154, 162, 36, 0, 20, 112, 35, + 20, 0, 26, 23, 186, 147, 83, 131, 99, 130, 240, 35, + 240, 34, 240, 50, 240, 50, 240, 50, 240, 51, 240, 50, + 130, 131, 114, 147, 82, 185, 213, 0, 20, 96, 49, 20, + 0, 8, 101, 245, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 196, 34, 170, 147, 68, 131, 99, 130, 130, 115, + 130, 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, 130, + 115, 131, 99, 147, 68, 173, 133, 37, 0, 20, 32, 33, + 20, 0, 26, 20, 232, 179, 67, 147, 98, 146, 115, 115, + 130, 114, 146, 125, 125, 114, 240, 51, 240, 50, 130, 131, + 114, 148, 51, 185, 213, 0, 20, 96, 45, 20, 0, 8, + 116, 246, 226, 34, 210, 240, 50, 240, 50, 240, 50, 234, + 170, 226, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 219, 155, 0, 20, 80, 48, 20, 0, 25, 117, 35, 156, + 115, 51, 34, 114, 83, 146, 114, 146, 114, 146, 114, 146, + 114, 147, 83, 163, 51, 169, 178, 21, 194, 240, 50, 240, + 74, 156, 130, 131, 98, 178, 82, 178, 82, 178, 83, 147, + 100, 99, 139, 183, 96, 51, 20, 0, 7, 101, 245, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 37, + 186, 165, 51, 147, 98, 147, 98, 146, 114, 146, 114, 146, + 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, + 114, 104, 24, 56, 24, 0, 20, 16, 44, 20, 0, 8, + 82, 240, 35, 240, 35, 240, 50, 0, 9, 23, 215, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 220, + 140, 0, 20, 64, 58, 20, 0, 9, 18, 240, 35, 240, + 35, 240, 50, 0, 9, 23, 215, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 163, 66, 179, 51, 184, + 214, 128, 51, 20, 0, 7, 101, 245, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 55, 130, 55, 130, + 82, 178, 67, 178, 51, 194, 35, 210, 19, 231, 212, 18, + 211, 50, 194, 67, 178, 82, 178, 83, 162, 98, 120, 38, + 72, 38, 0, 20, 32, 49, 20, 0, 8, 7, 215, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 220, 140, 0, 20, 64, 53, 20, 0, 25, 36, 19, + 36, 110, 131, 36, 34, 115, 35, 50, 114, 50, 66, 114, + 50, 66, 114, 50, 66, 114, 50, 66, 114, 50, 66, 114, + 50, 66, 114, 50, 66, 114, 50, 66, 114, 50, 66, 114, + 50, 66, 85, 21, 21, 53, 21, 21, 0, 20, 16, 38, + 20, 0, 25, 37, 37, 141, 165, 51, 147, 98, 147, 98, + 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, + 146, 114, 146, 114, 146, 114, 104, 24, 56, 24, 0, 20, + 16, 35, 20, 0, 26, 5, 231, 195, 51, 162, 99, 146, + 114, 130, 146, 114, 146, 114, 146, 114, 146, 114, 146, 115, + 130, 130, 114, 147, 83, 163, 51, 199, 229, 0, 20, 112, + 48, 20, 0, 25, 37, 37, 141, 164, 67, 147, 99, 130, + 130, 130, 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, + 146, 115, 114, 131, 99, 132, 67, 154, 162, 36, 194, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 248, 200, 160, + 50, 20, 0, 25, 116, 34, 170, 147, 68, 131, 99, 130, + 115, 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, + 146, 130, 115, 131, 99, 147, 53, 167, 18, 181, 34, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 248, + 200, 32, 36, 20, 0, 25, 54, 52, 118, 23, 166, 34, + 164, 240, 19, 240, 35, 240, 34, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 50, 235, 155, 0, + 20, 96, 34, 20, 0, 25, 121, 155, 131, 99, 130, 130, + 130, 130, 131, 240, 54, 248, 240, 22, 240, 51, 114, 146, + 115, 130, 115, 130, 117, 82, 140, 130, 38, 0, 20, 96, + 44, 20, 0, 13, 66, 240, 50, 240, 50, 240, 50, 240, + 50, 236, 140, 194, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 82, 178, 82, 178, + 82, 179, 51, 199, 228, 0, 20, 96, 38, 20, 0, 25, + 37, 69, 101, 69, 146, 114, 146, 114, 146, 114, 146, 114, + 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, 146, 114, + 146, 99, 147, 68, 173, 134, 21, 0, 20, 16, 38, 20, + 0, 25, 39, 39, 71, 39, 99, 113, 162, 98, 162, 98, + 162, 98, 178, 66, 194, 66, 194, 66, 210, 34, 226, 34, + 226, 34, 244, 240, 20, 240, 20, 240, 34, 0, 21, 16, + 45, 20, 0, 25, 38, 70, 70, 70, 98, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 50, 49, 162, 35, 33, + 162, 20, 18, 162, 20, 18, 162, 18, 17, 18, 164, 36, + 164, 36, 179, 35, 194, 66, 0, 20, 96, 40, 20, 0, + 25, 54, 39, 86, 39, 130, 67, 194, 50, 211, 18, 242, + 18, 240, 19, 240, 34, 240, 51, 240, 18, 18, 242, 18, + 226, 50, 195, 51, 178, 82, 134, 54, 86, 54, 0, 20, + 32, 53, 20, 0, 25, 53, 54, 101, 54, 114, 114, 161, + 98, 178, 82, 178, 82, 193, 81, 210, 50, 210, 50, 225, + 50, 226, 18, 242, 18, 240, 17, 18, 240, 19, 240, 35, + 240, 50, 240, 49, 240, 50, 240, 50, 240, 50, 210, 34, + 226, 19, 229, 240, 19, 208, 36, 20, 0, 25, 77, 125, + 114, 115, 130, 115, 129, 115, 240, 19, 240, 19, 240, 19, + 240, 19, 240, 19, 240, 35, 240, 19, 98, 131, 114, 115, + 130, 125, 125, 0, 20, 48, 57, 20, 196, 230, 226, 240, + 34, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 35, 214, 230, 240, + 51, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, + 50, 240, 50, 240, 50, 240, 50, 240, 51, 240, 54, 240, + 20, 0, 13, 62, 20, 146, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 0, 13, 80, 57, 20, 68, 240, 22, 240, 51, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 51, 240, 54, + 230, 211, 240, 34, 240, 50, 240, 50, 240, 50, 240, 50, + 240, 50, 240, 50, 240, 50, 240, 50, 240, 35, 214, 228, + 0, 14, 15, 20, 0, 8, 52, 50, 166, 19, 147, 37, + 162, 67, 0, 68, 32, +}; + +//***************************************************************************** +// +// The font definition for the 38 point Cmtt font. +// +//***************************************************************************** +const tFont g_sFontCmtt38 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 16, + + // + // The height of the font. + // + 34, + + // + // The baseline of the font. + // + 26, + + // + // The offset to each character in the font. + // + { + 0, 4, 51, 80, 129, 197, 271, 330, + 358, 420, 481, 520, 557, 580, 589, 605, + 667, 715, 764, 814, 861, 910, 958, 1006, + 1059, 1106, 1154, 1181, 1218, 1254, 1267, 1303, + 1349, 1409, 1460, 1507, 1557, 1606, 1653, 1700, + 1751, 1802, 1850, 1898, 1951, 2000, 2073, 2141, + 2190, 2237, 2299, 2350, 2399, 2451, 2501, 2552, + 2613, 2664, 2715, 2765, 2824, 2886, 2945, 2962, + 2971, 2999, 3033, 3083, 3118, 3167, 3200, 3245, + 3293, 3344, 3388, 3446, 3497, 3546, 3599, 3637, + 3672, 3720, 3770, 3806, 3840, 3884, 3922, 3960, + 4005, 4045, 4098, 4134, 4191, 4253, 4310, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmtt38Data +}; diff --git a/grlib/fonts/fontcmtt40.c b/grlib/fonts/fontcmtt40.c new file mode 100644 index 0000000..7585deb --- /dev/null +++ b/grlib/fonts/fontcmtt40.c @@ -0,0 +1,490 @@ +//***************************************************************************** +// +// fontcmtt40.c - Font definition for the 40pt Cmtt font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmtt +// Size: 40 point +// Bold: no +// Italic: no +// Memory usage: 4808 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 40 point Cmtt font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmtt40Data[4607] = +{ + 4, 22, 0, 99, 48, 22, 0, 9, 82, 240, 67, 240, + 67, 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, 240, + 67, 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, 240, + 67, 240, 67, 240, 67, 0, 10, 98, 240, 67, 240, 67, + 240, 81, 0, 26, 31, 22, 0, 9, 34, 66, 211, 51, + 211, 51, 211, 51, 211, 51, 211, 51, 211, 51, 211, 51, + 211, 51, 211, 51, 211, 51, 225, 81, 0, 58, 80, 55, + 22, 0, 9, 34, 66, 226, 67, 210, 66, 226, 66, 226, + 66, 226, 66, 211, 66, 159, 1, 111, 1, 162, 67, 210, + 66, 226, 66, 226, 66, 226, 66, 211, 66, 175, 1, 111, + 1, 146, 67, 210, 67, 210, 66, 226, 66, 226, 66, 211, + 66, 226, 66, 0, 25, 96, 71, 22, 162, 240, 82, 240, + 82, 240, 55, 218, 179, 34, 35, 162, 50, 51, 130, 66, + 66, 130, 66, 66, 130, 66, 51, 130, 66, 66, 131, 50, + 243, 34, 247, 240, 25, 248, 240, 23, 242, 35, 242, 51, + 131, 50, 66, 131, 50, 66, 131, 50, 66, 131, 50, 66, + 146, 50, 50, 163, 34, 35, 186, 215, 240, 50, 240, 82, + 240, 82, 0, 17, 96, 77, 22, 82, 130, 148, 114, 134, + 83, 130, 34, 82, 146, 34, 82, 146, 34, 67, 146, 34, + 66, 163, 18, 51, 180, 67, 194, 82, 240, 67, 240, 66, + 240, 82, 240, 67, 240, 66, 240, 82, 240, 67, 240, 66, + 240, 82, 240, 67, 240, 66, 82, 195, 68, 179, 51, 18, + 162, 66, 34, 147, 66, 34, 146, 82, 34, 146, 82, 34, + 131, 83, 18, 130, 116, 146, 130, 0, 17, 16, 67, 22, + 0, 9, 35, 240, 52, 240, 35, 18, 240, 18, 34, 240, + 18, 34, 240, 18, 34, 240, 18, 34, 240, 18, 19, 22, + 146, 18, 38, 164, 50, 211, 66, 210, 67, 195, 66, 196, + 66, 179, 18, 34, 194, 34, 34, 178, 69, 178, 68, 194, + 83, 194, 82, 82, 99, 67, 66, 114, 53, 35, 118, 38, + 163, 68, 0, 25, 48, 30, 22, 0, 9, 82, 240, 68, + 240, 52, 240, 67, 240, 82, 240, 82, 240, 82, 240, 67, + 240, 66, 240, 67, 240, 51, 240, 66, 0, 59, 16, 64, + 22, 226, 240, 52, 240, 51, 240, 50, 240, 67, 240, 51, + 240, 66, 240, 67, 240, 66, 240, 82, 240, 82, 240, 66, + 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 98, 240, 82, 240, 82, 240, 83, 240, 82, + 240, 83, 240, 83, 240, 82, 240, 84, 240, 68, 240, 82, + 0, 17, 32, 64, 22, 129, 240, 84, 240, 68, 240, 82, + 240, 83, 240, 83, 240, 82, 240, 83, 240, 82, 240, 82, + 240, 83, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 82, 240, 82, 240, 67, 240, 66, 240, 82, + 240, 67, 240, 66, 240, 67, 240, 66, 240, 66, 240, 52, + 240, 36, 240, 50, 0, 18, 16, 41, 22, 0, 20, 66, + 240, 82, 240, 82, 242, 50, 66, 147, 34, 51, 148, 18, + 21, 185, 231, 240, 21, 240, 23, 219, 164, 18, 36, 146, + 50, 66, 226, 240, 82, 240, 82, 240, 82, 0, 34, 32, + 39, 22, 0, 17, 98, 240, 82, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 82, 238, 142, 226, 240, 82, + 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, + 0, 34, 32, 26, 22, 0, 64, 67, 240, 53, 240, 37, + 240, 52, 240, 82, 240, 82, 240, 66, 240, 67, 240, 36, + 240, 66, 0, 9, 80, 9, 22, 0, 39, 14, 142, 0, + 55, 64, 15, 22, 0, 61, 98, 240, 68, 240, 52, 240, + 52, 240, 66, 0, 26, 65, 22, 240, 18, 240, 67, 240, + 67, 240, 66, 240, 67, 240, 66, 240, 67, 240, 66, 240, + 67, 240, 67, 240, 66, 240, 67, 240, 66, 240, 67, 240, + 67, 240, 51, 240, 67, 240, 66, 240, 67, 240, 66, 240, + 67, 240, 67, 240, 66, 240, 67, 240, 66, 240, 67, 240, + 66, 240, 67, 240, 67, 240, 66, 0, 18, 64, 53, 22, + 0, 9, 52, 240, 38, 242, 66, 210, 98, 194, 99, 162, + 130, 162, 130, 161, 162, 130, 162, 130, 162, 130, 162, 130, + 162, 130, 162, 130, 162, 130, 162, 130, 162, 146, 131, 146, + 130, 162, 130, 178, 99, 179, 82, 211, 50, 246, 240, 36, + 0, 25, 112, 52, 22, 0, 9, 82, 240, 82, 240, 67, + 240, 67, 240, 52, 247, 243, 34, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, + 82, 240, 26, 202, 0, 25, 48, 52, 22, 0, 9, 37, + 249, 195, 83, 178, 115, 146, 147, 130, 162, 130, 162, 130, + 162, 240, 82, 240, 82, 240, 66, 240, 82, 240, 66, 240, + 67, 240, 51, 240, 51, 240, 51, 240, 51, 240, 51, 240, + 51, 240, 51, 114, 146, 146, 142, 142, 0, 25, 32, 50, + 22, 0, 9, 38, 233, 196, 67, 179, 99, 163, 114, 163, + 114, 240, 82, 240, 82, 240, 66, 240, 67, 231, 240, 23, + 240, 68, 240, 82, 240, 83, 240, 82, 240, 82, 131, 146, + 131, 146, 131, 131, 132, 114, 164, 67, 201, 246, 0, 25, + 96, 56, 22, 0, 9, 84, 240, 52, 240, 34, 18, 240, + 34, 18, 240, 18, 34, 243, 34, 242, 50, 226, 66, 226, + 66, 210, 82, 210, 82, 194, 98, 178, 114, 178, 114, 162, + 130, 175, 1, 111, 1, 240, 18, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 25, 217, 0, 25, 32, 50, 22, 0, + 8, 124, 172, 162, 240, 82, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 82, 240, 82, 22, 218, 196, 67, 179, 99, + 162, 130, 240, 98, 240, 82, 240, 82, 131, 146, 131, 146, + 131, 131, 131, 115, 164, 67, 201, 245, 0, 25, 112, 51, + 22, 0, 9, 85, 248, 211, 67, 178, 99, 162, 115, 162, + 129, 162, 240, 82, 240, 66, 240, 82, 38, 203, 181, 67, + 163, 130, 147, 131, 130, 162, 130, 162, 130, 162, 145, 162, + 146, 146, 146, 130, 178, 114, 179, 67, 216, 240, 20, 0, + 25, 112, 55, 22, 0, 6, 17, 240, 94, 142, 130, 131, + 146, 130, 240, 67, 240, 51, 240, 66, 240, 67, 240, 66, + 240, 67, 240, 66, 240, 82, 240, 67, 240, 66, 240, 82, + 240, 82, 240, 82, 240, 66, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 82, 240, 82, 0, 26, 32, 49, 22, 0, + 9, 54, 234, 180, 68, 162, 130, 146, 162, 130, 162, 130, + 162, 130, 162, 146, 130, 179, 67, 216, 232, 195, 83, 163, + 130, 146, 147, 114, 178, 114, 178, 114, 178, 114, 178, 130, + 147, 131, 130, 163, 83, 201, 246, 0, 25, 80, 51, 22, + 0, 9, 53, 249, 196, 67, 164, 98, 163, 130, 131, 161, + 131, 162, 115, 162, 115, 162, 115, 162, 131, 146, 131, 131, + 148, 69, 169, 18, 198, 34, 240, 82, 240, 81, 240, 82, + 161, 146, 147, 114, 163, 98, 179, 83, 200, 246, 0, 25, + 112, 26, 22, 0, 28, 98, 240, 68, 240, 52, 240, 52, + 240, 66, 0, 21, 98, 240, 68, 240, 52, 240, 52, 240, + 66, 0, 26, 39, 22, 0, 28, 114, 240, 68, 240, 52, + 240, 52, 240, 66, 0, 21, 98, 240, 68, 240, 52, 240, + 52, 240, 67, 240, 82, 240, 82, 240, 66, 240, 67, 240, + 51, 240, 81, 0, 9, 80, 46, 22, 0, 15, 98, 240, + 52, 240, 37, 240, 20, 240, 21, 240, 21, 240, 20, 240, + 21, 240, 20, 240, 36, 240, 52, 240, 68, 240, 69, 240, + 68, 240, 69, 240, 53, 240, 68, 240, 69, 240, 52, 240, + 82, 0, 30, 96, 13, 22, 0, 30, 111, 127, 0, 11, + 127, 127, 0, 47, 16, 46, 22, 0, 14, 34, 240, 84, + 240, 53, 240, 68, 240, 69, 240, 53, 240, 68, 240, 69, + 240, 68, 240, 68, 240, 52, 240, 36, 240, 21, 240, 20, + 240, 21, 240, 21, 240, 20, 240, 36, 240, 36, 240, 50, + 0, 32, 32, 48, 22, 0, 9, 23, 219, 179, 99, 147, + 146, 131, 146, 131, 146, 240, 52, 240, 36, 240, 35, 240, + 51, 240, 51, 240, 66, 240, 66, 240, 82, 240, 82, 240, + 82, 240, 82, 0, 10, 98, 240, 67, 240, 67, 240, 82, + 0, 26, 16, 64, 22, 0, 9, 84, 240, 24, 211, 66, + 194, 114, 162, 70, 147, 56, 130, 51, 36, 130, 50, 67, + 114, 66, 67, 114, 50, 98, 114, 50, 98, 114, 50, 98, + 114, 50, 98, 114, 50, 98, 114, 50, 98, 115, 50, 67, + 130, 50, 66, 146, 51, 35, 147, 54, 178, 68, 210, 115, + 164, 68, 201, 230, 0, 25, 64, 56, 22, 0, 9, 67, + 240, 52, 240, 52, 240, 52, 240, 52, 240, 38, 240, 18, + 34, 240, 18, 34, 240, 18, 34, 240, 18, 34, 243, 35, + 226, 66, 226, 66, 226, 66, 226, 66, 218, 202, 194, 98, + 194, 98, 194, 98, 179, 99, 163, 99, 134, 70, 102, 70, + 0, 25, 16, 49, 22, 0, 8, 91, 189, 178, 115, 162, + 130, 162, 146, 146, 146, 146, 146, 146, 146, 146, 131, 146, + 130, 162, 99, 186, 203, 178, 130, 162, 146, 146, 147, 130, + 162, 130, 162, 130, 162, 130, 162, 130, 146, 146, 131, 126, + 140, 0, 25, 80, 52, 22, 0, 9, 54, 34, 187, 148, + 69, 146, 116, 130, 147, 115, 147, 114, 163, 114, 178, 98, + 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 98, 178, 114, 178, 115, 162, 130, 147, 146, + 130, 164, 67, 201, 245, 0, 25, 96, 51, 22, 0, 8, + 106, 203, 210, 83, 194, 99, 178, 115, 162, 130, 162, 130, + 162, 131, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 131, 146, 130, 162, 130, + 162, 115, 162, 114, 178, 83, 171, 186, 0, 25, 96, 51, + 22, 0, 8, 95, 127, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 240, 82, 240, 82, 240, 82, 82, 210, 82, 217, + 217, 210, 82, 210, 82, 210, 240, 82, 240, 82, 240, 82, + 162, 130, 162, 130, 162, 130, 162, 111, 1, 111, 1, 0, + 25, 16, 49, 22, 0, 8, 111, 127, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 240, 82, 240, 82, 240, 82, 82, + 210, 82, 217, 217, 210, 82, 210, 82, 210, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 55, 247, + 0, 26, 16, 53, 22, 0, 9, 52, 34, 202, 179, 53, + 163, 84, 162, 115, 147, 115, 146, 146, 146, 146, 130, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 119, + 98, 119, 99, 146, 146, 146, 146, 146, 162, 115, 163, 99, + 179, 68, 202, 213, 34, 0, 25, 48, 53, 22, 0, 8, + 86, 70, 102, 70, 130, 130, 162, 130, 162, 130, 162, 130, + 162, 130, 162, 130, 162, 130, 162, 130, 162, 130, 172, 172, + 162, 130, 162, 130, 162, 130, 162, 130, 162, 130, 162, 130, + 162, 130, 162, 130, 162, 130, 134, 70, 102, 70, 0, 25, + 16, 50, 22, 0, 8, 124, 172, 242, 240, 82, 240, 82, + 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 252, 172, + 0, 25, 48, 51, 22, 0, 9, 57, 217, 240, 50, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 82, 177, 130, 163, 114, 163, 114, 164, + 67, 201, 246, 0, 25, 112, 55, 22, 0, 8, 86, 70, + 102, 70, 130, 114, 178, 99, 178, 98, 194, 82, 210, 67, + 210, 66, 226, 50, 242, 35, 242, 35, 242, 20, 245, 18, + 228, 34, 227, 51, 211, 66, 210, 83, 194, 98, 194, 99, + 178, 114, 178, 115, 162, 130, 134, 85, 102, 85, 0, 25, + 16, 52, 22, 0, 8, 104, 232, 240, 34, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 82, 130, 162, 130, 162, 130, 162, 130, + 127, 127, 0, 25, 16, 74, 22, 0, 8, 69, 133, 70, + 102, 100, 100, 132, 100, 130, 17, 97, 18, 130, 18, 66, + 18, 130, 18, 66, 18, 130, 33, 66, 18, 130, 34, 34, + 34, 130, 34, 34, 34, 130, 34, 34, 34, 130, 49, 33, + 50, 130, 52, 50, 130, 52, 50, 130, 66, 66, 130, 66, + 66, 130, 162, 130, 162, 130, 162, 130, 162, 130, 162, 130, + 162, 102, 102, 70, 102, 0, 25, 71, 22, 0, 8, 85, + 86, 101, 86, 132, 98, 164, 98, 162, 17, 98, 162, 18, + 82, 162, 18, 82, 162, 33, 82, 162, 34, 66, 162, 34, + 66, 162, 49, 66, 162, 50, 50, 162, 50, 50, 162, 65, + 50, 162, 66, 34, 162, 66, 34, 162, 81, 34, 162, 82, + 18, 162, 82, 18, 162, 97, 18, 162, 100, 162, 100, 134, + 68, 134, 83, 0, 25, 48, 51, 22, 0, 9, 24, 204, + 163, 99, 162, 131, 130, 162, 130, 162, 130, 162, 130, 162, + 130, 162, 130, 162, 130, 162, 130, 162, 130, 162, 130, 162, + 130, 162, 130, 162, 130, 162, 130, 162, 130, 162, 131, 146, + 146, 130, 163, 99, 172, 200, 0, 25, 80, 49, 22, 0, + 8, 107, 189, 178, 100, 162, 130, 162, 131, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 131, 146, 130, 162, 100, 171, + 185, 210, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 82, 240, 55, 247, 0, 26, 16, 67, 22, + 0, 9, 24, 204, 163, 99, 162, 131, 130, 162, 130, 162, + 130, 162, 130, 162, 130, 162, 130, 162, 130, 162, 130, 162, + 130, 162, 130, 162, 130, 162, 130, 162, 130, 162, 130, 67, + 50, 130, 67, 50, 131, 67, 34, 146, 67, 19, 147, 69, + 172, 201, 240, 67, 240, 83, 240, 67, 240, 67, 240, 83, + 240, 67, 0, 8, 96, 54, 22, 0, 8, 90, 204, 194, + 84, 178, 114, 178, 115, 162, 130, 162, 130, 162, 130, 162, + 130, 162, 114, 178, 84, 186, 202, 194, 83, 194, 99, 178, + 114, 178, 114, 178, 114, 178, 114, 178, 114, 34, 114, 114, + 34, 114, 114, 34, 86, 101, 86, 115, 0, 25, 16, 52, + 22, 0, 9, 37, 34, 187, 163, 69, 162, 115, 146, 131, + 146, 146, 146, 146, 146, 146, 147, 240, 83, 240, 86, 240, + 40, 240, 23, 240, 68, 240, 82, 240, 83, 130, 162, 130, + 162, 130, 162, 130, 162, 131, 130, 149, 83, 156, 162, 38, + 0, 25, 96, 57, 22, 0, 8, 95, 1, 111, 1, 98, + 82, 82, 98, 82, 82, 98, 82, 82, 98, 82, 82, 210, + 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 82, 240, 82, 240, 40, 232, 0, 25, 80, + 54, 22, 0, 8, 86, 70, 102, 70, 130, 130, 162, 130, + 162, 130, 162, 130, 162, 130, 162, 130, 162, 130, 162, 130, + 162, 130, 162, 130, 162, 130, 162, 130, 162, 130, 162, 130, + 162, 130, 162, 130, 162, 130, 178, 98, 194, 98, 211, 50, + 246, 240, 36, 0, 25, 112, 58, 22, 0, 8, 86, 86, + 86, 86, 115, 115, 147, 115, 162, 114, 178, 114, 178, 114, + 179, 83, 179, 83, 194, 82, 210, 82, 211, 51, 211, 51, + 226, 50, 242, 50, 242, 50, 243, 19, 243, 19, 240, 18, + 18, 240, 34, 18, 240, 34, 18, 240, 37, 240, 51, 240, + 67, 0, 25, 112, 71, 22, 0, 8, 85, 117, 85, 117, + 98, 178, 114, 178, 130, 161, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 51, 50, 146, 51, 50, 146, 49, + 17, 49, 178, 33, 17, 34, 178, 18, 18, 18, 178, 18, + 18, 18, 178, 18, 18, 18, 178, 18, 18, 18, 178, 17, + 49, 18, 180, 52, 180, 52, 195, 51, 211, 51, 210, 82, + 0, 25, 64, 58, 22, 0, 8, 86, 54, 118, 54, 147, + 83, 195, 66, 211, 51, 227, 34, 243, 19, 240, 18, 18, + 240, 37, 240, 52, 240, 51, 240, 67, 240, 67, 240, 53, + 240, 34, 18, 240, 34, 19, 243, 34, 242, 51, 211, 66, + 210, 83, 179, 83, 179, 99, 134, 70, 102, 70, 0, 25, + 16, 56, 22, 0, 8, 86, 70, 102, 70, 131, 99, 163, + 98, 195, 82, 195, 67, 210, 66, 227, 35, 242, 34, 240, + 18, 34, 240, 22, 240, 36, 240, 52, 240, 66, 240, 82, + 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 54, 240, 22, 0, 25, 96, 52, 22, 0, + 8, 110, 142, 130, 147, 130, 131, 146, 130, 162, 115, 240, + 66, 240, 67, 240, 66, 240, 66, 240, 67, 240, 66, 240, + 67, 240, 66, 240, 67, 240, 66, 240, 66, 240, 82, 129, + 162, 130, 162, 130, 146, 146, 131, 146, 142, 142, 0, 25, + 32, 61, 22, 121, 216, 226, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 82, 240, 82, 240, 82, 240, 89, 216, 0, + 17, 48, 63, 22, 66, 240, 83, 240, 67, 240, 82, 240, + 83, 240, 82, 240, 83, 240, 67, 240, 83, 240, 67, 240, + 82, 240, 83, 240, 82, 240, 83, 240, 67, 240, 83, 240, + 67, 240, 82, 240, 83, 240, 82, 240, 83, 240, 67, 240, + 83, 240, 67, 240, 82, 240, 83, 240, 82, 240, 83, 240, + 67, 240, 82, 0, 17, 61, 22, 120, 232, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, + 82, 232, 232, 0, 17, 48, 17, 22, 0, 9, 66, 240, + 68, 240, 24, 212, 36, 180, 68, 178, 98, 0, 75, 9, + 22, 0, 80, 46, 142, 0, 14, 32, 28, 22, 194, 240, + 67, 240, 51, 240, 66, 240, 67, 240, 66, 240, 82, 240, + 82, 240, 84, 240, 52, 240, 67, 240, 66, 0, 67, 32, + 37, 22, 0, 28, 54, 233, 211, 67, 195, 83, 240, 82, + 240, 82, 240, 22, 217, 196, 66, 179, 98, 163, 114, 163, + 114, 163, 114, 163, 114, 179, 68, 205, 166, 36, 0, 25, + 16, 53, 22, 0, 8, 85, 240, 37, 240, 82, 240, 82, + 240, 82, 240, 82, 240, 82, 240, 82, 37, 218, 196, 67, + 179, 99, 163, 114, 162, 131, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 131, 147, 114, 164, 83, 165, 36, + 186, 194, 36, 0, 25, 96, 37, 22, 0, 28, 103, 218, + 179, 83, 163, 99, 162, 240, 82, 240, 66, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 83, 240, 82, 130, 163, 114, + 180, 66, 217, 245, 0, 25, 80, 52, 22, 0, 9, 85, + 240, 37, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, + 228, 34, 202, 179, 68, 163, 99, 162, 130, 162, 130, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 147, 130, 162, + 115, 163, 99, 179, 53, 205, 165, 37, 0, 25, 16, 35, + 22, 0, 28, 85, 249, 195, 68, 163, 99, 162, 131, 131, + 131, 131, 146, 142, 142, 131, 240, 67, 240, 82, 145, 163, + 130, 163, 99, 164, 67, 201, 246, 0, 25, 80, 48, 22, + 0, 9, 101, 240, 23, 226, 51, 210, 81, 226, 240, 82, + 240, 82, 253, 157, 226, 240, 82, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 82, 252, 172, 0, 25, 64, 52, 22, + 0, 28, 53, 36, 173, 131, 51, 50, 130, 83, 178, 114, + 178, 114, 178, 114, 178, 114, 179, 83, 195, 51, 201, 210, + 21, 226, 240, 82, 240, 83, 240, 90, 189, 146, 147, 114, + 179, 98, 194, 98, 194, 98, 194, 99, 162, 132, 100, 155, + 215, 128, 53, 22, 0, 8, 85, 240, 37, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 82, 37, 218, 197, + 51, 179, 98, 179, 98, 178, 114, 178, 114, 178, 114, 178, + 114, 178, 114, 178, 114, 178, 114, 178, 114, 178, 114, 178, + 114, 136, 24, 88, 24, 0, 25, 46, 22, 0, 9, 66, + 240, 67, 240, 67, 240, 82, 0, 10, 23, 247, 240, 82, + 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, + 252, 172, 0, 25, 48, 62, 22, 0, 10, 2, 240, 67, + 240, 67, 240, 82, 0, 10, 23, 247, 240, 82, 240, 82, + 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, + 195, 66, 211, 51, 216, 246, 144, 54, 22, 0, 8, 85, + 240, 37, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, + 240, 82, 56, 146, 56, 146, 83, 194, 67, 210, 51, 226, + 50, 242, 34, 240, 18, 20, 247, 244, 19, 227, 50, 226, + 82, 210, 83, 194, 98, 194, 99, 136, 39, 88, 39, 0, + 25, 51, 22, 0, 8, 104, 232, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 238, + 142, 0, 25, 32, 55, 22, 0, 27, 100, 20, 36, 127, + 148, 36, 34, 131, 51, 50, 130, 66, 66, 130, 66, 66, + 130, 66, 66, 130, 66, 66, 130, 66, 66, 130, 66, 66, + 130, 66, 66, 130, 66, 66, 130, 66, 66, 130, 66, 66, + 130, 66, 66, 102, 21, 21, 70, 21, 21, 0, 25, 39, + 22, 0, 27, 117, 37, 173, 197, 51, 179, 98, 179, 98, + 178, 114, 178, 114, 178, 114, 178, 114, 178, 114, 178, 114, + 178, 114, 178, 114, 178, 114, 178, 114, 136, 24, 88, 24, + 0, 25, 39, 22, 0, 28, 84, 240, 24, 211, 67, 179, + 99, 162, 130, 147, 131, 130, 162, 130, 162, 130, 162, 130, + 162, 130, 162, 131, 131, 146, 130, 163, 99, 179, 67, 216, + 240, 20, 0, 25, 112, 53, 22, 0, 27, 117, 37, 173, + 196, 67, 179, 99, 163, 114, 162, 131, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 131, 147, 114, 163, 99, + 164, 67, 186, 194, 36, 226, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 82, 240, 82, 240, 40, 232, 176, 55, 22, + 0, 28, 69, 34, 187, 163, 69, 147, 115, 146, 131, 146, + 146, 130, 162, 130, 162, 130, 162, 130, 162, 130, 162, 131, + 146, 146, 131, 147, 100, 163, 69, 184, 18, 213, 34, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, + 82, 240, 40, 232, 32, 39, 22, 0, 27, 118, 69, 118, + 25, 166, 51, 165, 81, 180, 240, 51, 240, 67, 240, 66, + 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 28, 172, 0, 25, 80, 37, 22, 0, 28, + 73, 187, 178, 99, 162, 130, 162, 130, 163, 240, 84, 240, + 72, 240, 23, 240, 68, 162, 131, 146, 146, 147, 130, 147, + 130, 149, 82, 172, 162, 38, 0, 25, 80, 47, 22, 0, + 14, 98, 240, 82, 240, 82, 240, 82, 240, 82, 240, 29, + 157, 210, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 82, 240, 82, 240, 82, 98, 194, 98, 194, + 98, 195, 66, 232, 245, 0, 25, 80, 39, 22, 0, 27, + 117, 69, 133, 69, 178, 114, 178, 114, 178, 114, 178, 114, + 178, 114, 178, 114, 178, 114, 178, 114, 178, 114, 178, 114, + 178, 114, 178, 99, 179, 68, 205, 166, 21, 0, 25, 42, + 22, 0, 27, 119, 39, 103, 39, 130, 129, 194, 98, 194, + 98, 194, 98, 210, 66, 226, 66, 226, 66, 226, 66, 242, + 34, 240, 18, 34, 240, 18, 34, 240, 36, 240, 52, 240, + 52, 240, 66, 0, 26, 52, 22, 0, 27, 119, 55, 87, + 55, 114, 146, 146, 146, 146, 146, 146, 146, 146, 146, 162, + 35, 34, 178, 35, 34, 178, 35, 34, 178, 18, 18, 18, + 178, 18, 18, 18, 178, 18, 18, 18, 193, 18, 18, 17, + 211, 51, 211, 51, 211, 51, 0, 25, 64, 43, 22, 0, + 27, 119, 39, 103, 39, 147, 67, 210, 66, 242, 34, 240, + 18, 19, 240, 36, 240, 66, 240, 82, 240, 68, 240, 52, + 240, 34, 34, 242, 51, 226, 66, 210, 98, 151, 39, 103, + 39, 0, 25, 16, 59, 22, 0, 27, 118, 55, 102, 55, + 130, 114, 178, 114, 194, 98, 194, 82, 210, 82, 226, 66, + 226, 50, 242, 50, 240, 18, 34, 240, 18, 34, 240, 18, + 18, 240, 52, 240, 52, 240, 51, 240, 82, 240, 82, 240, + 82, 240, 66, 240, 82, 241, 66, 227, 34, 243, 19, 246, + 240, 36, 224, 38, 22, 0, 28, 30, 142, 130, 131, 146, + 116, 146, 115, 240, 51, 240, 51, 240, 51, 240, 51, 240, + 51, 240, 52, 240, 51, 240, 51, 114, 147, 130, 131, 146, + 127, 142, 0, 25, 16, 59, 22, 213, 247, 242, 240, 66, + 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 82, 240, 82, 240, 67, 231, 247, 240, 83, + 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, + 240, 82, 240, 82, 240, 82, 240, 82, 240, 98, 240, 87, + 240, 37, 0, 17, 64, 22, 162, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 82, 0, 17, 96, 60, 22, 69, 240, + 39, 240, 83, 240, 82, 240, 82, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, + 83, 240, 87, 247, 227, 240, 66, 240, 82, 240, 82, 240, + 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, 82, 240, + 82, 240, 66, 247, 245, 0, 18, 16, 15, 22, 0, 9, + 35, 66, 197, 35, 186, 179, 37, 194, 67, 0, 78, +}; + +//***************************************************************************** +// +// The font definition for the 40 point Cmtt font. +// +//***************************************************************************** +const tFont g_sFontCmtt40 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 17, + + // + // The height of the font. + // + 36, + + // + // The baseline of the font. + // + 27, + + // + // The offset to each character in the font. + // + { + 0, 4, 52, 83, 138, 209, 286, 353, + 383, 447, 511, 552, 591, 617, 626, 641, + 706, 759, 811, 863, 913, 969, 1019, 1070, + 1125, 1174, 1225, 1251, 1290, 1336, 1349, 1395, + 1443, 1507, 1563, 1612, 1664, 1715, 1766, 1815, + 1868, 1921, 1971, 2022, 2077, 2129, 2203, 2274, + 2325, 2374, 2441, 2495, 2547, 2604, 2658, 2716, + 2787, 2845, 2901, 2953, 3014, 3077, 3138, 3155, + 3164, 3192, 3229, 3282, 3319, 3371, 3406, 3454, + 3506, 3559, 3605, 3667, 3721, 3772, 3827, 3866, + 3905, 3958, 4013, 4052, 4089, 4136, 4175, 4217, + 4269, 4312, 4371, 4409, 4468, 4532, 4592, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmtt40Data +}; diff --git a/grlib/fonts/fontcmtt42.c b/grlib/fonts/fontcmtt42.c new file mode 100644 index 0000000..7d2e4ff --- /dev/null +++ b/grlib/fonts/fontcmtt42.c @@ -0,0 +1,513 @@ +//***************************************************************************** +// +// fontcmtt42.c - Font definition for the 42pt Cmtt font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmtt +// Size: 42 point +// Bold: no +// Italic: no +// Memory usage: 5076 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 42 point Cmtt font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmtt42Data[4876] = +{ + 5, 23, 0, 109, 32, 51, 23, 0, 10, 2, 240, 84, + 240, 68, 240, 68, 240, 68, 240, 68, 240, 68, 240, 68, + 240, 68, 240, 68, 240, 68, 240, 68, 240, 68, 240, 68, + 240, 68, 240, 68, 240, 68, 240, 68, 0, 14, 2, 240, + 84, 240, 68, 240, 82, 0, 27, 16, 31, 23, 0, 9, + 82, 66, 227, 51, 227, 51, 227, 51, 227, 51, 227, 51, + 227, 51, 227, 51, 227, 51, 227, 51, 227, 51, 241, 81, + 0, 67, 16, 59, 23, 0, 9, 98, 66, 242, 67, 226, + 66, 242, 66, 242, 66, 242, 66, 227, 66, 175, 1, 127, + 1, 127, 1, 178, 67, 226, 66, 242, 66, 242, 66, 242, + 66, 227, 66, 191, 1, 127, 1, 127, 1, 162, 67, 226, + 67, 226, 66, 242, 66, 242, 66, 227, 66, 242, 66, 0, + 26, 112, 81, 23, 162, 240, 98, 240, 98, 240, 99, 240, + 41, 219, 179, 34, 36, 162, 50, 67, 130, 66, 82, 130, + 66, 67, 130, 66, 67, 130, 66, 82, 131, 50, 240, 20, + 18, 240, 39, 240, 41, 240, 39, 240, 18, 36, 242, 66, + 146, 66, 82, 131, 50, 82, 131, 50, 82, 130, 66, 82, + 131, 50, 67, 146, 50, 51, 164, 18, 36, 187, 202, 246, + 240, 66, 240, 98, 240, 98, 240, 98, 0, 15, 96, 82, + 23, 83, 130, 149, 99, 150, 83, 131, 19, 68, 130, 50, + 67, 146, 50, 67, 146, 50, 52, 147, 19, 51, 181, 67, + 181, 52, 195, 67, 240, 83, 240, 67, 240, 83, 240, 83, + 240, 67, 240, 83, 240, 83, 240, 67, 240, 83, 240, 83, + 240, 67, 67, 211, 53, 180, 53, 179, 51, 19, 163, 50, + 50, 148, 50, 50, 147, 66, 50, 147, 66, 50, 132, 67, + 19, 131, 101, 147, 101, 146, 131, 0, 15, 72, 23, 0, + 9, 83, 240, 69, 240, 54, 240, 19, 34, 240, 18, 50, + 240, 18, 50, 240, 18, 50, 240, 18, 50, 240, 18, 35, + 22, 146, 34, 23, 146, 19, 38, 164, 66, 211, 82, 211, + 66, 212, 66, 197, 51, 179, 19, 34, 179, 50, 34, 178, + 84, 194, 84, 194, 98, 82, 98, 99, 66, 99, 54, 35, + 120, 23, 134, 53, 163, 99, 0, 26, 64, 32, 23, 0, + 10, 3, 240, 68, 240, 69, 240, 68, 240, 98, 240, 98, + 240, 98, 240, 83, 240, 82, 240, 83, 240, 67, 240, 67, + 240, 82, 0, 64, 96, 68, 23, 226, 240, 83, 240, 67, + 240, 67, 240, 67, 240, 82, 240, 83, 240, 82, 240, 83, + 240, 82, 240, 98, 240, 83, 240, 82, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 99, + 240, 98, 240, 98, 240, 99, 240, 98, 240, 99, 240, 98, + 240, 99, 240, 99, 240, 99, 240, 99, 240, 98, 0, 18, + 16, 67, 23, 114, 240, 99, 240, 99, 240, 99, 240, 99, + 240, 98, 240, 99, 240, 98, 240, 99, 240, 98, 240, 98, + 240, 99, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 82, 240, 98, + 240, 98, 240, 82, 240, 98, 240, 82, 240, 83, 240, 67, + 240, 67, 240, 67, 240, 82, 0, 19, 42, 23, 0, 21, + 66, 240, 98, 240, 98, 240, 98, 242, 66, 66, 148, 34, + 36, 167, 20, 202, 246, 240, 38, 250, 196, 23, 164, 34, + 36, 146, 66, 66, 242, 240, 98, 240, 98, 240, 98, 0, + 38, 80, 41, 23, 0, 21, 66, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 98, 240, 98, 255, 127, 1, + 142, 242, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 0, 35, 96, 27, 23, 0, 70, 51, + 240, 68, 240, 69, 240, 53, 240, 68, 240, 98, 240, 83, + 240, 82, 240, 68, 240, 52, 240, 82, 0, 10, 9, 23, + 0, 43, 95, 143, 143, 0, 58, 16, 23, 0, 70, 35, + 240, 69, 240, 53, 240, 53, 240, 67, 0, 27, 16, 71, + 23, 240, 34, 240, 83, 240, 83, 240, 67, 240, 83, 240, + 82, 240, 83, 240, 83, 240, 67, 240, 83, 240, 82, 240, + 83, 240, 83, 240, 67, 240, 83, 240, 82, 240, 83, 240, + 82, 240, 83, 240, 83, 240, 67, 240, 83, 240, 82, 240, + 83, 240, 83, 240, 67, 240, 83, 240, 82, 240, 83, 240, + 83, 240, 67, 240, 83, 240, 82, 0, 16, 64, 54, 23, + 0, 9, 116, 240, 39, 249, 212, 52, 195, 83, 179, 115, + 162, 146, 162, 146, 162, 147, 130, 178, 130, 178, 130, 178, + 130, 178, 130, 178, 130, 178, 130, 178, 130, 178, 131, 147, + 146, 146, 162, 146, 163, 115, 179, 83, 196, 52, 217, 247, + 240, 37, 0, 27, 58, 23, 0, 10, 2, 240, 98, 240, + 83, 240, 83, 240, 68, 240, 23, 240, 20, 18, 240, 19, + 34, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 98, 240, 43, 188, 202, 0, + 26, 80, 55, 23, 0, 9, 86, 240, 25, 219, 179, 85, + 162, 131, 146, 163, 130, 178, 131, 162, 130, 178, 240, 98, + 240, 98, 240, 82, 240, 98, 240, 82, 240, 83, 240, 67, + 240, 67, 240, 67, 240, 67, 240, 66, 240, 82, 240, 82, + 130, 162, 146, 143, 143, 143, 0, 26, 48, 51, 23, 0, + 9, 101, 240, 25, 219, 180, 83, 179, 115, 163, 130, 163, + 130, 240, 98, 240, 98, 240, 82, 240, 83, 247, 248, 240, + 24, 240, 84, 240, 98, 240, 99, 240, 98, 145, 178, 131, + 162, 131, 147, 131, 146, 164, 84, 172, 202, 246, 0, 27, + 60, 23, 0, 10, 20, 240, 68, 240, 53, 240, 35, 18, + 240, 34, 34, 240, 19, 34, 240, 18, 50, 242, 66, 227, + 66, 226, 82, 210, 98, 210, 98, 194, 114, 179, 114, 178, + 130, 162, 146, 175, 2, 111, 2, 111, 2, 240, 34, 240, + 98, 240, 98, 240, 98, 240, 41, 234, 217, 0, 26, 48, + 51, 23, 0, 9, 61, 173, 173, 162, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 37, 235, 204, 180, + 84, 163, 115, 162, 146, 240, 114, 240, 98, 240, 98, 130, + 178, 115, 178, 115, 163, 116, 131, 148, 85, 172, 202, 246, + 0, 26, 112, 53, 23, 0, 10, 21, 240, 24, 234, 196, + 67, 179, 99, 178, 115, 163, 240, 82, 240, 98, 240, 82, + 53, 210, 24, 204, 181, 68, 163, 130, 163, 131, 146, 162, + 146, 162, 146, 162, 146, 162, 162, 146, 162, 131, 163, 114, + 195, 68, 202, 232, 240, 36, 0, 27, 58, 23, 0, 6, + 34, 240, 110, 159, 142, 146, 131, 162, 130, 240, 83, 240, + 82, 240, 82, 240, 98, 240, 82, 240, 98, 240, 82, 240, + 98, 240, 98, 240, 82, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 82, 240, 98, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 0, 27, 64, 51, 23, 0, 9, 117, 240, + 24, 234, 196, 68, 163, 131, 146, 162, 146, 162, 146, 162, + 146, 162, 162, 130, 180, 68, 202, 246, 250, 195, 84, 163, + 130, 147, 147, 130, 178, 130, 178, 130, 178, 131, 162, 147, + 130, 164, 84, 187, 217, 240, 21, 0, 27, 54, 23, 0, + 9, 117, 240, 24, 234, 197, 51, 195, 114, 179, 114, 163, + 145, 163, 146, 147, 146, 147, 146, 147, 146, 148, 130, 163, + 115, 165, 68, 188, 200, 18, 228, 50, 240, 98, 240, 82, + 240, 98, 179, 99, 179, 83, 195, 67, 218, 232, 240, 21, + 0, 27, 16, 27, 23, 0, 32, 115, 240, 69, 240, 53, + 240, 53, 240, 67, 0, 25, 67, 240, 69, 240, 53, 240, + 53, 240, 67, 0, 27, 16, 38, 23, 0, 33, 3, 240, + 69, 240, 53, 240, 53, 240, 67, 0, 25, 67, 240, 69, + 240, 53, 240, 53, 240, 68, 240, 98, 240, 83, 240, 82, + 240, 68, 240, 52, 240, 82, 0, 10, 48, 23, 0, 19, + 50, 240, 68, 240, 53, 240, 36, 240, 37, 240, 37, 240, + 21, 240, 37, 240, 36, 240, 37, 240, 52, 240, 69, 240, + 84, 240, 85, 240, 69, 240, 85, 240, 69, 240, 84, 240, + 85, 240, 68, 240, 98, 0, 32, 16, 21, 23, 0, 35, + 15, 1, 127, 1, 127, 1, 0, 9, 79, 1, 127, 1, + 127, 1, 0, 49, 32, 48, 23, 0, 17, 98, 240, 100, + 240, 69, 240, 84, 240, 85, 240, 69, 240, 85, 240, 69, + 240, 84, 240, 85, 240, 68, 240, 53, 240, 36, 240, 37, + 240, 37, 240, 21, 240, 37, 240, 36, 240, 37, 240, 52, + 240, 66, 0, 33, 96, 49, 23, 0, 9, 102, 250, 204, + 164, 100, 147, 146, 147, 146, 147, 146, 240, 83, 240, 52, + 240, 52, 240, 66, 240, 82, 240, 98, 240, 82, 240, 98, + 240, 98, 240, 98, 240, 98, 0, 14, 18, 240, 84, 240, + 68, 240, 82, 0, 27, 16, 66, 23, 0, 10, 4, 240, + 39, 249, 212, 67, 179, 114, 178, 70, 163, 56, 146, 57, + 146, 51, 36, 131, 50, 67, 130, 51, 82, 130, 50, 98, + 130, 50, 98, 130, 50, 98, 130, 50, 98, 130, 50, 98, + 130, 51, 82, 131, 50, 66, 162, 51, 35, 163, 40, 178, + 54, 195, 52, 228, 83, 203, 216, 240, 22, 0, 26, 96, + 64, 23, 0, 9, 115, 240, 83, 240, 69, 240, 50, 18, + 240, 50, 18, 240, 50, 18, 240, 50, 18, 240, 35, 19, + 240, 18, 50, 240, 18, 50, 240, 18, 50, 240, 18, 51, + 227, 51, 227, 51, 226, 82, 226, 82, 234, 203, 203, 194, + 114, 194, 114, 179, 115, 163, 115, 135, 70, 103, 55, 103, + 55, 0, 26, 32, 50, 23, 0, 9, 27, 205, 174, 178, + 115, 178, 131, 162, 146, 162, 146, 162, 146, 162, 146, 162, + 130, 178, 115, 187, 202, 220, 178, 131, 162, 146, 162, 147, + 146, 162, 146, 162, 146, 162, 146, 162, 146, 147, 146, 131, + 143, 142, 156, 0, 26, 96, 55, 23, 0, 9, 116, 50, + 200, 18, 188, 179, 69, 163, 100, 162, 131, 147, 131, 146, + 162, 146, 162, 130, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 114, 162, 146, 162, 147, + 146, 147, 131, 163, 114, 195, 68, 202, 232, 240, 36, 0, + 27, 53, 23, 0, 9, 27, 204, 189, 194, 100, 178, 115, + 178, 131, 162, 146, 162, 146, 162, 147, 146, 162, 146, 162, + 146, 162, 146, 162, 146, 162, 146, 162, 146, 162, 146, 162, + 146, 147, 146, 146, 162, 146, 162, 131, 162, 115, 178, 100, + 157, 172, 187, 0, 26, 112, 54, 23, 0, 9, 31, 127, + 1, 143, 162, 146, 162, 146, 162, 146, 162, 146, 162, 240, + 98, 240, 98, 82, 226, 82, 233, 233, 233, 226, 82, 226, + 82, 226, 240, 98, 240, 98, 240, 98, 162, 146, 162, 146, + 162, 146, 162, 127, 1, 111, 2, 127, 1, 0, 26, 32, + 52, 23, 0, 9, 47, 127, 1, 143, 162, 146, 162, 146, + 162, 146, 162, 146, 162, 240, 98, 240, 98, 240, 98, 82, + 226, 82, 233, 233, 233, 226, 82, 226, 82, 226, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 71, 248, 240, + 23, 0, 27, 32, 57, 23, 0, 9, 101, 49, 200, 18, + 188, 179, 69, 163, 100, 147, 131, 147, 131, 146, 162, 146, + 162, 130, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 134, 114, 135, 99, 118, 130, 162, 146, 162, 147, 131, 162, + 131, 163, 100, 180, 53, 188, 200, 18, 228, 50, 0, 26, + 64, 56, 23, 0, 9, 22, 70, 118, 70, 118, 70, 146, + 130, 178, 130, 178, 130, 178, 130, 178, 130, 178, 130, 178, + 130, 178, 130, 188, 188, 188, 178, 130, 178, 130, 178, 130, + 178, 130, 178, 130, 178, 130, 178, 130, 178, 130, 178, 130, + 150, 70, 118, 70, 118, 70, 0, 26, 32, 54, 23, 0, + 9, 60, 188, 188, 240, 18, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 28, 188, 188, + 0, 26, 64, 54, 23, 0, 9, 120, 249, 232, 240, 66, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 209, 114, 195, 98, 195, 98, + 196, 67, 217, 232, 240, 37, 0, 27, 16, 61, 23, 0, + 9, 6, 70, 118, 70, 118, 70, 146, 115, 178, 114, 194, + 98, 210, 83, 210, 67, 226, 66, 242, 51, 242, 35, 240, + 18, 35, 240, 18, 21, 245, 18, 244, 35, 227, 66, 227, + 67, 210, 98, 210, 99, 194, 114, 194, 115, 178, 130, 178, + 130, 150, 85, 118, 86, 102, 85, 0, 26, 48, 56, 23, + 0, 9, 39, 249, 232, 240, 50, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 146, 162, 146, 162, 146, 162, 146, 143, 127, + 1, 127, 1, 0, 26, 32, 80, 23, 0, 9, 5, 117, + 101, 117, 102, 101, 132, 84, 164, 84, 164, 84, 162, 18, + 65, 18, 162, 18, 50, 18, 162, 18, 50, 18, 162, 18, + 50, 18, 162, 34, 33, 34, 162, 34, 18, 34, 162, 34, + 18, 34, 162, 34, 18, 34, 162, 49, 17, 50, 162, 51, + 50, 162, 51, 50, 162, 65, 66, 162, 146, 162, 146, 162, + 146, 162, 146, 162, 146, 134, 101, 102, 86, 101, 102, 0, + 26, 32, 75, 23, 0, 9, 5, 102, 102, 71, 102, 86, + 132, 114, 165, 98, 162, 18, 98, 162, 18, 98, 162, 19, + 82, 162, 34, 82, 162, 34, 82, 162, 35, 66, 162, 50, + 66, 162, 51, 50, 162, 51, 50, 162, 66, 50, 162, 67, + 34, 162, 82, 34, 162, 82, 34, 162, 83, 18, 162, 98, + 18, 162, 98, 18, 162, 101, 162, 116, 134, 84, 135, 68, + 134, 99, 0, 26, 64, 53, 23, 0, 9, 88, 235, 188, + 179, 99, 163, 131, 146, 162, 146, 162, 146, 162, 146, 162, + 146, 162, 146, 162, 146, 162, 146, 162, 146, 162, 146, 162, + 146, 162, 146, 162, 146, 162, 146, 162, 146, 162, 147, 146, + 147, 131, 163, 99, 188, 187, 232, 0, 26, 96, 52, 23, + 0, 9, 43, 189, 189, 194, 100, 178, 130, 178, 131, 162, + 146, 162, 146, 162, 146, 162, 146, 162, 131, 162, 130, 178, + 100, 187, 202, 217, 226, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 70, 240, 24, 240, 22, 0, + 27, 48, 69, 23, 0, 9, 88, 235, 188, 179, 99, 163, + 131, 146, 162, 146, 162, 146, 162, 146, 162, 146, 162, 146, + 162, 146, 162, 146, 162, 146, 162, 146, 162, 146, 162, 146, + 162, 146, 162, 146, 67, 50, 146, 67, 50, 147, 67, 34, + 147, 67, 19, 163, 69, 188, 188, 217, 240, 83, 240, 99, + 240, 83, 240, 83, 240, 99, 240, 83, 0, 9, 16, 55, + 23, 0, 9, 10, 219, 204, 210, 84, 194, 114, 194, 115, + 178, 130, 178, 130, 178, 130, 178, 130, 178, 115, 178, 84, + 202, 217, 234, 210, 84, 194, 99, 194, 114, 194, 114, 194, + 114, 194, 114, 194, 114, 34, 130, 114, 34, 102, 86, 103, + 84, 118, 115, 0, 26, 48, 56, 23, 0, 9, 85, 50, + 200, 18, 188, 163, 85, 147, 116, 146, 147, 146, 147, 146, + 162, 146, 162, 162, 240, 100, 240, 87, 240, 41, 240, 39, + 240, 69, 240, 98, 240, 99, 130, 178, 130, 178, 130, 178, + 131, 162, 131, 146, 149, 99, 157, 162, 25, 178, 54, 0, + 26, 112, 60, 23, 0, 9, 15, 2, 111, 2, 111, 2, + 98, 82, 98, 98, 82, 98, 98, 82, 98, 98, 82, 98, + 210, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 98, 240, 57, 233, 233, 0, + 26, 96, 56, 23, 0, 9, 6, 86, 88, 56, 86, 86, + 130, 146, 162, 146, 162, 146, 162, 146, 162, 146, 162, 146, + 162, 146, 162, 146, 162, 146, 162, 146, 162, 146, 162, 146, + 162, 146, 162, 146, 162, 146, 162, 146, 162, 146, 178, 115, + 179, 83, 196, 52, 217, 247, 240, 37, 0, 27, 60, 23, + 0, 9, 7, 86, 87, 71, 87, 71, 115, 131, 147, 131, + 162, 130, 179, 99, 179, 99, 179, 99, 194, 98, 210, 98, + 211, 67, 211, 67, 211, 67, 226, 66, 243, 35, 243, 35, + 243, 35, 240, 18, 34, 240, 34, 34, 240, 38, 240, 38, + 240, 52, 240, 68, 240, 68, 240, 68, 0, 27, 74, 23, + 0, 9, 6, 117, 86, 102, 85, 133, 98, 194, 130, 162, + 146, 162, 146, 162, 146, 162, 146, 162, 146, 162, 146, 162, + 146, 66, 66, 147, 36, 49, 178, 36, 34, 178, 36, 34, + 178, 36, 34, 178, 36, 34, 178, 18, 34, 18, 178, 18, + 34, 18, 178, 18, 34, 18, 178, 18, 34, 18, 196, 34, + 17, 211, 67, 211, 67, 211, 67, 211, 67, 0, 26, 80, + 61, 23, 0, 9, 7, 39, 119, 39, 119, 39, 163, 82, + 211, 67, 226, 66, 243, 35, 240, 18, 35, 240, 22, 240, + 38, 240, 52, 240, 68, 240, 83, 240, 68, 240, 69, 240, + 38, 240, 34, 35, 243, 35, 243, 50, 242, 67, 211, 82, + 210, 99, 179, 114, 150, 71, 102, 71, 102, 71, 0, 26, + 32, 60, 23, 0, 9, 22, 70, 103, 70, 118, 70, 147, + 99, 179, 99, 194, 98, 211, 67, 226, 66, 243, 50, 243, + 35, 240, 18, 34, 240, 38, 240, 52, 240, 68, 240, 82, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 70, 240, 38, 240, 38, 0, 26, + 112, 54, 23, 0, 9, 31, 143, 143, 130, 162, 146, 147, + 146, 146, 162, 130, 240, 83, 240, 82, 240, 83, 240, 82, + 240, 82, 240, 83, 240, 82, 240, 83, 240, 82, 240, 82, + 240, 98, 240, 82, 145, 162, 146, 162, 146, 146, 162, 146, + 162, 143, 143, 143, 0, 26, 48, 65, 23, 121, 233, 233, + 226, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 105, 233, 233, 0, 15, 32, + 70, 23, 66, 240, 99, 240, 83, 240, 99, 240, 83, 240, + 83, 240, 99, 240, 83, 240, 99, 240, 83, 240, 98, 240, + 99, 240, 83, 240, 99, 240, 83, 240, 99, 240, 83, 240, + 83, 240, 99, 240, 83, 240, 99, 240, 83, 240, 98, 240, + 99, 240, 83, 240, 99, 240, 83, 240, 99, 240, 83, 240, + 83, 240, 99, 240, 83, 240, 98, 0, 14, 112, 65, 23, + 121, 233, 233, 240, 98, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 98, 240, 98, 233, 233, 233, + 0, 15, 32, 18, 23, 0, 9, 115, 240, 69, 240, 25, + 213, 21, 195, 83, 194, 114, 0, 84, 16, 10, 23, 0, + 86, 111, 143, 143, 0, 14, 112, 30, 23, 210, 240, 83, + 240, 67, 240, 67, 240, 82, 240, 83, 240, 82, 240, 98, + 240, 98, 240, 100, 240, 69, 240, 68, 240, 67, 0, 73, + 16, 36, 23, 0, 32, 54, 250, 219, 195, 83, 209, 130, + 240, 98, 240, 23, 218, 203, 181, 82, 164, 114, 163, 130, + 163, 130, 163, 130, 164, 84, 191, 159, 150, 52, 0, 26, + 48, 57, 23, 0, 9, 21, 240, 53, 240, 53, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 37, 226, + 23, 219, 196, 68, 179, 99, 179, 114, 178, 131, 162, 146, + 162, 146, 162, 146, 162, 146, 162, 146, 162, 131, 163, 114, + 180, 83, 181, 36, 202, 210, 36, 0, 26, 112, 38, 23, + 0, 32, 118, 249, 219, 195, 83, 179, 99, 178, 240, 83, + 240, 82, 240, 98, 240, 98, 240, 98, 240, 99, 240, 98, + 130, 179, 114, 195, 83, 202, 232, 240, 37, 0, 26, 112, + 56, 23, 0, 10, 21, 240, 53, 240, 53, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 98, 229, 34, 200, 18, 188, + 179, 69, 163, 115, 162, 146, 147, 146, 146, 162, 146, 162, + 146, 162, 146, 162, 146, 162, 162, 131, 163, 115, 164, 69, + 191, 152, 21, 180, 53, 0, 26, 32, 36, 23, 0, 32, + 117, 240, 24, 234, 211, 83, 179, 114, 178, 131, 147, 131, + 158, 158, 158, 147, 240, 83, 240, 99, 130, 163, 115, 180, + 68, 187, 232, 240, 21, 0, 26, 112, 51, 23, 0, 10, + 37, 240, 39, 248, 227, 51, 226, 81, 242, 240, 98, 240, + 98, 240, 29, 173, 173, 242, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 28, 189, 172, 0, 26, 80, 50, + 23, 0, 32, 85, 51, 189, 158, 147, 51, 50, 131, 83, + 194, 114, 194, 114, 194, 114, 195, 83, 211, 51, 233, 217, + 226, 21, 242, 240, 98, 240, 122, 205, 159, 131, 147, 115, + 194, 98, 210, 98, 210, 99, 179, 116, 116, 157, 187, 231, + 128, 58, 23, 0, 9, 5, 240, 53, 240, 53, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 52, 226, + 23, 218, 213, 51, 195, 98, 195, 98, 194, 114, 194, 114, + 194, 114, 194, 114, 194, 114, 194, 114, 194, 114, 194, 114, + 194, 114, 152, 24, 104, 24, 104, 24, 0, 26, 32, 49, + 23, 0, 10, 2, 240, 84, 240, 68, 240, 82, 0, 13, + 71, 240, 23, 240, 23, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 29, 158, 173, 0, 26, 48, + 63, 23, 0, 10, 66, 240, 84, 240, 68, 240, 82, 0, + 13, 56, 248, 248, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 195, 83, 195, 67, 218, 232, + 240, 21, 160, 61, 23, 0, 9, 5, 240, 53, 240, 53, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 56, 162, 57, 146, 56, 162, 83, 210, 67, 226, 51, 242, + 35, 240, 18, 19, 240, 39, 240, 20, 19, 243, 51, 226, + 82, 226, 83, 210, 99, 194, 114, 152, 39, 104, 39, 104, + 39, 0, 26, 32, 53, 23, 0, 9, 40, 248, 248, 240, + 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 254, 158, 158, 0, 26, 48, 59, 23, 0, + 31, 116, 19, 52, 137, 22, 127, 2, 132, 36, 35, 131, + 51, 66, 130, 66, 82, 130, 66, 82, 130, 66, 82, 130, + 66, 82, 130, 66, 82, 130, 66, 82, 130, 66, 82, 130, + 66, 82, 130, 66, 82, 130, 66, 82, 102, 21, 22, 70, + 21, 22, 70, 21, 22, 0, 26, 16, 42, 23, 0, 32, + 5, 37, 181, 23, 173, 213, 51, 195, 98, 195, 98, 194, + 114, 194, 114, 194, 114, 194, 114, 194, 114, 194, 114, 194, + 114, 194, 114, 194, 114, 152, 24, 104, 24, 104, 24, 0, + 26, 32, 38, 23, 0, 32, 116, 240, 40, 234, 211, 68, + 179, 99, 178, 130, 162, 162, 146, 162, 146, 162, 146, 162, + 146, 162, 147, 146, 162, 130, 179, 99, 180, 68, 202, 232, + 240, 36, 0, 27, 54, 23, 0, 32, 21, 37, 181, 23, + 174, 196, 68, 179, 99, 178, 131, 162, 146, 162, 146, 162, + 146, 162, 146, 162, 146, 162, 146, 163, 114, 179, 99, 180, + 68, 187, 194, 23, 210, 36, 242, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 56, 248, 248, 176, 55, 23, + 0, 32, 85, 34, 200, 18, 188, 179, 69, 163, 115, 162, + 131, 147, 146, 146, 162, 146, 162, 146, 162, 146, 162, 147, + 146, 162, 131, 163, 100, 164, 69, 188, 200, 18, 228, 50, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 56, 248, 248, 48, 40, 23, 0, 32, 22, 53, 150, + 39, 134, 24, 198, 35, 196, 240, 67, 240, 83, 240, 82, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 43, 203, 203, 0, 26, 112, 39, 23, 0, + 32, 86, 18, 218, 203, 179, 99, 178, 130, 178, 130, 179, + 240, 102, 240, 56, 240, 70, 240, 99, 162, 146, 163, 130, + 163, 130, 165, 83, 172, 178, 24, 194, 38, 0, 26, 112, + 48, 23, 0, 18, 50, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 45, 158, 173, 226, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 98, 210, + 98, 210, 98, 211, 67, 232, 247, 240, 52, 0, 26, 96, + 41, 23, 0, 32, 5, 69, 149, 69, 149, 69, 194, 114, + 194, 114, 194, 114, 194, 114, 194, 114, 194, 114, 194, 114, + 194, 114, 194, 114, 194, 114, 194, 99, 195, 68, 206, 173, + 181, 37, 0, 26, 32, 48, 23, 0, 32, 7, 55, 103, + 55, 103, 55, 146, 114, 194, 114, 194, 114, 210, 82, 226, + 82, 226, 82, 227, 51, 242, 50, 240, 18, 50, 240, 18, + 50, 240, 34, 18, 240, 50, 18, 240, 50, 18, 240, 67, + 240, 83, 0, 27, 16, 49, 23, 0, 32, 7, 71, 87, + 71, 87, 71, 114, 162, 146, 162, 146, 162, 147, 146, 162, + 50, 50, 178, 36, 34, 178, 36, 34, 178, 36, 34, 178, + 37, 18, 182, 18, 18, 196, 36, 212, 36, 212, 36, 212, + 51, 211, 67, 0, 26, 80, 48, 23, 0, 32, 7, 54, + 119, 40, 103, 54, 163, 82, 227, 50, 240, 18, 35, 240, + 34, 18, 240, 52, 240, 83, 240, 83, 240, 66, 18, 240, + 35, 18, 240, 34, 50, 242, 82, 211, 83, 151, 55, 103, + 55, 103, 55, 0, 26, 32, 62, 23, 0, 32, 22, 70, + 103, 55, 118, 55, 146, 130, 179, 98, 210, 98, 210, 98, + 226, 66, 242, 66, 242, 66, 240, 18, 35, 240, 18, 34, + 240, 34, 34, 240, 53, 240, 52, 240, 68, 240, 83, 240, + 82, 240, 98, 240, 98, 240, 83, 240, 82, 243, 35, 243, + 34, 240, 23, 240, 37, 240, 52, 224, 39, 23, 0, 32, + 47, 143, 143, 130, 147, 146, 131, 161, 131, 240, 67, 240, + 67, 240, 67, 240, 67, 240, 67, 240, 67, 240, 67, 130, + 147, 146, 131, 162, 143, 127, 1, 143, 0, 26, 32, 68, + 23, 229, 240, 38, 240, 23, 243, 240, 82, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 68, 247, 240, 22, 240, 39, 240, 84, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 99, 240, 103, + 240, 23, 240, 53, 0, 14, 112, 70, 23, 178, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 0, 15, 80, 67, 23, 85, 240, 55, 240, 24, + 240, 83, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, + 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 100, + 240, 87, 240, 38, 240, 23, 244, 240, 66, 240, 98, 240, + 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, 98, 240, + 98, 240, 98, 240, 83, 247, 240, 23, 240, 21, 0, 16, + 16, 23, 0, 9, 83, 82, 197, 51, 187, 179, 53, 194, + 83, 0, 87, 32, +}; + +//***************************************************************************** +// +// The font definition for the 42 point Cmtt font. +// +//***************************************************************************** +const tFont g_sFontCmtt42 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 18, + + // + // The height of the font. + // + 38, + + // + // The baseline of the font. + // + 29, + + // + // The offset to each character in the font. + // + { + 0, 5, 56, 87, 146, 227, 309, 381, + 413, 481, 548, 590, 631, 658, 667, 683, + 754, 808, 866, 921, 972, 1032, 1083, 1136, + 1194, 1245, 1299, 1326, 1364, 1412, 1433, 1481, + 1530, 1596, 1660, 1710, 1765, 1818, 1872, 1924, + 1981, 2037, 2091, 2145, 2206, 2262, 2342, 2417, + 2470, 2522, 2591, 2646, 2702, 2762, 2818, 2878, + 2952, 3013, 3073, 3127, 3192, 3262, 3327, 3345, + 3355, 3385, 3421, 3478, 3516, 3572, 3608, 3659, + 3709, 3767, 3816, 3879, 3940, 3993, 4052, 4094, + 4132, 4186, 4241, 4281, 4320, 4368, 4409, 4457, + 4506, 4554, 4616, 4655, 4723, 4793, 4860, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmtt42Data +}; diff --git a/grlib/fonts/fontcmtt44.c b/grlib/fonts/fontcmtt44.c new file mode 100644 index 0000000..279be90 --- /dev/null +++ b/grlib/fonts/fontcmtt44.c @@ -0,0 +1,544 @@ +//***************************************************************************** +// +// fontcmtt44.c - Font definition for the 44pt Cmtt font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmtt +// Size: 44 point +// Bold: no +// Italic: no +// Memory usage: 5456 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 44 point Cmtt font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmtt44Data[5255] = +{ + 5, 25, 0, 127, 144, 53, 25, 0, 14, 2, 240, 116, + 240, 100, 240, 100, 240, 100, 240, 100, 240, 100, 240, 100, + 240, 100, 240, 100, 240, 100, 240, 100, 240, 100, 240, 100, + 240, 100, 240, 100, 240, 100, 240, 100, 240, 100, 0, 15, + 34, 240, 116, 240, 100, 240, 114, 0, 32, 80, 34, 25, + 0, 13, 66, 82, 244, 52, 228, 52, 228, 52, 228, 52, + 228, 52, 228, 52, 228, 52, 228, 52, 228, 52, 242, 82, + 240, 18, 82, 240, 18, 82, 0, 76, 79, 25, 0, 13, + 98, 66, 240, 19, 66, 240, 19, 66, 240, 19, 66, 240, + 19, 51, 240, 18, 67, 240, 18, 67, 191, 2, 143, 2, + 143, 2, 195, 66, 240, 19, 66, 240, 19, 66, 240, 19, + 51, 240, 18, 67, 240, 18, 67, 240, 18, 67, 207, 2, + 143, 2, 143, 2, 179, 66, 240, 19, 66, 240, 19, 51, + 240, 18, 67, 240, 18, 67, 240, 18, 67, 240, 18, 66, + 0, 32, 64, 86, 25, 195, 240, 115, 240, 115, 240, 115, + 240, 87, 240, 27, 221, 180, 35, 20, 179, 51, 36, 147, + 67, 51, 147, 67, 51, 147, 67, 51, 147, 67, 50, 164, + 51, 240, 20, 35, 240, 40, 240, 58, 240, 41, 240, 56, + 240, 35, 35, 240, 35, 36, 162, 67, 51, 147, 67, 51, + 147, 67, 51, 146, 83, 51, 147, 67, 51, 163, 51, 35, + 180, 35, 20, 204, 234, 240, 39, 240, 83, 240, 115, 240, + 115, 240, 115, 0, 20, 87, 25, 84, 130, 166, 114, 166, + 99, 152, 83, 147, 35, 82, 163, 35, 67, 163, 35, 67, + 163, 35, 66, 180, 19, 51, 198, 67, 198, 51, 228, 67, + 240, 115, 240, 99, 240, 115, 240, 115, 240, 99, 240, 115, + 240, 115, 240, 99, 240, 115, 240, 115, 240, 99, 240, 115, + 68, 227, 54, 195, 70, 195, 52, 19, 178, 67, 35, 163, + 67, 35, 163, 67, 35, 162, 83, 35, 147, 84, 19, 147, + 102, 162, 118, 162, 132, 0, 19, 48, 75, 25, 0, 13, + 83, 240, 86, 240, 70, 240, 52, 19, 240, 35, 35, 240, + 35, 35, 240, 35, 35, 240, 35, 35, 240, 35, 35, 23, + 147, 19, 24, 162, 19, 39, 165, 66, 228, 82, 227, 83, + 212, 82, 214, 51, 196, 18, 50, 211, 35, 34, 195, 66, + 19, 195, 69, 211, 84, 81, 115, 83, 83, 100, 68, 67, + 115, 54, 36, 120, 24, 150, 55, 164, 99, 0, 32, 34, + 25, 0, 14, 3, 240, 100, 240, 101, 240, 100, 240, 130, + 240, 130, 240, 130, 240, 130, 240, 115, 240, 99, 240, 115, + 240, 84, 240, 99, 240, 114, 0, 73, 64, 75, 25, 240, + 18, 240, 115, 240, 100, 240, 84, 240, 84, 240, 99, 240, + 99, 240, 100, 240, 99, 240, 115, 240, 99, 240, 115, 240, + 115, 240, 99, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 131, 240, 115, 240, + 115, 240, 116, 240, 115, 240, 116, 240, 115, 240, 116, 240, + 116, 240, 116, 240, 116, 240, 115, 240, 130, 0, 19, 80, + 74, 25, 130, 240, 131, 240, 116, 240, 116, 240, 116, 240, + 116, 240, 115, 240, 131, 240, 115, 240, 116, 240, 115, 240, + 115, 240, 116, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 99, 240, + 115, 240, 115, 240, 115, 240, 99, 240, 115, 240, 99, 240, + 100, 240, 84, 240, 84, 240, 84, 240, 99, 240, 114, 0, + 20, 80, 49, 25, 0, 26, 51, 240, 115, 240, 115, 240, + 115, 240, 18, 67, 66, 164, 35, 36, 165, 19, 21, 203, + 240, 23, 240, 69, 240, 72, 251, 197, 19, 21, 164, 35, + 36, 162, 67, 66, 240, 19, 240, 115, 240, 115, 240, 115, + 0, 45, 16, 43, 25, 0, 26, 51, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 255, 2, + 143, 2, 143, 2, 243, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 0, 45, 16, 30, 25, + 0, 79, 67, 240, 101, 240, 86, 240, 70, 240, 70, 240, + 85, 240, 115, 240, 114, 240, 115, 240, 84, 240, 84, 240, + 114, 0, 14, 16, 13, 25, 0, 50, 95, 1, 159, 1, + 159, 1, 0, 69, 32, 18, 25, 0, 79, 67, 240, 101, + 240, 85, 240, 85, 240, 85, 240, 99, 0, 32, 80, 74, + 25, 240, 66, 240, 115, 240, 115, 240, 99, 240, 115, 240, + 99, 240, 115, 240, 115, 240, 99, 240, 115, 240, 99, 240, + 115, 240, 115, 240, 99, 240, 115, 240, 99, 240, 115, 240, + 100, 240, 99, 240, 115, 240, 99, 240, 115, 240, 99, 240, + 115, 240, 115, 240, 99, 240, 115, 240, 99, 240, 115, 240, + 115, 240, 99, 240, 115, 240, 99, 240, 115, 240, 114, 0, + 21, 59, 25, 0, 13, 101, 240, 71, 240, 41, 244, 52, + 212, 84, 195, 115, 179, 147, 163, 147, 163, 147, 147, 179, + 131, 179, 131, 179, 131, 179, 131, 179, 131, 179, 131, 179, + 131, 179, 132, 163, 147, 147, 163, 147, 164, 131, 179, 115, + 196, 84, 212, 52, 249, 240, 39, 240, 69, 0, 32, 64, + 59, 25, 0, 14, 2, 240, 115, 240, 115, 240, 100, 240, + 85, 240, 40, 240, 36, 19, 240, 35, 35, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 45, 205, 205, 0, 32, 60, + 25, 0, 13, 101, 240, 58, 236, 196, 85, 179, 116, 163, + 148, 147, 163, 148, 147, 147, 163, 240, 115, 240, 115, 240, + 100, 240, 99, 240, 100, 240, 99, 240, 99, 240, 99, 240, + 99, 240, 99, 240, 99, 240, 99, 240, 84, 240, 84, 115, + 164, 131, 159, 1, 159, 1, 159, 1, 0, 31, 96, 57, + 25, 0, 13, 86, 240, 42, 237, 180, 100, 179, 132, 163, + 147, 163, 147, 240, 115, 240, 100, 240, 99, 240, 84, 240, + 24, 240, 40, 240, 41, 240, 116, 240, 116, 240, 116, 240, + 115, 240, 115, 131, 179, 131, 179, 131, 164, 132, 132, 164, + 100, 205, 218, 240, 38, 0, 32, 64, 64, 25, 0, 14, + 5, 240, 85, 240, 70, 240, 66, 19, 240, 51, 19, 240, + 35, 35, 240, 35, 35, 240, 19, 51, 240, 18, 67, 243, + 67, 242, 83, 227, 83, 226, 99, 211, 99, 195, 115, 195, + 115, 179, 131, 191, 3, 127, 4, 111, 3, 240, 51, 240, + 115, 240, 115, 240, 115, 240, 74, 235, 250, 0, 31, 96, + 54, 25, 0, 13, 45, 205, 205, 195, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 37, 252, + 221, 196, 85, 179, 131, 240, 116, 240, 115, 240, 115, 147, + 163, 147, 163, 147, 163, 147, 147, 163, 132, 180, 84, 219, + 249, 240, 53, 0, 32, 64, 56, 25, 0, 14, 21, 240, + 56, 251, 213, 67, 211, 99, 195, 115, 179, 240, 115, 240, + 114, 240, 115, 53, 227, 25, 206, 182, 69, 164, 116, 164, + 131, 163, 163, 147, 163, 147, 163, 147, 163, 162, 163, 163, + 147, 163, 131, 195, 100, 196, 68, 235, 248, 240, 69, 0, + 32, 48, 63, 25, 0, 10, 17, 240, 143, 1, 159, 1, + 159, 1, 147, 147, 163, 131, 240, 99, 240, 115, 240, 99, + 240, 99, 240, 115, 240, 99, 240, 115, 240, 99, 240, 115, + 240, 115, 240, 99, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 99, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 0, 32, 112, 56, 25, 0, 13, 86, 240, 42, + 236, 197, 69, 179, 132, 147, 163, 147, 163, 147, 163, 147, + 163, 163, 131, 196, 68, 234, 240, 38, 240, 42, 228, 84, + 179, 132, 163, 147, 147, 179, 131, 179, 131, 179, 131, 179, + 132, 148, 147, 132, 165, 84, 205, 218, 240, 38, 0, 32, + 64, 57, 25, 0, 13, 117, 240, 56, 240, 26, 228, 68, + 196, 99, 195, 131, 163, 147, 163, 162, 163, 163, 147, 163, + 147, 163, 147, 163, 163, 132, 164, 116, 180, 70, 190, 201, + 19, 229, 51, 240, 114, 240, 115, 240, 115, 179, 115, 195, + 100, 195, 84, 219, 249, 240, 38, 0, 32, 80, 31, 25, + 0, 38, 115, 240, 101, 240, 85, 240, 85, 240, 85, 240, + 99, 0, 24, 83, 240, 101, 240, 85, 240, 85, 240, 85, + 240, 99, 0, 32, 80, 42, 25, 0, 39, 3, 240, 101, + 240, 85, 240, 85, 240, 85, 240, 99, 0, 24, 83, 240, + 101, 240, 85, 240, 85, 240, 85, 240, 100, 240, 130, 240, + 115, 240, 114, 240, 100, 240, 84, 240, 114, 0, 14, 51, + 25, 0, 21, 18, 240, 100, 240, 85, 240, 69, 240, 53, + 240, 69, 240, 69, 240, 53, 240, 69, 240, 69, 240, 53, + 240, 84, 240, 101, 240, 102, 240, 101, 240, 101, 240, 102, + 240, 101, 240, 101, 240, 117, 240, 101, 240, 100, 240, 130, + 0, 38, 21, 25, 0, 41, 31, 2, 143, 2, 143, 2, + 0, 10, 63, 2, 143, 2, 143, 2, 0, 59, 112, 52, + 25, 0, 19, 50, 240, 132, 240, 101, 240, 101, 240, 117, + 240, 101, 240, 102, 240, 101, 240, 101, 240, 102, 240, 101, + 240, 100, 240, 85, 240, 53, 240, 69, 240, 69, 240, 53, + 240, 69, 240, 69, 240, 53, 240, 69, 240, 84, 240, 98, + 0, 39, 96, 51, 25, 0, 13, 88, 252, 206, 180, 101, + 147, 163, 147, 163, 147, 163, 161, 164, 240, 69, 240, 69, + 240, 68, 240, 99, 240, 99, 240, 100, 240, 99, 240, 115, + 240, 115, 240, 115, 240, 115, 0, 15, 50, 240, 116, 240, + 100, 240, 114, 0, 32, 80, 68, 25, 0, 14, 5, 240, + 56, 251, 213, 67, 211, 115, 179, 71, 179, 56, 163, 58, + 147, 36, 37, 132, 35, 68, 131, 36, 83, 131, 35, 99, + 131, 35, 99, 131, 35, 99, 131, 35, 99, 131, 35, 99, + 131, 36, 83, 132, 35, 67, 163, 36, 36, 163, 56, 180, + 54, 212, 52, 244, 115, 181, 69, 204, 234, 240, 38, 0, + 32, 32, 65, 25, 0, 13, 116, 240, 100, 240, 100, 240, + 100, 240, 86, 240, 70, 240, 67, 18, 240, 66, 34, 240, + 66, 35, 240, 35, 35, 240, 35, 35, 240, 35, 35, 240, + 34, 66, 240, 19, 67, 243, 67, 243, 67, 243, 67, 250, + 236, 220, 211, 99, 211, 99, 210, 130, 195, 131, 151, 71, + 119, 71, 119, 71, 0, 31, 80, 56, 25, 0, 13, 13, + 191, 1, 175, 1, 179, 116, 179, 132, 163, 147, 163, 147, + 163, 147, 163, 147, 163, 131, 179, 115, 204, 219, 237, 195, + 116, 179, 147, 163, 147, 163, 163, 147, 163, 147, 163, 147, + 163, 147, 148, 147, 147, 163, 117, 143, 1, 143, 1, 174, + 0, 32, 16, 58, 25, 0, 13, 117, 51, 201, 19, 190, + 165, 70, 163, 117, 147, 148, 132, 148, 131, 179, 131, 179, + 116, 193, 131, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 116, 240, 115, 179, 131, 179, 132, 163, + 148, 132, 148, 131, 181, 69, 204, 234, 240, 38, 0, 32, + 32, 55, 25, 0, 13, 12, 221, 206, 211, 100, 195, 116, + 179, 131, 179, 132, 163, 147, 163, 147, 163, 163, 147, 163, + 147, 163, 147, 163, 147, 163, 147, 163, 147, 163, 147, 163, + 147, 163, 147, 147, 163, 147, 163, 147, 163, 131, 179, 116, + 179, 100, 175, 173, 204, 0, 32, 48, 59, 25, 0, 13, + 15, 2, 127, 3, 143, 2, 163, 147, 163, 147, 163, 147, + 163, 161, 179, 240, 115, 240, 115, 67, 243, 67, 250, 250, + 250, 243, 67, 243, 67, 243, 81, 240, 19, 240, 115, 240, + 115, 163, 147, 163, 147, 163, 147, 163, 147, 163, 127, 3, + 111, 4, 127, 3, 0, 31, 80, 57, 25, 0, 13, 15, + 3, 127, 3, 127, 3, 163, 147, 163, 147, 163, 147, 163, + 147, 163, 240, 115, 240, 115, 240, 115, 83, 227, 83, 235, + 235, 235, 227, 83, 227, 83, 227, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 73, 240, 25, 240, + 25, 0, 32, 96, 59, 25, 0, 13, 101, 50, 216, 19, + 205, 181, 54, 164, 101, 163, 132, 148, 147, 147, 163, 147, + 163, 132, 177, 147, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 136, 99, 136, 100, 120, 115, 163, 147, 163, 148, + 132, 163, 132, 164, 101, 181, 54, 205, 216, 19, 244, 51, + 0, 31, 112, 58, 25, 0, 12, 119, 71, 119, 72, 103, + 71, 147, 131, 179, 131, 179, 131, 179, 131, 179, 131, 179, + 131, 179, 131, 179, 131, 190, 190, 190, 179, 131, 179, 131, + 179, 131, 179, 131, 179, 131, 179, 131, 179, 131, 179, 131, + 179, 131, 179, 131, 151, 71, 119, 72, 103, 71, 0, 31, + 96, 55, 25, 0, 13, 45, 191, 189, 240, 35, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 45, 191, 189, 0, 32, 56, 25, 0, 13, + 106, 251, 234, 240, 83, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 209, 131, 195, 115, 195, 100, 196, 68, 235, 249, 240, + 38, 0, 32, 80, 67, 25, 0, 13, 7, 86, 119, 86, + 119, 86, 147, 131, 179, 115, 195, 99, 211, 98, 227, 83, + 227, 67, 243, 66, 240, 19, 51, 240, 19, 35, 240, 35, + 21, 240, 19, 18, 18, 240, 22, 19, 245, 50, 244, 67, + 228, 82, 227, 99, 211, 114, 211, 115, 195, 130, 195, 131, + 179, 146, 151, 101, 119, 86, 119, 101, 0, 31, 80, 60, + 25, 0, 13, 9, 240, 26, 249, 240, 67, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 161, 179, 147, 163, 147, 163, 147, + 163, 147, 127, 3, 127, 3, 127, 3, 0, 31, 80, 82, + 25, 0, 12, 118, 133, 102, 118, 103, 102, 133, 100, 165, + 85, 165, 85, 163, 18, 65, 19, 163, 18, 65, 19, 163, + 18, 50, 19, 163, 18, 50, 19, 163, 34, 33, 35, 163, + 34, 18, 35, 163, 34, 18, 35, 163, 34, 18, 35, 163, + 49, 17, 51, 163, 51, 51, 163, 51, 51, 163, 65, 67, + 163, 147, 163, 147, 163, 147, 163, 147, 163, 147, 163, 147, + 135, 102, 103, 87, 102, 118, 0, 31, 80, 77, 25, 0, + 13, 6, 71, 119, 72, 118, 71, 165, 83, 197, 83, 195, + 17, 83, 195, 17, 83, 195, 18, 67, 195, 18, 67, 195, + 33, 67, 195, 33, 67, 195, 34, 51, 195, 34, 51, 195, + 49, 51, 195, 50, 35, 195, 50, 35, 195, 50, 35, 195, + 65, 35, 195, 66, 19, 195, 66, 19, 195, 66, 19, 195, + 81, 19, 195, 85, 195, 85, 167, 53, 152, 68, 167, 68, + 0, 32, 55, 25, 0, 13, 74, 236, 206, 180, 100, 179, + 132, 148, 147, 147, 163, 147, 163, 147, 163, 147, 163, 147, + 163, 147, 163, 147, 163, 147, 163, 147, 163, 147, 163, 147, + 163, 147, 163, 147, 163, 147, 163, 147, 163, 148, 132, 163, + 132, 164, 100, 190, 204, 234, 0, 32, 16, 54, 25, 0, + 13, 28, 207, 191, 195, 101, 179, 131, 179, 132, 163, 147, + 163, 147, 163, 147, 163, 147, 163, 132, 163, 131, 179, 101, + 189, 204, 218, 243, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 87, 240, 41, 240, 39, + 0, 32, 112, 71, 25, 0, 13, 74, 236, 206, 180, 100, + 179, 132, 148, 147, 147, 163, 147, 163, 147, 163, 147, 163, + 147, 163, 147, 163, 147, 163, 147, 163, 147, 163, 147, 163, + 147, 163, 147, 163, 147, 163, 147, 67, 51, 147, 67, 51, + 148, 67, 35, 163, 67, 19, 180, 70, 190, 204, 234, 240, + 115, 240, 131, 240, 115, 240, 131, 240, 115, 240, 115, 0, + 13, 16, 58, 25, 0, 12, 123, 237, 206, 211, 85, 195, + 115, 195, 116, 179, 131, 179, 131, 179, 131, 179, 131, 179, + 115, 195, 85, 204, 219, 235, 227, 84, 211, 100, 195, 115, + 195, 115, 195, 115, 195, 115, 195, 115, 33, 147, 115, 19, + 131, 115, 19, 103, 87, 104, 85, 119, 115, 0, 31, 112, + 58, 25, 0, 13, 85, 66, 201, 19, 190, 164, 86, 163, + 117, 147, 148, 147, 148, 147, 163, 147, 163, 148, 240, 116, + 240, 118, 240, 89, 240, 42, 240, 71, 240, 101, 240, 115, + 240, 131, 131, 179, 131, 179, 131, 179, 132, 163, 132, 147, + 150, 100, 159, 163, 26, 178, 70, 0, 32, 48, 64, 25, + 0, 13, 15, 3, 127, 3, 127, 3, 115, 83, 67, 115, + 83, 67, 115, 83, 67, 115, 83, 67, 243, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 73, 240, 25, 240, 25, 0, + 32, 16, 59, 25, 0, 12, 119, 87, 89, 57, 87, 87, + 131, 147, 163, 147, 163, 147, 163, 147, 163, 147, 163, 147, + 163, 147, 163, 147, 163, 147, 163, 147, 163, 147, 163, 147, + 163, 147, 163, 147, 163, 147, 163, 147, 163, 147, 164, 131, + 179, 115, 196, 84, 212, 52, 235, 249, 240, 53, 0, 32, + 64, 71, 25, 0, 12, 119, 87, 103, 87, 103, 87, 131, + 147, 178, 146, 195, 115, 195, 115, 195, 115, 195, 115, 210, + 114, 227, 83, 227, 83, 227, 83, 242, 82, 240, 19, 51, + 240, 19, 51, 240, 19, 51, 240, 34, 50, 240, 51, 34, + 240, 51, 19, 240, 51, 19, 240, 51, 19, 240, 66, 18, + 240, 82, 18, 240, 85, 240, 85, 240, 99, 0, 32, 80, + 76, 25, 0, 12, 118, 118, 102, 118, 102, 118, 115, 179, + 146, 178, 162, 178, 162, 178, 162, 178, 162, 178, 162, 178, + 162, 178, 163, 51, 51, 178, 51, 50, 194, 51, 50, 194, + 34, 18, 34, 194, 34, 18, 34, 194, 34, 18, 34, 194, + 34, 18, 34, 194, 34, 18, 34, 195, 18, 19, 18, 212, + 52, 228, 52, 228, 52, 228, 52, 228, 52, 227, 83, 242, + 82, 0, 32, 32, 69, 25, 0, 13, 7, 55, 135, 55, + 135, 55, 179, 83, 227, 83, 243, 51, 240, 19, 51, 240, + 35, 19, 240, 51, 19, 240, 69, 240, 85, 240, 99, 240, + 115, 240, 115, 240, 101, 240, 85, 240, 67, 19, 240, 51, + 19, 240, 50, 51, 240, 19, 51, 240, 18, 83, 227, 83, + 227, 99, 195, 115, 167, 71, 119, 71, 119, 71, 0, 31, + 80, 65, 25, 0, 12, 119, 87, 103, 87, 103, 87, 132, + 115, 195, 115, 195, 115, 211, 83, 227, 83, 243, 51, 240, + 19, 51, 240, 35, 34, 240, 51, 19, 240, 51, 19, 240, + 69, 240, 85, 240, 99, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 87, 240, + 41, 240, 39, 0, 32, 48, 62, 25, 0, 13, 15, 2, + 143, 2, 143, 2, 131, 163, 147, 148, 147, 147, 163, 131, + 240, 100, 240, 99, 240, 100, 240, 99, 240, 99, 240, 100, + 240, 99, 240, 99, 240, 100, 240, 99, 240, 99, 240, 115, + 240, 99, 131, 164, 131, 163, 147, 147, 163, 147, 163, 143, + 2, 143, 2, 143, 2, 0, 31, 96, 69, 25, 138, 250, + 250, 243, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 122, + 250, 250, 0, 19, 80, 74, 25, 82, 240, 131, 240, 115, + 240, 131, 240, 115, 240, 116, 240, 115, 240, 115, 240, 131, + 240, 115, 240, 131, 240, 115, 240, 115, 240, 131, 240, 115, + 240, 131, 240, 115, 240, 116, 240, 115, 240, 115, 240, 131, + 240, 115, 240, 131, 240, 115, 240, 115, 240, 131, 240, 115, + 240, 131, 240, 115, 240, 116, 240, 115, 240, 115, 240, 131, + 240, 115, 240, 130, 0, 19, 32, 69, 25, 138, 250, 250, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 250, 250, + 250, 0, 19, 80, 18, 25, 0, 14, 2, 240, 102, 240, + 57, 229, 37, 212, 68, 210, 130, 0, 97, 80, 13, 25, + 0, 100, 95, 1, 159, 1, 159, 1, 0, 19, 32, 34, + 25, 240, 240, 146, 240, 115, 240, 100, 240, 99, 240, 99, + 240, 115, 240, 99, 240, 115, 240, 115, 240, 115, 240, 117, + 240, 85, 240, 100, 240, 114, 0, 82, 80, 41, 25, 0, + 38, 39, 240, 27, 236, 211, 100, 209, 132, 240, 115, 240, + 40, 235, 205, 182, 83, 179, 131, 163, 147, 163, 147, 163, + 147, 163, 147, 179, 101, 191, 3, 138, 22, 166, 69, 0, + 31, 80, 59, 25, 0, 13, 6, 240, 70, 240, 70, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 37, + 243, 24, 221, 198, 52, 196, 100, 180, 115, 179, 132, 163, + 147, 163, 147, 163, 147, 163, 147, 163, 147, 163, 147, 164, + 115, 180, 115, 181, 83, 198, 37, 203, 227, 37, 0, 32, + 32, 42, 25, 0, 39, 6, 240, 41, 251, 212, 83, 196, + 99, 195, 240, 100, 240, 99, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 116, 240, 115, 130, 196, 114, 213, 67, 234, + 240, 24, 240, 69, 0, 32, 32, 59, 25, 0, 14, 22, + 240, 70, 240, 70, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 245, 35, 216, 19, 205, 180, 70, 164, 116, 163, + 132, 148, 147, 147, 163, 147, 163, 147, 163, 147, 163, 147, + 163, 148, 147, 163, 132, 164, 101, 180, 70, 207, 1, 168, + 22, 181, 54, 0, 31, 80, 41, 25, 0, 38, 117, 240, + 57, 251, 212, 84, 180, 115, 179, 146, 178, 163, 147, 163, + 159, 1, 159, 1, 159, 1, 147, 240, 115, 240, 131, 162, + 164, 131, 181, 84, 204, 234, 240, 38, 0, 32, 32, 58, + 25, 0, 14, 37, 240, 71, 240, 40, 240, 20, 35, 240, + 19, 65, 240, 35, 240, 115, 240, 115, 240, 45, 205, 205, + 240, 35, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 44, 221, 204, 0, 32, 16, 56, 25, 0, + 38, 85, 52, 206, 175, 148, 52, 35, 132, 83, 211, 115, + 195, 115, 195, 115, 195, 115, 211, 84, 212, 52, 234, 235, + 227, 21, 240, 19, 240, 115, 240, 139, 238, 175, 1, 147, + 148, 131, 180, 115, 195, 115, 195, 115, 195, 116, 164, 133, + 101, 174, 204, 247, 144, 60, 25, 0, 12, 118, 240, 70, + 240, 70, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 52, 243, 24, 220, 214, 52, 196, 99, 196, 99, + 195, 115, 195, 115, 195, 115, 195, 115, 195, 115, 195, 115, + 195, 115, 195, 115, 195, 115, 195, 115, 153, 25, 105, 25, + 105, 25, 0, 31, 80, 50, 25, 0, 13, 114, 240, 116, + 240, 100, 240, 114, 0, 14, 104, 240, 25, 240, 40, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 30, 191, 174, 0, 32, 70, 25, 0, 14, 66, + 240, 116, 240, 100, 240, 114, 0, 14, 89, 240, 25, 240, + 25, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 225, 115, 211, 83, 227, 68, 234, + 240, 24, 240, 54, 160, 64, 25, 0, 12, 118, 240, 70, + 240, 70, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 72, 163, 57, 163, 72, 163, 99, 211, 83, 227, + 67, 243, 51, 240, 19, 35, 240, 35, 20, 240, 41, 240, + 21, 35, 244, 51, 243, 83, 227, 99, 211, 114, 211, 115, + 153, 55, 105, 55, 105, 55, 0, 31, 80, 58, 25, 0, + 13, 25, 250, 240, 25, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 31, 159, 2, 159, 0, 31, 112, 62, 25, 0, 37, 117, + 20, 51, 155, 21, 143, 3, 149, 36, 35, 148, 52, 35, + 147, 67, 51, 147, 67, 51, 147, 67, 51, 147, 67, 51, + 147, 67, 51, 147, 67, 51, 147, 67, 51, 147, 67, 51, + 147, 67, 51, 147, 67, 51, 147, 67, 51, 119, 21, 22, + 87, 21, 22, 87, 21, 22, 0, 31, 64, 44, 25, 0, + 37, 118, 37, 198, 24, 175, 214, 52, 196, 99, 196, 99, + 195, 115, 195, 115, 195, 115, 195, 115, 195, 115, 195, 115, + 195, 115, 195, 115, 195, 115, 195, 115, 153, 25, 105, 25, + 105, 25, 0, 31, 80, 43, 25, 0, 38, 117, 240, 56, + 240, 26, 228, 68, 196, 100, 179, 131, 164, 132, 147, 163, + 147, 163, 147, 163, 147, 163, 147, 163, 148, 132, 163, 131, + 180, 100, 196, 68, 234, 240, 24, 240, 54, 0, 32, 48, + 61, 25, 0, 38, 6, 37, 198, 24, 175, 1, 197, 68, + 196, 100, 180, 115, 179, 132, 163, 147, 163, 147, 163, 147, + 163, 147, 163, 147, 163, 132, 164, 115, 180, 100, 181, 68, + 204, 211, 23, 227, 37, 243, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 73, 240, 25, 240, 25, + 192, 60, 25, 0, 38, 85, 51, 201, 19, 190, 165, 70, + 148, 117, 147, 148, 132, 163, 131, 179, 131, 179, 131, 179, + 131, 179, 131, 179, 132, 163, 147, 148, 148, 117, 165, 70, + 190, 201, 19, 229, 51, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 73, 250, 240, 25, + 32, 42, 25, 0, 38, 23, 53, 152, 39, 151, 24, 215, + 35, 213, 81, 228, 240, 100, 240, 100, 240, 99, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 60, 205, 220, 0, 32, 32, 41, 25, 0, 38, 86, + 19, 220, 205, 180, 100, 179, 131, 179, 131, 180, 129, 214, + 240, 89, 240, 57, 240, 101, 193, 148, 163, 147, 163, 147, + 164, 131, 165, 100, 174, 179, 25, 195, 38, 0, 32, 48, + 54, 25, 0, 23, 3, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 47, 1, 159, 1, 159, 1, 227, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 113, 227, 99, 211, 99, 211, 99, 212, 68, 234, 240, + 24, 240, 53, 0, 32, 32, 43, 25, 0, 37, 118, 70, + 150, 70, 150, 70, 195, 115, 195, 115, 195, 115, 195, 115, + 195, 115, 195, 115, 195, 115, 195, 115, 195, 115, 195, 115, + 195, 115, 195, 100, 196, 69, 223, 175, 197, 38, 0, 31, + 80, 51, 25, 0, 38, 7, 71, 119, 71, 119, 71, 162, + 130, 210, 130, 211, 99, 226, 98, 242, 98, 243, 82, 240, + 18, 66, 240, 34, 66, 240, 34, 66, 240, 35, 35, 240, + 50, 34, 240, 66, 34, 240, 70, 240, 84, 240, 100, 240, + 100, 0, 32, 64, 54, 25, 0, 37, 119, 87, 104, 56, + 103, 87, 130, 178, 162, 178, 163, 147, 178, 146, 194, 146, + 194, 51, 50, 194, 51, 50, 194, 52, 34, 195, 21, 34, + 195, 18, 18, 19, 210, 18, 18, 18, 226, 18, 21, 229, + 36, 228, 52, 228, 52, 243, 66, 0, 32, 32, 51, 25, + 0, 38, 8, 39, 136, 39, 136, 39, 194, 83, 243, 66, + 240, 35, 35, 240, 50, 19, 240, 84, 240, 99, 240, 130, + 240, 116, 240, 82, 19, 240, 66, 34, 240, 50, 66, 240, + 19, 67, 227, 99, 167, 71, 120, 40, 119, 71, 0, 31, + 80, 74, 25, 0, 38, 22, 71, 120, 55, 134, 71, 162, + 130, 211, 114, 226, 114, 226, 98, 243, 82, 240, 18, 82, + 240, 18, 67, 240, 19, 50, 240, 50, 50, 240, 50, 35, + 240, 66, 18, 240, 82, 18, 240, 82, 18, 240, 100, 240, + 99, 240, 115, 240, 115, 240, 114, 240, 130, 240, 115, 240, + 33, 66, 240, 35, 35, 240, 35, 35, 240, 39, 240, 69, + 240, 84, 240, 46, 25, 0, 38, 31, 2, 143, 2, 143, + 2, 131, 148, 147, 132, 163, 116, 240, 84, 240, 84, 240, + 84, 240, 84, 240, 84, 240, 84, 240, 84, 240, 84, 131, + 148, 147, 132, 163, 143, 2, 127, 3, 143, 2, 0, 31, + 80, 74, 25, 245, 240, 56, 240, 24, 240, 21, 240, 83, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 85, 240, 24, + 240, 24, 240, 56, 240, 101, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 117, 240, 104, 240, 56, 240, 69, + 0, 19, 48, 74, 25, 179, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 0, 20, 16, 74, 25, 101, 240, 72, 240, 56, + 240, 101, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 132, 240, 104, 240, 55, 240, 40, 240, 36, 240, 83, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 100, 240, 24, + 240, 24, 240, 53, 0, 20, 64, 16, 25, 0, 13, 83, + 82, 229, 51, 219, 211, 53, 226, 83, 0, 101, 16, +}; + +//***************************************************************************** +// +// The font definition for the 44 point Cmtt font. +// +//***************************************************************************** +const tFont g_sFontCmtt44 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 20, + + // + // The height of the font. + // + 41, + + // + // The baseline of the font. + // + 31, + + // + // The offset to each character in the font. + // + { + 0, 5, 58, 92, 171, 257, 344, 419, + 453, 528, 602, 651, 694, 724, 737, 755, + 829, 888, 947, 1007, 1064, 1128, 1182, 1238, + 1301, 1357, 1414, 1445, 1487, 1538, 1559, 1611, + 1662, 1730, 1795, 1851, 1909, 1964, 2023, 2080, + 2139, 2197, 2252, 2308, 2375, 2435, 2517, 2594, + 2649, 2703, 2774, 2832, 2890, 2954, 3013, 3084, + 3160, 3229, 3294, 3356, 3425, 3499, 3568, 3586, + 3599, 3633, 3674, 3733, 3775, 3834, 3875, 3933, + 3989, 4049, 4099, 4169, 4233, 4291, 4353, 4397, + 4440, 4501, 4561, 4603, 4644, 4698, 4741, 4792, + 4846, 4897, 4971, 5017, 5091, 5165, 5239, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmtt44Data +}; diff --git a/grlib/fonts/fontcmtt46.c b/grlib/fonts/fontcmtt46.c new file mode 100644 index 0000000..9adb7f9 --- /dev/null +++ b/grlib/fonts/fontcmtt46.c @@ -0,0 +1,557 @@ +//***************************************************************************** +// +// fontcmtt46.c - Font definition for the 46pt Cmtt font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmtt +// Size: 46 point +// Bold: no +// Italic: no +// Memory usage: 5608 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 46 point Cmtt font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmtt46Data[5407] = +{ + 7, 25, 0, 127, 240, 240, 64, 55, 25, 0, 14, 2, + 240, 116, 240, 100, 240, 100, 240, 100, 240, 100, 240, 100, + 240, 100, 240, 100, 240, 100, 240, 100, 240, 100, 240, 100, + 240, 100, 240, 100, 240, 100, 240, 100, 240, 100, 240, 100, + 0, 15, 34, 240, 116, 240, 100, 240, 100, 240, 114, 0, + 32, 80, 36, 25, 0, 13, 66, 82, 244, 52, 228, 52, + 228, 52, 228, 52, 228, 52, 228, 52, 228, 52, 228, 52, + 228, 52, 228, 52, 242, 82, 240, 18, 82, 240, 18, 82, + 0, 76, 65, 25, 0, 13, 98, 82, 240, 18, 67, 243, + 67, 243, 67, 243, 67, 243, 67, 243, 67, 175, 3, 127, + 3, 127, 3, 179, 67, 243, 67, 243, 67, 243, 67, 243, + 67, 243, 67, 243, 67, 243, 67, 191, 3, 127, 3, 127, + 3, 163, 67, 243, 67, 243, 67, 243, 67, 243, 67, 243, + 66, 240, 18, 82, 0, 32, 48, 89, 25, 179, 240, 115, + 240, 115, 240, 115, 240, 88, 251, 221, 180, 35, 36, 163, + 51, 52, 131, 67, 67, 131, 67, 67, 131, 67, 52, 131, + 67, 66, 148, 51, 240, 20, 35, 240, 25, 240, 42, 240, + 42, 240, 56, 240, 35, 21, 240, 19, 36, 240, 19, 52, + 146, 67, 67, 132, 51, 67, 132, 51, 67, 131, 67, 67, + 132, 51, 52, 147, 51, 51, 164, 35, 21, 189, 219, 240, + 23, 240, 83, 240, 115, 240, 115, 240, 115, 0, 20, 16, + 90, 25, 84, 145, 166, 114, 166, 114, 152, 83, 147, 35, + 82, 163, 35, 82, 163, 35, 67, 163, 35, 66, 180, 19, + 66, 198, 67, 198, 66, 228, 82, 240, 115, 240, 114, 240, + 130, 240, 115, 240, 114, 240, 115, 240, 115, 240, 114, 240, + 115, 240, 115, 240, 114, 240, 115, 83, 227, 69, 210, 85, + 195, 67, 19, 179, 67, 19, 178, 83, 19, 163, 83, 19, + 163, 83, 19, 162, 99, 19, 147, 99, 19, 147, 117, 162, + 133, 162, 147, 0, 19, 48, 79, 25, 0, 13, 84, 240, + 86, 240, 55, 240, 36, 35, 240, 19, 51, 240, 19, 51, + 240, 19, 51, 240, 19, 51, 240, 19, 35, 38, 147, 35, + 23, 162, 19, 54, 166, 65, 229, 66, 228, 82, 228, 82, + 213, 66, 211, 19, 50, 195, 35, 50, 180, 51, 18, 195, + 67, 18, 195, 85, 195, 84, 66, 115, 99, 67, 100, 69, + 51, 115, 55, 35, 121, 23, 151, 54, 165, 84, 0, 31, + 112, 34, 25, 0, 14, 3, 240, 100, 240, 101, 240, 85, + 240, 100, 240, 130, 240, 130, 240, 130, 240, 115, 240, 114, + 240, 115, 240, 99, 240, 99, 240, 114, 0, 76, 80, 77, + 25, 240, 18, 240, 100, 240, 84, 240, 84, 240, 84, 240, + 99, 240, 99, 240, 115, 240, 99, 240, 115, 240, 99, 240, + 115, 240, 115, 240, 99, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 116, 240, + 115, 240, 115, 240, 115, 240, 131, 240, 115, 240, 116, 240, + 115, 240, 131, 240, 116, 240, 116, 240, 116, 240, 116, 240, + 115, 0, 19, 80, 76, 25, 115, 240, 116, 240, 116, 240, + 116, 240, 116, 240, 115, 240, 131, 240, 116, 240, 115, 240, + 115, 240, 131, 240, 115, 240, 115, 240, 131, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 99, 240, 115, 240, 115, 240, 99, 240, + 115, 240, 100, 240, 99, 240, 99, 240, 100, 240, 84, 240, + 84, 240, 84, 240, 98, 0, 20, 96, 48, 25, 0, 26, + 67, 240, 115, 240, 115, 240, 115, 242, 83, 66, 148, 51, + 51, 149, 35, 21, 188, 234, 240, 38, 240, 70, 240, 42, + 222, 165, 35, 21, 148, 51, 36, 146, 83, 66, 240, 19, + 240, 115, 240, 115, 240, 115, 0, 45, 47, 25, 0, 23, + 35, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 255, 2, 127, 4, 127, 2, 243, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 0, 45, 16, 30, 25, 0, 82, 83, + 240, 101, 240, 86, 240, 70, 240, 70, 240, 85, 240, 115, + 240, 114, 240, 115, 240, 84, 240, 84, 240, 114, 0, 14, + 16, 13, 25, 0, 50, 79, 2, 143, 2, 143, 2, 0, + 72, 48, 18, 25, 0, 82, 83, 240, 101, 240, 85, 240, + 85, 240, 85, 240, 99, 0, 32, 80, 76, 25, 240, 66, + 240, 115, 240, 115, 240, 99, 240, 115, 240, 115, 240, 99, + 240, 115, 240, 99, 240, 115, 240, 115, 240, 99, 240, 115, + 240, 99, 240, 115, 240, 115, 240, 99, 240, 115, 240, 99, + 240, 115, 240, 99, 240, 115, 240, 115, 240, 99, 240, 115, + 240, 99, 240, 115, 240, 115, 240, 99, 240, 115, 240, 99, + 240, 115, 240, 115, 240, 99, 240, 115, 240, 114, 0, 21, + 61, 25, 0, 13, 101, 240, 71, 240, 41, 244, 52, 212, + 84, 195, 115, 179, 147, 163, 147, 163, 147, 162, 179, 131, + 179, 131, 179, 131, 179, 131, 179, 131, 179, 131, 179, 131, + 179, 131, 179, 132, 148, 147, 147, 163, 147, 164, 116, 179, + 115, 196, 84, 212, 52, 249, 240, 39, 240, 69, 0, 32, + 64, 62, 25, 0, 14, 18, 240, 115, 240, 115, 240, 100, + 240, 85, 240, 40, 240, 21, 19, 240, 35, 35, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 45, 205, 205, + 0, 31, 112, 62, 25, 0, 13, 86, 240, 42, 236, 196, + 85, 179, 132, 147, 163, 147, 179, 132, 163, 131, 179, 146, + 179, 240, 115, 240, 115, 240, 99, 240, 115, 240, 99, 240, + 100, 240, 84, 240, 84, 240, 84, 240, 84, 240, 84, 240, + 83, 240, 99, 240, 84, 131, 148, 147, 143, 2, 143, 2, + 143, 2, 0, 31, 96, 59, 25, 0, 13, 87, 240, 27, + 221, 181, 84, 180, 116, 164, 131, 164, 131, 240, 115, 240, + 115, 240, 99, 240, 99, 240, 39, 240, 40, 240, 56, 240, + 116, 240, 116, 240, 115, 240, 131, 240, 115, 146, 179, 132, + 163, 132, 163, 132, 147, 148, 132, 165, 84, 205, 218, 240, + 39, 0, 32, 48, 65, 25, 0, 14, 21, 240, 70, 240, + 70, 240, 51, 19, 240, 50, 35, 240, 35, 35, 240, 19, + 51, 240, 19, 51, 243, 67, 242, 83, 227, 83, 211, 99, + 211, 99, 195, 115, 194, 131, 179, 131, 163, 147, 175, 5, + 95, 5, 95, 4, 240, 51, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 59, 235, 235, 0, 31, 80, 56, 25, 0, + 13, 30, 190, 190, 179, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 38, 237, 206, 181, 84, + 179, 132, 162, 163, 240, 131, 240, 115, 240, 115, 146, 179, + 132, 163, 132, 148, 132, 147, 148, 132, 165, 69, 204, 234, + 240, 38, 0, 32, 64, 58, 25, 0, 14, 6, 240, 42, + 235, 213, 68, 180, 100, 164, 116, 163, 146, 163, 240, 115, + 240, 114, 240, 115, 54, 211, 26, 191, 166, 85, 149, 132, + 132, 148, 131, 180, 115, 180, 115, 180, 115, 180, 130, 180, + 131, 164, 131, 148, 163, 117, 165, 69, 204, 234, 240, 38, + 0, 32, 48, 65, 25, 0, 10, 2, 240, 127, 2, 143, + 3, 127, 2, 131, 163, 147, 147, 240, 100, 240, 99, 240, + 99, 240, 115, 240, 99, 240, 115, 240, 99, 240, 115, 240, + 99, 240, 115, 240, 115, 240, 99, 240, 115, 240, 115, 240, + 115, 240, 99, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 0, 32, 112, 58, 25, 0, 13, + 87, 240, 27, 221, 181, 85, 163, 147, 147, 179, 131, 179, + 131, 179, 131, 179, 147, 147, 180, 84, 219, 240, 23, 240, + 27, 212, 85, 163, 148, 131, 179, 115, 211, 99, 211, 99, + 211, 99, 211, 99, 211, 115, 179, 132, 148, 149, 85, 189, + 219, 240, 23, 0, 32, 48, 58, 25, 0, 13, 102, 240, + 41, 251, 213, 68, 180, 115, 180, 131, 148, 147, 148, 162, + 148, 163, 132, 163, 132, 163, 132, 163, 148, 132, 148, 132, + 165, 70, 190, 201, 19, 229, 51, 240, 114, 240, 115, 240, + 115, 178, 132, 164, 115, 180, 99, 196, 69, 219, 234, 240, + 38, 0, 32, 80, 31, 25, 0, 38, 115, 240, 101, 240, + 85, 240, 85, 240, 85, 240, 99, 0, 27, 99, 240, 101, + 240, 85, 240, 85, 240, 85, 240, 99, 0, 32, 80, 42, + 25, 0, 39, 3, 240, 101, 240, 85, 240, 85, 240, 85, + 240, 99, 0, 27, 99, 240, 101, 240, 85, 240, 85, 240, + 85, 240, 100, 240, 130, 240, 115, 240, 114, 240, 100, 240, + 84, 240, 114, 0, 14, 52, 25, 0, 21, 3, 240, 100, + 240, 85, 240, 54, 240, 53, 240, 54, 240, 53, 240, 54, + 240, 53, 240, 69, 240, 54, 240, 68, 240, 102, 240, 101, + 240, 101, 240, 102, 240, 101, 240, 102, 240, 101, 240, 102, + 240, 101, 240, 100, 240, 115, 0, 41, 16, 21, 25, 0, + 41, 31, 3, 127, 3, 127, 3, 0, 13, 63, 3, 127, + 3, 127, 3, 0, 59, 96, 52, 25, 0, 19, 35, 240, + 116, 240, 101, 240, 102, 240, 101, 240, 102, 240, 101, 240, + 102, 240, 101, 240, 101, 240, 102, 240, 100, 240, 70, 240, + 53, 240, 69, 240, 54, 240, 53, 240, 54, 240, 53, 240, + 54, 240, 53, 240, 84, 240, 99, 0, 42, 112, 54, 25, + 0, 13, 87, 240, 28, 206, 165, 100, 164, 132, 148, 147, + 148, 147, 177, 148, 240, 69, 240, 69, 240, 68, 240, 83, + 240, 99, 240, 115, 240, 99, 240, 115, 240, 115, 240, 115, + 240, 115, 0, 15, 34, 240, 116, 240, 100, 240, 100, 240, + 114, 0, 32, 112, 72, 25, 0, 14, 5, 240, 57, 251, + 213, 67, 196, 55, 164, 56, 163, 58, 131, 52, 37, 131, + 51, 68, 131, 51, 68, 115, 51, 99, 115, 51, 99, 115, + 51, 99, 115, 51, 99, 115, 51, 99, 115, 51, 99, 115, + 51, 99, 116, 51, 67, 147, 51, 67, 147, 52, 36, 148, + 56, 179, 70, 196, 68, 228, 131, 181, 69, 204, 234, 240, + 38, 0, 32, 16, 70, 25, 0, 13, 115, 240, 101, 240, + 85, 240, 85, 240, 82, 18, 240, 82, 19, 240, 51, 19, + 240, 51, 19, 240, 51, 19, 240, 50, 50, 240, 35, 51, + 240, 19, 51, 240, 19, 51, 240, 19, 51, 240, 18, 82, + 243, 83, 227, 83, 235, 235, 235, 211, 115, 195, 115, 195, + 115, 195, 115, 194, 146, 151, 87, 104, 56, 103, 87, 0, + 31, 80, 56, 25, 0, 13, 13, 191, 191, 195, 116, 179, + 132, 163, 147, 163, 147, 163, 147, 163, 147, 163, 132, 163, + 131, 179, 100, 204, 219, 237, 195, 116, 179, 147, 163, 147, + 163, 163, 147, 163, 147, 163, 147, 163, 147, 148, 147, 147, + 163, 117, 143, 1, 143, 1, 174, 0, 32, 16, 60, 25, + 0, 13, 117, 51, 201, 19, 190, 165, 70, 163, 117, 148, + 132, 147, 148, 131, 179, 131, 179, 131, 179, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 131, 240, 115, 179, 131, 179, 147, 163, 148, 132, 164, + 115, 181, 68, 220, 233, 240, 53, 0, 32, 48, 57, 25, + 0, 13, 12, 207, 191, 195, 101, 179, 132, 163, 147, 163, + 148, 147, 163, 147, 163, 147, 164, 131, 179, 131, 179, 131, + 179, 131, 179, 131, 179, 131, 179, 131, 179, 131, 179, 131, + 164, 131, 163, 147, 163, 147, 148, 147, 147, 163, 132, 163, + 101, 159, 159, 188, 0, 32, 48, 60, 25, 0, 12, 127, + 3, 127, 3, 127, 3, 163, 147, 163, 147, 163, 147, 163, + 147, 163, 240, 115, 240, 115, 97, 243, 83, 227, 83, 235, + 235, 235, 227, 83, 227, 83, 227, 97, 243, 240, 115, 240, + 115, 163, 147, 163, 147, 163, 147, 163, 147, 163, 111, 4, + 111, 4, 111, 4, 0, 31, 80, 59, 25, 0, 12, 127, + 4, 111, 4, 111, 4, 147, 163, 147, 163, 147, 163, 147, + 163, 147, 240, 115, 240, 115, 240, 115, 83, 227, 83, 235, + 235, 235, 227, 83, 227, 83, 227, 97, 243, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 73, 240, + 25, 240, 25, 0, 32, 112, 61, 25, 0, 13, 101, 50, + 216, 19, 205, 181, 54, 164, 101, 163, 132, 148, 147, 147, + 163, 147, 163, 132, 177, 147, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 136, 99, 136, 99, 136, 115, 163, 147, + 163, 147, 163, 163, 132, 164, 116, 179, 101, 181, 54, 205, + 216, 19, 244, 51, 0, 31, 112, 60, 25, 0, 12, 120, + 71, 89, 57, 87, 87, 131, 147, 163, 147, 163, 147, 163, + 147, 163, 147, 163, 147, 163, 147, 163, 147, 163, 147, 175, + 175, 175, 163, 147, 163, 147, 163, 147, 163, 147, 163, 147, + 163, 147, 163, 147, 163, 147, 163, 147, 163, 147, 135, 87, + 89, 57, 87, 87, 0, 31, 80, 58, 25, 0, 13, 31, + 175, 175, 240, 19, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 31, + 175, 175, 0, 31, 112, 58, 25, 0, 13, 107, 235, 235, + 240, 67, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 194, 131, 180, 115, 180, 100, 181, 68, 220, 234, 240, 38, + 0, 32, 80, 67, 25, 0, 13, 7, 86, 105, 71, 103, + 86, 147, 131, 179, 115, 195, 115, 195, 99, 211, 83, 227, + 82, 243, 67, 243, 51, 240, 19, 35, 240, 35, 36, 240, + 19, 21, 240, 22, 19, 245, 50, 245, 51, 228, 82, 227, + 99, 211, 114, 211, 115, 195, 130, 195, 131, 179, 146, 179, + 147, 135, 102, 89, 86, 103, 102, 0, 31, 64, 61, 25, + 0, 12, 122, 250, 250, 240, 51, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 163, 147, 163, 147, 163, 147, 163, + 147, 163, 111, 4, 111, 4, 111, 4, 0, 31, 80, 84, + 25, 0, 12, 118, 149, 86, 134, 87, 118, 117, 101, 149, + 101, 150, 85, 147, 18, 81, 19, 147, 18, 66, 19, 147, + 18, 66, 19, 147, 19, 50, 19, 147, 34, 34, 35, 147, + 34, 34, 35, 147, 34, 34, 35, 147, 50, 18, 35, 147, + 52, 51, 147, 52, 51, 147, 52, 51, 147, 66, 67, 147, + 66, 67, 147, 163, 147, 163, 147, 163, 147, 163, 147, 163, + 147, 163, 119, 103, 87, 103, 87, 103, 0, 31, 64, 81, + 25, 0, 13, 6, 87, 103, 88, 103, 71, 149, 99, 181, + 99, 179, 17, 99, 179, 18, 83, 179, 18, 83, 179, 18, + 83, 179, 34, 67, 179, 34, 67, 179, 34, 67, 179, 49, + 67, 179, 50, 51, 179, 50, 51, 179, 50, 51, 179, 66, + 35, 179, 66, 35, 179, 66, 35, 179, 82, 19, 179, 82, + 19, 179, 82, 19, 179, 82, 19, 179, 101, 179, 101, 151, + 69, 136, 84, 151, 84, 0, 31, 112, 57, 25, 0, 13, + 73, 237, 191, 164, 116, 163, 148, 132, 148, 131, 179, 131, + 179, 131, 179, 131, 179, 131, 179, 131, 179, 131, 179, 131, + 179, 131, 179, 131, 179, 131, 179, 131, 179, 131, 179, 131, + 179, 131, 179, 131, 179, 132, 148, 147, 147, 164, 116, 175, + 189, 233, 0, 32, 32, 57, 25, 0, 13, 13, 207, 175, + 1, 195, 101, 179, 116, 179, 132, 163, 147, 163, 147, 163, + 147, 163, 147, 163, 147, 163, 132, 163, 131, 179, 101, 189, + 204, 218, 243, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 72, 240, 41, 240, 24, 0, + 32, 112, 73, 25, 0, 13, 73, 237, 191, 164, 116, 163, + 148, 132, 148, 131, 179, 131, 179, 131, 179, 131, 179, 131, + 179, 131, 179, 131, 179, 131, 179, 131, 179, 131, 179, 131, + 179, 131, 179, 131, 179, 131, 179, 131, 67, 67, 131, 83, + 51, 132, 67, 36, 147, 83, 19, 164, 71, 175, 189, 234, + 240, 115, 240, 116, 240, 115, 240, 116, 240, 115, 240, 115, + 0, 13, 16, 60, 25, 0, 12, 124, 207, 191, 195, 101, + 179, 131, 179, 132, 163, 147, 163, 147, 163, 147, 163, 132, + 163, 131, 179, 101, 189, 204, 220, 211, 100, 195, 116, 179, + 131, 179, 131, 179, 131, 179, 131, 179, 131, 179, 131, 19, + 115, 131, 19, 115, 131, 19, 88, 102, 73, 101, 104, 115, + 0, 31, 96, 60, 25, 0, 13, 85, 66, 201, 19, 190, + 164, 86, 163, 117, 147, 148, 147, 148, 147, 163, 147, 163, + 148, 161, 180, 240, 102, 240, 89, 240, 42, 240, 57, 240, + 86, 240, 100, 240, 116, 240, 115, 131, 179, 131, 179, 131, + 179, 132, 163, 132, 147, 150, 100, 159, 163, 26, 178, 70, + 0, 32, 48, 66, 25, 0, 12, 127, 4, 111, 4, 111, + 4, 99, 83, 83, 99, 83, 83, 99, 83, 83, 99, 83, + 83, 227, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 73, 240, 25, 240, 25, 0, 32, 32, 61, 25, 0, + 12, 104, 88, 73, 57, 72, 88, 115, 147, 163, 147, 163, + 147, 163, 147, 163, 147, 163, 147, 163, 147, 163, 147, 163, + 147, 163, 147, 163, 147, 163, 147, 163, 147, 163, 147, 163, + 147, 163, 147, 163, 147, 163, 147, 164, 116, 179, 115, 196, + 84, 212, 52, 235, 249, 240, 53, 0, 32, 64, 68, 25, + 0, 12, 119, 103, 88, 72, 87, 103, 115, 163, 163, 131, + 179, 131, 179, 131, 179, 131, 195, 99, 211, 99, 211, 99, + 211, 99, 226, 98, 243, 67, 243, 67, 243, 67, 243, 67, + 240, 19, 35, 240, 35, 35, 240, 35, 35, 240, 35, 35, + 240, 50, 34, 240, 70, 240, 70, 240, 70, 240, 84, 240, + 100, 240, 100, 0, 32, 64, 79, 25, 0, 12, 118, 134, + 86, 134, 86, 134, 114, 194, 146, 194, 146, 194, 146, 194, + 146, 194, 146, 194, 147, 163, 147, 163, 162, 66, 66, 178, + 52, 50, 178, 52, 50, 178, 52, 50, 178, 52, 50, 178, + 38, 34, 179, 18, 34, 34, 179, 18, 34, 19, 179, 18, + 34, 18, 210, 18, 34, 18, 210, 18, 34, 18, 213, 52, + 212, 68, 212, 68, 212, 68, 212, 68, 226, 98, 0, 32, + 16, 71, 25, 0, 13, 7, 55, 135, 55, 135, 55, 179, + 83, 227, 83, 243, 51, 240, 19, 51, 240, 35, 19, 240, + 51, 19, 240, 70, 240, 69, 240, 85, 240, 99, 240, 115, + 240, 116, 240, 85, 240, 86, 240, 51, 19, 240, 51, 34, + 240, 35, 51, 240, 19, 51, 240, 18, 83, 227, 83, 227, + 99, 195, 115, 167, 71, 119, 71, 119, 71, 0, 31, 80, + 67, 25, 0, 12, 119, 87, 103, 87, 103, 87, 131, 147, + 179, 115, 195, 115, 211, 83, 227, 83, 228, 67, 243, 51, + 240, 19, 51, 240, 35, 19, 240, 51, 19, 240, 66, 18, + 240, 85, 240, 85, 240, 99, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 87, + 240, 41, 240, 39, 0, 32, 48, 64, 25, 0, 13, 15, + 3, 127, 3, 127, 3, 115, 179, 131, 164, 131, 148, 147, + 147, 240, 100, 240, 84, 240, 99, 240, 100, 240, 99, 240, + 99, 240, 100, 240, 99, 240, 100, 240, 84, 240, 99, 240, + 100, 240, 84, 240, 99, 147, 148, 147, 132, 163, 131, 179, + 116, 179, 127, 3, 127, 3, 127, 3, 0, 31, 80, 71, + 25, 122, 251, 234, 243, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 122, 251, 234, 0, 19, 96, 76, 25, + 82, 240, 131, 240, 115, 240, 131, 240, 115, 240, 116, 240, + 115, 240, 115, 240, 131, 240, 115, 240, 116, 240, 115, 240, + 115, 240, 131, 240, 115, 240, 116, 240, 115, 240, 115, 240, + 131, 240, 115, 240, 116, 240, 115, 240, 115, 240, 131, 240, + 115, 240, 116, 240, 115, 240, 115, 240, 131, 240, 115, 240, + 116, 240, 115, 240, 115, 240, 131, 240, 115, 240, 130, 0, + 19, 32, 71, 25, 138, 235, 250, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 250, 235, 250, 0, 19, + 80, 18, 25, 0, 13, 115, 240, 101, 240, 57, 230, 22, + 196, 84, 210, 130, 0, 100, 96, 13, 25, 0, 103, 95, + 2, 143, 2, 143, 2, 0, 19, 32, 34, 25, 240, 240, + 146, 240, 115, 240, 100, 240, 84, 240, 99, 240, 99, 240, + 115, 240, 115, 240, 115, 240, 116, 240, 101, 240, 85, 240, + 100, 240, 114, 0, 85, 96, 43, 25, 0, 38, 39, 240, + 42, 236, 212, 84, 196, 100, 240, 115, 240, 115, 240, 40, + 235, 205, 182, 83, 180, 115, 163, 147, 163, 147, 163, 147, + 164, 131, 180, 85, 191, 3, 138, 22, 166, 69, 0, 31, + 80, 62, 25, 0, 12, 118, 240, 70, 240, 70, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 53, 227, + 24, 221, 198, 68, 180, 116, 164, 131, 163, 147, 163, 163, + 147, 163, 147, 163, 147, 163, 147, 163, 147, 163, 147, 148, + 148, 131, 164, 116, 165, 84, 183, 21, 195, 24, 211, 37, + 0, 32, 48, 42, 25, 0, 39, 7, 251, 221, 181, 84, + 179, 116, 163, 240, 115, 240, 99, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 131, 240, 116, 146, 164, 131, + 181, 84, 204, 234, 240, 38, 0, 32, 32, 61, 25, 0, + 14, 22, 240, 70, 240, 70, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 245, 35, 216, 19, 205, 181, 54, 164, + 116, 163, 132, 163, 147, 147, 163, 147, 163, 147, 163, 147, + 163, 147, 163, 147, 163, 148, 147, 163, 132, 164, 101, 180, + 70, 207, 1, 168, 22, 196, 54, 0, 31, 80, 43, 25, + 0, 38, 102, 240, 42, 236, 197, 69, 164, 131, 163, 147, + 163, 163, 131, 179, 143, 2, 143, 2, 143, 2, 131, 240, + 115, 240, 131, 177, 164, 147, 164, 131, 165, 84, 205, 233, + 240, 53, 0, 32, 48, 55, 25, 0, 14, 37, 240, 57, + 250, 243, 52, 227, 82, 243, 240, 115, 240, 115, 240, 47, + 159, 1, 175, 243, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 46, 175, 190, 0, 32, + 60, 25, 0, 38, 69, 53, 191, 159, 1, 132, 52, 51, + 131, 83, 211, 115, 195, 115, 195, 115, 195, 115, 195, 115, + 211, 83, 228, 52, 234, 249, 240, 18, 21, 240, 34, 240, + 130, 240, 140, 222, 175, 2, 131, 149, 115, 196, 99, 211, + 99, 211, 99, 211, 100, 180, 117, 102, 159, 188, 248, 144, + 62, 25, 0, 12, 118, 240, 70, 240, 70, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 52, 243, 24, + 220, 214, 52, 197, 83, 196, 99, 195, 115, 195, 115, 195, + 115, 195, 115, 195, 115, 195, 115, 195, 115, 195, 115, 195, + 115, 195, 115, 195, 115, 153, 25, 105, 25, 105, 25, 0, + 31, 80, 55, 25, 0, 13, 114, 240, 116, 240, 100, 240, + 100, 240, 114, 0, 11, 73, 240, 25, 240, 25, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 31, 175, 175, 0, 31, 112, 73, 25, 0, + 14, 66, 240, 116, 240, 100, 240, 100, 240, 114, 0, 11, + 73, 240, 25, 240, 25, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 210, + 115, 196, 83, 212, 68, 219, 249, 240, 38, 176, 67, 25, + 0, 12, 118, 240, 55, 240, 70, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 73, 147, 58, 147, 73, + 147, 99, 211, 83, 227, 67, 243, 51, 240, 19, 36, 240, + 19, 20, 240, 41, 240, 22, 18, 240, 21, 35, 244, 67, + 227, 99, 211, 99, 211, 115, 195, 131, 137, 56, 75, 40, + 89, 55, 0, 31, 80, 60, 25, 0, 13, 10, 250, 250, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 255, 2, 143, 2, + 143, 2, 0, 31, 96, 65, 25, 0, 37, 101, 20, 52, + 139, 22, 127, 4, 133, 37, 35, 132, 52, 51, 131, 67, + 67, 131, 67, 67, 131, 67, 67, 131, 67, 67, 131, 67, + 67, 131, 67, 67, 131, 67, 67, 131, 67, 67, 131, 67, + 67, 131, 67, 67, 131, 67, 67, 131, 67, 67, 103, 22, + 22, 71, 22, 22, 71, 22, 22, 0, 31, 64, 46, 25, + 0, 37, 118, 37, 198, 24, 175, 214, 52, 197, 83, 196, + 99, 195, 115, 195, 115, 195, 115, 195, 115, 195, 115, 195, + 115, 195, 115, 195, 115, 195, 115, 195, 115, 195, 115, 153, + 25, 105, 25, 105, 25, 0, 31, 80, 43, 25, 0, 38, + 101, 240, 57, 251, 212, 84, 180, 116, 163, 147, 163, 148, + 131, 179, 131, 179, 131, 179, 131, 179, 131, 179, 131, 179, + 147, 147, 163, 147, 164, 116, 181, 53, 219, 249, 240, 53, + 0, 32, 64, 63, 25, 0, 37, 118, 53, 182, 24, 175, + 1, 198, 68, 180, 116, 164, 131, 163, 148, 147, 163, 147, + 163, 147, 163, 147, 163, 147, 163, 147, 163, 148, 131, 164, + 131, 165, 100, 166, 68, 189, 195, 24, 211, 37, 243, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, + 73, 240, 25, 240, 25, 208, 62, 25, 0, 38, 85, 35, + 216, 19, 205, 181, 54, 164, 101, 163, 132, 163, 147, 147, + 163, 147, 163, 147, 163, 147, 163, 147, 163, 147, 163, 163, + 147, 163, 132, 164, 101, 180, 70, 205, 216, 19, 244, 51, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 73, 240, 26, 249, 48, 44, 25, 0, 37, + 120, 69, 136, 41, 104, 26, 183, 52, 182, 82, 197, 240, + 84, 240, 100, 240, 99, 240, 115, 240, 115, 240, 115, 240, + 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 46, 190, + 190, 0, 32, 32, 43, 25, 0, 38, 87, 19, 205, 190, + 165, 100, 163, 147, 163, 147, 163, 146, 181, 240, 105, 240, + 58, 240, 57, 240, 100, 163, 148, 147, 163, 148, 147, 148, + 147, 150, 84, 175, 163, 26, 179, 39, 0, 32, 32, 58, + 25, 0, 19, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 47, 1, 159, 1, 159, 1, 227, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 99, 211, 99, 211, 99, 211, 99, 212, + 67, 250, 240, 24, 240, 53, 0, 32, 32, 45, 25, 0, + 37, 118, 70, 150, 70, 150, 70, 195, 115, 195, 115, 195, + 115, 195, 115, 195, 115, 195, 115, 195, 115, 195, 115, 195, + 115, 195, 115, 195, 115, 195, 115, 195, 100, 196, 69, 223, + 175, 197, 38, 0, 31, 80, 55, 25, 0, 37, 120, 56, + 104, 56, 104, 56, 146, 146, 195, 115, 210, 114, 226, 114, + 226, 114, 227, 83, 242, 82, 240, 18, 82, 240, 19, 51, + 240, 34, 50, 240, 50, 50, 240, 51, 34, 240, 51, 18, + 240, 82, 18, 240, 82, 18, 240, 85, 240, 99, 0, 32, + 80, 58, 25, 0, 37, 120, 72, 88, 72, 88, 72, 114, + 194, 147, 163, 147, 163, 162, 162, 178, 162, 178, 66, 66, + 178, 52, 50, 179, 36, 35, 179, 36, 35, 194, 37, 18, + 210, 19, 18, 18, 210, 18, 34, 18, 210, 18, 34, 18, + 213, 37, 213, 52, 227, 67, 243, 67, 0, 32, 16, 52, + 25, 0, 37, 120, 55, 120, 40, 120, 55, 179, 83, 227, + 67, 240, 19, 50, 240, 51, 19, 240, 69, 240, 84, 240, + 115, 240, 115, 240, 101, 240, 67, 19, 240, 50, 50, 240, + 34, 67, 243, 83, 226, 114, 168, 56, 104, 56, 104, 56, + 0, 31, 80, 73, 25, 0, 38, 7, 72, 89, 56, 103, + 72, 146, 146, 195, 115, 210, 114, 226, 114, 227, 83, 242, + 82, 240, 18, 82, 240, 19, 51, 240, 34, 51, 240, 34, + 50, 240, 51, 34, 240, 66, 19, 240, 69, 240, 85, 240, + 100, 240, 99, 240, 130, 240, 115, 240, 115, 240, 114, 240, + 115, 240, 18, 67, 244, 50, 240, 20, 35, 240, 24, 240, + 54, 240, 84, 240, 48, 25, 0, 38, 31, 2, 143, 2, + 143, 2, 131, 148, 147, 132, 163, 116, 240, 84, 240, 84, + 240, 100, 240, 84, 240, 84, 240, 84, 240, 84, 240, 84, + 129, 180, 131, 148, 147, 132, 163, 127, 3, 127, 3, 143, + 2, 0, 31, 80, 75, 25, 246, 240, 40, 240, 25, 245, + 240, 83, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 85, + 240, 24, 240, 24, 240, 41, 240, 101, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 117, 240, 105, + 240, 40, 240, 70, 0, 19, 32, 76, 25, 179, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 0, 20, 16, 75, + 25, 70, 240, 72, 240, 41, 240, 101, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 132, 240, 105, 240, 40, + 240, 24, 240, 36, 240, 83, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, 240, 115, + 240, 115, 240, 115, 240, 85, 249, 240, 24, 240, 38, 0, + 20, 80, 17, 25, 0, 13, 84, 82, 214, 51, 205, 180, + 39, 195, 54, 210, 99, 0, 101, +}; + +//***************************************************************************** +// +// The font definition for the 46 point Cmtt font. +// +//***************************************************************************** +const tFont g_sFontCmtt46 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 20, + + // + // The height of the font. + // + 42, + + // + // The baseline of the font. + // + 32, + + // + // The offset to each character in the font. + // + { + 0, 7, 62, 98, 163, 252, 342, 421, + 455, 532, 608, 656, 703, 733, 746, 764, + 840, 901, 963, 1025, 1084, 1149, 1205, 1263, + 1328, 1386, 1444, 1475, 1517, 1569, 1590, 1642, + 1696, 1768, 1838, 1894, 1954, 2011, 2071, 2130, + 2191, 2251, 2309, 2367, 2434, 2495, 2579, 2660, + 2717, 2774, 2847, 2907, 2967, 3033, 3094, 3162, + 3241, 3312, 3379, 3443, 3514, 3590, 3661, 3679, + 3692, 3726, 3769, 3831, 3873, 3934, 3977, 4032, + 4092, 4154, 4209, 4282, 4349, 4409, 4474, 4520, + 4563, 4626, 4688, 4732, 4775, 4833, 4878, 4933, + 4991, 5043, 5116, 5164, 5239, 5315, 5390, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmtt46Data +}; diff --git a/grlib/fonts/fontcmtt48.c b/grlib/fonts/fontcmtt48.c new file mode 100644 index 0000000..3693389 --- /dev/null +++ b/grlib/fonts/fontcmtt48.c @@ -0,0 +1,592 @@ +//***************************************************************************** +// +// fontcmtt48.c - Font definition for the 48pt Cmtt font. +// +// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +//***************************************************************************** +// +// This file is generated by ftrasterize; DO NOT EDIT BY HAND! +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Characters: 32 to 126 inclusive +// Style: cmtt +// Size: 48 point +// Bold: no +// Italic: no +// Memory usage: 6024 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The compressed data for the 48 point Cmtt font. +// Contains characters 32 to 126 inclusive. +// +//***************************************************************************** +static const uint8_t g_pui8Cmtt48Data[5821] = +{ + 7, 26, 0, 127, 0, 19, 32, 59, 26, 0, 14, 66, + 240, 132, 240, 116, 240, 116, 240, 116, 240, 116, 240, 116, + 240, 116, 240, 116, 240, 116, 240, 116, 240, 116, 240, 116, + 240, 116, 240, 116, 240, 116, 240, 116, 240, 116, 240, 116, + 240, 116, 240, 116, 0, 15, 114, 240, 132, 240, 116, 240, + 116, 240, 130, 0, 37, 32, 37, 26, 0, 14, 2, 98, + 244, 68, 228, 68, 228, 68, 228, 68, 228, 68, 228, 68, + 228, 68, 228, 68, 228, 68, 228, 68, 242, 98, 240, 18, + 98, 240, 18, 98, 0, 88, 96, 79, 26, 0, 14, 34, + 98, 240, 19, 67, 240, 19, 67, 240, 19, 67, 240, 19, + 67, 240, 18, 83, 243, 83, 243, 83, 243, 82, 191, 4, + 127, 4, 127, 4, 195, 67, 240, 19, 67, 240, 18, 83, + 243, 83, 243, 83, 243, 67, 240, 19, 67, 207, 4, 127, + 4, 127, 4, 178, 83, 243, 83, 243, 83, 243, 82, 240, + 19, 67, 240, 19, 67, 240, 19, 67, 240, 18, 98, 0, + 36, 112, 95, 26, 195, 240, 131, 240, 131, 240, 131, 240, + 104, 240, 27, 222, 196, 35, 36, 164, 51, 51, 148, 67, + 67, 131, 83, 67, 131, 83, 52, 131, 83, 52, 131, 83, + 66, 148, 67, 240, 20, 51, 240, 26, 240, 42, 240, 58, + 240, 42, 240, 72, 240, 51, 21, 240, 35, 51, 240, 35, + 52, 146, 83, 67, 132, 67, 67, 132, 67, 67, 131, 83, + 67, 132, 67, 52, 148, 51, 51, 165, 35, 21, 190, 220, + 240, 24, 240, 99, 240, 131, 240, 131, 240, 131, 0, 24, + 16, 93, 26, 84, 146, 166, 115, 166, 115, 152, 99, 147, + 35, 83, 163, 35, 83, 163, 35, 83, 163, 35, 67, 179, + 35, 67, 184, 67, 198, 67, 214, 67, 228, 83, 240, 115, + 240, 131, 240, 131, 240, 115, 240, 131, 240, 131, 240, 115, + 240, 131, 240, 131, 240, 115, 240, 131, 240, 131, 240, 115, + 84, 227, 70, 211, 70, 195, 72, 179, 67, 35, 179, 67, + 35, 163, 83, 35, 163, 83, 35, 163, 83, 35, 147, 100, + 19, 147, 118, 162, 134, 162, 148, 0, 23, 48, 86, 26, + 0, 14, 20, 240, 102, 240, 71, 240, 67, 20, 240, 35, + 51, 240, 35, 51, 240, 35, 51, 240, 35, 51, 240, 35, + 51, 240, 35, 35, 39, 147, 35, 24, 162, 19, 55, 166, + 66, 229, 82, 228, 83, 228, 82, 229, 82, 214, 67, 196, + 19, 50, 211, 35, 50, 211, 51, 19, 195, 67, 19, 195, + 85, 211, 85, 211, 99, 83, 99, 99, 83, 100, 69, 67, + 115, 55, 36, 121, 24, 151, 55, 180, 99, 0, 33, 32, + 36, 26, 0, 14, 67, 240, 116, 240, 117, 240, 101, 240, + 116, 240, 146, 240, 146, 240, 146, 240, 146, 240, 130, 240, + 131, 240, 116, 240, 100, 240, 115, 240, 130, 0, 86, 32, + 81, 26, 240, 34, 240, 131, 240, 101, 240, 99, 240, 115, + 240, 116, 240, 100, 240, 115, 240, 116, 240, 115, 240, 131, + 240, 115, 240, 131, 240, 131, 240, 115, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 132, 240, 131, 240, 131, 240, 131, 240, 132, 240, 131, + 240, 132, 240, 131, 240, 132, 240, 132, 240, 131, 240, 147, + 240, 133, 240, 116, 240, 146, 0, 23, 80, 80, 26, 130, + 240, 148, 240, 117, 240, 132, 240, 131, 240, 132, 240, 132, + 240, 131, 240, 132, 240, 131, 240, 132, 240, 131, 240, 131, + 240, 131, 240, 147, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 115, + 240, 131, 240, 131, 240, 116, 240, 115, 240, 131, 240, 115, + 240, 116, 240, 115, 240, 115, 240, 116, 240, 85, 240, 100, + 240, 114, 0, 24, 96, 54, 26, 0, 30, 99, 240, 131, + 240, 131, 240, 131, 240, 18, 83, 66, 164, 51, 51, 165, + 35, 36, 181, 24, 234, 240, 40, 240, 70, 240, 72, 240, + 28, 213, 24, 181, 35, 21, 164, 51, 36, 162, 83, 65, + 240, 51, 240, 131, 240, 131, 240, 131, 0, 50, 16, 49, + 26, 0, 27, 67, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 255, 4, + 127, 4, 127, 4, 243, 240, 131, 240, 131, 240, 131, 240, + 131, 240, 131, 240, 131, 240, 131, 240, 131, 0, 50, 16, + 32, 26, 0, 92, 67, 240, 117, 240, 102, 240, 86, 240, + 86, 240, 101, 240, 131, 240, 131, 240, 115, 240, 116, 240, + 100, 240, 100, 240, 130, 0, 14, 80, 13, 26, 0, 59, + 31, 2, 159, 2, 159, 2, 0, 78, 64, 18, 26, 0, + 92, 67, 240, 117, 240, 101, 240, 101, 240, 101, 240, 115, + 0, 37, 16, 81, 26, 240, 82, 240, 131, 240, 131, 240, + 115, 240, 131, 240, 116, 240, 115, 240, 131, 240, 115, 240, + 131, 240, 116, 240, 115, 240, 131, 240, 115, 240, 131, 240, + 116, 240, 115, 240, 131, 240, 115, 240, 131, 240, 115, 240, + 131, 240, 116, 240, 115, 240, 131, 240, 115, 240, 131, 240, + 116, 240, 115, 240, 131, 240, 115, 240, 131, 240, 116, 240, + 115, 240, 131, 240, 115, 240, 131, 240, 130, 0, 25, 16, + 67, 26, 0, 14, 52, 240, 88, 240, 42, 244, 68, 227, + 99, 211, 131, 195, 131, 179, 163, 163, 163, 163, 163, 162, + 195, 131, 195, 131, 195, 131, 195, 131, 195, 131, 195, 131, + 195, 131, 195, 131, 195, 131, 195, 132, 164, 147, 163, 163, + 163, 164, 147, 179, 131, 196, 115, 211, 99, 228, 68, 250, + 240, 40, 240, 84, 0, 33, 112, 66, 26, 0, 14, 82, + 240, 131, 240, 131, 240, 116, 240, 116, 240, 86, 240, 56, + 240, 37, 19, 240, 51, 35, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 61, 222, 205, 0, 36, + 64, 66, 26, 0, 14, 23, 240, 58, 237, 212, 85, 179, + 148, 148, 163, 147, 180, 132, 179, 132, 179, 131, 195, 240, + 131, 240, 131, 240, 116, 240, 115, 240, 116, 240, 115, 240, + 116, 240, 100, 240, 100, 240, 100, 240, 100, 240, 100, 240, + 100, 240, 99, 240, 100, 240, 100, 147, 148, 163, 143, 3, + 143, 3, 143, 3, 0, 36, 32, 65, 26, 0, 14, 23, + 240, 43, 237, 212, 100, 180, 132, 164, 147, 164, 147, 178, + 163, 240, 131, 240, 115, 240, 131, 240, 100, 240, 40, 240, + 56, 240, 57, 240, 117, 240, 132, 240, 131, 240, 132, 240, + 131, 240, 131, 146, 195, 132, 179, 132, 179, 132, 164, 132, + 163, 164, 132, 166, 69, 205, 235, 240, 54, 0, 33, 96, + 72, 26, 0, 14, 85, 240, 86, 240, 86, 240, 67, 19, + 240, 67, 19, 240, 51, 35, 240, 51, 35, 240, 35, 51, + 240, 35, 51, 240, 19, 67, 240, 19, 67, 243, 83, 242, + 99, 227, 99, 211, 115, 211, 115, 195, 131, 195, 131, 179, + 147, 191, 5, 111, 5, 111, 5, 240, 51, 240, 131, 240, + 131, 240, 131, 240, 131, 240, 75, 251, 251, 0, 36, 32, + 62, 26, 0, 13, 110, 206, 206, 195, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 38, 252, 237, 213, 84, 196, 116, 179, 147, 240, 132, 240, + 131, 240, 131, 240, 131, 162, 179, 148, 163, 148, 163, 148, + 147, 164, 147, 179, 131, 197, 69, 220, 250, 240, 54, 0, + 33, 96, 64, 26, 0, 14, 70, 240, 58, 251, 229, 68, + 196, 100, 195, 116, 179, 132, 179, 240, 115, 240, 131, 240, + 130, 240, 131, 54, 227, 26, 207, 182, 85, 165, 117, 148, + 148, 147, 180, 131, 180, 131, 180, 131, 180, 131, 180, 146, + 180, 147, 164, 147, 163, 179, 132, 179, 116, 212, 69, 220, + 250, 240, 54, 0, 33, 96, 71, 26, 0, 10, 50, 240, + 143, 3, 143, 3, 143, 3, 131, 164, 147, 163, 240, 115, + 240, 116, 240, 115, 240, 115, 240, 131, 240, 115, 240, 131, + 240, 115, 240, 131, 240, 116, 240, 115, 240, 131, 240, 131, + 240, 115, 240, 131, 240, 131, 240, 131, 240, 131, 240, 115, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 0, 34, 32, 64, 26, 0, 14, 38, 240, 58, + 238, 181, 101, 164, 132, 148, 164, 131, 195, 131, 195, 131, + 195, 132, 164, 148, 132, 180, 100, 220, 240, 24, 240, 28, + 212, 100, 180, 147, 147, 195, 131, 195, 115, 227, 99, 227, + 99, 227, 99, 227, 99, 227, 115, 196, 116, 179, 148, 148, + 149, 101, 190, 234, 240, 54, 0, 33, 96, 65, 26, 0, + 14, 54, 240, 57, 240, 27, 229, 68, 212, 99, 196, 131, + 179, 147, 164, 162, 164, 162, 164, 163, 148, 163, 148, 163, + 148, 163, 163, 163, 164, 132, 165, 101, 181, 70, 206, 217, + 19, 245, 51, 240, 131, 240, 115, 240, 131, 240, 131, 195, + 115, 196, 115, 196, 99, 212, 68, 251, 249, 240, 70, 0, + 33, 112, 31, 26, 0, 43, 99, 240, 117, 240, 101, 240, + 101, 240, 101, 240, 115, 0, 32, 19, 240, 117, 240, 101, + 240, 101, 240, 101, 240, 115, 0, 37, 16, 45, 26, 0, + 43, 99, 240, 117, 240, 101, 240, 101, 240, 101, 240, 115, + 0, 32, 19, 240, 117, 240, 101, 240, 101, 240, 101, 240, + 116, 240, 146, 240, 146, 240, 130, 240, 131, 240, 115, 240, + 116, 240, 130, 0, 14, 80, 53, 26, 0, 25, 19, 240, + 116, 240, 101, 240, 70, 240, 69, 240, 85, 240, 70, 240, + 69, 240, 85, 240, 70, 240, 69, 240, 85, 240, 101, 240, + 117, 240, 118, 240, 102, 240, 117, 240, 118, 240, 117, 240, + 117, 240, 118, 240, 117, 240, 116, 240, 131, 0, 46, 21, + 26, 0, 46, 15, 4, 127, 4, 127, 4, 0, 17, 31, + 4, 127, 4, 127, 4, 0, 65, 48, 54, 26, 0, 23, + 51, 240, 132, 240, 117, 240, 118, 240, 117, 240, 117, 240, + 118, 240, 117, 240, 118, 240, 102, 240, 117, 240, 117, 240, + 101, 240, 85, 240, 70, 240, 69, 240, 85, 240, 70, 240, + 69, 240, 85, 240, 70, 240, 69, 240, 100, 240, 115, 0, + 47, 96, 58, 26, 0, 14, 24, 240, 28, 222, 196, 100, + 180, 132, 164, 147, 164, 147, 179, 147, 240, 100, 240, 101, + 240, 85, 240, 84, 240, 115, 240, 115, 240, 131, 240, 115, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 0, 15, + 114, 240, 132, 240, 116, 240, 116, 240, 130, 0, 37, 48, + 78, 26, 0, 14, 85, 240, 73, 251, 229, 68, 196, 116, + 179, 83, 19, 163, 73, 163, 59, 131, 67, 53, 131, 51, + 84, 131, 51, 84, 115, 52, 99, 115, 51, 115, 115, 51, + 115, 115, 51, 115, 115, 51, 115, 115, 51, 115, 115, 51, + 115, 115, 52, 99, 131, 51, 83, 147, 51, 83, 147, 67, + 51, 179, 57, 180, 55, 211, 68, 244, 147, 181, 85, 205, + 235, 240, 38, 0, 36, 96, 74, 26, 0, 14, 52, 240, + 116, 240, 116, 240, 102, 240, 86, 240, 86, 240, 86, 240, + 82, 34, 240, 67, 35, 240, 51, 35, 240, 51, 35, 240, + 51, 35, 240, 50, 67, 240, 19, 67, 240, 19, 67, 240, + 19, 67, 240, 19, 67, 240, 18, 99, 227, 99, 236, 236, + 236, 211, 131, 195, 131, 195, 131, 195, 131, 195, 131, 152, + 72, 104, 72, 104, 72, 0, 36, 16, 61, 26, 0, 13, + 78, 207, 191, 1, 211, 116, 195, 131, 195, 147, 179, 147, + 179, 147, 179, 147, 179, 147, 179, 131, 195, 131, 195, 100, + 220, 235, 253, 211, 116, 195, 147, 179, 147, 179, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 148, 163, 147, 179, + 117, 143, 2, 159, 1, 174, 0, 36, 96, 67, 26, 0, + 14, 69, 51, 217, 19, 206, 180, 71, 164, 117, 148, 148, + 147, 164, 147, 164, 131, 195, 131, 195, 131, 194, 131, 240, + 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, + 131, 240, 131, 240, 147, 240, 131, 195, 131, 195, 132, 179, + 147, 179, 148, 147, 180, 116, 197, 68, 235, 240, 25, 240, + 69, 0, 33, 80, 60, 26, 0, 13, 76, 223, 207, 211, + 101, 195, 116, 195, 132, 179, 147, 179, 163, 163, 163, 163, + 163, 163, 164, 147, 179, 147, 179, 147, 179, 147, 179, 147, + 179, 147, 179, 147, 179, 147, 179, 147, 179, 147, 163, 163, + 163, 163, 163, 163, 148, 163, 147, 179, 132, 179, 101, 175, + 175, 204, 0, 37, 65, 26, 0, 13, 63, 4, 127, 4, + 127, 4, 163, 163, 163, 163, 163, 163, 163, 163, 163, 177, + 179, 240, 131, 240, 131, 98, 243, 83, 243, 83, 251, 251, + 251, 243, 83, 243, 83, 243, 97, 240, 19, 240, 131, 240, + 131, 240, 131, 179, 147, 179, 147, 179, 147, 179, 147, 179, + 111, 5, 111, 5, 111, 5, 0, 36, 16, 63, 26, 0, + 13, 63, 5, 111, 5, 111, 5, 147, 179, 147, 179, 147, + 179, 147, 179, 147, 178, 163, 240, 131, 240, 131, 240, 131, + 99, 227, 99, 227, 99, 236, 236, 236, 227, 99, 227, 99, + 227, 113, 243, 240, 131, 240, 131, 240, 131, 240, 131, 240, + 131, 240, 131, 240, 90, 240, 26, 240, 26, 0, 37, 48, + 67, 26, 0, 14, 53, 50, 232, 19, 221, 197, 54, 195, + 101, 180, 116, 179, 132, 163, 163, 163, 163, 163, 163, 148, + 177, 163, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 136, 115, 136, 115, 136, 131, 163, 163, 163, 163, + 163, 164, 132, 179, 132, 180, 116, 195, 101, 197, 54, 221, + 232, 19, 240, 20, 0, 33, 112, 64, 26, 0, 13, 71, + 71, 120, 72, 119, 71, 163, 131, 195, 131, 195, 131, 195, + 131, 195, 131, 195, 131, 195, 131, 195, 131, 195, 131, 195, + 131, 206, 206, 206, 195, 131, 195, 131, 195, 131, 195, 131, + 195, 131, 195, 131, 195, 131, 195, 131, 195, 131, 195, 131, + 195, 131, 167, 71, 120, 72, 119, 71, 0, 36, 32, 62, + 26, 0, 13, 111, 191, 191, 240, 35, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 47, 191, 191, 0, 36, + 48, 65, 26, 0, 14, 59, 251, 251, 240, 83, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 225, 131, 196, 115, 196, 115, 196, 100, 197, 68, 235, 240, + 25, 240, 70, 0, 33, 112, 75, 26, 0, 13, 71, 87, + 105, 71, 119, 87, 147, 147, 179, 131, 195, 115, 211, 100, + 211, 99, 227, 83, 243, 67, 240, 19, 67, 240, 19, 51, + 240, 35, 36, 240, 35, 36, 240, 35, 22, 240, 22, 19, + 240, 22, 34, 240, 21, 51, 244, 82, 244, 83, 227, 114, + 227, 115, 211, 130, 211, 131, 195, 146, 195, 147, 179, 162, + 151, 102, 105, 87, 103, 102, 0, 36, 16, 67, 26, 0, + 13, 74, 240, 26, 240, 26, 240, 67, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 127, 4, 127, 4, 127, + 4, 0, 36, 16, 91, 26, 0, 13, 54, 150, 87, 134, + 87, 134, 117, 117, 149, 117, 150, 101, 147, 18, 82, 19, + 147, 18, 82, 19, 147, 18, 82, 19, 147, 34, 66, 19, + 147, 34, 50, 35, 147, 34, 50, 35, 147, 34, 50, 35, + 147, 50, 18, 51, 147, 50, 18, 51, 147, 50, 18, 51, + 147, 50, 18, 51, 147, 67, 67, 147, 67, 67, 147, 67, + 67, 147, 179, 147, 179, 147, 179, 147, 179, 147, 179, 147, + 179, 147, 179, 119, 119, 87, 119, 87, 119, 0, 36, 87, + 26, 0, 13, 70, 103, 103, 89, 103, 87, 149, 115, 181, + 115, 179, 18, 99, 179, 18, 99, 179, 18, 99, 179, 19, + 83, 179, 34, 83, 179, 34, 83, 179, 34, 83, 179, 50, + 67, 179, 50, 67, 179, 50, 67, 179, 66, 51, 179, 66, + 51, 179, 66, 51, 179, 67, 35, 179, 82, 35, 179, 82, + 35, 179, 83, 19, 179, 98, 19, 179, 98, 19, 179, 98, + 19, 179, 117, 179, 117, 151, 85, 137, 69, 151, 100, 0, + 36, 48, 65, 26, 0, 14, 10, 238, 191, 1, 164, 117, + 163, 163, 163, 164, 131, 195, 131, 195, 131, 195, 131, 195, + 131, 195, 131, 195, 131, 195, 131, 195, 131, 195, 131, 195, + 131, 195, 131, 195, 131, 195, 131, 195, 131, 195, 131, 195, + 131, 195, 131, 195, 132, 164, 132, 164, 147, 163, 165, 101, + 175, 1, 190, 234, 0, 33, 64, 62, 26, 0, 13, 78, + 207, 1, 175, 2, 195, 116, 195, 132, 179, 147, 179, 148, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 147, + 179, 132, 179, 116, 206, 205, 219, 243, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 89, 240, 41, 240, 41, 0, 37, 48, 82, 26, 0, + 14, 10, 238, 191, 1, 164, 117, 163, 163, 163, 164, 131, + 195, 131, 195, 131, 195, 131, 195, 131, 195, 131, 195, 131, + 195, 131, 195, 131, 195, 131, 195, 131, 195, 131, 195, 131, + 195, 131, 195, 131, 195, 131, 195, 131, 83, 67, 131, 83, + 67, 132, 68, 51, 132, 83, 36, 147, 84, 19, 165, 71, + 175, 1, 190, 235, 240, 131, 240, 132, 240, 131, 240, 132, + 240, 131, 240, 131, 0, 13, 80, 66, 26, 0, 13, 75, + 238, 222, 227, 85, 211, 100, 211, 116, 195, 131, 195, 131, + 195, 131, 195, 131, 195, 131, 195, 116, 195, 100, 211, 85, + 220, 235, 251, 243, 84, 227, 100, 211, 115, 211, 115, 211, + 115, 211, 115, 211, 115, 211, 115, 35, 131, 115, 35, 131, + 115, 35, 103, 83, 35, 89, 86, 104, 102, 240, 100, 0, + 33, 67, 26, 0, 14, 22, 66, 202, 19, 191, 165, 71, + 163, 133, 148, 148, 147, 164, 147, 164, 147, 179, 147, 179, + 148, 240, 132, 240, 117, 240, 120, 240, 74, 240, 58, 240, + 72, 240, 102, 240, 116, 240, 132, 240, 131, 131, 195, 131, + 195, 131, 195, 131, 195, 132, 163, 149, 147, 151, 84, 175, + 1, 163, 27, 178, 71, 0, 33, 80, 72, 26, 0, 13, + 63, 5, 111, 5, 111, 5, 99, 99, 83, 99, 99, 83, + 99, 99, 83, 99, 99, 83, 113, 115, 97, 240, 19, 240, + 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, + 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, + 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, + 74, 240, 26, 240, 26, 0, 36, 96, 68, 26, 0, 13, + 41, 73, 73, 73, 73, 73, 115, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 179, 131, 195, 131, 196, 100, 212, 68, 250, 240, 40, 240, + 84, 0, 33, 112, 76, 26, 0, 13, 56, 88, 88, 88, + 88, 88, 131, 147, 179, 147, 179, 147, 179, 147, 180, 116, + 195, 115, 211, 115, 211, 115, 211, 115, 227, 83, 243, 83, + 243, 83, 243, 83, 244, 51, 240, 35, 51, 240, 35, 51, + 240, 35, 51, 240, 35, 51, 240, 51, 19, 240, 67, 19, + 240, 67, 19, 240, 67, 19, 240, 82, 18, 240, 101, 240, + 101, 240, 101, 240, 115, 0, 37, 16, 92, 26, 0, 13, + 54, 150, 87, 119, 86, 150, 114, 210, 146, 210, 146, 210, + 146, 210, 147, 194, 147, 179, 147, 179, 147, 179, 162, 178, + 178, 67, 66, 178, 67, 66, 178, 68, 50, 178, 50, 18, + 50, 179, 34, 18, 35, 179, 34, 18, 35, 179, 34, 18, + 35, 194, 34, 19, 18, 210, 19, 19, 18, 210, 18, 50, + 18, 210, 18, 50, 18, 210, 18, 50, 18, 210, 18, 50, + 18, 210, 18, 50, 18, 213, 68, 212, 84, 227, 83, 243, + 83, 0, 36, 80, 76, 26, 0, 13, 71, 56, 136, 40, + 135, 55, 195, 99, 228, 68, 243, 67, 240, 19, 67, 240, + 35, 35, 240, 51, 35, 240, 70, 240, 86, 240, 86, 240, + 100, 240, 116, 240, 116, 240, 116, 240, 117, 240, 86, 240, + 83, 19, 240, 51, 35, 240, 51, 35, 240, 35, 67, 240, + 19, 67, 240, 19, 83, 227, 99, 227, 115, 195, 131, 167, + 87, 119, 72, 119, 87, 0, 36, 16, 72, 26, 0, 13, + 71, 87, 104, 88, 103, 87, 147, 147, 180, 116, 195, 115, + 212, 99, 227, 83, 243, 83, 244, 51, 240, 35, 51, 240, + 36, 35, 240, 51, 19, 240, 67, 19, 240, 82, 18, 240, + 101, 240, 101, 240, 115, 240, 131, 240, 131, 240, 131, 240, + 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, + 103, 240, 57, 240, 55, 0, 36, 112, 68, 26, 0, 13, + 79, 3, 143, 3, 143, 3, 131, 179, 147, 164, 147, 148, + 163, 148, 177, 148, 240, 115, 240, 116, 240, 115, 240, 116, + 240, 100, 240, 115, 240, 116, 240, 115, 240, 116, 240, 100, + 240, 115, 240, 116, 240, 115, 240, 116, 145, 180, 147, 163, + 163, 148, 163, 147, 179, 132, 179, 143, 3, 143, 3, 143, + 3, 0, 36, 32, 75, 26, 139, 251, 251, 243, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 139, 251, 251, 0, 23, 80, 80, 26, 83, 240, 131, + 240, 131, 240, 147, 240, 131, 240, 132, 240, 131, 240, 131, + 240, 147, 240, 131, 240, 132, 240, 131, 240, 132, 240, 131, + 240, 131, 240, 132, 240, 131, 240, 132, 240, 131, 240, 131, + 240, 132, 240, 131, 240, 132, 240, 131, 240, 131, 240, 132, + 240, 131, 240, 132, 240, 131, 240, 131, 240, 147, 240, 131, + 240, 132, 240, 131, 240, 131, 240, 147, 240, 131, 240, 146, + 0, 23, 32, 75, 26, 139, 251, 251, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 251, 251, 251, 0, 23, 80, 21, 26, 0, 14, 66, 240, + 118, 240, 72, 240, 21, 37, 213, 69, 196, 100, 210, 130, + 0, 111, 48, 12, 26, 0, 117, 95, 2, 159, 2, 159, + 2, 0, 20, 36, 26, 240, 240, 162, 240, 131, 240, 116, + 240, 115, 240, 115, 240, 131, 240, 115, 240, 131, 240, 131, + 240, 131, 240, 132, 240, 117, 240, 101, 240, 116, 240, 130, + 0, 95, 96, 45, 26, 0, 43, 8, 240, 43, 237, 212, + 85, 196, 115, 240, 147, 240, 131, 240, 56, 251, 221, 198, + 83, 180, 131, 164, 147, 163, 163, 163, 163, 163, 163, 164, + 132, 180, 101, 191, 4, 139, 22, 167, 69, 0, 36, 16, + 65, 26, 0, 13, 70, 240, 71, 240, 86, 240, 131, 240, + 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 53, + 243, 25, 222, 198, 69, 181, 115, 180, 132, 163, 163, 163, + 164, 147, 179, 147, 179, 147, 179, 147, 179, 147, 179, 147, + 179, 148, 147, 164, 147, 165, 115, 182, 84, 190, 195, 25, + 211, 38, 0, 36, 96, 45, 26, 0, 43, 103, 240, 42, + 237, 197, 84, 195, 116, 180, 130, 195, 240, 116, 240, 115, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 132, 240, 131, + 162, 180, 132, 180, 115, 197, 84, 220, 250, 240, 54, 0, + 36, 112, 65, 26, 0, 14, 102, 240, 71, 240, 86, 240, + 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 245, + 51, 217, 19, 206, 181, 70, 180, 101, 164, 132, 163, 163, + 148, 163, 147, 179, 147, 179, 147, 179, 147, 179, 147, 179, + 147, 179, 163, 148, 164, 132, 164, 117, 181, 70, 207, 2, + 169, 23, 181, 54, 0, 36, 16, 45, 26, 0, 43, 86, + 240, 57, 253, 212, 84, 196, 116, 164, 147, 163, 164, 132, + 179, 131, 195, 143, 3, 143, 3, 143, 3, 131, 240, 132, + 240, 131, 193, 164, 163, 164, 132, 181, 84, 205, 250, 240, + 54, 0, 36, 112, 66, 26, 0, 14, 117, 240, 73, 240, + 26, 240, 20, 36, 244, 66, 240, 19, 240, 131, 240, 131, + 240, 131, 240, 47, 1, 175, 1, 175, 1, 240, 19, 240, + 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, + 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, + 131, 240, 131, 240, 47, 191, 191, 0, 36, 64, 66, 26, + 0, 43, 68, 68, 207, 175, 1, 148, 68, 35, 147, 99, + 211, 131, 195, 131, 195, 131, 195, 131, 195, 131, 211, 99, + 228, 68, 235, 250, 240, 18, 36, 240, 50, 240, 146, 240, + 147, 240, 140, 238, 191, 1, 148, 149, 131, 196, 99, 227, + 99, 227, 99, 227, 100, 196, 116, 164, 134, 102, 159, 1, + 204, 240, 24, 144, 66, 26, 0, 13, 54, 240, 71, 240, + 86, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, + 131, 240, 131, 53, 243, 24, 237, 214, 68, 197, 99, 196, + 115, 196, 115, 195, 131, 195, 131, 195, 131, 195, 131, 195, + 131, 195, 131, 195, 131, 195, 131, 195, 131, 195, 131, 195, + 131, 153, 41, 91, 26, 89, 41, 0, 36, 16, 57, 26, + 0, 14, 66, 240, 132, 240, 116, 240, 116, 240, 130, 0, + 15, 41, 240, 41, 240, 41, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 47, 191, 191, 0, 36, 48, 77, 26, 0, 15, 18, + 240, 132, 240, 116, 240, 116, 240, 130, 0, 15, 26, 240, + 26, 240, 26, 240, 131, 240, 131, 240, 131, 240, 131, 240, + 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, + 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, + 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, + 131, 210, 115, 212, 99, 212, 84, 220, 250, 240, 39, 176, + 71, 26, 0, 13, 70, 240, 71, 240, 86, 240, 131, 240, + 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 73, + 163, 73, 163, 73, 163, 100, 211, 84, 227, 83, 243, 67, + 240, 19, 51, 240, 35, 35, 240, 51, 21, 240, 41, 240, + 37, 35, 240, 20, 67, 244, 67, 243, 99, 227, 115, 211, + 115, 211, 131, 153, 56, 91, 40, 105, 56, 0, 36, 67, + 26, 0, 13, 90, 240, 26, 240, 26, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 31, 2, 159, + 2, 159, 2, 0, 36, 32, 67, 26, 0, 42, 69, 36, + 52, 140, 22, 127, 4, 149, 38, 35, 132, 68, 51, 132, + 68, 51, 131, 83, 67, 131, 83, 67, 131, 83, 67, 131, + 83, 67, 131, 83, 67, 131, 83, 67, 131, 83, 67, 131, + 83, 67, 131, 83, 67, 131, 83, 67, 131, 83, 67, 131, + 83, 67, 103, 23, 22, 71, 23, 22, 71, 23, 22, 0, + 36, 49, 26, 0, 42, 86, 53, 183, 24, 191, 1, 214, + 68, 197, 99, 196, 115, 196, 115, 195, 131, 195, 131, 195, + 131, 195, 131, 195, 131, 195, 131, 195, 131, 195, 131, 195, + 131, 195, 131, 195, 131, 153, 41, 91, 26, 89, 41, 0, + 36, 16, 44, 26, 0, 43, 70, 240, 58, 252, 213, 69, + 195, 131, 179, 163, 163, 163, 147, 195, 131, 195, 131, 195, + 131, 195, 131, 195, 131, 195, 132, 164, 147, 163, 164, 132, + 180, 115, 197, 69, 220, 250, 240, 54, 0, 37, 67, 26, + 0, 42, 102, 53, 183, 25, 175, 2, 198, 69, 181, 116, + 164, 147, 163, 163, 163, 179, 147, 179, 147, 179, 147, 179, + 147, 179, 147, 179, 147, 164, 148, 147, 164, 132, 165, 115, + 182, 69, 190, 195, 25, 211, 53, 243, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 89, + 240, 27, 240, 25, 208, 67, 26, 0, 43, 53, 51, 217, + 19, 206, 181, 70, 179, 117, 164, 132, 163, 148, 148, 163, + 147, 179, 147, 179, 147, 179, 147, 179, 147, 179, 148, 163, + 163, 148, 164, 132, 179, 117, 181, 70, 206, 217, 19, 245, + 51, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, + 131, 240, 131, 240, 131, 240, 89, 240, 27, 240, 25, 48, + 46, 26, 0, 42, 88, 85, 136, 57, 104, 27, 184, 52, + 182, 98, 197, 240, 100, 240, 116, 240, 116, 240, 115, 240, + 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, + 131, 240, 131, 240, 62, 207, 190, 0, 36, 112, 45, 26, + 0, 43, 55, 19, 221, 206, 196, 100, 179, 147, 179, 147, + 179, 147, 181, 240, 119, 240, 90, 240, 58, 240, 102, 240, + 132, 163, 163, 163, 163, 164, 147, 165, 116, 166, 84, 191, + 179, 26, 195, 39, 0, 36, 112, 60, 26, 0, 23, 115, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 63, + 2, 159, 2, 159, 2, 227, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 115, 211, 115, 211, 115, 211, 115, 212, 68, 251, + 240, 25, 240, 54, 0, 36, 96, 49, 26, 0, 42, 86, + 86, 135, 71, 150, 86, 195, 131, 195, 131, 195, 131, 195, + 131, 195, 131, 195, 131, 195, 131, 195, 131, 195, 131, 195, + 131, 195, 131, 195, 131, 195, 131, 195, 116, 196, 85, 223, + 1, 175, 2, 182, 38, 0, 36, 16, 56, 26, 0, 42, + 88, 72, 104, 72, 104, 72, 147, 131, 195, 131, 210, 130, + 227, 114, 227, 99, 242, 98, 240, 18, 98, 240, 19, 67, + 240, 19, 67, 240, 34, 66, 240, 51, 35, 240, 51, 35, + 240, 66, 34, 240, 86, 240, 86, 240, 101, 240, 100, 240, + 116, 0, 37, 16, 58, 26, 0, 42, 88, 88, 89, 57, + 88, 88, 115, 179, 147, 179, 162, 178, 178, 178, 178, 178, + 178, 178, 179, 51, 51, 179, 51, 51, 194, 37, 34, 210, + 37, 34, 210, 34, 18, 34, 210, 34, 19, 18, 214, 19, + 18, 214, 37, 213, 53, 228, 52, 244, 52, 243, 83, 0, + 36, 80, 54, 26, 0, 42, 88, 56, 121, 40, 120, 56, + 179, 99, 243, 67, 240, 19, 51, 240, 51, 35, 240, 70, + 240, 85, 240, 116, 240, 130, 240, 132, 240, 102, 240, 67, + 34, 240, 66, 51, 240, 35, 67, 243, 99, 227, 99, 168, + 72, 104, 72, 104, 72, 0, 36, 16, 80, 26, 0, 42, + 104, 71, 105, 57, 104, 71, 162, 146, 211, 130, 211, 115, + 226, 115, 227, 98, 243, 98, 240, 18, 83, 240, 19, 66, + 240, 50, 66, 240, 50, 51, 240, 51, 35, 240, 66, 34, + 240, 82, 19, 240, 86, 240, 100, 240, 116, 240, 116, 240, + 130, 240, 146, 240, 131, 240, 131, 240, 130, 240, 146, 240, + 34, 67, 240, 20, 50, 240, 36, 35, 240, 40, 240, 70, + 240, 100, 240, 16, 50, 26, 0, 42, 127, 3, 143, 3, + 143, 3, 131, 164, 147, 148, 163, 132, 240, 100, 240, 100, + 240, 101, 240, 85, 240, 100, 240, 100, 240, 100, 240, 100, + 240, 100, 146, 164, 147, 148, 163, 132, 179, 127, 4, 127, + 4, 143, 3, 0, 36, 16, 81, 26, 240, 37, 240, 56, + 240, 41, 240, 36, 240, 99, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 100, 240, 41, 240, 40, + 240, 57, 240, 117, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 133, 240, 121, 240, 56, 240, 86, + 0, 23, 32, 80, 26, 195, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 0, 24, 16, 80, + 26, 86, 240, 88, 240, 57, 240, 117, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 132, 240, 132, + 240, 121, 240, 56, 240, 41, 240, 36, 240, 99, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, 240, 131, + 240, 131, 240, 131, 240, 131, 240, 131, 240, 101, 240, 25, + 240, 40, 240, 54, 0, 24, 80, 18, 26, 0, 14, 35, + 98, 214, 67, 206, 180, 40, 195, 70, 210, 99, 0, 114, + 112, +}; + +//***************************************************************************** +// +// The font definition for the 48 point Cmtt font. +// +//***************************************************************************** +const tFont g_sFontCmtt48 = +{ + // + // The format of the font. + // + FONT_FMT_PIXEL_RLE, + + // + // The maximum width of the font. + // + 21, + + // + // The height of the font. + // + 45, + + // + // The baseline of the font. + // + 34, + + // + // The offset to each character in the font. + // + { + 0, 7, 66, 103, 182, 277, 370, 456, + 492, 573, 653, 707, 756, 788, 801, 819, + 900, 967, 1033, 1099, 1164, 1236, 1298, 1362, + 1433, 1497, 1562, 1593, 1638, 1691, 1712, 1766, + 1824, 1902, 1976, 2037, 2104, 2164, 2229, 2292, + 2359, 2423, 2485, 2550, 2625, 2692, 2783, 2870, + 2935, 2997, 3079, 3145, 3212, 3284, 3352, 3428, + 3520, 3596, 3668, 3736, 3811, 3891, 3966, 3987, + 3999, 4035, 4080, 4145, 4190, 4255, 4300, 4366, + 4432, 4498, 4555, 4632, 4703, 4770, 4837, 4886, + 4930, 4997, 5064, 5110, 5155, 5215, 5264, 5320, + 5378, 5432, 5512, 5562, 5643, 5723, 5803, + }, + + // + // A pointer to the actual font data + // + g_pui8Cmtt48Data +}; diff --git a/grlib/fonts/fontfixed6x8.c b/grlib/fonts/fontfixed6x8.c new file mode 100644 index 0000000..870c4a1 --- /dev/null +++ b/grlib/fonts/fontfixed6x8.c @@ -0,0 +1,162 @@ +//***************************************************************************** +// +// fontfixed6x8.c - Font defintion for the fixed-point 6x8 font. +// +// Copyright (c) 2008-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#include +#include +#include "grlib/grlib.h" + +//***************************************************************************** +// +// Details of this font: +// Style: fixed +// Size: 8 point +// Bold: no +// Italic: no +// Memory usage: 960 bytes +// +//***************************************************************************** + +//***************************************************************************** +// +// The uncompressed data for the fixed-point 6x8 font. +// +//***************************************************************************** +static const uint8_t g_pui8FontFixed6x8Data[760] = +{ + 8, 6, 0, 0, 0, 0, 0, 0, 8, 6, 32, 130, + 8, 0, 2, 0, 8, 6, 81, 69, 0, 0, 0, 0, + 8, 6, 81, 79, 148, 249, 69, 0, 8, 6, 33, 234, + 28, 43, 194, 0, 8, 6, 195, 33, 8, 66, 97, 128, + 8, 6, 98, 74, 16, 170, 70, 128, 8, 6, 96, 132, + 0, 0, 0, 0, 8, 6, 16, 132, 16, 64, 129, 0, + 8, 6, 64, 129, 4, 16, 132, 0, 8, 6, 0, 138, + 156, 168, 128, 0, 8, 6, 0, 130, 62, 32, 128, 0, + 8, 6, 0, 0, 0, 96, 132, 0, 8, 6, 0, 0, + 62, 0, 0, 0, 8, 6, 0, 0, 0, 1, 134, 0, + 8, 6, 0, 33, 8, 66, 0, 0, 8, 6, 114, 41, + 170, 202, 39, 0, 8, 6, 33, 130, 8, 32, 135, 0, + 8, 6, 114, 32, 132, 33, 15, 128, 8, 6, 248, 66, + 4, 10, 39, 0, 8, 6, 16, 197, 36, 248, 65, 0, + 8, 6, 250, 15, 2, 10, 39, 0, 8, 6, 49, 8, + 60, 138, 39, 0, 8, 6, 248, 33, 8, 65, 4, 0, + 8, 6, 114, 40, 156, 138, 39, 0, 8, 6, 114, 40, + 158, 8, 70, 0, 8, 6, 1, 134, 0, 97, 128, 0, + 8, 6, 1, 134, 0, 96, 132, 0, 8, 6, 16, 132, + 32, 64, 129, 0, 8, 6, 0, 15, 128, 248, 0, 0, + 8, 6, 64, 129, 2, 16, 132, 0, 8, 6, 114, 32, + 132, 32, 2, 0, 8, 6, 114, 32, 154, 170, 167, 0, + 8, 6, 114, 40, 162, 250, 40, 128, 8, 6, 242, 40, + 188, 138, 47, 0, 8, 6, 114, 40, 32, 130, 39, 0, + 8, 6, 226, 72, 162, 138, 78, 0, 8, 6, 250, 8, + 60, 130, 15, 128, 8, 6, 250, 8, 60, 130, 8, 0, + 8, 6, 114, 40, 46, 138, 39, 128, 8, 6, 138, 40, + 190, 138, 40, 128, 8, 6, 112, 130, 8, 32, 135, 0, + 8, 6, 56, 65, 4, 18, 70, 0, 8, 6, 138, 74, + 48, 162, 72, 128, 8, 6, 130, 8, 32, 130, 15, 128, + 8, 6, 139, 106, 170, 138, 40, 128, 8, 6, 138, 44, + 170, 154, 40, 128, 8, 6, 114, 40, 162, 138, 39, 0, + 8, 6, 242, 40, 188, 130, 8, 0, 8, 6, 114, 40, + 162, 170, 70, 128, 8, 6, 242, 40, 188, 162, 72, 128, + 8, 6, 122, 8, 28, 8, 47, 0, 8, 6, 248, 130, + 8, 32, 130, 0, 8, 6, 138, 40, 162, 138, 39, 0, + 8, 6, 138, 40, 162, 137, 66, 0, 8, 6, 138, 40, + 170, 170, 165, 0, 8, 6, 138, 37, 8, 82, 40, 128, + 8, 6, 138, 40, 148, 32, 130, 0, 8, 6, 248, 33, + 8, 66, 15, 128, 8, 6, 113, 4, 16, 65, 7, 0, + 8, 6, 2, 4, 8, 16, 32, 0, 8, 6, 112, 65, + 4, 16, 71, 0, 8, 6, 33, 72, 128, 0, 0, 0, + 8, 6, 0, 0, 0, 0, 15, 128, 8, 6, 64, 129, + 0, 0, 0, 0, 8, 6, 0, 7, 2, 122, 39, 128, + 8, 6, 130, 11, 50, 138, 47, 0, 8, 6, 0, 7, + 32, 130, 39, 0, 8, 6, 8, 38, 166, 138, 39, 128, + 8, 6, 0, 7, 34, 250, 7, 0, 8, 6, 49, 36, + 56, 65, 4, 0, 8, 6, 1, 232, 162, 120, 39, 0, + 8, 6, 130, 11, 50, 138, 40, 128, 8, 6, 32, 6, + 8, 32, 135, 0, 8, 6, 16, 3, 4, 18, 70, 0, + 8, 6, 130, 9, 40, 194, 137, 0, 8, 6, 96, 130, + 8, 32, 135, 0, 8, 6, 0, 13, 42, 170, 40, 128, + 8, 6, 0, 11, 50, 138, 40, 128, 8, 6, 0, 7, + 34, 138, 39, 0, 8, 6, 0, 15, 34, 242, 8, 0, + 8, 6, 0, 6, 166, 120, 32, 128, 8, 6, 0, 11, + 50, 130, 8, 0, 8, 6, 0, 7, 32, 112, 47, 0, + 8, 6, 65, 14, 16, 65, 35, 0, 8, 6, 0, 8, + 162, 138, 102, 128, 8, 6, 0, 8, 162, 137, 66, 0, + 8, 6, 0, 8, 162, 170, 165, 0, 8, 6, 0, 8, + 148, 33, 72, 128, 8, 6, 0, 8, 162, 120, 39, 0, + 8, 6, 0, 15, 132, 33, 15, 128, 8, 6, 16, 130, + 16, 32, 129, 0, 8, 6, 32, 130, 8, 32, 130, 0, + 8, 6, 64, 130, 4, 32, 132, 0, 8, 6, 66, 161, + 0, 0, 0, 0, +}; + +//***************************************************************************** +// +// The font definition for the fixed-point 6x8 font. +// +//***************************************************************************** +const tFont g_sFontFixed6x8 = +{ + // + // The format of the font. + // + FONT_FMT_UNCOMPRESSED, + + // + // The maximum width of the font. + // + 6, + + // + // The height of the font. + // + 8, + + // + // The baseline of the font. + // + 7, + + // + // The offset to each character in the font. + // + { + 0, 8, 16, 24, 32, 40, 48, 56, + 64, 72, 80, 88, 96, 104, 112, 120, + 128, 136, 144, 152, 160, 168, 176, 184, + 192, 200, 208, 216, 224, 232, 240, 248, + 256, 264, 272, 280, 288, 296, 304, 312, + 320, 328, 336, 344, 352, 360, 368, 376, + 384, 392, 400, 408, 416, 424, 432, 440, + 448, 456, 464, 472, 480, 488, 496, 504, + 512, 520, 528, 536, 544, 552, 560, 568, + 576, 584, 592, 600, 608, 616, 624, 632, + 640, 648, 656, 664, 672, 680, 688, 696, + 704, 712, 720, 728, 736, 744, 752, + }, + + // + // A pointer to the actual font data + // + g_pui8FontFixed6x8Data +}; diff --git a/grlib/gcc/libgr.a b/grlib/gcc/libgr.a new file mode 100644 index 0000000..2809bbc Binary files /dev/null and b/grlib/gcc/libgr.a differ diff --git a/grlib/grlib.ewp b/grlib/grlib.ewp new file mode 100644 index 0000000..79c81ad --- /dev/null +++ b/grlib/grlib.ewp @@ -0,0 +1,1289 @@ + + + + 1 + + Debug + + ARM + + 1 + + General + 3 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 19 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 5 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Source + + $PROJ_DIR$\canvas.c + + + $PROJ_DIR$\charmap.c + + + $PROJ_DIR$\checkbox.c + + + $PROJ_DIR$\circle.c + + + $PROJ_DIR$\container.c + + + $PROJ_DIR$\context.c + + + $PROJ_DIR$\fonts\fontcm12.c + + + $PROJ_DIR$\fonts\fontcm12b.c + + + $PROJ_DIR$\fonts\fontcm12i.c + + + $PROJ_DIR$\fonts\fontcm14.c + + + $PROJ_DIR$\fonts\fontcm14b.c + + + $PROJ_DIR$\fonts\fontcm14i.c + + + $PROJ_DIR$\fonts\fontcm16.c + + + $PROJ_DIR$\fonts\fontcm16b.c + + + $PROJ_DIR$\fonts\fontcm16i.c + + + $PROJ_DIR$\fonts\fontcm18.c + + + $PROJ_DIR$\fonts\fontcm18b.c + + + $PROJ_DIR$\fonts\fontcm18i.c + + + $PROJ_DIR$\fonts\fontcm20.c + + + $PROJ_DIR$\fonts\fontcm20b.c + + + $PROJ_DIR$\fonts\fontcm20i.c + + + $PROJ_DIR$\fonts\fontcm22.c + + + $PROJ_DIR$\fonts\fontcm22b.c + + + $PROJ_DIR$\fonts\fontcm22i.c + + + $PROJ_DIR$\fonts\fontcm24.c + + + $PROJ_DIR$\fonts\fontcm24b.c + + + $PROJ_DIR$\fonts\fontcm24i.c + + + $PROJ_DIR$\fonts\fontcm26.c + + + $PROJ_DIR$\fonts\fontcm26b.c + + + $PROJ_DIR$\fonts\fontcm26i.c + + + $PROJ_DIR$\fonts\fontcm28.c + + + $PROJ_DIR$\fonts\fontcm28b.c + + + $PROJ_DIR$\fonts\fontcm28i.c + + + $PROJ_DIR$\fonts\fontcm30.c + + + $PROJ_DIR$\fonts\fontcm30b.c + + + $PROJ_DIR$\fonts\fontcm30i.c + + + $PROJ_DIR$\fonts\fontcm32.c + + + $PROJ_DIR$\fonts\fontcm32b.c + + + $PROJ_DIR$\fonts\fontcm32i.c + + + $PROJ_DIR$\fonts\fontcm34.c + + + $PROJ_DIR$\fonts\fontcm34b.c + + + $PROJ_DIR$\fonts\fontcm34i.c + + + $PROJ_DIR$\fonts\fontcm36.c + + + $PROJ_DIR$\fonts\fontcm36b.c + + + $PROJ_DIR$\fonts\fontcm36i.c + + + $PROJ_DIR$\fonts\fontcm38.c + + + $PROJ_DIR$\fonts\fontcm38b.c + + + $PROJ_DIR$\fonts\fontcm38i.c + + + $PROJ_DIR$\fonts\fontcm40.c + + + $PROJ_DIR$\fonts\fontcm40b.c + + + $PROJ_DIR$\fonts\fontcm40i.c + + + $PROJ_DIR$\fonts\fontcm42.c + + + $PROJ_DIR$\fonts\fontcm42b.c + + + $PROJ_DIR$\fonts\fontcm42i.c + + + $PROJ_DIR$\fonts\fontcm44.c + + + $PROJ_DIR$\fonts\fontcm44b.c + + + $PROJ_DIR$\fonts\fontcm44i.c + + + $PROJ_DIR$\fonts\fontcm46.c + + + $PROJ_DIR$\fonts\fontcm46b.c + + + $PROJ_DIR$\fonts\fontcm46i.c + + + $PROJ_DIR$\fonts\fontcm48.c + + + $PROJ_DIR$\fonts\fontcm48b.c + + + $PROJ_DIR$\fonts\fontcm48i.c + + + $PROJ_DIR$\fonts\fontcmsc12.c + + + $PROJ_DIR$\fonts\fontcmsc14.c + + + $PROJ_DIR$\fonts\fontcmsc16.c + + + $PROJ_DIR$\fonts\fontcmsc18.c + + + $PROJ_DIR$\fonts\fontcmsc20.c + + + $PROJ_DIR$\fonts\fontcmsc22.c + + + $PROJ_DIR$\fonts\fontcmsc24.c + + + $PROJ_DIR$\fonts\fontcmsc26.c + + + $PROJ_DIR$\fonts\fontcmsc28.c + + + $PROJ_DIR$\fonts\fontcmsc30.c + + + $PROJ_DIR$\fonts\fontcmsc32.c + + + $PROJ_DIR$\fonts\fontcmsc34.c + + + $PROJ_DIR$\fonts\fontcmsc36.c + + + $PROJ_DIR$\fonts\fontcmsc38.c + + + $PROJ_DIR$\fonts\fontcmsc40.c + + + $PROJ_DIR$\fonts\fontcmsc42.c + + + $PROJ_DIR$\fonts\fontcmsc44.c + + + $PROJ_DIR$\fonts\fontcmsc46.c + + + $PROJ_DIR$\fonts\fontcmsc48.c + + + $PROJ_DIR$\fonts\fontcmss12.c + + + $PROJ_DIR$\fonts\fontcmss12b.c + + + $PROJ_DIR$\fonts\fontcmss12i.c + + + $PROJ_DIR$\fonts\fontcmss14.c + + + $PROJ_DIR$\fonts\fontcmss14b.c + + + $PROJ_DIR$\fonts\fontcmss14i.c + + + $PROJ_DIR$\fonts\fontcmss16.c + + + $PROJ_DIR$\fonts\fontcmss16b.c + + + $PROJ_DIR$\fonts\fontcmss16i.c + + + $PROJ_DIR$\fonts\fontcmss18.c + + + $PROJ_DIR$\fonts\fontcmss18b.c + + + $PROJ_DIR$\fonts\fontcmss18i.c + + + $PROJ_DIR$\fonts\fontcmss20.c + + + $PROJ_DIR$\fonts\fontcmss20b.c + + + $PROJ_DIR$\fonts\fontcmss20i.c + + + $PROJ_DIR$\fonts\fontcmss22.c + + + $PROJ_DIR$\fonts\fontcmss22b.c + + + $PROJ_DIR$\fonts\fontcmss22i.c + + + $PROJ_DIR$\fonts\fontcmss24.c + + + $PROJ_DIR$\fonts\fontcmss24b.c + + + $PROJ_DIR$\fonts\fontcmss24i.c + + + $PROJ_DIR$\fonts\fontcmss26.c + + + $PROJ_DIR$\fonts\fontcmss26b.c + + + $PROJ_DIR$\fonts\fontcmss26i.c + + + $PROJ_DIR$\fonts\fontcmss28.c + + + $PROJ_DIR$\fonts\fontcmss28b.c + + + $PROJ_DIR$\fonts\fontcmss28i.c + + + $PROJ_DIR$\fonts\fontcmss30.c + + + $PROJ_DIR$\fonts\fontcmss30b.c + + + $PROJ_DIR$\fonts\fontcmss30i.c + + + $PROJ_DIR$\fonts\fontcmss32.c + + + $PROJ_DIR$\fonts\fontcmss32b.c + + + $PROJ_DIR$\fonts\fontcmss32i.c + + + $PROJ_DIR$\fonts\fontcmss34.c + + + $PROJ_DIR$\fonts\fontcmss34b.c + + + $PROJ_DIR$\fonts\fontcmss34i.c + + + $PROJ_DIR$\fonts\fontcmss36.c + + + $PROJ_DIR$\fonts\fontcmss36b.c + + + $PROJ_DIR$\fonts\fontcmss36i.c + + + $PROJ_DIR$\fonts\fontcmss38.c + + + $PROJ_DIR$\fonts\fontcmss38b.c + + + $PROJ_DIR$\fonts\fontcmss38i.c + + + $PROJ_DIR$\fonts\fontcmss40.c + + + $PROJ_DIR$\fonts\fontcmss40b.c + + + $PROJ_DIR$\fonts\fontcmss40i.c + + + $PROJ_DIR$\fonts\fontcmss42.c + + + $PROJ_DIR$\fonts\fontcmss42b.c + + + $PROJ_DIR$\fonts\fontcmss42i.c + + + $PROJ_DIR$\fonts\fontcmss44.c + + + $PROJ_DIR$\fonts\fontcmss44b.c + + + $PROJ_DIR$\fonts\fontcmss44i.c + + + $PROJ_DIR$\fonts\fontcmss46.c + + + $PROJ_DIR$\fonts\fontcmss46b.c + + + $PROJ_DIR$\fonts\fontcmss46i.c + + + $PROJ_DIR$\fonts\fontcmss48.c + + + $PROJ_DIR$\fonts\fontcmss48b.c + + + $PROJ_DIR$\fonts\fontcmss48i.c + + + $PROJ_DIR$\fonts\fontcmtt12.c + + + $PROJ_DIR$\fonts\fontcmtt14.c + + + $PROJ_DIR$\fonts\fontcmtt16.c + + + $PROJ_DIR$\fonts\fontcmtt18.c + + + $PROJ_DIR$\fonts\fontcmtt20.c + + + $PROJ_DIR$\fonts\fontcmtt22.c + + + $PROJ_DIR$\fonts\fontcmtt24.c + + + $PROJ_DIR$\fonts\fontcmtt26.c + + + $PROJ_DIR$\fonts\fontcmtt28.c + + + $PROJ_DIR$\fonts\fontcmtt30.c + + + $PROJ_DIR$\fonts\fontcmtt32.c + + + $PROJ_DIR$\fonts\fontcmtt34.c + + + $PROJ_DIR$\fonts\fontcmtt36.c + + + $PROJ_DIR$\fonts\fontcmtt38.c + + + $PROJ_DIR$\fonts\fontcmtt40.c + + + $PROJ_DIR$\fonts\fontcmtt42.c + + + $PROJ_DIR$\fonts\fontcmtt44.c + + + $PROJ_DIR$\fonts\fontcmtt46.c + + + $PROJ_DIR$\fonts\fontcmtt48.c + + + $PROJ_DIR$\fonts\fontfixed6x8.c + + + $PROJ_DIR$\image.c + + + $PROJ_DIR$\imgbutton.c + + + $PROJ_DIR$\keyboard.c + + + $PROJ_DIR$\line.c + + + $PROJ_DIR$\listbox.c + + + $PROJ_DIR$\offscr1bpp.c + + + $PROJ_DIR$\offscr4bpp.c + + + $PROJ_DIR$\offscr8bpp.c + + + $PROJ_DIR$\pushbutton.c + + + $PROJ_DIR$\radiobutton.c + + + $PROJ_DIR$\rectangle.c + + + $PROJ_DIR$\slider.c + + + $PROJ_DIR$\string.c + + + $PROJ_DIR$\widget.c + + + diff --git a/grlib/grlib.h b/grlib/grlib.h new file mode 100644 index 0000000..3802381 --- /dev/null +++ b/grlib/grlib.h @@ -0,0 +1,2304 @@ +//***************************************************************************** +// +// grlib.h - Prototypes for the low level primitives provided by the graphics +// library. +// +// Copyright (c) 2007-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#ifndef __GRLIB_H__ +#define __GRLIB_H__ + +//***************************************************************************** +// +//! \addtogroup primitives_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +// If building with a C++ compiler, make all of the definitions in this header +// have a C binding. +// +//***************************************************************************** +#ifdef __cplusplus +extern "C" +{ +#endif + +//***************************************************************************** +// +//! This structure defines the extents of a rectangle. All points greater than +//! or equal to the minimum and less than or equal to the maximum are part of +//! the rectangle. +// +//***************************************************************************** +typedef struct +{ + // + //! The minimum X coordinate of the rectangle. + // + int16_t i16XMin; + + // + //! The minimum Y coordinate of the rectangle. + // + int16_t i16YMin; + + // + //! The maximum X coordinate of the rectangle. + // + int16_t i16XMax; + + // + //! The maximum Y coordinate of the rectangle. + // + int16_t i16YMax; +} +tRectangle; + +//***************************************************************************** +// +//! This structure defines the characteristics of a display driver. +// +//***************************************************************************** +typedef struct +{ + // + //! The size of this structure. + // + int32_t i32Size; + + // + //! A pointer to display driver-specific data. + // + void *pvDisplayData; + + // + //! The width of this display. + // + uint16_t ui16Width; + + // + //! The height of this display. + // + uint16_t ui16Height; + + // + //! A pointer to the function to draw a pixel on this display. + // + void (*pfnPixelDraw)(void *pvDisplayData, int32_t i32X, int32_t i32Y, + uint32_t ui32Value); + + // + //! A pointer to the function to draw multiple pixels on this display. + //! Note that the lBPP parameter contains the source image data color + //! depth in the least significant byte but uses some high bits to pass + //! flags and hints to the driver. + // + void (*pfnPixelDrawMultiple)(void *pvDisplayData, int32_t i32X, + int32_t i32Y, int32_t i32X0, + int32_t i32Count, int32_t i32BPP, + const uint8_t *pui8Data, + const uint8_t *pui8Palette); + + // + //! A pointer to the function to draw a horizontal line on this display. + // + void (*pfnLineDrawH)(void *pvDisplayData, int32_t i32X1, int32_t i32X2, + int32_t i32Y, uint32_t ui32Value); + + // + //! A pointer to the function to draw a vertical line on this display. + // + void (*pfnLineDrawV)(void *pvDisplayData, int32_t i32X, int32_t i32Y1, + int32_t i32Y2, uint32_t ui32Value); + + // + //! A pointer to the function to draw a filled rectangle on this display. + // + void (*pfnRectFill)(void *pvDisplayData, const tRectangle *psRect, + uint32_t ui32Value); + + // + //! A pointer to the function to translate 24-bit RGB colors to + //! display-specific colors. + // + uint32_t (*pfnColorTranslate)(void *pvDisplayData, uint32_t ui32Value); + + // + //! A pointer to the function to flush any cached drawing operations on + //! this display. + // + void (*pfnFlush)(void *pvDisplayData); +} +tDisplay; + +//***************************************************************************** +// +//! This flag is passed to display driver's PixelDrawMultiple calls in the +//! i32BPP parameter to indicate that a given span of pixels represents the +//! first line of a new image. Drivers may use this to recalculate any color +//! mapping table required to draw the image rather than doing this on every +//! line of pixels. +// +//***************************************************************************** +#define GRLIB_DRIVER_FLAG_NEW_IMAGE 0x40000000 + +//***************************************************************************** +// +//! This structure describes a font used for drawing text onto the screen. +//! Fonts in this format may encode ASCII characters with codepoints in the +//! range 0x20 - 0x7F. More information on this and the other supported font +//! structures may be found in the ``Font Format'' section of the user's guide. +// +//***************************************************************************** +typedef struct +{ + // + //! The format of the font. Can be one of FONT_FMT_UNCOMPRESSED or + //! FONT_FMT_PIXEL_RLE. + // + uint8_t ui8Format; + + // + //! The maximum width of a character; this is the width of the widest + //! character in the font, though any individual character may be narrower + //! than this width. + // + uint8_t ui8MaxWidth; + + // + //! The height of the character cell; this may be taller than the font data + //! for the characters (to provide inter-line spacing). + // + uint8_t ui8Height; + + // + //! The offset between the top of the character cell and the baseline of + //! the glyph. The baseline is the bottom row of a capital letter, below + //! which only the descenders of the lower case letters occur. + // + uint8_t ui8Baseline; + + // + //! The offset within pui8Data to the data for each character in the font. + // + uint16_t pui16Offset[96]; + + // + //! A pointer to the data for the font. + // + const uint8_t *pui8Data; +} +tFont; + +//***************************************************************************** +// +//! This is a newer version of the structure which describes a font used +//! for drawing text onto the screen. This variant allows a font to contain an +//! arbitrary, contiguous block of codepoints from the 256 basic characters in +//! an ISO8859-n font and allows support for accented characters in Western +//! European languages and any left-to-right typeface supported by an ISO8859 +//! variant. Fonts encoded in this format may be used interchangeably with the +//! original fonts merely by casting the structure pointer when calling any +//! function or macro which expects a font pointer as a parameter. More +//! information on this and the other supported font structures may be found in +//! the ``Font Format'' section of the user's guide. +// +//***************************************************************************** +typedef struct +{ + // + //! The format of the font. Can be one of FONT_FMT_EX_UNCOMPRESSED or + //! FONT_FMT_EX_PIXEL_RLE. + // + uint8_t ui8Format; + + // + //! The maximum width of a character; this is the width of the widest + //! character in the font, though any individual character may be narrower + //! than this width. + // + uint8_t ui8MaxWidth; + + // + //! The height of the character cell; this may be taller than the font data + //! for the characters (to provide inter-line spacing). + // + uint8_t ui8Height; + + // + //! The offset between the top of the character cell and the baseline of + //! the glyph. The baseline is the bottom row of a capital letter, below + //! which only the descenders of the lower case letters occur. + // + uint8_t ui8Baseline; + + // + //! The codepoint number representing the first character encoded in the + //! font. + // + uint8_t ui8First; + + // + //! The codepoint number representing the last character encoded in the + //! font. + // + uint8_t ui8Last; + + // + //! A pointer to a table containing the offset within pui8Data to the data + //! for each character in the font. + // + const uint16_t *pui16Offset; + + // + //! A pointer to the data for the font. + // + const uint8_t *pui8Data; +} +tFontEx; + +//***************************************************************************** +// +//! This variant of the font structure supports Unicode and other multi-byte +//! character sets. It is intended for use when rendering such languages as +//! traditional and simplified Chinese, Korean and Japanese. The font +//! supports multiple blocks of contiguous characters and includes a codepage +//! identifier to allow GrLib to correctly map source codepoints to font +//! glyphs in cases where the codepages may differ. More information on +//! this and the other supported font structures may be found in the ``Font +//! Format'' section of the user's guide. +// +// For the benefit of those of you reading the source... + +// Note that, unlike tFont and tFontEx where the character data and offset +// tables are referenced by pointer and may be discontiguous, a font described +// using tFontWide is assumed to comprise a single, contiguous block of data +// with a tFontWide structure as its header, a number of tFontBlock structures +// immediately following this, and a number of tFontOffsetTable and font glyph +// data entries following this. This format ensures that the font is position- +// independent and allows use in external memory or from non-random-access +// storage such as SDCards or SSI flash. +// +// A complete font in this format would look as follows: +// +// ------------------------------- +// 0 | tFontWide header | +// | ui32NumBlocks = n | +// ------------------------------- +// | tFontBlock[0] | First block describes characters from +// | ui32StartCodepoint = S0 | codepoint S0 to (S0 + N0 - 1). Offset +// | ui32NumCodepoints = N0 | to glyph table is OF0 bytes from the +// | ui32GlyphTableOffset = OF0 | start of the tFontWide header struct. +// ------------------------------- +// | ... | +// ------------------------------- +// | tFontBlock[n-1] | Final block describes characters from +// | ui32StartCodepoint = S(n-1) | codepoint S(n-1) to (S(n-1) + N(n-1) +// | ui32NumCodepoints = N(n-1) | - 1). +// | ui32GlyphTableOffset = OF(n-1)| +// ------------------------------- +// Start of Block 0 Offset Table +// ------------------------------- +// OF0 | ui32GlyphOffset = GO0 | Offset from OF0 to glyph S0 data. +// | | +// ------------------------------- +// | ui32GlyphOffset = GO1 | Offset from OF0 to glyph (S0 + 1) data. +// | | +// ------------------------------- +// | ... | +// | | +// ------------------------------- +// | ui32GlyphOffset = GO(N0 - 1) | Offset from OF0 to glyph (S0 + N0 - 1) +// | | +// ------------------------------- +// Start of Block 0 Glyph Data +// ------------------------------- +// GO0 | Glyph data for codepoint | +// | S0 from block 0 | +// ------------------------------- +// GO1 | Glyph data for codepoint | +// | S0 + 1 from block 0 | +// ------------------------------- +// | ... | +// ------------------------------- +// GO | Glyph data for codepoint | +//(N-1)| (S0 + N0 - 1) from block 0 | +// ------------------------------- +// Start of Block 1 Offset Table +// ------------------------------- +// OF1 | ui32GlyphOffset = G10 | Offset from OF1 to glyph S1 data. +// | | +// ------------------------------- +// | ui32GlyphOffset = G11 | Offset from OF1 to glyph (S1 + 1) data. +// | | +// ------------------------------- +// | ... | +// | | +// ------------------------------- +// | ui32GlyphOffset = G1(N1 - 1) | Offset from OF1 to glyph (S1 + N1 - 1) +// | | +// ------------------------------- +// Start of Block 1 Glyph Data +// ------------------------------- +// G10 | Glyph data for codepoint | +// | S1 from block 1 | +// ------------------------------- +// G11 | Glyph data for codepoint | +// | S1 + 1 from block 1 | +// ------------------------------- +// | ... | +// ------------------------------- +// G1 | Glyph data for codepoint | +//(N-1)| (S1 + N1 - 1) from block 1 | +// ------------------------------- +// GO0 | Glyph data for codepoint | +// | S0 from block 0 | +// ------------------------------- +// Start of Block 2 Offset Table +// ------------------------------- +// | ...continued for remaining | +// | font blocks. | +// ------------------------------- +// +//***************************************************************************** +typedef struct +{ + // + //! The format of the font. Can be one of FONT_FMT_WIDE_UNCOMPRESSED or + //! FONT_FMT_WIDE_PIXEL_RLE. + // + uint8_t ui8Format; + + // + //! The maximum width of a character; this is the width of the widest + //! character in the font, though any individual character may be narrower + //! than this width. + // + uint8_t ui8MaxWidth; + + // + //! The height of the character cell; this may be taller than the font data + //! for the characters (to provide inter-line spacing). + // + uint8_t ui8Height; + + // + //! The offset between the top of the character cell and the baseline of + //! the glyph. The baseline is the bottom row of a capital letter, below + //! which only the descenders of the lower case letters occur. + // + uint8_t ui8Baseline; + + // + //! The codepage that is used to find characters in this font. This + //! defines the codepoint-to-glyph mapping within this font. + // + uint16_t ui16Codepage; + + // + //! The number of blocks of characters described by this font where a block + //! contains a number of contiguous codepoints. + // + uint16_t ui16NumBlocks; +} +tFontWide; + +typedef struct +{ + // + //! The first codepoint in this block of characters. The meaning of this + //! value depends upon the codepage that the font is using, as defined in + //! the eCodePage field of the associated tFontWide structure. + // + uint32_t ui32StartCodepoint; + + // + //! The number of characters encoded in this block. The first character + //! is given by ui32StartCodepoint and the last is (ui32StartCodepoint + + //! ui32NumBlockChars - 1). + // + uint32_t ui32NumCodepoints; + + // + //! The offset from the beginning of the tFontWide header to the glyph + //! offset table for this block of characters. + // + uint32_t ui32GlyphTableOffset; +} +tFontBlock; + +typedef struct +{ + // + //! The offset of each glyph in the block relative to the first entry in + //! this table. This structure is represented as an array of 1 entry but + //! the actual number of entries is given in the ui16NumBlockChars entry of + //! the tFontBlock that points to this structure. + //! + //! The value provided in ui32GlyphOffset[n] is the byte offset from the + //! start of the tFontBlock structure that this glyph belongs to to the + //! first byte of the glyph data. + //! + //! To support fonts which contain large blocks of codepoints with + //! small gaps, a ui32GlyphOffset value of 0 indicates that the codepoint + //! in question is not populated in the font. Using this method, single + //! characters may be skipped while avoiding the overhead of defining a new + //! block. + // + uint32_t ui32GlyphOffset[1]; +} +tFontOffsetTable; + +//***************************************************************************** +// +//! The jump table used to access a particular wrapped (offline) font. +//! This table exists for each type of wrapped font in use with the functions +//! dependent upon the storage medium holding the font. +// +//***************************************************************************** +typedef struct +{ + // + //! A pointer to the function which will return information on the + //! font. This is used to support GrFontInfoGet. + // + void (*pfnFontInfoGet)(uint8_t *pui8FontId, uint8_t *pui8Format, + uint8_t *pui8Width, uint8_t *pui8Height, + uint8_t *pui8Baseline); + + // + //! A pointer to the function used to retrieve data for a particular font + //! glyph. This function returns a pointer to the glyph data in linear, + //! random access memory. If a buffer is required to ensure this, that + //! buffer must be owned and managed by the font wrapper function. It is + //! safe to assume that this function will not be called again until any + //! previously requested glyph data has been used so a single character + //! buffer should suffice. This is used to support GrFontGlyphDataGet. + // + const uint8_t *(*pfnFontGlyphDataGet)(uint8_t *pui8FontId, + uint32_t ui32CodePoint, + uint8_t *pui8Width); + + // + //! A pointer to the function used to determine the codepage supported by + //! the font. + // + uint16_t (*pfnFontCodepageGet)(uint8_t *pui8FontId); + + // + //! A pointer to the function used to determine the number of blocks of + //! codepoints supported by the font. + // + uint16_t (*pfnFontNumBlocksGet)(uint8_t *pui8FontId); + + // + //! A pointer to the function used to determine the codepoints in a given + //! codepoints in a given font block. + // + uint32_t (*pfnFontBlockCodepointsGet)(uint8_t *pui8FontId, + uint16_t ui16BlockIndex, + uint32_t *pui32Start); +} +tFontAccessFuncs; + +//***************************************************************************** +// +//! This is a wrapper used to support fonts which are stored in a file system +//! or other non-random access storage. The font is accessed by means of +//! access functions whose pointers are described in this structure. The +//! pui8FontId field is written with a handle supplied to the application by +//! the font wrapper's FontLoad function and is passed to all access functions +//! to identify the font in use. Wrapped fonts may be used by any GrLib +//! function that accepts a font pointer as a parameter merely by casting the +//! pointer appropriately. +// +//***************************************************************************** +typedef struct +{ + // + //! The format of the font. Will be FONT_FMT_WRAPPED. + // + uint8_t ui8Format; + + // + //! A pointer to information required to allow the font access functions + //! to find the font to be used. This value is returned from a call to + //! the FontLoad function for the particular font wrapper in use. + // + uint8_t *pui8FontId; + + // + //! Access functions for this font. + // + const tFontAccessFuncs *pFuncs; +} +tFontWrapper; + +//***************************************************************************** +// +//! Indicates that the font data is stored in an uncompressed format. +// +//***************************************************************************** +#define FONT_FMT_UNCOMPRESSED 0x00 + +//***************************************************************************** +// +//! Indicates that the font data is stored using a pixel-based RLE format. +// +//***************************************************************************** +#define FONT_FMT_PIXEL_RLE 0x01 + +//***************************************************************************** +// +//! A marker used in the ui8Format field of a font to indicates that the font +//! data is stored using the new tFontEx structure. +// +//***************************************************************************** +#define FONT_EX_MARKER 0x80 + +//***************************************************************************** +// +//! Indicates that the font data is stored in an uncompressed format and uses +//! the tFontEx structure format. +// +//***************************************************************************** +#define FONT_FMT_EX_UNCOMPRESSED (FONT_FMT_UNCOMPRESSED | FONT_EX_MARKER) + +//***************************************************************************** +// +//! Indicates that the font data is stored using a pixel-based RLE format and +//! uses the tFontEx structure format. +// +//***************************************************************************** +#define FONT_FMT_EX_PIXEL_RLE (FONT_FMT_PIXEL_RLE | FONT_EX_MARKER) + +//***************************************************************************** +// +//! A marker used in the ui8Format field of a font to indicates that the font +//! data is stored using the new tFontWide structure. +// +//***************************************************************************** +#define FONT_WIDE_MARKER 0x40 + +//***************************************************************************** +// +//! Indicates that the font data is stored in an uncompressed format and uses +//! the tFontWide structure format. +// +//***************************************************************************** +#define FONT_FMT_WIDE_UNCOMPRESSED (FONT_FMT_UNCOMPRESSED | FONT_WIDE_MARKER) + +//***************************************************************************** +// +//! Indicates that the font data is stored using a pixel-based RLE format and +//! uses the tFontWide structure format. +// +//***************************************************************************** +#define FONT_FMT_WIDE_PIXEL_RLE (FONT_FMT_PIXEL_RLE | FONT_WIDE_MARKER) + +//***************************************************************************** +// +//! Indicates that the font data is stored in offline storage (file system, +//! serial memory device, etc) and must be accessed using wrapper functions. +//! Fonts using this format are described using a tFontWrapper structure. +// +//***************************************************************************** +#define FONT_FMT_WRAPPED 0x20 + +//***************************************************************************** +// +//! Indicates that the image data is not compressed and represents each pixel +//! with a single bit. +// +//***************************************************************************** +#define IMAGE_FMT_1BPP_UNCOMP 0x01 + +//***************************************************************************** +// +//! Indicates that the image data is not compressed and represents each pixel +//! with four bits. +// +//***************************************************************************** +#define IMAGE_FMT_4BPP_UNCOMP 0x04 + +//***************************************************************************** +// +//! Indicates that the image data is not compressed and represents each pixel +//! with eight bits. +// +//***************************************************************************** +#define IMAGE_FMT_8BPP_UNCOMP 0x08 + +//***************************************************************************** +// +//! Indicates that the image data is compressed and represents each pixel with +//! a single bit. +// +//***************************************************************************** +#define IMAGE_FMT_1BPP_COMP 0x81 + +//***************************************************************************** +// +//! Indicates that the image data is compressed and represents each pixel with +//! four bits. +// +//***************************************************************************** +#define IMAGE_FMT_4BPP_COMP 0x84 + +//***************************************************************************** +// +//! Indicates that the image data is compressed and represents each pixel with +//! eight bits. +// +//***************************************************************************** +#define IMAGE_FMT_8BPP_COMP 0x88 + +#ifndef GRLIB_REMOVE_WIDE_FONT_SUPPORT +//***************************************************************************** +// +//! Identifiers for codepages and source text encoding formats. +// +//***************************************************************************** +#define CODEPAGE_ISO8859_1 0x0000 +#define CODEPAGE_ISO8859_2 0x0001 +#define CODEPAGE_ISO8859_3 0x0002 +#define CODEPAGE_ISO8859_4 0x0013 +#define CODEPAGE_ISO8859_5 0x0003 +#define CODEPAGE_ISO8859_6 0x0004 +#define CODEPAGE_ISO8859_7 0x0005 +#define CODEPAGE_ISO8859_8 0x0006 +#define CODEPAGE_ISO8859_9 0x0007 +#define CODEPAGE_ISO8859_10 0x0008 +#define CODEPAGE_ISO8859_11 0x0009 +#define CODEPAGE_ISO8859_13 0x000A +#define CODEPAGE_ISO8859_14 0x000B +#define CODEPAGE_ISO8859_15 0x000C +#define CODEPAGE_ISO8859_16 0x000D +#define CODEPAGE_UNICODE 0x000E +#define CODEPAGE_GB2312 0x000F +#define CODEPAGE_GB18030 0x0010 +#define CODEPAGE_BIG5 0x0011 +#define CODEPAGE_SHIFT_JIS 0x0012 +#define CODEPAGE_WIN1250 0x0013 +#define CODEPAGE_WIN1251 0x0014 +#define CODEPAGE_WIN1252 0x0015 +#define CODEPAGE_WIN1253 0x0016 +#define CODEPAGE_WIN1254 0x0017 +#define CODEPAGE_WIN1255 0x0018 +#define CODEPAGE_WIN1256 0x0019 +#define CODEPAGE_WIN1257 0x001A +#define CODEPAGE_WIN1258 0x001B + +// +// UTF-8 and UTF-16 may be specified as the source text encoding but may not +// be used to describe the codepage in use in a font since they are simply +// different encoding methods for Unicode. +// +#define CODEPAGE_UTF_8 0x4000 +#define CODEPAGE_UTF_16LE 0x4001 +#define CODEPAGE_UTF_16BE 0x4002 +#define CODEPAGE_UTF_16 CODEPAGE_UTF_16BE + +// +// Applications wishing to use custom fonts with, for example, application- +// specific glyph mappings may use codepage identifiers above +// CODEPAGE_CUSTOM_BASE. +// +#define CODEPAGE_CUSTOM_BASE 0x8000 + +//***************************************************************************** +// +//! A structure used to define a mapping function that converts text in one +//! codepage to a different codepage. Typically this is used to translate +//! text strings into the codepoints needed to retrieve the appropriate +//! glyphs from a font. +// +//***************************************************************************** +typedef struct +{ + // + //! The codepage used to describe the source characters. + // + uint16_t ui16SrcCodepage; + + // + //! The codepage into which source characters are to be mapped. + // + uint16_t ui16FontCodepage; + + // + //! A pointer to the conversion function which will be used to translate + //! input strings into codepoints in the output codepage. + // + uint32_t (*pfnMapChar)(const char *pcSrcChar, uint32_t ui32Count, + uint32_t *pui32Skip); +} +tCodePointMap; + +//***************************************************************************** +// +// Forward reference to the graphics context structure. +// +//***************************************************************************** +struct _tContext; + +//***************************************************************************** +// +// A function pointer for a replacement text string rendering function. The +// prototype for this function follows GrStringDraw. Applications making use +// of scripts which require special handling for diacritics, ligatures or +// character composition/decomposition may replace the default GrLib string +// renderer with one of their own which understands these rules. +// +//***************************************************************************** +typedef void (*tStringRenderer)(const struct _tContext *, const char *, + int32_t, int32_t, int32_t, bool); + +//***************************************************************************** +// +//! This structure contains default values that are set in any new context +//! initialized via a call to GrContextInit. This structure is passed to the +//! graphics library using the GrLibInit function. +// +//***************************************************************************** +typedef struct +{ + // + //! The default string rendering function to use. This will normally be + //! GrDefaultStringRenderer but may be replaced when supporting languages + //! requiring mixed rendering directions such as Arabic or Hebrew. + // + void (*pfnStringRenderer)(const struct _tContext *, const char *, int32_t, + int32_t, int32_t, bool); + + // + //! The default codepoint mapping function table. This table contains + //! information allowing GrLib to map text in the source codepage to the + //! correct glyphs in the fonts to be used. The field points to the first + //! element of an array of ui8NumCodePointMaps structures. + // + tCodePointMap *pCodePointMapTable; + + // + //! The default source text codepage encoding in use by the application. + // + uint16_t ui16Codepage; + + // + //! The number of entries in the pCodePointMapTable array. + // + uint8_t ui8NumCodePointMaps; + + // + //! Reserved for future expansion. + // + uint8_t ui8Reserved; +} +tGrLibDefaults; + +#endif + +//***************************************************************************** +// +//! This structure defines a drawing context to be used to draw onto the +//! screen. Multiple drawing contexts may exist at any time. +// +//***************************************************************************** +#ifdef DOXYGEN +typedef struct +#else +typedef struct _tContext +#endif +{ + // + //! The size of this structure. + // + int32_t i32Size; + + // + //! The screen onto which drawing operations are performed. + // + const tDisplay *psDisplay; + + // + //! The clipping region to be used when drawing onto the screen. + // + tRectangle sClipRegion; + + // + //! The color used to draw primitives onto the screen. + // + uint32_t ui32Foreground; + + // + //! The background color used to draw primitives onto the screen. + // + uint32_t ui32Background; + + // + //! The font used to render text onto the screen. + // + const tFont *psFont; + +#ifndef GRLIB_REMOVE_WIDE_FONT_SUPPORT + // + //! A pointer to a replacement string rendering function. Applications + //! can use this for language-specific string rendering support. If + //! set, this function is passed control whenever GrStringDraw is called. + // + void (*pfnStringRenderer)(const struct _tContext *, const char *, int32_t, + int32_t, int32_t, bool); + + // + //! A table of functions used to map between the various supported + //! source codepages and the codepages supported by fonts in use. + // + const tCodePointMap *pCodePointMapTable; + + // + //! The currently selected source text codepage. + // + uint16_t ui16Codepage; + + // + //! The number of entries in the pCodePointMapTable array. + // + uint8_t ui8NumCodePointMaps; + + // + //! The index of the codepoint map table entry which is currently in use + //! based on the selected source codepage and the current font. + // + uint8_t ui8CodePointMap; + + // + //! Reserved for future expansion. + // + uint8_t ui8Reserved; +#endif +} +tContext; + +//***************************************************************************** +// +//! Sets the background color to be used. +//! +//! \param psContext is a pointer to the drawing context to modify. +//! \param ui32Value is the 24-bit RGB color to be used. +//! +//! This function sets the background color to be used for drawing operations +//! in the specified drawing context. +//! +//! \return None. +// +//***************************************************************************** +#define GrContextBackgroundSet(psContext, ui32Value) \ + do \ + { \ + tContext *pC = psContext; \ + pC->ui32Background = DpyColorTranslate(pC->psDisplay, ui32Value); \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the background color to be used. +//! +//! \param psContext is a pointer to the drawing context to modify. +//! \param ui32Value is the display driver-specific color to be used. +//! +//! This function sets the background color to be used for drawing operations +//! in the specified drawing context, using a color that has been previously +//! translated to a driver-specific color (for example, via +//! DpyColorTranslate()). +//! +//! \return None. +// +//***************************************************************************** +#define GrContextBackgroundSetTranslated(psContext, ui32Value) \ + do \ + { \ + tContext *pC = psContext; \ + pC->ui32Background = ui32Value; \ + } \ + while(0) + +//***************************************************************************** +// +//! Gets the width of the display being used by this drawing context. +//! +//! \param psContext is a pointer to the drawing context to query. +//! +//! This function returns the width of the display that is being used by this +//! drawing context. +//! +//! \return Returns the width of the display in pixels. +// +//***************************************************************************** +#define GrContextDpyWidthGet(psContext) \ + (DpyWidthGet((psContext)->psDisplay)) + +//***************************************************************************** +// +//! Gets the height of the display being used by this drawing context. +//! +//! \param psContext is a pointer to the drawing context to query. +//! +//! This function returns the height of the display that is being used by this +//! drawing context. +//! +//! \return Returns the height of the display in pixels. +// +//***************************************************************************** +#define GrContextDpyHeightGet(psContext) \ + (DpyHeightGet((psContext)->psDisplay)) + +#ifdef GRLIB_REMOVE_WIDE_FONT_SUPPORT +//***************************************************************************** +// +//! Sets the font to be used. +//! +//! \param psContext is a pointer to the drawing context to modify. +//! \param pFnt is a pointer to the font to be used. +//! +//! This function sets the font to be used for string drawing operations in the +//! specified drawing context. If a tFontEx type font is to be used, cast its +//! pointer to a psFont pointer before passing it as the pFnt parameter. +//! +//! \return None. +// +//***************************************************************************** +#define GrContextFontSet(psContext, pFnt) \ + do \ + { \ + tContext *pC = psContext; \ + const tFont *pF = pFnt; \ + pC->psFont = pF; \ + } \ + while(0) +#else +extern void GrContextFontSet(tContext *psContext, const tFont *pFnt); +#endif + +//***************************************************************************** +// +//! Sets the foreground color to be used. +//! +//! \param psContext is a pointer to the drawing context to modify. +//! \param ui32Value is the 24-bit RGB color to be used. +//! +//! This function sets the color to be used for drawing operations in the +//! specified drawing context. +//! +//! \return None. +// +//***************************************************************************** +#define GrContextForegroundSet(psContext, ui32Value) \ + do \ + { \ + tContext *pC = psContext; \ + pC->ui32Foreground = DpyColorTranslate(pC->psDisplay, ui32Value); \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the foreground color to be used. +//! +//! \param psContext is a pointer to the drawing context to modify. +//! \param ui32Value is the display driver-specific color to be used. +//! +//! This function sets the foreground color to be used for drawing operations +//! in the specified drawing context, using a color that has been previously +//! translated to a driver-specific color (for example, via +//! DpyColorTranslate()). +//! +//! \return None. +// +//***************************************************************************** +#define GrContextForegroundSetTranslated(psContext, ui32Value) \ + do \ + { \ + tContext *pC = psContext; \ + pC->ui32Foreground = ui32Value; \ + } \ + while(0) + +//***************************************************************************** +// +//! Flushes any cached drawing operations. +//! +//! \param psContext is a pointer to the drawing context to use. +//! +//! This function flushes any cached drawing operations. For display drivers +//! that draw into a local frame buffer before writing to the actual display, +//! calling this function will cause the display to be updated to match the +//! contents of the local frame buffer. +//! +//! \return None. +// +//***************************************************************************** +#define GrFlush(psContext) \ + do \ + { \ + const tContext *pC = psContext; \ + DpyFlush(pC->psDisplay); \ + } \ + while(0) + +#ifdef GRLIB_REMOVE_WIDE_FONT_SUPPORT +//***************************************************************************** +// +//! Gets the baseline of a font. +//! +//! \param psFont is a pointer to the font to query. +//! +//! This function determines the baseline position of a font. The baseline is +//! the offset between the top of the font and the bottom of the capital +//! letters. The only font data that exists below the baseline are the +//! descenders on some lower-case letters (such as ``y''). +//! +//! \return Returns the baseline of the font, in pixels. +// +//***************************************************************************** +#define GrFontBaselineGet(psFont) \ + ((psFont)->ui8Baseline) + +//***************************************************************************** +// +//! Gets the height of a font. +//! +//! \param psFont is a pointer to the font to query. +//! +//! This function determines the height of a font. The height is the offset +//! between the top of the font and the bottom of the font, including any +//! ascenders and descenders. +//! +//! \return Returns the height of the font, in pixels. +// +//***************************************************************************** +#define GrFontHeightGet(psFont) \ + ((psFont)->ui8Height) + +//***************************************************************************** +// +//! Gets the maximum width of a font. +//! +//! \param psFont is a pointer to the font to query. +//! +//! This function determines the maximum width of a font. The maximum width is +//! the width of the widest individual character in the font. +//! +//! \return Returns the maximum width of the font, in pixels. +// +//***************************************************************************** +#define GrFontMaxWidthGet(psFont) \ + ((psFont)->ui8MaxWidth) +#endif + +//***************************************************************************** +// +//! Gets the number of colors in an image. +//! +//! \param pui8Image is a pointer to the image to query. +//! +//! This function determines the number of colors in the palette of an image. +//! This is only valid for 4bpp and 8bpp images; 1bpp images do not contain a +//! palette. +//! +//! \return Returns the number of colors in the image. +// +//***************************************************************************** +#define GrImageColorsGet(pui8Image) \ + (((uint8_t *)pui8Image)[5] + 1) + +//***************************************************************************** +// +//! Gets the height of an image. +//! +//! \param pui8Image is a pointer to the image to query. +//! +//! This function determines the height of an image in pixels. +//! +//! \return Returns the height of the image in pixels. +// +//***************************************************************************** +#define GrImageHeightGet(pui8Image) \ + (*(uint16_t *)(pui8Image + 3)) + +//***************************************************************************** +// +//! Gets the width of an image. +//! +//! \param pui8Image is a pointer to the image to query. +//! +//! This function determines the width of an image in pixels. +//! +//! \return Returns the width of the image in pixels. +// +//***************************************************************************** +#define GrImageWidthGet(pui8Image) \ + (*(uint16_t *)(pui8Image + 1)) + +//***************************************************************************** +// +//! Determines the size of the buffer for a 1 BPP off-screen image. +//! +//! \param i32Width is the width of the image in pixels. +//! \param i32Height is the height of the image in pixels. +//! +//! This function determines the size of the memory buffer required to hold a +//! 1 BPP off-screen image of the specified geometry. +//! +//! \return Returns the number of bytes required by the image. +// +//***************************************************************************** +#define GrOffScreen1BPPSize(i32Width, i32Height) \ + (5 + (((i32Width + 7) / 8) * i32Height)) + +//***************************************************************************** +// +//! Determines the size of the buffer for a 4 BPP off-screen image. +//! +//! \param i32Width is the width of the image in pixels. +//! \param i32Height is the height of the image in pixels. +//! +//! This function determines the size of the memory buffer required to hold a +//! 4 BPP off-screen image of the specified geometry. +//! +//! \return Returns the number of bytes required by the image. +// +//***************************************************************************** +#define GrOffScreen4BPPSize(i32Width, i32Height) \ + (6 + (16 * 3) + (((i32Width + 1) / 2) * i32Height)) + +//***************************************************************************** +// +//! Determines the size of the buffer for an 8 BPP off-screen image. +//! +//! \param i32Width is the width of the image in pixels. +//! \param i32Height is the height of the image in pixels. +//! +//! This function determines the size of the memory buffer required to hold an +//! 8 BPP off-screen image of the specified geometry. +//! +//! \return Returns the number of bytes required by the image. +// +//***************************************************************************** +#define GrOffScreen8BPPSize(i32Width, i32Height) \ + (6 + (256 * 3) + (i32Width * i32Height)) + +//***************************************************************************** +// +//! Draws a pixel. +//! +//! \param psContext is a pointer to the drawing context to use. +//! \param i32X is the X coordinate of the pixel. +//! \param i32Y is the Y coordinate of the pixel. +//! +//! This function draws a pixel if it resides within the clipping region. +//! +//! \return None. +// +//***************************************************************************** +#define GrPixelDraw(psContext, i32X, i32Y) \ + do \ + { \ + const tContext *pC = psContext; \ + if((i32X >= pC->sClipRegion.i16XMin) && \ + (i32X <= pC->sClipRegion.i16XMax) && \ + (i32Y >= pC->sClipRegion.i16YMin) && \ + (i32Y <= pC->sClipRegion.i16YMax)) \ + { \ + DpyPixelDraw(pC->psDisplay, i32X, i32Y, pC->ui32Foreground); \ + } \ + } \ + while(0) + +//***************************************************************************** +// +//! Gets the baseline of a string. +//! +//! \param psContext is a pointer to the drawing context to query. +//! +//! This function determines the baseline position of a string. The baseline +//! is the offset between the top of the string and the bottom of the capital +//! letters. The only string data that exists below the baseline are the +//! descenders on some lower-case letters (such as ``y''). +//! +//! \return Returns the baseline of the string, in pixels. +// +//***************************************************************************** +#define GrStringBaselineGet(psContext) \ + (GrFontBaselineGet((psContext)->psFont)) + +//***************************************************************************** +// +//! Draws a centered string. +//! +//! \param psContext is a pointer to the drawing context to use. +//! \param pcString is a pointer to the string to be drawn. +//! \param i32Length is the number of characters from the string that should be +//! drawn on the screen. +//! \param i32X is the X coordinate of the center of the string position on the +//! screen. +//! \param i32Y is the Y coordinate of the center of the string position on the +//! screen. +//! \param bOpaque is \b true if the background of each character should be +//! drawn and \b false if it should not (leaving the background as is). +//! +//! This function draws a string of test on the screen centered upon the +//! provided position. The \e i32Length parameter allows a portion of the +//! string to be examined without having to insert a NULL character at the +//! stopping point (which would not be possible if the string was located in +//! flash); specifying a length of -1 will cause the entire string to be +//! rendered (subject to clipping). +//! +//! \return None. +// +//***************************************************************************** +#define GrStringDrawCentered(psContext, pcString, i32Length, i32X, i32Y, \ + bOpaque) \ + do \ + { \ + const tContext *pC = psContext; \ + const char *pcStr = pcString; \ + \ + GrStringDraw(pC, pcStr, i32Length, \ + (i32X) - (GrStringWidthGet(pC, pcStr, \ + i32Length) / 2), \ + (i32Y) - (GrFontBaselineGet(pC->psFont) / 2), \ + bOpaque); \ + } \ + while(0) + +//***************************************************************************** +// +//! Gets the height of a string. +//! +//! \param psContext is a pointer to the drawing context to query. +//! +//! This function determines the height of a string. The height is the offset +//! between the top of the string and the bottom of the string, including any +//! ascenders and descenders. Note that this will not account for the case +//! where the string in question does not have any characters that use +//! descenders but the font in the drawing context does contain characters with +//! descenders. +//! +//! \return Returns the height of the string, in pixels. +// +//***************************************************************************** +#define GrStringHeightGet(psContext) \ + (GrFontHeightGet((psContext)->psFont)) + +//***************************************************************************** +// +//! Gets the maximum width of a character in a string. +//! +//! \param psContext is a pointer to the drawing context to query. +//! +//! This function determines the maximum width of a character in a string. The +//! maximum width is the width of the widest individual character in the font +//! used to render the string, which may be wider than the widest character +//! that is used to render a particular string. +//! +//! \return Returns the maximum width of a character in a string, in pixels. +// +//***************************************************************************** +#define GrStringMaxWidthGet(psContext) \ + (GrFontMaxWidthGet((psContext)->psFont)) + +//***************************************************************************** +// +// A set of color definitions. This set is the subset of the X11 colors (from +// rgb.txt) that are supported by typical web browsers. +// +//***************************************************************************** +#define ClrAliceBlue 0x00F0F8FF +#define ClrAntiqueWhite 0x00FAEBD7 +#define ClrAqua 0x0000FFFF +#define ClrAquamarine 0x007FFFD4 +#define ClrAzure 0x00F0FFFF +#define ClrBeige 0x00F5F5DC +#define ClrBisque 0x00FFE4C4 +#define ClrBlack 0x00000000 +#define ClrBlanchedAlmond 0x00FFEBCD +#define ClrBlue 0x000000FF +#define ClrBlueViolet 0x008A2BE2 +#define ClrBrown 0x00A52A2A +#define ClrBurlyWood 0x00DEB887 +#define ClrCadetBlue 0x005F9EA0 +#define ClrChartreuse 0x007FFF00 +#define ClrChocolate 0x00D2691E +#define ClrCoral 0x00FF7F50 +#define ClrCornflowerBlue 0x006495ED +#define ClrCornsilk 0x00FFF8DC +#define ClrCrimson 0x00DC143C +#define ClrCyan 0x0000FFFF +#define ClrDarkBlue 0x0000008B +#define ClrDarkCyan 0x00008B8B +#define ClrDarkGoldenrod 0x00B8860B +#define ClrDarkGray 0x00A9A9A9 +#define ClrDarkGreen 0x00006400 +#define ClrDarkKhaki 0x00BDB76B +#define ClrDarkMagenta 0x008B008B +#define ClrDarkOliveGreen 0x00556B2F +#define ClrDarkOrange 0x00FF8C00 +#define ClrDarkOrchid 0x009932CC +#define ClrDarkRed 0x008B0000 +#define ClrDarkSalmon 0x00E9967A +#define ClrDarkSeaGreen 0x008FBC8F +#define ClrDarkSlateBlue 0x00483D8B +#define ClrDarkSlateGray 0x002F4F4F +#define ClrDarkTurquoise 0x0000CED1 +#define ClrDarkViolet 0x009400D3 +#define ClrDeepPink 0x00FF1493 +#define ClrDeepSkyBlue 0x0000BFFF +#define ClrDimGray 0x00696969 +#define ClrDodgerBlue 0x001E90FF +#define ClrFireBrick 0x00B22222 +#define ClrFloralWhite 0x00FFFAF0 +#define ClrForestGreen 0x00228B22 +#define ClrFuchsia 0x00FF00FF +#define ClrGainsboro 0x00DCDCDC +#define ClrGhostWhite 0x00F8F8FF +#define ClrGold 0x00FFD700 +#define ClrGoldenrod 0x00DAA520 +#define ClrGray 0x00808080 +#define ClrGreen 0x00008000 +#define ClrGreenYellow 0x00ADFF2F +#define ClrHoneydew 0x00F0FFF0 +#define ClrHotPink 0x00FF69B4 +#define ClrIndianRed 0x00CD5C5C +#define ClrIndigo 0x004B0082 +#define ClrIvory 0x00FFFFF0 +#define ClrKhaki 0x00F0E68C +#define ClrLavender 0x00E6E6FA +#define ClrLavenderBlush 0x00FFF0F5 +#define ClrLawnGreen 0x007CFC00 +#define ClrLemonChiffon 0x00FFFACD +#define ClrLightBlue 0x00ADD8E6 +#define ClrLightCoral 0x00F08080 +#define ClrLightCyan 0x00E0FFFF +#define ClrLightGoldenrodYellow 0x00FAFAD2 +#define ClrLightGreen 0x0090EE90 +#define ClrLightGrey 0x00D3D3D3 +#define ClrLightPink 0x00FFB6C1 +#define ClrLightSalmon 0x00FFA07A +#define ClrLightSeaGreen 0x0020B2AA +#define ClrLightSkyBlue 0x0087CEFA +#define ClrLightSlateGray 0x00778899 +#define ClrLightSteelBlue 0x00B0C4DE +#define ClrLightYellow 0x00FFFFE0 +#define ClrLime 0x0000FF00 +#define ClrLimeGreen 0x0032CD32 +#define ClrLinen 0x00FAF0E6 +#define ClrMagenta 0x00FF00FF +#define ClrMaroon 0x00800000 +#define ClrMediumAquamarine 0x0066CDAA +#define ClrMediumBlue 0x000000CD +#define ClrMediumOrchid 0x00BA55D3 +#define ClrMediumPurple 0x009370DB +#define ClrMediumSeaGreen 0x003CB371 +#define ClrMediumSlateBlue 0x007B68EE +#define ClrMediumSpringGreen 0x0000FA9A +#define ClrMediumTurquoise 0x0048D1CC +#define ClrMediumVioletRed 0x00C71585 +#define ClrMidnightBlue 0x00191970 +#define ClrMintCream 0x00F5FFFA +#define ClrMistyRose 0x00FFE4E1 +#define ClrMoccasin 0x00FFE4B5 +#define ClrNavajoWhite 0x00FFDEAD +#define ClrNavy 0x00000080 +#define ClrOldLace 0x00FDF5E6 +#define ClrOlive 0x00808000 +#define ClrOliveDrab 0x006B8E23 +#define ClrOrange 0x00FFA500 +#define ClrOrangeRed 0x00FF4500 +#define ClrOrchid 0x00DA70D6 +#define ClrPaleGoldenrod 0x00EEE8AA +#define ClrPaleGreen 0x0098FB98 +#define ClrPaleTurquoise 0x00AFEEEE +#define ClrPaleVioletRed 0x00DB7093 +#define ClrPapayaWhip 0x00FFEFD5 +#define ClrPeachPuff 0x00FFDAB9 +#define ClrPeru 0x00CD853F +#define ClrPink 0x00FFC0CB +#define ClrPlum 0x00DDA0DD +#define ClrPowderBlue 0x00B0E0E6 +#define ClrPurple 0x00800080 +#define ClrRed 0x00FF0000 +#define ClrRosyBrown 0x00BC8F8F +#define ClrRoyalBlue 0x004169E1 +#define ClrSaddleBrown 0x008B4513 +#define ClrSalmon 0x00FA8072 +#define ClrSandyBrown 0x00F4A460 +#define ClrSeaGreen 0x002E8B57 +#define ClrSeashell 0x00FFF5EE +#define ClrSienna 0x00A0522D +#define ClrSilver 0x00C0C0C0 +#define ClrSkyBlue 0x0087CEEB +#define ClrSlateBlue 0x006A5ACD +#define ClrSlateGray 0x00708090 +#define ClrSnow 0x00FFFAFA +#define ClrSpringGreen 0x0000FF7F +#define ClrSteelBlue 0x004682B4 +#define ClrTan 0x00D2B48C +#define ClrTeal 0x00008080 +#define ClrThistle 0x00D8BFD8 +#define ClrTomato 0x00FF6347 +#define ClrTurquoise 0x0040E0D0 +#define ClrViolet 0x00EE82EE +#define ClrWheat 0x00F5DEB3 +#define ClrWhite 0x00FFFFFF +#define ClrWhiteSmoke 0x00F5F5F5 +#define ClrYellow 0x00FFFF00 +#define ClrYellowGreen 0x009ACD32 + +//***************************************************************************** +// +// Masks and shifts to aid in color format translation by drivers. +// +//***************************************************************************** +#define ClrRedMask 0x00FF0000 +#define ClrRedShift 16 +#define ClrGreenMask 0x0000FF00 +#define ClrGreenShift 8 +#define ClrBlueMask 0x000000FF +#define ClrBlueShift 0 + +//***************************************************************************** +// +// Prototypes for the predefined fonts in the graphics library. ..Cm.. is the +// computer modern font, which is a serif font. ..Cmsc.. is the computer +// modern small-caps font, which is also a serif font. ..Cmss.. is the +// computer modern sans-serif font. +// +//***************************************************************************** +extern const tFont g_sFontCm12; +#define g_psFontCm12 (const tFont *)&g_sFontCm12 +extern const tFont g_sFontCm12b; +#define g_pCm12b (const tFont *)&g_sFontCm12b +extern const tFont g_sFontCm12i; +#define g_psFontCm12i (const tFont *)&g_sFontCm12i +extern const tFont g_sFontCm14; +#define g_psFontCm14 (const tFont *)&g_sFontCm14 +extern const tFont g_sFontCm14b; +#define g_psFontCm14b (const tFont *)&g_sFontCm14b +extern const tFont g_sFontCm14i; +#define g_psFontCm14i (const tFont *)&g_sFontCm14i +extern const tFont g_sFontCm16; +#define g_psFontCm16 (const tFont *)&g_sFontCm16 +extern const tFont g_sFontCm16b; +#define g_psFontCm16b (const tFont *)&g_sFontCm16b +extern const tFont g_sFontCm16i; +#define g_psFontCm16i (const tFont *)&g_sFontCm16i +extern const tFont g_sFontCm18; +#define g_psFontCm18 (const tFont *)&g_sFontCm18 +extern const tFont g_sFontCm18b; +#define g_psFontCm18b (const tFont *)&g_sFontCm18b +extern const tFont g_sFontCm18i; +#define g_psFontCm18i (const tFont *)&g_sFontCm18i +extern const tFont g_sFontCm20; +#define g_psFontCm20 (const tFont *)&g_sFontCm20 +extern const tFont g_sFontCm20b; +#define g_psFontCm20b (const tFont *)&g_sFontCm20b +extern const tFont g_sFontCm20i; +#define g_psFontCm20i (const tFont *)&g_sFontCm20i +extern const tFont g_sFontCm22; +#define g_psFontCm22 (const tFont *)&g_sFontCm22 +extern const tFont g_sFontCm22b; +#define g_psFontCm22b (const tFont *)&g_sFontCm22b +extern const tFont g_sFontCm22i; +#define g_psFontCm22i (const tFont *)&g_sFontCm22i +extern const tFont g_sFontCm24; +#define g_psFontCm24 (const tFont *)&g_sFontCm24 +extern const tFont g_sFontCm24b; +#define g_psFontCm24b (const tFont *)&g_sFontCm24b +extern const tFont g_sFontCm24i; +#define g_psFontCm24i (const tFont *)&g_sFontCm24i +extern const tFont g_sFontCm26; +#define g_psFontCm26 (const tFont *)&g_sFontCm26 +extern const tFont g_sFontCm26b; +#define g_psFontCm26b (const tFont *)&g_sFontCm26b +extern const tFont g_sFontCm26i; +#define g_psFontCm26i (const tFont *)&g_sFontCm26i +extern const tFont g_sFontCm28; +#define g_psFontCm28 (const tFont *)&g_sFontCm28 +extern const tFont g_sFontCm28b; +#define g_psFontCm28b (const tFont *)&g_sFontCm28b +extern const tFont g_sFontCm28i; +#define g_psFontCm28i (const tFont *)&g_sFontCm28i +extern const tFont g_sFontCm30; +#define g_psFontCm30 (const tFont *)&g_sFontCm30 +extern const tFont g_sFontCm30b; +#define g_psFontCm30b (const tFont *)&g_sFontCm30b +extern const tFont g_sFontCm30i; +#define g_psFontCm30i (const tFont *)&g_sFontCm30i +extern const tFont g_sFontCm32; +#define g_psFontCm32 (const tFont *)&g_sFontCm32 +extern const tFont g_sFontCm32b; +#define g_psFontCm32b (const tFont *)&g_sFontCm32b +extern const tFont g_sFontCm32i; +#define g_psFontCm32i (const tFont *)&g_sFontCm32i +extern const tFont g_sFontCm34; +#define g_psFontCm34 (const tFont *)&g_sFontCm34 +extern const tFont g_sFontCm34b; +#define g_psFontCm34b (const tFont *)&g_sFontCm34b +extern const tFont g_sFontCm34i; +#define g_psFontCm34i (const tFont *)&g_sFontCm34i +extern const tFont g_sFontCm36; +#define g_psFontCm36 (const tFont *)&g_sFontCm36 +extern const tFont g_sFontCm36b; +#define g_psFontCm36b (const tFont *)&g_sFontCm36b +extern const tFont g_sFontCm36i; +#define g_psFontCm36i (const tFont *)&g_sFontCm36i +extern const tFont g_sFontCm38; +#define g_psFontCm38 (const tFont *)&g_sFontCm38 +extern const tFont g_sFontCm38b; +#define g_psFontCm38b (const tFont *)&g_sFontCm38b +extern const tFont g_sFontCm38i; +#define g_psFontCm38i (const tFont *)&g_sFontCm38i +extern const tFont g_sFontCm40; +#define g_psFontCm40 (const tFont *)&g_sFontCm40 +extern const tFont g_sFontCm40b; +#define g_psFontCm40b (const tFont *)&g_sFontCm40b +extern const tFont g_sFontCm40i; +#define g_psFontCm40i (const tFont *)&g_sFontCm40i +extern const tFont g_sFontCm42; +#define g_psFontCm42 (const tFont *)&g_sFontCm42 +extern const tFont g_sFontCm42b; +#define g_psFontCm42b (const tFont *)&g_sFontCm42b +extern const tFont g_sFontCm42i; +#define g_psFontCm42i (const tFont *)&g_sFontCm42i +extern const tFont g_sFontCm44; +#define g_psFontCm44 (const tFont *)&g_sFontCm44 +extern const tFont g_sFontCm44b; +#define g_psFontCm44b (const tFont *)&g_sFontCm44b +extern const tFont g_sFontCm44i; +#define g_psFontCm44i (const tFont *)&g_sFontCm44i +extern const tFont g_sFontCm46; +#define g_psFontCm46 (const tFont *)&g_sFontCm46 +extern const tFont g_sFontCm46b; +#define g_psFontCm46b (const tFont *)&g_sFontCm46b +extern const tFont g_sFontCm46i; +#define g_psFontCm46i (const tFont *)&g_sFontCm46i +extern const tFont g_sFontCm48; +#define g_psFontCm48 (const tFont *)&g_sFontCm48 +extern const tFont g_sFontCm48b; +#define g_psFontCm48b (const tFont *)&g_sFontCm48b +extern const tFont g_sFontCm48i; +#define g_psFontCm48i (const tFont *)&g_sFontCm48i +extern const tFont g_sFontCmsc12; +#define g_psFontCmsc12 (const tFont *)&g_sFontCmsc12 +extern const tFont g_sFontCmsc14; +#define g_psFontCmsc14 (const tFont *)&g_sFontCmsc14 +extern const tFont g_sFontCmsc16; +#define g_psFontCmsc16 (const tFont *)&g_sFontCmsc16 +extern const tFont g_sFontCmsc18; +#define g_psFontCmsc18 (const tFont *)&g_sFontCmsc18 +extern const tFont g_sFontCmsc20; +#define g_psFontCmsc20 (const tFont *)&g_sFontCmsc20 +extern const tFont g_sFontCmsc22; +#define g_psFontCmsc22 (const tFont *)&g_sFontCmsc22 +extern const tFont g_sFontCmsc24; +#define g_psFontCmsc24 (const tFont *)&g_sFontCmsc24 +extern const tFont g_sFontCmsc26; +#define g_psFontCmsc26 (const tFont *)&g_sFontCmsc26 +extern const tFont g_sFontCmsc28; +#define g_psFontCmsc28 (const tFont *)&g_sFontCmsc28 +extern const tFont g_sFontCmsc30; +#define g_psFontCmsc30 (const tFont *)&g_sFontCmsc30 +extern const tFont g_sFontCmsc32; +#define g_psFontCmsc32 (const tFont *)&g_sFontCmsc32 +extern const tFont g_sFontCmsc34; +#define g_psFontCmsc34 (const tFont *)&g_sFontCmsc34 +extern const tFont g_sFontCmsc36; +#define g_psFontCmsc36 (const tFont *)&g_sFontCmsc36 +extern const tFont g_sFontCmsc38; +#define g_psFontCmsc38 (const tFont *)&g_sFontCmsc38 +extern const tFont g_sFontCmsc40; +#define g_psFontCmsc40 (const tFont *)&g_sFontCmsc40 +extern const tFont g_sFontCmsc42; +#define g_psFontCmsc42 (const tFont *)&g_sFontCmsc42 +extern const tFont g_sFontCmsc44; +#define g_psFontCmsc44 (const tFont *)&g_sFontCmsc44 +extern const tFont g_sFontCmsc46; +#define g_psFontCmsc46 (const tFont *)&g_sFontCmsc46 +extern const tFont g_sFontCmsc48; +#define g_psFontCmsc48 (const tFont *)&g_sFontCmsc48 +extern const tFont g_sFontCmss12; +#define g_psFontCmss12 (const tFont *)&g_sFontCmss12 +extern const tFont g_sFontCmss12b; +#define g_psFontCmss12b (const tFont *)&g_sFontCmss12b +extern const tFont g_sFontCmss12i; +#define g_psFontCmss12i (const tFont *)&g_sFontCmss12i +extern const tFont g_sFontCmss14; +#define g_psFontCmss14 (const tFont *)&g_sFontCmss14 +extern const tFont g_sFontCmss14b; +#define g_psFontCmss14b (const tFont *)&g_sFontCmss14b +extern const tFont g_sFontCmss14i; +#define g_psFontCmss14i (const tFont *)&g_sFontCmss14i +extern const tFont g_sFontCmss16; +#define g_psFontCmss16 (const tFont *)&g_sFontCmss16 +extern const tFont g_sFontCmss16b; +#define g_psFontCmss16b (const tFont *)&g_sFontCmss16b +extern const tFont g_sFontCmss16i; +#define g_psFontCmss16i (const tFont *)&g_sFontCmss16i +extern const tFont g_sFontCmss18; +#define g_psFontCmss18 (const tFont *)&g_sFontCmss18 +extern const tFont g_sFontCmss18b; +#define g_psFontCmss18b (const tFont *)&g_sFontCmss18b +extern const tFont g_sFontCmss18i; +#define g_psFontCmss18i (const tFont *)&g_sFontCmss18i +extern const tFont g_sFontCmss20; +#define g_psFontCmss20 (const tFont *)&g_sFontCmss20 +extern const tFont g_sFontCmss20b; +#define g_psFontCmss20b (const tFont *)&g_sFontCmss20b +extern const tFont g_sFontCmss20i; +#define g_psFontCmss20i (const tFont *)&g_sFontCmss20i +extern const tFont g_sFontCmss22; +#define g_psFontCmss22 (const tFont *)&g_sFontCmss22 +extern const tFont g_sFontCmss22b; +#define g_psFontCmss22b (const tFont *)&g_sFontCmss22b +extern const tFont g_sFontCmss22i; +#define g_psFontCmss22i (const tFont *)&g_sFontCmss22i +extern const tFont g_sFontCmss24; +#define g_psFontCmss24 (const tFont *)&g_sFontCmss24 +extern const tFont g_sFontCmss24b; +#define g_psFontCmss24b (const tFont *)&g_sFontCmss24b +extern const tFont g_sFontCmss24i; +#define g_psFontCmss24i (const tFont *)&g_sFontCmss24i +extern const tFont g_sFontCmss26; +#define g_psFontCmss26 (const tFont *)&g_sFontCmss26 +extern const tFont g_sFontCmss26b; +#define g_psFontCmss26b (const tFont *)&g_sFontCmss26b +extern const tFont g_sFontCmss26i; +#define g_psFontCmss26i (const tFont *)&g_sFontCmss26i +extern const tFont g_sFontCmss28; +#define g_psFontCmss28 (const tFont *)&g_sFontCmss28 +extern const tFont g_sFontCmss28b; +#define g_psFontCmss28b (const tFont *)&g_sFontCmss28b +extern const tFont g_sFontCmss28i; +#define g_psFontCmss28i (const tFont *)&g_sFontCmss28i +extern const tFont g_sFontCmss30; +#define g_psFontCmss30 (const tFont *)&g_sFontCmss30 +extern const tFont g_sFontCmss30b; +#define g_psFontCmss30b (const tFont *)&g_sFontCmss30b +extern const tFont g_sFontCmss30i; +#define g_psFontCmss30i (const tFont *)&g_sFontCmss30i +extern const tFont g_sFontCmss32; +#define g_psFontCmss32 (const tFont *)&g_sFontCmss32 +extern const tFont g_sFontCmss32b; +#define g_psFontCmss32b (const tFont *)&g_sFontCmss32b +extern const tFont g_sFontCmss32i; +#define g_psFontCmss32i (const tFont *)&g_sFontCmss32i +extern const tFont g_sFontCmss34; +#define g_psFontCmss34 (const tFont *)&g_sFontCmss34 +extern const tFont g_sFontCmss34b; +#define g_psFontCmss34b (const tFont *)&g_sFontCmss34b +extern const tFont g_sFontCmss34i; +#define g_psFontCmss34i (const tFont *)&g_sFontCmss34i +extern const tFont g_sFontCmss36; +#define g_psFontCmss36 (const tFont *)&g_sFontCmss36 +extern const tFont g_sFontCmss36b; +#define g_psFontCmss36b (const tFont *)&g_sFontCmss36b +extern const tFont g_sFontCmss36i; +#define g_psFontCmss36i (const tFont *)&g_sFontCmss36i +extern const tFont g_sFontCmss38; +#define g_psFontCmss38 (const tFont *)&g_sFontCmss38 +extern const tFont g_sFontCmss38b; +#define g_psFontCmss38b (const tFont *)&g_sFontCmss38b +extern const tFont g_sFontCmss38i; +#define g_psFontCmss38i (const tFont *)&g_sFontCmss38i +extern const tFont g_sFontCmss40; +#define g_psFontCmss40 (const tFont *)&g_sFontCmss40 +extern const tFont g_sFontCmss40b; +#define g_psFontCmss40b (const tFont *)&g_sFontCmss40b +extern const tFont g_sFontCmss40i; +#define g_psFontCmss40i (const tFont *)&g_sFontCmss40i +extern const tFont g_sFontCmss42; +#define g_psFontCmss42 (const tFont *)&g_sFontCmss42 +extern const tFont g_sFontCmss42b; +#define g_psFontCmss42b (const tFont *)&g_sFontCmss42b +extern const tFont g_sFontCmss42i; +#define g_psFontCmss42i (const tFont *)&g_sFontCmss42i +extern const tFont g_sFontCmss44; +#define g_psFontCmss44 (const tFont *)&g_sFontCmss44 +extern const tFont g_sFontCmss44b; +#define g_psFontCmss44b (const tFont *)&g_sFontCmss44b +extern const tFont g_sFontCmss44i; +#define g_psFontCmss44i (const tFont *)&g_sFontCmss44i +extern const tFont g_sFontCmss46; +#define g_psFontCmss46 (const tFont *)&g_sFontCmss46 +extern const tFont g_sFontCmss46b; +#define g_psFontCmss46b (const tFont *)&g_sFontCmss46b +extern const tFont g_sFontCmss46i; +#define g_psFontCmss46i (const tFont *)&g_sFontCmss46i +extern const tFont g_sFontCmss48; +#define g_psFontCmss48 (const tFont *)&g_sFontCmss48 +extern const tFont g_sFontCmss48b; +#define g_psFontCmss48b (const tFont *)&g_sFontCmss48b +extern const tFont g_sFontCmss48i; +#define g_psFontCmss48i (const tFont *)&g_sFontCmss48i +extern const tFont g_sFontCmtt12; +#define g_psFontCmtt12 (const tFont *)&g_sFontCmtt12 +extern const tFont g_sFontCmtt14; +#define g_psFontCmtt14 (const tFont *)&g_sFontCmtt14 +extern const tFont g_sFontCmtt16; +#define g_psFontCmtt16 (const tFont *)&g_sFontCmtt16 +extern const tFont g_sFontCmtt18; +#define g_psFontCmtt18 (const tFont *)&g_sFontCmtt18 +extern const tFont g_sFontCmtt20; +#define g_psFontCmtt20 (const tFont *)&g_sFontCmtt20 +extern const tFont g_sFontCmtt22; +#define g_psFontCmtt22 (const tFont *)&g_sFontCmtt22 +extern const tFont g_sFontCmtt24; +#define g_psFontCmtt24 (const tFont *)&g_sFontCmtt24 +extern const tFont g_sFontCmtt26; +#define g_psFontCmtt26 (const tFont *)&g_sFontCmtt26 +extern const tFont g_sFontCmtt28; +#define g_psFontCmtt28 (const tFont *)&g_sFontCmtt28 +extern const tFont g_sFontCmtt30; +#define g_psFontCmtt30 (const tFont *)&g_sFontCmtt30 +extern const tFont g_sFontCmtt32; +#define g_psFontCmtt32 (const tFont *)&g_sFontCmtt32 +extern const tFont g_sFontCmtt34; +#define g_psFontCmtt34 (const tFont *)&g_sFontCmtt34 +extern const tFont g_sFontCmtt36; +#define g_psFontCmtt36 (const tFont *)&g_sFontCmtt36 +extern const tFont g_sFontCmtt38; +#define g_psFontCmtt38 (const tFont *)&g_sFontCmtt38 +extern const tFont g_sFontCmtt40; +#define g_psFontCmtt40 (const tFont *)&g_sFontCmtt40 +extern const tFont g_sFontCmtt42; +#define g_psFontCmtt42 (const tFont *)&g_sFontCmtt42 +extern const tFont g_sFontCmtt44; +#define g_psFontCmtt44 (const tFont *)&g_sFontCmtt44 +extern const tFont g_sFontCmtt46; +#define g_psFontCmtt46 (const tFont *)&g_sFontCmtt46 +extern const tFont g_sFontCmtt48; +#define g_psFontCmtt48 (const tFont *)&g_sFontCmtt48 +extern const tFont g_sFontFixed6x8; +#define g_psFontFixed6x8 (const tFont *)&g_sFontFixed6x8 + +//***************************************************************************** +// +// Language identifiers supported by the string table processing functions. +// +//***************************************************************************** +#define GrLangZhPRC 0x0804 // Chinese (PRC) +#define GrLangZhTW 0x0404 // Chinese (Taiwan) +#define GrLangEnUS 0x0409 // English (United States) +#define GrLangEnUK 0x0809 // English (United Kingdom) +#define GrLangEnAUS 0x0C09 // English (Australia) +#define GrLangEnCA 0x1009 // English (Canada) +#define GrLangEnNZ 0x1409 // English (New Zealand) +#define GrLangFr 0x040C // French (Standard) +#define GrLangDe 0x0407 // German (Standard) +#define GrLangHi 0x0439 // Hindi +#define GrLangIt 0x0410 // Italian (Standard) +#define GrLangJp 0x0411 // Japanese +#define GrLangKo 0x0412 // Korean +#define GrLangEsMX 0x080A // Spanish (Mexico) +#define GrLangEsSP 0x0C0A // Spanish (Spain) +#define GrLangSwKE 0x0441 // Swahili (Kenya) +#define GrLangUrIN 0x0820 // Urdu (India) +#define GrLangUrPK 0x0420 // Urdu (Pakistan) + +//***************************************************************************** +// +//! Translates a 24-bit RGB color to a display driver-specific color. +//! +//! \param psDisplay is the pointer to the display driver structure for the +//! display to operate upon. +//! \param ui32Value is the 24-bit RGB color. The least-significant byte is the +//! blue channel, the next byte is the green channel, and the third byte is the +//! red channel. +//! +//! This function translates a 24-bit RGB color into a value that can be +//! written into the display's frame buffer in order to reproduce that color, +//! or the closest possible approximation of that color. +//! +//! \return Returns the display-driver specific color. +// +//***************************************************************************** +#define DpyColorTranslate(psDisplay, ui32Value) \ + ((psDisplay)->pfnColorTranslate((psDisplay)->pvDisplayData, ui32Value)) + +//***************************************************************************** +// +//! Flushes cached drawing operations. +//! +//! \param psDisplay is the pointer to the display driver structure for the +//! display to operate upon. +//! +//! This function flushes any cached drawing operations on a display. +//! +//! \return None. +// +//***************************************************************************** +#define DpyFlush(psDisplay) \ + do \ + { \ + const tDisplay *pD = psDisplay; \ + pD->pfnFlush(pD->pvDisplayData); \ + } \ + while(0) + +//***************************************************************************** +// +//! Gets the height of the display. +//! +//! \param psDisplay is a pointer to the display driver structure for the +//! display to query. +//! +//! This function determines the height of the display. +//! +//! \return Returns the height of the display in pixels. +// +//***************************************************************************** +#define DpyHeightGet(psDisplay) \ + ((psDisplay)->ui16Height) + +//***************************************************************************** +// +//! Draws a horizontal line on a display. +//! +//! \param psDisplay is the pointer to the display driver structure for the +//! display to operate upon. +//! \param i32X1 is the starting X coordinate of the line. +//! \param i32X2 is the ending X coordinate of the line. +//! \param i32Y is the Y coordinate of the line. +//! \param ui32Value is the color to draw the line. +//! +//! This function draws a horizontal line on a display. This assumes that +//! clipping has already been performed, and that both end points of the line +//! are within the extents of the display. +//! +//! \return None. +// +//***************************************************************************** +#define DpyLineDrawH(psDisplay, i32X1, i32X2, i32Y, ui32Value) \ + do \ + { \ + const tDisplay *pD = psDisplay; \ + pD->pfnLineDrawH(pD->pvDisplayData, i32X1, i32X2, i32Y, \ + ui32Value); \ + } \ + while(0) + +//***************************************************************************** +// +//! Draws a vertical line on a display. +//! +//! \param psDisplay is the pointer to the display driver structure for the +//! display to operate upon. +//! \param i32X is the X coordinate of the line. +//! \param i32Y1 is the starting Y coordinate of the line. +//! \param i32Y2 is the ending Y coordinate of the line. +//! \param ui32Value is the color to draw the line. +//! +//! This function draws a vertical line on a display. This assumes that +//! clipping has already been performed, and that both end points of the line +//! are within the extents of the display. +//! +//! \return None. +// +//***************************************************************************** +#define DpyLineDrawV(psDisplay, i32X, i32Y1, i32Y2, ui32Value) \ + do \ + { \ + const tDisplay *pD = psDisplay; \ + pD->pfnLineDrawV(pD->pvDisplayData, i32X, i32Y1, i32Y2, \ + ui32Value); \ + } \ + while(0) + +//***************************************************************************** +// +//! Draws a pixel on a display. +//! +//! \param psDisplay is the pointer to the display driver structure for the +//! display to operate upon. +//! \param i32X is the X coordinate of the pixel. +//! \param i32Y is the Y coordinate of the pixel. +//! \param ui32Value is the color to draw the pixel. +//! +//! This function draws a pixel on a display. This assumes that clipping has +//! already been performed. +//! +//! \return None. +// +//***************************************************************************** +#define DpyPixelDraw(psDisplay, i32X, i32Y, ui32Value) \ + do \ + { \ + const tDisplay *pD = psDisplay; \ + pD->pfnPixelDraw(pD->pvDisplayData, i32X, i32Y, ui32Value); \ + } \ + while(0) + +//***************************************************************************** +// +//! Draws a horizontal sequence of pixels on a display. +//! +//! \param psDisplay is the pointer to the display driver structure for the +//! display to operate upon. +//! \param i32X is the X coordinate of the first pixel. +//! \param i32Y is the Y coordinate of the first pixel. +//! \param i32X0 is sub-pixel offset within the pixel data, which is valid for +//! 1 or 4 bit per pixel formats. +//! \param i32Count is the number of pixels to draw. +//! \param i32BPP is the number of bits per pixel; must be 1, 4, or 8. +//! \param pui8Data is a pointer to the pixel data. For 1 and 4 bit per pixel +//! formats, the most significant bit(s) represent the left-most pixel. +//! \param pui8Palette is a pointer to the palette used to draw the pixels. +//! +//! This function draws a horizontal sequence of pixels on a display, using the +//! supplied palette. For 1 bit per pixel format, the palette contains +//! pre-translated colors; for 4 and 8 bit per pixel formats, the palette +//! contains 24-bit RGB values that must be translated before being written to +//! the display. +//! +//! \return None. +// +//***************************************************************************** +#define DpyPixelDrawMultiple(psDisplay, i32X, i32Y, i32X0, i32Count, i32BPP, \ + pui8Data, pui8Palette) \ + do \ + { \ + const tDisplay *pD = psDisplay; \ + pD->pfnPixelDrawMultiple(pD->pvDisplayData, i32X, i32Y, i32X0, \ + i32Count, i32BPP, pui8Data, \ + pui8Palette); \ + } \ + while(0) + +//***************************************************************************** +// +//! Fills a rectangle on a display. +//! +//! \param psDisplay is the pointer to the display driver structure for the +//! display to operate upon. +//! \param psRect is a pointer to the structure describing the rectangle to +//! fill. +//! \param ui32Value is the color to fill the rectangle. +//! +//! This function fills a rectangle on the display. This assumes that clipping +//! has already been performed, and that all sides of the rectangle are within +//! the extents of the display. +//! +//! \return None. +// +//***************************************************************************** +#define DpyRectFill(psDisplay, psRect, ui32Value) \ + do \ + { \ + const tDisplay *pD = psDisplay; \ + pD->pfnRectFill(pD->pvDisplayData, psRect, ui32Value); \ + } \ + while(0) + +//***************************************************************************** +// +//! Gets the width of the display. +//! +//! \param psDisplay is a pointer to the display driver structure for the +//! display to query. +//! +//! This function determines the width of the display. +//! +//! \return Returns the width of the display in pixels. +// +//***************************************************************************** +#define DpyWidthGet(psDisplay) \ + ((psDisplay)->ui16Width) + +//***************************************************************************** +// +//! Determines if a point lies within a given rectangle. +//! +//! \param psRect is a pointer to the rectangle which the point is to be checked +//! against. +//! \param i32X is the X coordinate of the point to be checked. +//! \param i32Y is the Y coordinate of the point to be checked. +//! +//! This function determines whether point (i32X, i32Y) lies within the +//! rectangle described by \e psRect. +//! +//! \return Returns 1 if the point is within the rectangle or 0 otherwise. +// +//***************************************************************************** +#define GrRectContainsPoint(psRect, i32X, i32Y) \ + ((((i32X) >= (psRect)->i16XMin) && ((i32X) <= (psRect)->i16XMax) && \ + ((i32Y) >= (psRect)->i16YMin) && ((i32Y) <= (psRect)->i16YMax)) ? \ + 1 : 0) + +//***************************************************************************** +// +// Counts the number of zeros at the start of a word. +// +// \param x is the word whose leading zeros are to be counted. +// +// This macro uses compiler-specific constructs to perform an inline +// insertion of the "clz" instruction, which counts the leading zeros +// directly. +// +// \return Returns the number of leading 0 bits in the word provided. +// +//***************************************************************************** +#if defined(ewarm) +#include +#define NumLeadingZeros(x) __CLZ(x) +#endif +#if defined(codered) || defined(gcc) || defined(sourcerygxx) +#define NumLeadingZeros(x) __extension__ \ + ({ \ + register uint32_t __ret, __inp = x; \ + __asm__("clz %0, %1" : "=r" (__ret) : "r" (__inp)); \ + __ret; \ + }) +#endif +#if defined(rvmdk) || defined(__ARMCC_VERSION) +#define NumLeadingZeros(x) __clz(x) +#endif +#if defined(ccs) +// +// The CCS/TI compiler _norm intrinsic function will generate an inline CLZ +// instruction. +// +#define NumLeadingZeros(x) _norm(x) +#endif + +//***************************************************************************** +// +// Prototypes for the graphics library functions. +// +//***************************************************************************** +#ifndef GRLIB_REMOVE_WIDE_FONT_SUPPORT +extern void GrLibInit(const tGrLibDefaults *pDefaults); +#endif +extern void GrCircleDraw(const tContext *psContext, int32_t i32X, int32_t i32Y, + int32_t i32Radius); +extern void GrCircleFill(const tContext *psContext, int32_t i32X, int32_t i32Y, + int32_t i32Radius); +extern void GrContextClipRegionSet(tContext *psContext, tRectangle *psRect); +extern void GrContextInit(tContext *psContext, const tDisplay *psDisplay); +extern void GrImageDraw(const tContext *psContext, + const uint8_t *pui8Image, int32_t i32X, int32_t i32Y); +extern void GrTransparentImageDraw(const tContext *psContext, + const uint8_t *pui8Image, + int32_t i32X, int32_t i32Y, + uint32_t ui32Transparent); +extern void GrLineDraw(const tContext *psContext, int32_t i32X1, int32_t i32Y1, + int32_t i32X2, int32_t i32Y2); +extern void GrLineDrawH(const tContext *psContext, int32_t i32X1, int32_t i32X2, + int32_t i32Y); +extern void GrLineDrawV(const tContext *psContext, int32_t i32X, int32_t i32Y1, + int32_t i32Y2); +extern void GrOffScreen1BPPInit(tDisplay *psDisplay, uint8_t *pui8Image, + int32_t i32Width, int32_t i32Height); +extern void GrOffScreen4BPPInit(tDisplay *psDisplay, uint8_t *pui8Image, + int32_t i32Width, int32_t i32Height); +extern void GrOffScreen4BPPPaletteSet(tDisplay *psDisplay, + uint32_t *pui32Palette, + uint32_t ui32Offset, + uint32_t ui32Count); +extern void GrOffScreen8BPPInit(tDisplay *psDisplay, uint8_t *pui8Image, + int32_t i32Width, int32_t i32Height); +extern void GrOffScreen8BPPPaletteSet(tDisplay *psDisplay, + uint32_t *pui32Palette, + uint32_t ui32Offset, + uint32_t ui32Count); +extern void GrRectDraw(const tContext *psContext, const tRectangle *psRect); +extern void GrRectFill(const tContext *psContext, const tRectangle *psRect); +extern void GrStringDraw(const tContext *psContext, const char *pcString, + int32_t i32Length, int32_t i32X, int32_t i32Y, + uint32_t bOpaque); +extern int32_t GrStringWidthGet(const tContext *psContext, const char *pcString, + int32_t i32Length); +extern void GrStringTableSet(const void *pvTable); +uint32_t GrStringLanguageSet(uint16_t ui16LangID); +uint32_t GrStringGet(int32_t i32Index, char *pcData, uint32_t ui32Size); +extern int32_t GrRectOverlapCheck(tRectangle *psRect1, tRectangle *psRect2); +extern int32_t GrRectIntersectGet(tRectangle *psRect1, tRectangle *psRect2, + tRectangle *psIntersect); + +#ifndef GRLIB_REMOVE_WIDE_FONT_SUPPORT +//***************************************************************************** +// +// Font parsing functions. +// +//***************************************************************************** +extern void GrFontInfoGet(const tFont *psFont, uint8_t *pui8Format, + uint8_t *pui8MaxWidth, uint8_t *pui8Height, + uint8_t *pui8Baseline); +extern uint32_t GrFontMaxWidthGet(const tFont *psFont); +extern uint32_t GrFontHeightGet(const tFont *psFont); +extern uint32_t GrFontBaselineGet(const tFont *psFont); +extern const uint8_t *GrFontGlyphDataGet(const tFont *psFont, + uint32_t ui32CodePoint, + uint8_t *pui8Width); +extern uint16_t GrFontCodepageGet(const tFont *psFont); +extern uint16_t GrFontNumBlocksGet(const tFont *psFont); +extern uint32_t GrFontBlockCodepointsGet(const tFont *psFont, + uint16_t ui16BlockIndex, + uint32_t *pui32Start); + +//***************************************************************************** +// +// Low level string and font glyph rendering function. +// +//***************************************************************************** +void GrFontGlyphRender(const tContext *psContext, const uint8_t *pui8Data, + int32_t i32X, int32_t i32Y, bool bCompressed, + bool bOpaque); +void +GrDefaultStringRenderer(const tContext *psContext, const char *pcString, + int32_t i32Length, int32_t i32X, int32_t i32Y, + bool bOpaque); + +//***************************************************************************** +// +// Codepage translation functions. +// +//***************************************************************************** +extern void GrCodepageMapTableSet(tContext *psContext, + tCodePointMap *pCodePointMapTable, + uint8_t ui8NumMaps); +extern int32_t GrStringCodepageSet(tContext *psContext, + uint16_t ui16Codepage); +extern uint32_t GrStringRendererSet(tContext *psContext, + tStringRenderer pfnRenderer); +extern uint32_t GrStringNumGlyphsGet(const tContext *psContext, + const char *pcString); +extern uint32_t GrStringNextCharGet(const tContext *psContext, + const char *pcString, + uint32_t ui32Count, + uint32_t *pui32Skip); +extern uint32_t GrMapUnicode_Unicode(const char *pcSrcChar, + uint32_t ui32Count, + uint32_t *pui32Skip); +extern uint32_t GrMapUTF8_Unicode(const char *pcSrcChar, + uint32_t ui32Count, + uint32_t *pui32Skip); +extern uint32_t GrMapUTF16LE_Unicode(const char *pcSrcChar, + uint32_t ui32Count, + uint32_t *pui32Skip); +extern uint32_t GrMapUTF16BE_Unicode(const char *pcSrcChar, + uint32_t ui32Count, + uint32_t *pui32Skip); +extern uint32_t GrMapISO8859_1_Unicode(const char *pcSrcChar, + uint32_t ui32Count, + uint32_t *pui32Skip); +extern uint32_t GrMapISO8859_2_Unicode(const char *pcSrcChar, + uint32_t ui32Count, + uint32_t *pui32Skip); +extern uint32_t GrMapISO8859_3_Unicode(const char *pcSrcChar, + uint32_t ui32Count, + uint32_t *pui32Skip); +extern uint32_t GrMapISO8859_4_Unicode(const char *pcSrcChar, + uint32_t ui32Count, + uint32_t *pui32Skip); +extern uint32_t GrMapISO8859_5_Unicode(const char *pcSrcChar, + uint32_t ui32Count, + uint32_t *pui32Skip); +extern uint32_t GrMapISO8859_6_Unicode(const char *pcSrcChar, + uint32_t ui32Count, + uint32_t *pui32Skip); +extern uint32_t GrMapISO8859_7_Unicode(const char *pcSrcChar, + uint32_t ui32Count, + uint32_t *pui32Skip); +extern uint32_t GrMapISO8859_8_Unicode(const char *pcSrcChar, + uint32_t ui32Count, + uint32_t *pui32Skip); +extern uint32_t GrMapISO8859_9_Unicode(const char *pcSrcChar, + uint32_t ui32Count, + uint32_t *pui32Skip); +extern uint32_t GrMapISO8859_10_Unicode(const char *pcSrcChar, + uint32_t ui32Count, + uint32_t *pui32Skip); +extern uint32_t GrMapISO8859_11_Unicode(const char *pcSrcChar, + uint32_t ui32Count, + uint32_t *pui32Skip); +extern uint32_t GrMapISO8859_13_Unicode(const char *pcSrcChar, + uint32_t ui32Count, + uint32_t *pui32Skip); +extern uint32_t GrMapISO8859_14_Unicode(const char *pcSrcChar, + uint32_t ui32Count, + uint32_t *pui32Skip); +extern uint32_t GrMapISO8859_15_Unicode(const char *pcSrcChar, + uint32_t ui32Count, + uint32_t *pui32Skip); +extern uint32_t GrMapISO8859_16_Unicode(const char *pcSrcChar, + uint32_t ui32Count, + uint32_t *pui32Skip); +extern uint32_t GrMapWIN1250_Unicode(const char *pcSrcChar, + uint32_t ui32Count, + uint32_t *pui32Skip); +extern uint32_t GrMapWIN1251_Unicode(const char *pcSrcChar, + uint32_t ui32Count, + uint32_t *pui32Skip); +extern uint32_t GrMapWIN1252_Unicode(const char *pcSrcChar, + uint32_t ui32Count, + uint32_t *pui32Skip); +extern uint32_t GrMapWIN1253_Unicode(const char *pcSrcChar, + uint32_t ui32Count, + uint32_t *pui32Skip); +extern uint32_t GrMapWIN1254_Unicode(const char *pcSrcChar, + uint32_t ui32Count, + uint32_t *pui32Skip); + +//***************************************************************************** +// +// A helpful #define that maps any 8 bit source codepage to itself. This can +// be used for any 8 bit source encoding when the font being used is encoded +// using the same codepage, for example ISO8859-5 text with an ISO8859-5 font. +// It just so happens that the ISO8859-1 to Unicode mapping function provides +// exactly what is required here since there is a 1:1 mapping of ISO8859-1 +// codepoints to the first 256 Unicode characters. +// +//***************************************************************************** +#define GrMap8BitIdentity GrMapISO8859_1_Unicode + +#endif + +//***************************************************************************** +// +// Mark the end of the C bindings section for C++ compilers. +// +//***************************************************************************** +#ifdef __cplusplus +} +#endif + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** + +#endif // __GRLIB_H__ diff --git a/grlib/grlib.uvopt b/grlib/grlib.uvopt new file mode 100644 index 0000000..5729b60 --- /dev/null +++ b/grlib/grlib.uvopt @@ -0,0 +1,2652 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + grlib + 0x4 + ARM-ADS + + 8000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\rvmdk\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + + 0 + Data Sheet + DATASHTS\Luminary\TM4C1230C3PM.PDF + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 3 + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + 0 + lmidk-agdi + -O4622 -S3 -FO29 + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + Source + 1 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\canvas.c + canvas.c + + + 1 + 2 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\charmap.c + charmap.c + + + 1 + 3 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\checkbox.c + checkbox.c + + + 1 + 4 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\circle.c + circle.c + + + 1 + 5 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\container.c + container.c + + + 1 + 6 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\context.c + context.c + + + 1 + 7 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm12.c + fontcm12.c + + + 1 + 8 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm12b.c + fontcm12b.c + + + 1 + 9 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm12i.c + fontcm12i.c + + + 1 + 10 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm14.c + fontcm14.c + + + 1 + 11 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm14b.c + fontcm14b.c + + + 1 + 12 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm14i.c + fontcm14i.c + + + 1 + 13 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm16.c + fontcm16.c + + + 1 + 14 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm16b.c + fontcm16b.c + + + 1 + 15 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm16i.c + fontcm16i.c + + + 1 + 16 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm18.c + fontcm18.c + + + 1 + 17 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm18b.c + fontcm18b.c + + + 1 + 18 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm18i.c + fontcm18i.c + + + 1 + 19 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm20.c + fontcm20.c + + + 1 + 20 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm20b.c + fontcm20b.c + + + 1 + 21 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm20i.c + fontcm20i.c + + + 1 + 22 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm22.c + fontcm22.c + + + 1 + 23 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm22b.c + fontcm22b.c + + + 1 + 24 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm22i.c + fontcm22i.c + + + 1 + 25 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm24.c + fontcm24.c + + + 1 + 26 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm24b.c + fontcm24b.c + + + 1 + 27 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm24i.c + fontcm24i.c + + + 1 + 28 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm26.c + fontcm26.c + + + 1 + 29 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm26b.c + fontcm26b.c + + + 1 + 30 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm26i.c + fontcm26i.c + + + 1 + 31 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm28.c + fontcm28.c + + + 1 + 32 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm28b.c + fontcm28b.c + + + 1 + 33 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm28i.c + fontcm28i.c + + + 1 + 34 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm30.c + fontcm30.c + + + 1 + 35 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm30b.c + fontcm30b.c + + + 1 + 36 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm30i.c + fontcm30i.c + + + 1 + 37 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm32.c + fontcm32.c + + + 1 + 38 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm32b.c + fontcm32b.c + + + 1 + 39 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm32i.c + fontcm32i.c + + + 1 + 40 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm34.c + fontcm34.c + + + 1 + 41 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm34b.c + fontcm34b.c + + + 1 + 42 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm34i.c + fontcm34i.c + + + 1 + 43 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm36.c + fontcm36.c + + + 1 + 44 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm36b.c + fontcm36b.c + + + 1 + 45 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm36i.c + fontcm36i.c + + + 1 + 46 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm38.c + fontcm38.c + + + 1 + 47 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm38b.c + fontcm38b.c + + + 1 + 48 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm38i.c + fontcm38i.c + + + 1 + 49 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm40.c + fontcm40.c + + + 1 + 50 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm40b.c + fontcm40b.c + + + 1 + 51 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm40i.c + fontcm40i.c + + + 1 + 52 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm42.c + fontcm42.c + + + 1 + 53 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm42b.c + fontcm42b.c + + + 1 + 54 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm42i.c + fontcm42i.c + + + 1 + 55 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm44.c + fontcm44.c + + + 1 + 56 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm44b.c + fontcm44b.c + + + 1 + 57 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm44i.c + fontcm44i.c + + + 1 + 58 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm46.c + fontcm46.c + + + 1 + 59 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm46b.c + fontcm46b.c + + + 1 + 60 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm46i.c + fontcm46i.c + + + 1 + 61 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm48.c + fontcm48.c + + + 1 + 62 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm48b.c + fontcm48b.c + + + 1 + 63 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcm48i.c + fontcm48i.c + + + 1 + 64 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmsc12.c + fontcmsc12.c + + + 1 + 65 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmsc14.c + fontcmsc14.c + + + 1 + 66 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmsc16.c + fontcmsc16.c + + + 1 + 67 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmsc18.c + fontcmsc18.c + + + 1 + 68 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmsc20.c + fontcmsc20.c + + + 1 + 69 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmsc22.c + fontcmsc22.c + + + 1 + 70 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmsc24.c + fontcmsc24.c + + + 1 + 71 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmsc26.c + fontcmsc26.c + + + 1 + 72 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmsc28.c + fontcmsc28.c + + + 1 + 73 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmsc30.c + fontcmsc30.c + + + 1 + 74 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmsc32.c + fontcmsc32.c + + + 1 + 75 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmsc34.c + fontcmsc34.c + + + 1 + 76 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmsc36.c + fontcmsc36.c + + + 1 + 77 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmsc38.c + fontcmsc38.c + + + 1 + 78 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmsc40.c + fontcmsc40.c + + + 1 + 79 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmsc42.c + fontcmsc42.c + + + 1 + 80 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmsc44.c + fontcmsc44.c + + + 1 + 81 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmsc46.c + fontcmsc46.c + + + 1 + 82 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmsc48.c + fontcmsc48.c + + + 1 + 83 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss12.c + fontcmss12.c + + + 1 + 84 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss12b.c + fontcmss12b.c + + + 1 + 85 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss12i.c + fontcmss12i.c + + + 1 + 86 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss14.c + fontcmss14.c + + + 1 + 87 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss14b.c + fontcmss14b.c + + + 1 + 88 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss14i.c + fontcmss14i.c + + + 1 + 89 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss16.c + fontcmss16.c + + + 1 + 90 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss16b.c + fontcmss16b.c + + + 1 + 91 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss16i.c + fontcmss16i.c + + + 1 + 92 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss18.c + fontcmss18.c + + + 1 + 93 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss18b.c + fontcmss18b.c + + + 1 + 94 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss18i.c + fontcmss18i.c + + + 1 + 95 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss20.c + fontcmss20.c + + + 1 + 96 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss20b.c + fontcmss20b.c + + + 1 + 97 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss20i.c + fontcmss20i.c + + + 1 + 98 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss22.c + fontcmss22.c + + + 1 + 99 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss22b.c + fontcmss22b.c + + + 1 + 100 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss22i.c + fontcmss22i.c + + + 1 + 101 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss24.c + fontcmss24.c + + + 1 + 102 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss24b.c + fontcmss24b.c + + + 1 + 103 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss24i.c + fontcmss24i.c + + + 1 + 104 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss26.c + fontcmss26.c + + + 1 + 105 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss26b.c + fontcmss26b.c + + + 1 + 106 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss26i.c + fontcmss26i.c + + + 1 + 107 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss28.c + fontcmss28.c + + + 1 + 108 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss28b.c + fontcmss28b.c + + + 1 + 109 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss28i.c + fontcmss28i.c + + + 1 + 110 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss30.c + fontcmss30.c + + + 1 + 111 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss30b.c + fontcmss30b.c + + + 1 + 112 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss30i.c + fontcmss30i.c + + + 1 + 113 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss32.c + fontcmss32.c + + + 1 + 114 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss32b.c + fontcmss32b.c + + + 1 + 115 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss32i.c + fontcmss32i.c + + + 1 + 116 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss34.c + fontcmss34.c + + + 1 + 117 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss34b.c + fontcmss34b.c + + + 1 + 118 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss34i.c + fontcmss34i.c + + + 1 + 119 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss36.c + fontcmss36.c + + + 1 + 120 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss36b.c + fontcmss36b.c + + + 1 + 121 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss36i.c + fontcmss36i.c + + + 1 + 122 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss38.c + fontcmss38.c + + + 1 + 123 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss38b.c + fontcmss38b.c + + + 1 + 124 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss38i.c + fontcmss38i.c + + + 1 + 125 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss40.c + fontcmss40.c + + + 1 + 126 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss40b.c + fontcmss40b.c + + + 1 + 127 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss40i.c + fontcmss40i.c + + + 1 + 128 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss42.c + fontcmss42.c + + + 1 + 129 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss42b.c + fontcmss42b.c + + + 1 + 130 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss42i.c + fontcmss42i.c + + + 1 + 131 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss44.c + fontcmss44.c + + + 1 + 132 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss44b.c + fontcmss44b.c + + + 1 + 133 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss44i.c + fontcmss44i.c + + + 1 + 134 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss46.c + fontcmss46.c + + + 1 + 135 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss46b.c + fontcmss46b.c + + + 1 + 136 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss46i.c + fontcmss46i.c + + + 1 + 137 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss48.c + fontcmss48.c + + + 1 + 138 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss48b.c + fontcmss48b.c + + + 1 + 139 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmss48i.c + fontcmss48i.c + + + 1 + 140 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmtt12.c + fontcmtt12.c + + + 1 + 141 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmtt14.c + fontcmtt14.c + + + 1 + 142 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmtt16.c + fontcmtt16.c + + + 1 + 143 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmtt18.c + fontcmtt18.c + + + 1 + 144 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmtt20.c + fontcmtt20.c + + + 1 + 145 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmtt22.c + fontcmtt22.c + + + 1 + 146 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmtt24.c + fontcmtt24.c + + + 1 + 147 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmtt26.c + fontcmtt26.c + + + 1 + 148 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmtt28.c + fontcmtt28.c + + + 1 + 149 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmtt30.c + fontcmtt30.c + + + 1 + 150 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmtt32.c + fontcmtt32.c + + + 1 + 151 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmtt34.c + fontcmtt34.c + + + 1 + 152 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmtt36.c + fontcmtt36.c + + + 1 + 153 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmtt38.c + fontcmtt38.c + + + 1 + 154 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmtt40.c + fontcmtt40.c + + + 1 + 155 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmtt42.c + fontcmtt42.c + + + 1 + 156 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmtt44.c + fontcmtt44.c + + + 1 + 157 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmtt46.c + fontcmtt46.c + + + 1 + 158 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontcmtt48.c + fontcmtt48.c + + + 1 + 159 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\fonts\fontfixed6x8.c + fontfixed6x8.c + + + 1 + 160 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\image.c + image.c + + + 1 + 161 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\imgbutton.c + imgbutton.c + + + 1 + 162 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\keyboard.c + keyboard.c + + + 1 + 163 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\line.c + line.c + + + 1 + 164 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\listbox.c + listbox.c + + + 1 + 165 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\offscr1bpp.c + offscr1bpp.c + + + 1 + 166 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\offscr4bpp.c + offscr4bpp.c + + + 1 + 167 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\offscr8bpp.c + offscr8bpp.c + + + 1 + 168 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\pushbutton.c + pushbutton.c + + + 1 + 169 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\radiobutton.c + radiobutton.c + + + 1 + 170 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\rectangle.c + rectangle.c + + + 1 + 171 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\slider.c + slider.c + + + 1 + 172 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\string.c + string.c + + + 1 + 173 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\widget.c + widget.c + + + + + Documentation + 1 + 0 + 0 + + 2 + 174 + 5 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + .\readme.txt + readme.txt + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 0 + 0 + 729 + 300 + + + + + + + 1 + 0 + + 100 + 0 + + + .\readme.txt + 0 + 1 + 1 + + + + + +
diff --git a/grlib/grlib.uvproj b/grlib/grlib.uvproj new file mode 100644 index 0000000..332a21d --- /dev/null +++ b/grlib/grlib.uvproj @@ -0,0 +1,1270 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + grlib + 0x4 + ARM-ADS + + + TM4C1230C3PM + Texas Instruments + IRAM(0x20000000-0x20002FFF) IROM(0-0x7FFF) CLOCK(8000000) CPUTYPE("Cortex-M4") FPU2 + + "STARTUP\Luminary\Startup.s" ("Luminary Startup Code") + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_32 -FS00 -FL08000) + 5919 + LM4Fxxxx.H + + + + + + + + + + SFD\Luminary\TM4C1230C3PM.SFR + 0 + + + + Luminary\ + Luminary\ + + 0 + 0 + 0 + 0 + 1 + + .\rvmdk\ + grlib + 0 + 1 + 0 + 1 + 1 + .\rvmdk\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + + 0 + 3 + + + + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + + 1 + 0 + 0 + 0 + 1 + 4097 + + BIN\lmidk-agdi.dll + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x3000 + + + 1 + 0x0 + 0x8000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x8000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x3000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + --c99 + rvmdk + + ..; + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + + + + + + + + + + + + Source + + + canvas.c + 1 + .\canvas.c + + + charmap.c + 1 + .\charmap.c + + + checkbox.c + 1 + .\checkbox.c + + + circle.c + 1 + .\circle.c + + + container.c + 1 + .\container.c + + + context.c + 1 + .\context.c + + + fontcm12.c + 1 + .\fonts\fontcm12.c + + + fontcm12b.c + 1 + .\fonts\fontcm12b.c + + + fontcm12i.c + 1 + .\fonts\fontcm12i.c + + + fontcm14.c + 1 + .\fonts\fontcm14.c + + + fontcm14b.c + 1 + .\fonts\fontcm14b.c + + + fontcm14i.c + 1 + .\fonts\fontcm14i.c + + + fontcm16.c + 1 + .\fonts\fontcm16.c + + + fontcm16b.c + 1 + .\fonts\fontcm16b.c + + + fontcm16i.c + 1 + .\fonts\fontcm16i.c + + + fontcm18.c + 1 + .\fonts\fontcm18.c + + + fontcm18b.c + 1 + .\fonts\fontcm18b.c + + + fontcm18i.c + 1 + .\fonts\fontcm18i.c + + + fontcm20.c + 1 + .\fonts\fontcm20.c + + + fontcm20b.c + 1 + .\fonts\fontcm20b.c + + + fontcm20i.c + 1 + .\fonts\fontcm20i.c + + + fontcm22.c + 1 + .\fonts\fontcm22.c + + + fontcm22b.c + 1 + .\fonts\fontcm22b.c + + + fontcm22i.c + 1 + .\fonts\fontcm22i.c + + + fontcm24.c + 1 + .\fonts\fontcm24.c + + + fontcm24b.c + 1 + .\fonts\fontcm24b.c + + + fontcm24i.c + 1 + .\fonts\fontcm24i.c + + + fontcm26.c + 1 + .\fonts\fontcm26.c + + + fontcm26b.c + 1 + .\fonts\fontcm26b.c + + + fontcm26i.c + 1 + .\fonts\fontcm26i.c + + + fontcm28.c + 1 + .\fonts\fontcm28.c + + + fontcm28b.c + 1 + .\fonts\fontcm28b.c + + + fontcm28i.c + 1 + .\fonts\fontcm28i.c + + + fontcm30.c + 1 + .\fonts\fontcm30.c + + + fontcm30b.c + 1 + .\fonts\fontcm30b.c + + + fontcm30i.c + 1 + .\fonts\fontcm30i.c + + + fontcm32.c + 1 + .\fonts\fontcm32.c + + + fontcm32b.c + 1 + .\fonts\fontcm32b.c + + + fontcm32i.c + 1 + .\fonts\fontcm32i.c + + + fontcm34.c + 1 + .\fonts\fontcm34.c + + + fontcm34b.c + 1 + .\fonts\fontcm34b.c + + + fontcm34i.c + 1 + .\fonts\fontcm34i.c + + + fontcm36.c + 1 + .\fonts\fontcm36.c + + + fontcm36b.c + 1 + .\fonts\fontcm36b.c + + + fontcm36i.c + 1 + .\fonts\fontcm36i.c + + + fontcm38.c + 1 + .\fonts\fontcm38.c + + + fontcm38b.c + 1 + .\fonts\fontcm38b.c + + + fontcm38i.c + 1 + .\fonts\fontcm38i.c + + + fontcm40.c + 1 + .\fonts\fontcm40.c + + + fontcm40b.c + 1 + .\fonts\fontcm40b.c + + + fontcm40i.c + 1 + .\fonts\fontcm40i.c + + + fontcm42.c + 1 + .\fonts\fontcm42.c + + + fontcm42b.c + 1 + .\fonts\fontcm42b.c + + + fontcm42i.c + 1 + .\fonts\fontcm42i.c + + + fontcm44.c + 1 + .\fonts\fontcm44.c + + + fontcm44b.c + 1 + .\fonts\fontcm44b.c + + + fontcm44i.c + 1 + .\fonts\fontcm44i.c + + + fontcm46.c + 1 + .\fonts\fontcm46.c + + + fontcm46b.c + 1 + .\fonts\fontcm46b.c + + + fontcm46i.c + 1 + .\fonts\fontcm46i.c + + + fontcm48.c + 1 + .\fonts\fontcm48.c + + + fontcm48b.c + 1 + .\fonts\fontcm48b.c + + + fontcm48i.c + 1 + .\fonts\fontcm48i.c + + + fontcmsc12.c + 1 + .\fonts\fontcmsc12.c + + + fontcmsc14.c + 1 + .\fonts\fontcmsc14.c + + + fontcmsc16.c + 1 + .\fonts\fontcmsc16.c + + + fontcmsc18.c + 1 + .\fonts\fontcmsc18.c + + + fontcmsc20.c + 1 + .\fonts\fontcmsc20.c + + + fontcmsc22.c + 1 + .\fonts\fontcmsc22.c + + + fontcmsc24.c + 1 + .\fonts\fontcmsc24.c + + + fontcmsc26.c + 1 + .\fonts\fontcmsc26.c + + + fontcmsc28.c + 1 + .\fonts\fontcmsc28.c + + + fontcmsc30.c + 1 + .\fonts\fontcmsc30.c + + + fontcmsc32.c + 1 + .\fonts\fontcmsc32.c + + + fontcmsc34.c + 1 + .\fonts\fontcmsc34.c + + + fontcmsc36.c + 1 + .\fonts\fontcmsc36.c + + + fontcmsc38.c + 1 + .\fonts\fontcmsc38.c + + + fontcmsc40.c + 1 + .\fonts\fontcmsc40.c + + + fontcmsc42.c + 1 + .\fonts\fontcmsc42.c + + + fontcmsc44.c + 1 + .\fonts\fontcmsc44.c + + + fontcmsc46.c + 1 + .\fonts\fontcmsc46.c + + + fontcmsc48.c + 1 + .\fonts\fontcmsc48.c + + + fontcmss12.c + 1 + .\fonts\fontcmss12.c + + + fontcmss12b.c + 1 + .\fonts\fontcmss12b.c + + + fontcmss12i.c + 1 + .\fonts\fontcmss12i.c + + + fontcmss14.c + 1 + .\fonts\fontcmss14.c + + + fontcmss14b.c + 1 + .\fonts\fontcmss14b.c + + + fontcmss14i.c + 1 + .\fonts\fontcmss14i.c + + + fontcmss16.c + 1 + .\fonts\fontcmss16.c + + + fontcmss16b.c + 1 + .\fonts\fontcmss16b.c + + + fontcmss16i.c + 1 + .\fonts\fontcmss16i.c + + + fontcmss18.c + 1 + .\fonts\fontcmss18.c + + + fontcmss18b.c + 1 + .\fonts\fontcmss18b.c + + + fontcmss18i.c + 1 + .\fonts\fontcmss18i.c + + + fontcmss20.c + 1 + .\fonts\fontcmss20.c + + + fontcmss20b.c + 1 + .\fonts\fontcmss20b.c + + + fontcmss20i.c + 1 + .\fonts\fontcmss20i.c + + + fontcmss22.c + 1 + .\fonts\fontcmss22.c + + + fontcmss22b.c + 1 + .\fonts\fontcmss22b.c + + + fontcmss22i.c + 1 + .\fonts\fontcmss22i.c + + + fontcmss24.c + 1 + .\fonts\fontcmss24.c + + + fontcmss24b.c + 1 + .\fonts\fontcmss24b.c + + + fontcmss24i.c + 1 + .\fonts\fontcmss24i.c + + + fontcmss26.c + 1 + .\fonts\fontcmss26.c + + + fontcmss26b.c + 1 + .\fonts\fontcmss26b.c + + + fontcmss26i.c + 1 + .\fonts\fontcmss26i.c + + + fontcmss28.c + 1 + .\fonts\fontcmss28.c + + + fontcmss28b.c + 1 + .\fonts\fontcmss28b.c + + + fontcmss28i.c + 1 + .\fonts\fontcmss28i.c + + + fontcmss30.c + 1 + .\fonts\fontcmss30.c + + + fontcmss30b.c + 1 + .\fonts\fontcmss30b.c + + + fontcmss30i.c + 1 + .\fonts\fontcmss30i.c + + + fontcmss32.c + 1 + .\fonts\fontcmss32.c + + + fontcmss32b.c + 1 + .\fonts\fontcmss32b.c + + + fontcmss32i.c + 1 + .\fonts\fontcmss32i.c + + + fontcmss34.c + 1 + .\fonts\fontcmss34.c + + + fontcmss34b.c + 1 + .\fonts\fontcmss34b.c + + + fontcmss34i.c + 1 + .\fonts\fontcmss34i.c + + + fontcmss36.c + 1 + .\fonts\fontcmss36.c + + + fontcmss36b.c + 1 + .\fonts\fontcmss36b.c + + + fontcmss36i.c + 1 + .\fonts\fontcmss36i.c + + + fontcmss38.c + 1 + .\fonts\fontcmss38.c + + + fontcmss38b.c + 1 + .\fonts\fontcmss38b.c + + + fontcmss38i.c + 1 + .\fonts\fontcmss38i.c + + + fontcmss40.c + 1 + .\fonts\fontcmss40.c + + + fontcmss40b.c + 1 + .\fonts\fontcmss40b.c + + + fontcmss40i.c + 1 + .\fonts\fontcmss40i.c + + + fontcmss42.c + 1 + .\fonts\fontcmss42.c + + + fontcmss42b.c + 1 + .\fonts\fontcmss42b.c + + + fontcmss42i.c + 1 + .\fonts\fontcmss42i.c + + + fontcmss44.c + 1 + .\fonts\fontcmss44.c + + + fontcmss44b.c + 1 + .\fonts\fontcmss44b.c + + + fontcmss44i.c + 1 + .\fonts\fontcmss44i.c + + + fontcmss46.c + 1 + .\fonts\fontcmss46.c + + + fontcmss46b.c + 1 + .\fonts\fontcmss46b.c + + + fontcmss46i.c + 1 + .\fonts\fontcmss46i.c + + + fontcmss48.c + 1 + .\fonts\fontcmss48.c + + + fontcmss48b.c + 1 + .\fonts\fontcmss48b.c + + + fontcmss48i.c + 1 + .\fonts\fontcmss48i.c + + + fontcmtt12.c + 1 + .\fonts\fontcmtt12.c + + + fontcmtt14.c + 1 + .\fonts\fontcmtt14.c + + + fontcmtt16.c + 1 + .\fonts\fontcmtt16.c + + + fontcmtt18.c + 1 + .\fonts\fontcmtt18.c + + + fontcmtt20.c + 1 + .\fonts\fontcmtt20.c + + + fontcmtt22.c + 1 + .\fonts\fontcmtt22.c + + + fontcmtt24.c + 1 + .\fonts\fontcmtt24.c + + + fontcmtt26.c + 1 + .\fonts\fontcmtt26.c + + + fontcmtt28.c + 1 + .\fonts\fontcmtt28.c + + + fontcmtt30.c + 1 + .\fonts\fontcmtt30.c + + + fontcmtt32.c + 1 + .\fonts\fontcmtt32.c + + + fontcmtt34.c + 1 + .\fonts\fontcmtt34.c + + + fontcmtt36.c + 1 + .\fonts\fontcmtt36.c + + + fontcmtt38.c + 1 + .\fonts\fontcmtt38.c + + + fontcmtt40.c + 1 + .\fonts\fontcmtt40.c + + + fontcmtt42.c + 1 + .\fonts\fontcmtt42.c + + + fontcmtt44.c + 1 + .\fonts\fontcmtt44.c + + + fontcmtt46.c + 1 + .\fonts\fontcmtt46.c + + + fontcmtt48.c + 1 + .\fonts\fontcmtt48.c + + + fontfixed6x8.c + 1 + .\fonts\fontfixed6x8.c + + + image.c + 1 + .\image.c + + + imgbutton.c + 1 + .\imgbutton.c + + + keyboard.c + 1 + .\keyboard.c + + + line.c + 1 + .\line.c + + + listbox.c + 1 + .\listbox.c + + + offscr1bpp.c + 1 + .\offscr1bpp.c + + + offscr4bpp.c + 1 + .\offscr4bpp.c + + + offscr8bpp.c + 1 + .\offscr8bpp.c + + + pushbutton.c + 1 + .\pushbutton.c + + + radiobutton.c + 1 + .\radiobutton.c + + + rectangle.c + 1 + .\rectangle.c + + + slider.c + 1 + .\slider.c + + + string.c + 1 + .\string.c + + + widget.c + 1 + .\widget.c + + + + + Documentation + + + readme.txt + 5 + .\readme.txt + + + + + + + +
diff --git a/grlib/image.c b/grlib/image.c new file mode 100644 index 0000000..1dc6ec2 --- /dev/null +++ b/grlib/image.c @@ -0,0 +1,1072 @@ +//***************************************************************************** +// +// image.c - Routines for drawing bitmap images. +// +// Copyright (c) 2008-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#include +#include +#include "inc/hw_types.h" +#include "driverlib/debug.h" +#include "grlib/grlib.h" + +//***************************************************************************** +// +//! \addtogroup primitives_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +// The buffer that holds the dictionary used by the Lempel-Ziv-Storer-Szymanski +// compression algorithm. This is simply the last 32 bytes decoded from the +// stream, and is initially filled with zeros. +// +//***************************************************************************** +static uint8_t g_pui8Dictionary[32]; + +//***************************************************************************** +// +// Draws a run of pixels, dropping out any in a given transparent color. +// Returns true if any pixels were drawn or false if none were drawn. +// +//***************************************************************************** +static bool +PixelTransparentDraw(const tContext *pContext, int32_t i32X, int32_t i32Y, + int32_t i32X0, int32_t i32Count, int32_t i32BPP, + const uint8_t *pui8Data, const uint8_t *pui8Palette, + uint32_t ui32Transparent) +{ + int32_t i32Start, i32Len, i32Index, i32StartX0, i32On, i32Off; + int32_t i32NumBytes, i32Bit, i32Draw; + uint32_t ui32Mask; + uint8_t ui8Pixel; + bool bSkip, bRet; + + // + // Assume we drew no pixels until we determine otherwise. + // + bRet = false; + + // + // What format are we dealing with? + // + switch(i32BPP & 0xFF) + { + // + // Two color bitmap. + // + case 1: + { + // + // How many bytes do we need to read to cover the line of data + // we've been passed. + // + i32NumBytes = (i32Count + i32X0 + 7) / 8; + + // + // Where must we end the line of pixels? + // + i32Len = i32Count; + + // + // Set our mask to allow us to make either foreground or background + // pixels transparent. + // + ui32Mask = ui32Transparent ? 0xFF : 0; + + // + // Loop through the bytes in the pixel data. + // + i32Bit = i32X0; + i32X0 = 0; + for(i32Index = 0; i32Index < i32NumBytes; ) + { + // + // Count the number of off pixels from this position in the + // glyph image. + // + for(i32Off = 0; i32Index < i32NumBytes; ) + { + // + // Get the number of zero pixels at this position. + // + i32Count = NumLeadingZeros(((pui8Data[i32Index] ^ + ui32Mask) << + (24 + i32Bit))); + + // + // If there were more than 8, then it is a "false" result + // since it counted beyond the end of the current byte. + // Therefore, simply limit it to the number of pixels + // remaining in this byte. + // + if(i32Count > 8) + { + i32Count = 8 - i32Bit; + } + + // + // Increment the number of off pixels. + // + i32Off += i32Count; + + // + // Increment the bit position within the byte. + // + i32Bit += i32Count; + + // + // See if the end of the byte has been reached. + // + if(i32Bit == 8) + { + // + // Advance to the next byte and continue counting off + // pixels. + // + i32Bit = 0; + i32Index++; + } + else + { + // + // Since the end of the byte was not reached, there + // must be an on pixel. Therefore, stop counting off + // pixels. + // + break; + } + } + + // + // Count the number of on pixels from this position in the + // glyph image. + // + for(i32On = 0; i32Index < i32NumBytes; ) + { + // + // Get the number of one pixels at this location (by + // inverting the data and counting the number of zeros). + // + i32Count = NumLeadingZeros(~(((pui8Data[i32Index] ^ + ui32Mask) << + (24 + i32Bit)))); + + // + // If there were more than 8, then it is a "false" result + // since it counted beyond the end of the current byte. + // Therefore, simply limit it to the number of pixels + // remaining in this byte. + // + if(i32Count > 8) + { + i32Count = 8 - i32Bit; + } + + // + // Increment the number of on pixels. + // + i32On += i32Count; + + // + // Increment the bit position within the byte. + // + i32Bit += i32Count; + + // + // See if the end of the byte has been reached. + // + if(i32Bit == 8) + { + // + // Advance to the next byte and continue counting on + // pixels. + // + i32Bit = 0; + i32Index++; + } + else + { + // + // Since the end of the byte was not reached, there + // must be an off pixel. Therefore, stop counting on + // pixels. + // + break; + } + } + + // + // At this point, we have the next off and on run lengths + // determined so draw the on run if it is non-zero length + // and falls within the range we need to draw. + // + if(i32On && (i32Off < i32Len)) + { + i32Draw = ((i32Off + i32On) > i32Len) ? (i32X + i32Len) : + (i32X + i32Off + i32On); + DpyLineDrawH(pContext->psDisplay, i32X + i32Off, + i32Draw - 1, i32Y, + *(uint32_t *)(pui8Palette + + (ui32Transparent ? 0 : 4))); + + // + // Remember that we actually drew something. + // + bRet = true; + } + + // + // Move right past these two runs. + // + i32X += (i32Off + i32On); + i32Len -= (i32Off + i32On); + } + } + break; + + // + // 4 bits per pixel (16 color) bitmap. + // + case 4: + { + // + // Are we starting by drawing or skipping pixels? + // + ui8Pixel = (pui8Data[0] >> (i32X0 ? 0 : 4)) & 0x0F; + bSkip = (ui8Pixel == (uint8_t)ui32Transparent) ? true : false; + i32Start = 0; + i32StartX0 = i32X0; + i32Bit = i32X0; + i32Len = bSkip ? 0 : 1; + + // + // Scan all pixels in the line of data provided. + // + for(i32Index = 1; i32Index < i32Count; i32Index++) + { + // + // Toggle the sub-byte pixel indicator; + // + i32X0 = 1 - i32X0; + + // + // Read the next pixel. + // + ui8Pixel = (pui8Data[(i32Index + i32Bit) / 2] >> + (i32X0 ? 0 : 4)) & 0x0F; + + // + // Is this pixel a transparent one? + // + if(ui8Pixel != (uint8_t)ui32Transparent) + { + // + // It's not transparent. Have we just ended a run of + // transparent pixels? + // + if(bSkip) + { + // + // We are currently skipping pixels so this starts a + // new run. + // + i32Start = i32Index; + i32StartX0 = i32X0; + i32Len = 1; + bSkip = false; + } + else + { + // + // We were already in the middle of a run of non- + // transparent pixels so increment the run length. + // + i32Len++; + } + } + else + { + // + // Pixel is transparent. Do we have a run to draw? + // + if(!bSkip) + { + // + // Yes - draw what we have. + // + DpyPixelDrawMultiple(pContext->psDisplay, + i32X + i32Start, i32Y, + i32StartX0, i32Len, i32BPP, + &pui8Data[(i32Start + i32Bit) / 2], + pui8Palette); + + // + // Reset for the transparent run. + // + i32Len = 0; + bSkip = true; + + // + // Remember that we actually drew something. + // + bRet = true; + } + } + } + + // + // If we drop out of the pixel loop with a run not drawn, draw it + // here. + // + if(!bSkip && i32Len) + { + DpyPixelDrawMultiple(pContext->psDisplay, i32X + i32Start, + i32Y, i32StartX0, i32Len, i32BPP, + &pui8Data[(i32Start + i32Bit) / 2], + pui8Palette); + + // + // Remember that we actually drew something. + // + bRet = true; + } + } + break; + + // + // 8 bit per pixel (256 color) bitmap. + // + case 8: + { + // + // Are we starting by drawing or skipping pixels? + // + bSkip = (pui8Data[0] == (uint8_t)ui32Transparent) ? true : false; + i32Start = 0; + i32Len = bSkip ? 0 : 1; + + // + // Scan all pixels in the line of data provided. + // + for(i32Index = 1; i32Index < i32Count; i32Index++) + { + // + // Is this pixel a transparent one? + // + if(pui8Data[i32Index] != (uint8_t)ui32Transparent) + { + // + // It's not transparent. Have we just ended a run of + // transparent pixels? + // + if(bSkip) + { + // + // We are currently skipping pixels so this starts a + // new run. + // + i32Start = i32Index; + i32Len = 1; + bSkip = false; + } + else + { + // + // We were already in the middle of a run of non- + // transparent pixels so increment the run length. + // + i32Len++; + } + } + else + { + // + // Pixel is transparent. Do we have a run to draw? + // + if(!bSkip) + { + // + // Yes - draw what we have. + // + DpyPixelDrawMultiple(pContext->psDisplay, + i32X + i32Start, i32Y, 0, + i32Len, i32BPP, + &pui8Data[i32Start], + pui8Palette); + + // + // Reset for the transparent run. + // + i32Len = 0; + bSkip = true; + + // + // Remember that we actually drew something. + // + bRet = true; + } + } + } + + // + // If we drop out of the pixel loop with a run not drawn, draw it + // here. + // + if(!bSkip && i32Len) + { + DpyPixelDrawMultiple(pContext->psDisplay, i32X + i32Start, + i32Y, i32X0, i32Len, i32BPP, + &pui8Data[i32Start], pui8Palette); + + // + // Remember that we actually drew something. + // + bRet = true; + } + } + break; + } + + // + // Tell the caller whether or not we actually drew something. + // + return(bRet); +} + +//***************************************************************************** +// +// Internal function implementing both normal and transparent image drawing. +// +//***************************************************************************** +static void +InternalImageDraw(const tContext *pContext, const uint8_t *pui8Image, + int32_t i32X, int32_t i32Y, uint32_t ui32Transparent, + bool bTransparent) +{ + uint32_t ui32Byte, ui32Bits, ui32Match, ui32Size, ui32Idx, ui32Count; + uint32_t ui32Num; + int32_t i32BPP, i32Width, i32Height, i32X0, i32X1, i32X2, i32XMask; + const uint8_t *pui8Palette; + uint32_t pui32BWPalette[2]; + int32_t i32Flag; + + // + // Check the arguments. + // + ASSERT(pContext); + ASSERT(pui8Image); + + // + // Get the image format from the image data. + // + i32BPP = *pui8Image++; + + // + // Get the image width from the image data. + // + i32Width = *(uint16_t *)pui8Image; + pui8Image += 2; + + // + // Get the image height from the image data. + // + i32Height = *(uint16_t *)pui8Image; + pui8Image += 2; + + // + // Return without doing anything if the entire image lies outside the + // current clipping region. + // + if((i32X > pContext->sClipRegion.i16XMax) || + ((i32X + i32Width - 1) < pContext->sClipRegion.i16XMin) || + (i32Y > pContext->sClipRegion.i16YMax) || + ((i32Y + i32Height - 1) < pContext->sClipRegion.i16YMin)) + { + return; + } + + // + // Set the flag indicating that we are drawing a new image. This will + // be cleared after the first pixel run is drawn. + // + i32Flag = GRLIB_DRIVER_FLAG_NEW_IMAGE; + + // + // Get the starting X offset within the image based on the current clipping + // region. + // + if(i32X < pContext->sClipRegion.i16XMin) + { + i32X0 = pContext->sClipRegion.i16XMin - i32X; + } + else + { + i32X0 = 0; + } + + // + // Get the ending X offset within the image based on the current clipping + // region. + // + if((i32X + i32Width - 1) > pContext->sClipRegion.i16XMax) + { + i32X2 = pContext->sClipRegion.i16XMax - i32X; + } + else + { + i32X2 = i32Width - 1; + } + + // + // Reduce the height of the image, if required, based on the current + // clipping region. + // + if((i32Y + i32Height - 1) > pContext->sClipRegion.i16YMax) + { + i32Height = pContext->sClipRegion.i16YMax - i32Y + 1; + } + + // + // Determine the color palette for the image based on the image format. + // + if((i32BPP & 0x7f) == IMAGE_FMT_1BPP_UNCOMP) + { + // + // Construct a local "black & white" palette based on the foreground + // and background colors of the drawing context. + // + pui32BWPalette[0] = pContext->ui32Background; + pui32BWPalette[1] = pContext->ui32Foreground; + + // + // Set the palette pointer to the local "black & white" palette. + // + pui8Palette = (uint8_t *)pui32BWPalette; + } + else + { + // + // For 4 and 8 BPP images, the palette is contained at the start of the + // image data. + // + pui8Palette = pui8Image + 1; + pui8Image += (pui8Image[0] * 3) + 4; + } + + // + // See if the image is compressed. + // + if(!(i32BPP & 0x80)) + { + // + // The image is not compressed. See if the top portion of the image + // lies above the clipping region. + // + if(i32Y < pContext->sClipRegion.i16YMin) + { + // + // Determine the number of rows that lie above the clipping region. + // + i32X1 = pContext->sClipRegion.i16YMin - i32Y; + + // + // Skip past the data for the rows that lie above the clipping + // region. + // + pui8Image += (((i32Width * i32BPP) + 7) / 8) * i32X1; + + // + // Decrement the image height by the number of skipped rows. + // + i32Height -= i32X1; + + // + // Increment the starting Y coordinate by the number of skipped + // rows. + // + i32Y += i32X1; + } + + // + // Determine the starting offset for the first source pixel within + // the byte. + // + switch(i32BPP) + { + case 1: + { + i32XMask = i32X0 & 7; + break; + } + + case 4: + { + i32XMask = i32X0 & 1; + break; + } + + default: + { + i32XMask = 0; + break; + } + } + + // + // Loop while there are more rows to draw. + // + while(i32Height--) + { + // + // Draw this row of image pixels. + // + if(bTransparent) + { + bool bRet; + + // + // Draw a run of pixels dropping out any which are + // transparent. + // + bRet = PixelTransparentDraw(pContext, i32X + i32X0, i32Y, + i32XMask, i32X2 - i32X0 + 1, + i32BPP | i32Flag, + pui8Image + ((i32X0 * i32BPP) / 8), + pui8Palette, ui32Transparent); + + // + // Did we actually draw anything in this run? + // + if(bRet) + { + // + // Yes. Clear the flag that tells the driver that this is + // the first run of a new image. If we clear this when + // nothing was drawn, the driver will not see the flag + // and may not correctly rebuild its color lookup table. + // + i32Flag = 0; + } + } + else + { + DpyPixelDrawMultiple(pContext->psDisplay, i32X + i32X0, + i32Y, i32XMask, i32X2 - i32X0 + 1, + i32BPP | i32Flag, pui8Image + + ((i32X0 * i32BPP) / 8), pui8Palette); + + // + // Clear the flag since we've drawn the first line now. + // + i32Flag = 0; + } + + // + // Skip past the data for this row. + // + pui8Image += ((i32Width * i32BPP) + 7) / 8; + + // + // Increment the Y coordinate. + // + i32Y++; + } + } + else + { + // + // The image is compressed. Clear the compressed flag in the format + // specifier so that the bits per pixel remains. + // + i32BPP &= 0x7f; + + // + // Reset the dictionary used to uncompress the image. + // + for(ui32Bits = 0; ui32Bits < sizeof(g_pui8Dictionary); ui32Bits += 4) + { + *(uint32_t *)(g_pui8Dictionary + ui32Bits) = 0; + } + + // + // Determine the number of bytes of data to decompress. + // + ui32Count = (((i32Width * i32BPP) + 7) / 8) * i32Height; + + // + // Initialize the pointer into the dictionary. + // + ui32Idx = 0; + + // + // Start off with no encoding byte. + // + ui32Bits = 0; + ui32Byte = 0; + + // + // Start from the upper left corner of the image. + // + i32X1 = 0; + + // + // Loop while there are more rows or more data in the image. + // + while(i32Height && ui32Count) + { + // + // See if an encoding byte needs to be read. + // + if(ui32Bits == 0) + { + // + // Read the encoding byte, which indicates if each of the + // following eight bytes are encoded or literal. + // + ui32Byte = *pui8Image++; + ui32Bits = 8; + } + + // + // See if the next byte is encoded or literal. + // + if(ui32Byte & (1 << (ui32Bits - 1))) + { + // + // This byte is encoded, so extract the location and size of + // the encoded data within the dictionary. + // + ui32Match = *pui8Image >> 3; + ui32Size = (*pui8Image++ & 7) + 2; + + // + // Decrement the count of bytes to decode by the number of + // copied bytes. + // + ui32Count -= ui32Size; + } + else + { + // + // This byte is a literal, so copy it into the dictionary. + // + g_pui8Dictionary[ui32Idx++] = *pui8Image++; + + // + // Decrement the count of bytes to decode. + // + ui32Count--; + + // + // Clear any previous encoded data information. + // + ui32Match = 0; + ui32Size = 0; + } + + // + // Loop while there are bytes to copy for the encoded data, or + // once for literal data. + // + while(ui32Size || !(ui32Byte & (1 << (ui32Bits - 1)))) + { + // + // Set the encoded data bit for this data so that this loop + // will only be executed once for literal data. + // + ui32Byte |= 1 << (ui32Bits - 1); + + // + // Loop while there is more encoded data to copy and there is + // additional space in the dictionary (before the buffer + // wraps). + // + while(ui32Size && (ui32Idx != sizeof(g_pui8Dictionary))) + { + // + // Copy this byte. + // + g_pui8Dictionary[ui32Idx] = + g_pui8Dictionary[(ui32Idx + ui32Match) % + sizeof(g_pui8Dictionary)]; + + // + // Increment the dictionary pointer. + // + ui32Idx++; + + // + // Decrement the encoded data size. + // + ui32Size--; + } + + // + // See if the dictionary pointer is about to wrap, or if there + // is no more data to decompress. + // + if((ui32Idx == sizeof(g_pui8Dictionary)) || !ui32Count) + { + // + // Loop through the data in the dictionary buffer. + // + for(ui32Idx = 0; + (ui32Idx < sizeof(g_pui8Dictionary)) && i32Height; ) + { + // + // Compute the number of pixels that remain in the + // dictionary buffer. + // + ui32Num = ((sizeof(g_pui8Dictionary) - ui32Idx) * 8) / + i32BPP; + + // + // See if any of the pixels in the dictionary buffer + // are within the clipping region. + // + if((i32Y >= pContext->sClipRegion.i16YMin) && + ((i32X1 + ui32Num) >= i32X0) && (i32X1 <= i32X2)) + { + // + // Skip some pixels at the start of the scan line + // if required to stay within the clipping region. + // + if(i32X1 < i32X0) + { + ui32Idx += ((i32X0 - i32X1) * i32BPP) / 8; + i32X1 = i32X0; + } + + // + // Shorten the scan line if required to stay within + // the clipping region. + // + if(ui32Num > (i32X2 - i32X1 + 1)) + { + ui32Num = i32X2 - i32X1 + 1; + } + + // + // Determine the starting offset for the first + // source pixel within the byte. + // + switch(i32BPP) + { + + case 1: + { + i32XMask = i32X1 & 7; + break; + } + + case 4: + { + i32XMask = i32X1 & 1; + break; + } + + default: + { + i32XMask = 0; + break; + } + } + + // + // Draw this row of image pixels. + // + if(bTransparent) + { + bool bRet; + + bRet = PixelTransparentDraw(pContext, + i32X + i32X1, + i32Y, i32XMask, + ui32Num, + i32BPP | i32Flag, + g_pui8Dictionary + + ui32Idx, + pui8Palette, + ui32Transparent); + + // + // Clear the flag only if we actually drew + // something. + // + if(bRet) + { + // + // We drew something so that NEW_IMAGE + // flag is no longer needed. + // + i32Flag = 0; + } + } + else + { + DpyPixelDrawMultiple(pContext->psDisplay, + i32X + i32X1, i32Y, + i32XMask, ui32Num, + i32BPP | i32Flag, + g_pui8Dictionary + ui32Idx, + pui8Palette); + + // + // We've drawn the first line so clear the flag. + // + i32Flag = 0; + } + } + + // + // Move the X coordinate back to the start of the first + // data byte in this portion of the dictionary buffer. + // + i32X1 = ((i32X1 * i32BPP) & ~7) / i32BPP; + + // + // See if the remainder of this scan line resides + // within the dictionary buffer. + // + if(((((i32Width - i32X1) * i32BPP) + 7) / 8) > + (sizeof(g_pui8Dictionary) - ui32Idx)) + { + // + // There is more to this scan line than is in the + // dictionary buffer at this point, so move the + // X coordinate by by the number of pixels in the + // dictionary buffer. + // + i32X1 += (((sizeof(g_pui8Dictionary) - ui32Idx) * + 8) / i32BPP); + + // + // The entire dictionary buffer has been scanned. + // + ui32Idx = sizeof(g_pui8Dictionary); + } + else + { + // + // The remainder of this scan line resides in the + // dictionary buffer, so skip past it. + // + ui32Idx += (((i32Width - i32X1) * i32BPP) + 7) / 8; + + // + // Move to the start of the next scan line. + // + i32X1 = 0; + i32Y++; + + // + // There is one less scan line to process. + // + i32Height--; + } + } + + // + // Start over from the beginning of the dictionary buffer. + // + ui32Idx = 0; + } + } + + // + // Advance to the next bit in the encoding byte. + // + ui32Bits--; + } + } +} + +//***************************************************************************** +// +//! Draws a bitmap image, dropping out a single transparent color. +//! +//! \param pContext is a pointer to the drawing context to use. +//! \param pui8Image is a pointer to the image to draw. +//! \param i32X is the X coordinate of the upper left corner of the image. +//! \param i32Y is the Y coordinate of the upper left corner of the image. +//! \param ui32Transparent is the image color which is to be considered +//! transparent. +//! +//! This function draws a bitmap image but, unlike GrImageDraw, will drop out +//! any pixel of a particular color allowing the previous background to ``shine +//! through''. The image may be 1 bit per pixel (using the foreground and +//! background color from the drawing context), 4 bits per pixel (using a +//! palette supplied in the image data), or 8 bits per pixel (using a palette +//! supplied in the image data). It can be uncompressed data, or it can be +//! compressed using the Lempel-Ziv-Storer-Szymanski algorithm (as published in +//! the Journal of the ACM, 29(4):928-951, October 1982). For 4bpp and 8bpp +//! images, the \b ui32Transparent parameter contains the palette index of the +//! colour which is to be considered transparent. For 1bpp images, the +//! \b ui32Transparent parameter should be set to 0 to draw only foreground +//! pixels or 1 to draw only background pixels. +//! +//! \return None. +// +//***************************************************************************** +void +GrTransparentImageDraw(const tContext *pContext, const uint8_t *pui8Image, + int32_t i32X, int32_t i32Y, uint32_t ui32Transparent) +{ + InternalImageDraw(pContext, pui8Image, i32X, i32Y, ui32Transparent, + true); +} + +//***************************************************************************** +// +//! Draws a bitmap image. +//! +//! \param pContext is a pointer to the drawing context to use. +//! \param pui8Image is a pointer to the image to draw. +//! \param i32X is the X coordinate of the upper left corner of the image. +//! \param i32Y is the Y coordinate of the upper left corner of the image. +//! +//! This function draws a bitmap image. The image may be 1 bit per pixel +//! (using the foreground and background color from the drawing context), 4 +//! bits per pixel (using a palette supplied in the image data), or 8 bits per +//! pixel (using a palette supplied in the image data). It can be uncompressed +//! data, or it can be compressed using the Lempel-Ziv-Storer-Szymanski +//! algorithm (as published in the Journal of the ACM, 29(4):928-951, October +//! 1982). +//! +//! \return None. +// +//***************************************************************************** +void +GrImageDraw(const tContext *pContext, const uint8_t *pui8Image, + int32_t i32X, int32_t i32Y) +{ + InternalImageDraw(pContext, pui8Image, i32X, i32Y, 0, false); +} + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** diff --git a/grlib/imgbutton.c b/grlib/imgbutton.c new file mode 100644 index 0000000..039fbe7 --- /dev/null +++ b/grlib/imgbutton.c @@ -0,0 +1,474 @@ +//***************************************************************************** +// +// imgbutton.c - An image-based button widget. +// +// Copyright (c) 2009-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#include +#include +#include "driverlib/debug.h" +#include "grlib/grlib.h" +#include "grlib/widget.h" +#include "grlib/imgbutton.h" + +//***************************************************************************** +// +//! \addtogroup imgbutton_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +//! Draws an image button. +//! +//! \param psWidget is a pointer to the image button widget to be drawn. +//! +//! This function draws a rectangular image button on the display. This is +//! called in response to a \b #WIDGET_MSG_PAINT message. +//! +//! \return None. +// +//***************************************************************************** +static void +ImageButtonPaint(tWidget *psWidget) +{ + const uint8_t *pui8Image; + tImageButtonWidget *psPush; + tContext sCtx; + int32_t i32X, i32Y; + + // + // Check the arguments. + // + ASSERT(psWidget); + + // + // Convert the generic widget pointer into a image button widget pointer. + // + psPush = (tImageButtonWidget *)psWidget; + + // + // Initialize a drawing context. + // + GrContextInit(&sCtx, psWidget->psDisplay); + + // + // Initialize the clipping region based on the extents of this rectangular + // image button. + // + GrContextClipRegionSet(&sCtx, &(psWidget->sPosition)); + + // + // Compute the center of the image button. + // + i32X = (psWidget->sPosition.i16XMin + + ((psWidget->sPosition.i16XMax - + psWidget->sPosition.i16XMin + 1) / 2)); + i32Y = (psWidget->sPosition.i16YMin + + ((psWidget->sPosition.i16YMax - + psWidget->sPosition.i16YMin + 1) / 2)); + + // + // Do we need to fill the widget background with a color? + // + if(psPush->ui32Style & IB_STYLE_FILL) + { + // + // Yes. Set the appropriate color depending upon whether or not + // the widget is currently pressed. + // + GrContextForegroundSet(&sCtx, + ((psPush->ui32Style & IB_STYLE_PRESSED) ? + psPush->ui32PressedColor : + psPush->ui32BackgroundColor)); + GrRectFill(&sCtx, &(psWidget->sPosition)); + } + + // + // Set the foreground and background colors to use for 1 BPP + // images and text + // + GrContextForegroundSet(&sCtx, psPush->ui32ForegroundColor); + GrContextBackgroundSet(&sCtx, + ((psPush->ui32Style & IB_STYLE_PRESSED) ? + psPush->ui32PressedColor : + psPush->ui32BackgroundColor)); + + // + // Do we need to draw the background image? + // + if(!(psPush->ui32Style & IB_STYLE_IMAGE_OFF)) + { + // + // Get the background image to be drawn. + // + pui8Image = ((psPush->ui32Style & IB_STYLE_PRESSED) ? + psPush->pui8PressImage : psPush->pui8Image); + + // + // Draw the image centered in the image button. + // + GrImageDraw(&sCtx, pui8Image, i32X - (GrImageWidthGet(pui8Image) / 2), + i32Y - (GrImageHeightGet(pui8Image) / 2)); + } + + // + // Adjust the drawing position if the button is pressed. + // + i32X += ((psPush->ui32Style & IB_STYLE_PRESSED) ? psPush->i16XOffset : 0); + i32Y += ((psPush->ui32Style & IB_STYLE_PRESSED) ? psPush->i16YOffset : 0); + + // + // If there is a keycap image and it is not disabled, center this on the + // top of the button, applying any offset defined if the button is + // currently pressed. + // + if(psPush->pui8KeycapImage && !(psPush->ui32Style & IB_STYLE_KEYCAP_OFF)) + { + // + // Draw the keycap image. + // + GrImageDraw(&sCtx, psPush->pui8KeycapImage, + i32X - (GrImageWidthGet(psPush->pui8KeycapImage) / 2), + i32Y - (GrImageHeightGet(psPush->pui8KeycapImage) / 2)); + } + + // + // See if the button text style is selected. + // + if(psPush->ui32Style & IB_STYLE_TEXT) + { + // + // Draw the text centered in the middle of the button with offset + // applied if the button is currently pressed. + // + GrContextFontSet(&sCtx, psPush->psFont); + GrStringDrawCentered(&sCtx, psPush->pcText, -1, i32X, i32Y, 0); + } +} + +//***************************************************************************** +// +//! Handles pointer events for a rectangular image button. +//! +//! \param psWidget is a pointer to the image button widget. +//! \param ui32Msg is the pointer event message. +//! \param i32X is the X coordinate of the pointer event. +//! \param i32Y is the Y coordinate of the pointer event. +//! +//! This function processes pointer event messages for a rectangular push +//! button. This is called in response to a \b #WIDGET_MSG_PTR_DOWN, +//! \b #WIDGET_MSG_PTR_MOVE, and \b #WIDGET_MSG_PTR_UP messages. +//! +//! If the \b #WIDGET_MSG_PTR_UP message is received with a position within the +//! extents of the image button, the image button's OnClick callback function is +//! called. +//! +//! \return Returns 1 if the coordinates are within the extents of the push +//! button and 0 otherwise. +// +//***************************************************************************** +static int32_t +ImageButtonClick(tWidget *psWidget, uint32_t ui32Msg, int32_t i32X, + int32_t i32Y) +{ + tImageButtonWidget *psPush; + + // + // Check the arguments. + // + ASSERT(psWidget); + + // + // Convert the generic widget pointer into a image button widget pointer. + // + psPush = (tImageButtonWidget *)psWidget; + + // + // See if this is a pointer up message. + // + if(ui32Msg == WIDGET_MSG_PTR_UP) + { + // + // Indicate that this image button is no longer pressed. + // + psPush->ui32Style &= ~(IB_STYLE_PRESSED); + + // + // Redraw the button in the released state. + // + ImageButtonPaint(psWidget); + + // + // If the pointer is still within the button bounds, and it is a + // release notify button, call the notification function here. + // + if(GrRectContainsPoint(&psWidget->sPosition, i32X, i32Y) && + (psPush->ui32Style & IB_STYLE_RELEASE_NOTIFY) && psPush->pfnOnClick) + { + psPush->pfnOnClick(psWidget); + } + } + + // + // See if the given coordinates are within the extents of the image button. + // + if(GrRectContainsPoint(&psWidget->sPosition, i32X, i32Y)) + { + // + // See if this is a pointer down message. + // + if(ui32Msg == WIDGET_MSG_PTR_DOWN) + { + // + // Indicate that this image button is pressed. + // + psPush->ui32Style |= IB_STYLE_PRESSED; + + // + // Draw the button in the pressed state. + // + ImageButtonPaint(psWidget); + } + + // + // See if there is an OnClick callback for this widget. + // + if(psPush->pfnOnClick) + { + // + // If the pointer was just pressed then call the callback. + // + if((ui32Msg == WIDGET_MSG_PTR_DOWN) && + !(psPush->ui32Style & IB_STYLE_RELEASE_NOTIFY)) + { + psPush->pfnOnClick(psWidget); + } + + // + // See if auto-repeat is enabled for this widget. + // + if(psPush->ui32Style & IB_STYLE_AUTO_REPEAT) + { + // + // If the pointer was just pressed, reset the auto-repeat + // count. + // + if(ui32Msg == WIDGET_MSG_PTR_DOWN) + { + psPush->ui32AutoRepeatCount = 0; + } + + // + // See if the pointer was moved. + // + else if(ui32Msg == WIDGET_MSG_PTR_MOVE) + { + // + // Increment the auto-repeat count. + // + psPush->ui32AutoRepeatCount++; + + // + // If the auto-repeat count exceeds the auto-repeat delay, + // and it is a multiple of the auto-repeat rate, then + // call the callback. + // + if((psPush->ui32AutoRepeatCount >= + psPush->ui16AutoRepeatDelay) && + (((psPush->ui32AutoRepeatCount - + psPush->ui16AutoRepeatDelay) % + psPush->ui16AutoRepeatRate) == 0)) + { + psPush->pfnOnClick(psWidget); + } + } + } + } + + // + // These coordinates are within the extents of the image button widget. + // + return(1); + } + + // + // These coordinates are not within the extents of the image button widget. + // + return(0); +} + +//***************************************************************************** +// +//! Handles messages for an image button widget. +//! +//! \param psWidget is a pointer to the image button widget. +//! \param ui32Msg is the message. +//! \param ui32Param1 is the first parameter to the message. +//! \param ui32Param2 is the second parameter to the message. +//! +//! This function receives messages intended for this image button widget and +//! processes them accordingly. The processing of the message varies based on +//! the message in question. +//! +//! Unrecognized messages are handled by calling WidgetDefaultMsgProc(). +//! +//! \return Returns a value appropriate to the supplied message. +// +//***************************************************************************** +int32_t +ImageButtonMsgProc(tWidget *psWidget, uint32_t ui32Msg, + uint32_t ui32Param1, uint32_t ui32Param2) +{ + // + // Check the arguments. + // + ASSERT(psWidget); + + // + // Determine which message is being sent. + // + switch(ui32Msg) + { + // + // The widget paint request has been sent. + // + case WIDGET_MSG_PAINT: + { + // + // Handle the widget paint request. + // + ImageButtonPaint(psWidget); + + // + // Return one to indicate that the message was successfully + // processed. + // + return(1); + } + + // + // One of the pointer requests has been sent. + // + case WIDGET_MSG_PTR_DOWN: + case WIDGET_MSG_PTR_MOVE: + case WIDGET_MSG_PTR_UP: + { + // + // Handle the pointer request, returning the appropriate value. + // + return(ImageButtonClick(psWidget, ui32Msg, ui32Param1, + ui32Param2)); + } + + // + // An unknown request has been sent. + // + default: + { + // + // Let the default message handler process this message. + // + return(WidgetDefaultMsgProc(psWidget, ui32Msg, ui32Param1, + ui32Param2)); + } + } +} + +//***************************************************************************** +// +//! Initializes an image button widget. +//! +//! \param psWidget is a pointer to the image button widget to initialize. +//! \param psDisplay is a pointer to the display on which to draw the push +//! button. +//! \param i32X is the X coordinate of the upper left corner of the image +//! button. +//! \param i32Y is the Y coordinate of the upper left corner of the image +//! button. +//! \param i32Width is the width of the image button. +//! \param i32Height is the height of the image button. +//! +//! This function initializes the provided image button widget. +//! +//! \return None. +// +//***************************************************************************** +void +ImageButtonInit(tImageButtonWidget *psWidget, const tDisplay *psDisplay, + int32_t i32X, int32_t i32Y, int32_t i32Width, + int32_t i32Height) +{ + uint32_t ui32Idx; + + // + // Check the arguments. + // + ASSERT(psWidget); + ASSERT(psDisplay); + + // + // Clear out the widget structure. + // + for(ui32Idx = 0; ui32Idx < sizeof(tImageButtonWidget); ui32Idx += 4) + { + ((uint32_t *)psWidget)[ui32Idx / 4] = 0; + } + + // + // Set the size of the image button widget structure. + // + psWidget->sBase.i32Size = sizeof(tImageButtonWidget); + + // + // Mark this widget as fully disconnected. + // + psWidget->sBase.psParent = 0; + psWidget->sBase.psNext = 0; + psWidget->sBase.psChild = 0; + + // + // Save the display pointer. + // + psWidget->sBase.psDisplay = psDisplay; + + // + // Set the extents of this rectangular image button. + // + psWidget->sBase.sPosition.i16XMin = i32X; + psWidget->sBase.sPosition.i16YMin = i32Y; + psWidget->sBase.sPosition.i16XMax = i32X + i32Width - 1; + psWidget->sBase.sPosition.i16YMax = i32Y + i32Height - 1; + + // + // Use the rectangular image button message handler to process messages to + // this image button. + // + psWidget->sBase.pfnMsgProc = ImageButtonMsgProc; +} + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** diff --git a/grlib/imgbutton.h b/grlib/imgbutton.h new file mode 100644 index 0000000..597b3d4 --- /dev/null +++ b/grlib/imgbutton.h @@ -0,0 +1,914 @@ +//***************************************************************************** +// +// imgbutton.h - Prototypes for the image button widget. +// +// Copyright (c) 2008-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#ifndef __IMGBUTTON_H__ +#define __IMGBUTTON_H__ + +//***************************************************************************** +// +//! \addtogroup imgbutton_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +// If building with a C++ compiler, make all of the definitions in this header +// have a C binding. +// +//***************************************************************************** +#ifdef __cplusplus +extern "C" +{ +#endif + +//***************************************************************************** +// +//! The structure that describes a image button widget. +// +//***************************************************************************** +typedef struct +{ + // + //! The generic widget information. + // + tWidget sBase; + + // + //! The style for this widget. This is a set of flags defined by + //! IB_STYLE_xxx. + // + uint32_t ui32Style; + + // + //! The color to use for foreground pixels when a 1bpp image or text is in + //! use. This value is ignored for all other image bit depths. + // + uint32_t ui32ForegroundColor; + + // + //! The color to use for background pixels when the button is pressed + //! and a 1bpp image is in use. This value is ignored for all other image + //! bit depths. If IB_STYLE_FILL is specified, this is also the color that + //! will be used to fill the widget when it is in the pressed state. + // + uint32_t ui32PressedColor; + + // + //! The color to use for background pixels when the button is released + //! and a 1bpp image is in use. This value is ignored for all other image + //! bit depths. If IB_STYLE_FILL is specified, this is also the color that + //! will be used to fill the widget when it is in the unpressed state. + // + uint32_t ui32BackgroundColor; + + // + //! A pointer to the font used to render the button text, if + //! IB_STYLE_TEXT is selected. + // + const tFont *psFont; + + // + //! A pointer to the text to draw on this push button, if IB_STYLE_TEXT is + //! selected. + // + const char *pcText; + + // + //! A pointer to the image to be drawn onto this image button, if + //! IB_STYLE_IMG is selected. + // + const uint8_t *pui8Image; + + // + //! A pointer to the image to be drawn onto this image button when it is + //! pressed. + // + const uint8_t *pui8PressImage; + + // + //! A pointer to the image to be drawn above the background image for + //! the button. + // + const uint8_t *pui8KeycapImage; + + //! The number of pixels to move the keycap image horizontally when the + //! button is drawn in its pressed state. + // + int16_t i16XOffset; + + // + //! The number of pixels to move the keycap image vertically when the + //! button is drawn in its pressed state. + // + int16_t i16YOffset; + + // + //! The number of pointer events to delay before starting to auto-repeat, + //! if IB_STYLE_AUTO_REPEAT is selected. The amount of time to which this + //! corresponds is dependent upon the rate at which pointer events are + //! generated by the pointer driver. + // + uint16_t ui16AutoRepeatDelay; + + // + //! The number of pointer events between button presses generated by the + //! auto-repeat function, if IB_STYLE_AUTO_REPEAT is selected. The amount + //! of time to which this corresponds is dependent up on the rate at which + //! pointer events are generated by the pointer driver. + // + uint16_t ui16AutoRepeatRate; + + // + //! The number of pointer events that have occurred. This is used when + //! IB_STYLE_AUTO_REPEAT is selected to generate the auto-repeat events. + // + uint32_t ui32AutoRepeatCount; + + // + //! A pointer to the function to be called when the button is pressed. + //! This is repeatedly called when IB_STYLE_AUTO_REPEAT is selected. + // + void (*pfnOnClick)(tWidget *psWidget); +} +tImageButtonWidget; + +//***************************************************************************** +// +//! This flag indicates that the image button should be filled. +// +//***************************************************************************** +#define IB_STYLE_FILL 0x00000002 + +//***************************************************************************** +// +//! This flag indicates that the image button should have text drawn on it. +// +//***************************************************************************** +#define IB_STYLE_TEXT 0x00000004 + +//***************************************************************************** +// +//! This flag indicates that the background image is to be disabled. +// +//***************************************************************************** +#define IB_STYLE_IMAGE_OFF 0x00000008 + +//***************************************************************************** +// +//! This flag indicates that the keycap image is to be disabled. +// +//***************************************************************************** +#define IB_STYLE_KEYCAP_OFF 0x00000010 + +//***************************************************************************** +// +//! This flag indicates that the image button should auto-repeat, generating +//! repeated click events while it is pressed. +// +//***************************************************************************** +#define IB_STYLE_AUTO_REPEAT 0x00000020 + +//***************************************************************************** +// +//! This flag indicates that the image button is pressed. +// +//***************************************************************************** +#define IB_STYLE_PRESSED 0x00000040 + +//***************************************************************************** +// +//! This flag indicates that the image button callback should be made when +//! the button is released rather than when it is pressed. This does not +//! affect the operation of auto repeat buttons. +// +//***************************************************************************** +#define IB_STYLE_RELEASE_NOTIFY 0x00000080 + +//***************************************************************************** +// +//! Declares an initialized image button widget data structure. +//! +//! \param psParent is a pointer to the parent widget. +//! \param psNext is a pointer to the sibling widget. +//! \param psChild is a pointer to the first child widget. +//! \param psDisplay is a pointer to the display on which to draw the push +//! button. +//! \param i32X is the X coordinate of the upper left corner of the image +//! button. +//! \param i32Y is the Y coordinate of the upper left corner of the image +//! button. +//! \param i32Width is the width of the image button. +//! \param i32Height is the height of the image button. +//! \param ui32Style is the style to be applied to the image button. +//! \param ui32ForeColor is the color to be used for foreground pixels when +//! a 1bpp image or text is being drawn. It is ignored for all other image bit +//! depths. +//! \param ui32PressColor is the color to be used for foreground pixels when +//! the button is pressed and a 1bpp image is being drawn. It is ignored for +//! all other image bit depths. +//! \param ui32BackColor is the color to be used for background pixels when +//! the button is released and a 1bpp image is being drawn. It is ignored for +//! all other image bit depths. +//! \param psFont is a pointer to the font to be used to draw text on the button. +//! \param pcText is a pointer to the text to draw on this button. +//! \param pui8Image is a pointer to the image to draw on the background of +//! this image button when it is in the released state. +//! \param pui8PressImage is a pointer to the image to draw on the background +//! of this image button when it is in the pressed state. +//! \param pui8KeycapImage is a pointer to the image to draw as the keycap of +//! the on top of the image button, on top of the background image. +//! \param i16XOff is the horizontal offset to apply when drawing the keycap +//! image on the button when in the pressed state. +//! \param i16YOff is the vertical offset to apply when drawing the keycap +//! image on the button when in the pressed state. +//! \param ui16AutoRepeatDelay is the delay before starting auto-repeat. +//! \param ui16AutoRepeatRate is the rate at which auto-repeat events are +//! generated. +//! \param pfnOnClick is a pointer to the function that is called when the push +//! button is pressed. +//! +//! This macro provides an initialized image button widget data structure, +//! which can be used to construct the widget tree at compile time in global +//! variables (as opposed to run-time via function calls). This must be +//! assigned to a variable, such as: +//! +//! \verbatim +//! tImageButtonWidget g_sImageButton = ImageButtonStruct(...); +//! \endverbatim +//! +//! Or, in an array of variables: +//! +//! \verbatim +//! tImageButtonWidget g_psImageButtons[] = +//! { +//! ImageButtonStruct(...), +//! ImageButtonStruct(...) +//! }; +//! \endverbatim +//! +//! \e ui32Style is the logical OR of the following: +//! +//! - \b #IB_STYLE_TEXT to indicate that text should be drawn on the button. +//! - \b #IB_STYLE_FILL to indicate that the background of the button should +//! be filled with color. +//! - \b #IB_STYLE_KEYCAP_OFF to indicate that the keycap image should not be +//! drawn. +//! - \b #IB_STYLE_IMAGE_OFF to indicate that the background image should not be +//! drawn. +//! - \b #IB_STYLE_AUTO_REPEAT to indicate that auto-repeat should be used. +//! - \b #IB_STYLE_RELEASE_NOTIFY to indicate that the callback should be made +//! when the button is released. If absent, the callback is called when the +//! button is initially pressed. +//! +//! \return Nothing; this is not a function. +// +//***************************************************************************** +#define ImageButtonStruct(psParent, psNext, psChild, psDisplay, i32X, i32Y, \ + i32Width, i32Height, ui32Style, ui32ForeColor, \ + ui32PressColor, ui32BackColor, psFont, pcText, \ + pui8Image, pui8PressImage, pui8KeycapImage, \ + i16XOff, i16YOff, ui16AutoRepeatDelay, \ + ui16AutoRepeatRate, pfnOnClick) \ + { \ + { \ + sizeof(tImageButtonWidget), \ + (tWidget *)(psParent), \ + (tWidget *)(psNext), \ + (tWidget *)(psChild), \ + psDisplay, \ + { \ + i32X, \ + i32Y, \ + (i32X) + (i32Width) - 1, \ + (i32Y) + (i32Height) - 1 \ + }, \ + ImageButtonMsgProc \ + }, \ + ui32Style, \ + ui32ForeColor, \ + ui32PressColor, \ + ui32BackColor, \ + psFont, \ + pcText, \ + pui8Image, \ + pui8PressImage, \ + pui8KeycapImage, \ + i16XOff, \ + i16YOff, \ + ui16AutoRepeatDelay, \ + ui16AutoRepeatRate, \ + 0, \ + pfnOnClick \ + } + +//***************************************************************************** +// +//! Declares an initialized variable containing a image button widget data +//! structure. +//! +//! \param sName is the name of the variable to be declared. +//! \param psParent is a pointer to the parent widget. +//! \param psNext is a pointer to the sibling widget. +//! \param psChild is a pointer to the first child widget. +//! \param psDisplay is a pointer to the display on which to draw the push +//! button. +//! \param i32X is the X coordinate of the upper left corner of the image +//! button. +//! \param i32Y is the Y coordinate of the upper left corner of the image +//! button. +//! \param i32Width is the width of the image button. +//! \param i32Height is the height of the image button. +//! \param ui32Style is the style to be applied to the image button. +//! \param ui32ForeColor is the color to be used for foreground pixels when +//! a 1bpp image is being drawn. It is ignored for all other image bit depths. +//! \param ui32PressColor is the color to be used for foreground pixels when +//! the button is pressed and a 1bpp image is being drawn. It is ignored for +//! all other image bit depths. +//! \param ui32BackColor is the color to be used for background pixels when +//! the button is released and a 1bpp image is being drawn. It is ignored for +//! all other image bit depths. +//! \param psFont is a pointer to the font to be used to draw text on the +//! button. +//! \param pcText is a pointer to the text to draw on this button. +//! \param pui8Image is a pointer to the image to draw on the background of +//! this image button when it is in the released state. +//! \param pui8PressImage is a pointer to the image to draw on the background +//! of this image button when it is in the pressed state. +//! \param pui8KeycapImage is a pointer to the image to draw as the keycap of +//! the on top of the image button, on top of the background image. +//! \param i16XOff is the horizontal offset to apply when drawing the keycap +//! image on the button when in the pressed state. +//! \param i16YOff is the vertical offset to apply when drawing the keycap +//! image on the button when in the pressed state. +//! \param ui16AutoRepeatDelay is the delay before starting auto-repeat. +//! \param ui16AutoRepeatRate is the rate at which auto-repeat events are +//! generated. +//! \param pfnOnClick is a pointer to the function that is called when the push +//! button is pressed. +//! +//! This macro provides an initialized image button widget data structure, +//! which can be used to construct the widget tree at compile time in global +//! variables (as opposed to run-time via function calls). +//! +//! \e ui32Style is the logical OR of the following: +//! +//! - \b #IB_STYLE_TEXT to indicate that text should be drawn on the button. +//! - \b #IB_STYLE_FILL to indicate that the background of the button should +//! be filled with color. +//! - \b #IB_STYLE_KEYCAP_OFF to indicate that the keycap image should not be +//! drawn. +//! - \b #IB_STYLE_IMAGE_OFF to indicate that the background image should not +//! be drawn. +//! - \b #IB_STYLE_AUTO_REPEAT to indicate that auto-repeat should be used. +//! - \b #IB_STYLE_RELEASE_NOTIFY to indicate that the callback should be made +//! when the button is released. If absent, the callback is called when the +//! button is initially pressed. +//! +//! \return Nothing; this is not a function. +// +//***************************************************************************** +#define ImageButton(sName, psParent, psNext, psChild, psDisplay, i32X, i32Y, \ + i32Width, i32Height, ui32Style, ui32ForeColor, \ + ui32PressColor, ui32BackColor, psFont, pcText, pui8Image, \ + pui8PressImage, pui8KeycapImage, i16XOff, i16YOff, \ + ui16AutoRepeatDelay, ui16AutoRepeatRate, pfnOnClick) \ + tImageButtonWidget sName = \ + ImageButtonStruct(psParent, psNext, psChild, psDisplay, i32X, \ + i32Y, i32Width, i32Height, ui32Style, \ + ui32ForeColor, ui32PressColor, ui32BackColor, \ + psFont, pcText, pui8Image, pui8PressImage, \ + pui8KeycapImage, i16XOff, i16YOff, \ + ui16AutoRepeatDelay, ui16AutoRepeatRate, \ + pfnOnClick) + +//***************************************************************************** +// +//! Sets the auto-repeat delay for a image button widget. +//! +//! \param psWidget is a pointer to the image button widget to modify. +//! \param ui16Delay is the number of pointer events before auto-repeat starts. +//! +//! This function sets the delay before auto-repeat begins. Unpredictable +//! behavior will occur if this is called while the image button is pressed. +//! +//! \return None. +// +//***************************************************************************** +#define ImageButtonAutoRepeatDelaySet(psWidget, ui16Delay) \ + do \ + { \ + tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ + psW->ui16AutoRepeatDelay = ui16Delay; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables auto-repeat for a image button widget. +//! +//! \param psWidget is a pointer to the image button widget to modify. +//! +//! This function disables the auto-repeat behavior of a image button. +//! +//! \return None. +// +//***************************************************************************** +#define ImageButtonAutoRepeatOff(psWidget) \ + do \ + { \ + tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ + psW->ui32Style &= ~(IB_STYLE_AUTO_REPEAT); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables auto-repeat for a image button widget. +//! +//! \param psWidget is a pointer to the image button widget to modify. +//! +//! This function enables the auto-repeat behavior of a image button. +//! Unpredictable behavior will occur if this is called while the image button +//! is pressed. +//! +//! \return None. +// +//***************************************************************************** +#define ImageButtonAutoRepeatOn(psWidget) \ + do \ + { \ + tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ + psW->ui32Style |= IB_STYLE_AUTO_REPEAT; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the auto-repeat rate for a image button widget. +//! +//! \param psWidget is a pointer to the image button widget to modify. +//! \param ui16Rate is the number of pointer events between auto-repeat events. +//! +//! This function sets the rate at which auto-repeat events occur. +//! Unpredictable behavior will occur if this is called while the image button +//! is pressed. +//! +//! \return None. +// +//***************************************************************************** +#define ImageButtonAutoRepeatRateSet(psWidget, ui16Rate) \ + do \ + { \ + tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ + psW->ui16AutoRepeatRate = ui16Rate; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the function to call when this image button widget is pressed. +//! +//! \param psWidget is a pointer to the image button widget to modify. +//! \param pfnOnClik is a pointer to the function to call. +//! +//! This function sets the function to be called when this image button is +//! pressed. The supplied function is called when the image button is first +//! pressed, and then repeated while the image button is pressed if auto-repeat +//! is enabled. +//! +//! \return None. +// +//***************************************************************************** +#define ImageButtonCallbackSet(psWidget, pfnOnClik) \ + do \ + { \ + tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ + psW->pfnOnClick = pfnOnClik; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the fill color of a image button widget. +//! +//! \param psWidget is a pointer to the image button widget to be modified. +//! \param ui32Color is the 24-bit RGB color to use to fill the image button. +//! +//! This function changes the color used to fill the background of the image +//! button on the display. This is a duplicate of +//! ImageButtonBackgroundColorSet which is left for backwards compatibility. +//! The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ImageButtonFillColorSet(psWidget, ui32Color) \ + do \ + { \ + tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ + psW->ui32BackgroundColor = ui32Color; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables filling of a image button widget. +//! +//! \param psWidget is a pointer to the image button widget to modify. +//! +//! This function disables the filling of a image button widget. The display +//! is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ImageButtonFillOff(psWidget) \ + do \ + { \ + tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ + psW->ui32Style &= ~(IB_STYLE_FILL); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables filling of a image button widget. +//! +//! \param psWidget is a pointer to the image button widget to modify. +//! +//! This function enables the filling of a image button widget. The display is +//! not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ImageButtonFillOn(psWidget) \ + do \ + { \ + tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ + psW->ui32Style |= IB_STYLE_FILL; \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables the background image for an image button widget. +//! +//! \param psWidget is a pointer to the image button widget to modify. +//! +//! This function enables the drawing of the background image on an image +//! button widget. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ImageButtonImageOn(psWidget) \ + do \ + { \ + tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ + psW->ui32Style &= ~(IB_STYLE_IMAGE_OFF); \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables the background image for an image button widget. +//! +//! \param psWidget is a pointer to the image button widget to modify. +//! +//! This function disables the drawing of the background image on an image +//! button widget. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ImageButtonImageOff(psWidget) \ + do \ + { \ + tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ + psW->ui32Style |= IB_STYLE_IMAGE_OFF; \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables the keycap image for an image button widget. +//! +//! \param psWidget is a pointer to the image button widget to modify. +//! +//! This function enables the drawing of the keycap image on an image button +//! widget. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ImageButtonKeycapOn(psWidget) \ + do \ + { \ + tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ + psW->ui32Style &= ~(IB_STYLE_KEYCAP_OFF); \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables the keycap image for an image button widget. +//! +//! \param psWidget is a pointer to the image button widget to modify. +//! +//! This function disables the drawing of the keycap image on an image button +//! widget. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ImageButtonKeycapOff(psWidget) \ + do \ + { \ + tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ + psW->ui32Style |= IB_STYLE_KEYCAP_OFF; \ + } \ + while(0) + +//***************************************************************************** +// +//! Changes the image drawn on a image button widget. +//! +//! \param psWidget is a pointer to the image button widget to be modified. +//! \param pImg is a pointer to the image to draw onto the image button. +//! +//! This function changes the image that is drawn onto the background of the +//! image button in its unpressed state. The display is not updated until the +//! next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ImageButtonImageSet(psWidget, pImg) \ + do \ + { \ + tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ + const uint8_t *pI = pImg; \ + psW->pui8Image = pI; \ + } \ + while(0) + +//***************************************************************************** +// +//! Changes the image drawn on a image button widget when it is pressed. +//! +//! \param psWidget is a pointer to the image button widget to be modified. +//! \param pImg is a pointer to the image to draw onto the image button when it +//! is pressed. +//! +//! This function changes the image that is drawn onto the background of the +//! image button in its pressed state. The display is not updated until the +//! next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ImageButtonImagePressedSet(psWidget, pImg) \ + do \ + { \ + tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ + const uint8_t *pI = pImg; \ + psW->pui8PressImage = pI; \ + } \ + while(0) + +//***************************************************************************** +// +//! Changes the keycap image drawn on a image button widget. +//! +//! \param psWidget is a pointer to the image button widget to be modified. +//! \param pImg is a pointer to the image to draw onto the image button. +//! +//! This function changes the image that is drawn onto the top of the push +//! button. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ImageButtonImageKeycapSet(psWidget, pImg) \ + do \ + { \ + tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ + const uint8_t *pI = (pImg); \ + psW->pui8KeycapImage = pI; \ + } \ + while(0) + +//***************************************************************************** +// +//! Changes the keycap image offset position on an image button widget. +//! +//! \param psWidget is a pointer to the image button widget to be modified. +//! \param i16X is the signed horizontal position offset for the keycap image +//! when the image button is pressed. Positive values move the image right. +//! \param i16Y is the signed vertical position offset for the keycap image +//! when the image button is pressed. Positive values move the image down. +//! +//! This function changes the position that the keycap image is drawn at when +//! the image button is pressed. The keycap image is moved iX pixels right and +//! iY pixels down from the center position if the image button is pressed. +//! This feature can be used to support 3D buttons. The display is not +//! updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ImageButtonKeycapOffsetSet(psWidget, i16X, i16Y) \ + do \ + { \ + tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ + psW->i16XOffset = (int16_t)(i16X); \ + psW->i16YOffset = (int16_t)(i16Y); \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the color of background pixels when using 1bpp images. +//! +//! \param psWidget is a pointer to the image button widget to be modified. +//! \param ui32Color is the background color to use. +//! +//! This function changes the color that is used to draw background pixels when +//! a 1bpp image is rendered on the button and the button is in the released +//! state. The value is ignored for all other image bit depths. The display +//! is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ImageButtonBackgroundColorSet(psWidget, ui32Color) \ + do \ + { \ + tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ + psW->ui32BackgroundColor = (ui32Color); \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the color of foreground pixels when using 1bpp images. +//! +//! \param psWidget is a pointer to the image button widget to be modified. +//! \param ui32Color is the foreground color to use. +//! +//! This function changes the color that is used to draw foreground pixels when +//! a 1bpp image or text string is rendered on the button. The value is +//! ignored for all other image bit depths. The display is not updated until +//! the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ImageButtonForegroundColorSet(psWidget, ui32Color) \ + do \ + { \ + tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ + psW->ui32ForegroundColor = (ui32Color); \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the color of foreground pixels when the button is pressed and when +//! using 1bpp images. +//! +//! \param psWidget is a pointer to the image button widget to be modified. +//! \param ui32Color is the pressed foreground color to use. +//! +//! This function changes the color that is used to draw foreground pixels when +//! a 1bpp image is rendered on the button and the button is in the pressed +//! state. The value is ignored for all other image bit depths. The display +//! is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ImageButtonPressedColorSet(psWidget, ui32Color) \ + do \ + { \ + tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ + psW->ui32PressedColor = (ui32Color); \ + } \ + while(0) + + +//***************************************************************************** +// +//! Changes the text drawn on a image button widget. +//! +//! \param psWidget is a pointer to the image button widget to be modified. +//! \param pcTxt is a pointer to the text to draw onto the image button. +//! +//! This function changes the text that is drawn onto the image button. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ImageButtonTextSet(psWidget, pcTxt) \ + do \ + { \ + tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ + const char *pcT = pcTxt; \ + psW->pcText = pcT; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables the text on a image button widget. +//! +//! \param psWidget is a pointer to the image button widget to modify. +//! +//! This function disables the drawing of text on a image button widget. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ImageButtonTextOff(psWidget) \ + do \ + { \ + tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ + psW->ui32Style &= ~(IB_STYLE_TEXT); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables the text on a image button widget. +//! +//! \param psWidget is a pointer to the image button widget to modify. +//! +//! This function enables the drawing of text on a image button widget. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ImageButtonTextOn(psWidget) \ + do \ + { \ + tImageButtonWidget *psW = (tImageButtonWidget *)(psWidget); \ + psW->ui32Style |= IB_STYLE_TEXT; \ + } \ + while(0) + +//***************************************************************************** +// +// Prototypes for the image button widget APIs. +// +//***************************************************************************** +extern int32_t ImageButtonMsgProc(tWidget *psWidget, uint32_t ui32Msg, + uint32_t ui32Param1, + uint32_t ui32Param2); +extern void ImageButtonInit(tImageButtonWidget *psWidget, + const tDisplay *psDisplay, + int32_t i32X, int32_t i32Y, + int32_t i32Width, int32_t i32Height); + +//***************************************************************************** +// +// Mark the end of the C bindings section for C++ compilers. +// +//***************************************************************************** +#ifdef __cplusplus +} +#endif + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** + +#endif // __IMGBUTTON_H__ diff --git a/grlib/keyboard.c b/grlib/keyboard.c new file mode 100644 index 0000000..8a28054 --- /dev/null +++ b/grlib/keyboard.c @@ -0,0 +1,1145 @@ +//***************************************************************************** +// +// keyboard.c - +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#include +#include +#include "driverlib/debug.h" +#include "grlib/grlib.h" +#include "grlib/widget.h" +#include "grlib/keyboard.h" + +//***************************************************************************** +// +//! \addtogroup keyboard_api +//! @{ +// +//***************************************************************************** +#define MAX_KEYS_US_EN_LOWER 34 +const tKeyText g_psUSEnglishLower[MAX_KEYS_US_EN_LOWER] = +{ + // + // Row 1 + // + { + 'q', 1000, 2500, 0, 0 + }, + { + 'w', 1000, 2500, 1000, 0 + }, + { + 'e', 1000, 2500, 2000, 0 + }, + { + 'r', 1000, 2500, 3000, 0 + }, + { + 't', 1000, 2500, 4000, 0 + }, + { + 'y', 1000, 2500, 5000, 0 + }, + { + 'u', 1000, 2500, 6000, 0 + }, + { + 'i', 1000, 2500, 7000, 0 + }, + { + 'o', 1000, 2500, 8000, 0 + }, + { + 'p', 1000, 2500, 9000, 0 + }, + // + // Row 2 + // + { + 'a', 1000, 2500, 500, 2500 + }, + { + 's', 1000, 2500, 1500, 2500 + }, + { + 'd', 1000, 2500, 2500, 2500 + }, + { + 'f', 1000, 2500, 3500, 2500 + }, + { + 'g', 1000, 2500, 4500, 2500 + }, + { + 'h', 1000, 2500, 5500, 2500 + }, + { + 'j', 1000, 2500, 6500, 2500 + }, + { + 'k', 1000, 2500, 7500, 2500 + }, + { + 'l', 1000, 2500, 8500, 2500 + }, + // + // Row 3 + // + { + UNICODE_CUSTOM_SHIFT, 1500, 2500, 0, 5000 + }, + { + 'z', 1000, 2500, 1500, 5000 + }, + { + 'x', 1000, 2500, 2500, 5000 + }, + { + 'c', 1000, 2500, 3500, 5000 + }, + { + 'v', 1000, 2500, 4500, 5000 + }, + { + 'b', 1000, 2500, 5500, 5000 + }, + { + 'n', 1000, 2500, 6500, 5000 + }, + { + 'm', 1000, 2500, 7500, 5000 + }, + { + UNICODE_BACKSPACE, 1500, 2500, 8500, 5000 + }, + // + // Row 4 + // + { + UNICODE_CUSTOM_MODE_TOG, 1500, 2500, 0, 7500 + }, + { + ',', 1000, 2500, 1500, 7500 + }, + { + '/', 1000, 2500, 2500, 7500 + }, + { + ' ', 4000, 2500, 3500, 7500 + }, + { + '.', 1000, 2500, 7500, 7500 + }, + { + UNICODE_RETURN, 1500, 2500, 8500, 7500 + } +}; + +#define MAX_KEYS_US_EN_UPPER 34 +const tKeyText g_psUSEnglishUpper[MAX_KEYS_US_EN_UPPER] = +{ + // + // Row 1 + // + { + 'Q', 1000, 2500, 0, 0 + }, + { + 'W', 1000, 2500, 1000, 0 + }, + { + 'E', 1000, 2500, 2000, 0 + }, + { + 'R', 1000, 2500, 3000, 0 + }, + { + 'T', 1000, 2500, 4000, 0 + }, + { + 'Y', 1000, 2500, 5000, 0 + }, + { + 'U', 1000, 2500, 6000, 0 + }, + { + 'I', 1000, 2500, 7000, 0 + }, + { + 'O', 1000, 2500, 8000, 0 + }, + { + 'P', 1000, 2500, 9000, 0 + }, + // + // Row 2 + // + { + 'A', 1000, 2500, 500, 2500 + }, + { + 'S', 1000, 2500, 1500, 2500 + }, + { + 'D', 1000, 2500, 2500, 2500 + }, + { + 'F', 1000, 2500, 3500, 2500 + }, + { + 'G', 1000, 2500, 4500, 2500 + }, + { + 'H', 1000, 2500, 5500, 2500 + }, + { + 'J', 1000, 2500, 6500, 2500 + }, + { + 'K', 1000, 2500, 7500, 2500 + }, + { + 'L', 1000, 2500, 8500, 2500 + }, + // + // Row 3 + // + { + UNICODE_CUSTOM_SHIFT, 1500, 2500, 00, 5000 + }, + { + 'Z', 1000, 2500, 1500, 5000 + }, + { + 'X', 1000, 2500, 2500, 5000 + }, + { + 'C', 1000, 2500, 3500, 5000 + }, + { + 'V', 1000, 2500, 4500, 5000 + }, + { + 'B', 1000, 2500, 5500, 5000 + }, + { + 'N', 1000, 2500, 6500, 5000 + }, + { + 'M', 1000, 2500, 7500, 5000 + }, + { + UNICODE_BACKSPACE, 1500, 2500, 8500, 5000 + }, + // + // Row 4 + // + { + UNICODE_CUSTOM_MODE_TOG, 1500, 2500, 00, 7500 + }, + { + ',', 1000, 2500, 1500, 7500 + }, + { + '.', 1000, 2500, 2500, 7500 + }, + { + ' ', 4000, 2500, 3500, 7500 + }, + { + '/', 1000, 2500, 7500, 7500 + }, + { + UNICODE_RETURN, 1500, 2500, 8500, 7500 + } +}; + +#define MAX_KEYS_US_EN_NUMERIC 38 +const tKeyText g_psUSEnglishNumeric[MAX_KEYS_US_EN_NUMERIC] = +{ + // + // Row 1 + // + { + '1', 1000, 2500, 0, 0 + }, + { + '2', 1000, 2500, 1000, 0 + }, + { + '3', 1000, 2500, 2000, 0 + }, + { + '4', 1000, 2500, 3000, 0 + }, + { + '5', 1000, 2500, 4000, 0 + }, + { + '6', 1000, 2500, 5000, 0 + }, + { + '7', 1000, 2500, 6000, 0 + }, + { + '8', 1000, 2500, 7000, 0 + }, + { + '9', 1000, 2500, 8000, 0 + }, + { + '0', 1000, 2500, 9000, 0 + }, + // + // Row 2 + // + { + '!', 1000, 2500, 0, 2500 + }, + { + '@', 1000, 2500, 1000, 2500 + }, + { + '#', 1000, 2500, 2000, 2500 + }, + { + '$', 1000, 2500, 3000, 2500 + }, + { + '%', 1000, 2500, 4000, 2500 + }, + { + '^', 1000, 2500, 5000, 2500 + }, + { + '&', 1000, 2500, 6000, 2500 + }, + { + '*', 1000, 2500, 7000, 2500 + }, + { + '(', 1000, 2500, 8000, 2500 + }, + { + ')', 1000, 2500, 9000, 2500 + }, + // + // Row 3 + // + { + '?', 1000, 2500, 0000, 5000 + }, + { + '-', 1000, 2500, 1000, 5000 + }, + { + '=', 1000, 2500, 2000, 5000 + }, + { + '\'', 1000, 2500, 3000, 5000 + }, + { + '+', 1000, 2500, 4000, 5000 + }, + { + '[', 1000, 2500, 5000, 5000 + }, + { + ']', 1000, 2500, 6000, 5000 + }, + { + '\"', 1000, 2500, 7000, 5000 + }, + { + UNICODE_BACKSPACE, 2000, 2500, 8000, 5000 + }, + // + // Row 4 + // + { + UNICODE_CUSTOM_MODE_TOG, 1500, 2500, 0000, 7500 + }, + { + ';', 1000, 2500, 1500, 7500 + }, + { + ':', 1000, 2500, 2500, 7500 + }, + { + '\\', 1000, 2500, 3500, 7500 + }, + { + '|', 1000, 2500, 4500, 7500 + }, + { + '_', 1000, 2500, 5500, 7500 + }, + { + '/', 1000, 2500, 6500, 7500 + }, + { + '~', 1000, 2500, 7500, 7500 + }, + { + UNICODE_RETURN, 1500, 2500, 8500, 7500 + } +}; + +const tKeyboard g_psKeyboardUSEnglish[NUM_KEYBOARD_US_ENGLISH] = +{ + { + UNICODE_CUSTOM_LOWCASE, + MAX_KEYS_US_EN_LOWER, + 0, + { + // + // Text based keys. + // + .psKeysText = g_psUSEnglishLower + } + }, + { + UNICODE_CUSTOM_UPCASE, + MAX_KEYS_US_EN_UPPER, + 0, + { + // + // Text based keys. + // + .psKeysText = g_psUSEnglishUpper + } + }, + { + UNICODE_CUSTOM_NUMERIC, + MAX_KEYS_US_EN_NUMERIC, + 0, + { + // + // Text based keys. + // + .psKeysText = g_psUSEnglishNumeric + } + } +}; + +//***************************************************************************** +// +// Local defines for the flags in the tKeyboardWidget.ui32Flags. +// +//***************************************************************************** +#define FLAG_KEY_PRESSED 0x00000001 +#define FLAG_KEY_CAPSLOCK 0x00000002 + +//***************************************************************************** +// +//! Draws a key on the keyboard. +//! +//! \param psWidget is a pointer to the keyboard widget to be drawn. +//! \param psKey is a pointer to the key to draw. +//! +//! This function draws a single key on the display. This is called whenever +//! a key on the keyboard needs to be updated. +//! +//! \return None. +// +//***************************************************************************** +static void +ButtonPaintText(tWidget *psWidget, const tKeyText *psKey) +{ + tKeyboardWidget *psKeyboard; + tContext sCtx; + int32_t i32X, i32Y; + uint32_t ui32Range, ui32Size; + tRectangle sRect; + char pcKeyCap[4]; + + // + // Check the arguments. + // + ASSERT(psWidget); + + // + // Convert the generic widget pointer into a keyboard widget pointer. + // + psKeyboard = (tKeyboardWidget *)psWidget; + + // + // Initialize a drawing context. + // + GrContextInit(&sCtx, psWidget->psDisplay); + + // + // Initialize the clipping region based on the extents of this keyboard. + // + GrContextClipRegionSet(&sCtx, &(psWidget->sPosition)); + + // + // Calculate a keys bounding box. + // + ui32Range = psWidget->sPosition.i16XMax - psWidget->sPosition.i16XMin + 1; + sRect.i16XMin = psWidget->sPosition.i16XMin + 1; + sRect.i16XMin += (ui32Range * (uint32_t)psKey->ui16XPos) / 10000; + + sRect.i16XMax = sRect.i16XMin - 3 + + ((ui32Range * (uint32_t)psKey->ui16Width) / 10000); + + ui32Range = psWidget->sPosition.i16YMax - psWidget->sPosition.i16YMin + 1; + sRect.i16YMin = psWidget->sPosition.i16YMin + 1; + sRect.i16YMin += (ui32Range * (uint32_t)psKey->ui16YPos) / 10000; + + sRect.i16YMax = sRect.i16YMin - 3 + + ((ui32Range * (uint32_t)psKey->ui16Height) / 10000); + + // + // See if the keyboard fill style is selected. + // + if(psKeyboard->ui32Style & KEYBOARD_STYLE_FILL) + { + // + // Fill the key with the fill color. + // + GrContextForegroundSet(&sCtx, + ((psKeyboard->ui32Flags & FLAG_KEY_PRESSED) ? + psKeyboard->ui32PressFillColor : + psKeyboard->ui32FillColor)); + GrRectFill(&sCtx, &sRect); + } + + // + // See if the keyboard outline style is selected. + // + if(psKeyboard->ui32Style & KEYBOARD_STYLE_OUTLINE) + { + // + // Outline the key with the outline color. + // + GrContextForegroundSet(&sCtx, psKeyboard->ui32OutlineColor); + GrRectDraw(&sCtx, &sRect); + } + + // + // Compute the center of the key. + // + i32X = (sRect.i16XMin + ((sRect.i16XMax - sRect.i16XMin + 1) / 2)); + i32Y = (sRect.i16YMin + ((sRect.i16YMax - sRect.i16YMin + 1) / 2)); + + // + // If the keyboard outline style is selected then shrink the + // clipping region by one pixel on each side so that the outline is not + // overwritten by the text or image. + // + if(psKeyboard->ui32Style & KEYBOARD_STYLE_OUTLINE) + { + sCtx.sClipRegion.i16XMin++; + sCtx.sClipRegion.i16YMin++; + sCtx.sClipRegion.i16XMax--; + sCtx.sClipRegion.i16YMax--; + } + + // + // Draw the text centered in the middle of the key. + // + GrContextFontSet(&sCtx, psKeyboard->psFont); + GrContextForegroundSet(&sCtx, psKeyboard->ui32TextColor); + GrContextBackgroundSet(&sCtx, + ((psKeyboard->ui32Flags & FLAG_KEY_PRESSED) ? + psKeyboard->ui32PressFillColor : + psKeyboard->ui32FillColor)); + + ui32Size = 0; + + if(psKey->ui32Code == UNICODE_BACKSPACE) + { + pcKeyCap[0] = 'B'; + pcKeyCap[1] = 'S'; + ui32Size = 2; + } + else if(psKey->ui32Code == UNICODE_RETURN) + { + pcKeyCap[0] = 'E'; + pcKeyCap[1] = 'n'; + pcKeyCap[2] = 't'; + ui32Size = 3; + } + else if(psKey->ui32Code == UNICODE_CUSTOM_SHIFT) + { + pcKeyCap[0] = 'S'; + pcKeyCap[1] = 'h'; + ui32Size = 2; + } + else if(psKey->ui32Code == UNICODE_CUSTOM_MODE_TOG) + { + pcKeyCap[0] = '1'; + pcKeyCap[1] = '2'; + pcKeyCap[2] = '3'; + ui32Size = 3; + } + else + { + ui32Size = 1; + pcKeyCap[0] = (char)psKey->ui32Code; + } + GrStringDrawCentered(&sCtx, (const char *)pcKeyCap, ui32Size, i32X, + i32Y, + psKeyboard->ui32Style & KEYBOARD_STYLE_TEXT_OPAQUE); +} + +//***************************************************************************** +// +//! Draws a the full keyboard. +//! +//! \param psWidget is a pointer to the keyboard widget to be drawn. +//! +//! This function draws a the full keyboard. This is called whenever +//! the full keyboard needs to be updated. +//! +//! \return None. +// +//***************************************************************************** +static void +KeyboardPaint(tWidget *psWidget) +{ + int32_t i32Key; + tKeyboardWidget *psKeyboardWidget; + const tKeyboard *psKeyboard; + tContext sCtx; + + // + // Convert the generic widget pointer into a keyboard widget pointer. + // + psKeyboardWidget = (tKeyboardWidget *)psWidget; + + psKeyboard = &psKeyboardWidget->psKeyboards[psKeyboardWidget->ui32Active]; + + // + // Initialize a drawing context. + // + GrContextInit(&sCtx, psWidget->psDisplay); + + // + // Initialize the clipping region based on the extents of this keyboard. + // + GrContextClipRegionSet(&sCtx, &(psWidget->sPosition)); + + // + // Fill the keyboard with the fill color. + // + if(psKeyboardWidget->ui32Style & KEYBOARD_STYLE_BG) + { + GrContextForegroundSet(&sCtx, psKeyboardWidget->ui32BackgroundColor); + GrRectFill(&sCtx, &psWidget->sPosition); + } + + for(i32Key = 0; i32Key < psKeyboard->ui16NumKeys; i32Key++) + { + ButtonPaintText(psWidget, &psKeyboard->uKeys.psKeysText[i32Key]); + } +} + +//***************************************************************************** +// +// Finds if a given X/Y position is within any keys on the keyboard. +// +// \param psKeyWidget is a pointer to the keyboard widget. +// \param psKeyboard is a pointer to the active keyboard. +// \param i32X is the X position for the query. +// \param i32Y is the Y position for the query. +// +// This function is used to determine if a given X/Y position is within the +// bounds of any key on the keyboard. If the key is found the index for that +// key is returned if the key is not found the value is maximum number of keys +// for the given keyboard indicated by psKeyboard->ui16NumKeys. +// +// \return The key found or psKeyboard->ui16NumKeys if no key was found. +// +//***************************************************************************** +static uint32_t +FindKey(tKeyboardWidget *psKeyWidget, const tKeyboard *psKeyboard, + int32_t i32X, int32_t i32Y) +{ + uint32_t ui32Key; + uint32_t ui32Range; + int32_t i32XMin, i32XMax, i32YMin, i32YMax; + const tKeyText *psKey; + + // + // Pre-scale the positions to multiples of 10000. + // + i32X *= 10000; + i32Y *= 10000; + + for(ui32Key = 0; ui32Key < psKeyboard->ui16NumKeys; ui32Key++) + { + psKey = &psKeyboard->uKeys.psKeysText[ui32Key]; + + // + // Find the X bounds of the key. + // + ui32Range = psKeyWidget->sBase.sPosition.i16XMax - + psKeyWidget->sBase.sPosition.i16XMin + 1; + i32XMin = psKeyWidget->sBase.sPosition.i16XMin * 10000; + i32XMin += (ui32Range * (uint32_t)psKey->ui16XPos); + + i32XMax = i32XMin + (ui32Range * (uint32_t)psKey->ui16Width); + + // + // Find the Y bounds of the key. + // + ui32Range = psKeyWidget->sBase.sPosition.i16YMax - + psKeyWidget->sBase.sPosition.i16YMin + 1; + i32YMin = psKeyWidget->sBase.sPosition.i16YMin * 10000; + i32YMin += (ui32Range * (uint32_t)psKey->ui16YPos); + + i32YMax = i32YMin + (ui32Range * (uint32_t)psKey->ui16Height); + + if((i32X >= i32XMin) && (i32X <= i32XMax) && + (i32Y >= i32YMin) && (i32Y <= i32YMax)) + { + break; + } + } + + return(ui32Key); +} + +//***************************************************************************** +// +//! Handles click events for the keyboard. +//! +//! \param psWidget is a pointer to the keyboard widget. +//! \param ui32Msg is the pointer event message. +//! \param i32X is the X coordinate of the pointer event. +//! \param i32Y is the Y coordinate of the pointer event. +//! +//! This function processes pointer event messages for a keyboard. This is +//! called in response to a \b WIDGET_MSG_PTR_DOWN, \b WIDGET_MSG_PTR_MOVE, and +//! \b WIDGET_MSG_PTR_UP messages. +//! +//! If the \b WIDGET_MSG_PTR_UP message is received with a position within the +//! extents of the keyboard, the pfnOnEvent callback function is called when +//! the click is inside one of the keys on the keyboard. +//! +//! \return Returns 1 if the coordinates are within the extents of a key on the +//! the keyboard and 0 otherwise. +// +//***************************************************************************** +static int32_t +TextButtonEvent(tWidget *psWidget, uint32_t ui32Msg, int32_t i32X, + int32_t i32Y) +{ + tKeyboardWidget *psKeyWidget; + const tKeyboard *psKeyboard; + uint32_t ui32Key; + + // + // Check the arguments. + // + ASSERT(psWidget); + + // + // Convert the generic widget pointer into a keyboard widget pointer. + // + psKeyWidget = (tKeyboardWidget *)psWidget; + psKeyboard = &psKeyWidget->psKeyboards[psKeyWidget->ui32Active]; + + // + // Find which key was pressed. + // + ui32Key = FindKey(psKeyWidget, psKeyboard, i32X, i32Y); + + // + // See if this is a pointer up message. + // + if(ui32Msg == WIDGET_MSG_PTR_UP) + { + // + // Indicate that this key is no longer pressed. + // + psKeyWidget->ui32Flags &= ~FLAG_KEY_PRESSED; + + // + // If filling is enabled for the keyboard button, then redraw the + // keyboard to show it in its non-pressed state. + // + if((psKeyWidget->ui32Style & KEYBOARD_STYLE_FILL) || + ((psKeyWidget->ui32Style & KEYBOARD_STYLE_IMG))) + { + // + // Make sure the key is valid. + // + if(psKeyWidget->ui32KeyPressed < psKeyboard->ui16NumKeys) + { + // + // Always clear the key that was last marked pressed. + // + ButtonPaintText(psWidget, + &psKeyboard->uKeys.psKeysText[psKeyWidget->ui32KeyPressed]); + } + } + + // + // If the pointer is still within the button bounds, and it is a + // release notify button, call the notification function here. + // + if((ui32Key < psKeyboard->ui16NumKeys) && + (psKeyWidget->ui32Style & KEYBOARD_STYLE_RELEASE_NOTIFY) && + psKeyWidget->pfnOnEvent) + { + psKeyWidget->pfnOnEvent(psWidget, + psKeyboard->uKeys.psKeysText[ui32Key].ui32Code, + KEYBOARD_EVENT_RELEASE); + } + } + + // + // See if the given coordinates are within the extents of the key. + // + if(ui32Key < psKeyboard->ui16NumKeys) + { + // + // See if this is a pointer down message. + // + if(ui32Msg == WIDGET_MSG_PTR_DOWN) + { + // + // Handle a shift to update the keyboard. + // + if(psKeyboard->uKeys.psKeysText[ui32Key].ui32Code == + UNICODE_CUSTOM_SHIFT) + { + if(psKeyWidget->ui32Active == 0) + { + psKeyWidget->ui32Active = 1; + } + else if(psKeyWidget->ui32Active == 1) + { + if(psKeyWidget->ui32Flags & FLAG_KEY_CAPSLOCK) + { + psKeyWidget->ui32Flags &= ~FLAG_KEY_CAPSLOCK; + psKeyWidget->ui32Active = 0; + } + else + { + psKeyWidget->ui32Flags |= FLAG_KEY_CAPSLOCK; + } + } + else + { + psKeyWidget->ui32Active = 0; + } + + // + // Handle the widget paint request. + // + KeyboardPaint(psWidget); + return(1); + } + if(psKeyboard->uKeys.psKeysText[ui32Key].ui32Code == + UNICODE_CUSTOM_MODE_TOG) + { + if(psKeyWidget->ui32Active == 2) + { + psKeyWidget->ui32Active = 0; + } + else + { + psKeyWidget->ui32Active = 2; + } + + // + // Handle the widget paint request. + // + KeyboardPaint(psWidget); + + return(1); + } + else if((psKeyWidget->ui32Active == 1) && + ((psKeyWidget->ui32Flags & FLAG_KEY_CAPSLOCK) == 0)) + { + psKeyWidget->ui32Flags &= ~FLAG_KEY_CAPSLOCK; + psKeyWidget->ui32Active = 0; + + // + // Handle the widget paint request. + // + KeyboardPaint(psWidget); + } + + // + // Indicate that a key is pressed. + // + psKeyWidget->ui32Flags |= FLAG_KEY_PRESSED; + + // + // If filling is enabled for this keyboard, or if an image is + // being used and a pressed button image is provided, then redraw + // the keyboard to show it in its pressed state. + // + if((psKeyWidget->ui32Style & KEYBOARD_STYLE_FILL) || + ((psKeyWidget->ui32Style & KEYBOARD_STYLE_IMG))) + { + // + // Save the key that was pressed. + // + psKeyWidget->ui32KeyPressed = ui32Key; + + ButtonPaintText(psWidget, + &psKeyboard->uKeys.psKeysText[ui32Key]); + } + } + + // + // See if there is an OnEvent callback for this widget. + // + if(psKeyWidget->pfnOnEvent) + { + // + // If the pointer was just pressed then call the callback. + // + if((ui32Msg == WIDGET_MSG_PTR_DOWN) && + (psKeyWidget->ui32Style & KEYBOARD_STYLE_PRESS_NOTIFY)) + { + psKeyWidget->pfnOnEvent(psWidget, + psKeyboard->uKeys.psKeysText[ui32Key].ui32Code, + KEYBOARD_EVENT_PRESS); + } + + // + // See if auto-repeat is enabled for this widget. + // + if(psKeyWidget->ui32Style & KEYBOARD_STYLE_AUTO_REPEAT) + { + // + // If the pointer was just pressed, reset the auto-repeat + // count. + // + if(ui32Msg == WIDGET_MSG_PTR_DOWN) + { + psKeyWidget->ui32AutoRepeatCount = 0; + } + + // + // See if the pointer was moved. + // + else if((ui32Msg == WIDGET_MSG_PTR_MOVE) && + (psKeyWidget->pfnOnEvent) && + (psKeyWidget->ui32Style & KEYBOARD_STYLE_PRESS_NOTIFY)) + { + // + // Increment the auto-repeat count. + // + psKeyWidget->ui32AutoRepeatCount++; + + // + // If the auto-repeat count exceeds the auto-repeat delay, + // and it is a multiple of the auto-repeat rate, then + // call the callback. + // + if((psKeyWidget->ui32AutoRepeatCount >= + psKeyWidget->ui16AutoRepeatDelay) && + (((psKeyWidget->ui32AutoRepeatCount - + psKeyWidget->ui16AutoRepeatDelay) % + psKeyWidget->ui16AutoRepeatRate) == 0)) + { + psKeyWidget->pfnOnEvent(psWidget, + psKeyboard->uKeys.psKeysText[ui32Key].ui32Code, + KEYBOARD_EVENT_PRESS); + } + } + } + } + + // + // These coordinates are within the extents of the keyboard widget. + // + return(1); + } + + // + // These coordinates are not within the extents of the keyboard widget. + // + return(0); +} + +//***************************************************************************** +// +//! Handles messages for a rectangular keyboard widget. +//! +//! \param psWidget is a pointer to the keyboard widget. +//! \param ui32Msg is the message. +//! \param ui32Param1 is the first parameter to the message. +//! \param ui32Param2 is the second parameter to the message. +//! +//! This function receives messages intended for this keyboard widget and +//! processes them accordingly. The processing of the message varies based on +//! the message in question. +//! +//! Unrecognized messages are handled by calling WidgetDefaultMsgProc(). +//! +//! \return Returns a value appropriate to the supplied message. +// +//***************************************************************************** +int32_t +KeyboardMsgProc(tWidget *psWidget, uint32_t ui32Msg, uint32_t ui32Param1, + uint32_t ui32Param2) +{ + tKeyboardWidget *psKeyWidget; + + // + // Check the arguments. + // + ASSERT(psWidget); + + psKeyWidget = (tKeyboardWidget *)psWidget; + + // + // Determine which message is being sent. + // + switch(ui32Msg) + { + // + // The widget paint request has been sent. + // + case WIDGET_MSG_PAINT: + { + // + // Only redraw if no buttons are pressed. + // + if((psKeyWidget->ui32Flags & FLAG_KEY_PRESSED) == 0) + { + // + // Handle the widget paint request. + // + KeyboardPaint(psWidget); + } + + // + // Return one to indicate that the message was successfully + // processed. + // + return(1); + } + + // + // One of the pointer requests has been sent. + // + case WIDGET_MSG_PTR_DOWN: + case WIDGET_MSG_PTR_MOVE: + case WIDGET_MSG_PTR_UP: + { + // + // Handle the pointer request, returning the appropriate value. + // + return(TextButtonEvent(psWidget, ui32Msg, ui32Param1, ui32Param2)); + } + + // + // An unknown request has been sent. + // + default: + { + // + // Let the default message handler process this message. + // + return(WidgetDefaultMsgProc(psWidget, ui32Msg, ui32Param1, + ui32Param2)); + } + } +} + +//***************************************************************************** +// +//! Initializes a keyboard widget. +//! +//! \param psWidget is a pointer to the keyboard widget to initialize. +//! \param psDisplay is a pointer to the display on which to draw the on-screen +//! keyboard. +//! \param i32X is the X coordinate of the upper left corner of the on-screen +//! keyboard. +//! \param i32Y is the Y coordinate of the upper left corner of the on-screen +//! keyboard. +//! \param i32Width is the width of the on-screen keyboard. +//! \param i32Height is the height of the on-screen keyboard. +//! +//! This function initializes the provided keyboard widget so that it is ready +//! to be drawn when requested. +//! +//! \return None. +// +//***************************************************************************** +void +KeyboardInit(tKeyboardWidget *psWidget, const tDisplay *psDisplay, + int32_t i32X, int32_t i32Y, int32_t i32Width, int32_t i32Height) +{ + uint32_t ui32Idx; + + // + // Check the arguments. + // + ASSERT(psWidget); + ASSERT(psDisplay); + + // + // Clear out the widget structure. + // + for(ui32Idx = 0; ui32Idx < sizeof(tKeyboardWidget); ui32Idx += 4) + { + ((uint32_t *)psWidget)[ui32Idx / 4] = 0; + } + + // + // Set the size of the keyboard widget structure. + // + psWidget->sBase.i32Size = sizeof(tKeyboardWidget); + + // + // Mark this widget as fully disconnected. + // + psWidget->sBase.psParent = 0; + psWidget->sBase.psNext = 0; + psWidget->sBase.psChild = 0; + + // + // Save the display pointer. + // + psWidget->sBase.psDisplay = psDisplay; + + // + // Set the extents of this keyboard. + // + psWidget->sBase.sPosition.i16XMin = i32X; + psWidget->sBase.sPosition.i16YMin = i32Y; + psWidget->sBase.sPosition.i16XMax = i32X + i32Width - 1; + psWidget->sBase.sPosition.i16YMax = i32Y + i32Height - 1; + + // + // Use the keyboard message handler to process messages. + // + psWidget->sBase.pfnMsgProc = KeyboardMsgProc; +} + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** diff --git a/grlib/keyboard.h b/grlib/keyboard.h new file mode 100644 index 0000000..06e077c --- /dev/null +++ b/grlib/keyboard.h @@ -0,0 +1,965 @@ +//***************************************************************************** +// +// keyboard.h - +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#ifndef __KEYBOARD_H__ +#define __KEYBOARD_H__ + +//***************************************************************************** +// +//! \addtogroup keyboard_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +// If building with a C++ compiler, make all of the definitions in this header +// have a C binding. +// +//***************************************************************************** +#ifdef __cplusplus +extern "C" +{ +#endif + +//***************************************************************************** +// +//! The structure to describe a image based key on the keyboard. +// +//***************************************************************************** +typedef struct +{ + // + // ! The Unicode value for this key. + // + uint32_t ui32Code; + + // + // ! The width as a percentage in units of 1000. + // + uint16_t ui16Width; + + // + // ! The height as a percentage in units of 1000. + // + uint16_t ui16Height; + + // + // ! The X position as a percentage in units of 1000. + // + uint16_t ui16XPos; + + // + // ! The Y position as a percentage in units of 1000. + // + uint16_t ui16YPos; + + // + //! A pointer to the image to be drawn onto this key, if + //! KEYBOARD_STYLE_IMG is selected. + // + const uint8_t *pui8Image; + + // + //! A pointer to the image to be drawn onto this key when it is pressed, if + //! KEYBOARD_STYLE_IMG is selected. + // + const uint8_t *pui8PressImage; +} +tKeyImage; + +//***************************************************************************** +// +//! The structure to describe a text based key on the keyboard. +// +//***************************************************************************** +typedef struct +{ + // + // ! The Unicode value for this key. + // + uint32_t ui32Code; + + // + // ! The height as a percentage in units of 1000. + // + uint16_t ui16Width; + + // + // ! The width as a percentage in units of 1000. + // + uint16_t ui16Height; + + // + // ! The X position as a percentage in units of 1000. + // + uint16_t ui16XPos; + + // + // ! The Y position as a percentage in units of 1000. + // + uint16_t ui16YPos; +} +tKeyText; + +//***************************************************************************** +// +// Special Unicode values used by the keyboard +// +//***************************************************************************** + +//***************************************************************************** +// +//! This code is used to map a backspace key onto a keyboard. This is used +//! in the tKeyText.ui32Code or tKeyImage.ui32Code values. +// +//***************************************************************************** +#define UNICODE_BACKSPACE 0x00000008 + +//***************************************************************************** +// +//! This code is used to map a return/enter key onto a keyboard. This is used +//! in the tKeyText.ui32Code or tKeyImage.ui32Code values. +// +//***************************************************************************** +#define UNICODE_RETURN 0x0000000D + +//***************************************************************************** +// +//! This code is used to map a shift/caps-lock key onto a keyboard. This value +//! causes the keyboard to toggle between lower-case, upper-case and caps lock +//! modes. This value is used in the tKeyText.ui32Code or tKeyImage.ui32Code +//! values. +// +//***************************************************************************** +#define UNICODE_CUSTOM_SHIFT 0x000f0000 + +//***************************************************************************** +// +//! This code is used to map a mode toggle key onto a keyboard. This value +//! causes the keyboard to toggle between the custom entries in a keyboard. +//! This value is used in the tKeyText.ui32Code or tKeyImage.ui32Code +//! values. +// +//***************************************************************************** +#define UNICODE_CUSTOM_MODE_TOG 0x000f0001 + +//***************************************************************************** +// +//! This code is used to identify a keyboard as the upper-case keyboard. +// +//***************************************************************************** +#define UNICODE_CUSTOM_UPCASE 0x000f0002 + +//***************************************************************************** +// +//! This code is used to identify a keyboard as the lower-case keyboard. +// +//***************************************************************************** +#define UNICODE_CUSTOM_LOWCASE 0x000f0003 + +//***************************************************************************** +// +//! This code is used to identify a keyboard as the lower-case keyboard. +// +//***************************************************************************** +#define UNICODE_CUSTOM_NUMERIC 0x000f0004 + +//***************************************************************************** +// +//! This code is used to identify the first custom keyboard entry. +// +//***************************************************************************** +#define UNICODE_CUSTOM_KBD 0x000f0005 + +//***************************************************************************** +// +// Keyboard events that are passed to the pfnOnEvent function. +// +//***************************************************************************** +#define KEYBOARD_EVENT_PRESS 0x00000001 +#define KEYBOARD_EVENT_RELEASE 0x00000002 + +//***************************************************************************** +// +//! This structure holds a single keyboard entry. Keyboards are typically +//! made up of an array of these structures. +// +//***************************************************************************** +typedef struct +{ + // + //! This value holds the identifier for this keyboard. + // + uint32_t ui32Code; + + // + //! This value holds the total number of keys for this keyboard entry. + // + uint16_t ui16NumKeys; + + // + //! This value holds the static flag entries for this keyboard entry. + // + uint16_t ui16Flags; + + // + //! This union holds either the text based keys or image based keys for + //! this keyboard. + // + union + { + const tKeyImage *psKeysImage; + const tKeyText *psKeysText; + } + uKeys; +} +tKeyboard; + +//***************************************************************************** +// +//! The structure that describes a keyboard widget. +// +//***************************************************************************** +typedef struct +{ + // + //! The generic widget information. + // + tWidget sBase; + + // + //! The style for this widget. This is a set of flags defined by + //! KEYBOARD_STYLE_xxx. + // + uint32_t ui32Style; + + // + //! The 24-bit RGB color used to fill background of the on-screen + //! keyboard if KEYBOARD_STYLE_BG is selected. + // + uint32_t ui32BackgroundColor; + + // + //! The 24-bit RGB color used to fill keys of the on-screen + //! keyboard if KEYBOARD_STYLE_FILL is selected, and to use as the + //! background color if KEYBOARD_STYLE_TEXT_OPAQUE is selected. + // + uint32_t ui32FillColor; + + // + //! The 24-bit RGB color used to fill keys when pressed, if + //! KEYBOARD_STYLE_FILL is selected, and to use as the background color + //! if KEYBOARD_STYLE_TEXT_OPAQUE is selected. + // + uint32_t ui32PressFillColor; + + // + //! The 24-bit RGB color used to outline the keys, if + //! KEYBOARD_STYLE_OUTLINE is selected. + // + uint32_t ui32OutlineColor; + + // + //! The 24-bit RGB color used to draw text on the keys. + // + uint32_t ui32TextColor; + + // + //! A pointer to the font used to render the text on the keys. + // + const tFont *psFont; + + // + //! The number of pointer events to delay before starting to auto-repeat, + //! if KEYBOARD_STYLE_AUTO_REPEAT is selected. The amount of time to which + //! this corresponds is dependent upon the rate at which pointer events are + //! generated by the pointer driver. + // + uint16_t ui16AutoRepeatDelay; + + // + //! The number of pointer events between key presses generated by the + //! auto-repeat function, if KEYBOARD_STYLE_AUTO_REPEAT is selected. The + //! amount of time to which this corresponds is dependent up on the rate at + //! which pointer events are generated by the pointer driver. + // + uint16_t ui16AutoRepeatRate; + + // + //! The number of pointer events that have occurred. This is used when + //! KEYBOARD_STYLE_AUTO_REPEAT is selected to generate the auto-repeat + //! events. + // + uint32_t ui32AutoRepeatCount; + + // + //! The active keyboard index, which should be initialized to 0. + // + uint32_t ui32Active; + + // + //! The total number of active keyboards in the psKeyboards structure + //! member. + // + uint32_t ui32NumKeyboards; + + // + //! The array of keyboards used by the application. + // + const tKeyboard *psKeyboards; + + // + //! A pointer to the function to be called when a key is pressed. + //! This is repeatedly called when KEYBOARD_STYLE_AUTO_REPEAT is selected. + // + void (*pfnOnEvent)(tWidget *psWidget, uint32_t ui32Key, + uint32_t ui32Event); + + // + //! The active key being pressed. + // + uint32_t ui32KeyPressed; + + // + //! Internal state flags for the keyboard. + // + uint32_t ui32Flags; +} +tKeyboardWidget; + +//***************************************************************************** +// +//! This flag indicates that the keys should be outlined. +// +//***************************************************************************** +#define KEYBOARD_STYLE_OUTLINE 0x00000001 + +//***************************************************************************** +// +//! This flag indicates that the keys should be filled. +// +//***************************************************************************** +#define KEYBOARD_STYLE_FILL 0x00000002 + +//***************************************************************************** +// +//! This flag indicates that the keys should have text drawn on them. +// +//***************************************************************************** +#define KEYBOARD_STYLE_TEXT 0x00000004 + +//***************************************************************************** +// +//! This flag indicates that the keys should have an image drawn on them. +// +//***************************************************************************** +#define KEYBOARD_STYLE_IMG 0x00000008 + +//***************************************************************************** +// +//! This flag indicates that the text on the keys should be drawn opaque (in +//! other words, drawing the background pixels as well as the foreground +//! pixels). +// +//***************************************************************************** +#define KEYBOARD_STYLE_TEXT_OPAQUE \ + 0x00000010 + +//***************************************************************************** +// +//! This flag indicates that the keys should auto-repeat, generating +//! repeated click events while it is pressed. +// +//***************************************************************************** +#define KEYBOARD_STYLE_AUTO_REPEAT \ + 0x00000020 + +//***************************************************************************** +// +//! This flag indicates that a key is pressed. +// +//***************************************************************************** +#define KEYBOARD_STYLE_PRESS_NOTIFY \ + 0x00000040 + +//***************************************************************************** +// +//! This flag indicates that the key press callback should be made when +//! the key is released rather than when it is pressed. This does not +//! affect the operation of auto repeat keys. +// +//***************************************************************************** +#define KEYBOARD_STYLE_RELEASE_NOTIFY \ + 0x00000080 + +//***************************************************************************** +// +//! This flag indicates that the keys should be filled. +// +//***************************************************************************** +#define KEYBOARD_STYLE_BG 0x00000100 + + +//***************************************************************************** +// +//! Declares an initialized keyboard widget data structure. +//! +//! \param psParent is a pointer to the parent widget. +//! \param psNext is a pointer to the sibling widget. +//! \param psChild is a pointer to the first child widget. +//! \param psDisplay is a pointer to the display on which to draw the keyboard. +//! \param i32X is the X coordinate of the upper left corner of the keyboard. +//! \param i32Y is the Y coordinate of the upper left corner of the keyboard. +//! \param i32Width is the width of the keyboard. +//! \param i32Height is the height of the keyboard. +//! \param ui32Style is the style to be applied to the keyboard. +//! \param ui32BackgroundColor is the background color for the keyboard. +//! \param ui32FillColor is the color used to fill in the keyboard. +//! \param ui32PressFillColor is the color used to fill in the keyboard when +//! a key is pressed. +//! \param ui32OutlineColor is the color used to outline the keys. +//! \param ui32TextColor is the color used to draw text on the keys. +//! \param psFont is a pointer to the font used to draw text on the keys. +//! \param ui16AutoRepeatDelay is the delay before starting auto-repeat. +//! \param ui16AutoRepeatRate is the rate at which auto-repeat events are +//! generated. +//! \param ui32NumKeyboards is the number of keyboards in the psKeyboard +//! parameter. +//! \param psKeyboards is a pointer to the keyboard array to use for this +//! keyboard. +//! \param pfnOnEvent is a pointer to the function that is called when a key +//! is pressed. +//! +//! This macro provides an initialized keyboard widget data structure, which +//! can be used to construct the widget tree at compile time in global +//! variables (as opposed to run-time via function calls). This must be +//! assigned to a variable, such as: +//! +//! \verbatim +//! tKeyboardWidget g_sKeyboard = KeyboardStruct(...); +//! \endverbatim +//! +//! Or, in an array of variables: +//! +//! \verbatim +//! tKeyboardWidget g_psKeyboards[] = +//! { +//! KeyboardStruct(...), +//! KeyboardStruct(...) +//! }; +//! \endverbatim +//! +//! \e ui32Style is the logical OR of the following: +//! +//! - \b PB_STYLE_OUTLINE to indicate that the keys should be outlined. +//! - \b PB_STYLE_FILL to indicate that the keys should be filled. +//! - \b PB_STYLE_IMG to indicate that the keys should have an image +//! drawn on them (using \e pui8Image). +//! - \b PB_STYLE_TEXT_OPAQUE to indicate that the key text should be +//! drawn opaque (in other words, drawing the background pixels). +//! - \b PB_STYLE_AUTO_REPEAT to indicate that auto-repeat should be used. +//! - \b PB_STYLE_RELEASE_NOTIFY to indicate that the callback should be made +//! when a key is released. If absent, the callback is called when the +//! key is initially pressed. +//! +//! \return Nothing; this is not a function. +// +//***************************************************************************** +#define KeyboardStruct(psParent, psNext, psChild, psDisplay, i32X, i32Y, \ + i32Width, i32Height, ui32Style, ui32BackgroundColor, \ + ui32FillColor, ui32PressFillColor, ui32OutlineColor, \ + ui32TextColor, psFont, ui16AutoRepeatDelay, \ + ui16AutoRepeatRate, ui32NumKeyboards, psKeyboards, \ + pfnOnEvent) \ + { \ + { \ + sizeof(tKeyboardWidget), \ + (tWidget *)(psParent), \ + (tWidget *)(psNext), \ + (tWidget *)(psChild), \ + psDisplay, \ + { \ + i32X, \ + i32Y, \ + (i32X) + (i32Width) - 1, \ + (i32Y) + (i32Height) - 1 \ + }, \ + KeyboardMsgProc \ + }, \ + ui32Style, \ + ui32BackgroundColor, \ + ui32FillColor, \ + ui32PressFillColor, \ + ui32OutlineColor, \ + ui32TextColor, \ + psFont, \ + ui16AutoRepeatDelay, \ + ui16AutoRepeatRate, \ + 0, \ + 0, \ + ui32NumKeyboards, \ + psKeyboards, \ + pfnOnEvent, \ + 0, \ + 0 \ + } + +//***************************************************************************** +// +//! Declares an initialized variable containing a keyboard widget data +//! structure. +//! +//! \param sName is the name of the variable to be declared. +//! \param psParent is a pointer to the parent widget. +//! \param psNext is a pointer to the sibling widget. +//! \param psChild is a pointer to the first child widget. +//! \param psDisplay is a pointer to the display on which to draw the keyboard. +//! \param i32X is the X coordinate of the upper left corner of the keyboard. +//! \param i32Y is the Y coordinate of the upper left corner of the keyboard. +//! \param i32Width is the width of the keyboard. +//! \param i32Height is the height of the keyboard. +//! \param ui32Style is the style to be applied to the keyboard. +//! \param ui32BackgroundColor is the background color for the keyboard. +//! \param ui32FillColor is the color used to fill in the keys. +//! \param ui32PressFillColor is the color used to fill in the keys when +//! pressed. +//! \param ui32OutlineColor is the color used to outline the keys. +//! \param ui32TextColor is the color used to draw text on the keys. +//! \param psFont is a pointer to the font to be used to draw text on the keys. +//! \param ui16AutoRepeatDelay is the delay before starting auto-repeat. +//! \param ui16AutoRepeatRate is the rate at which auto-repeat events are +//! generated. +//! \param ui32NumKeyboards is the number of keyboards in the \e psKeyboards +//! array. +//! \param psKeyboards is an array of keyboards that are displayed as a part +//! of this keyboard. +//! \param pfnOnEvent is a pointer to the function that is called when a key is +//! pressed. +//! +//! This macro provides an initialized keyboard widget data structure, which +//! can be used to construct the widget tree at compile time in global +//! variables (as opposed to run-time via function calls). +//! +//! \e ui32Style is the logical OR of the following: +//! +//! - \b PB_STYLE_OUTLINE to indicate that the keys should be outlined. +//! - \b PB_STYLE_FILL to indicate that the keys should be filled. +//! - \b PB_STYLE_IMG to indicate that the keys should have an image +//! drawn on them (using \e pui8Image). +//! - \b PB_STYLE_TEXT_OPAQUE to indicate that the key text should be +//! drawn opaque (in other words, drawing the background pixels). +//! - \b PB_STYLE_AUTO_REPEAT to indicate that auto-repeat should be used. +//! - \b PB_STYLE_RELEASE_NOTIFY to indicate that the callback should be made +//! when a key is released. If absent, the callback is called when a key +//! is initially pressed. +//! +//! \return Nothing; this is not a function. +// +//***************************************************************************** +#define Keyboard(sName, psParent, psNext, psChild, psDisplay, i32X, i32Y, \ + i32Width, i32Height, ui32Style, ui32BackgroundColor, \ + ui32FillColor, ui32PressFillColor, ui32OutlineColor, \ + ui32TextColor, psFont, ui16AutoRepeatDelay, \ + ui16AutoRepeatRate, ui32NumKeyboards, psKeyboards, \ + pfnOnEvent) \ + tKeyboardWidget sName = \ + KeyboardStruct(psParent, psNext, psChild, psDisplay, i32X, i32Y, \ + i32Width, i32Height, ui32Style, \ + ui32BackgroundColor, ui32FillColor, \ + ui32PressFillColor, ui32OutlineColor, \ + ui32TextColor, psFont, ui16AutoRepeatDelay, \ + ui16AutoRepeatRate, ui32NumKeyboards, psKeyboards, \ + pfnOnEvent) + +//***************************************************************************** +// +//! Sets the auto-repeat delay for a keyboard widget. +//! +//! \param psWidget is a pointer to the keyboard widget to modify. +//! \param ui16Delay is the number of pointer events before auto-repeat starts. +//! +//! This function sets the delay before auto-repeat begins. Unpredictable +//! behavior will occur if this is called while a key is pressed. +//! +//! \return None. +// +//***************************************************************************** +#define KeyboardAutoRepeatDelaySet(psWidget, ui16Delay) \ + do \ + { \ + tKeyboardWidget *psW = psWidget; \ + psW->ui16AutoRepeatDelay = ui16Delay; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables auto-repeat for a keyboard widget. +//! +//! \param psWidget is a pointer to the keyboard widget to modify. +//! +//! This function disables the auto-repeat behavior of a keyboard. +//! +//! \return None. +// +//***************************************************************************** +#define KeyboardAutoRepeatOff(psWidget) \ + do \ + { \ + tKeyboardWidget *psW = psWidget; \ + psW->ui32Style &= ~(KEYBOARD_STYLE_AUTO_REPEAT); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables auto-repeat for a keyboard widget. +//! +//! \param psWidget is a pointer to the keyboard widget to modify. +//! +//! This function enables the auto-repeat behavior of a keyboard. +//! Unpredictable behavior will occur if this is called while a key is pressed. +//! +//! \return None. +// +//***************************************************************************** +#define KeyboardAutoRepeatOn(psWidget) \ + do \ + { \ + tKeyboardWidget *psW = psWidget; \ + psW->ui32Style |= KEYBOARD_STYLE_AUTO_REPEAT; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the auto-repeat rate for a keyboard widget. +//! +//! \param psWidget is a pointer to the keyboard widget to modify. +//! \param ui16Rate is the number of pointer events between auto-repeat events. +//! +//! This function sets the rate at which auto-repeat events occur. +//! Unpredictable behavior will occur if this is called while a key is pressed. +//! +//! \return None. +// +//***************************************************************************** +#define KeyboardAutoRepeatRateSet(psWidget, ui16Rate) \ + do \ + { \ + tKeyboardWidget *psW = psWidget; \ + psW->ui16AutoRepeatRate = ui16Rate; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the function to call when this keyboard widget is pressed. +//! +//! \param psWidget is a pointer to the keyboard widget to modify. +//! \param pfnOnEventFn is a pointer to the function to call. +//! +//! This function sets the function to be called when a key is pressed. The +//! supplied function is called when a key is first pressed, and then repeated +//! while the key is pressed if auto-repeat is enabled. +//! +//! \return None. +// +//***************************************************************************** +#define KeyboardCallbackSet(psWidget, pfnOnEventFn) \ + do \ + { \ + tKeyboardWidget *psW = psWidget; \ + psW->pfnOnEvent = pfnOnEventFn; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the fill color of a keyboard widget. +//! +//! \param psWidget is a pointer to the keyboard widget to be modified. +//! \param ui32Color is the 24-bit RGB color to use to fill the keys. +//! +//! This function changes the color used to fill the keys on the display. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define KeyboardFillColorSet(psWidget, ui32Color) \ + do \ + { \ + tKeyboardWidget *psW = psWidget; \ + psW->ui32FillColor = ui32Color; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the fill color of a keyboard when it is pressed. +//! +//! \param psWidget is a pointer to the keyboard widget to be modified. +//! \param ui32Color is the 24-bit RGB color to use to fill the keys when they +//! are pressed. +//! +//! This function changes the color used to fill the keys on the display when +//! a key is pressed. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define KeyboardFillColorPressedSet(psWidget, ui32Color) \ + do \ + { \ + tKeyboardWidget *psW = psWidget; \ + psW->ui32PressFillColor = ui32Color; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables filling of keys in a keyboard widget. +//! +//! \param psWidget is a pointer to the keyboard widget to modify. +//! +//! This function disables the filling of keys in a keyboard widget. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define KeyboardFillOff(psWidget) \ + do \ + { \ + tKeyboardWidget *psW = psWidget; \ + psW->ui32Style &= ~(KEYBOARD_STYLE_FILL); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables filling of a keys in a keyboard widget. +//! +//! \param psWidget is a pointer to the keyboard widget to modify. +//! +//! This function enables the filling of a push key in a keyboard widget. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define KeyboardFillOn(psWidget) \ + do \ + { \ + tKeyboardWidget *psW = psWidget; \ + psW->ui32Style |= KEYBOARD_STYLE_FILL; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the font for a keyboard widget. +//! +//! \param psWidget is a pointer to the keyboard widget to modify. +//! \param pFnt is a pointer to the font to use to draw text on the keyboard. +//! +//! This function changes the font used to draw text on keys in a keyboard. +//! The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define KeyboardFontSet(psWidget, pFnt) \ + do \ + { \ + tKeyboardWidget *psW = psWidget; \ + const tFont *pF = pFnt; \ + psW->psFont = pF; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the outline color for keys in a keyboard widget. +//! +//! \param psWidget is a pointer to the keyboard widget to be modified. +//! \param ui32Color is the 24-bit RGB color to use to outline the keys. +//! +//! This function changes the color used to outline the keys in a keyboard on +//! the display. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define KeyboardOutlineColorSet(psWidget, ui32Color) \ + do \ + { \ + tKeyboardWidget *psW = psWidget; \ + psW->ui32OutlineColor = ui32Color; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables outlining of keys in a keyboard widget. +//! +//! \param psWidget is a pointer to the keyboard widget to modify. +//! +//! This function disables the outlining of a keys for a keyboard widget. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define KeyboardOutlineOff(psWidget) \ + do \ + { \ + tKeyboardWidget *psW = psWidget; \ + psW->ui32Style &= ~(KEYBOARD_STYLE_OUTLINE); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables outlining of keys in a keyboard widget. +//! +//! \param psWidget is a pointer to the keyboard widget to modify. +//! +//! This function enables the outlining of keys for a keyboard widget. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define KeyboardOutlineOn(psWidget) \ + do \ + { \ + tKeyboardWidget *psW = psWidget; \ + psW->ui32Style |= KEYBOARD_STYLE_OUTLINE; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the text color of keys in a keyboard widget. +//! +//! \param psWidget is a pointer to the keyboard widget to be modified. +//! \param ui32Color is the 24-bit RGB color to use to draw text on the keys. +//! +//! This function changes the color used to draw text on the keys on the +//! display. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define KeyboardTextColorSet(psWidget, ui32Color) \ + do \ + { \ + tKeyboardWidget *psW = psWidget; \ + psW->ui32TextColor = ui32Color; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables opaque text on keys in a keyboard widget. +//! +//! \param psWidget is a pointer to the keyboard widget to modify. +//! +//! This function disables the use of opaque text on a keyboard. When +//! not using opaque text, only the foreground pixels of the text are drawn on +//! the screen, allowing the previously drawn pixels (such as the key image) +//! to show through the text. +//! +//! \return None. +// +//***************************************************************************** +#define KeyboardTextOpaqueOff(psWidget) \ + do \ + { \ + tKeyboardWidget *psW = psWidget; \ + psW->ui32Style &= ~(KEYBOARD_STYLE_TEXT_OPAQUE); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables opaque text on a keyboard widget. +//! +//! \param psWidget is a pointer to the keyboard widget to modify. +//! +//! This function enables the use of opaque text on a keyboard. When +//! using opaque text, both the foreground and background pixels of the text +//! are drawn on the screen, blocking out the previously drawn pixels. +//! +//! \return None. +// +//***************************************************************************** +#define KeyboardTextOpaqueOn(psWidget) \ + do \ + { \ + tKeyboardWidget *psW = psWidget; \ + psW->ui32Style |= KEYBOARD_STYLE_TEXT_OPAQUE; \ + } \ + while(0) + +//***************************************************************************** +// +//! The total number of keyboards in the g_psKeyboardUSEnglish array. +// +//***************************************************************************** +#define NUM_KEYBOARD_US_ENGLISH 3 + +extern const tKeyboard g_psKeyboardUSEnglish[NUM_KEYBOARD_US_ENGLISH]; + +//***************************************************************************** +// +// Prototypes for the keyboard widget APIs. +// +//***************************************************************************** +extern int32_t KeyboardMsgProc(tWidget *psWidget, uint32_t ui32Msg, + uint32_t ui32Param1, uint32_t ui32Param2); +extern void KeyboardInit(tKeyboardWidget *psWidget, const tDisplay *psDisplay, + int32_t i32X, int32_t i32Y, int32_t i32Width, + int32_t i32Height); + +//***************************************************************************** +// +// Mark the end of the C bindings section for C++ compilers. +// +//***************************************************************************** +#ifdef __cplusplus +} +#endif + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** + +#endif //__KEYBOARD_H__ diff --git a/grlib/line.c b/grlib/line.c new file mode 100644 index 0000000..225fd96 --- /dev/null +++ b/grlib/line.c @@ -0,0 +1,639 @@ +//***************************************************************************** +// +// line.c - Routines for drawing lines. +// +// Copyright (c) 2007-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#include +#include +#include "driverlib/debug.h" +#include "grlib/grlib.h" + +//***************************************************************************** +// +//! \addtogroup primitives_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +//! Draws a horizontal line. +//! +//! \param pContext is a pointer to the drawing context to use. +//! \param i32X1 is the X coordinate of one end of the line. +//! \param i32X2 is the X coordinate of the other end of the line. +//! \param i32Y is the Y coordinate of the line. +//! +//! This function draws a horizontal line, taking advantage of the fact that +//! the line is horizontal to draw it more efficiently. The clipping of the +//! horizontal line to the clipping rectangle is performed within this routine; +//! the display driver's horizontal line routine is used to perform the actual +//! line drawing. +//! +//! \return None. +// +//***************************************************************************** +void +GrLineDrawH(const tContext *pContext, int32_t i32X1, int32_t i32X2, + int32_t i32Y) +{ + int32_t i32Temp; + + // + // Check the arguments. + // + ASSERT(pContext); + + // + // If the Y coordinate of this line is not in the clipping region, then + // there is nothing to be done. + // + if((i32Y < pContext->sClipRegion.i16YMin) || + (i32Y > pContext->sClipRegion.i16YMax)) + { + return; + } + + // + // Swap the X coordinates if the first is larger than the second. + // + if(i32X1 > i32X2) + { + i32Temp = i32X1; + i32X1 = i32X2; + i32X2 = i32Temp; + } + + // + // If the entire line is outside the clipping region, then there is nothing + // to be done. + // + if((i32X1 > pContext->sClipRegion.i16XMax) || + (i32X2 < pContext->sClipRegion.i16XMin)) + { + return; + } + + // + // Clip the starting coordinate to the left side of the clipping region if + // required. + // + if(i32X1 < pContext->sClipRegion.i16XMin) + { + i32X1 = pContext->sClipRegion.i16XMin; + } + + // + // Clip the ending coordinate to the right side of the clipping region if + // required. + // + if(i32X2 > pContext->sClipRegion.i16XMax) + { + i32X2 = pContext->sClipRegion.i16XMax; + } + + // + // Call the low level horizontal line drawing routine. + // + DpyLineDrawH(pContext->psDisplay, i32X1, i32X2, i32Y, + pContext->ui32Foreground); +} + +//***************************************************************************** +// +//! Draws a vertical line. +//! +//! \param pContext is a pointer to the drawing context to use. +//! \param i32X is the X coordinate of the line. +//! \param i32Y1 is the Y coordinate of one end of the line. +//! \param i32Y2 is the Y coordinate of the other end of the line. +//! +//! This function draws a vertical line, taking advantage of the fact that the +//! line is vertical to draw it more efficiently. The clipping of the vertical +//! line to the clipping rectangle is performed within this routine; the +//! display driver's vertical line routine is used to perform the actual line +//! drawing. +//! +//! \return None. +// +//***************************************************************************** +void +GrLineDrawV(const tContext *pContext, int32_t i32X, int32_t i32Y1, + int32_t i32Y2) +{ + int32_t i32Temp; + + // + // Check the arguments. + // + ASSERT(pContext); + + // + // If the X coordinate of this line is not within the clipping region, then + // there is nothing to be done. + // + if((i32X < pContext->sClipRegion.i16XMin) || + (i32X > pContext->sClipRegion.i16XMax)) + { + return; + } + + // + // Swap the Y coordinates if the first is larger than the second. + // + if(i32Y1 > i32Y2) + { + i32Temp = i32Y1; + i32Y1 = i32Y2; + i32Y2 = i32Temp; + } + + // + // If the entire line is out of the clipping region, then there is nothing + // to be done. + // + if((i32Y1 > pContext->sClipRegion.i16YMax) || + (i32Y2 < pContext->sClipRegion.i16YMin)) + { + return; + } + + // + // Clip the starting coordinate to the top side of the clipping region if + // required. + // + if(i32Y1 < pContext->sClipRegion.i16YMin) + { + i32Y1 = pContext->sClipRegion.i16YMin; + } + + // + // Clip the ending coordinate to the bottom side of the clipping region if + // required. + // + if(i32Y2 > pContext->sClipRegion.i16YMax) + { + i32Y2 = pContext->sClipRegion.i16YMax; + } + + // + // Call the low level vertical line drawing routine. + // + DpyLineDrawV(pContext->psDisplay, i32X, i32Y1, i32Y2, + pContext->ui32Foreground); +} + +//***************************************************************************** +// +//! Computes the clipping code used by the Cohen-Sutherland clipping algorithm. +//! +//! \param pContext is a pointer to the drawing context to use. +//! \param i32X is the X coordinate of the point. +//! \param i32Y is the Y coordinate of the point. +//! +//! This function computes the clipping code used by the Cohen-Sutherland +//! clipping algorithm. Clipping is performed by classifying the endpoints of +//! the line based on their relation to the clipping region; this determines +//! those relationships. +//! +//! \return Returns the clipping code. +// +//***************************************************************************** +static int32_t +GrClipCodeGet(const tContext *pContext, int32_t i32X, int32_t i32Y) +{ + int32_t i32Code; + + // + // Initialize the clipping code to zero. + // + i32Code = 0; + + // + // Set bit zero of the clipping code if the Y coordinate is above the + // clipping region. + // + if(i32Y < pContext->sClipRegion.i16YMin) + { + i32Code |= 1; + } + + // + // Set bit one of the clipping code if the Y coordinate is below the + // clipping region. + // + if(i32Y > pContext->sClipRegion.i16YMax) + { + i32Code |= 2; + } + + // + // Set bit two of the clipping code if the X coordinate is to the left of + // the clipping region. + // + if(i32X < pContext->sClipRegion.i16XMin) + { + i32Code |= 4; + } + + // + // Set bit three of the clipping code if the X coordinate is to the right + // of the clipping region. + // + if(i32X > pContext->sClipRegion.i16XMax) + { + i32Code |= 8; + } + + // + // Return the clipping code. + // + return(i32Code); +} + +//***************************************************************************** +// +//! Clips a line to the clipping region. +//! +//! \param pContext is a pointer to the drawing context to use. +//! \param pi32X1 is the X coordinate of the start of the line. +//! \param pi32Y1 is the Y coordinate of the start of the line. +//! \param pi32X2 is the X coordinate of the end of the line. +//! \param pi32Y2 is the Y coordinate of the end of the line. +//! +//! This function clips a line to the extents of the clipping region using the +//! Cohen-Sutherland clipping algorithm. The ends of the line are classified +//! based on their relation to the clipping region, and the codes are used to +//! either trivially accept a line (both end points within the clipping +//! region), trivially reject a line (both end points to one side of the +//! clipping region), or to adjust an endpoint one axis at a time to the edge +//! of the clipping region until the line can either be trivially accepted or +//! trivially rejected. +//! +//! The provided coordinates are modified such that they reside within the +//! extents of the clipping region if the line is not rejected. If it is +//! rejected, the coordinates may be modified during the process of attempting +//! to clip them. +//! +//! \return Returns one if the clipped line lies within the extent of the +//! clipping region and zero if it does not. +// +//***************************************************************************** +static int32_t +GrLineClip(const tContext *pContext, int32_t *pi32X1, int32_t *pi32Y1, + int32_t *pi32X2, int32_t *pi32Y2) +{ + int32_t i32Code, i32Code1, i32Code2, i32X, i32Y; + + // + // Compute the clipping codes for the two endpoints of the line. + // + i32Code1 = GrClipCodeGet(pContext, *pi32X1, *pi32Y1); + i32Code2 = GrClipCodeGet(pContext, *pi32X2, *pi32Y2); + + // + // Loop forever. This loop will be explicitly broken out of when the line + // is either trivially accepted or trivially rejected. + // + while(1) + { + // + // If both codes are zero, then both points lie within the extent of + // the clipping region. In this case, trivally accept the line. + // + if((i32Code1 == 0) && (i32Code2 == 0)) + { + return(1); + } + + // + // If the intersection of the codes is non-zero, then the line lies + // entirely off one edge of the clipping region. In this case, + // trivally reject the line. + // + if((i32Code1 & i32Code2) != 0) + { + return(0); + } + + // + // Determine the end of the line to move. The first end of the line is + // moved until it is within the clipping region, and then the second + // end of the line is moved until it is also within the clipping + // region. + // + if(i32Code1) + { + i32Code = i32Code1; + } + else + { + i32Code = i32Code2; + } + + // + // See if this end of the line lies above the clipping region. + // + if(i32Code & 1) + { + // + // Move this end of the line to the intersection of the line and + // the top of the clipping region. + // + i32X = (*pi32X1 + (((*pi32X2 - *pi32X1) * + (pContext->sClipRegion.i16YMin - *pi32Y1)) / + (*pi32Y2 - *pi32Y1))); + i32Y = pContext->sClipRegion.i16YMin; + } + + // + // Otherwise, see if this end of the line lies below the clipping + // region. + // + else if(i32Code & 2) + { + // + // Move this end of the line to the intersection of the line and + // the bottom of the clipping region. + // + i32X = (*pi32X1 + (((*pi32X2 - *pi32X1) * + (pContext->sClipRegion.i16YMax - *pi32Y1)) / + (*pi32Y2 - *pi32Y1))); + i32Y = pContext->sClipRegion.i16YMax; + } + + // + // Otherwise, see if this end of the line lies to the left of the + // clipping region. + // + else if(i32Code & 4) + { + // + // Move this end of the line to the intersection of the line and + // the left side of the clipping region. + // + i32X = pContext->sClipRegion.i16XMin; + i32Y = (*pi32Y1 + (((*pi32Y2 - *pi32Y1) * + (pContext->sClipRegion.i16XMin - *pi32X1)) / + (*pi32X2 - *pi32X1))); + } + + // + // Otherwise, this end of the line lies to the right of the clipping + // region. + // + else + { + // + // Move this end of the line to the intersection of the line and + // the right side of the clipping region. + // + i32X = pContext->sClipRegion.i16XMax; + i32Y = (*pi32Y1 + (((*pi32Y2 - *pi32Y1) * + (pContext->sClipRegion.i16XMax - *pi32X1)) / + (*pi32X2 - *pi32X1))); + } + + // + // See which end of the line just moved. + // + if(i32Code1) + { + // + // Save the new coordinates for the start of the line. + // + *pi32X1 = i32X; + *pi32Y1 = i32Y; + + // + // Recompute the clipping code for the start of the line. + // + i32Code1 = GrClipCodeGet(pContext, i32X, i32Y); + } + else + { + // + // Save the new coordinates for the end of the line. + // + *pi32X2 = i32X; + *pi32Y2 = i32Y; + + // + // Recompute the clipping code for the end of the line. + // + i32Code2 = GrClipCodeGet(pContext, i32X, i32Y); + } + } +} + +//***************************************************************************** +// +//! Draws a line. +//! +//! \param pContext is a pointer to the drawing context to use. +//! \param i32X1 is the X coordinate of the start of the line. +//! \param i32Y1 is the Y coordinate of the start of the line. +//! \param i32X2 is the X coordinate of the end of the line. +//! \param i32Y2 is the Y coordinate of the end of the line. +//! +//! This function draws a line, utilizing GrLineDrawH() and GrLineDrawV() to +//! draw the line as efficiently as possible. The line is clipped to the +//! clippping rectangle using the Cohen-Sutherland clipping algorithm, and then +//! scan converted using Bresenham's line drawing algorithm. +//! +//! \return None. +// +//***************************************************************************** +void +GrLineDraw(const tContext *pContext, int32_t i32X1, int32_t i32Y1, + int32_t i32X2, int32_t i32Y2) +{ + int32_t i32Error, i32DeltaX, i32DeltaY, i32YStep, bSteep; + + // + // Check the arguments. + // + ASSERT(pContext); + + // + // See if this is a vertical line. + // + if(i32X1 == i32X2) + { + // + // It is more efficient to avoid Bresenham's algorithm when drawing a + // vertical line, so use the vertical line routine to draw this line. + // + GrLineDrawV(pContext, i32X1, i32Y1, i32Y2); + + // + // The line has ben drawn, so return. + // + return; + } + + // + // See if this is a horizontal line. + // + if(i32Y1 == i32Y2) + { + // + // It is more efficient to avoid Bresenham's algorithm when drawing a + // horizontal line, so use the horizontal line routien to draw this + // line. + // + GrLineDrawH(pContext, i32X1, i32X2, i32Y1); + + // + // The line has ben drawn, so return. + // + return; + } + + // + // Clip this line if necessary, and return without drawing anything if the + // line does not cross the clipping region. + // + if(GrLineClip(pContext, &i32X1, &i32Y1, &i32X2, &i32Y2) == 0) + { + return; + } + + // + // Determine if the line is steep. A steep line has more motion in the Y + // direction than the X direction. + // + if(((i32Y2 > i32Y1) ? (i32Y2 - i32Y1) : (i32Y1 - i32Y2)) > + ((i32X2 > i32X1) ? (i32X2 - i32X1) : (i32X1 - i32X2))) + { + bSteep = 1; + } + else + { + bSteep = 0; + } + + // + // If the line is steep, then swap the X and Y coordinates. + // + if(bSteep) + { + i32Error = i32X1; + i32X1 = i32Y1; + i32Y1 = i32Error; + i32Error = i32X2; + i32X2 = i32Y2; + i32Y2 = i32Error; + } + + // + // If the starting X coordinate is larger than the ending X coordinate, + // then swap the start and end coordinates. + // + if(i32X1 > i32X2) + { + i32Error = i32X1; + i32X1 = i32X2; + i32X2 = i32Error; + i32Error = i32Y1; + i32Y1 = i32Y2; + i32Y2 = i32Error; + } + + // + // Compute the difference between the start and end coordinates in each + // axis. + // + i32DeltaX = i32X2 - i32X1; + i32DeltaY = (i32Y2 > i32Y1) ? (i32Y2 - i32Y1) : (i32Y1 - i32Y2); + + // + // Initialize the error term to negative half the X delta. + // + i32Error = -i32DeltaX / 2; + + // + // Determine the direction to step in the Y axis when required. + // + if(i32Y1 < i32Y2) + { + i32YStep = 1; + } + else + { + i32YStep = -1; + } + + // + // Loop through all the points along the X axis of the line. + // + for(; i32X1 <= i32X2; i32X1++) + { + // + // See if this is a steep line. + // + if(bSteep) + { + // + // Plot this point of the line, swapping the X and Y coordinates. + // + DpyPixelDraw(pContext->psDisplay, i32Y1, i32X1, + pContext->ui32Foreground); + } + else + { + // + // Plot this point of the line, using the coordinates as is. + // + DpyPixelDraw(pContext->psDisplay, i32X1, i32Y1, + pContext->ui32Foreground); + } + + // + // Increment the error term by the Y delta. + // + i32Error += i32DeltaY; + + // + // See if the error term is now greater than zero. + // + if(i32Error > 0) + { + // + // Take a step in the Y axis. + // + i32Y1 += i32YStep; + + // + // Decrement the error term by the X delta. + // + i32Error -= i32DeltaX; + } + } +} + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** diff --git a/grlib/listbox.c b/grlib/listbox.c new file mode 100644 index 0000000..dc1f4f3 --- /dev/null +++ b/grlib/listbox.c @@ -0,0 +1,750 @@ +//***************************************************************************** +// +// listbox.c - A listbox widget. +// +// Copyright (c) 2008-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#include +#include +#include "driverlib/debug.h" +#include "grlib/grlib.h" +#include "grlib/widget.h" +#include "grlib/listbox.h" + +//***************************************************************************** +// +//! \addtogroup listbox_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +// Make sure that the abs() macro is defined. +// +//***************************************************************************** +#ifndef abs +#define abs(a) (((a) >= 0) ? (a) : (-(a))) +#endif + +//***************************************************************************** +// +// Make sure min and max are defined. +// +//***************************************************************************** +#ifndef min +#define min(a, b) (((a) < (b)) ? (a) : (b)) +#endif + +#ifndef max +#define max(a, b) (((a) < (b)) ? (b) : (a)) +#endif + +//***************************************************************************** +// +//! Draws the contents of a listbox. +//! +//! \param psWidget is a pointer to the listbox widget to be drawn. +//! +//! This function draws the contents of a listbox on the display. This is +//! called in response to a \b #WIDGET_MSG_PAINT message. +//! +//! \return None. +// +//***************************************************************************** +static void +ListBoxPaint(tWidget *psWidget) +{ + tListBoxWidget *pListBox; + tContext sCtx; + tRectangle sWidgetRect, sLineRect; + int16_t i16Height; + int32_t i32Width; + uint16_t ui16String; + + // + // Check the arguments. + // + ASSERT(psWidget); + + // + // Convert the generic widget pointer into a listbox widget pointer. + // + pListBox = (tListBoxWidget *)psWidget; + + // + // Initialize a drawing context. + // + GrContextInit(&sCtx, psWidget->psDisplay); + GrContextFontSet(&sCtx, pListBox->psFont); + + // + // Initialize the clipping region based on the extents of this listbox. + // + sWidgetRect = psWidget->sPosition; + GrContextClipRegionSet(&sCtx, &sWidgetRect); + + // + // See if the listbox outline style is selected. + // + if(pListBox->ui32Style & LISTBOX_STYLE_OUTLINE) + { + // + // Outline the listbox with the outline color. + // + GrContextForegroundSet(&sCtx, pListBox->ui32OutlineColor); + GrRectDraw(&sCtx, &(psWidget->sPosition)); + + // + // Shrink the widget region by one pixel on each side and draw another + // rectangle, this time in the background color. This ensures that the + // text will not interfere with the colored border. + // + sWidgetRect.i16XMin++; + sWidgetRect.i16YMin++; + sWidgetRect.i16XMax--; + sWidgetRect.i16YMax--; + GrContextForegroundSet(&sCtx, pListBox->ui32BackgroundColor); + GrRectDraw(&sCtx, &sWidgetRect); + + // + // Reduce the size of the rectangle by another pixel to get the final + // area into which we will put the text. + // + sWidgetRect.i16XMin++; + sWidgetRect.i16YMin++; + sWidgetRect.i16XMax--; + sWidgetRect.i16YMax--; + GrContextClipRegionSet(&sCtx, &sWidgetRect); + } + + // + // Start drawing at the top of the widget. + // + sLineRect = sWidgetRect; + ui16String = pListBox->ui16StartEntry; + i16Height = GrFontHeightGet(pListBox->psFont); + + // + // Keep drawing until we reach the bottom of the listbox or run out of + // strings to draw. + // + while((sLineRect.i16YMin < sWidgetRect.i16YMax) && + (ui16String < pListBox->ui16Populated)) + { + // + // Calculate the rectangle that will enclose this line of text. + // + sLineRect.i16YMax = sLineRect.i16YMin + i16Height - 1; + + // + // Set foreground and background colors appropriately. + // + GrContextBackgroundSet(&sCtx, ((ui16String == pListBox->i16Selected) ? + pListBox->ui32SelectedBackgroundColor : + pListBox->ui32BackgroundColor)); + GrContextForegroundSet(&sCtx, ((ui16String == pListBox->i16Selected) ? + pListBox->ui32SelectedTextColor : + pListBox->ui32TextColor)); + + // + // Draw the text. + // + GrStringDraw(&sCtx, pListBox->ppcText[ui16String], -1, + sLineRect.i16XMin, sLineRect.i16YMin, 1); + + // + // Determine the width of the string we just rendered. + // + i32Width = GrStringWidthGet(&sCtx, pListBox->ppcText[ui16String], -1); + + // + // Do we need to clear the area to the right of the string? + // + if(i32Width < (sLineRect.i16XMax - sLineRect.i16XMin + 1)) + { + // + // Yes - we need to fill the right side of this string with + // background color. + // + GrContextForegroundSet(&sCtx, + ((ui16String == pListBox->i16Selected) ? + pListBox->ui32SelectedBackgroundColor : + pListBox->ui32BackgroundColor)); + sLineRect.i16XMin += i32Width; + GrRectFill(&sCtx, &sLineRect); + sLineRect.i16XMin = sWidgetRect.i16XMin; + } + + // + // Move on to the next string, wrapping if necessary. + // + ui16String++; + if(ui16String == pListBox->ui16MaxEntries) + { + ui16String = 0; + } + sLineRect.i16YMin += i16Height; + + // + // If we are wrapping and got back at the oldest entry, we drop out. + // + if(ui16String == pListBox->ui16OldestEntry) + { + break; + } + } + + // + // Fill the remainder of the listbox area with the background color. + // + if(sLineRect.i16YMin < sWidgetRect.i16YMax) + { + // + // Determine the rectangle to be filled. + // + sLineRect.i16YMax = sWidgetRect.i16YMax; + + // + // Fill the rectangle with the background color. + // + GrContextForegroundSet(&sCtx, pListBox->ui32BackgroundColor); + GrRectFill(&sCtx, &sLineRect); + } +} + +//***************************************************************************** +// +// Handles pointer messages for a listbox widget. +// +// \param pListBox is a pointer to the listbox widget. +// \param ui32Msg is the message. +// \param i32X is the X coordinate of the pointer. +// \param i32Y is the Y coordinate of the pointer. +// +// This function receives pointer messages intended for this listbox widget +// and processes them accordingly. +// +// \return Returns a value appropriate to the supplied message. +// +//***************************************************************************** +static int32_t +ListBoxPointer(tListBoxWidget *pListBox, uint32_t ui32Msg, int32_t i32X, + int32_t i32Y) +{ + int32_t i32LineNum, i32Entry, i32Visible, i32MaxUp, i32MaxDown, i32Scroll; + + switch(ui32Msg) + { + // + // The touchscreen has been pressed. + // + case WIDGET_MSG_PTR_DOWN: + { + // + // Is the pointer press within the bounds of this widget? + // + if(!GrRectContainsPoint(&(pListBox->sBase.sPosition), i32X, i32Y)) + { + // + // This is not a message for us so return 0 to indicate that + // we did not process it. + // + return(0); + } + else + { + // + // The pointer was pressed within this control. Remember the Y + // coordinate and reset or scrolling flag. + // + pListBox->ui16Scrolled = 0; + pListBox->i32PointerY = i32Y; + + // + // Return 1 to indicate to the widget manager that we processed + // the message. This widget will now receive all pointer move + // messages until the pointer is released. + // + return(1); + } + } + + // + // The touchscreen has been released. + // + case WIDGET_MSG_PTR_UP: + { + // + // If the pointer is still within the bounds of the control and + // we have not scrolled the contents since the last time the + // pointer was pressed, we assume that this is a tap rather than + // a drag and select the element that falls beneath the current + // pointer position. If the pointer is outside our control, if + // we have scrolled already or if the control is locked, don't + // change the selection. + // + if((pListBox->ui16Scrolled == 0) && + !(pListBox->ui32Style & LISTBOX_STYLE_LOCKED) && + GrRectContainsPoint(&(pListBox->sBase.sPosition), i32X, i32Y)) + { + // + // It seems we need to change the selected element. What is + // the display line number that has been clicked on? + // + i32LineNum = (i32Y - + (int32_t)pListBox->sBase.sPosition.i16YMin) / + GrFontHeightGet(pListBox->psFont); + + // + // We now know the location of the click as a number of text + // lines from the top of the list box. Now determine what + // entry is shown there, remembering that the index may wrap. + // + i32Entry = ((int32_t)pListBox->ui16StartEntry + i32LineNum) % + pListBox->ui16MaxEntries; + + // + // If this is an unpopulated entry or the current selection, + // clear the selection. + // + if((i32Entry >= (int32_t)pListBox->ui16Populated) || + (i32Entry == (int32_t)pListBox->i16Selected)) + { + // + // Yes - update the selection and force a repaint. + // + pListBox->i16Selected = (int16_t)0xFFFF; + } + else + { + // + // The pointer was tapped on a valid entry other than the + // current selection so change the selection. + // + pListBox->i16Selected = (int16_t)i32Entry; + } + + // + // Force a repaint of the widget. + // + WidgetPaint((tWidget *)pListBox); + + // + // Tell the client that the selection changed. + // + if(pListBox->pfnOnChange) + { + (pListBox->pfnOnChange)((tWidget *)pListBox, + pListBox->i16Selected); + } + } + + // + // We process all pointer up messages so return 1 to tell the + // widget manager this. + // + return(1); + } + + // + // The pointer is moving while pressed. + // + case WIDGET_MSG_PTR_MOVE: + { + // + // How far has the pointer moved vertically from the point where it + // was pressed or where we last registered a scroll? i32LineNum + // will be negative for downward scrolling. + // + i32LineNum = pListBox->i32PointerY - i32Y; + + // + // If this distance is greater than or equal to the height of a + // line of text, we need to check to see if we need to scroll the + // list box contents. + // + if(abs(i32LineNum) >= GrFontHeightGet(pListBox->psFont)) + { + // + // We have to scroll if this is possible. How many lines can + // be visible on the display? + // + i32Visible = (pListBox->sBase.sPosition.i16YMax - + pListBox->sBase.sPosition.i16YMin) / + (int32_t)GrFontHeightGet(pListBox->psFont); + + // + // If we have fewer strings in the listbox than there are lines + // on the display, scrolling is not possible so give up now. + // + if(i32Visible > (int32_t)pListBox->ui16Populated) + { + return(1); + } + + // + // How many lines of scrolling does the latest pointer position + // indicate? A negative value implies downward scrolling (i.e. + // showing earlier strings). + // + i32Scroll = i32LineNum / + (int32_t)GrFontHeightGet(pListBox->psFont); + + // + // What is the farthest we could scroll downwards (i.e. moving + // the pointer towards the bottom of the screen)? Note - this + // will be negative or 0. + // + i32MaxDown = + (pListBox->ui16StartEntry >= pListBox->ui16OldestEntry) ? + (pListBox->ui16OldestEntry - pListBox->ui16StartEntry ) : + ((pListBox->ui16OldestEntry - pListBox->ui16StartEntry) - + pListBox->ui16MaxEntries); + + // + // What is the farthest we could scroll upwards? Note - this + // will be a positive number. + // + i32MaxUp = ((int32_t)pListBox->ui16Populated - i32Visible) + + i32MaxDown; + + // + // Determine the actual scroll distance given the maximum + // distances calculated. + // + i32Scroll = min(i32Scroll, i32MaxUp); + i32Scroll = max(i32Scroll, i32MaxDown); + + if(i32Scroll) + { + int32_t i32Temp; + + // + // Adjust the start entry appropriately, taking care to + // handle the wrap case. The use of a temporary variable + // here is required to work around a compiler bug which + // resulted in an invalid value of pListBox->ui16StartEntry + // following the calculation. + // + i32Temp = pListBox->ui16StartEntry; + i32Temp += i32Scroll; + i32Temp %= (int32_t)pListBox->ui16MaxEntries; + pListBox->ui16StartEntry = (uint16_t)i32Temp; + + // + // Remember that we scrolled. + // + pListBox->ui16Scrolled = 1; + + // + // Adjust the pointer position we record to take into account + // the amount we just scrolled. + // + pListBox->i32PointerY -= (i32Scroll * + GrFontHeightGet(pListBox->psFont)); + + // + // Repaint the contents of the widget. + // + WidgetPaint((tWidget *)pListBox); + } + } + + return(1); + } + } + + // + // We don't handle any other messages so return 0 if we get these. + // + return(0); +} + +//***************************************************************************** +// +//! Handles messages for a listbox widget. +//! +//! \param psWidget is a pointer to the listbox widget. +//! \param ui32Msg is the message. +//! \param ui32Param1 is the first parameter to the message. +//! \param ui32Param2 is the second parameter to the message. +//! +//! This function receives messages intended for this listbox widget and +//! processes them accordingly. The processing of the message varies based on +//! the message in question. +//! +//! Unrecognized messages are handled by calling WidgetDefaultMsgProc(). +//! +//! \return Returns a value appropriate to the supplied message. +// +//***************************************************************************** +int32_t +ListBoxMsgProc(tWidget *psWidget, uint32_t ui32Msg, uint32_t ui32Param1, + uint32_t ui32Param2) +{ + tListBoxWidget *pListBox; + + // + // Check the arguments. + // + ASSERT(psWidget); + + // + // Convert the generic pointer to a list box pointer. + // + pListBox = (tListBoxWidget *)psWidget; + + // + // Determine which message is being sent. + // + switch(ui32Msg) + { + // + // A pointer message has been received. + // + case WIDGET_MSG_PTR_DOWN: + case WIDGET_MSG_PTR_UP: + case WIDGET_MSG_PTR_MOVE: + return(ListBoxPointer(pListBox, ui32Msg, (int32_t)ui32Param1, + (int32_t)ui32Param2)); + + // + // The widget paint request has been sent. + // + case WIDGET_MSG_PAINT: + { + // + // Handle the widget paint request. + // + ListBoxPaint(psWidget); + + // + // Return one to indicate that the message was successfully + // processed. + // + return(1); + } + + // + // An unknown request has been sent. + // + default: + { + // + // Let the default message handler process this message. + // + return(WidgetDefaultMsgProc(psWidget, ui32Msg, ui32Param1, + ui32Param2)); + } + } +} + +//***************************************************************************** +// +//! Initializes a listbox widget. +//! +//! \param psWidget is a pointer to the listbox widget to initialize. +//! \param psDisplay is a pointer to the display on which to draw the listbox. +//! \param ppcText is a pointer to an array of character pointers which will +//! hold the strings that the listbox displays. +//! \param ui16MaxEntries provides the total number of entries in the +//! \e ppcText array. +//! \param ui16PopulatedEntries provides the number of entries in the +//! \e ppcText array which are populated. +//! \param i32X is the X coordinate of the upper left corner of the listbox. +//! \param i32Y is the Y coordinate of the upper left corner of the listbox. +//! \param i32Width is the width of the listbox. +//! \param i32Height is the height of the listbox. +//! +//! This function initializes the provided listbox widget. +//! +//! \return None. +// +//***************************************************************************** +void +ListBoxInit(tListBoxWidget *psWidget, const tDisplay *psDisplay, + const char **ppcText, uint16_t ui16MaxEntries, + uint16_t ui16PopulatedEntries, int32_t i32X, int32_t i32Y, + int32_t i32Width, int32_t i32Height) +{ + uint32_t ui32Idx; + + // + // Check the arguments. + // + ASSERT(psWidget); + ASSERT(psDisplay); + + // + // Clear out the widget structure. + // + for(ui32Idx = 0; ui32Idx < sizeof(tListBoxWidget); ui32Idx += 4) + { + ((uint32_t *)psWidget)[ui32Idx / 4] = 0; + } + + // + // Set the size of the listbox widget structure. + // + psWidget->sBase.i32Size = sizeof(tListBoxWidget); + + // + // Mark this widget as fully disconnected. + // + psWidget->sBase.psParent = 0; + psWidget->sBase.psNext = 0; + psWidget->sBase.psChild = 0; + + // + // Save the display pointer. + // + psWidget->sBase.psDisplay = psDisplay; + + // + // Set the extents of this listbox. + // + psWidget->sBase.sPosition.i16XMin = i32X; + psWidget->sBase.sPosition.i16YMin = i32Y; + psWidget->sBase.sPosition.i16XMax = i32X + i32Width - 1; + psWidget->sBase.sPosition.i16YMax = i32Y + i32Height - 1; + + // + // Use the listbox message handler to process messages to this listbox. + // + psWidget->sBase.pfnMsgProc = ListBoxMsgProc; + + // + // Initialize some of the widget fields that are not accessible via + // macros. + // + psWidget->ppcText = ppcText; + psWidget->ui16MaxEntries = ui16MaxEntries; + psWidget->ui16Populated = ui16PopulatedEntries; + psWidget->i16Selected = (int16_t)0xFFFF; +} + +//***************************************************************************** +// +//! Adds a line of text to a listbox. +//! +//! \param pListBox is a pointer to the listbox widget that is to receive the +//! new text string. +//! \param pcTxt is a pointer to the string that is to be added to the listbox. +//! +//! This function adds a new string to the listbox. If the listbox has +//! style \b #LISTBOX_STYLE_WRAP and the current string table is full, this +//! function will discard the oldest string and replace it with the one passed +//! here. If this style flag is absent, the function will return -1 if no +//! empty entries exist in the string table for the widget. +//! +//! The display is not automatically updated as a result of this function call. +//! An application must call WidgetPaint() to update the display after adding +//! a new string to the listbox. +//! +//! \note To replace the string associated with a particular, existing element +//! in the listbox, use ListBoxTextSet(). +//! +//! \return Returns the string table index into which the new string has been +//! placed if successful or -1 if the string table is full and +//! \b #LISTBOX_STYLE_WRAP is not set. +// +//***************************************************************************** +int32_t ListBoxTextAdd(tListBoxWidget *pListBox, const char *pcTxt) +{ + uint32_t ui32Index; + + // + // Is the list box full? + // + if(pListBox->ui16Populated == pListBox->ui16MaxEntries) + { + // + // The box is already full. If the wrap style is not set, fail + // the call. + // + if(!(pListBox->ui32Style & LISTBOX_STYLE_WRAP)) + { + // + // The listbox is full and it is not configured to wrap so we can't + // add another string to it. + // + return(-1); + } + else + { + // + // We are wrapping so replace the oldest entry in the box. + // + ui32Index = pListBox->ui16OldestEntry; + + // + // Check to see if we are displaying the oldest entry and, if so, + // move the start entry on by one to keep the display order + // correct. + // + if(pListBox->ui16OldestEntry == pListBox->ui16StartEntry) + { + pListBox->ui16StartEntry++; + if(pListBox->ui16StartEntry == pListBox->ui16MaxEntries) + { + pListBox->ui16StartEntry = 0; + } + } + + // + // The new oldest entry is the next one. Update the index and + // take care to wrap if we reach the end of the string table. + // + pListBox->ui16OldestEntry++; + if(pListBox->ui16OldestEntry == pListBox->ui16MaxEntries) + { + pListBox->ui16OldestEntry = 0; + } + } + } + else + { + // + // The listbox is not full so add the new string to the first free + // slot in the string table. + // + ui32Index = pListBox->ui16Populated; + pListBox->ui16Populated++; + } + + // + // Save the new string in the appropriate string table entry. + // + pListBox->ppcText[ui32Index] = pcTxt; + + // + // Tell the caller which string table entry was added. + // + return((int32_t)ui32Index); +} + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** diff --git a/grlib/listbox.h b/grlib/listbox.h new file mode 100644 index 0000000..5db084e --- /dev/null +++ b/grlib/listbox.h @@ -0,0 +1,758 @@ +//***************************************************************************** +// +// listbox.h - Prototypes for the listbox widget. +// +// Copyright (c) 2008-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#ifndef __LISTBOX_H__ +#define __LISTBOX_H__ + +//***************************************************************************** +// +//! \addtogroup listbox_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +// If building with a C++ compiler, make all of the definitions in this header +// have a C binding. +// +//***************************************************************************** +#ifdef __cplusplus +extern "C" +{ +#endif + +//***************************************************************************** +// +//! The structure that describes a listbox widget. +// +//***************************************************************************** +typedef struct +{ + // + //! The generic widget information. + // + tWidget sBase; + + // + //! The style for this widget. This is a set of flags defined by + //! LISTBOX_STYLE_xxx. + // + uint32_t ui32Style; + + // + //! The 24-bit RGB color used as the background for the listbox. + // + uint32_t ui32BackgroundColor; + + // + //! The 24-bit RGB color used as the background for the selected entry + //! in the listbox. + // + uint32_t ui32SelectedBackgroundColor; + + // + //! The 24-bit RGB color used to draw text on this listbox. + // + uint32_t ui32TextColor; + + // + //! The 24-bit RGB color used to draw the selected text on this listbox. + // + uint32_t ui32SelectedTextColor; + + + // + //! The 24-bit RGB color used to outline this listbox, if + //! LISTBOX_STYLE_OUTLINE is selected. + // + uint32_t ui32OutlineColor; + + // + //! A pointer to the font used to render the listbox text. + // + const tFont *psFont; + + // + //! A pointer to the array of string pointers representing the contents of + //! the list box. + // + const char **ppcText; + + // + //! The number of elements in the array pointed to by pci8Text. + // + uint16_t ui16MaxEntries; + + // + //! The number of elements in the array pointed to by pci8Text which are + //! currently populated with strings. + // + uint16_t ui16Populated; + + // + //! The index of the string currently selected in the list box. If no + //! selection has been made, this will be set to 0xFFFF (-1). + // + int16_t i16Selected; + + // + //! The index of the string that appears at the top of the list box. This + //! is used by the widget class to control scrolling of the box content. + //! This is an internal variable and must not be modified by an application + //! using this widget class. + // + uint16_t ui16StartEntry; + + // + //! The index of the oldest entry in the ppcText array. This is used by the + //! widget class to determine where to add a new string if the array is + //! full and the listbox has style LISTBOX_STYLE_WRAP. This is an internal + //! variable and must not be modified by an application using this widget + //! class. + // + uint16_t ui16OldestEntry; + + // + //! A flag which we use to determine whether to change the selected element + //! when the pointer is lifted. The listbox will change the selection if + //! no scrolling was performed since the last WIDGET_MSG_PTR_DOWN was + //! received. This is an internal variable and must not be modified by + //! an application using this widget class. + // + uint16_t ui16Scrolled; + + // + //! The Y coordinate of the last pointer position we received. This is an + //! internal variable used to manage scrolling of the listbox contents and + //! must not be modified by an application using this widget class. + // + int32_t i32PointerY; + + // + //! A pointer to the application-supplied callback function. This function + //! will be called each time the selected element in the list box changes. + //! The ui16SelIndex parameter contains the index of the selected string in + //! ppcText array or, if no element is selected, 0xFFFF (-1). + // + void (*pfnOnChange)(tWidget *psWidget, int16_t ui16SelIndex); +} +tListBoxWidget; + +//***************************************************************************** +// +//! This flag indicates that the listbox should be outlined. If enabled, the +//! widget is drawn with a two pixel border, the outer, single pixel rectangle +//! of which is in the color found in the ui32OutlineColor field of the widget +//! structure and the inner rectangle in color ui32BackgroundColor. +// +//***************************************************************************** +#define LISTBOX_STYLE_OUTLINE 0x00000001 + +//***************************************************************************** +// +//! This flag indicates that the listbox is not interactive but merely displays +//! strings. Scrolling of the listbox content is supported when this flag is +//! set but widgets using this style do not make callbacks to the application +//! and do not support selection and deselection of entries. This may be used +//! if a listbox is intended, for example, as a text output or status reporting +//! control. +// +//***************************************************************************** +#define LISTBOX_STYLE_LOCKED 0x00000002 + +//***************************************************************************** +// +//! This flag controls the behavior of the listbox if a new string is added +//! when the string table (ppcText) is already full. If this style is set, the +//! oldest string in the table is replaced with new one and, if the discarded +//! string was currently displayed, the display positions will be fixed up to +//! ensure that the (new) oldest string remains at the top of the listbox. If +//! this style is not set, the attempt to set a new string will fail if the +//! table is full. +// +//***************************************************************************** +#define LISTBOX_STYLE_WRAP 0x00000004 + +//***************************************************************************** +// +//! Declares an initialized listbox widget data structure. +//! +//! \param psParent is a pointer to the parent widget. +//! \param psNext is a pointer to the sibling widget. +//! \param psChild is a pointer to the first child widget. +//! \param psDisplay is a pointer to the display on which to draw the listbox. +//! \param i32X is the X coordinate of the upper left corner of the listbox. +//! \param i32Y is the Y coordinate of the upper left corner of the listbox. +//! \param i32Width is the width of the listbox. +//! \param i32Height is the height of the listbox. +//! \param ui32Style is the style to be applied to the listbox. +//! \param ui32BgColor is the background color for the listbox. +//! \param ui32SelBgColor is the background color for the selected element in +//! the listbox. +//! \param ui32TextColor is the color used to draw text on the listbox. +//! \param ui32SelTextColor is the color used to draw the selected element +//! text in the listbox. +//! \param ui32OutlineColor is the color used to outline the listbox. +//! \param psFont is a pointer to the font to be used to draw text on the +//! listbox. +//! \param ppcText is a pointer to the string table for the listbox. +//! \param ui16MaxEntries provides the number of entries in the \e ppcText +//! array and represents the maximum number of strings the listbox can hold. +//! \param ui16PopulatedEntries indicates the number of entries in the +//! \e ppcText array that currently hold valid string for the listbox. +//! \param pfnOnChange is a pointer to the application callback for the +//! listbox. +//! +//! This macro provides an initialized listbox widget data structure, which can +//! be used to construct the widget tree at compile time in global variables +//! (as opposed to run-time via function calls). This must be assigned to a +//! variable, such as: +//! +//! \verbatim +//! tListBoxWidget g_sListBox = ListBoxStruct(...); +//! \endverbatim +//! +//! Or, in an array of variables: +//! +//! \verbatim +//! tListBoxWidget g_psListBox[] = +//! { +//! ListBoxStruct(...), +//! ListBoxStruct(...) +//! }; +//! \endverbatim +//! +//! \e ui32Style is the logical OR of the following: +//! +//! - \b #LISTBOX_STYLE_OUTLINE to indicate that the listbox should be outlined. +//! - \b #LISTBOX_STYLE_LOCKED to indicate that the listbox should ignore user +//! input and merely display its contents. +//! - \b #LISTBOX_STYLE_WRAP to indicate that the listbox should discard the +//! oldest string it contains if asked to add a new string while the string +//! table is already full. +//! +//! \return Nothing; this is not a function. +// +//***************************************************************************** +#define ListBoxStruct(psParent, psNext, psChild, psDisplay, i32X, i32Y, \ + i32Width, i32Height, ui32Style, ui32BgColor, \ + ui32SelBgColor, ui32TextColor, ui32SelTextColor, \ + ui32OutlineColor, psFont, ppcText, ui16MaxEntries, \ + ui16PopulatedEntries, pfnOnChange) \ + { \ + { \ + sizeof(tListBoxWidget), \ + (tWidget *)(psParent), \ + (tWidget *)(psNext), \ + (tWidget *)(psChild), \ + psDisplay, \ + { \ + i32X, \ + i32Y, \ + (i32X) + (i32Width) - 1, \ + (i32Y) + (i32Height) - 1 \ + }, \ + ListBoxMsgProc \ + }, \ + ui32Style, \ + ui32BgColor, \ + ui32SelBgColor, \ + ui32TextColor, \ + ui32SelTextColor, \ + ui32OutlineColor, \ + psFont, \ + ppcText, \ + ui16MaxEntries, \ + ui16PopulatedEntries, \ + (int16_t)0xFFFF, \ + 0, \ + 0, \ + 0, \ + 0, \ + pfnOnChange \ + } + +//***************************************************************************** +// +//! Declares an initialized variable containing a listbox widget data structure. +//! +//! \param sName is the name of the variable to be declared. +//! \param psParent is a pointer to the parent widget. +//! \param psNext is a pointer to the sibling widget. +//! \param psChild is a pointer to the first child widget. +//! \param psDisplay is a pointer to the display on which to draw the listbox. +//! \param i32X is the X coordinate of the upper left corner of the listbox. +//! \param i32Y is the Y coordinate of the upper left corner of the listbox. +//! \param i32Width is the width of the listbox. +//! \param i32Height is the height of the listbox. +//! \param ui32Style is the style to be applied to the listbox. +//! \param ui32BgColor is the background color for the listbox. +//! \param ui32SelBgColor is the background color for the selected element in +//! the listbox. +//! \param ui32TextColor is the color used to draw text on the listbox. +//! \param ui32SelTextColor is the color used to draw the selected element +//! text in the listbox. +//! \param ui32OutlineColor is the color used to outline the listbox. +//! \param psFont is a pointer to the font to be used to draw text on the +//! listbox. +//! \param ppcText is a pointer to the string table for the listbox. +//! \param ui16MaxEntries provides the number of entries in the \e ppcText +//! array and represents the maximum number of strings the listbox can hold. +//! \param ui16PopulatedEntries indicates the number of entries in the +//! \e ppcText array that currently hold valid string for the listbox. +//! \param pfnOnChange is a pointer to the application callback for the +//! listbox. +//! +//! This macro declares a variable containing an initialized listbox widget +//! data structure, which can be used to construct the widget tree at compile +//! time in global variables (as opposed to run-time via function calls). +//! +//! \e ui32Style is the logical OR of the following: +//! +//! - \b #LISTBOX_STYLE_OUTLINE to indicate that the listbox should be outlined. +//! - \b #LISTBOX_STYLE_LOCKED to indicate that the listbox should ignore user +//! input and merely display its contents. +//! - \b #LISTBOX_STYLE_WRAP to indicate that the listbox should discard the +//! oldest string it contains if asked to add a new string while the string +//! table is already full. +//! +//! \return Nothing; this is not a function. +// +//***************************************************************************** +#define ListBox(sName, psParent, psNext, psChild, psDisplay, i32X, i32Y, \ + i32Width, i32Height, ui32Style, ui32BgColor, ui32SelBgColor, \ + ui32TextColor, ui32SelTextColor, ui32OutlineColor, psFont, \ + ppcText, ui16MaxEntries, ui16PopulatedEntries, pfnOnChange) \ +tListBoxWidget sName = \ + ListBoxStruct(psParent, psNext, psChild, psDisplay, i32X, i32Y, i32Width, \ + i32Height, ui32Style, ui32BgColor, ui32SelBgColor, \ + ui32TextColor, ui32SelTextColor, ui32OutlineColor, psFont, \ + ppcText, ui16MaxEntries, ui16PopulatedEntries, pfnOnChange) + +//***************************************************************************** +// +//! Sets the function to call when the listbox selection changes. +//! +//! \param psWidget is a pointer to the listbox widget to modify. +//! \param pfnCallback is a pointer to the function to call. +//! +//! This function sets the function to be called when the selected element in +//! this listbox changes. If style \b #LISTBOX_STYLE_LOCKED is selected, or +//! the callback function pointer set is NULL, no callbacks will be made. +//! +//! \return None. +// +//***************************************************************************** +#define ListBoxCallbackSet(psWidget, pfnCallback) \ + do \ + { \ + tListBoxWidget *psW = psWidget; \ + psW->pfnOnChange = pfnCallback; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the background color of a listbox widget. +//! +//! \param psWidget is a pointer to the listbox widget to be modified. +//! \param ui32Color is the 24-bit RGB color to use for the listbox background. +//! +//! This function changes the color used for the listbox background on the +//! display. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ListBoxBackgroundColorSet(psWidget, ui32Color) \ + do \ + { \ + tListBoxWidget *psW = psWidget; \ + psW->ui32BackgroundColor = ui32Color; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the background color of the selected element in a listbox widget. +//! +//! \param psWidget is a pointer to the listbox widget to be modified. +//! \param ui32Color is the 24-bit RGB color to use for the background of the +//! selected element. +//! +//! This function changes the color used for the background of the selected +//! line of text on the display. The display is not updated until the next +//! paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ListBoxSelectedBackgroundColorSet(psWidget, ui32Color) \ + do \ + { \ + tListBoxWidget *psW = psWidget; \ + psW->ui32SelectedBackgroundColor = ui32Color; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the font for a listbox widget. +//! +//! \param psWidget is a pointer to the listbox widget to modify. +//! \param pFnt is a pointer to the font to use to draw text on the listbox. +//! +//! This function changes the font used to draw text on the listbox. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ListBoxFontSet(psWidget, pFnt) \ + do \ + { \ + tListBoxWidget *psW = psWidget; \ + const tFont *pF = pFnt; \ + psW->psFont = pF; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the outline color of a listbox widget. +//! +//! \param psWidget is a pointer to the listbox widget to be modified. +//! \param ui32Color is the 24-bit RGB color to use to outline the listbox. +//! +//! This function changes the color used to outline the listbox on the display. +//! The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ListBoxOutlineColorSet(psWidget, ui32Color) \ + do \ + { \ + tListBoxWidget *psW = psWidget; \ + psW->ui32OutlineColor = ui32Color; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables outlining of a listbox widget. +//! +//! \param psWidget is a pointer to the listbox widget to modify. +//! +//! This function disables the outlining of a listbox widget. The display is +//! not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ListBoxOutlineOff(psWidget) \ + do \ + { \ + tListBoxWidget *psW = psWidget; \ + psW->ui32Style &= ~(LISTBOX_STYLE_OUTLINE); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables outlining of a listbox widget. +//! +//! \param psWidget is a pointer to the listbox widget to modify. +//! +//! This function enables the outlining of a listbox widget. The display is +//! not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ListBoxOutlineOn(psWidget) \ + do \ + { \ + tListBoxWidget *psW = psWidget; \ + psW->ui32Style |= LISTBOX_STYLE_OUTLINE; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the text color of a listbox widget. +//! +//! \param psWidget is a pointer to the listbox widget to be modified. +//! \param ui32Color is the 24-bit RGB color to use to draw text on the +//! listbox. +//! +//! This function changes the color used to draw text on the listbox on the +//! display. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ListBoxTextColorSet(psWidget, ui32Color) \ + do \ + { \ + tListBoxWidget *psW = psWidget; \ + psW->ui32TextColor = ui32Color; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the text color of the selected element in a listbox widget. +//! +//! \param psWidget is a pointer to the listbox widget to be modified. +//! \param ui32Color is the 24-bit RGB color to use to draw the selected text +//! on the listbox. +//! +//! This function changes the color used to draw the selected element text +//! on the display. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ListBoxSelectedTextColorSet(psWidget, ui32Color) \ + do \ + { \ + tListBoxWidget *psW = psWidget; \ + psW->ui32SelectedTextColor = ui32Color; \ + } \ + while(0) + +//***************************************************************************** +// +//! Changes the text associated with an element in the listbox widget. +//! +//! \param psWidget is a pointer to the listbox widget to be modified. +//! \param pcTxt is a pointer to the new text string. +//! \param ui32Index is the index of the element whose string is to be +//! replaced. +//! +//! This function replaces the string associated with one of the listbox +//! elements. This call should only be used to replace a string for an +//! already-populated element. To add a new string, use ListBoxTextAdd(). +//! The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ListBoxTextSet(psWidget, pcTxt, ui32Index) \ + do \ + { \ + tListBoxWidget *psW = psWidget; \ + const char *pcT = pcTxt; \ + if(ui32Index < psW->ui16MaxEntries) \ + { \ + psW->ppcText[ui32Index] = pcT; \ + } \ + } \ + while(0) + +//***************************************************************************** +// +//! Locks a listbox making it ignore attempts to select elements. +//! +//! \param psWidget is a pointer to the listbox widget to modify. +//! +//! This function locks a listbox widget and makes it ignore attempts to +//! select or deselect an element. When locked, a listbox acts as a passive +//! indicator. Strings may be added and the selected element changed via +//! calls to ListBoxSelectioSet() but pointer activity will not change the +//! selection and no callbacks will be made. In this mode, the user may still +//! use the pointer to scroll the content of the listbox assuming it contains +//! more strings that can be displayed in the widget area. +//! +//! \return None. +// +//***************************************************************************** +#define ListBoxLock(psWidget) \ + do \ + { \ + tListBoxWidget *psW = psWidget; \ + psW->ui32Style |= LISTBOX_STYLE_LOCKED; \ + } \ + while(0) + +//***************************************************************************** +// +//! Unlocks a listbox making it respond to pointer input. +//! +//! \param psWidget is a pointer to the listbox widget to modify. +//! +//! This function unlocks a listbox widget. When unlocked, a listbox will +//! respond to pointer input by setting its selected element appropriately and +//! informing the application of changes via callbacks. +//! +//! \return None. +// +//***************************************************************************** +#define ListBoxUnlock(psWidget) \ + do \ + { \ + tListBoxWidget *psW = psWidget; \ + psW->ui32Style &= ~(LISTBOX_STYLE_LOCKED); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables wrapping in a listbox. +//! +//! \param psWidget is a pointer to the listbox widget to modify. +//! +//! This function enables text wrapping in a listbox widget. With wrapping +//! enabled, calls to ListBoxTextAdd() made when the widget string table is +//! full will discard the oldest string in favor of the new one. If wrapping +//! is disabled, these calls will fail. +//! +//! \return None. +// +//***************************************************************************** +#define ListBoxWrapEnable(psWidget) \ + do \ + { \ + tListBoxWidget *psW = psWidget; \ + psW->ui32Style &= ~(LISTBOX_STYLE_WRAP); \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables text wrapping in a listbox. +//! +//! \param psWidget is a pointer to the listbox widget to modify. +//! +//! This function disables text wrapping in a listbox widget. With wrapping +//! enabled, calls to ListBoxTextAdd() made when the widget string table is +//! full will discard the oldest string in favor of the new one. If wrapping +//! is disabled, these calls will fail. +//! +//! \return None. +// +//***************************************************************************** +#define ListBoxWrapDisable(psWidget) \ + do \ + { \ + tListBoxWidget *psW = psWidget; \ + psW->ui32Style |= LISTBOX_STYLE_WRAP; \ + } \ + while(0) + +//***************************************************************************** +// +//! Empties the listbox. +//! +//! \param psWidget is a pointer to the listbox widget to modify. +//! +//! This function removes all text from a listbox widget. The display is not +//! updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ListBoxClear(psWidget) \ + do \ + { \ + tListBoxWidget *psW = psWidget; \ + psW->ui16Populated = 0; \ + psW->i16Selected = (int16_t)0xFFFF; \ + psW->ui16StartEntry = 0; \ + psW->ui16OldestEntry = 0; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the current selection within the listbox. +//! +//! \param psWidget is a pointer to the listbox widget to modify. +//! \param i16Sel is the index of the item to select. +//! +//! This function selects an item within the list box. The display is not +//! updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define ListBoxSelectionSet(psWidget, i16Sel) \ + do \ + { \ + tListBoxWidget *psW = psWidget; \ + if((i16Sel) < psW->ui16Populated) \ + { \ + psW->i16Selected = (i16Sel); \ + } \ + } \ + while(0) + +//***************************************************************************** +// +//! Gets the index of the current selection within the listbox. +//! +//! \param psWidget is a pointer to the listbox widget to be queried. +//! +//! This function returns the index of the item currently selected in a +//! listbox. If no selection has been made, 0xFFFF (-1) is returned. +//! +//! \return None. +// +//***************************************************************************** +#define ListBoxSelectionGet(psWidget) \ + (((tListBoxWidget *)(psWidget))->i16Selected) + +//***************************************************************************** +// +// Prototypes for the listbox widget APIs. +// +//***************************************************************************** +extern int32_t ListBoxMsgProc(tWidget *psWidget, uint32_t ui32Msg, + uint32_t ui32Param1, uint32_t ui32Param2); +extern void ListBoxInit(tListBoxWidget *psWidget, const tDisplay *psDisplay, + const char **ppcText, uint16_t ui16MaxEntries, + uint16_t ui16PopulatedEntries, + int32_t i32X, int32_t i32Y, + int32_t i32Width, int32_t i32Height); +extern int32_t ListBoxTextAdd(tListBoxWidget *psWidget, const char *pcTxt); + +//***************************************************************************** +// +// Mark the end of the C bindings section for C++ compilers. +// +//***************************************************************************** +#ifdef __cplusplus +} +#endif + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** + +#endif // __LISTBOX_H__ diff --git a/grlib/offscr1bpp.c b/grlib/offscr1bpp.c new file mode 100644 index 0000000..94a508a --- /dev/null +++ b/grlib/offscr1bpp.c @@ -0,0 +1,909 @@ +//***************************************************************************** +// +// offscr1bpp.c - 1 BPP off-screen display buffer driver. +// +// Copyright (c) 2008-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#include +#include +#include "driverlib/debug.h" +#include "grlib/grlib.h" + +//***************************************************************************** +// +//! \addtogroup primitives_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +// Translates a 24-bit RGB color to a display driver-specific color. +// +// \param c is the 24-bit RGB color. The least-significant byte is the blue +// channel, the next byte is the green channel, and the third byte is the red +// channel. +// +// This macro translates a 24-bit RGB color into a value that can be written +// into the display's frame buffer in order to reproduce that color, or the +// closest possible approximation of that color. +// +// \return Returns the display-driver specific color. +// +//***************************************************************************** +#define DPYCOLORTRANSLATE(c) ((((((c) & 0x00ff0000) >> 16) * 19661) + \ + ((((c) & 0x0000ff00) >> 8) * 38666) + \ + (((c) & 0x000000ff) * 7209)) / \ + (65536 * 128)) + +//***************************************************************************** +// +//! Draws a pixel on the screen. +//! +//! \param pvDisplayData is a pointer to the driver-specific data for this +//! display driver. +//! \param i32X is the X coordinate of the pixel. +//! \param i32Y is the Y coordinate of the pixel. +//! \param ui32Value is the color of the pixel. +//! +//! This function sets the given pixel to a particular color. The coordinates +//! of the pixel are assumed to be within the extents of the display. +//! +//! \return None. +// +//***************************************************************************** +static void +GrOffScreen1BPPPixelDraw(void *pvDisplayData, int32_t i32X, int32_t i32Y, + uint32_t ui32Value) +{ + uint8_t *pui8Data; + int32_t i32BytesPerRow; + + // + // Check the arguments. + // + ASSERT(pvDisplayData); + + // + // Create a character pointer for the display-specific data (which points + // to the image buffer). + // + pui8Data = (uint8_t *)pvDisplayData; + + // + // Compute the number of bytes per row in the image buffer. + // + i32BytesPerRow = (*(uint16_t *)(pui8Data + 1) + 7) / 8; + + // + // Get the offset to the byte of the image buffer that contains the pixel + // in question. + // + pui8Data += (i32BytesPerRow * i32Y) + (i32X / 8) + 5; + + // + // Determine how much to shift to get to the bit that contains this pixel. + // + i32X = 7 - (i32X & 7); + + // + // Write this pixel into the image buffer. + // + *pui8Data = (*pui8Data & ~(1 << i32X)) | (ui32Value << i32X); +} + +//***************************************************************************** +// +//! Draws a horizontal sequence of pixels on the screen. +//! +//! \param pvDisplayData is a pointer to the driver-specific data for this +//! display driver. +//! \param i32X is the X coordinate of the first pixel. +//! \param i32Y is the Y coordinate of the first pixel. +//! \param i32X0 is sub-pixel offset within the pixel data, which is valid for +//! 1 or 4 bit per pixel formats. +//! \param i32Count is the number of pixels to draw. +//! \param i32BPP is the number of bits per pixel ORed with a flag indicating +//! whether or not this run represents the start of a new image. +//! \param pui8Data is a pointer to the pixel data. For 1 and 4 bit per pixel +//! formats, the most significant bit(s) represent the left-most pixel. +//! \param pui8Palette is a pointer to the palette used to draw the pixels. +//! +//! This function draws a horizontal sequence of pixels on the screen, using +//! the supplied palette. For 1 bit per pixel format, the palette contains +//! pre-translated colors; for 4 and 8 bit per pixel formats, the palette +//! contains 24-bit RGB values that must be translated before being written to +//! the display. +//! +//! The \e i32BPP parameter will take the value 1, 4 or 8 and may be ORed with +//! \b GRLIB_DRIVER_FLAG_NEW_IMAGE to indicate that this run represents the +//! start of a new image. Drivers which make use of lookup tables to convert +//! from the source to destination pixel values should rebuild their lookup +//! table when \b GRLIB_DRIVER_FLAG_NEW_IMAGE is set. +//! +//! \return None. +// +//***************************************************************************** +static void +GrOffScreen1BPPPixelDrawMultiple(void *pvDisplayData, int32_t i32X, + int32_t i32Y, int32_t i32X0, + int32_t i32Count, int32_t i32BPP, + const uint8_t *pui8Data, + const uint8_t *pui8Palette) +{ + uint8_t *pui8Ptr; + uint32_t ui32Byte; + int32_t i32BytesPerRow; + + // + // Check the arguments. + // + ASSERT(pvDisplayData); + ASSERT(pui8Data); + ASSERT(pui8Palette); + + // + // Create a character pointer for the display-specific data (which points + // to the image buffer). + // + pui8Ptr = (uint8_t *)pvDisplayData; + + // + // Compute the number of bytes per row in the image buffer. + // + i32BytesPerRow = (*(uint16_t *)(pui8Ptr + 1) + 7) / 8; + + // + // Get the offset to the byte of the image buffer that contains the + // starting pixel. + // + pui8Ptr += (i32BytesPerRow * i32Y) + (i32X / 8) + 5; + + // + // Determine the bit position of the starting pixel. + // + i32X = 7 - (i32X & 7); + + // + // Determine how to interpret the pixel data based on the number of bits + // per pixel. + // + switch(i32BPP & 0xFF) + { + // + // The pixel data is in 1 bit per pixel format. + // + case 1: + { + // + // Loop while there are more pixels to draw. + // + while(i32Count) + { + // + // Get the next byte of image data. + // + ui32Byte = *pui8Data++; + + // + // Loop through the pixels in this byte of image data. + // + for(; (i32X0 < 8) && i32Count; i32X0++, i32Count--) + { + // + // Draw this pixel in the appropriate color. + // + *pui8Ptr = ((*pui8Ptr & ~(1 << i32X)) | + ((((uint32_t *)pui8Palette)[(ui32Byte >> + (7 - i32X0)) & + 1]) << i32X)); + if(i32X-- == 0) + { + i32X = 7; + pui8Ptr++; + } + } + + // + // Start at the beginning of the next byte of image data. + // + i32X0 = 0; + } + + // + // The image data has been drawn. + // + break; + } + + // + // The pixel data is in 4 bit per pixel format. + // + case 4: + { + // + // Loop while there are more pixels to draw. "Duff's device" is + // used to jump into the middle of the loop if the first nibble of + // the pixel data should not be used. Duff's device makes use of + // the fact that a case statement is legal anywhere within a + // sub-block of a switch statement. See + // http://en.wikipedia.org/wiki/Duff's_device for detailed + // information about Duff's device. + // + switch(i32X0 & 1) + { + case 0: + while(i32Count) + { + // + // Get the upper nibble of the next byte of pixel data + // and extract the corresponding entry from the + // palette. + // + ui32Byte = (*pui8Data >> 4) * 3; + ui32Byte = (*(uint32_t *)(pui8Palette + ui32Byte) & + 0x00ffffff); + + // + // Translate this palette entry and write it to the + // screen. + // + *pui8Ptr = ((*pui8Ptr & ~(1 << i32X)) | + (DPYCOLORTRANSLATE(ui32Byte) << i32X)); + if(i32X-- == 0) + { + i32X = 7; + pui8Ptr++; + } + + // + // Decrement the count of pixels to draw. + // + i32Count--; + + // + // See if there is another pixel to draw. + // + if(i32Count) + { + case 1: + // + // Get the lower nibble of the next byte of pixel + // data and extract the corresponding entry from + // the palette. + // + ui32Byte = (*pui8Data++ & 15) * 3; + ui32Byte = (*(uint32_t *)(pui8Palette + ui32Byte) & + 0x00ffffff); + + // + // Translate this palette entry and write it to the + // screen. + // + *pui8Ptr = ((*pui8Ptr & ~(1 << i32X)) | + (DPYCOLORTRANSLATE(ui32Byte) << i32X)); + if(i32X-- == 0) + { + i32X = 7; + pui8Ptr++; + } + + // + // Decrement the count of pixels to draw. + // + i32Count--; + } + } + } + + // + // The image data has been drawn. + // + break; + } + + // + // The pixel data is in 8 bit per pixel format. + // + case 8: + { + // + // Loop while there are more pixels to draw. + // + while(i32Count--) + { + // + // Get the next byte of pixel data and extract the + // corresponding entry from the palette. + // + ui32Byte = *pui8Data++ * 3; + ui32Byte = *(uint32_t *)(pui8Palette + ui32Byte) & 0x00ffffff; + + // + // Translate this palette entry and write it to the screen. + // + *pui8Ptr = ((*pui8Ptr & ~(1 << i32X)) | + (DPYCOLORTRANSLATE(ui32Byte) << i32X)); + if(i32X-- == 0) + { + i32X = 7; + pui8Ptr++; + } + } + + // + // The image data has been drawn. + // + break; + } + } +} + +//***************************************************************************** +// +//! Draws a horizontal line. +//! +//! \param pvDisplayData is a pointer to the driver-specific data for this +//! display driver. +//! \param i32X1 is the X coordinate of the start of the line. +//! \param i32X2 is the X coordinate of the end of the line. +//! \param i32Y is the Y coordinate of the line. +//! \param ui32Value is the color of the line. +//! +//! This function draws a horizontal line on the display. The coordinates of +//! the line are assumed to be within the extents of the display. +//! +//! \return None. +// +//***************************************************************************** +static void +GrOffScreen1BPPLineDrawH(void *pvDisplayData, int32_t i32X1, int32_t i32X2, + int32_t i32Y, uint32_t ui32Value) +{ + int32_t i32BytesPerRow, i32Mask; + uint8_t *pui8Data; + + // + // Check the arguments. + // + ASSERT(pvDisplayData); + + // + // Create a character pointer for the display-specific data (which points + // to the image buffer). + // + pui8Data = (uint8_t *)pvDisplayData; + + // + // Compute the number of bytes per row in the image buffer. + // + i32BytesPerRow = (*(uint16_t *)(pui8Data + 1) + 7) / 8; + + // + // Get the offset to the byte of the image buffer that contains the + // starting pixel. + // + pui8Data += (i32BytesPerRow * i32Y) + (i32X1 / 8) + 5; + + // + // Copy the pixel value into all 32 pixels of the uint32_t. This will + // be used later to write multiple pixels into memory (as opposed to one at + // a time). + // + if(ui32Value) + { + ui32Value = 0xffffffff; + } + + // + // See if the current buffer byte contains pixels that should be left + // unmodified. + // + if(i32X1 & 7) + { + // + // Compute the mask to access only the appropriate pixels within this + // byte. The line may start and stop within this byte, so the mask may + // need to be shortened to account for this situation. + // + i32Mask = 8 - (i32X1 & 7); + if(i32Mask > (i32X2 - i32X1 + 1)) + { + i32Mask = i32X2 - i32X1 + 1; + } + i32Mask = ((1 << i32Mask) - 1) << (8 - (i32X1 & 7) - i32Mask); + + // + // Draw the appropriate pixels within this byte. + // + *pui8Data = (*pui8Data & ~i32Mask) | (ui32Value & i32Mask); + pui8Data++; + i32X1 = (i32X1 + 7) & ~7; + } + + // + // See if the buffer pointer is not half-word aligned and there are at + // least eight pixels left to draw. + // + if(((uint32_t)pui8Data & 1) && ((i32X2 - i32X1) > 6)) + { + // + // Draw eight pixels to half-word align the buffer pointer. + // + *pui8Data++ = ui32Value & 0xff; + i32X1 += 8; + } + + // + // See if the buffer pointer is not word aligned and there are at least + // sixteen pixels left to draw. + // + if(((uint32_t)pui8Data & 2) && ((i32X2 - i32X1) > 14)) + { + // + // Draw sixteen pixels to word align the buffer pointer. + // + *(uint16_t *)pui8Data = ui32Value & 0xffff; + pui8Data += 2; + i32X1 += 16; + } + + // + // Loop while there are at least thirty two pixels left to draw. + // + while((i32X1 + 31) <= i32X2) + { + // + // Draw thirty two pixels. + // + *(uint32_t *)pui8Data = ui32Value; + pui8Data += 4; + i32X1 += 32; + } + + // + // See if there are at least sixteen pixels left to draw. + // + if((i32X1 + 15) <= i32X2) + { + // + // Draw sixteen pixels, leaving the buffer pointer half-word aligned. + // + *(uint16_t *)pui8Data = ui32Value & 0xffff; + pui8Data += 2; + i32X1 += 16; + } + + // + // See if there are at least eight pixels left to draw. + // + if((i32X1 + 7) <= i32X2) + { + // + // Draw eight pixels, leaving the buffer pointer byte aligned. + // + *pui8Data++ = ui32Value & 0xff; + i32X1 += 8; + } + + // + // See if there are any pixels left to draw. + // + if(i32X1 <= i32X2) + { + // + // Draw the remaining pixels. + // + i32Mask = 0xff >> (i32X2 - i32X1 + 1); + *pui8Data = (*pui8Data & i32Mask) | (ui32Value & ~i32Mask); + } +} + +//***************************************************************************** +// +//! Draws a vertical line. +//! +//! \param pvDisplayData is a pointer to the driver-specific data for this +//! display driver. +//! \param i32X is the X coordinate of the line. +//! \param i32Y1 is the Y coordinate of the start of the line. +//! \param i32Y2 is the Y coordinate of the end of the line. +//! \param ui32Value is the color of the line. +//! +//! This function draws a vertical line on the display. The coordinates of the +//! line are assumed to be within the extents of the display. +//! +//! \return None. +// +//***************************************************************************** +static void +GrOffScreen1BPPLineDrawV(void *pvDisplayData, int32_t i32X, int32_t i32Y1, + int32_t i32Y2, uint32_t ui32Value) +{ + uint8_t *pui8Data; + int32_t i32BytesPerRow; + + // + // Check the arguments. + // + ASSERT(pvDisplayData); + + // + // Create a character pointer for the display-specific data (which points + // to the image buffer). + // + pui8Data = (uint8_t *)pvDisplayData; + + // + // Compute the number of bytes per row in the image buffer. + // + i32BytesPerRow = (*(uint16_t *)(pui8Data + 1) + 7) / 8; + + // + // Get the offset to the byte of the image buffer that contains the + // starting pixel. + // + pui8Data += (i32BytesPerRow * i32Y1) + (i32X / 8) + 5; + + // + // Determine how much to shift to get to the bit that contains this pixel. + // + i32X = 7 - (i32X & 7); + + // + // Shift the pixel value up to the correct bit position, and create a mask + // to preserve the value of the remaining pixels. + // + ui32Value <<= i32X; + i32X = ~(1 << i32X); + + // + // Loop over the rows of the line. + // + for(; i32Y1 <= i32Y2; i32Y1++) + { + // + // Draw this pixel of the line. + // + *pui8Data = (*pui8Data & i32X) | ui32Value; + pui8Data += i32BytesPerRow; + } +} + +//***************************************************************************** +// +//! Fills a rectangle. +//! +//! \param pvDisplayData is a pointer to the driver-specific data for this +//! display driver. +//! \param pRect is a pointer to the structure describing the rectangle. +//! \param ui32Value is the color of the rectangle. +//! +//! This function fills a rectangle on the display. The coordinates of the +//! rectangle are assumed to be within the extents of the display, and the +//! rectangle specification is fully inclusive (in other words, both i16XMin +//! and i16XMax are drawn, along with i16YMin and i16YMax). +//! +//! \return None. +// +//***************************************************************************** +static void +GrOffScreen1BPPRectFill(void *pvDisplayData, const tRectangle *pRect, + uint32_t ui32Value) +{ + uint8_t *pui8Data, *pui8Column; + int32_t i32BytesPerRow, i32Mask, i32X, i32Y; + + // + // Check the arguments. + // + ASSERT(pvDisplayData); + ASSERT(pRect); + + // + // Create a character pointer for the display-specific data (which points + // to the image buffer). + // + pui8Data = (uint8_t *)pvDisplayData; + + // + // Compute the number of bytes per row in the image buffer. + // + i32BytesPerRow = (*(uint16_t *)(pui8Data + 1) + 7) / 8; + + // + // Get the offset to the byte of the image buffer that contains the + // starting pixel. + // + pui8Data += (i32BytesPerRow * pRect->i16YMin) + (pRect->i16XMin / 8) + 5; + + // + // Copy the pixel value into all 32 pixels of the uint32_t. This will + // be used later to write multiple pixels into memory (as opposed to one at + // a time). + // + if(ui32Value) + { + ui32Value = 0xffffffff; + } + + // + // Get the starting X coordinate of the rectangle. + // + i32X = pRect->i16XMin; + + // + // See if the current buffer byte contains pixel columns that should be + // left unmodified. + // + if(i32X & 7) + { + // + // Compute the mask to access only the appropriate pixels within this + // byte column. The rectangle may start and stop within this byte + // column, so the mask may need to be int16_tened to account for this + // situation. + // + i32Mask = 8 - (i32X & 7); + if(i32Mask > (pRect->i16XMax - i32X + 1)) + { + i32Mask = pRect->i16XMax - i32X + 1; + } + i32Mask = ((1 << i32Mask) - 1) << (8 - (i32X & 7) - i32Mask); + + // + // Draw the appropriate pixels within this column. + // + for(i32Y = pRect->i16YMin, pui8Column = pui8Data; + i32Y <= pRect->i16YMax; + i32Y++, pui8Column += i32BytesPerRow) + { + *pui8Column = (*pui8Column & ~i32Mask) | (ui32Value & i32Mask); + } + pui8Data++; + i32X = (i32X + 7) & ~7; + } + + // + // See if the buffer pointer is not half-word aligned and there are at + // least eight pixel columns left to draw. + // + if(((uint32_t)pui8Data & 1) && ((pRect->i16XMax - i32X) > 6)) + { + // + // Draw eight pixel columns to half-word align the buffer pointer. + // + for(i32Y = pRect->i16YMin, pui8Column = pui8Data; + i32Y <= pRect->i16YMax; + i32Y++, pui8Column += i32BytesPerRow) + { + *pui8Column = ui32Value & 0xff; + } + pui8Data++; + i32X += 8; + } + + // + // See if the buffer pointer is not word aligned and there are at least + // sixteen pixel columns left to draw. + // + if(((uint32_t)pui8Data & 2) && ((pRect->i16XMax - i32X) > 14)) + { + // + // Draw sixteen pixel columns to word align the buffer pointer. + // + for(i32Y = pRect->i16YMin, pui8Column = pui8Data; + i32Y <= pRect->i16YMax; + i32Y++, pui8Column += i32BytesPerRow) + { + *(uint16_t *)pui8Column = ui32Value & 0xffff; + } + pui8Data += 2; + i32X += 16; + } + + // + // Loop while there are at least thirty two pixel columnss left to draw. + // + while((i32X + 31) <= pRect->i16XMax) + { + // + // Draw thirty two pixel columnss. + // + for(i32Y = pRect->i16YMin, pui8Column = pui8Data; + i32Y <= pRect->i16YMax; + i32Y++, pui8Column += i32BytesPerRow) + { + *(uint32_t *)pui8Column = ui32Value; + } + pui8Data += 4; + i32X += 32; + } + + // + // See if there are at least sixteen pixel columnss left to draw. + // + if((i32X + 15) <= pRect->i16XMax) + { + // + // Draw sixteen pixel columns, leaving the buffer pointer half-word + // aligned. + // + ui32Value &= 0xffff; + for(i32Y = pRect->i16YMin, pui8Column = pui8Data; + i32Y <= pRect->i16YMax; + i32Y++, pui8Column += i32BytesPerRow) + { + *(uint16_t *)pui8Column = ui32Value; + } + pui8Data += 2; + i32X += 16; + } + + // + // See if there are at least eight pixel columns left to draw. + // + if((i32X + 7) <= pRect->i16XMax) + { + // + // Draw eight pixel columns, leaving the buffer pointer byte aligned. + // + ui32Value &= 0xff; + for(i32Y = pRect->i16YMin, pui8Column = pui8Data; + i32Y <= pRect->i16YMax; + i32Y++, pui8Column += i32BytesPerRow) + { + *pui8Column = ui32Value; + } + pui8Data++; + i32X += 8; + } + + // + // See if there are any pixel columns left to draw. + // + if(i32X <= pRect->i16XMax) + { + // + // Draw the remaining pixel columns. + // + i32Mask = 0xff >> (pRect->i16XMax - i32X + 1); + ui32Value &= ~i32Mask; + for(i32Y = pRect->i16YMin; i32Y <= pRect->i16YMax; + i32Y++, pui8Data += i32BytesPerRow) + { + *pui8Data = (*pui8Data & i32Mask) | ui32Value; + } + } +} + +//***************************************************************************** +// +//! Translates a 24-bit RGB color to a display driver-specific color. +//! +//! \param pvDisplayData is a pointer to the driver-specific data for this +//! display driver. +//! \param ui32Value is the 24-bit RGB color. The least-significant byte is +//! the blue channel, the next byte is the green channel, and the third byte is +//! the red channel. +//! +//! This function translates a 24-bit RGB color into a value that can be +//! written into the display's frame buffer in order to reproduce that color, +//! or the closest possible approximation of that color. +//! +//! \return Returns the display-driver specific color. +// +//***************************************************************************** +static uint32_t +GrOffScreen1BPPColorTranslate(void *pvDisplayData, uint32_t ui32Value) +{ + // + // Check the arguments. + // + ASSERT(pvDisplayData); + + // + // Translate from a 24-bit RGB color to black or white. + // + return(DPYCOLORTRANSLATE(ui32Value)); +} + +//***************************************************************************** +// +//! Flushes any cached drawing operations. +//! +//! \param pvDisplayData is a pointer to the driver-specific data for this +//! display driver. +//! +//! This functions flushes any cached drawing operations to the display. This +//! is useful when a local frame buffer is used for drawing operations, and the +//! flush would copy the local frame buffer to the display. For the off-screen +//! display buffer driver, the flush is a no operation. +//! +//! \return None. +// +//***************************************************************************** +static void +GrOffScreen1BPPFlush(void *pvDisplayData) +{ + // + // Check the arguments. + // + ASSERT(pvDisplayData); +} + +//***************************************************************************** +// +//! Initializes a 1 BPP off-screen buffer. +//! +//! \param psDisplay is a pointer to the display structure to be configured for +//! the 1 BPP off-screen buffer. +//! \param pui8Image is a pointer to the image buffer to be used for the +//! off-screen buffer. +//! \param i32Width is the width of the image buffer in pixels. +//! \param i32Height is the height of the image buffer in pixels. +//! +//! This function initializes a display structure, preparing it to draw into +//! the supplied image buffer. The image buffer is assumed to be large enough +//! to hold an image of the specified geometry. +//! +//! \return None. +// +//***************************************************************************** +void +GrOffScreen1BPPInit(tDisplay *psDisplay, uint8_t *pui8Image, int32_t i32Width, + int32_t i32Height) +{ + // + // Check the arguments. + // + ASSERT(psDisplay); + ASSERT(pui8Image); + + // + // Initialize the display structure. + // + psDisplay->i32Size = sizeof(tDisplay); + psDisplay->pvDisplayData = pui8Image; + psDisplay->ui16Width = i32Width; + psDisplay->ui16Height = i32Height; + psDisplay->pfnPixelDraw = GrOffScreen1BPPPixelDraw; + psDisplay->pfnPixelDrawMultiple = GrOffScreen1BPPPixelDrawMultiple; + psDisplay->pfnLineDrawH = GrOffScreen1BPPLineDrawH; + psDisplay->pfnLineDrawV = GrOffScreen1BPPLineDrawV; + psDisplay->pfnRectFill = GrOffScreen1BPPRectFill; + psDisplay->pfnColorTranslate = GrOffScreen1BPPColorTranslate; + psDisplay->pfnFlush = GrOffScreen1BPPFlush; + + // + // Initialize the image buffer. + // + pui8Image[0] = IMAGE_FMT_1BPP_UNCOMP; + *(uint16_t *)(pui8Image + 1) = i32Width; + *(uint16_t *)(pui8Image + 3) = i32Height; +} + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** diff --git a/grlib/offscr4bpp.c b/grlib/offscr4bpp.c new file mode 100644 index 0000000..b6d82a3 --- /dev/null +++ b/grlib/offscr4bpp.c @@ -0,0 +1,998 @@ +//***************************************************************************** +// +// offscr4bpp.c - 4 BPP off-screen display buffer driver. +// +// Copyright (c) 2008-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#include +#include +#include "driverlib/debug.h" +#include "grlib/grlib.h" + +//***************************************************************************** +// +//! \addtogroup primitives_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +//! Translates a 24-bit RGB color to a display driver-specific color. +//! +//! \param pvDisplayData is a pointer to the driver-specific data for this +//! display driver. +//! \param ui32Value is the 24-bit RGB color. The least-significant byte is +//! the blue channel, the next byte is the green channel, and the third byte is +//! the red channel. +//! +//! This function translates a 24-bit RGB color into a value that can be +//! written into the display's frame buffer in order to reproduce that color, +//! or the closest possible approximation of that color. +//! +//! \return Returns the display-driver specific color. +// +//***************************************************************************** +static uint32_t +GrOffScreen4BPPColorTranslate(void *pvDisplayData, uint32_t ui32Value) +{ + uint32_t ui32Idx, ui32Diff, ui32MatchIdx, ui32MatchDiff; + uint32_t ui32R, ui32G, ui32B; + uint8_t *pui8Palette; + + // + // Check the arguments. + // + ASSERT(pvDisplayData); + + // + // Get a pointer to the palette for the off-screen buffer. + // + pui8Palette = (uint8_t *)pvDisplayData + 6; + + // + // Extract the red, green, and blue component from the input color. + // + ui32R = (ui32Value >> ClrRedShift) & 0xff; + ui32G = (ui32Value >> ClrGreenShift) & 0xff; + ui32B = (ui32Value >> ClrBlueShift) & 0xff; + + // + // Set the match such that the first palette entry will be a better match. + // + ui32MatchIdx = 0; + ui32MatchDiff = 0xffffffff; + + // + // Loop through the colors in the palette. + // + for(ui32Idx = 0; ui32Idx < 16; ui32Idx++, pui8Palette += 3) + { + // + // Compute the Cartesian distance between these two colors. + // + ui32Diff = (((pui8Palette[2] - ui32R) * (pui8Palette[2] - ui32R)) + + ((pui8Palette[1] - ui32G) * (pui8Palette[1] - ui32G)) + + ((pui8Palette[0] - ui32B) * (pui8Palette[0] - ui32B))); + + // + // See if this color is a closer match than any of the previous colors. + // + if(ui32Diff < ui32MatchDiff) + { + // + // Save this color as the new best match. + // + ui32MatchDiff = ui32Diff; + ui32MatchIdx = ui32Idx; + } + + // + // Stop looking if an exact match was found. + // + if(ui32Diff == 0) + { + break; + } + } + + // + // Return the index of the best match. + // + return(ui32MatchIdx); +} + +//***************************************************************************** +// +//! Draws a pixel on the screen. +//! +//! \param pvDisplayData is a pointer to the driver-specific data for this +//! display driver. +//! \param i32X is the X coordinate of the pixel. +//! \param i32Y is the Y coordinate of the pixel. +//! \param ui32Value is the color of the pixel. +//! +//! This function sets the given pixel to a particular color. The coordinates +//! of the pixel are assumed to be within the extents of the display. +//! +//! \return None. +// +//***************************************************************************** +static void +GrOffScreen4BPPPixelDraw(void *pvDisplayData, int32_t i32X, int32_t i32Y, + uint32_t ui32Value) +{ + uint8_t *pui8Data; + int32_t i32BytesPerRow; + + // + // Check the arguments. + // + ASSERT(pvDisplayData); + + // + // Create a character pointer for the display-specific data (which points + // to the image buffer). + // + pui8Data = (uint8_t *)pvDisplayData; + + // + // Compute the number of bytes per row in the image buffer. + // + i32BytesPerRow = (*(uint16_t *)(pui8Data + 1) + 1) / 2; + + // + // Get the offset to the byte of the image buffer that contains the pixel + // in question. + // + pui8Data += (i32BytesPerRow * i32Y) + (i32X / 2) + 6 + (16 * 3); + + // + // Determine how much to shift to get to the nibble that contains this + // pixel. + // + i32X = (1 - (i32X & 1)) * 4; + + // + // Write this pixel into the image buffer. + // + *pui8Data = (*pui8Data & ~(0xf << i32X)) | (ui32Value << i32X); +} + +//***************************************************************************** +// +//! Draws a horizontal sequence of pixels on the screen. +//! +//! \param pvDisplayData is a pointer to the driver-specific data for this +//! display driver. +//! \param i32X is the X coordinate of the first pixel. +//! \param i32Y is the Y coordinate of the first pixel. +//! \param i32X0 is sub-pixel offset within the pixel data, which is valid for +//! 1 or 4 bit per pixel formats. +//! \param i32Count is the number of pixels to draw. +//! \param i32BPP is the number of bits per pixel ORed with a flag indicating +//! whether or not this run represents the start of a new image. +//! \param pui8Data is a pointer to the pixel data. For 1 and 4 bit per pixel +//! formats, the most significant bit(s) represent the left-most pixel. +//! \param pui8Palette is a pointer to the palette used to draw the pixels. +//! +//! This function draws a horizontal sequence of pixels on the screen, using +//! the supplied palette. For 1 bit per pixel format, the palette contains +//! pre-translated colors; for 4 and 8 bit per pixel formats, the palette +//! contains 24-bit RGB values that must be translated before being written to +//! the display. +//! +//! The \e i32BPP parameter will take the value 1, 4 or 8 and may be ORed with +//! \b GRLIB_DRIVER_FLAG_NEW_IMAGE to indicate that this run represents the +//! start of a new image. Drivers which make use of lookup tables to convert +//! from the source to destination pixel values should rebuild their lookup +//! table when \b GRLIB_DRIVER_FLAG_NEW_IMAGE is set. +//! +//! \return None. +// +//***************************************************************************** +static void +GrOffScreen4BPPPixelDrawMultiple(void *pvDisplayData, int32_t i32X, + int32_t i32Y, int32_t i32X0, int32_t i32Count, + int32_t i32BPP, const uint8_t *pui8Data, + const uint8_t *pui8Palette) +{ + uint8_t *pui8Ptr; + uint32_t ui32Byte; + int32_t i32BytesPerRow; + + // + // Check the arguments. + // + ASSERT(pvDisplayData); + ASSERT(pui8Data); + ASSERT(pui8Palette); + + // + // Create a character pointer for the display-specific data (which points + // to the image buffer). + // + pui8Ptr = (uint8_t *)pvDisplayData; + + // + // Compute the number of bytes per row in the image buffer. + // + i32BytesPerRow = (*(uint16_t *)(pui8Ptr + 1) + 1) / 2; + + // + // Get the offset to the byte of the image buffer that contains the + // starting pixel. + // + pui8Ptr += (i32BytesPerRow * i32Y) + (i32X / 2) + 6 + (16 * 3); + + // + // Determine how much to shift to get to the nibble that contains this + // pixel. + // + i32X = (1 - (i32X & 1)) * 4; + + // + // Determine how to interpret the pixel data based on the number of bits + // per pixel. + // + switch(i32BPP & 0xFF) + { + // + // The pixel data is in 1 bit per pixel format. + // + case 1: + { + // + // Loop while there are more pixels to draw. + // + while(i32Count) + { + // + // Get the next byte of image data. + // + ui32Byte = *pui8Data++; + + // + // Loop through the pixels in this byte of image data. + // + for(; (i32X0 < 8) && i32Count; i32X0++, i32Count--) + { + // + // Draw this pixel in the appropriate color. + // + *pui8Ptr = ((*pui8Ptr & ~(0xf << i32X)) | + (((uint32_t *)pui8Palette)[(ui32Byte >> + (7 - i32X0)) & + 1] << i32X)); + if(i32X ^= 4) + { + pui8Ptr++; + } + } + + // + // Start at the beginning of the next byte of image data. + // + i32X0 = 0; + } + + // + // The image data has been drawn. + // + break; + } + + // + // The pixel data is in 4 bit per pixel format. + // + case 4: + { + // + // Loop while there are more pixels to draw. "Duff's device" is + // used to jump into the middle of the loop if the first nibble of + // the pixel data should not be used. Duff's device makes use of + // the fact that a case statement is legal anywhere within a + // sub-block of a switch statement. See + // http://en.wikipedia.org/wiki/Duff's_device for detailed + // information about Duff's device. + // + switch(i32X0 & 1) + { + case 0: + while(i32Count) + { + // + // Get the upper nibble of the next byte of pixel data + // and extract the corresponding entry from the + // palette. + // + ui32Byte = (*pui8Data >> 4) * 3; + ui32Byte = (*(uint32_t *)(pui8Palette + ui32Byte) & + 0x00ffffff); + + // + // Translate this palette entry. + // + ui32Byte = GrOffScreen4BPPColorTranslate(pvDisplayData, + ui32Byte); + + // + // Write this pixel to the screen. + // + *pui8Ptr = (*pui8Ptr & ~(0xf << i32X)) | + (ui32Byte << i32X); + if(i32X ^= 4) + { + pui8Ptr++; + } + + // + // Decrement the count of pixels to draw. + // + i32Count--; + + // + // See if there is another pixel to draw. + // + if(i32Count) + { + case 1: + // + // Get the lower nibble of the next byte of pixel + // data and extract the corresponding entry from + // the palette. + // + ui32Byte = (*pui8Data++ & 15) * 3; + ui32Byte = (*(uint32_t *)(pui8Palette + ui32Byte) & + 0x00ffffff); + + // + // Translate this palette entry. + // + ui32Byte = + GrOffScreen4BPPColorTranslate(pvDisplayData, + ui32Byte); + + // + // Write this pixel to the screen. + // + *pui8Ptr = ((*pui8Ptr & ~(0xf << i32X)) | + (ui32Byte << i32X)); + if(i32X ^= 4) + { + pui8Ptr++; + } + + // + // Decrement the count of pixels to draw. + // + i32Count--; + } + } + } + + // + // The image data has been drawn. + // + break; + } + + // + // The pixel data is in 8 bit per pixel format. + // + case 8: + { + // + // Loop while there are more pixels to draw. + // + while(i32Count--) + { + // + // Get the next byte of pixel data and extract the + // corresponding entry from the palette. + // + ui32Byte = *pui8Data++ * 3; + ui32Byte = *(uint32_t *)(pui8Palette + ui32Byte) & 0x00ffffff; + + // + // Translate this palette entry. + // + ui32Byte = GrOffScreen4BPPColorTranslate(pvDisplayData, + ui32Byte); + + // + // Write this pixel to the screen. + // + *pui8Ptr = (*pui8Ptr & ~(0xf << i32X)) | (ui32Byte << i32X); + if(i32X ^= 4) + { + pui8Ptr++; + } + } + + // + // The image data has been drawn. + // + break; + } + } +} + +//***************************************************************************** +// +//! Draws a horizontal line. +//! +//! \param pvDisplayData is a pointer to the driver-specific data for this +//! display driver. +//! \param i32X1 is the X coordinate of the start of the line. +//! \param i32X2 is the X coordinate of the end of the line. +//! \param i32Y is the Y coordinate of the line. +//! \param ui32Value is the color of the line. +//! +//! This function draws a horizontal line on the display. The coordinates of +//! the line are assumed to be within the extents of the display. +//! +//! \return None. +// +//***************************************************************************** +static void +GrOffScreen4BPPLineDrawH(void *pvDisplayData, int32_t i32X1, int32_t i32X2, + int32_t i32Y, uint32_t ui32Value) +{ + uint8_t *pui8Data; + int32_t i32BytesPerRow; + + // + // Check the arguments. + // + ASSERT(pvDisplayData); + + // + // Create a character pointer for the display-specific data (which points + // to the image buffer). + // + pui8Data = (uint8_t *)pvDisplayData; + + // + // Compute the number of bytes per row in the image buffer. + // + i32BytesPerRow = (*(uint16_t *)(pui8Data + 1) + 1) / 2; + + // + // Get the offset to the byte of the image buffer that contains the + // starting pixel. + // + pui8Data += (i32BytesPerRow * i32Y) + (i32X1 / 2) + 6 + (16 * 3); + + // + // Copy the pixel value into all 8 pixels of the uint32_t. This will + // be used later to write multiple pixels into memory (as opposed to one at + // a time). + // + ui32Value = ((ui32Value << 28) | (ui32Value << 24) | (ui32Value << 20) | + (ui32Value << 16) | (ui32Value << 12) | (ui32Value << 8) | + (ui32Value << 4) | ui32Value); + + // + // See if the second pixel in a byte is part of the line. + // + if(i32X1 & 1) + { + // + // Draw the second pixel in the byte. + // + *pui8Data = (*pui8Data & 0xf0) | (ui32Value & 0x0f); + pui8Data++; + i32X1++; + } + + // + // See if the buffer pointer is not half-word aligned and there are at + // least two pixels left to draw. + // + if(((uint32_t)pui8Data & 1) && ((i32X2 - i32X1) > 0)) + { + // + // Draw two pixels to half-word align the buffer pointer. + // + *pui8Data++ = ui32Value & 0xff; + i32X1 += 2; + } + + // + // See if the buffer pointer is not word aligned and there are at least + // four pixels left to draw. + // + if(((uint32_t)pui8Data & 2) && ((i32X2 - i32X1) > 2)) + { + // + // Draw four pixels to word align the buffer pointer. + // + *(uint16_t *)pui8Data = ui32Value & 0xffff; + pui8Data += 2; + i32X1 += 4; + } + + // + // Loop while there are at least eight pixels left to draw. + // + while((i32X1 + 7) <= i32X2) + { + // + // Draw eight pixels. + // + *(uint32_t *)pui8Data = ui32Value; + pui8Data += 4; + i32X1 += 8; + } + + // + // See if there are at least four pixels left to draw. + // + if((i32X1 + 3) <= i32X2) + { + // + // Draw four pixels, leaving the buffer pointer half-word aligned. + // + *(uint16_t *)pui8Data = ui32Value & 0xffff; + pui8Data += 2; + i32X1 += 4; + } + + // + // See if there are at least two pixels left to draw. + // + if((i32X1 + 1) <= i32X2) + { + // + // Draw two pixels, leaving the buffer pointer byte aligned. + // + *pui8Data++ = ui32Value & 0xff; + i32X1 += 2; + } + + // + // See if there is one pixel left to draw. + // + if(i32X1 == i32X2) + { + // + // Draw the final pixel. + // + *pui8Data = (*pui8Data & 0x0f) | (ui32Value & 0xf0); + } +} + +//***************************************************************************** +// +//! Draws a vertical line. +//! +//! \param pvDisplayData is a pointer to the driver-specific data for this +//! display driver. +//! \param i32X is the X coordinate of the line. +//! \param i32Y1 is the Y coordinate of the start of the line. +//! \param i32Y2 is the Y coordinate of the end of the line. +//! \param ui32Value is the color of the line. +//! +//! This function draws a vertical line on the display. The coordinates of the +//! line are assumed to be within the extents of the display. +//! +//! \return None. +// +//***************************************************************************** +static void +GrOffScreen4BPPLineDrawV(void *pvDisplayData, int32_t i32X, int32_t i32Y1, + int32_t i32Y2, uint32_t ui32Value) +{ + uint8_t *pui8Data; + int32_t i32BytesPerRow; + + // + // Check the arguments. + // + ASSERT(pvDisplayData); + + // + // Create a character pointer for the display-specific data (which points + // to the image buffer). + // + pui8Data = (uint8_t *)pvDisplayData; + + // + // Compute the number of bytes per row in the image buffer. + // + i32BytesPerRow = (*(uint16_t *)(pui8Data + 1) + 1) / 2; + + // + // Get the offset to the byte of the image buffer that contains the + // starting pixel. + // + pui8Data += (i32BytesPerRow * i32Y1) + (i32X / 2) + 6 + (16 * 3); + + // + // See if the vertical line resides in the first or second nibble. + // + if(i32X & 1) + { + // + // The line resides in the second nibble. Loop over the rows of the + // line. + // + while(i32Y1 <= i32Y2) + { + // + // Draw this pixel of the line. + // + *pui8Data = (*pui8Data & 0xf0) | ui32Value; + pui8Data += i32BytesPerRow; + i32Y1++; + } + } + else + { + // + // The line resides in the first nibble. Loop over the rows of the + // line. + // + ui32Value <<= 4; + while(i32Y1 <= i32Y2) + { + // + // Draw this pixel of the line. + // + *pui8Data = (*pui8Data & 0x0f) | ui32Value; + pui8Data += i32BytesPerRow; + i32Y1++; + } + } +} + +//***************************************************************************** +// +//! Fills a rectangle. +//! +//! \param pvDisplayData is a pointer to the driver-specific data for this +//! display driver. +//! \param pRect is a pointer to the structure describing the rectangle. +//! \param ui32Value is the color of the rectangle. +//! +//! This function fills a rectangle on the display. The coordinates of the +//! rectangle are assumed to be within the extents of the display, and the +//! rectangle specification is fully inclusive (in other words, both i16XMin +//! and i16XMax are drawn, along with i16YMin and i16YMax). +//! +//! \return None. +// +//***************************************************************************** +static void +GrOffScreen4BPPRectFill(void *pvDisplayData, const tRectangle *pRect, + uint32_t ui32Value) +{ + uint8_t *pui8Data, *pui8Column; + int32_t i32BytesPerRow, i32X, i32Y; + + // + // Check the arguments. + // + ASSERT(pvDisplayData); + ASSERT(pRect); + + // + // Create a character pointer for the display-specific data (which points + // to the image buffer). + // + pui8Data = (uint8_t *)pvDisplayData; + + // + // Compute the number of bytes per row in the image buffer. + // + i32BytesPerRow = (*(uint16_t *)(pui8Data + 1) + 1) / 2; + + // + // Get the offset to the byte of the image buffer that contains the + // starting pixel. + // + pui8Data += ((i32BytesPerRow * pRect->i16YMin) + (pRect->i16XMin / 2) + 6 + + (16 * 3)); + + // + // Copy the pixel value into all 8 pixels of the uint32_t. This will + // be used later to write multiple pixels into memory (as opposed to one at + // a time). + // + ui32Value = ((ui32Value << 28) | (ui32Value << 24) | (ui32Value << 20) | + (ui32Value << 16) | (ui32Value << 12) | (ui32Value << 8) | + (ui32Value << 4) | ui32Value); + + // + // Get the starting X coordinate of the rectangle. + // + i32X = pRect->i16XMin; + + // + // See if the second pixel in a byte is part of the rectangle. + // + if(i32X & 1) + { + // + // Draw the second pixel of this column of the rectangle. + // + for(i32Y = pRect->i16YMin, pui8Column = pui8Data; + i32Y <= pRect->i16YMax; + i32Y++, pui8Column += i32BytesPerRow) + { + *pui8Column = (*pui8Column & 0xf0) | (ui32Value & 0x0f); + } + pui8Data++; + i32X++; + } + + // + // See if the buffer pointer is not half-word aligned and there are at + // least two pixel columns left to draw. + // + if(((uint32_t)pui8Data & 1) && (pRect->i16XMax - i32X) > 0) + { + // + // Draw two pixels in this column of the rectangle. + // + for(i32Y = pRect->i16YMin, pui8Column = pui8Data; + i32Y <= pRect->i16YMax; + i32Y++, pui8Column += i32BytesPerRow) + { + *pui8Column = ui32Value & 0xff; + } + pui8Data++; + i32X += 2; + } + + // + // See if the buffer pointer is not word aligned and there are at least + // four pixel columns left to draw. + // + if(((uint32_t)pui8Data & 2) && ((pRect->i16XMax - i32X) > 2)) + { + // + // Draw four pixels in this column of the rectangle. + // + for(i32Y = pRect->i16YMin, pui8Column = pui8Data; + i32Y <= pRect->i16YMax; + i32Y++, pui8Column += i32BytesPerRow) + { + *(uint16_t *)pui8Column = ui32Value & 0xffff; + } + pui8Data += 2; + i32X += 4; + } + + // + // Loop while there are at least eight pixel columns left to draw. + // + while((i32X + 7) <= pRect->i16XMax) + { + // + // Draw eight pixels in this column of the rectangle. + // + for(i32Y = pRect->i16YMin, pui8Column = pui8Data; + i32Y <= pRect->i16YMax; + i32Y++, pui8Column += i32BytesPerRow) + { + *(uint32_t *)pui8Column = ui32Value; + } + pui8Data += 4; + i32X += 8; + } + + // + // See if there are at least four pixel columns left to draw. + // + if((i32X + 3) <= pRect->i16XMax) + { + // + // Draw four pixel columns, leaving the buffer pointer half-word + // aligned. + // + ui32Value &= 0xffff; + for(i32Y = pRect->i16YMin, pui8Column = pui8Data; + i32Y <= pRect->i16YMax; + i32Y++, pui8Column += i32BytesPerRow) + { + *(uint16_t *)pui8Column = ui32Value; + } + pui8Data += 2; + i32X += 4; + } + + // + // See if there are at least two pixel columns left to draw. + // + if((i32X + 1) <= pRect->i16XMax) + { + // + // Draw two pixel columns, leaving the buffer pointer byte aligned. + // + ui32Value &= 0xff; + for(i32Y = pRect->i16YMin, pui8Column = pui8Data; + i32Y <= pRect->i16YMax; + i32Y++, pui8Column += i32BytesPerRow) + { + *pui8Column = ui32Value; + } + pui8Data++; + i32X += 2; + } + + // + // See if there is one pixel column left to draw. + // + if(i32X == pRect->i16XMax) + { + // + // Draw the final pixel column. + // + ui32Value = ui32Value & 0xf0; + for(i32Y = pRect->i16YMin; i32Y <= pRect->i16YMax; + i32Y++, pui8Data += i32BytesPerRow) + { + *pui8Data = (*pui8Data & 0x0f) | ui32Value; + } + } +} + +//***************************************************************************** +// +//! Flushes any cached drawing operations. +//! +//! \param pvDisplayData is a pointer to the driver-specific data for this +//! display driver. +//! +//! This functions flushes any cached drawing operations to the display. This +//! is useful when a local frame buffer is used for drawing operations, and the +//! flush would copy the local frame buffer to the display. For the off-screen +//! display buffer driver, the flush is a no operation. +//! +//! \return None. +// +//***************************************************************************** +static void +GrOffScreen4BPPFlush(void *pvDisplayData) +{ + // + // Check the arguments. + // + ASSERT(pvDisplayData); +} + +//***************************************************************************** +// +//! Initializes a 4 BPP off-screen buffer. +//! +//! \param psDisplay is a pointer to the display structure to be configured for +//! the 4 BPP off-screen buffer. +//! \param pui8Image is a pointer to the image buffer to be used for the +//! off-screen buffer. +//! \param i32Width is the width of the image buffer in pixels. +//! \param i32Height is the height of the image buffer in pixels. +//! +//! This function initializes a display structure, preparing it to draw into +//! the supplied image buffer. The image buffer is assumed to be large enough +//! to hold an image of the specified geometry. +//! +//! \return None. +// +//***************************************************************************** +void +GrOffScreen4BPPInit(tDisplay *psDisplay, uint8_t *pui8Image, int32_t i32Width, + int32_t i32Height) +{ + // + // Check the arguments. + // + ASSERT(psDisplay); + ASSERT(pui8Image); + + // + // Initialize the display structure. + // + psDisplay->i32Size = sizeof(tDisplay); + psDisplay->pvDisplayData = pui8Image; + psDisplay->ui16Width = i32Width; + psDisplay->ui16Height = i32Height; + psDisplay->pfnPixelDraw = GrOffScreen4BPPPixelDraw; + psDisplay->pfnPixelDrawMultiple = GrOffScreen4BPPPixelDrawMultiple; + psDisplay->pfnLineDrawH = GrOffScreen4BPPLineDrawH; + psDisplay->pfnLineDrawV = GrOffScreen4BPPLineDrawV; + psDisplay->pfnRectFill = GrOffScreen4BPPRectFill; + psDisplay->pfnColorTranslate = GrOffScreen4BPPColorTranslate; + psDisplay->pfnFlush = GrOffScreen4BPPFlush; + + // + // Initialize the image buffer. + // + pui8Image[0] = IMAGE_FMT_4BPP_UNCOMP; + *(uint16_t *)(pui8Image + 1) = i32Width; + *(uint16_t *)(pui8Image + 3) = i32Height; + pui8Image[5] = 15; +} + +//***************************************************************************** +// +//! Sets the palette of a 4 BPP off-screen buffer. +//! +//! \param psDisplay is a pointer to the display structure for the 4 BPP +//! off-screen buffer. +//! \param pui32Palette is a pointer to the array of 24-bit RGB values to be +//! placed into the palette. +//! \param ui32Offset is the starting offset into the image palette. +//! \param ui32Count is the number of palette entries to set. +//! +//! This function sets the entries of the palette used by the 4 BPP off-screen +//! buffer. The palette is used to select colors for drawing via +//! GrOffScreen4BPPColorTranslate(), and for the final rendering of the image +//! to a real display via GrImageDraw(). +//! +//! \return None. +// +//***************************************************************************** +void +GrOffScreen4BPPPaletteSet(tDisplay *psDisplay, uint32_t *pui32Palette, + uint32_t ui32Offset, uint32_t ui32Count) +{ + uint8_t *pui8Data; + + // + // Check the arguments. + // + ASSERT(psDisplay); + ASSERT(pui32Palette); + ASSERT(ui32Offset < 16); + ASSERT((ui32Offset + ui32Count) <= 16); + + // + // Get a pointer to the start of the image buffer's palette. + // + pui8Data = (uint8_t *)psDisplay->pvDisplayData + 6; + + // + // Skip to the specified offset in the palette. + // + pui8Data += ui32Offset * 3; + + // + // Loop while there are more palette entries to add. + // + while(ui32Count--) + { + // + // Copy this palette entry to the image buffer's palette. + // + *pui8Data++ = (*pui32Palette >> ClrBlueShift) & 0xff; + *pui8Data++ = (*pui32Palette >> ClrGreenShift) & 0xff; + *pui8Data++ = (*pui32Palette++ >> ClrRedShift) & 0xff; + } +} + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** diff --git a/grlib/offscr8bpp.c b/grlib/offscr8bpp.c new file mode 100644 index 0000000..97bf48a --- /dev/null +++ b/grlib/offscr8bpp.c @@ -0,0 +1,839 @@ +//***************************************************************************** +// +// offscr8bpp.c - 8 BPP off-screen display buffer driver. +// +// Copyright (c) 2008-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#include +#include +#include "driverlib/debug.h" +#include "grlib/grlib.h" + +//***************************************************************************** +// +//! \addtogroup primitives_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +//! Translates a 24-bit RGB color to a display driver-specific color. +//! +//! \param pvDisplayData is a pointer to the driver-specific data for this +//! display driver. +//! \param ui32Value is the 24-bit RGB color. The least-significant byte is +//! the blue channel, the next byte is the green channel, and the third byte is +//! the red channel. +//! +//! This function translates a 24-bit RGB color into a value that can be +//! written into the display's frame buffer in order to reproduce that color, +//! or the closest possible approximation of that color. +//! +//! \return Returns the display-driver specific color. +// +//***************************************************************************** +static uint32_t +GrOffScreen8BPPColorTranslate(void *pvDisplayData, uint32_t ui32Value) +{ + uint32_t ui32Idx, ui32Diff, ui32MatchIdx, ui32MatchDiff; + uint32_t ui32R, ui32G, ui32B; + uint8_t *pui8Palette; + + // + // Check the arguments. + // + ASSERT(pvDisplayData); + + // + // Get a pointer to the palette for the off-screen buffer. + // + pui8Palette = (uint8_t *)pvDisplayData + 6; + + // + // Extract the red, green, and blue component from the input color. + // + ui32R = (ui32Value >> ClrRedShift) & 0xff; + ui32G = (ui32Value >> ClrGreenShift) & 0xff; + ui32B = (ui32Value >> ClrBlueShift) & 0xff; + + // + // Set the match such that the first palette entry will be a better match. + // + ui32MatchIdx = 0; + ui32MatchDiff = 0xffffffff; + + // + // Loop through the colors in the palette. + // + for(ui32Idx = 0; ui32Idx < 256; ui32Idx++, pui8Palette += 3) + { + // + // Compute the Cartesian distance between these two colors. + // + ui32Diff = (((pui8Palette[2] - ui32R) * (pui8Palette[2] - ui32R)) + + ((pui8Palette[1] - ui32G) * (pui8Palette[1] - ui32G)) + + ((pui8Palette[0] - ui32B) * (pui8Palette[0] - ui32B))); + + // + // See if this color is a closer match than any of the previous colors. + // + if(ui32Diff < ui32MatchDiff) + { + // + // Save this color as the new best match. + // + ui32MatchDiff = ui32Diff; + ui32MatchIdx = ui32Idx; + } + + // + // Stop looking if an exact match was found. + // + if(ui32Diff == 0) + { + break; + } + } + + // + // Return the index of the best match. + // + return(ui32MatchIdx); +} + +//***************************************************************************** +// +//! Draws a pixel on the screen. +//! +//! \param pvDisplayData is a pointer to the driver-specific data for this +//! display driver. +//! \param i32X is the X coordinate of the pixel. +//! \param i32Y is the Y coordinate of the pixel. +//! \param ui32Value is the color of the pixel. +//! +//! This function sets the given pixel to a particular color. The coordinates +//! of the pixel are assumed to be within the extents of the display. +//! +//! \return None. +// +//***************************************************************************** +static void +GrOffScreen8BPPPixelDraw(void *pvDisplayData, int32_t i32X, int32_t i32Y, + uint32_t ui32Value) +{ + uint8_t *pui8Data; + + // + // Check the arguments. + // + ASSERT(pvDisplayData); + + // + // Create a character pointer for the display-specific data (which points + // to the image buffer). + // + pui8Data = (uint8_t *)pvDisplayData; + + // + // Get the offset to the byte of the image buffer that contains the pixel + // in question. + // + pui8Data += (*(uint16_t *)(pui8Data + 1) * i32Y) + i32X + 6 + (256 * 3); + + // + // Write this pixel into the image buffer. + // + *pui8Data = ui32Value; +} + +//***************************************************************************** +// +//! Draws a horizontal sequence of pixels on the screen. +//! +//! \param pvDisplayData is a pointer to the driver-specific data for this +//! display driver. +//! \param i32X is the X coordinate of the first pixel. +//! \param i32Y is the Y coordinate of the first pixel. +//! \param i32X0 is sub-pixel offset within the pixel data, which is valid for +//! 1 or 4 bit per pixel formats. +//! \param i32Count is the number of pixels to draw. +//! \param i32BPP is the number of bits per pixel ORed with a flag indicating +//! whether or not this run represents the start of a new image. +//! \param pui8Data is a pointer to the pixel data. For 1 and 4 bit per pixel +//! formats, the most significant bit(s) represent the left-most pixel. +//! \param pui8Palette is a pointer to the palette used to draw the pixels. +//! +//! This function draws a horizontal sequence of pixels on the screen, using +//! the supplied palette. For 1 bit per pixel format, the palette contains +//! pre-translated colors; for 4 and 8 bit per pixel formats, the palette +//! contains 24-bit RGB values that must be translated before being written to +//! the display. +//! +//! The \e i32BPP parameter will take the value 1, 4 or 8 and may be ORed with +//! \b GRLIB_DRIVER_FLAG_NEW_IMAGE to indicate that this run represents the +//! start of a new image. Drivers which make use of lookup tables to convert +//! from the source to destination pixel values should rebuild their lookup +//! table when \b GRLIB_DRIVER_FLAG_NEW_IMAGE is set. +//! +//! \return None. +// +//***************************************************************************** +static void +GrOffScreen8BPPPixelDrawMultiple(void *pvDisplayData, int32_t i32X, + int32_t i32Y, int32_t i32X0, int32_t i32Count, + int32_t i32BPP, const uint8_t *pui8Data, + const uint8_t *pui8Palette) +{ + uint8_t *pui8Ptr; + uint32_t ui32Byte; + + // + // Check the arguments. + // + ASSERT(pvDisplayData); + ASSERT(pui8Data); + ASSERT(pui8Palette); + + // + // Create a character pointer for the display-specific data (which points + // to the image buffer). + // + pui8Ptr = (uint8_t *)pvDisplayData; + + // + // Get the offset to the byte of the image buffer that contains the + // starting pixel. + // + pui8Ptr += (*(uint16_t *)(pui8Ptr + 1) * i32Y) + i32X + 6 + (256 * 3); + + // + // Determine how to interpret the pixel data based on the number of bits + // per pixel. + // + switch(i32BPP & 0xFF) + { + // + // The pixel data is in 1 bit per pixel format. + // + case 1: + { + // + // Loop while there are more pixels to draw. + // + while(i32Count) + { + // + // Get the next byte of image data. + // + ui32Byte = *pui8Data++; + + // + // Loop through the pixels in this byte of image data. + // + for(; (i32X0 < 8) && i32Count; i32X0++, i32Count--) + { + // + // Draw this pixel in the appropriate color. + // + *pui8Ptr++ = (((uint32_t *)pui8Palette)[(ui32Byte >> + (7 - i32X0)) & + 1]); + } + + // + // Start at the beginning of the next byte of image data. + // + i32X0 = 0; + } + + // + // The image data has been drawn. + // + break; + } + + // + // The pixel data is in 4 bit per pixel format. + // + case 4: + { + // + // Loop while there are more pixels to draw. "Duff's device" is + // used to jump into the middle of the loop if the first nibble of + // the pixel data should not be used. Duff's device makes use of + // the fact that a case statement is legal anywhere within a + // sub-block of a switch statement. See + // http://en.wikipedia.org/wiki/Duff's_device for detailed + // information about Duff's device. + // + switch(i32X0 & 1) + { + case 0: + while(i32Count) + { + // + // Get the upper nibble of the next byte of pixel data + // and extract the corresponding entry from the + // palette. + // + ui32Byte = (*pui8Data >> 4) * 3; + ui32Byte = (*(uint32_t *)(pui8Palette + ui32Byte) & + 0x00ffffff); + + // + // Translate this palette entry and write it to the + // screen. + // + *pui8Ptr++ = + GrOffScreen8BPPColorTranslate(pvDisplayData, + ui32Byte); + + // + // Decrement the count of pixels to draw. + // + i32Count--; + + // + // See if there is another pixel to draw. + // + if(i32Count) + { + case 1: + // + // Get the lower nibble of the next byte of pixel + // data and extract the corresponding entry from + // the palette. + // + ui32Byte = (*pui8Data++ & 15) * 3; + ui32Byte = (*(uint32_t *)(pui8Palette + ui32Byte) & + 0x00ffffff); + + // + // Translate this palette entry and write it to the + // screen. + // + *pui8Ptr++ = + GrOffScreen8BPPColorTranslate(pvDisplayData, + ui32Byte); + + // + // Decrement the count of pixels to draw. + // + i32Count--; + } + } + } + + // + // The image data has been drawn. + // + break; + } + + // + // The pixel data is in 8 bit per pixel format. + // + case 8: + { + // + // Loop while there are more pixels to draw. + // + while(i32Count--) + { + // + // Get the next byte of pixel data and extract the + // corresponding entry from the palette. + // + ui32Byte = *pui8Data++ * 3; + ui32Byte = *(uint32_t *)(pui8Palette + ui32Byte) & 0x00ffffff; + + // + // Translate this palette entry and write it to the screen. + // + *pui8Ptr++ = GrOffScreen8BPPColorTranslate(pvDisplayData, + ui32Byte); + } + + // + // The image data has been drawn. + // + break; + } + } +} + +//***************************************************************************** +// +//! Draws a horizontal line. +//! +//! \param pvDisplayData is a pointer to the driver-specific data for this +//! display driver. +//! \param i32X1 is the X coordinate of the start of the line. +//! \param i32X2 is the X coordinate of the end of the line. +//! \param i32Y is the Y coordinate of the line. +//! \param ui32Value is the color of the line. +//! +//! This function draws a horizontal line on the display. The coordinates of +//! the line are assumed to be within the extents of the display. +//! +//! \return None. +// +//***************************************************************************** +static void +GrOffScreen8BPPLineDrawH(void *pvDisplayData, int32_t i32X1, int32_t i32X2, + int32_t i32Y, uint32_t ui32Value) +{ + uint8_t *pui8Data; + + // + // Check the arguments. + // + ASSERT(pvDisplayData); + + // + // Create a character pointer for the display-specific data (which points + // to the image buffer). + // + pui8Data = (uint8_t *)pvDisplayData; + + // + // Get the offset to the byte of the image buffer that contains the + // starting pixel. + // + pui8Data += (*(uint16_t *)(pui8Data + 1) * i32Y) + i32X1 + 6 + (256 * 3); + + // + // Copy the pixel value into all 4 pixels of the uint32_t. This will + // be used later to write multiple pixels into memory (as opposed to one at + // a time). + // + ui32Value = (ui32Value << 24) | (ui32Value << 16) | + (ui32Value << 8) | ui32Value; + + // + // See if the buffer pointer is not half-word aligned. + // + if(((uint32_t)pui8Data) & 1) + { + // + // Draw one pixel to half-word align the buffer pointer. + // + *pui8Data++ = ui32Value & 0xff; + i32X1++; + } + + // + // See if the buffer pointer is not word aligned and there are at least two + // pixels left to draw. + // + if(((uint32_t)pui8Data & 2) && ((i32X2 - i32X1) > 0)) + { + // + // Draw two pixels to word align the buffer pointer. + // + *(uint16_t *)pui8Data = ui32Value & 0xffff; + pui8Data += 2; + i32X1 += 2; + } + + // + // Loop while there are at least four pixels left to draw. + // + while((i32X1 + 3) <= i32X2) + { + // + // Draw four pixels. + // + *(uint32_t *)pui8Data = ui32Value; + pui8Data += 4; + i32X1 += 4; + } + + // + // See if there are at least two pixels left to draw. + // + if((i32X1 + 1) <= i32X2) + { + // + // Draw two pixels, leaving the buffer pointer half-word aligned. + // + *(uint16_t *)pui8Data = ui32Value & 0xffff; + pui8Data += 2; + i32X1 += 2; + } + + // + // See if there is one pixel left to draw. + // + if(i32X1 == i32X2) + { + // + // Draw the final pixel. + // + *pui8Data = ui32Value & 0xff; + } +} + +//***************************************************************************** +// +//! Draws a vertical line. +//! +//! \param pvDisplayData is a pointer to the driver-specific data for this +//! display driver. +//! \param i32X is the X coordinate of the line. +//! \param i32Y1 is the Y coordinate of the start of the line. +//! \param i32Y2 is the Y coordinate of the end of the line. +//! \param ui32Value is the color of the line. +//! +//! This function draws a vertical line on the display. The coordinates of the +//! line are assumed to be within the extents of the display. +//! +//! \return None. +// +//***************************************************************************** +static void +GrOffScreen8BPPLineDrawV(void *pvDisplayData, int32_t i32X, int32_t i32Y1, + int32_t i32Y2, uint32_t ui32Value) +{ + uint8_t *pui8Data; + int32_t i32BytesPerRow; + + // + // Check the arguments. + // + ASSERT(pvDisplayData); + + // + // Create a character pointer for the display-specific data (which points + // to the image buffer). + // + pui8Data = (uint8_t *)pvDisplayData; + + // + // Compute the number of bytes per row in the image buffer. + // + i32BytesPerRow = *(uint16_t *)(pui8Data + 1); + + // + // Get the offset to the byte of the image buffer that contains the + // starting pixel. + // + pui8Data += (i32BytesPerRow * i32Y1) + i32X + 6 + (256 * 3); + + // + // Loop over the rows of the line. + // + for(; i32Y1 <= i32Y2; i32Y1++) + { + *pui8Data = ui32Value; + pui8Data += i32BytesPerRow; + } +} + +//***************************************************************************** +// +//! Fills a rectangle. +//! +//! \param pvDisplayData is a pointer to the driver-specific data for this +//! display driver. +//! \param pRect is a pointer to the structure describing the rectangle. +//! \param ui32Value is the color of the rectangle. +//! +//! This function fills a rectangle on the display. The coordinates of the +//! rectangle are assumed to be within the extents of the display, and the +//! rectangle specification is fully inclusive (in other words, both i16XMin +//! and i16XMax are drawn, along with i16YMin and i16YMax). +//! +//! \return None. +// +//***************************************************************************** +static void +GrOffScreen8BPPRectFill(void *pvDisplayData, const tRectangle *pRect, + uint32_t ui32Value) +{ + uint8_t *pui8Data, *pui8Ptr; + int32_t i32BytesPerRow, i32X, i32Y; + + // + // Check the arguments. + // + ASSERT(pvDisplayData); + ASSERT(pRect); + + // + // Create a character pointer for the display-specific data (which points + // to the image buffer). + // + pui8Data = (uint8_t *)pvDisplayData; + + // + // Compute the number of bytes per row in the image buffer. + // + i32BytesPerRow = *(uint16_t *)(pui8Data + 1); + + // + // Get the offset to the byte of the image buffer that contains the + // starting pixel. + // + pui8Data += (i32BytesPerRow * pRect->i16YMin) + pRect->i16XMin + + 6 + (256 * 3); + + // + // Copy the pixel value into all 4 pixels of the uint32_t. This will + // be used later to write multiple pixels into memory (as opposed to one at + // a time). + // + ui32Value = (ui32Value << 24) | (ui32Value << 16) | (ui32Value << 8) | + ui32Value; + + // + // Get the starting X coordinate. + // + i32X = pRect->i16XMin; + + // + // See if the buffer pointer is not half-word aligned. + // + if(((uint32_t)pui8Data) & 1) + { + // + // Draw one pixel column to half-word align the buffer pointer. + // + for(i32Y = pRect->i16YMin, pui8Ptr = pui8Data; i32Y <= pRect->i16YMax; + i32Y++, pui8Ptr += i32BytesPerRow) + { + *pui8Ptr = ui32Value & 0xff; + } + pui8Data++; + i32X++; + } + + // + // See if the buffer pointer is not word aligned and there are at least two + // pixel columns left to draw. + // + if(((uint32_t)pui8Data & 2) && ((pRect->i16XMax - i32X) > 0)) + { + // + // Draw two pixel columns to word align the buffer pointer. + // + for(i32Y = pRect->i16YMin, pui8Ptr = pui8Data; i32Y <= pRect->i16YMax; + i32Y++, pui8Ptr += i32BytesPerRow) + { + *(uint16_t *)pui8Ptr = ui32Value & 0xffff; + } + pui8Data += 2; + i32X += 2; + } + + // + // Loop while there are at least four pixel columns left to draw. + // + while((i32X + 3) <= pRect->i16XMax) + { + // + // Draw four pixel columns. + // + for(i32Y = pRect->i16YMin, pui8Ptr = pui8Data; i32Y <= pRect->i16YMax; + i32Y++, pui8Ptr += i32BytesPerRow) + { + *(uint32_t *)pui8Ptr = ui32Value; + } + pui8Data += 4; + i32X += 4; + } + + // + // See if ther are at least two pixel columns left to draw. + // + if((i32X + 1) <= pRect->i16XMax) + { + // + // Draw two pixel columns, leaving the buffer pointer half-word + // aligned. + // + ui32Value &= 0xffff; + for(i32Y = pRect->i16YMin, pui8Ptr = pui8Data; i32Y <= pRect->i16YMax; + i32Y++, pui8Ptr += i32BytesPerRow) + { + *(uint16_t *)pui8Ptr = ui32Value; + } + pui8Data += 2; + i32X += 2; + } + + // + // See if there is one pixel column left to draw. + // + if(i32X == pRect->i16XMax) + { + // + // Draw the final pixel column. + // + ui32Value &= 0xff; + for(i32Y = pRect->i16YMin; i32Y <= pRect->i16YMax; + i32Y++, pui8Data += i32BytesPerRow) + { + *pui8Data = ui32Value; + } + } +} + +//***************************************************************************** +// +//! Flushes any cached drawing operations. +//! +//! \param pvDisplayData is a pointer to the driver-specific data for this +//! display driver. +//! +//! This functions flushes any cached drawing operations to the display. This +//! is useful when a local frame buffer is used for drawing operations, and the +//! flush would copy the local frame buffer to the display. For the off-screen +//! display buffer driver, the flush is a no operation. +//! +//! \return None. +// +//***************************************************************************** +static void +GrOffScreen8BPPFlush(void *pvDisplayData) +{ + // + // Check the arguments. + // + ASSERT(pvDisplayData); +} + +//***************************************************************************** +// +//! Initializes an 8 BPP off-screen buffer. +//! +//! \param psDisplay is a pointer to the display structure to be configured for +//! the 4 BPP off-screen buffer. +//! \param pui8Image is a pointer to the image buffer to be used for the +//! off-screen buffer. +//! \param i32Width is the width of the image buffer in pixels. +//! \param i32Height is the height of the image buffer in pixels. +//! +//! This function initializes a display structure, preparing it to draw into +//! the supplied image buffer. The image buffer is assumed to be large enough +//! to hold an image of the specified geometry. +//! +//! \return None. +// +//***************************************************************************** +void +GrOffScreen8BPPInit(tDisplay *psDisplay, uint8_t *pui8Image, int32_t i32Width, + int32_t i32Height) +{ + // + // Check the arguments. + // + ASSERT(psDisplay); + ASSERT(pui8Image); + + // + // Initialize the display structure. + // + psDisplay->i32Size = sizeof(tDisplay); + psDisplay->pvDisplayData = pui8Image; + psDisplay->ui16Width = i32Width; + psDisplay->ui16Height = i32Height; + psDisplay->pfnPixelDraw = GrOffScreen8BPPPixelDraw; + psDisplay->pfnPixelDrawMultiple = GrOffScreen8BPPPixelDrawMultiple; + psDisplay->pfnLineDrawH = GrOffScreen8BPPLineDrawH; + psDisplay->pfnLineDrawV = GrOffScreen8BPPLineDrawV; + psDisplay->pfnRectFill = GrOffScreen8BPPRectFill; + psDisplay->pfnColorTranslate = GrOffScreen8BPPColorTranslate; + psDisplay->pfnFlush = GrOffScreen8BPPFlush; + + // + // Initialize the image buffer. + // + pui8Image[0] = IMAGE_FMT_8BPP_UNCOMP; + *(uint16_t *)(pui8Image + 1) = i32Width; + *(uint16_t *)(pui8Image + 3) = i32Height; + pui8Image[5] = 255; +} + +//***************************************************************************** +// +//! Sets the palette of an 8 BPP off-screen buffer. +//! +//! \param psDisplay is a pointer to the display structure for the 4 BPP +//! off-screen buffer. +//! \param pui32Palette is a pointer to the array of 24-bit RGB values to be +//! placed into the palette. +//! \param ui32Offset is the starting offset into the image palette. +//! \param ui32Count is the number of palette entries to set. +//! +//! This function sets the entries of the palette used by the 8 BPP off-screen +//! buffer. The palette is used to select colors for drawing via +//! GrOffScreen4BPPColorTranslate(), and for the final rendering of the image +//! to a real display via GrImageDraw(). +//! +//! \return None. +// +//***************************************************************************** +void +GrOffScreen8BPPPaletteSet(tDisplay *psDisplay, uint32_t *pui32Palette, + uint32_t ui32Offset, uint32_t ui32Count) +{ + uint8_t *pui8Data; + + // + // Check the arguments. + // + ASSERT(psDisplay); + ASSERT(pui32Palette); + ASSERT(ui32Offset < 256); + ASSERT((ui32Offset + ui32Count) <= 256); + + // + // Get a pointer to the start of the image buffer's palette. + // + pui8Data = (uint8_t *)psDisplay->pvDisplayData + 6; + + // + // Skip to the specified offset in the palette. + // + pui8Data += ui32Offset * 3; + + // + // Loop while there are more palette entries to add. + // + while(ui32Count--) + { + // + // Copy this palette entry to the image buffer's palette. + // + *pui8Data++ = (*pui32Palette >> ClrBlueShift) & 0xff; + *pui8Data++ = (*pui32Palette >> ClrGreenShift) & 0xff; + *pui8Data++ = (*pui32Palette++ >> ClrRedShift) & 0xff; + } +} + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** diff --git a/grlib/pushbutton.c b/grlib/pushbutton.c new file mode 100644 index 0000000..0486400 --- /dev/null +++ b/grlib/pushbutton.c @@ -0,0 +1,959 @@ +//***************************************************************************** +// +// pushbutton.c - Various types of push buttons. +// +// Copyright (c) 2008-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#include +#include +#include "driverlib/debug.h" +#include "grlib/grlib.h" +#include "grlib/widget.h" +#include "grlib/pushbutton.h" + +//***************************************************************************** +// +//! \addtogroup pushbutton_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +//! Draws a rectangular push button. +//! +//! \param psWidget is a pointer to the push button widget to be drawn. +//! +//! This function draws a rectangular push button on the display. This is +//! called in response to a \b #WIDGET_MSG_PAINT message. +//! +//! \return None. +// +//***************************************************************************** +static void +RectangularButtonPaint(tWidget *psWidget) +{ + const uint8_t *pui8Image; + tPushButtonWidget *pPush; + tContext sCtx; + int32_t i32X, i32Y; + + // + // Check the arguments. + // + ASSERT(psWidget); + + // + // Convert the generic widget pointer into a push button widget pointer. + // + pPush = (tPushButtonWidget *)psWidget; + + // + // Initialize a drawing context. + // + GrContextInit(&sCtx, psWidget->psDisplay); + + // + // Initialize the clipping region based on the extents of this rectangular + // push button. + // + GrContextClipRegionSet(&sCtx, &(psWidget->sPosition)); + + // + // See if the push button fill style is selected. + // + if(pPush->ui32Style & PB_STYLE_FILL) + { + // + // Fill the push button with the fill color. + // + GrContextForegroundSet(&sCtx, ((pPush->ui32Style & PB_STYLE_PRESSED) ? + pPush->ui32PressFillColor : + pPush->ui32FillColor)); + GrRectFill(&sCtx, &(psWidget->sPosition)); + } + + // + // See if the push button outline style is selected. + // + if(pPush->ui32Style & PB_STYLE_OUTLINE) + { + // + // Outline the push button with the outline color. + // + GrContextForegroundSet(&sCtx, pPush->ui32OutlineColor); + GrRectDraw(&sCtx, &(psWidget->sPosition)); + } + + // + // See if the push button text or image style is selected. + // + if(pPush->ui32Style & (PB_STYLE_TEXT | PB_STYLE_IMG)) + { + // + // Compute the center of the push button. + // + i32X = (psWidget->sPosition.i16XMin + + ((psWidget->sPosition.i16XMax - + psWidget->sPosition.i16XMin + 1) / 2)); + i32Y = (psWidget->sPosition.i16YMin + + ((psWidget->sPosition.i16YMax - + psWidget->sPosition.i16YMin + 1) / 2)); + + // + // If the push button outline style is selected then shrink the + // clipping region by one pixel on each side so that the outline is not + // overwritten by the text or image. + // + if(pPush->ui32Style & PB_STYLE_OUTLINE) + { + sCtx.sClipRegion.i16XMin++; + sCtx.sClipRegion.i16YMin++; + sCtx.sClipRegion.i16XMax--; + sCtx.sClipRegion.i16YMax--; + } + + // + // See if the push button image style is selected. + // + if(pPush->ui32Style & PB_STYLE_IMG) + { + // + // Set the foreground and background colors to use for 1 BPP + // images. + // + GrContextForegroundSet(&sCtx, pPush->ui32TextColor); + GrContextBackgroundSet(&sCtx, + ((pPush->ui32Style & PB_STYLE_PRESSED) ? + pPush->ui32PressFillColor : + pPush->ui32FillColor)); + + // + // Get the image to be drawn. + // + pui8Image = (((pPush->ui32Style & PB_STYLE_PRESSED) && + pPush->pui8PressImage) ? + pPush->pui8PressImage : pPush->pui8Image); + + // + // Draw the image centered in the push button. + // + GrImageDraw(&sCtx, pui8Image, + i32X - (GrImageWidthGet(pui8Image) / 2), + i32Y - (GrImageHeightGet(pui8Image) / 2)); + } + + // + // See if the push button text style is selected. + // + if(pPush->ui32Style & PB_STYLE_TEXT) + { + // + // Draw the text centered in the middle of the push button. + // + GrContextFontSet(&sCtx, pPush->psFont); + GrContextForegroundSet(&sCtx, pPush->ui32TextColor); + GrContextBackgroundSet(&sCtx, + ((pPush->ui32Style & PB_STYLE_PRESSED) ? + pPush->ui32PressFillColor : + pPush->ui32FillColor)); + GrStringDrawCentered(&sCtx, pPush->pcText, -1, i32X, i32Y, + pPush->ui32Style & PB_STYLE_TEXT_OPAQUE); + } + } +} + +//***************************************************************************** +// +//! Handles pointer events for a rectangular push button. +//! +//! \param psWidget is a pointer to the push button widget. +//! \param ui32Msg is the pointer event message. +//! \param i32X is the X coordinate of the pointer event. +//! \param i32Y is the Y coordinate of the pointer event. +//! +//! This function processes pointer event messages for a rectangular push +//! button. This is called in response to a \b #WIDGET_MSG_PTR_DOWN, +//! \b #WIDGET_MSG_PTR_MOVE, and \b #WIDGET_MSG_PTR_UP messages. +//! +//! If the \b #WIDGET_MSG_PTR_UP message is received with a position within the +//! extents of the push button, the push button's OnClick callback function is +//! called. +//! +//! \return Returns 1 if the coordinates are within the extents of the push +//! button and 0 otherwise. +// +//***************************************************************************** +static int32_t +RectangularButtonClick(tWidget *psWidget, uint32_t ui32Msg, int32_t i32X, + int32_t i32Y) +{ + tPushButtonWidget *pPush; + + // + // Check the arguments. + // + ASSERT(psWidget); + + // + // Convert the generic widget pointer into a push button widget pointer. + // + pPush = (tPushButtonWidget *)psWidget; + + // + // See if this is a pointer up message. + // + if(ui32Msg == WIDGET_MSG_PTR_UP) + { + // + // Indicate that this push button is no longer pressed. + // + pPush->ui32Style &= ~(PB_STYLE_PRESSED); + + // + // If filling is enabled for this push button, or if an image is being + // used and a pressed button image is provided, then redraw the push + // button to show it in its non-pressed state. + // + if((pPush->ui32Style & PB_STYLE_FILL) || + ((pPush->ui32Style & PB_STYLE_IMG) && pPush->pui8PressImage)) + { + RectangularButtonPaint(psWidget); + } + + // + // If the pointer is still within the button bounds, and it is a + // release notify button, call the notification function here. + // + if(GrRectContainsPoint(&psWidget->sPosition, i32X, i32Y) && + (pPush->ui32Style & PB_STYLE_RELEASE_NOTIFY) && pPush->pfnOnClick) + { + pPush->pfnOnClick(psWidget); + } + } + + // + // See if the given coordinates are within the extents of the push button. + // + if(GrRectContainsPoint(&psWidget->sPosition, i32X, i32Y)) + { + // + // See if this is a pointer down message. + // + if(ui32Msg == WIDGET_MSG_PTR_DOWN) + { + // + // Indicate that this push button is pressed. + // + pPush->ui32Style |= PB_STYLE_PRESSED; + + // + // If filling is enabled for this push button, or if an image is + // being used and a pressed button image is provided, then redraw + // the push button to show it in its pressed state. + // + if((pPush->ui32Style & PB_STYLE_FILL) || + ((pPush->ui32Style & PB_STYLE_IMG) && pPush->pui8PressImage)) + { + RectangularButtonPaint(psWidget); + } + } + + // + // See if there is an OnClick callback for this widget. + // + if(pPush->pfnOnClick) + { + // + // If the pointer was just pressed then call the callback. + // + if((ui32Msg == WIDGET_MSG_PTR_DOWN) && + !(pPush->ui32Style & PB_STYLE_RELEASE_NOTIFY)) + { + pPush->pfnOnClick(psWidget); + } + + // + // See if auto-repeat is enabled for this widget. + // + if(pPush->ui32Style & PB_STYLE_AUTO_REPEAT) + { + // + // If the pointer was just pressed, reset the auto-repeat + // count. + // + if(ui32Msg == WIDGET_MSG_PTR_DOWN) + { + pPush->ui32AutoRepeatCount = 0; + } + + // + // See if the pointer was moved. + // + else if(ui32Msg == WIDGET_MSG_PTR_MOVE) + { + // + // Increment the auto-repeat count. + // + pPush->ui32AutoRepeatCount++; + + // + // If the auto-repeat count exceeds the auto-repeat delay, + // and it is a multiple of the auto-repeat rate, then + // call the callback. + // + if((pPush->ui32AutoRepeatCount >= + pPush->ui16AutoRepeatDelay) && + (((pPush->ui32AutoRepeatCount - + pPush->ui16AutoRepeatDelay) % + pPush->ui16AutoRepeatRate) == 0)) + { + pPush->pfnOnClick(psWidget); + } + } + } + } + + // + // These coordinates are within the extents of the push button widget. + // + return(1); + } + + // + // These coordinates are not within the extents of the push button widget. + // + return(0); +} + +//***************************************************************************** +// +//! Handles messages for a rectangular push button widget. +//! +//! \param psWidget is a pointer to the push button widget. +//! \param ui32Msg is the message. +//! \param ui32Param1 is the first parameter to the message. +//! \param ui32Param2 is the second parameter to the message. +//! +//! This function receives messages intended for this push button widget and +//! processes them accordingly. The processing of the message varies based on +//! the message in question. +//! +//! Unrecognized messages are handled by calling WidgetDefaultMsgProc(). +//! +//! \return Returns a value appropriate to the supplied message. +// +//***************************************************************************** +int32_t +RectangularButtonMsgProc(tWidget *psWidget, uint32_t ui32Msg, + uint32_t ui32Param1, uint32_t ui32Param2) +{ + // + // Check the arguments. + // + ASSERT(psWidget); + + // + // Determine which message is being sent. + // + switch(ui32Msg) + { + // + // The widget paint request has been sent. + // + case WIDGET_MSG_PAINT: + { + // + // Handle the widget paint request. + // + RectangularButtonPaint(psWidget); + + // + // Return one to indicate that the message was successfully + // processed. + // + return(1); + } + + // + // One of the pointer requests has been sent. + // + case WIDGET_MSG_PTR_DOWN: + case WIDGET_MSG_PTR_MOVE: + case WIDGET_MSG_PTR_UP: + { + // + // Handle the pointer request, returning the appropriate value. + // + return(RectangularButtonClick(psWidget, ui32Msg, ui32Param1, + ui32Param2)); + } + + // + // An unknown request has been sent. + // + default: + { + // + // Let the default message handler process this message. + // + return(WidgetDefaultMsgProc(psWidget, ui32Msg, ui32Param1, + ui32Param2)); + } + } +} + +//***************************************************************************** +// +//! Initializes a rectangular push button widget. +//! +//! \param psWidget is a pointer to the push button widget to initialize. +//! \param psDisplay is a pointer to the display on which to draw the push +//! button. +//! \param i32X is the X coordinate of the upper left corner of the push +//! button. +//! \param i32Y is the Y coordinate of the upper left corner of the push +//! button. +//! \param i32Width is the width of the push button. +//! \param i32Height is the height of the push button. +//! +//! This function initializes the provided push button widget so that it will +//! be a rectangular push button. +//! +//! \return None. +// +//***************************************************************************** +void +RectangularButtonInit(tPushButtonWidget *psWidget, const tDisplay *psDisplay, + int32_t i32X, int32_t i32Y, int32_t i32Width, + int32_t i32Height) +{ + uint32_t ui32Idx; + + // + // Check the arguments. + // + ASSERT(psWidget); + ASSERT(psDisplay); + + // + // Clear out the widget structure. + // + for(ui32Idx = 0; ui32Idx < sizeof(tPushButtonWidget); ui32Idx += 4) + { + ((uint32_t *)psWidget)[ui32Idx / 4] = 0; + } + + // + // Set the size of the push button widget structure. + // + psWidget->sBase.i32Size = sizeof(tPushButtonWidget); + + // + // Mark this widget as fully disconnected. + // + psWidget->sBase.psParent = 0; + psWidget->sBase.psNext = 0; + psWidget->sBase.psChild = 0; + + // + // Save the display pointer. + // + psWidget->sBase.psDisplay = psDisplay; + + // + // Set the extents of this rectangular push button. + // + psWidget->sBase.sPosition.i16XMin = i32X; + psWidget->sBase.sPosition.i16YMin = i32Y; + psWidget->sBase.sPosition.i16XMax = i32X + i32Width - 1; + psWidget->sBase.sPosition.i16YMax = i32Y + i32Height - 1; + + // + // Use the rectangular push button message handler to process messages to + // this push button. + // + psWidget->sBase.pfnMsgProc = RectangularButtonMsgProc; +} + +//***************************************************************************** +// +//! Draws a circular push button. +//! +//! \param psWidget is a pointer to the push button widget to be drawn. +//! +//! This function draws a circular push button on the display. This is called +//! in response to a \b #WIDGET_MSG_PAINT message. +//! +//! \return None. +// +//***************************************************************************** +static void +CircularButtonPaint(tWidget *psWidget) +{ + const uint8_t *pui8Image; + tPushButtonWidget *pPush; + tContext sCtx; + int32_t i32X, i32Y, i32R; + + // + // Check the arguments. + // + ASSERT(psWidget); + + // + // Convert the generic widget pointer into a push button widget pointer. + // + pPush = (tPushButtonWidget *)psWidget; + + // + // Initialize a drawing context. + // + GrContextInit(&sCtx, psWidget->psDisplay); + + // + // Initialize the clipping region based on the extents of this circular + // push button. + // + GrContextClipRegionSet(&sCtx, &(psWidget->sPosition)); + + // + // Get the radius of the circular push button, along with the X and Y + // coordinates for its center. + // + i32R = (psWidget->sPosition.i16XMax - psWidget->sPosition.i16XMin + 1) / 2; + i32X = psWidget->sPosition.i16XMin + i32R; + i32Y = psWidget->sPosition.i16YMin + i32R; + + // + // See if the push button fill style is selected. + // + if(pPush->ui32Style & PB_STYLE_FILL) + { + // + // Fill the push button with the fill color. + // + GrContextForegroundSet(&sCtx, ((pPush->ui32Style & PB_STYLE_PRESSED) ? + pPush->ui32PressFillColor : + pPush->ui32FillColor)); + GrCircleFill(&sCtx, i32X, i32Y, i32R); + } + + // + // See if the push button outline style is selected. + // + if(pPush->ui32Style & PB_STYLE_OUTLINE) + { + // + // Outline the push button with the outline color. + // + GrContextForegroundSet(&sCtx, pPush->ui32OutlineColor); + GrCircleDraw(&sCtx, i32X, i32Y, i32R); + } + + // + // See if the push button text or image style is selected. + // + if(pPush->ui32Style & (PB_STYLE_TEXT | PB_STYLE_IMG)) + { + // + // If the push button outline style is selected then shrink the + // clipping region by one pixel on each side so that the outline is not + // overwritten by the text or image. + // + if(pPush->ui32Style & PB_STYLE_OUTLINE) + { + sCtx.sClipRegion.i16XMin++; + sCtx.sClipRegion.i16YMin++; + sCtx.sClipRegion.i16XMax--; + sCtx.sClipRegion.i16YMax--; + } + + // + // See if the push button image style is selected. + // + if(pPush->ui32Style & PB_STYLE_IMG) + { + // + // Set the foreground and background colors to use for 1 BPP + // images. + // + GrContextForegroundSet(&sCtx, pPush->ui32TextColor); + GrContextBackgroundSet(&sCtx, + ((pPush->ui32Style & PB_STYLE_PRESSED) ? + pPush->ui32PressFillColor : + pPush->ui32FillColor)); + + // + // Get the image to be drawn. + // + pui8Image = (((pPush->ui32Style & PB_STYLE_PRESSED) && + pPush->pui8PressImage) ? + pPush->pui8PressImage : pPush->pui8Image); + + // + // Draw the image centered in the push button. + // + GrImageDraw(&sCtx, pui8Image, i32X - (GrImageWidthGet(pui8Image) / 2), + i32Y - (GrImageHeightGet(pui8Image) / 2)); + } + + // + // See if the push button text style is selected. + // + if(pPush->ui32Style & PB_STYLE_TEXT) + { + // + // Draw the text centered in the middle of the push button. + // + GrContextFontSet(&sCtx, pPush->psFont); + GrContextForegroundSet(&sCtx, pPush->ui32TextColor); + GrContextBackgroundSet(&sCtx, + ((pPush->ui32Style & PB_STYLE_PRESSED) ? + pPush->ui32PressFillColor : + pPush->ui32FillColor)); + GrStringDrawCentered(&sCtx, pPush->pcText, -1, i32X, i32Y, + pPush->ui32Style & PB_STYLE_TEXT_OPAQUE); + } + } +} + +//***************************************************************************** +// +//! Handles pointer events for a circular push button. +//! +//! \param psWidget is a pointer to the push button widget. +//! \param ui32Msg is the pointer event message. +//! \param i32X is the X coordinate of the pointer event. +//! \param i32Y is the Y coordinate of the pointer event. +//! +//! This function processes pointer event messages for a circular push button. +//! This is called in response to a \b #WIDGET_MSG_PTR_DOWN, +//! \b #WIDGET_MSG_PTR_MOVE, and \b #WIDGET_MSG_PTR_UP messages. +//! +//! If the \b #WIDGET_MSG_PTR_UP message is received with a position within the +//! extents of the push button, the push button's OnClick callback function is +//! called. +//! +//! \return Returns 1 if the coordinates are within the extents of the push +//! button and 0 otherwise. +// +//***************************************************************************** +static int32_t +CircularButtonClick(tWidget *psWidget, uint32_t ui32Msg, int32_t i32X, + int32_t i32Y) +{ + tPushButtonWidget *pPush; + int32_t i32Xc, i32Yc, i32R; + + // + // Check the arguments. + // + ASSERT(psWidget); + + // + // Convert the generic widget pointer into a push button widget pointer. + // + pPush = (tPushButtonWidget *)psWidget; + + // + // See if this is a pointer up message. + // + if(ui32Msg == WIDGET_MSG_PTR_UP) + { + // + // Indicate that this push button is no longer pressed. + // + pPush->ui32Style &= ~(PB_STYLE_PRESSED); + + // + // If filling is enabled for this push button, or if an image is being + // used and a pressed button image is provided, then redraw the push + // button to show it in its non-pressed state. + // + if((pPush->ui32Style & PB_STYLE_FILL) || + ((pPush->ui32Style & PB_STYLE_IMG) && pPush->pui8PressImage)) + { + CircularButtonPaint(psWidget); + } + } + + // + // Get the radius of the circular push button, along with the X and Y + // coordinates for its center. + // + i32R = (psWidget->sPosition.i16XMax - psWidget->sPosition.i16XMin + 1) / 2; + i32Xc = psWidget->sPosition.i16XMin + i32R; + i32Yc = psWidget->sPosition.i16YMin + i32R; + + // + // See if the given coordinates are within the radius of the push button. + // + if((((i32X - i32Xc) * (i32X - i32Xc)) + + ((i32Y - i32Yc) * (i32Y - i32Yc))) <= (i32R * i32R)) + { + // + // See if this is a pointer down message. + // + if(ui32Msg == WIDGET_MSG_PTR_DOWN) + { + // + // Indicate that this push button is pressed. + // + pPush->ui32Style |= PB_STYLE_PRESSED; + + // + // If filling is enabled for this push button, or if an image is + // being used and a pressed button image is provided, then redraw + // the push button to show it in its pressed state. + // + if((pPush->ui32Style & PB_STYLE_FILL) || + ((pPush->ui32Style & PB_STYLE_IMG) && pPush->pui8PressImage)) + { + CircularButtonPaint(psWidget); + } + } + + // + // See if there is an OnClick callback for this widget. + // + if(pPush->pfnOnClick) + { + // + // If the pointer was just pressed or if the pointer was released + // and this button is set for release notification then call the + // callback. + // + if(((ui32Msg == WIDGET_MSG_PTR_DOWN) && + !(pPush->ui32Style & PB_STYLE_RELEASE_NOTIFY)) || + ((ui32Msg == WIDGET_MSG_PTR_UP) && + (pPush->ui32Style & PB_STYLE_RELEASE_NOTIFY))) + { + pPush->pfnOnClick(psWidget); + } + + // + // See if auto-repeat is enabled for this widget. + // + if(pPush->ui32Style & PB_STYLE_AUTO_REPEAT) + { + // + // If the pointer was just pressed, reset the auto-repeat + // count. + // + if(ui32Msg == WIDGET_MSG_PTR_DOWN) + { + pPush->ui32AutoRepeatCount = 0; + } + + // + // See if the pointer was moved. + // + else if(ui32Msg == WIDGET_MSG_PTR_MOVE) + { + // + // Increment the auto-repeat count. + // + pPush->ui32AutoRepeatCount++; + + // + // If the auto-repeat count exceeds the auto-repeat delay, + // and it is a multiple of the auto-repeat rate, then + // call the callback. + // + if((pPush->ui32AutoRepeatCount >= + pPush->ui16AutoRepeatDelay) && + (((pPush->ui32AutoRepeatCount - + pPush->ui16AutoRepeatDelay) % + pPush->ui16AutoRepeatRate) == 0)) + { + pPush->pfnOnClick(psWidget); + } + } + } + } + + // + // These coordinates are within the extents of the push button widget. + // + return(1); + } + + // + // These coordinates are not within the extents of the push button widget. + // + return(0); +} + +//***************************************************************************** +// +//! Handles messages for a circular push button widget. +//! +//! \param psWidget is a pointer to the push button widget. +//! \param ui32Msg is the message. +//! \param ui32Param1 is the first parameter to the message. +//! \param ui32Param2 is the second parameter to the message. +//! +//! This function receives messages intended for this push button widget and +//! processes them accordingly. The processing of the message varies based on +//! the message in question. +//! +//! Unrecognized messages are handled by calling WidgetDefaultMsgProc(). +//! +//! \return Returns a value appropriate to the supplied message. +// +//***************************************************************************** +int32_t +CircularButtonMsgProc(tWidget *psWidget, uint32_t ui32Msg, + uint32_t ui32Param1, uint32_t ui32Param2) +{ + // + // Check the arguments. + // + ASSERT(psWidget); + + // + // Determine which message is being sent. + // + switch(ui32Msg) + { + // + // The widget paint request has been sent. + // + case WIDGET_MSG_PAINT: + { + // + // Handle the widget paint request. + // + CircularButtonPaint(psWidget); + + // + // Return one to indicate that the message was successfully + // processed. + // + return(1); + } + + // + // One of the pointer requests has been sent. + // + case WIDGET_MSG_PTR_DOWN: + case WIDGET_MSG_PTR_MOVE: + case WIDGET_MSG_PTR_UP: + { + // + // Handle the pointer request, returning the appropriate value. + // + return(CircularButtonClick(psWidget, ui32Msg, ui32Param1, + ui32Param2)); + } + + // + // An unknown request has been sent. + // + default: + { + // + // Let the default message handler process this message. + // + return(WidgetDefaultMsgProc(psWidget, ui32Msg, ui32Param1, + ui32Param2)); + } + } +} + +//***************************************************************************** +// +//! Initializes a circular push button widget. +//! +//! \param psWidget is a pointer to the push button widget to initialize. +//! \param psDisplay is a pointer to the display on which to draw the push +//! button. +//! \param i32X is the X coordinate of the upper left corner of the push +//! button. +//! \param i32Y is the Y coordinate of the upper left corner of the push +//! button. +//! \param i32R is the radius of the push button. +//! +//! This function initializes the provided push button widget so that it will +//! be a circular push button. +//! +//! \return None. +// +//***************************************************************************** +void +CircularButtonInit(tPushButtonWidget *psWidget, const tDisplay *psDisplay, + int32_t i32X, int32_t i32Y, int32_t i32R) +{ + uint32_t ui32Idx; + + // + // Check the arguments. + // + ASSERT(psWidget); + ASSERT(psDisplay); + + // + // Clear out the widget structure. + // + for(ui32Idx = 0; ui32Idx < sizeof(tPushButtonWidget); ui32Idx += 4) + { + ((uint32_t *)psWidget)[ui32Idx / 4] = 0; + } + + // + // Set the size of the push button widget structure. + // + psWidget->sBase.i32Size = sizeof(tPushButtonWidget); + + // + // Mark this widget as fully disconnected. + // + psWidget->sBase.psParent = 0; + psWidget->sBase.psNext = 0; + psWidget->sBase.psChild = 0; + + // + // Save the display pointer. + // + psWidget->sBase.psDisplay = psDisplay; + + // + // Set the extents of this circular push button. + // + psWidget->sBase.sPosition.i16XMin = i32X - i32R; + psWidget->sBase.sPosition.i16YMin = i32Y - i32R; + psWidget->sBase.sPosition.i16XMax = i32X + i32R; + psWidget->sBase.sPosition.i16YMax = i32Y + i32R; + + // + // Use the circular push button message handler to processes messages to + // this push button. + // + psWidget->sBase.pfnMsgProc = CircularButtonMsgProc; +} + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** diff --git a/grlib/pushbutton.h b/grlib/pushbutton.h new file mode 100644 index 0000000..545c075 --- /dev/null +++ b/grlib/pushbutton.h @@ -0,0 +1,1075 @@ +//***************************************************************************** +// +// pushbutton.h - Prototypes for the push buttons. +// +// Copyright (c) 2008-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#ifndef __PUSHBUTTON_H__ +#define __PUSHBUTTON_H__ + +//***************************************************************************** +// +//! \addtogroup pushbutton_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +// If building with a C++ compiler, make all of the definitions in this header +// have a C binding. +// +//***************************************************************************** +#ifdef __cplusplus +extern "C" +{ +#endif + +//***************************************************************************** +// +//! The structure that describes a push button widget. +// +//***************************************************************************** +typedef struct +{ + // + //! The generic widget information. + // + tWidget sBase; + + // + //! The style for this widget. This is a set of flags defined by + //! PB_STYLE_xxx. + // + uint32_t ui32Style; + + // + //! The 24-bit RGB color used to fill this push button, if PB_STYLE_FILL is + //! selected, and to use as the background color if PB_STYLE_TEXT_OPAQUE is + //! selected. + // + uint32_t ui32FillColor; + + // + //! The 24-bit RGB color used to fill this push button when it is pressed, + //! if PB_STYLE_FILL is selected, and to use as the background color if + //! PB_STYLE_TEXT_OPAQUE is selected. + // + uint32_t ui32PressFillColor; + + // + //! The 24-bit RGB color used to outline this push button, if + //! PB_STYLE_OUTLINE is selected. + // + uint32_t ui32OutlineColor; + + // + //! The 24-bit RGB color used to draw text on this push button, if + //! PB_STYLE_TEXT is selected. + // + uint32_t ui32TextColor; + + // + //! A pointer to the font used to render the push button text, if + //! PB_STYLE_TEXT is selected. + // + const tFont *psFont; + + // + //! A pointer to the text to draw on this push button, if PB_STYLE_TEXT is + //! selected. + // + const char *pcText; + + // + //! A pointer to the image to be drawn onto this push button, if + //! PB_STYLE_IMG is selected. + // + const uint8_t *pui8Image; + + // + //! A pointer to the image to be drawn onto this push button when it is + //! pressed, if PB_STYLE_IMG is selected. + // + const uint8_t *pui8PressImage; + + // + //! The number of pointer events to delay before starting to auto-repeat, + //! if PB_STYLE_AUTO_REPEAT is selected. The amount of time to which this + //! corresponds is dependent upon the rate at which pointer events are + //! generated by the pointer driver. + // + uint16_t ui16AutoRepeatDelay; + + // + //! The number of pointer events between button presses generated by the + //! auto-repeat function, if PB_STYLE_AUTO_REPEAT is selected. The amount + //! of time to which this corresponds is dependent up on the rate at which + //! pointer events are generated by the pointer driver. + // + uint16_t ui16AutoRepeatRate; + + // + //! The number of pointer events that have occurred. This is used when + //! PB_STYLE_AUTO_REPEAT is selected to generate the auto-repeat events. + // + uint32_t ui32AutoRepeatCount; + + // + //! A pointer to the function to be called when the button is pressed. + //! This is repeatedly called when PB_STYLE_AUTO_REPEAT is selected. + // + void (*pfnOnClick)(tWidget *psWidget); +} +tPushButtonWidget; + +//***************************************************************************** +// +//! This flag indicates that the push button should be outlined. +// +//***************************************************************************** +#define PB_STYLE_OUTLINE 0x00000001 + +//***************************************************************************** +// +//! This flag indicates that the push button should be filled. +// +//***************************************************************************** +#define PB_STYLE_FILL 0x00000002 + +//***************************************************************************** +// +//! This flag indicates that the push button should have text drawn on it. +// +//***************************************************************************** +#define PB_STYLE_TEXT 0x00000004 + +//***************************************************************************** +// +//! This flag indicates that the push button should have an image drawn on it. +// +//***************************************************************************** +#define PB_STYLE_IMG 0x00000008 + +//***************************************************************************** +// +//! This flag indicates that the push button text should be drawn opaque (in +//! other words, drawing the background pixels as well as the foreground +//! pixels). +// +//***************************************************************************** +#define PB_STYLE_TEXT_OPAQUE 0x00000010 + +//***************************************************************************** +// +//! This flag indicates that the push button should auto-repeat, generating +//! repeated click events while it is pressed. +// +//***************************************************************************** +#define PB_STYLE_AUTO_REPEAT 0x00000020 + +//***************************************************************************** +// +//! This flag indicates that the push button is pressed. +// +//***************************************************************************** +#define PB_STYLE_PRESSED 0x00000040 + +//***************************************************************************** +// +//! This flag indicates that the push button callback should be made when +//! the button is released rather than when it is pressed. This does not +//! affect the operation of auto repeat buttons. +// +//***************************************************************************** +#define PB_STYLE_RELEASE_NOTIFY 0x00000080 + +//***************************************************************************** +// +//! Declares an initialized circular push button widget data structure. +//! +//! \param psParent is a pointer to the parent widget. +//! \param psNext is a pointer to the sibling widget. +//! \param psChild is a pointer to the first child widget. +//! \param psDisplay is a pointer to the display on which to draw the push +//! button. +//! \param i32X is the X coordinate of the center of the push button. +//! \param i32Y is the Y coordinate of the center of the push button. +//! \param i32R is the radius of the push button. +//! \param ui32Style is the style to be applied to the push button. +//! \param ui32FillColor is the color used to fill in the push button. +//! \param ui32PressFillColor is the color used to fill in the push button +//! when it is pressed. +//! \param ui32OutlineColor is the color used to outline the push button. +//! \param ui32TextColor is the color used to draw text on the push button. +//! \param psFont is a pointer to the font to be used to draw text on the push +//! button. +//! \param pcText is a pointer to the text to draw on this push button. +//! \param pui8Image is a pointer to the image to draw on this push button. +//! \param pui8PressImage is a pointer to the image to draw on this push button +//! when it is pressed. +//! \param ui16AutoRepeatDelay is the delay before starting auto-repeat. +//! \param ui16AutoRepeatRate is the rate at which auto-repeat events are +//! generated. +//! \param pfnOnClick is a pointer to the function that is called when the push +//! button is pressed. +//! +//! This macro provides an initialized circular push button widget data +//! structure, which can be used to construct the widget tree at compile time +//! in global variables (as opposed to run-time via function calls). This must +//! be assigned to a variable, such as: +//! +//! \verbatim +//! tPushButtonWidget g_sPushButton = CircularButtonStruct(...); +//! \endverbatim +//! +//! Or, in an array of variables: +//! +//! \verbatim +//! tPushButtonWidget g_psPushButtons[] = +//! { +//! CircularButtonStruct(...), +//! CircularButtonStruct(...) +//! }; +//! \endverbatim +//! +//! \e ui32Style is the logical OR of the following: +//! +//! - \b #PB_STYLE_OUTLINE to indicate that the push button should be outlined. +//! - \b #PB_STYLE_FILL to indicate that the push button should be filled. +//! - \b #PB_STYLE_TEXT to indicate that the push button should have text drawn +//! on it (using \e psFont and \e pcText). +//! - \b #PB_STYLE_IMG to indicate that the push button should have an image +//! drawn on it (using \e pui8Image). +//! - \b #PB_STYLE_TEXT_OPAQUE to indicate that the push button text should be +//! drawn opaque (in other words, drawing the background pixels). +//! - \b #PB_STYLE_AUTO_REPEAT to indicate that auto-repeat should be used. +//! - \b #PB_STYLE_RELEASE_NOTIFY to indicate that the callback should be made +//! when the button is released. If absent, the callback is called when the +//! button is initially pressed. +//! +//! \return Nothing; this is not a function. +// +//***************************************************************************** +#define CircularButtonStruct(psParent, psNext, psChild, psDisplay, i32X, i32Y,\ + i32R, ui32Style, ui32FillColor, \ + ui32PressFillColor, ui32OutlineColor, \ + ui32TextColor, psFont, pcText, pui8Image, \ + pui8PressImage, ui16AutoRepeatDelay, \ + ui16AutoRepeatRate, pfnOnClick) \ + { \ + { \ + sizeof(tPushButtonWidget), \ + (tWidget *)(psParent), \ + (tWidget *)(psNext), \ + (tWidget *)(psChild), \ + psDisplay, \ + { \ + (i32X) - (i32R), \ + (i32Y) - (i32R), \ + (i32X) + (i32R), \ + (i32Y) + (i32R) \ + }, \ + CircularButtonMsgProc \ + }, \ + ui32Style, \ + ui32FillColor, \ + ui32PressFillColor, \ + ui32OutlineColor, \ + ui32TextColor, \ + psFont, \ + pcText, \ + pui8Image, \ + pui8PressImage, \ + ui16AutoRepeatDelay, \ + ui16AutoRepeatRate, \ + 0, \ + pfnOnClick \ + } + +//***************************************************************************** +// +//! Declares an initialized variable containing a circular push button widget +//! data structure. +//! +//! \param sName is the name of the variable to be declared. +//! \param psParent is a pointer to the parent widget. +//! \param psNext is a pointer to the sibling widget. +//! \param psChild is a pointer to the first child widget. +//! \param psDisplay is a pointer to the display on which to draw the push +//! button. +//! \param i32X is the X coordinate of the center of the push button. +//! \param i32Y is the Y coordinate of the center of the push button. +//! \param i32R is the radius of the push button. +//! \param ui32Style is the style to be applied to the push button. +//! \param ui32FillColor is the color used to fill in the push button. +//! \param ui32PressFillColor is the color used to fill in the push button +//! when it is pressed. +//! \param ui32OutlineColor is the color used to outline the push button. +//! \param ui32TextColor is the color used to draw text on the push button. +//! \param psFont is a pointer to the font to be used to draw text on the push +//! button. +//! \param pcText is a pointer to the text to draw on this push button. +//! \param pui8Image is a pointer to the image to draw on this push button. +//! \param pui8PressImage is a pointer to the image to draw on this push button +//! when it is pressed. +//! \param ui16AutoRepeatDelay is the delay before starting auto-repeat. +//! \param ui16AutoRepeatRate is the rate at which auto-repeat events are +//! generated. +//! \param pfnOnClick is a pointer to the function that is called when the push +//! button is pressed. +//! +//! This macro provides an initialized circular push button widget data +//! structure, which can be used to construct the widget tree at compile time +//! in global variables (as opposed to run-time via function calls). +//! +//! \e ui32Style is the logical OR of the following: +//! +//! - \b #PB_STYLE_OUTLINE to indicate that the push button should be outlined. +//! - \b #PB_STYLE_FILL to indicate that the push button should be filled. +//! - \b #PB_STYLE_TEXT to indicate that the push button should have text drawn +//! on it (using \e psFont and \e pcText). +//! - \b #PB_STYLE_IMG to indicate that the push button should have an image +//! drawn on it (using \e pui8Image). +//! - \b #PB_STYLE_TEXT_OPAQUE to indicate that the push button text should be +//! drawn opaque (in other words, drawing the background pixels). +//! - \b #PB_STYLE_AUTO_REPEAT to indicate that auto-repeat should be used. +//! - \b #PB_STYLE_RELEASE_NOTIFY to indicate that the callback should be made +//! when the button is released. If absent, the callback is called when the +//! button is initially pressed. +//! +//! \return Nothing; this is not a function. +// +//***************************************************************************** +#define CircularButton(sName, psParent, psNext, psChild, psDisplay, i32X, \ + i32Y, i32R, ui32Style, ui32FillColor, \ + ui32PressFillColor, ui32OutlineColor, ui32TextColor, \ + psFont, pcText, pui8Image, pui8PressImage, \ + ui16AutoRepeatDelay, ui16AutoRepeatRate, pfnOnClick) \ + tPushButtonWidget sName = \ + CircularButtonStruct(psParent, psNext, psChild, psDisplay, i32X, \ + i32Y, i32R, ui32Style, ui32FillColor, \ + ui32PressFillColor, ui32OutlineColor, \ + ui32TextColor, psFont, pcText, pui8Image, \ + pui8PressImage, ui16AutoRepeatDelay, \ + ui16AutoRepeatRate, pfnOnClick) + +//***************************************************************************** +// +//! Declares an initialized rectangular push button widget data structure. +//! +//! \param psParent is a pointer to the parent widget. +//! \param psNext is a pointer to the sibling widget. +//! \param psChild is a pointer to the first child widget. +//! \param psDisplay is a pointer to the display on which to draw the push +//! button. +//! \param i32X is the X coordinate of the upper left corner of the push +//! button. +//! \param i32Y is the Y coordinate of the upper left corner of the push +//! button. +//! \param i32Width is the width of the push button. +//! \param i32Height is the height of the push button. +//! \param ui32Style is the style to be applied to the push button. +//! \param ui32FillColor is the color used to fill in the push button. +//! \param ui32PressFillColor is the color used to fill in the push button when +//! it is pressed. +//! \param ui32OutlineColor is the color used to outline the push button. +//! \param ui32TextColor is the color used to draw text on the push button. +//! \param psFont is a pointer to the font to be used to draw text on the push +//! button. +//! \param pcText is a pointer to the text to draw on this push button. +//! \param pui8Image is a pointer to the image to draw on this push button. +//! \param pui8PressImage is a pointer to the image to draw on this push button +//! when it is pressed. +//! \param ui16AutoRepeatDelay is the delay before starting auto-repeat. +//! \param ui16AutoRepeatRate is the rate at which auto-repeat events are +//! generated. +//! \param pfnOnClick is a pointer to the function that is called when the push +//! button is pressed. +//! +//! This macro provides an initialized rectangular push button widget data +//! structure, which can be used to construct the widget tree at compile time +//! in global variables (as opposed to run-time via function calls). This must +//! be assigned to a variable, such as: +//! +//! \verbatim +//! tPushButtonWidget g_sPushButton = RectangularButtonStruct(...); +//! \endverbatim +//! +//! Or, in an array of variables: +//! +//! \verbatim +//! tPushButtonWidget g_psPushButtons[] = +//! { +//! RectangularButtonStruct(...), +//! RectangularButtonStruct(...) +//! }; +//! \endverbatim +//! +//! \e ui32Style is the logical OR of the following: +//! +//! - \b #PB_STYLE_OUTLINE to indicate that the push button should be outlined. +//! - \b #PB_STYLE_FILL to indicate that the push button should be filled. +//! - \b #PB_STYLE_TEXT to indicate that the push button should have text drawn +//! on it (using \e psFont and \e pcText). +//! - \b #PB_STYLE_IMG to indicate that the push button should have an image +//! drawn on it (using \e pui8Image). +//! - \b #PB_STYLE_TEXT_OPAQUE to indicate that the push button text should be +//! drawn opaque (in other words, drawing the background pixels). +//! - \b #PB_STYLE_AUTO_REPEAT to indicate that auto-repeat should be used. +//! - \b #PB_STYLE_RELEASE_NOTIFY to indicate that the callback should be made +//! when the button is released. If absent, the callback is called when the +//! button is initially pressed. +//! +//! \return Nothing; this is not a function. +// +//***************************************************************************** +#define RectangularButtonStruct(psParent, psNext, psChild, psDisplay, i32X, \ + i32Y, i32Width, i32Height, ui32Style, \ + ui32FillColor, ui32PressFillColor, \ + ui32OutlineColor, ui32TextColor, psFont, \ + pcText, pui8Image, pui8PressImage, \ + ui16AutoRepeatDelay, ui16AutoRepeatRate, \ + pfnOnClick) \ + { \ + { \ + sizeof(tPushButtonWidget), \ + (tWidget *)(psParent), \ + (tWidget *)(psNext), \ + (tWidget *)(psChild), \ + psDisplay, \ + { \ + i32X, \ + i32Y, \ + (i32X) + (i32Width) - 1, \ + (i32Y) + (i32Height) - 1 \ + }, \ + RectangularButtonMsgProc \ + }, \ + ui32Style, \ + ui32FillColor, \ + ui32PressFillColor, \ + ui32OutlineColor, \ + ui32TextColor, \ + psFont, \ + pcText, \ + pui8Image, \ + pui8PressImage, \ + ui16AutoRepeatDelay, \ + ui16AutoRepeatRate, \ + 0, \ + pfnOnClick \ + } + +//***************************************************************************** +// +//! Declares an initialized variable containing a rectangular push button +//! widget data structure. +//! +//! \param sName is the name of the variable to be declared. +//! \param psParent is a pointer to the parent widget. +//! \param psNext is a pointer to the sibling widget. +//! \param psChild is a pointer to the first child widget. +//! \param psDisplay is a pointer to the display on which to draw the push +//! button. +//! \param i32X is the X coordinate of the upper left corner of the push +//! button. +//! \param i32Y is the Y coordinate of the upper left corner of the push +//! button. +//! \param i32Width is the width of the push button. +//! \param i32Height is the height of the push button. +//! \param ui32Style is the style to be applied to the push button. +//! \param ui32FillColor is the color used to fill in the push button. +//! \param ui32PressFillColor is the color used to fill in the push button when +//! it is pressed. +//! \param ui32OutlineColor is the color used to outline the push button. +//! \param ui32TextColor is the color used to draw text on the push button. +//! \param psFont is a pointer to the font to be used to draw text on the push +//! button. +//! \param pcText is a pointer to the text to draw on this push button. +//! \param pui8Image is a pointer to the image to draw on this push button. +//! \param pui8PressImage is a pointer to the image to draw on this push button +//! when it is pressed. +//! \param ui16AutoRepeatDelay is the delay before starting auto-repeat. +//! \param ui16AutoRepeatRate is the rate at which auto-repeat events are +//! generated. +//! \param pfnOnClick is a pointer to the function that is called when the push +//! button is pressed. +//! +//! This macro provides an initialized rectangular push button widget data +//! structure, which can be used to construct the widget tree at compile time +//! in global variables (as opposed to run-time via function calls). +//! +//! \e ui32Style is the logical OR of the following: +//! +//! - \b #PB_STYLE_OUTLINE to indicate that the push button should be outlined. +//! - \b #PB_STYLE_FILL to indicate that the push button should be filled. +//! - \b #PB_STYLE_TEXT to indicate that the push button should have text drawn +//! on it (using \e psFont and \e pcText). +//! - \b #PB_STYLE_IMG to indicate that the push button should have an image +//! drawn on it (using \e pui8Image). +//! - \b #PB_STYLE_TEXT_OPAQUE to indicate that the push button text should be +//! drawn opaque (in other words, drawing the background pixels). +//! - \b #PB_STYLE_AUTO_REPEAT to indicate that auto-repeat should be used. +//! - \b #PB_STYLE_RELEASE_NOTIFY to indicate that the callback should be made +//! when the button is released. If absent, the callback is called when the +//! button is initially pressed. +//! +//! \return Nothing; this is not a function. +// +//***************************************************************************** +#define RectangularButton(sName, psParent, psNext, psChild, psDisplay, i32X, \ + i32Y, i32Width, i32Height, ui32Style, \ + ui32FillColor, ui32PressFillColor, \ + ui32OutlineColor, ui32TextColor, \ + psFont, pcText, pui8Image, pui8PressImage, \ + ui16AutoRepeatDelay, ui16AutoRepeatRate, pfnOnClick)\ + tPushButtonWidget sName = \ + RectangularButtonStruct(psParent, psNext, psChild, psDisplay, \ + i32X, i32Y, i32Width, i32Height, \ + ui32Style, ui32FillColor, \ + ui32PressFillColor, ui32OutlineColor, \ + ui32TextColor, psFont, pcText, pui8Image, \ + pui8PressImage, ui16AutoRepeatDelay, \ + ui16AutoRepeatRate, pfnOnClick) + +//***************************************************************************** +// +//! Sets the auto-repeat delay for a push button widget. +//! +//! \param psWidget is a pointer to the push button widget to modify. +//! \param ui16Delay is the number of pointer events before auto-repeat starts. +//! +//! This function sets the delay before auto-repeat begins. Unpredictable +//! behavior will occur if this is called while the push button is pressed. +//! +//! \return None. +// +//***************************************************************************** +#define PushButtonAutoRepeatDelaySet(psWidget, ui16Delay) \ + do \ + { \ + tPushButtonWidget *psW = psWidget; \ + psW->ui16AutoRepeatDelay = ui16Delay; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables auto-repeat for a push button widget. +//! +//! \param psWidget is a pointer to the push button widget to modify. +//! +//! This function disables the auto-repeat behavior of a push button. +//! +//! \return None. +// +//***************************************************************************** +#define PushButtonAutoRepeatOff(psWidget) \ + do \ + { \ + tPushButtonWidget *psW = psWidget; \ + psW->ui32Style &= ~(PB_STYLE_AUTO_REPEAT); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables auto-repeat for a push button widget. +//! +//! \param psWidget is a pointer to the push button widget to modify. +//! +//! This function enables the auto-repeat behavior of a push button. +//! Unpredictable behavior will occur if this is called while the push button +//! is pressed. +//! +//! \return None. +// +//***************************************************************************** +#define PushButtonAutoRepeatOn(psWidget) \ + do \ + { \ + tPushButtonWidget *psW = psWidget; \ + psW->ui32Style |= PB_STYLE_AUTO_REPEAT; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the auto-repeat rate for a push button widget. +//! +//! \param psWidget is a pointer to the push button widget to modify. +//! \param ui16Rate is the number of pointer events between auto-repeat events. +//! +//! This function sets the rate at which auto-repeat events occur. +//! Unpredictable behavior will occur if this is called while the push button +//! is pressed. +//! +//! \return None. +// +//***************************************************************************** +#define PushButtonAutoRepeatRateSet(psWidget, ui16Rate) \ + do \ + { \ + tPushButtonWidget *psW = psWidget; \ + psW->ui16AutoRepeatRate = ui16Rate; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the function to call when this push button widget is pressed. +//! +//! \param psWidget is a pointer to the push button widget to modify. +//! \param pfnOnClik is a pointer to the function to call. +//! +//! This function sets the function to be called when this push button is +//! pressed. The supplied function is called when the push button is first +//! pressed, and then repeated while the push button is pressed if auto-repeat +//! is enabled. +//! +//! \return None. +// +//***************************************************************************** +#define PushButtonCallbackSet(psWidget, pfnOnClik) \ + do \ + { \ + tPushButtonWidget *psW = psWidget; \ + psW->pfnOnClick = pfnOnClik; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the fill color of a push button widget. +//! +//! \param psWidget is a pointer to the push button widget to be modified. +//! \param ui32Color is the 24-bit RGB color to use to fill the push button. +//! +//! This function changes the color used to fill the push button on the +//! display. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define PushButtonFillColorSet(psWidget, ui32Color) \ + do \ + { \ + tPushButtonWidget *psW = psWidget; \ + psW->ui32FillColor = ui32Color; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the fill color of a push button widget when it is pressed. +//! +//! \param psWidget is a pointer to the push button widget to be modified. +//! \param ui32Color is the 24-bit RGB color to use to fill the push button +//! when it is pressed. +//! +//! This function changes the color used to fill the push button on the +//! display when it is pressed. The display is not updated until the next +//! paint request. +//! +//! \return None. +// +//***************************************************************************** +#define PushButtonFillColorPressedSet(psWidget, ui32Color) \ + do \ + { \ + tPushButtonWidget *psW = psWidget; \ + psW->ui32PressFillColor = ui32Color; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables filling of a push button widget. +//! +//! \param psWidget is a pointer to the push button widget to modify. +//! +//! This function disables the filling of a push button widget. The display is +//! not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define PushButtonFillOff(psWidget) \ + do \ + { \ + tPushButtonWidget *psW = psWidget; \ + psW->ui32Style &= ~(PB_STYLE_FILL); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables filling of a push button widget. +//! +//! \param psWidget is a pointer to the push button widget to modify. +//! +//! This function enables the filling of a push button widget. The display is +//! not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define PushButtonFillOn(psWidget) \ + do \ + { \ + tPushButtonWidget *psW = psWidget; \ + psW->ui32Style |= PB_STYLE_FILL; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the font for a push button widget. +//! +//! \param psWidget is a pointer to the push button widget to modify. +//! \param pFnt is a pointer to the font to use to draw text on the push +//! button. +//! +//! This function changes the font used to draw text on the push button. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define PushButtonFontSet(psWidget, pFnt) \ + do \ + { \ + tPushButtonWidget *psW = psWidget; \ + const tFont *pF = pFnt; \ + psW->psFont = pF; \ + } \ + while(0) + +//***************************************************************************** +// +//! Changes the image drawn on a push button widget. +//! +//! \param psWidget is a pointer to the push button widget to be modified. +//! \param pImg is a pointer to the image to draw onto the push button. +//! +//! This function changes the image that is drawn onto the push button. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define PushButtonImageSet(psWidget, pImg) \ + do \ + { \ + tPushButtonWidget *psW = psWidget; \ + const uint8_t *pI = pImg; \ + psW->pui8Image = pI; \ + } \ + while(0) + +//***************************************************************************** +// +//! Changes the image drawn on a push button widget when it is pressed. +//! +//! \param psWidget is a pointer to the push button widget to be modified. +//! \param pImg is a pointer to the image to draw onto the push button when it +//! is pressed. +//! +//! This function changes the image that is drawn onto the push button when it +//! is pressed. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define PushButtonImagePressedSet(psWidget, pImg) \ + do \ + { \ + tPushButtonWidget *psW = psWidget; \ + const uint8_t *pI = pImg; \ + psW->pui8PressImage = pI; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables the image on a push button widget. +//! +//! \param psWidget is a pointer to the push button widget to modify. +//! +//! This function disables the drawing of an image on a push button widget. +//! The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define PushButtonImageOff(psWidget) \ + do \ + { \ + tPushButtonWidget *psW = psWidget; \ + psW->ui32Style &= ~(PB_STYLE_IMG); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables the image on a push button widget. +//! +//! \param psWidget is a pointer to the push button widget to modify. +//! +//! This function enables the drawing of an image on a push button widget. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define PushButtonImageOn(psWidget) \ + do \ + { \ + tPushButtonWidget *psW = psWidget; \ + psW->ui32Style |= PB_STYLE_IMG; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the outline color of a push button widget. +//! +//! \param psWidget is a pointer to the push button widget to be modified. +//! \param ui32Color is the 24-bit RGB color to use to outline the push button. +//! +//! This function changes the color used to outline the push button on the +//! display. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define PushButtonOutlineColorSet(psWidget, ui32Color) \ + do \ + { \ + tPushButtonWidget *psW = psWidget; \ + psW->ui32OutlineColor = ui32Color; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables outlining of a push button widget. +//! +//! \param psWidget is a pointer to the push button widget to modify. +//! +//! This function disables the outlining of a push button widget. The display +//! is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define PushButtonOutlineOff(psWidget) \ + do \ + { \ + tPushButtonWidget *psW = psWidget; \ + psW->ui32Style &= ~(PB_STYLE_OUTLINE); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables outlining of a push button widget. +//! +//! \param psWidget is a pointer to the push button widget to modify. +//! +//! This function enables the outlining of a push button widget. The display +//! is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define PushButtonOutlineOn(psWidget) \ + do \ + { \ + tPushButtonWidget *psW = psWidget; \ + psW->ui32Style |= PB_STYLE_OUTLINE; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the text color of a push button widget. +//! +//! \param psWidget is a pointer to the push button widget to be modified. +//! \param ui32Color is the 24-bit RGB color to use to draw text on the push +//! button. +//! +//! This function changes the color used to draw text on the push button on the +//! display. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define PushButtonTextColorSet(psWidget, ui32Color) \ + do \ + { \ + tPushButtonWidget *psW = psWidget; \ + psW->ui32TextColor = ui32Color; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables the text on a push button widget. +//! +//! \param psWidget is a pointer to the push button widget to modify. +//! +//! This function disables the drawing of text on a push button widget. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define PushButtonTextOff(psWidget) \ + do \ + { \ + tPushButtonWidget *psW = psWidget; \ + psW->ui32Style &= ~(PB_STYLE_TEXT); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables the text on a push button widget. +//! +//! \param psWidget is a pointer to the push button widget to modify. +//! +//! This function enables the drawing of text on a push button widget. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define PushButtonTextOn(psWidget) \ + do \ + { \ + tPushButtonWidget *psW = psWidget; \ + psW->ui32Style |= PB_STYLE_TEXT; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables opaque text on a push button widget. +//! +//! \param psWidget is a pointer to the push button widget to modify. +//! +//! This function disables the use of opaque text on this push button. When +//! not using opaque text, only the foreground pixels of the text are drawn on +//! the screen, allowing the previously drawn pixels (such as the push button +//! image) to show through the text. +//! +//! \return None. +// +//***************************************************************************** +#define PushButtonTextOpaqueOff(psWidget) \ + do \ + { \ + tPushButtonWidget *psW = psWidget; \ + psW->ui32Style &= ~(PB_STYLE_TEXT_OPAQUE); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables opaque text on a push button widget. +//! +//! \param psWidget is a pointer to the push button widget to modify. +//! +//! This function enables the use of opaque text on this push button. When +//! using opaque text, both the foreground and background pixels of the text +//! are drawn on the screen, blocking out the previously drawn pixels. +//! +//! \return None. +// +//***************************************************************************** +#define PushButtonTextOpaqueOn(psWidget) \ + do \ + { \ + tPushButtonWidget *psW = psWidget; \ + psW->ui32Style |= PB_STYLE_TEXT_OPAQUE; \ + } \ + while(0) + +//***************************************************************************** +// +//! Changes the text drawn on a push button widget. +//! +//! \param psWidget is a pointer to the push button widget to be modified. +//! \param pcTxt is a pointer to the text to draw onto the push button. +//! +//! This function changes the text that is drawn onto the push button. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define PushButtonTextSet(psWidget, pcTxt) \ + do \ + { \ + tPushButtonWidget *psW = psWidget; \ + const char *pcT = pcTxt; \ + psW->pcText = pcT; \ + } \ + while(0) + +//***************************************************************************** +// +// Prototypes for the push button widget APIs. +// +//***************************************************************************** +extern int32_t RectangularButtonMsgProc(tWidget *psWidget, uint32_t ui32Msg, + uint32_t ui32Param1, + uint32_t ui32Param2); +extern void RectangularButtonInit(tPushButtonWidget *psWidget, + const tDisplay *psDisplay, int32_t i32X, + int32_t i32Y, int32_t i32Width, + int32_t i32Height); +extern int32_t CircularButtonMsgProc(tWidget *psWidget, uint32_t ui32Msg, + uint32_t ui32Param1, + uint32_t ui32Param2); +extern void CircularButtonInit(tPushButtonWidget *psWidget, + const tDisplay *psDisplay, int32_t i32X, + int32_t i32Y, int32_t i32R); + +//***************************************************************************** +// +// Mark the end of the C bindings section for C++ compilers. +// +//***************************************************************************** +#ifdef __cplusplus +} +#endif + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** + +#endif // __PUSHBUTTON_H__ diff --git a/grlib/radiobutton.c b/grlib/radiobutton.c new file mode 100644 index 0000000..e6b148f --- /dev/null +++ b/grlib/radiobutton.c @@ -0,0 +1,521 @@ +//***************************************************************************** +// +// radiobutton.c - Radio button widget. +// +// Copyright (c) 2008-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#include +#include +#include "driverlib/debug.h" +#include "grlib/grlib.h" +#include "grlib/widget.h" +#include "grlib/radiobutton.h" + +//***************************************************************************** +// +//! \addtogroup radiobutton_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +//! Draws a radio button widget. +//! +//! \param psWidget is a pointer to the radio button widget to be drawn. +//! \param bClick is a boolean that is \b true if the paint request is a result +//! of a pointer click and \b false if not. +//! +//! This function draws a radio button widget on the display. This is called +//! in response to a \b #WIDGET_MSG_PAINT message. +//! +//! \return None. +// +//***************************************************************************** +static void +RadioButtonPaint(tWidget *psWidget, uint32_t bClick) +{ + tRadioButtonWidget *pRadio; + tContext sCtx; + int32_t i32X, i32Y; + + // + // Check the arguments. + // + ASSERT(psWidget); + + // + // Convert the generic widget pointer into a radio button widget pointer. + // + pRadio = (tRadioButtonWidget *)psWidget; + + // + // Initialize a drawing context. + // + GrContextInit(&sCtx, psWidget->psDisplay); + + // + // Initialize the clipping region based on the extents of this radio + // button. + // + GrContextClipRegionSet(&sCtx, &(psWidget->sPosition)); + + // + // See if the radio button fill style is selected. + // + if((pRadio->ui16Style & RB_STYLE_FILL) && !bClick) + { + // + // Fill the radio button with the fill color. + // + GrContextForegroundSet(&sCtx, pRadio->ui32FillColor); + GrRectFill(&sCtx, &(psWidget->sPosition)); + } + + // + // See if the radio button outline style is selected. + // + if((pRadio->ui16Style & RB_STYLE_OUTLINE) && !bClick) + { + // + // Outline the radio button with the outline color. + // + GrContextForegroundSet(&sCtx, pRadio->ui32OutlineColor); + GrRectDraw(&sCtx, &(psWidget->sPosition)); + } + + // + // Draw the radio button. + // + i32X = psWidget->sPosition.i16XMin + (pRadio->ui16CircleSize / 2) + 2; + i32Y = (psWidget->sPosition.i16YMin + + ((psWidget->sPosition.i16YMax - psWidget->sPosition.i16YMin) / 2)); + if(!bClick) + { + GrContextForegroundSet(&sCtx, pRadio->ui32OutlineColor); + GrCircleDraw(&sCtx, i32X, i32Y, pRadio->ui16CircleSize / 2); + } + + // + // Select the foreground color based on whether or not the radio button is + // selected. + // + if(pRadio->ui16Style & RB_STYLE_SELECTED) + { + GrContextForegroundSet(&sCtx, pRadio->ui32OutlineColor); + } + else + { + GrContextForegroundSet(&sCtx, pRadio->ui32FillColor); + } + + // + // Fill in the radio button. + // + GrCircleFill(&sCtx, i32X, i32Y, (pRadio->ui16CircleSize / 2) - 2); + + // + // See if the radio button text or image style is selected. + // + if((pRadio->ui16Style & (RB_STYLE_TEXT | RB_STYLE_IMG)) && !bClick) + { + // + // Shrink the clipping region by the size of the radio button so that + // it is not overwritten by further "decorative" portions of the + // widget. + // + sCtx.sClipRegion.i16XMin += pRadio->ui16CircleSize + 4; + + // + // If the radio button outline style is selected then shrink the + // clipping region by one pixel on each side so that the outline is not + // overwritten by the text or image. + // + if(pRadio->ui16Style & RB_STYLE_OUTLINE) + { + sCtx.sClipRegion.i16YMin++; + sCtx.sClipRegion.i16XMax--; + sCtx.sClipRegion.i16YMax--; + } + + // + // See if the radio button image style is selected. + // + if(pRadio->ui16Style & RB_STYLE_IMG) + { + // + // Determine where along the Y extent of the widget to draw the + // image. It is drawn at the top if it takes all (or more than + // all) of the Y extent of the widget, and it is drawn centered if + // it takes less than the Y extent. + // + if(GrImageHeightGet(pRadio->pui8Image) > + (sCtx.sClipRegion.i16YMax - sCtx.sClipRegion.i16YMin)) + { + i32Y = sCtx.sClipRegion.i16YMin; + } + else + { + i32Y = (sCtx.sClipRegion.i16YMin + + ((sCtx.sClipRegion.i16YMax - sCtx.sClipRegion.i16YMin - + GrImageHeightGet(pRadio->pui8Image) + 1) / 2)); + } + + // + // Set the foreground and background colors to use for 1 BPP + // images. + // + GrContextForegroundSet(&sCtx, pRadio->ui32TextColor); + GrContextBackgroundSet(&sCtx, pRadio->ui32FillColor); + + // + // Draw the image next to the radio button. + // + GrImageDraw(&sCtx, pRadio->pui8Image, sCtx.sClipRegion.i16XMin, + i32Y); + } + + // + // See if the radio button text style is selected. + // + if(pRadio->ui16Style & RB_STYLE_TEXT) + { + // + // Determine where along the Y extent of the widget to draw the + // string. It is drawn at the top if it takes all (or more than + // all) of the Y extent of the widget, and it is drawn centered if + // it takes less than the Y extent. + // + if(GrFontHeightGet(pRadio->psFont) > + (sCtx.sClipRegion.i16YMax - sCtx.sClipRegion.i16YMin)) + { + i32Y = sCtx.sClipRegion.i16YMin; + } + else + { + i32Y = (sCtx.sClipRegion.i16YMin + + ((sCtx.sClipRegion.i16YMax - sCtx.sClipRegion.i16YMin - + GrFontHeightGet(pRadio->psFont) + 1) / 2)); + } + + // + // Draw the text next to the radio button. + // + GrContextFontSet(&sCtx, pRadio->psFont); + GrContextForegroundSet(&sCtx, pRadio->ui32TextColor); + GrContextBackgroundSet(&sCtx, pRadio->ui32FillColor); + GrStringDraw(&sCtx, pRadio->pcText, -1, sCtx.sClipRegion.i16XMin, + i32Y, pRadio->ui16Style & RB_STYLE_TEXT_OPAQUE); + } + } +} + +//***************************************************************************** +// +//! Handles pointer events for a radio button. +//! +//! \param psWidget is a pointer to the radio button widget. +//! \param ui32Msg is the pointer event message. +//! \param i32X is the X coordinate of the pointer event. +//! \param i32Y is the Y coordiante of the pointer event. +//! +//! This function processes pointer event messages for a radio button. This is +//! called in response to a \b #WIDGET_MSG_PTR_DOWN, \b #WIDGET_MSG_PTR_MOVE, +//! and \b #WIDGET_MSG_PTR_UP messages. +//! +//! If the \b #WIDGET_MSG_PTR_UP message is received with a position within the +//! extents of the radio button, the radio button's selected state will be +//! unchanged if it is already selected. If it is not selected, it will be +//! selected, its OnChange function will be called, and the peer radio button +//! widget that is selected will be unselected, causing its OnChange to be +//! called as well. +//! +//! \return Returns 1 if the coordinates are within the extents of the radio +//! button and 0 otherwise. +// +//***************************************************************************** +static int32_t +RadioButtonClick(tWidget *psWidget, uint32_t ui32Msg, int32_t i32X, + int32_t i32Y) +{ + tRadioButtonWidget *pRadio, *pRadio2; + tWidget *pSibling; + + // + // Check the arguments. + // + ASSERT(psWidget); + + // + // Convert the generic widget pointer into a radio button widget pointer. + // + pRadio = (tRadioButtonWidget *)psWidget; + + // + // See if the given coordinates are within the extents of the radio button. + // + if((i32X >= psWidget->sPosition.i16XMin) && + (i32X <= psWidget->sPosition.i16XMax) && + (i32Y >= psWidget->sPosition.i16YMin) && + (i32Y <= psWidget->sPosition.i16YMax)) + { + // + // See if the pointer was just raised and this radio button is not + // selected. + // + if((ui32Msg == WIDGET_MSG_PTR_UP) && + !(pRadio->ui16Style & RB_STYLE_SELECTED)) + { + // + // Loop through the siblings of this radio button widget. + // + for(pSibling = psWidget->psParent->psChild; pSibling; + pSibling = pSibling->psNext) + { + // + // Skip this widget if it is not a radio button widget, or if + // it is the original radio button widget. + // + if((pSibling == psWidget) || + (pSibling->pfnMsgProc != RadioButtonMsgProc)) + { + continue; + } + + // + // Convert the generic widget pointer into a radio button + // widget pointer. + // + pRadio2 = (tRadioButtonWidget *)pSibling; + + // + // See if the sibling radio button is selected. + // + if(pRadio2->ui16Style & RB_STYLE_SELECTED) + { + // + // Clear the selected state of the sibling radio button. + // + pRadio2->ui16Style &= ~(RB_STYLE_SELECTED); + + // + // Redraw the sibling radio button. + // + RadioButtonPaint(pSibling, 1); + + // + // If there is an OnChange callback for the sibling radio + // button then call the callback. + // + if(pRadio2->pfnOnChange) + { + pRadio2->pfnOnChange(pSibling, 0); + } + } + } + + // + // Set the selected state of this radio button. + // + pRadio->ui16Style |= RB_STYLE_SELECTED; + + // + // Redraw the radio button. + // + RadioButtonPaint(psWidget, 1); + + // + // If there is an OnChange callback for this widget then call the + // callback. + // + if(pRadio->pfnOnChange) + { + pRadio->pfnOnChange(psWidget, 1); + } + } + + // + // These coordinates are within the extents of the radio button widget. + // + return(1); + } + + // + // These coordinates are not within the extents of the radio button widget. + // + return(0); +} + +//***************************************************************************** +// +//! Handles messages for a radio button widget. +//! +//! \param psWidget is a pointer to the radio button widget. +//! \param ui32Msg is the message. +//! \param ui32Param1 is the first parameter to the message. +//! \param ui32Param2 is the second parameter to the message. +//! +//! This function receives messages intended for this radio button widget and +//! processes them accordingly. The processing of the message varies based on +//! the message in question. +//! +//! Unrecognized messages are handled by calling WidgetDefaultMsgProc(). +//! +//! \return Returns a value appropriate to the supplied message. +// +//***************************************************************************** +int32_t +RadioButtonMsgProc(tWidget *psWidget, uint32_t ui32Msg, + uint32_t ui32Param1, uint32_t ui32Param2) +{ + // + // Check the arguments. + // + ASSERT(psWidget); + + // + // Determine which message is being sent. + // + switch(ui32Msg) + { + // + // The widget paint request has been sent. + // + case WIDGET_MSG_PAINT: + { + // + // Handle the widget paint request. + // + RadioButtonPaint(psWidget, 0); + + // + // Return one to indicate that the message was successfully + // processed. + // + return(1); + } + + // + // One of the pointer requests has been sent. + // + case WIDGET_MSG_PTR_DOWN: + case WIDGET_MSG_PTR_MOVE: + case WIDGET_MSG_PTR_UP: + { + // + // Handle the pointer request, returning the appropriate value. + // + return(RadioButtonClick(psWidget, ui32Msg, ui32Param1, + ui32Param2)); + } + + // + // An unknown request has been sent. + // + default: + { + // + // Let the default message handler process this message. + // + return(WidgetDefaultMsgProc(psWidget, ui32Msg, ui32Param1, + ui32Param2)); + } + } +} + +//***************************************************************************** +// +//! Initializes a radio button widget. +//! +//! \param psWidget is a pointer to the radio button widget to initialize. +//! \param psDisplay is a pointer to the display on which to draw the push +//! button. +//! \param i32X is the X coordinate of the upper left corner of the radio +//! button. +//! \param i32Y is the Y coordinate of the upper left corner of the radio +//! button. +//! \param i32Width is the width of the radio button. +//! \param i32Height is the height of the radio button. +//! +//! This function initializes the provided radio button widget. +//! +//! \return None. +// +//***************************************************************************** +void +RadioButtonInit(tRadioButtonWidget *psWidget, const tDisplay *psDisplay, + int32_t i32X, int32_t i32Y, int32_t i32Width, + int32_t i32Height) +{ + uint32_t ui32Idx; + + // + // Check the arguments. + // + ASSERT(psWidget); + ASSERT(psDisplay); + + // + // Clear out the widget structure. + // + for(ui32Idx = 0; ui32Idx < sizeof(tRadioButtonWidget); ui32Idx += 4) + { + ((uint32_t *)psWidget)[ui32Idx / 4] = 0; + } + + // + // Set the size of the radio button widget structure. + // + psWidget->sBase.i32Size = sizeof(tRadioButtonWidget); + + // + // Mark this widget as fully disconnected. + // + psWidget->sBase.psParent = 0; + psWidget->sBase.psNext = 0; + psWidget->sBase.psChild = 0; + + // + // Save the display pointer. + // + psWidget->sBase.psDisplay = psDisplay; + + // + // Set the extents of this radio button. + // + psWidget->sBase.sPosition.i16XMin = i32X; + psWidget->sBase.sPosition.i16YMin = i32Y; + psWidget->sBase.sPosition.i16XMax = i32X + i32Width - 1; + psWidget->sBase.sPosition.i16YMax = i32Y + i32Height - 1; + + // + // Use the radio button message handler to processage messages to this + // radio button. + // + psWidget->sBase.pfnMsgProc = RadioButtonMsgProc; +} + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** diff --git a/grlib/radiobutton.h b/grlib/radiobutton.h new file mode 100644 index 0000000..b19315a --- /dev/null +++ b/grlib/radiobutton.h @@ -0,0 +1,717 @@ +//***************************************************************************** +// +// radiobutton.h - Prototypes for the radio button widget. +// +// Copyright (c) 2008-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#ifndef __RADIOBUTTON_H__ +#define __RADIOBUTTON_H__ + +//***************************************************************************** +// +//! \addtogroup radiobutton_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +// If building with a C++ compiler, make all of the definitions in this header +// have a C binding. +// +//***************************************************************************** +#ifdef __cplusplus +extern "C" +{ +#endif + +//***************************************************************************** +// +//! The structure that describes a radio button widget. +// +//***************************************************************************** +typedef struct +{ + // + //! The generic widget information. + // + tWidget sBase; + + // + //! The style for this radio button. This is a set of flags defined by + //! RB_STYLE_xxx. + // + uint16_t ui16Style; + + // + //! The size of the radio button itself, not including the text and/or + //! image that accompanies it (in other words, the size of the actual + //! circle that is filled or unfilled). + // + uint16_t ui16CircleSize; + + // + //! The 24-bit RGB color used to fill this radio button, if RB_STYLE_FILL + //! is selected, and to use as the background color if RB_STYLE_TEXT_OPAQUE + //! is selected. + // + uint32_t ui32FillColor; + + // + //! The 24-bit RGB color used to outline this radio button, if + //! RB_STYLE_OUTLINE is selected. + // + uint32_t ui32OutlineColor; + + // + //! The 24-bit RGB color used to draw text on this radio button, if + //! RB_STYLE_TEXT is selected. + // + uint32_t ui32TextColor; + + // + //! The font used to draw the radio button text, if RB_STYLE_TEXT is + //! selected. + // + const tFont *psFont; + + // + //! A pointer to the text to draw on this radio button, if RB_STYLE_TEXT is + //! selected. + // + const char *pcText; + + // + //! A pointer to the image to be drawn onto this radio button, if + //! RB_STYLE_IMG is selected. + // + const uint8_t *pui8Image; + + // + //! A pointer to the function to be called when the radio button is + //! pressed. This function is called when the state of the radio button is + //! changed. + // + void (*pfnOnChange)(tWidget *psWidget, uint32_t bSelected); +} +tRadioButtonWidget; + +//***************************************************************************** +// +//! This flag indicates that the radio button should be outlined. +// +//***************************************************************************** +#define RB_STYLE_OUTLINE 0x0001 + +//***************************************************************************** +// +//! This flag indicates that the radio button should be filled. +// +//***************************************************************************** +#define RB_STYLE_FILL 0x0002 + +//***************************************************************************** +// +//! This flag indicates that the radio button should have text drawn on it. +// +//***************************************************************************** +#define RB_STYLE_TEXT 0x0004 + +//***************************************************************************** +// +//! This flag indicates that the radio button should have an image drawn on it. +// +//***************************************************************************** +#define RB_STYLE_IMG 0x0008 + +//***************************************************************************** +// +//! This flag indicates that the radio button text should be drawn opaque (in +//! other words, drawing the background pixels as well as the foreground +//! pixels). +// +//***************************************************************************** +#define RB_STYLE_TEXT_OPAQUE 0x0010 + +//***************************************************************************** +// +//! This flag indicates that the radio button is selected. +// +//***************************************************************************** +#define RB_STYLE_SELECTED 0x0020 + +//***************************************************************************** +// +//! Declares an initialized radio button widget data structure. +//! +//! \param psParent is a pointer to the parent widget. +//! \param psNext is a pointer to the sibling widget. +//! \param psChild is a pointer to the first child widget. +//! \param psDisplay is a pointer to the display on which to draw the radio +//! button. +//! \param i32X is the X coordinate of the upper left corner of the radio +//! button. +//! \param i32Y is the Y coordinate of the upper left corner of the radio +//! button. +//! \param i32Width is the width of the radio button. +//! \param i32Height is the height of the radio button. +//! \param ui16Style is the style to be applied to this radio button. +//! \param ui16CircleSize is the size of the circle that is filled. +//! \param ui32FillColor is the color used to fill in the radio button. +//! \param ui32OutlineColor is the color used to outline the radio button. +//! \param ui32TextColor is the color used to draw text on the radio button. +//! \param psFont is a pointer to the font to be used to draw text on the radio +//! button. +//! \param pcText is a pointer to the text to draw on this radio button. +//! \param pui8Image is a pointer to the image to draw on this radio button. +//! \param pfnOnChange is a pointer to the function that is called when the +//! radio button is pressed. +//! +//! This macro provides an initialized radio button widget data structure, +//! which can be used to construct the widget tree at compile time in global +//! variables (as opposed to run-time via function calls). This must be +//! assigned to a variable, such as: +//! +//! \verbatim +//! tRadioButtonWidget g_s6RadioButton = RadioButtonStruct(...); +//! \endverbatim +//! +//! Or, in an array of variables: +//! +//! \verbatim +//! tRadioButtonWidget g_psRadioButtons[] = +//! { +//! RadioButtonStruct(...), +//! RadioButtonStruct(...) +//! }; +//! \endverbatim +//! +//! \e ui16Style is the logical OR of the following: +//! +//! - \b #RB_STYLE_OUTLINE to indicate that the radio button should be +//! outlined. +//! - \b #RB_STYLE_FILL to indicate that the radio button should be filled. +//! - \b #RB_STYLE_TEXT to indicate that the radio button should have text +//! drawn on it (using \e psFont and \e pcText). +//! - \b #RB_STYLE_IMG to indicate that the radio button should have an image +//! drawn on it (using \e pui8Image). +//! - \b #RB_STYLE_TEXT_OPAQUE to indicate that the radio button text should be +//! drawn opaque (in other words, drawing the background pixels). +//! - \b #RB_STYLE_SELECTED to indicate that the radio button is selected. +//! +//! \return Nothing; this is not a function. +// +//***************************************************************************** +#define RadioButtonStruct(psParent, psNext, psChild, psDisplay, i32X, i32Y, \ + i32Width, i32Height, ui16Style, ui16CircleSize, \ + ui32FillColor, ui32OutlineColor, ui32TextColor, \ + psFont, pcText, pui8Image, pfnOnChange) \ + { \ + { \ + sizeof(tRadioButtonWidget), \ + (tWidget *)(psParent), \ + (tWidget *)(psNext), \ + (tWidget *)(psChild), \ + psDisplay, \ + { \ + i32X, \ + i32Y, \ + (i32X) + (i32Width) - 1, \ + (i32Y) + (i32Height) - 1 \ + }, \ + RadioButtonMsgProc \ + }, \ + ui16Style, \ + ui16CircleSize, \ + ui32FillColor, \ + ui32OutlineColor, \ + ui32TextColor, \ + psFont, \ + pcText, \ + pui8Image, \ + pfnOnChange \ + } + +//***************************************************************************** +// +//! Declares an initialized variable containing a radio button widget data +//! structure. +//! +//! \param sName is the name of the variable to be declared. +//! \param psParent is a pointer to the parent widget. +//! \param psNext is a pointer to the sibling widget. +//! \param psChild is a pointer to the first child widget. +//! \param psDisplay is a pointer to the display on which to draw the radio +//! button. +//! \param i32X is the X coordinate of the upper left corner of the radio +//! button. +//! \param i32Y is the Y coordinate of the upper left corner of the radio +//! button. +//! \param i32Width is the width of the radio button. +//! \param i32Height is the height of the radio button. +//! \param ui16Style is the style to be applied to this radio button. +//! \param ui16CircleSize is the size of the circle that is filled. +//! \param ui32FillColor is the color used to fill in the radio button. +//! \param ui32OutlineColor is the color used to outline the radio button. +//! \param ui32TextColor is the color used to draw text on the radio button. +//! \param psFont is a pointer to the font to be used to draw text on the radio +//! button. +//! \param pcText is a pointer to the text to draw on this radio button. +//! \param pui8Image is a pointer to the image to draw on this radio button. +//! \param pfnOnChange is a pointer to the function that is called when the +//! radio button is pressed. +//! +//! This macro provides an initialized radio button widget data structure, +//! which can be used to construct the widget tree at compile time in global +//! variables (as opposed to run-time via function calls). +//! +//! \e ui16Style is the logical OR of the following: +//! +//! - \b #RB_STYLE_OUTLINE to indicate that the radio button should be +//! outlined. +//! - \b #RB_STYLE_FILL to indicate that the radio button should be filled. +//! - \b #RB_STYLE_TEXT to indicate that the radio button should have text +//! drawn on it (using \e psFont and \e pcText). +//! - \b #RB_STYLE_IMG to indicate that the radio button should have an image +//! drawn on it (using \e pui8Image). +//! - \b #RB_STYLE_TEXT_OPAQUE to indicate that the radio button text should be +//! drawn opaque (in other words, drawing the background pixels). +//! - \b #RB_STYLE_SELECTED to indicate that the radio button is selected. +//! +//! \return Nothing; this is not a function. +// +//***************************************************************************** +#define RadioButton(sName, psParent, psNext, psChild, psDisplay, i32X, i32Y, \ + i32Width, i32Height, ui16Style, ui16CircleSize, \ + ui32FillColor, ui32OutlineColor, ui32TextColor, psFont, \ + pcText, pui8Image, pfnOnChange) \ + tRadioButtonWidget sName = \ + RadioButtonStruct(psParent, psNext, psChild, psDisplay, i32X, \ + i32Y, i32Width, i32Height, ui16Style, \ + ui16CircleSize, ui32FillColor, ui32OutlineColor,\ + ui32TextColor, psFont, pcText, pui8Image, \ + pfnOnChange) + +//***************************************************************************** +// +//! Sets size of the circle to be filled. +//! +//! \param psWidget is a pointer to the radio button widget to modify. +//! \param ui16Size is the size of the circle, in pixels. +//! +//! This function sets the size of the circle that is drawn as part of the +//! radio button. +//! +//! \return None. +// +//***************************************************************************** +#define RadioButtonCircleSizeSet(psWidget, ui16Size) \ + do \ + { \ + tRadioButtonWidget *psW = psWidget; \ + psW->ui16CircleSize = ui16Size; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the function to call when this radio button widget is toggled. +//! +//! \param psWidget is a pointer to the radio button widget to modify. +//! \param pfnOnChg is a pointer to the function to call. +//! +//! This function sets the function to be called when this radio button is +//! toggled. +//! +//! \return None. +// +//***************************************************************************** +#define RadioButtonCallbackSet(psWidget, pfnOnChg) \ + do \ + { \ + tRadioButtonWidget *psW = psWidget; \ + psW->pfnOnChange = pfnOnChg; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the fill color of a radio button widget. +//! +//! \param psWidget is a pointer to the radio button widget to be modified. +//! \param ui32Color is the 24-bit RGB color to use to fill the radio button. +//! +//! This function changes the color used to fill the radio button on the +//! display. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define RadioButtonFillColorSet(psWidget, ui32Color) \ + do \ + { \ + tRadioButtonWidget *psW = psWidget; \ + psW->ui32FillColor = ui32Color; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables filling of a radio button widget. +//! +//! \param psWidget is a pointer to the radio button widget to modify. +//! +//! This function disables the filling of a radio button widget. The display +//! is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define RadioButtonFillOff(psWidget) \ + do \ + { \ + tRadioButtonWidget *psW = psWidget; \ + psW->ui16Style &= ~(RB_STYLE_FILL); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables filling of a radio button widget. +//! +//! \param psWidget is a pointer to the radio button widget to modify. +//! +//! This function enables the filling of a radio button widget. The display is +//! not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define RadioButtonFillOn(psWidget) \ + do \ + { \ + tRadioButtonWidget *psW = psWidget; \ + psW->ui16Style |= RB_STYLE_FILL; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the font for a radio button widget. +//! +//! \param psWidget is a pointer to the radio button widget to modify. +//! \param pFnt is a pointer to the font to use to draw text on the radio +//! button. +//! +//! This function changes the font used to draw text on the radio button. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define RadioButtonFontSet(psWidget, pFnt) \ + do \ + { \ + tRadioButtonWidget *psW = psWidget; \ + const tFont *pF = pFnt; \ + psW->psFont = pF; \ + } \ + while(0) + +//***************************************************************************** +// +//! Changes the image drawn on a radio button widget. +//! +//! \param psWidget is a pointer to the radio button widget to be modified. +//! \param pImg is a pointer to the image to draw onto the radio button. +//! +//! This function changes the image that is drawn onto the radio button. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define RadioButtonImageSet(psWidget, pImg) \ + do \ + { \ + tRadioButtonWidget *psW = psWidget; \ + const uint8_t *pI = pImg; \ + psW->pui8Image = pI; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables the image on a radio button widget. +//! +//! \param psWidget is a pointer to the radio button widget to modify. +//! +//! This function disables the drawing of an image on a radio button widget. +//! The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define RadioButtonImageOff(psWidget) \ + do \ + { \ + tRadioButtonWidget *psW = psWidget; \ + psW->ui16Style &= ~(RB_STYLE_IMG); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables the image on a radio button widget. +//! +//! \param psWidget is a pointer to the radio button widget to modify. +//! +//! This function enables the drawing of an image on a radio button widget. +//! The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define RadioButtonImageOn(psWidget) \ + do \ + { \ + tRadioButtonWidget *psW = psWidget; \ + psW->ui16Style |= RB_STYLE_IMG; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the outline color of a radio button widget. +//! +//! \param psWidget is a pointer to the radio button widget to be modified. +//! \param ui32Color is the 24-bit RGB color to use to outline the radio +//! button. +//! +//! This function changes the color used to outline the radio button on the +//! display. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define RadioButtonOutlineColorSet(psWidget, ui32Color) \ + do \ + { \ + tRadioButtonWidget *psW = psWidget; \ + psW->ui32OutlineColor = ui32Color; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables outlining of a radio button widget. +//! +//! \param psWidget is a pointer to the radio button widget to modify. +//! +//! This function disables the outlining of a radio button widget. The display +//! is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define RadioButtonOutlineOff(psWidget) \ + do \ + { \ + tRadioButtonWidget *psW = psWidget; \ + psW->ui16Style &= ~(RB_STYLE_OUTLINE); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables outlining of a radio button widget. +//! +//! \param psWidget is a pointer to the radio button widget to modify. +//! +//! This function enables the outlining of a radio button widget. The display +//! is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define RadioButtonOutlineOn(psWidget) \ + do \ + { \ + tRadioButtonWidget *psW = psWidget; \ + psW->ui16Style |= RB_STYLE_OUTLINE; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the text color of a radio button widget. +//! +//! \param psWidget is a pointer to the radio button widget to be modified. +//! \param ui32Color is the 24-bit RGB color to use to draw text on the radio +//! button. +//! +//! This function changes the color used to draw text on the radio button on +//! the display. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define RadioButtonTextColorSet(psWidget, ui32Color) \ + do \ + { \ + tRadioButtonWidget *psW = psWidget; \ + psW->ui32TextColor = ui32Color; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables the text on a radio button widget. +//! +//! \param psWidget is a pointer to the radio button widget to modify. +//! +//! This function disables the drawing of text on a radio button widget. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define RadioButtonTextOff(psWidget) \ + do \ + { \ + tRadioButtonWidget *psW = psWidget; \ + psW->ui16Style &= ~(RB_STYLE_TEXT); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables the text on a radio button widget. +//! +//! \param psWidget is a pointer to the radio button widget to modify. +//! +//! This function enables the drawing of text on a radio button widget. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define RadioButtonTextOn(psWidget) \ + do \ + { \ + tRadioButtonWidget *psW = psWidget; \ + psW->ui16Style |= RB_STYLE_TEXT; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables opaque text on a radio button widget. +//! +//! \param psWidget is a pointer to the radio button widget to modify. +//! +//! This function disables the use of opaque text on this radio button. When +//! not using opaque text, only the foreground pixels of the text are drawn on +//! the screen, allowing the previously drawn pixels (such as the radio button +//! image) to show through the text. +//! +//! \return None. +// +//***************************************************************************** +#define RadioButtonTextOpaqueOff(psWidget) \ + do \ + { \ + tRadioButtonWidget *psW = psWidget; \ + psW->ui16Style &= ~(RB_STYLE_TEXT_OPAQUE); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables opaque text on a radio button widget. +//! +//! \param psWidget is a pointer to the radio button widget to modify. +//! +//! This function enables the use of opaque text on this radio button. When +//! using opaque text, both the foreground and background pixels of the text +//! are drawn on the screen, blocking out the previously drawn pixels. +//! +//! \return None. +// +//***************************************************************************** +#define RadioButtonTextOpaqueOn(psWidget) \ + do \ + { \ + tRadioButtonWidget *psW = psWidget; \ + psW->ui16Style |= RB_STYLE_TEXT_OPAQUE; \ + } \ + while(0) + +//***************************************************************************** +// +//! Changes the text drawn on a radio button widget. +//! +//! \param psWidget is a pointer to the radio button widget to be modified. +//! \param pcTxt is a pointer to the text to draw onto the radio button. +//! +//! This function changes the text that is drawn onto the radio button. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define RadioButtonTextSet(psWidget, pcTxt) \ + do \ + { \ + tRadioButtonWidget *psW = psWidget; \ + const char *pcT = pcTxt; \ + psW->pcText = pcT; \ + } \ + while(0) + +//***************************************************************************** +// +// Prototypes for the radio button widget APIs. +// +//***************************************************************************** +extern int32_t RadioButtonMsgProc(tWidget *psWidget, uint32_t ui32Msg, + uint32_t ui32Param1, uint32_t ui32Param2); +extern void RadioButtonInit(tRadioButtonWidget *psWidget, + const tDisplay *psDisplay, int32_t i32X, + int32_t i32Y, int32_t i32Width, int32_t i32Height); + +//***************************************************************************** +// +// Mark the end of the C bindings section for C++ compilers. +// +//***************************************************************************** +#ifdef __cplusplus +} +#endif + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** + +#endif // __RADIOBUTTON_H__ diff --git a/grlib/readme.txt b/grlib/readme.txt new file mode 100644 index 0000000..7254df3 --- /dev/null +++ b/grlib/readme.txt @@ -0,0 +1,21 @@ +This project will build the Graphics Library. + +------------------------------------------------------------------------------- + +Copyright (c) 2008-2014 Texas Instruments Incorporated. All rights reserved. +Software License Agreement + +Texas Instruments (TI) is supplying this software for use solely and +exclusively on TI's microcontroller products. The software is owned by +TI and/or its suppliers, and is protected under applicable copyright +laws. You may not combine this software with "viral" open-source +software in order to form a larger program. + +THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, FOR ANY REASON WHATSOEVER. + +This is part of revision 2.1.0.12573 of the Tiva Graphics Library. diff --git a/grlib/rectangle.c b/grlib/rectangle.c new file mode 100644 index 0000000..0b810cb --- /dev/null +++ b/grlib/rectangle.c @@ -0,0 +1,303 @@ +//***************************************************************************** +// +// rectangle.c - Routines for drawing and filling rectangles. +// +// Copyright (c) 2007-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#include +#include +#include "driverlib/debug.h" +#include "grlib/grlib.h" + +//***************************************************************************** +// +//! \addtogroup primitives_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +// Make sure min and max are defined. +// +//***************************************************************************** +#ifndef min +#define min(a, b) (((a) < (b)) ? (a) : (b)) +#endif + +#ifndef max +#define max(a, b) (((a) < (b)) ? (b) : (a)) +#endif + +//***************************************************************************** +// +//! Draws a rectangle. +//! +//! \param pContext is a pointer to the drawing context to use. +//! \param pRect is a pointer to the structure containing the extents of the +//! rectangle. +//! +//! This function draws a rectangle. The rectangle will extend from \e i32XMin +//! to \e i32XMax and \e i32YMin to \e i32YMax, inclusive. +//! +//! \return None. +// +//***************************************************************************** +void +GrRectDraw(const tContext *pContext, const tRectangle *pRect) +{ + // + // Check the arguments. + // + ASSERT(pContext); + ASSERT(pRect); + + // + // Draw a line across the top of the rectangle. + // + GrLineDrawH(pContext, pRect->i16XMin, pRect->i16XMax, pRect->i16YMin); + + // + // Return if the rectangle is one pixel tall. + // + if(pRect->i16YMin == pRect->i16YMax) + { + return; + } + + // + // Draw a line down the right side of the rectangle. + // + GrLineDrawV(pContext, pRect->i16XMax, pRect->i16YMin + 1, pRect->i16YMax); + + // + // Return if the rectangle is one pixel wide. + // + if(pRect->i16XMin == pRect->i16XMax) + { + return; + } + + // + // Draw a line across the bottom of the rectangle. + // + GrLineDrawH(pContext, pRect->i16XMax - 1, pRect->i16XMin, pRect->i16YMax); + + // + // Return if the rectangle is two pixels tall. + // + if((pRect->i16YMin + 1) == pRect->i16YMax) + { + return; + } + + // + // Draw a line up the left side of the rectangle. + // + GrLineDrawV(pContext, pRect->i16XMin, pRect->i16YMax - 1, + pRect->i16YMin + 1); +} + +//***************************************************************************** +// +//! Draws a filled rectangle. +//! +//! \param pContext is a pointer to the drawing context to use. +//! \param pRect is a pointer to the structure containing the extents of the +//! rectangle. +//! +//! This function draws a filled rectangle. The rectangle will extend from +//! \e i32XMin to \e i32XMax and \e i32YMin to \e i32YMax, inclusive. The +//! clipping of the rectangle to the clipping rectangle is performed within +//! this routine; the display driver's rectangle fill routine is used to +//! perform the actual rectangle fill. +//! +//! \return None. +// +//***************************************************************************** +void +GrRectFill(const tContext *pContext, const tRectangle *pRect) +{ + tRectangle sTemp; + + // + // Check the arguments. + // + ASSERT(pContext); + ASSERT(pRect); + + // + // Swap the X coordinates if i16XMin is greater than i16XMax. + // + if(pRect->i16XMin > pRect->i16XMax) + { + sTemp.i16XMin = pRect->i16XMax; + sTemp.i16XMax = pRect->i16XMin; + } + else + { + sTemp.i16XMin = pRect->i16XMin; + sTemp.i16XMax = pRect->i16XMax; + } + + // + // Swap the Y coordinates if i16YMin is greater than i16YMax. + // + if(pRect->i16YMin > pRect->i16YMax) + { + sTemp.i16YMin = pRect->i16YMax; + sTemp.i16YMax = pRect->i16YMin; + } + else + { + sTemp.i16YMin = pRect->i16YMin; + sTemp.i16YMax = pRect->i16YMax; + } + + // + // Now that the coordinates are ordered, return without drawing anything if + // the entire rectangle is out of the clipping region. + // + if((sTemp.i16XMin > pContext->sClipRegion.i16XMax) || + (sTemp.i16XMax < pContext->sClipRegion.i16XMin) || + (sTemp.i16YMin > pContext->sClipRegion.i16YMax) || + (sTemp.i16YMax < pContext->sClipRegion.i16YMin)) + { + return; + } + + // + // Clip the X coordinates to the edges of the clipping region if necessary. + // + if(sTemp.i16XMin < pContext->sClipRegion.i16XMin) + { + sTemp.i16XMin = pContext->sClipRegion.i16XMin; + } + if(sTemp.i16XMax > pContext->sClipRegion.i16XMax) + { + sTemp.i16XMax = pContext->sClipRegion.i16XMax; + } + + // + // Clip the Y coordinates to the edges of the clipping region if necessary. + // + if(sTemp.i16YMin < pContext->sClipRegion.i16YMin) + { + sTemp.i16YMin = pContext->sClipRegion.i16YMin; + } + if(sTemp.i16YMax > pContext->sClipRegion.i16YMax) + { + sTemp.i16YMax = pContext->sClipRegion.i16YMax; + } + + // + // Call the low level rectangle fill routine. + // + DpyRectFill(pContext->psDisplay, &sTemp, pContext->ui32Foreground); +} + +//***************************************************************************** +// +//! Determines if two rectangles overlap. +//! +//! \param psRect1 is a pointer to the first rectangle. +//! \param psRect2 is a pointer to the second rectangle. +//! +//! This function determines whether two rectangles overlap. It assumes that +//! rectangles \e psRect1 and \e psRect2 are valid with \e i16XMin < +//! \e i16XMax and \e i16YMin < \e i16YMax. +//! +//! \return Returns 1 if there is an overlap or 0 if not. +// +//***************************************************************************** +int32_t +GrRectOverlapCheck(tRectangle *psRect1, tRectangle *psRect2) +{ + if((psRect1->i16XMax < psRect2->i16XMin) || + (psRect2->i16XMax < psRect1->i16XMin) || + (psRect1->i16YMax < psRect2->i16YMin) || + (psRect2->i16YMax < psRect1->i16YMin)) + { + return(0); + } + else + { + return(1); + } +} + +//***************************************************************************** +// +//! Determines the intersection of two rectangles. +//! +//! \param psRect1 is a pointer to the first rectangle. +//! \param psRect2 is a pointer to the second rectangle. +//! \param psIntersect is a pointer to a rectangle which will be written with +//! the intersection of \e psRect1 and \e psRect2. +//! +//! This function determines if two rectangles overlap and, if they do, +//! calculates the rectangle representing their intersection. If the rectangles +//! do not overlap, 0 is returned and \e psIntersect is not written. +//! +//! \return Returns 1 if there is an overlap or 0 if not. +// +//***************************************************************************** +int32_t +GrRectIntersectGet(tRectangle *psRect1, tRectangle *psRect2, + tRectangle *psIntersect) +{ + // + // Make sure we were passed valid rectangles. + // + if((psRect1->i16XMax <= psRect1->i16XMin) || + (psRect1->i16YMax <= psRect1->i16YMin) || + (psRect2->i16XMax <= psRect2->i16XMin) || + (psRect2->i16YMax <= psRect2->i16YMin)) + { + return(0); + } + + // + // Make sure that there is an intersection between the two rectangles. + // + if(!GrRectOverlapCheck(psRect1, psRect2)) + { + return(0); + } + + // + // The rectangles do intersect so determine the rectangle of the + // intersection. + // + psIntersect->i16XMin = max(psRect1->i16XMin, psRect2->i16XMin); + psIntersect->i16XMax = min(psRect1->i16XMax, psRect2->i16XMax); + psIntersect->i16YMin = max(psRect1->i16YMin, psRect2->i16YMin); + psIntersect->i16YMax = min(psRect1->i16YMax, psRect2->i16YMax); + + return(1); +} + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** diff --git a/grlib/rvmdk/grlib.lib b/grlib/rvmdk/grlib.lib new file mode 100644 index 0000000..4b162bd Binary files /dev/null and b/grlib/rvmdk/grlib.lib differ diff --git a/grlib/slider.c b/grlib/slider.c new file mode 100644 index 0000000..0108dce --- /dev/null +++ b/grlib/slider.c @@ -0,0 +1,878 @@ +//***************************************************************************** +// +// slider.c - A simple slider widget class. +// +// Copyright (c) 2008-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#include +#include +#include "driverlib/debug.h" +#include "grlib/grlib.h" +#include "grlib/widget.h" +#include "grlib/slider.h" + +//***************************************************************************** +// +//! \addtogroup slider_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +// Make sure min and max are defined. +// +//***************************************************************************** +#ifndef min +#define min(a, b) (((a) < (b)) ? (a) : (b)) +#endif + +#ifndef max +#define max(a, b) (((a) < (b)) ? (b) : (a)) +#endif + +//***************************************************************************** +// +// Converts a slider value to a position on the display. +// +// \param pSlider is a pointer to the slider widget for which the conversion is +// being requested. +// \param i32Value is the slider value that is to be converted to a position. +// +// Converts a value within the range represented by a slider into a position +// along the slider control. The function converts taking into account the +// slider position and style as well as its range. +// +// \return Returns the screen position (x coordinate for horizontal sliders or +// y coordinate for vertical ones) that represents the value passed. +// +//***************************************************************************** +static int16_t +SliderValueToPosition(tSliderWidget *pSlider, int32_t i32Value) +{ + uint16_t ui16Size; + int32_t i32Range; + int32_t i32Pos; + + // + // First look for the trivial cases. To ensure correct display and remove + // artifacts caused by rounding errors, we specifically catch the cases + // where the value provided is at either end of the slider range. In these + // cases we return values that are outside the actual widget rectangle. + // This is detected while drawing so that the relevant bars fill the full + // area and don't leave single pixel lines at either end even when the + // slider is at full scale. These cases also catch out-of-range values + // and peg them at one end of the range or the other. + // + // First check for values at the top of the range. + // + if(i32Value >= pSlider->i32Max) + { + // + // Is this a vertical slider? + // + if(pSlider->ui32Style & SL_STYLE_VERTICAL) + { + // + // Vertical slider case. Return the top position. + // + i32Pos = pSlider->sBase.sPosition.i16YMin - 1; + + // + // Adjust by 1 to move past the border if this widget has one. + // + if(pSlider->ui32Style & SL_STYLE_OUTLINE) + { + i32Pos++; + } + } + else + { + // + // Horizontal slider case. Return the rightmost position. + // + i32Pos = pSlider->sBase.sPosition.i16XMax + 1; + + // + // Adjust by 1 to move past the border if this widget has one. + // + if(pSlider->ui32Style & SL_STYLE_OUTLINE) + { + i32Pos--; + } + } + return((int16_t)i32Pos); + } + + // + // Now look at the bottom end of the range. + // + if(i32Value <= pSlider->i32Min) + { + // + // Is this a vertical slider? + // + if(pSlider->ui32Style & SL_STYLE_VERTICAL) + { + // + // Vertical slider case. Return the bottom position. + // + i32Pos = pSlider->sBase.sPosition.i16YMax + 1; + + // + // Adjust by 1 to move past the border if this widget has one. + // + if(pSlider->ui32Style & SL_STYLE_OUTLINE) + { + i32Pos--; + } + } + else + { + // + // Horizontal slider case. Return the leftmost position. + // + i32Pos = pSlider->sBase.sPosition.i16XMin - 1; + + // + // Adjust by 1 to move past the border if this widget has one. + // + if(pSlider->ui32Style & SL_STYLE_OUTLINE) + { + i32Pos++; + } + } + return((int16_t)i32Pos); + } + + // + // What is the length of the whole slider? + // + if(pSlider->ui32Style & SL_STYLE_VERTICAL) + { + // + // Vertical slider case. + // + ui16Size = (pSlider->sBase.sPosition.i16YMax - + pSlider->sBase.sPosition.i16YMin) + 1; + } + else + { + // + // Horizontal slider case. + // + ui16Size = (pSlider->sBase.sPosition.i16XMax - + pSlider->sBase.sPosition.i16XMin) + 1; + } + + // + // Adjust the range if the slider has an outline (which removes 2 pixels). + // + if(pSlider->ui32Style & SL_STYLE_OUTLINE) + { + ui16Size -= 2; + } + + // + // Determine the range of the slider (the number of individual integers + // represented by the widget). + // + i32Range = (pSlider->i32Max - pSlider->i32Min) + 1; + + // + // Now we can determine the relevant position relative to the start of the + // slider. + // + i32Pos = (((i32Value - pSlider->i32Min) * (int32_t)ui16Size) / i32Range); + + // + // Clip the calculated position to the valid range based on the slider + // size. + // + i32Pos = max(i32Pos, 0); + i32Pos = min(i32Pos, (int32_t)ui16Size - 1); + + // + // Adjust for the position of the widget relative to the screen origin. + // + if(pSlider->ui32Style & SL_STYLE_VERTICAL) + { + // + // Vertical case - adjust the Y coordinate. + // + i32Pos = pSlider->sBase.sPosition.i16YMax - i32Pos; + } + else + { + // + // Horizontal case - adjust the X coordinate. + // + i32Pos += pSlider->sBase.sPosition.i16XMin; + } + + // + // If the widget has an outline, make sure to adjust for this too. + // + i32Pos += ((pSlider->ui32Style & SL_STYLE_OUTLINE) ? 1 : 0); + + // + // Convert to the expected return type and hand the caller the final + // value. + // + return((int16_t)i32Pos); +} + +//***************************************************************************** +// +// Converts a slider position to a value within its range. +// +// \param pSlider is a pointer to the slider widget for which the conversion is +// being requested. +// \param ui16Pos is a position within the slider. This is an x coordinate for +// a horizontal slider or a y coordinate for a vertical one. In both cases, +// the position is relative to the display origin. +// +// Converts a screen position into a value within the current range of the +// slider. The function converts taking into account the slider position and +// style as well as its range. +// +// \return Returns the slider value represented by the position passed. +// +//***************************************************************************** +static int32_t +SliderPositionToValue(tSliderWidget *pSlider, int16_t i16Pos) +{ + int16_t i16Max; + int16_t i16Min; + int32_t i32Value; + + // + // Determine the bounds of the control on the display. + // + if(pSlider->ui32Style & SL_STYLE_VERTICAL) + { + i16Max = pSlider->sBase.sPosition.i16YMax; + i16Min = pSlider->sBase.sPosition.i16YMin; + } + else + { + i16Max = pSlider->sBase.sPosition.i16XMax; + i16Min = pSlider->sBase.sPosition.i16XMin; + } + + // + // Adjust for the outline if present. + // + if(pSlider->ui32Style & SL_STYLE_OUTLINE) + { + i16Max--; + i16Min--; + } + + // + // If the control is too narrow, this is a bug but handle it gracefully + // rather than throwing a divide by zero later. + // + ASSERT(i16Max > i16Min); + if(i16Max <= i16Min) + { + return(pSlider->i32Min); + } + + // + // Clip the supplied position to the extent of the widget. + // + i16Pos = min(i16Max, i16Pos); + i16Pos = max(i16Min, i16Pos); + + // + // Adjust the position to make it relative to the start of the slider. + // + if(pSlider->ui32Style & SL_STYLE_VERTICAL) + { + i16Pos = i16Max - i16Pos; + } + + else + { + i16Pos -= i16Min; + } + + // + // Calculate the value represented by this position. + // + i32Value = ((int32_t)i16Pos * ((pSlider->i32Max - pSlider->i32Min) + 1)) / + (int32_t)((i16Max - i16Min) + 1); + + // + // Adjust for the bottom of the value range. + // + i32Value += pSlider->i32Min; + + // + // Hand the conversion result back to the caller. + // + return(i32Value); +} + +//***************************************************************************** +// +//! Draws a slider. +//! +//! \param psWidget is a pointer to the slider widget to be drawn. +//! \param psDirty is the subrectangle of the widget which is to be redrawn. +//! This is expressed in screen coordinates. +//! +//! This function draws a slider on the display. This is called in response to +//! a \b #WIDGET_MSG_PAINT message or when the slider position changes. +//! +//! \return None. +// +//***************************************************************************** +static void +SliderPaint(tWidget *psWidget, tRectangle *psDirty) +{ + tRectangle sClipRect, sValueRect, sEmptyRect, sActiveClip; + tSliderWidget *pSlider; + tContext sCtx; + int32_t i32X, i32Y; + bool bIntersect; + int16_t i16Pos; + + // + // Check the arguments. + // + ASSERT(psWidget); + + // + // Convert the generic widget pointer into a slider widget pointer. + // + pSlider = (tSliderWidget *)psWidget; + + // + // Initialize a drawing context. + // + GrContextInit(&sCtx, psWidget->psDisplay); + + // + // Initialize the clipping region based on the update rectangle passed. + // + bIntersect = GrRectIntersectGet(psDirty, &(pSlider->sBase.sPosition), + &sClipRect); + GrContextClipRegionSet(&sCtx, &sClipRect); + + // + // Draw the control outline if necessary. + // + if(pSlider->ui32Style & SL_STYLE_OUTLINE) + { + // + // Outline the slider with the outline color. + // + GrContextForegroundSet(&sCtx, pSlider->ui32OutlineColor); + GrRectDraw(&sCtx, &(psWidget->sPosition)); + + // + // Adjust the clipping rectangle to prevent the outline from being + // corrupted later. + // + if(sClipRect.i16XMin == psWidget->sPosition.i16XMin) + { + sClipRect.i16XMin++; + } + + if(sClipRect.i16YMin == psWidget->sPosition.i16YMin) + { + sClipRect.i16YMin++; + } + + if(sClipRect.i16XMax == psWidget->sPosition.i16XMax) + { + sClipRect.i16XMax--; + } + + if(sClipRect.i16YMax == psWidget->sPosition.i16YMax) + { + sClipRect.i16YMax--; + } + } + + // + // Determine the position associated with the current slider value. + // + i16Pos = SliderValueToPosition(pSlider, pSlider->i32Value); + + // + // Remember this so that the dirty rectangle code in the click handler + // draws the correct thing the first time it is called. + // + pSlider->i16Pos = i16Pos; + + // + // Determine the rectangles for the active and empty portions of the + // widget. + // + if(pSlider->ui32Style & SL_STYLE_VERTICAL) + { + // + // Determine the rectangle corresponding to the bottom (value) portion + // of the slider. + // + sValueRect.i16XMin = psWidget->sPosition.i16XMin; + sValueRect.i16XMax = psWidget->sPosition.i16XMax; + sValueRect.i16YMin = i16Pos; + sValueRect.i16YMax = psWidget->sPosition.i16YMax; + + // + // Determine the rectangle corresponding to the top (empty) portion + // of the slider. + // + sEmptyRect.i16XMin = psWidget->sPosition.i16XMin; + sEmptyRect.i16XMax = psWidget->sPosition.i16XMax; + sEmptyRect.i16YMin = psWidget->sPosition.i16YMin; + sEmptyRect.i16YMax = max(sEmptyRect.i16YMin, sValueRect.i16YMin - 1); + } + else + { + // + // Determine the rectangle corresponding to the bottom (value) portion + // of the slider. + // + sValueRect.i16YMin = psWidget->sPosition.i16YMin; + sValueRect.i16YMax = psWidget->sPosition.i16YMax; + sValueRect.i16XMin = psWidget->sPosition.i16XMin; + sValueRect.i16XMax = i16Pos; + + // + // Determine the rectangle corresponding to the top (empty) portion + // of the slider. + // + sEmptyRect.i16YMin = psWidget->sPosition.i16YMin; + sEmptyRect.i16YMax = psWidget->sPosition.i16YMax; + sEmptyRect.i16XMax = psWidget->sPosition.i16XMax; + sEmptyRect.i16XMin = min(sEmptyRect.i16XMax, sValueRect.i16XMax + 1); + } + + // + // Compute the center of the slider. This will be needed later if drawing + // text or an image. + // + i32X = (psWidget->sPosition.i16XMin + + ((psWidget->sPosition.i16XMax - + psWidget->sPosition.i16XMin + 1) / 2)); + i32Y = (psWidget->sPosition.i16YMin + + ((psWidget->sPosition.i16YMax - + psWidget->sPosition.i16YMin + 1) / 2)); + + // + // Get the required clipping rectangle for the active/value part of + // the slider. + // + bIntersect = GrRectIntersectGet(&sClipRect, &sValueRect, &sActiveClip); + + // + // Does any part of the value rectangle intersect with the region we are + // supposed to be redrawing? + // + if(bIntersect) + { + // + // Yes - we have something to draw. + // + + // + // Set the new clipping rectangle. + // + GrContextClipRegionSet(&sCtx, &sActiveClip); + + // + // Do we need to fill the active area with a color? + // + if(pSlider->ui32Style & SL_STYLE_FILL) + { + GrContextForegroundSet(&sCtx, pSlider->ui32FillColor); + GrRectFill(&sCtx, &sValueRect); + } + + // + // Do we need to draw an image in the active area? + // + if(pSlider->ui32Style & SL_STYLE_IMG) + { + GrContextForegroundSet(&sCtx, pSlider->ui32TextColor); + GrContextBackgroundSet(&sCtx, pSlider->ui32FillColor); + GrImageDraw(&sCtx, pSlider->pui8Image, + i32X - (GrImageWidthGet(pSlider->pui8Image) / 2), + i32Y - (GrImageHeightGet(pSlider->pui8Image) / 2)); + } + + // + // Do we need to render a text string over the top of the active area? + // + if(pSlider->ui32Style & SL_STYLE_TEXT) + { + GrContextFontSet(&sCtx, pSlider->psFont); + GrContextForegroundSet(&sCtx, pSlider->ui32TextColor); + GrContextBackgroundSet(&sCtx, pSlider->ui32FillColor); + GrStringDrawCentered(&sCtx, pSlider->pcText, -1, i32X, i32Y, + pSlider->ui32Style & SL_STYLE_TEXT_OPAQUE); + } + } + + // + // Now get the required clipping rectangle for the background portion of + // the slider. + // + bIntersect = GrRectIntersectGet(&sClipRect, &sEmptyRect, &sActiveClip); + + // + // Does any part of the background rectangle intersect with the region we + // are supposed to be redrawing? + // + if(bIntersect) + { + // + // Yes - we have something to draw. + // + + // + // Set the new clipping rectangle. + // + GrContextClipRegionSet(&sCtx, &sActiveClip); + + // + // Do we need to fill the active area with a color? + // + if(pSlider->ui32Style & SL_STYLE_BACKG_FILL) + { + GrContextForegroundSet(&sCtx, pSlider->ui32BackgroundFillColor); + GrRectFill(&sCtx, &sEmptyRect); + } + + // + // Do we need to draw an image in the active area? + // + if(pSlider->ui32Style & SL_STYLE_BACKG_IMG) + { + GrContextForegroundSet(&sCtx, pSlider->ui32BackgroundTextColor); + GrContextBackgroundSet(&sCtx, pSlider->ui32BackgroundFillColor); + GrImageDraw(&sCtx, pSlider->pui8BackgroundImage, + i32X - (GrImageWidthGet(pSlider->pui8BackgroundImage) / 2), + i32Y - (GrImageHeightGet(pSlider->pui8BackgroundImage) / 2)); + } + + // + // Do we need to render a text string over the top of the active area? + // + if(pSlider->ui32Style & SL_STYLE_BACKG_TEXT) + { + GrContextFontSet(&sCtx, pSlider->psFont); + GrContextForegroundSet(&sCtx, pSlider->ui32BackgroundTextColor); + GrContextBackgroundSet(&sCtx, pSlider->ui32BackgroundFillColor); + GrStringDrawCentered(&sCtx, pSlider->pcText, -1, i32X, i32Y, + pSlider->ui32Style & SL_STYLE_BACKG_TEXT_OPAQUE); + } + } +} + +//***************************************************************************** +// +//! Handles pointer events for slider. +//! +//! \param psWidget is a pointer to the slider widget. +//! \param ui32Msg is the pointer event message. +//! \param i32X is the X coordinate of the pointer event. +//! \param i32Y is the Y coordinate of the pointer event. +//! +//! This function processes pointer event messages for a slider. This is +//! called in response to a \b #WIDGET_MSG_PTR_DOWN, \b #WIDGET_MSG_PTR_MOVE, +//! and \b #WIDGET_MSG_PTR_UP messages. +//! +//! If the message is \b #WIDGET_MSG_PTR_MOVE or is \b #WIDGET_MSG_PTR_DOWN and +//! the coordinates are within the bounds of the slider, the slider value is +//! updated and, if changed, the slider's OnChange callback function is called. +//! +//! \return Returns 1 if the message was consumed by the slider and 0 +//! otherwise. +// +//***************************************************************************** +static int32_t +SliderClick(tWidget *psWidget, uint32_t ui32Msg, int32_t i32X, int32_t i32Y) +{ + tSliderWidget *pSlider; + tRectangle sRedrawRect; + int16_t i16Pos; + int32_t i32NewVal; + + // + // Check the arguments. + // + ASSERT(psWidget); + + // + // Convert the generic widget pointer into a slider widget pointer. + // + pSlider = (tSliderWidget *)psWidget; + + // + // If the slider is locked, ignore all pointer messages. + // + if(pSlider->ui32Style & SL_STYLE_LOCKED) + { + return(0); + } + + // + // See if the given coordinates are within the extents of the slider. + // + if((ui32Msg == WIDGET_MSG_PTR_MOVE) || + ((ui32Msg == WIDGET_MSG_PTR_DOWN) && + (i32X >= psWidget->sPosition.i16XMin) && + (i32X <= psWidget->sPosition.i16XMax) && + (i32Y >= psWidget->sPosition.i16YMin) && + (i32Y <= psWidget->sPosition.i16YMax))) + { + // + // Map the pointer position to a slider value. + // + i32NewVal = SliderPositionToValue(pSlider, + (pSlider->ui32Style & SL_STYLE_VERTICAL) ? + i32Y : i32X); + + // + // Convert back to ensure that the dirty rectangle we calculate here + // uses the same values as will be used when the widget is next + // painted. + // + i16Pos = SliderValueToPosition(pSlider, i32NewVal); + + // + // Did the value change? + // + if(i32NewVal != pSlider->i32Value) + { + // + // Yes - the value changed so report it to the app and redraw the + // slider. + // + if(pSlider->pfnOnChange) + { + (pSlider->pfnOnChange)(psWidget, i32NewVal); + } + + // + // Determine the rectangle that we need to redraw to update the + // slider to the new position. + // + if(pSlider->ui32Style & SL_STYLE_VERTICAL) + { + // + // Vertical slider case. + // + sRedrawRect.i16YMin = min(pSlider->i16Pos, i16Pos); + sRedrawRect.i16YMax = max(pSlider->i16Pos, i16Pos); + sRedrawRect.i16XMin = psWidget->sPosition.i16XMin; + sRedrawRect.i16XMax = psWidget->sPosition.i16XMax; + } + else + { + // + // Horizontal slider case. + // + sRedrawRect.i16XMin = min(pSlider->i16Pos, i16Pos); + sRedrawRect.i16XMax = max(pSlider->i16Pos, i16Pos); + sRedrawRect.i16YMin = psWidget->sPosition.i16YMin; + sRedrawRect.i16YMax = psWidget->sPosition.i16YMax; + } + + // + // Update the widget value and position. + // + pSlider->i32Value = i32NewVal; + pSlider->i16Pos = i16Pos; + + // + // Redraw the area of the control that has changed. + // + SliderPaint(psWidget, &sRedrawRect); + } + + // + // These coordinates are within the extents of the slider widget. + // + return(1); + } + + // + // These coordinates are not within the extents of the slider widget. + // + return(0); +} + +//***************************************************************************** +// +//! Handles messages for a slider widget. +//! +//! \param psWidget is a pointer to the slider widget. +//! \param ui32Msg is the message. +//! \param ui32Param1 is the first parameter to the message. +//! \param ui32Param2 is the second parameter to the message. +//! +//! This function receives messages intended for this slider widget and +//! processes them accordingly. The processing of the message varies based on +//! the message in question. +//! +//! Unrecognized messages are handled by calling WidgetDefaultMsgProc(). +//! +//! \return Returns a value appropriate to the supplied message. +// +//***************************************************************************** +int32_t +SliderMsgProc(tWidget *psWidget, uint32_t ui32Msg, uint32_t ui32Param1, + uint32_t ui32Param2) +{ + // + // Check the arguments. + // + ASSERT(psWidget); + + // + // Determine which message is being sent. + // + switch(ui32Msg) + { + // + // The widget paint request has been sent. + // + case WIDGET_MSG_PAINT: + { + // + // Handle the widget paint request. + // + SliderPaint(psWidget, &(psWidget->sPosition)); + + // + // Return one to indicate that the message was successfully + // processed. + // + return(1); + } + + // + // One of the pointer requests has been sent. + // + case WIDGET_MSG_PTR_DOWN: + case WIDGET_MSG_PTR_MOVE: + case WIDGET_MSG_PTR_UP: + { + // + // Handle the pointer request, returning the appropriate value. + // + return(SliderClick(psWidget, ui32Msg, ui32Param1, ui32Param2)); + } + + // + // An unknown request has been sent. + // + default: + { + // + // Let the default message handler process this message. + // + return(WidgetDefaultMsgProc(psWidget, ui32Msg, ui32Param1, + ui32Param2)); + } + } +} + +//***************************************************************************** +// +//! Initializes a slider widget. +//! +//! \param psWidget is a pointer to the slider widget to initialize. +//! \param psDisplay is a pointer to the display on which to draw the slider. +//! \param i32X is the X coordinate of the upper left corner of the slider. +//! \param i32Y is the Y coordinate of the upper left corner of the slider. +//! \param i32Width is the width of the slider. +//! \param i32Height is the height of the slider. +//! +//! This function initializes the provided slider widget. +//! +//! \return None. +// +//***************************************************************************** +void +SliderInit(tSliderWidget *psWidget, const tDisplay *psDisplay, int32_t i32X, + int32_t i32Y, int32_t i32Width, int32_t i32Height) +{ + uint32_t ui32Idx; + + // + // Check the arguments. + // + ASSERT(psWidget); + ASSERT(psDisplay); + + // + // Clear out the widget structure. + // + for(ui32Idx = 0; ui32Idx < sizeof(tSliderWidget); ui32Idx += 4) + { + ((uint32_t *)psWidget)[ui32Idx / 4] = 0; + } + + // + // Set the size of the slider widget structure. + // + psWidget->sBase.i32Size = sizeof(tSliderWidget); + + // + // Mark this widget as fully disconnected. + // + psWidget->sBase.psParent = 0; + psWidget->sBase.psNext = 0; + psWidget->sBase.psChild = 0; + + // + // Save the display pointer. + // + psWidget->sBase.psDisplay = psDisplay; + + // + // Set the extents of this slider. + // + psWidget->sBase.sPosition.i16XMin = i32X; + psWidget->sBase.sPosition.i16YMin = i32Y; + psWidget->sBase.sPosition.i16XMax = i32X + i32Width - 1; + psWidget->sBase.sPosition.i16YMax = i32Y + i32Height - 1; + + // + // Use the slider message handler to process messages to this widget. + // + psWidget->sBase.pfnMsgProc = SliderMsgProc; +} + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** diff --git a/grlib/slider.h b/grlib/slider.h new file mode 100644 index 0000000..cb3ec26 --- /dev/null +++ b/grlib/slider.h @@ -0,0 +1,1202 @@ +//***************************************************************************** +// +// slider.h - Prototypes for the slider widget class. +// +// Copyright (c) 2008-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#ifndef __SLIDER_H__ +#define __SLIDER_H__ + +//***************************************************************************** +// +//! \addtogroup slider_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +// If building with a C++ compiler, make all of the definitions in this header +// have a C binding. +// +//***************************************************************************** +#ifdef __cplusplus +extern "C" +{ +#endif + +//***************************************************************************** +// +//! The structure that describes a slider widget. +// +//***************************************************************************** +typedef struct +{ + // + //! The generic widget information. + // + tWidget sBase; + + // + //! The style for this widget. This is a set of flags defined by + //! SL_STYLE_xxx. + // + uint32_t ui32Style; + + // + //! The 24-bit RGB color used to fill this slider, if SL_STYLE_FILL is + //! selected, and to use as the background color if SL_STYLE_TEXT_OPAQUE is + //! selected. + // + uint32_t ui32FillColor; + + // + //! The 24-bit RGB color used to fill the background portion of the slider + //! if SL_STYLE_FILL is selected, and to use as the background color if + //! SL_STYLE_TEXT_OPAQUE is selected. + // + uint32_t ui32BackgroundFillColor; + + // + //! The 24-bit RGB color used to outline this slider, if + //! SL_STYLE_OUTLINE is selected. + // + uint32_t ui32OutlineColor; + + // + //! The 24-bit RGB color used to draw text on the "active" portion of + //! this slider, if SL_STYLE_TEXT is selected. + // + uint32_t ui32TextColor; + + // + //! The 24-bit RGB color used to draw text on the background portion of + //! this slider, if SL_STYLE_TEXT is selected. + // + uint32_t ui32BackgroundTextColor; + + // + //! A pointer to the font used to render the slider text, if + //! SL_STYLE_TEXT is selected. + // + const tFont *psFont; + + // + //! A pointer to the text to draw on this slider, if SL_STYLE_TEXT is + //! selected. + // + const char *pcText; + + // + //! A pointer to the image to be drawn onto this slider, if + //! SL_STYLE_IMG is selected. + // + const uint8_t *pui8Image; + + // + //! A pointer to the image to be drawn onto this slider background if + //! SL_STYLE_BACKG_IMG is selected. + // + const uint8_t *pui8BackgroundImage; + + // + //! A pointer to the function to be called when the state of the slider + //! changes. + // + void (*pfnOnChange)(tWidget *psWidget, int32_t i32Value); + + // + //! The value represented by the slider at its zero position. This + //! value is returned if a horizontal slider is pulled to the far left or + //! a vertical slider is pulled to the bottom of widget's bounding + //! rectangle. + // + int32_t i32Min; + + // + //! The value represented by the slider at its maximum position. This value + //! is returned if a horizontal slider is pulled to the far right or a + //! vertical slider is pulled to the top of the widget's bounding + //! rectangle. + // + int32_t i32Max; + + // + //! The current slider value scaled according to the minimum and maximum + //! values for the control. + // + int32_t i32Value; + + // + //! This internal work variable stores the pixel position representing the + //! current slider value. + // + int16_t i16Pos; +} +tSliderWidget; + +//***************************************************************************** +// +//! This flag indicates that the slider should be outlined. +// +//***************************************************************************** +#define SL_STYLE_OUTLINE 0x00000001 + +//***************************************************************************** +// +//! This flag indicates that the active portion of the slider should be filled. +// +//***************************************************************************** +#define SL_STYLE_FILL 0x00000002 + +//***************************************************************************** +// +//! This flag indicates that the background portion of the slider should be +//! filled. +// +//***************************************************************************** +#define SL_STYLE_BACKG_FILL 0x00000004 + +//***************************************************************************** +// +//! This flag indicates that the slider should have text drawn on top of the +//! active portion. +// +//***************************************************************************** +#define SL_STYLE_TEXT 0x00000008 + +//***************************************************************************** +// +//! This flag indicates that the slider should have text drawn on top of the +//! background portion. +// +//***************************************************************************** +#define SL_STYLE_BACKG_TEXT 0x00000010 + +//***************************************************************************** +// +//! This flag indicates that the slider should have an image drawn on it. +// +//***************************************************************************** +#define SL_STYLE_IMG 0x00000020 + +//***************************************************************************** +// +//! This flag indicates that the slider should have an image drawn on its +//! background. +// +//***************************************************************************** +#define SL_STYLE_BACKG_IMG 0x00000040 + +//***************************************************************************** +// +//! This flag indicates that the slider text should be drawn opaque (in +//! other words, drawing the background pixels as well as the foreground +//! pixels) in the active portion of the slider. +// +//***************************************************************************** +#define SL_STYLE_TEXT_OPAQUE 0x00000080 + +//***************************************************************************** +// +//! This flag indicates that the slider text should be drawn opaque (in +//! other words, drawing the background pixels as well as the foreground +//! pixels) in the background portion of the slider. +// +//***************************************************************************** +#define SL_STYLE_BACKG_TEXT_OPAQUE 0x00000100 + +//***************************************************************************** +// +//! This flag indicates that the slider is vertical rather than horizontal. If +//! the flag is absent, the slider is assumed to operate horizontally with the +//! reported value increasing from left to right. If set, the reported value +//! increases from the bottom of the widget towards the top. +// +//***************************************************************************** +#define SL_STYLE_VERTICAL 0x00000200 + +//***************************************************************************** +// +//! This flag causes the slider to ignore pointer input and act as a passive +//! indicator. An application may set its value and repaint it as normal but +//! its value will not be changed in response to any touchscreen activity. +// +//***************************************************************************** +#define SL_STYLE_LOCKED 0x00000400 + +//***************************************************************************** +// +//! Declares an initialized slider widget data structure. +//! +//! \param psParent is a pointer to the parent widget. +//! \param psNext is a pointer to the sibling widget. +//! \param psChild is a pointer to the first child widget. +//! \param psDisplay is a pointer to the display on which to draw the slider. +//! \param i32X is the X coordinate of the upper left corner of the slider. +//! \param i32Y is the Y coordinate of the upper left corner of the slider. +//! \param i32Width is the width of the slider. +//! \param i32Height is the height of the slider. +//! \param i32Min is the minimum value for the slider (corresponding to the +//! left or bottom position). +//! \param i32Max is the maximum value for the slider (corresponding to the +//! right or top position). +//! \param i32Value is the initial value of the slider. This must lie in the +//! range defined by \e i32Min and \e i32Max. +//! \param ui32Style is the style to be applied to the slider. +//! \param ui32FillColor is the color used to fill in the slider. +//! \param ui32BackgroundFillColor is the color used to fill the background +//! area of the slider. +//! \param ui32OutlineColor is the color used to outline the slider. +//! \param ui32TextColor is the color used to draw text on the slider. +//! \param ui32BackgroundTextColor is the color used to draw text on the +//! background portion of the slider. +//! \param psFont is a pointer to the font to be used to draw text on the +//! slider. +//! \param pcText is a pointer to the text to draw on this slider. +//! \param pui8Image is a pointer to the image to draw on this slider. +//! \param pui8BackgroundImage is a pointer to the image to draw on the slider +//! background. +//! \param pfnOnChange is a pointer to the function that is called to notify +//! the application of slider value changes. +//! +//! This macro provides an initialized slider widget data structure, which can +//! be used to construct the widget tree at compile time in global variables +//! (as opposed to run-time via function calls). This must be assigned to a +//! variable, such as: +//! +//! \verbatim +//! tSliderWidget g_sSlider = SliderStruct(...); +//! \endverbatim +//! +//! Or, in an array of variables: +//! +//! \verbatim +//! tSliderWidget g_psSliders[] = +//! { +//! SliderStruct(...), +//! SliderStruct(...) +//! }; +//! \endverbatim +//! +//! \e ui32Style is the logical OR of the following: +//! +//! - \b #SL_STYLE_OUTLINE to indicate that the slider should be outlined. +//! - \b #SL_STYLE_FILL to indicate that the slider should be filled. +//! - \b #SL_STYLE_BACKG_FILL to indicate that the background portion of the +//! slider should be filled. +//! - \b #SL_STYLE_TEXT to indicate that the slider should have text drawn +//! on its active portion (using \e psFont and \e pcText). +//! - \b #SL_STYLE_BACKG_TEXT to indicate that the slider should have text drawn +//! on its background portion (using \e psFont and \e pcText). +//! - \b #SL_STYLE_IMG to indicate that the slider should have an image +//! drawn on it (using \e pui8Image). +//! - \b #SL_STYLE_BACKG_IMG to indicate that the slider should have an image +//! drawn on its background (using \e pui8BackgroundImage). +//! - \b #SL_STYLE_TEXT_OPAQUE to indicate that the slider text should be +//! drawn opaque (in other words, drawing the background pixels). +//! - \b #SL_STYLE_BACKG_TEXT_OPAQUE to indicate that the slider text should be +//! drawn opaque in the background portion of the widget. (in other words, +//! drawing the background pixels). +//! - \b #SL_STYLE_VERTICAL to indicate that this is a vertical slider +//! rather than a horizontal one (the default if this style flag is not set). +//! - \b #SL_STYLE_LOCKED to indicate that the slider is being used as an +//! indicator and should ignore user input. +//! +//! \return Nothing; this is not a function. +// +//***************************************************************************** +#define SliderStruct(psParent, psNext, psChild, psDisplay, i32X, i32Y, \ + i32Width, i32Height, i32Min, i32Max, i32Value, \ + ui32Style, ui32FillColor, ui32BackgroundFillColor, \ + ui32OutlineColor, ui32TextColor, \ + ui32BackgroundTextColor, psFont, pcText, pui8Image, \ + pui8BackgroundImage, pfnOnChange) \ + { \ + { \ + sizeof(tSliderWidget), \ + (tWidget *)(psParent), \ + (tWidget *)(psNext), \ + (tWidget *)(psChild), \ + psDisplay, \ + { \ + i32X, \ + i32Y, \ + (i32X) + (i32Width) - 1, \ + (i32Y) + (i32Height) - 1 \ + }, \ + SliderMsgProc \ + }, \ + ui32Style, \ + ui32FillColor, \ + ui32BackgroundFillColor, \ + ui32OutlineColor, \ + ui32TextColor, \ + ui32BackgroundTextColor, \ + psFont, \ + pcText, \ + pui8Image, \ + pui8BackgroundImage, \ + pfnOnChange, \ + i32Min, \ + i32Max, \ + i32Value, \ + 0 \ + } + +//***************************************************************************** +// +//! Declares an initialized variable containing a slider widget data structure. +//! +//! \param sName is the name of the variable to be declared. +//! \param psParent is a pointer to the parent widget. +//! \param psNext is a pointer to the sibling widget. +//! \param psChild is a pointer to the first child widget. +//! \param psDisplay is a pointer to the display on which to draw the slider. +//! \param i32X is the X coordinate of the upper left corner of the slider. +//! \param i32Y is the Y coordinate of the upper left corner of the slider. +//! \param i32Width is the width of the slider. +//! \param i32Height is the height of the slider. +//! \param i32Min is the minimum value for the slider (corresponding to the +//! left or bottom position). +//! \param i32Max is the maximum value for the slider (corresponding to the +//! right or top position). +//! \param i32Value is the initial value of the slider. This must lie in the +//! range defined by \e i32Min and \e i32Max. +//! \param ui32Style is the style to be applied to the slider. +//! \param ui32FillColor is the color used to fill in the slider. +//! \param ui32BackgroundFillColor is the color used to fill in the background +//! area of the slider. +//! \param ui32OutlineColor is the color used to outline the slider. +//! \param ui32TextColor is the color used to draw text on the slider. +//! \param ui32BackgroundTextColor is the color used to draw text on the +//! background portion of the slider. +//! \param psFont is a pointer to the font to be used to draw text on the +//! slider. +//! \param pcText is a pointer to the text to draw on this slider. +//! \param pui8Image is a pointer to the image to draw on this slider. +//! \param pui8BackgroundImage is a pointer to the image to draw on the slider +//! background. +//! \param pfnOnChange is a pointer to the function that is called to notify +//! the application of slider value changes. +//! +//! This macro provides an initialized slider widget data structure, which can +//! be used to construct the widget tree at compile time in global variables +//! (as opposed to run-time via function calls). +//! +//! \e ui32Style is the logical OR of the following: +//! +//! - \b #SL_STYLE_OUTLINE to indicate that the slider should be outlined. +//! - \b #SL_STYLE_FILL to indicate that the slider should be filled. +//! - \b #SL_STYLE_BACKG_FILL to indicate that the background portion of the +//! slider should be filled. +//! - \b #SL_STYLE_TEXT to indicate that the slider should have text drawn +//! on its active portion (using \e psFont and \e pcText). +//! - \b #SL_STYLE_BACKG_TEXT to indicate that the slider should have text +//! drawn on its background portion (using \e psFont and \e pcText). +//! - \b #SL_STYLE_IMG to indicate that the slider should have an image +//! drawn on it (using \e pui8Image). +//! - \b #SL_STYLE_BACKG_IMG to indicate that the slider should have an image +//! drawn on its background (using \e pui8BackgroundImage). +//! - \b #SL_STYLE_TEXT_OPAQUE to indicate that the slider text should be +//! drawn opaque (in other words, drawing the background pixels). +//! - \b #SL_STYLE_BACKG_TEXT_OPAQUE to indicate that the slider text should be +//! drawn opaque in the background portion of the widget. (in other words, +//! drawing the background pixels). +//! - \b #SL_STYLE_VERTICAL to indicate that this is a vertical slider +//! rather than a horizontal one (the default if this style flag is not set). +//! - \b #SL_STYLE_LOCKED to indicate that the slider is being used as an +//! indicator and should ignore user input. +//! +//! \return Nothing; this is not a function. +// +//***************************************************************************** +#define Slider(sName, psParent, psNext, psChild, psDisplay, i32X, i32Y, \ + i32Width, i32Height, i32Min, i32Max, i32Value, ui32Style, \ + ui32FillColor, ui32BackgroundFillColor, ui32OutlineColor, \ + ui32TextColor, ui32BackgroundTextColor, psFont, pcText, \ + pui8Image, pui8BackgroundImage, pfnOnChange) \ + tSliderWidget sName = \ + SliderStruct(psParent, psNext, psChild, psDisplay, i32X, i32Y, \ + i32Width, i32Height, i32Min, i32Max, i32Value, \ + ui32Style, ui32FillColor, ui32BackgroundFillColor, \ + ui32OutlineColor, ui32TextColor, \ + ui32BackgroundTextColor, psFont, pcText, \ + pui8Image, pui8BackgroundImage, pfnOnChange) + +//***************************************************************************** +// +//! Sets the function to call when this slider widget's value changes. +//! +//! \param psWidget is a pointer to the slider widget to modify. +//! \param pfnCallback is a pointer to the function to call. +//! +//! This function sets the function to be called when the value represented by +//! the slider changes. +//! +//! \return None. +// +//***************************************************************************** +#define SliderCallbackSet(psWidget, pfnCallback) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + psW->pfnOnChange = pfnCallback; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the fill color for the active area of a slider widget. +//! +//! \param psWidget is a pointer to the slider widget to be modified. +//! \param ui32Color is the 24-bit RGB color to use to fill the slider. +//! +//! This function changes the color used to fill the active are of the slider +//! on the display. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define SliderFillColorSet(psWidget, ui32Color) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + psW->ui32FillColor = ui32Color; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the fill color for the background area of a slider widget. +//! +//! \param psWidget is a pointer to the slider widget to be modified. +//! \param ui32Color is the 24-bit RGB color to use to fill the background area +//! of the slider. +//! +//! This function changes the color used to fill the background area of the +//! slider on the display. The display is not updated until the next paint +//! request. +//! +//! \return None. +// +//***************************************************************************** +#define SliderFillColorBackgroundedSet(psWidget, ui32Color) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + psW->ui32BackgroundFillColor = ui32Color; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables filling of the active area of a slider widget. +//! +//! \param psWidget is a pointer to the slider widget to modify. +//! +//! This function disables the filling of the active area of a slider widget. +//! The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define SliderFillOff(psWidget) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + psW->ui32Style &= ~(SL_STYLE_FILL); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables filling of the active area of a slider widget. +//! +//! \param psWidget is a pointer to the slider widget to modify. +//! +//! This function enables the filling of the active area of a slider widget. +//! The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define SliderFillOn(psWidget) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + psW->ui32Style |= SL_STYLE_FILL; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables filling of the background area of a slider widget. +//! +//! \param psWidget is a pointer to the slider widget to modify. +//! +//! This function disables the filling of the background area of a slider +//! widget. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define SliderBackgroundFillOff(psWidget) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + psW->ui32Style &= ~(SL_STYLE_BACKG_FILL ); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables filling of the background area of a slider widget. +//! +//! \param psWidget is a pointer to the slider widget to modify. +//! +//! This function enables the filling of the background area of a slider widget. +//! The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define SliderBackgroundFillOn(psWidget) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + psW->ui32Style |= SL_STYLE_BACKG_FILL ; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the font for a slider widget. +//! +//! \param psWidget is a pointer to the slider widget to modify. +//! \param psFnt is a pointer to the font to use to draw text on the slider. +//! +//! This function changes the font used to draw text on the slider. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define SliderFontSet(psWidget, psFnt) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + const tFont *psF = psFnt; \ + psW->psFont = psF; \ + } \ + while(0) + +//***************************************************************************** +// +//! Changes the image drawn on the active area of a slider widget. +//! +//! \param psWidget is a pointer to the slider widget to be modified. +//! \param pImg is a pointer to the image to draw onto the slider. +//! +//! This function changes the image that is drawn on the active area of the +//! slider. This image will be centered within the widget rectangle and the +//! portion represented by the current slider value will be visible. The +//! display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define SliderImageSet(psWidget, pImg) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + const uint8_t *pI = pImg; \ + psW->pui8Image = pI; \ + } \ + while(0) + +//***************************************************************************** +// +//! Changes the image drawn on the background area of a slider widget. +//! +//! \param psWidget is a pointer to the slider widget to be modified. +//! \param pImg is a pointer to the image to draw onto the background area of +//! the slider. +//! +//! This function changes the image that is drawn onto the background area of +//! the slider. This image will be centered within the widget rectangle and +//! the portion in the area not represented by the current slider value will +//! be visible. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define SliderBackgroundImageSet(psWidget, pImg) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + const uint8_t *pI = pImg; \ + psW->pui8BackgroundImage = pI; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables the image on the active area of a slider widget. +//! +//! \param psWidget is a pointer to the slider widget to modify. +//! +//! This function disables the drawing of an image on the active area of a +//! slider widget. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define SliderImageOff(psWidget) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + psW->ui32Style &= ~(SL_STYLE_IMG); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables the image on the active area of a slider widget. +//! +//! \param psWidget is a pointer to the slider widget to modify. +//! +//! This function enables the drawing of an image on the active area of a +//! slider widget. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define SliderImageOn(psWidget) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + psW->ui32Style |= SL_STYLE_IMG; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables the image on the background area of a slider widget. +//! +//! \param psWidget is a pointer to the slider widget to modify. +//! +//! This function disables the drawing of an image on the background area of a +//! slider widget. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define SliderBackgroundImageOff(psWidget) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + psW->ui32Style &= ~(SL_STYLE_BACKG_IMG); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables the image on the background area of a slider widget. +//! +//! \param psWidget is a pointer to the slider widget to modify. +//! +//! This function enables the drawing of an image on the background area of a +//! slider widget. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define SliderBackgroundImageOn(psWidget) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + psW->ui32Style |= SL_STYLE_BACKG_IMG; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the outline color of a slider widget. +//! +//! \param psWidget is a pointer to the slider widget to be modified. +//! \param ui32Color is the 24-bit RGB color to use to outline the slider. +//! +//! This function changes the color used to outline the slider on the +//! display. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define SliderOutlineColorSet(psWidget, ui32Color) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + psW->ui32OutlineColor = ui32Color; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables outlining of a slider widget. +//! +//! \param psWidget is a pointer to the slider widget to modify. +//! +//! This function disables the outlining of a slider widget. The display +//! is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define SliderOutlineOff(psWidget) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + psW->ui32Style &= ~(SL_STYLE_OUTLINE); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables outlining of a slider widget. +//! +//! \param psWidget is a pointer to the slider widget to modify. +//! +//! This function enables the outlining of a slider widget. The display +//! is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define SliderOutlineOn(psWidget) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + psW->ui32Style |= SL_STYLE_OUTLINE; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the text color of the active portion of a slider widget. +//! +//! \param psWidget is a pointer to the slider widget to be modified. +//! \param ui32Color is the 24-bit RGB color to use to draw text on the slider. +//! +//! This function changes the color used to draw text on the active portion of +//! the slider on the display. The display is not updated until the next paint +//! request. +//! +//! \return None. +// +//***************************************************************************** +#define SliderTextColorSet(psWidget, ui32Color) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + psW->ui32TextColor = ui32Color; \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the background text color of a slider widget. +//! +//! \param psWidget is a pointer to the slider widget to be modified. +//! \param ui32Color is the 24-bit RGB color to use to draw background text on +//! the slider. +//! +//! This function changes the color used to draw text on the slider's +//! background portion on the display. The display is not updated until the +//! next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define SliderBackgroundTextColorSet(psWidget, ui32Color) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + psW->ui32BackgroundTextColor = ui32Color; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables the text on the active portion of a slider widget. +//! +//! \param psWidget is a pointer to the slider widget to modify. +//! +//! This function disables the drawing of text on the active portion of a +//! slider widget. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define SliderTextOff(psWidget) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + psW->ui32Style &= ~(SL_STYLE_TEXT); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables the text on the active portion of a slider widget. +//! +//! \param psWidget is a pointer to the slider widget to modify. +//! +//! This function enables the drawing of text on the active portion of a slider +//! widget. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define SliderTextOn(psWidget) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + psW->ui32Style |= SL_STYLE_TEXT; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables opaque text on the active portion of a slider widget. +//! +//! \param psWidget is a pointer to the slider widget to modify. +//! +//! This function disables the use of opaque text on the active portion of this +//! slider. When not using opaque text, only the foreground pixels of the text +//! are drawn on the screen, allowing the previously drawn pixels (such as the +//! slider image) to show through the text. Note that SL_STYLE_TEXT must also +//! be cleared to disable text rendering on the slider active area. +//! +//! \return None. +// +//***************************************************************************** +#define SliderTextOpaqueOff(psWidget) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + psW->ui32Style &= ~(SL_STYLE_TEXT_OPAQUE); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables opaque text on the active portion of a slider widget. +//! +//! \param psWidget is a pointer to the slider widget to modify. +//! +//! This function enables the use of opaque text on the active portion of this +//! slider. When using opaque text, both the foreground and background pixels +//! of the text are drawn on the screen, blocking out the previously drawn +//! pixels. Note that SL_STYLE_TEXT must also be set to enable text +//! rendering on the slider active area. +//! +//! \return None. +// +//***************************************************************************** +#define SliderTextOpaqueOn(psWidget) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + psW->ui32Style |= SL_STYLE_TEXT_OPAQUE; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables the text on the background portion of a slider widget. +//! +//! \param psWidget is a pointer to the slider widget to modify. +//! +//! This function disables the drawing of text on the background portion of +//! a slider widget. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define SliderBackgroundTextOff(psWidget) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + psW->ui32Style &= ~(SL_STYLE_BACKG_TEXT); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables the text on the background portion of a slider widget. +//! +//! \param psWidget is a pointer to the slider widget to modify. +//! +//! This function enables the drawing of text on the background portion of a +//! slider widget. The display is not updated until the next paint request. +//! +//! \return None. +// +//***************************************************************************** +#define SliderBackgroundTextOn(psWidget) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + psW->ui32Style |= SL_STYLE_BACKG_TEXT; \ + } \ + while(0) + +//***************************************************************************** +// +//! Disables opaque background text on a slider widget. +//! +//! \param psWidget is a pointer to the slider widget to modify. +//! +//! This function disables the use of opaque text on the background portion of +//! this slider. When not using opaque text, only the foreground pixels of the +//! text are drawn on the screen, allowing the previously drawn pixels (such as +//! the slider image) to show through the text. Note that SL_STYLE_BACKG_TEXT +//! must also be cleared to disable text rendering on the slider background +//! area. +//! +//! \return None. +// +//***************************************************************************** +#define SliderBackgroundTextOpaqueOff(psWidget) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + psW->ui32Style &= ~(SL_STYLE_BACKG_TEXT_OPAQUE); \ + } \ + while(0) + +//***************************************************************************** +// +//! Enables opaque background text on a slider widget. +//! +//! \param psWidget is a pointer to the slider widget to modify. +//! +//! This function enables the use of opaque text on the background portion of +//! this slider. When using opaque text, both the foreground and background +//! pixels of the text are drawn on the screen, blocking out the previously +//! drawn pixels. Note that SL_STYLE_BACKG_TEXT must also be set to enable +//! text rendering on the slider background area. +//! +//! \return None. +// +//***************************************************************************** +#define SliderBackgroundTextOpaqueOn(psWidget) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + psW->ui32Style |= SL_STYLE_BACKG_TEXT_OPAQUE; \ + } \ + while(0) + +//***************************************************************************** +// +//! Locks a slider making it ignore pointer input. +//! +//! \param psWidget is a pointer to the slider widget to modify. +//! +//! This function locks a slider widget and makes it ignore all pointer input. +//! When locked, a slider acts as a passive indicator. Its value may be +//! changed using SliderValueSet() and the value display updated using +//! WidgetPaint() but no user interaction via the pointer will change the +//! widget value. +//! +//! \return None. +// +//***************************************************************************** +#define SliderLock(psWidget) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + psW->ui32Style |= SL_STYLE_LOCKED; \ + } \ + while(0) + +//***************************************************************************** +// +//! Unlocks a slider making it pay attention to pointer input. +//! +//! \param psWidget is a pointer to the slider widget to modify. +//! +//! This function unlocks a slider widget. When unlocked, a slider will +//! respond to pointer input by setting its value appropriately and informing +//! the application via callbacks. +//! +//! \return None. +// +//***************************************************************************** +#define SliderUnlock(psWidget) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + psW->ui32Style &= ~(SL_STYLE_LOCKED); \ + } \ + while(0) + +//***************************************************************************** +// +//! Changes the text drawn on a slider widget. +//! +//! \param psWidget is a pointer to the slider widget to be modified. +//! \param pcTxt is a pointer to the text to draw onto the slider. +//! +//! This function changes the text that is drawn onto the slider. The string +//! is centered across the slider and straddles the active and background +//! portions of the widget. The display is not updated until the next paint +//! request. +//! +//! \return None. +// +//***************************************************************************** +#define SliderTextSet(psWidget, pcTxt) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + const char *pcT = pcTxt; \ + psW->pcText = pcT; \ + } \ + while(0) + +//***************************************************************************** +// +//! Changes the value range for a slider widget. +//! +//! \param psWidget is a pointer to the slider widget to be modified. +//! \param i32Minimum is the minimum value that the slider will report. +//! \param i32Maximum is the maximum value that the slider will report. +//! +//! This function changes the range of a slider. Slider positions are reported +//! in terms of this range with the current position of the slider on the +//! display being scaled and translated into this range such that the minimum +//! value represents the left position of a horizontal slider or the bottom +//! position of a vertical slider and the maximum value represents the other +//! end of the slider range. Note that this function does not cause the slider +//! to be redrawn. The caller must call WidgetPaint() explicitly after this +//! call to ensure that the widget is redrawn. +//! +//! \return None. +// +//***************************************************************************** +#define SliderRangeSet(psWidget, i32Minimum, i32Maximum) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + psW->i32Min = (i32Minimum); \ + psW->i32Max = (i32Maximum); \ + } \ + while(0) + +//***************************************************************************** +// +//! Changes the minimum value for a slider widget. +//! +//! \param psWidget is a pointer to the slider widget to be modified. +//! \param i32Val is the new value to set for the slider. This is in terms of +//! the value range currently set for the slider. +//! +//! This function changes the value that the slider will display the next time +//! the widget is painted. The caller is responsible for ensuring that the +//! value passed is within the range specified for the target widget. The +//! caller must call WidgetPaint() explicitly after this call to ensure that +//! the widget is redrawn. +//! +//! \return None. +// +//***************************************************************************** +#define SliderValueSet(psWidget, i32Val) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + psW->i32Value = (i32Val); \ + } \ + while(0) + +//***************************************************************************** +// +//! Sets the vertical or horizontal style for a slider widget +//! +//! \param psWidget is a pointer to the slider widget to be modified. +//! \param bVertical is \b true to set the vertical slider style or \b false +//! to set the horizontal slider style. +//! +//! This function allows the vertical or horizontal style to be set when +//! creating slider widgets dynamically. The function will typically be called +//! before the slider is first attached to the active widget tree. Since the +//! vertical or horizontal style is intimately linked with the slider size +//! and position on the display, it seldom makes sense to change this style for +//! a widget which is already on the display. +//! +//! \return None. +// +//***************************************************************************** +#define SliderVerticalSet(psWidget, bVertical) \ + do \ + { \ + tSliderWidget *psW = psWidget; \ + if(bVertical) \ + { \ + psW->ui32Style |= (SL_STYLE_VERTICAL); \ + } \ + else \ + { \ + psW->ui32Style &= ~(SL_STYLE_VERTICAL); \ + } \ + } \ + while(0) + +//***************************************************************************** +// +// Prototypes for the slider widget APIs. +// +//***************************************************************************** +extern int32_t SliderMsgProc(tWidget *psWidget, uint32_t ui32Msg, + uint32_t ui32Param1, uint32_t ui32Param2); +extern void SliderInit(tSliderWidget *psWidget, + const tDisplay *psDisplay, int32_t i32X, int32_t i32Y, + int32_t i32Width, int32_t i32Height); + +//***************************************************************************** +// +// Mark the end of the C bindings section for C++ compilers. +// +//***************************************************************************** +#ifdef __cplusplus +} +#endif + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** + +#endif // __SLIDER_H__ diff --git a/grlib/string.c b/grlib/string.c new file mode 100644 index 0000000..53e3004 --- /dev/null +++ b/grlib/string.c @@ -0,0 +1,2853 @@ +//***************************************************************************** +// +// string.c - Routines for drawing text. +// +// Copyright (c) 2007-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#include +#include +#include "inc/hw_types.h" +#include "driverlib/debug.h" +#include "grlib/grlib.h" + +//***************************************************************************** +// +//! \addtogroup primitives_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +// The character printed by GrStringDraw in place of any character in the +// string which does not appear in the font. When using a font which does not +// include this character, a space is left instead. +// +//***************************************************************************** +#define ABSENT_CHAR_REPLACEMENT '.' + +//***************************************************************************** +// +//! Determines the width of a string. +//! +//! \param pContext is a pointer to the drawing context to use. +//! \param pcString is the string in question. +//! \param i32Length is the length of the string. +//! +//! This function determines the width of a string (or portion of the string) +//! when drawn with a particular font. The \e i32Length parameter allows a +//! portion of the string to be examined without having to insert a NULL +//! character at the stopping point (would not be possible if the string was +//! located in flash); specifying a length of -1 will cause the width of the +//! entire string to be computed. +//! +//! \return Returns the width of the string in pixels. +// +//***************************************************************************** +#ifdef GRLIB_REMOVE_WIDE_FONT_SUPPORT +int32_t +GrStringWidthGet(const tContext *pContext, const char *pcString, + int32_t i32Length) +{ + const uint16_t *pui16Offset; + const uint8_t *pui8Data; + uint8_t ui8First, ui8Last, ui8Absent; + int32_t i32Width; + + // + // Check the arguments. + // + ASSERT(pContext); + ASSERT(pcString); + + // + // This function doesn't support wide character fonts or wrapped fonts. + // + ASSERT(!(pContext->psFont->ui8Format && + (FONT_FMT_WRAPPED | FONT_WIDE_MARKER))); + + // + // Get some pointers to relevant information in the font to make things + // easier, and give the compiler a hint about extraneous loads that it can + // avoid. + // + if(pContext->psFont->ui8Format & FONT_EX_MARKER) + { + tFontEx *psFont; + + psFont = (tFontEx *)(pContext->psFont); + + pui8Data = psFont->pui8Data; + pui16Offset = psFont->pui16Offset; + ui8First = psFont->ui8First; + ui8Last = psFont->ui8Last; + + // + // Does the default absent character replacement exist in the font? + // + if((ABSENT_CHAR_REPLACEMENT >= ui8First) && + (ABSENT_CHAR_REPLACEMENT <= ui8Last)) + { + // + // Yes - use the standard character when an absent character is + // found. + // + ui8Absent = ABSENT_CHAR_REPLACEMENT; + } + else + { + // + // The default absent character is not present in the font so use + // the first character (we only use its width here) instead. + // + ui8Absent = psFont->ui8First; + } + } + else + { + pui8Data = pContext->psFont->pui8Data; + pui16Offset = pContext->psFont->pui16Offset; + ui8First = 32; + ui8Last = 126; + ui8Absent = ABSENT_CHAR_REPLACEMENT; + } + + // + // Loop through the characters in the string. + // + for(i32Width = 0; *pcString && i32Length; pcString++, i32Length--) + { + // + // Get a pointer to the font data for the next character from the + // string. If there is not a glyph for the next character, replace it + // with a ".". + // + if((*pcString >= ui8First) && (*pcString <= ui8Last)) + { + // + // Add the width of this character as drawn with the given font. + // + i32Width += pui8Data[pui16Offset[*pcString - ui8First] + 1]; + } + else + { + // + // This character does not exist in the font so replace it with + // a '.' instead. This matches the approach taken in GrStringDraw + // and ensures that the width returned here represents the + // rendered dimension of the string. + // + i32Width += pui8Data[pui16Offset[ui8Absent - ui8First] + 1]; + } + } + + // + // Return the width of the string. + // + return(i32Width); +} +#else +int32_t +GrStringWidthGet(const tContext *pContext, const char *pcString, + int32_t i32Length) +{ + const uint8_t *pui8Data; + uint8_t ui8Width, ui8Height, ui8Baseline, ui8Format; + uint32_t ui32Count, ui32Char, ui32Skip; + int32_t i32Width; + + // + // Check the arguments. + // + ASSERT(pContext); + ASSERT(pcString); + + // + // Initialize our string length. + // + i32Width = 0; + + // + // Set the maximum number of characters we should render. Note that the + // value -1 is used to indicate that the function should render until it + // hits the end of the string so casting it to a uint32_t here is + // fine since this says keep rendering for 2^32 characters. We are very + // unlikely to ever be passed a string this long. + // + ui32Count = (uint32_t)i32Length; + + // + // Loop through each character in the string. + // + while(ui32Count) + { + // + // Get the next character to render. + // + ui32Char = GrStringNextCharGet(pContext, pcString, ui32Count, + &ui32Skip); + + // + // If we ran out of characters to render, drop out of the loop. + // + if(!ui32Char) + { + break; + } + + // + // Get information on this glyph. + // + pui8Data = GrFontGlyphDataGet(pContext->psFont, ui32Char, &ui8Width); + + // + // Does the glyph exist? + // + if(!pui8Data) + { + // + // No - get the absent character replacement information. + // + pui8Data = GrFontGlyphDataGet(pContext->psFont, + ABSENT_CHAR_REPLACEMENT, &ui8Width); + + // + // Does this character exist in the font? + // + if(!pui8Data) + { + // + // No - look for the ASCII/Unicode space character. + // + pui8Data = GrFontGlyphDataGet(pContext->psFont, 0x20, + &ui8Width); + + // + // Does this exist? + // + if(!pui8Data) + { + // + // No - give up and just pad with a character cell of space. + // + GrFontInfoGet(pContext->psFont, &ui8Format, &ui8Width, + &ui8Height, &ui8Baseline); + } + } + } + + // + // Increment our string length. + // + i32Width += (int32_t)ui8Width; + + // + // Move on to the next character. + // + pcString += ui32Skip; + ui32Count -= ui32Skip; + } + + // + // Return the width of the string. + // + return(i32Width); +} +#endif + +//***************************************************************************** +// +//! Draws a string. +//! +//! \param pContext is a pointer to the drawing context to use. +//! \param pcString is a pointer to the string to be drawn. +//! \param i32Length is the number of characters from the string that should be +//! drawn on the screen. +//! \param i32X is the X coordinate of the upper left corner of the string +//! position on the screen. +//! \param i32Y is the Y coordinate of the upper left corner of the string +//! position on the screen. +//! \param bOpaque is true of the background of each character should be drawn +//! and false if it should not (leaving the background as is). +//! +//! This function draws a string of text on the screen. The \e i32Length +//! parameter allows a portion of the string to be examined without having to +//! insert a NULL character at the stopping point (which would not be possible +//! if the string was located in flash); specifying a length of -1 will cause +//! the entire string to be rendered (subject to clipping). +//! +//! \return None. +// +//***************************************************************************** +#ifdef GRLIB_REMOVE_WIDE_FONT_SUPPORT +// +// This version of GrStringDraw supports the original tFont and tFontEx ASCII +// and ISO8859 (8 bit) fonts only. +// +void +GrStringDraw(const tContext *pContext, const char *pcString, int32_t i32Length, + int32_t i32X, int32_t i32Y, uint32_t bOpaque) +{ + int32_t i32Idx, i32X0, i32Y0, i32Count, i32Off, i32On, i32Bit; + const uint8_t *pui8Data; + const uint8_t *pui8Glyphs; + const uint16_t *pui16Offset; + uint8_t ui8First, ui8Last, ui8Absent; + tContext i16Con; + + // + // Check the arguments. + // + ASSERT(pContext); + ASSERT(pcString); + + // + // This function doesn't support wide character fonts or wrapped fonts. + // + ASSERT(!(pContext->psFont->ui8Format && + (FONT_FMT_WRAPPED | FONT_WIDE_MARKER))); + + // + // Copy the drawing context into a local structure that can be modified. + // + i16Con = *pContext; + + // + // Extract various parameters from the font depending upon whether it's + // in the tFont or tFontEx format. + // + if(pContext->psFont->ui8Format & FONT_EX_MARKER) + { + tFontEx *psFont; + + psFont = (tFontEx *)(pContext->psFont); + + pui8Glyphs = psFont->pui8Data; + pui16Offset = psFont->pui16Offset; + ui8First = psFont->ui8First; + ui8Last = psFont->ui8Last; + + // + // Does the default absent character replacement exist in the font? + // + if((ABSENT_CHAR_REPLACEMENT >= ui8First) && + (ABSENT_CHAR_REPLACEMENT <= ui8Last)) + { + // + // Yes - use the standard character when an absent character is + // found. + // + ui8Absent = ABSENT_CHAR_REPLACEMENT; + } + else + { + // + // The default absent character is not present in the font so use + // the first character instead. + // + ui8Absent = psFont->ui8First; + } + } + else + { + pui8Glyphs = pContext->psFont->pui8Data; + pui16Offset = pContext->psFont->pui16Offset; + ui8First = 32; + ui8Last = 126; + ui8Absent = ABSENT_CHAR_REPLACEMENT; + } + + // + // Loop through the characters in the string. + // + while(*pcString && i32Length--) + { + // + // Stop drawing the string if the right edge of the clipping region has + // been exceeded. + // + if(i32X > i16Con.sClipRegion.i16XMax) + { + break; + } + + // + // Get a pointer to the font data for the next character from the + // string. If there is not a glyph for the next character, replace it + // with the "absent" character (usually '.'). + // + if((*pcString >= ui8First) && (*pcString <= ui8Last)) + { + pui8Data = (pui8Glyphs + pui16Offset[*pcString - ui8First]); + } + else + { + pui8Data = (pui8Glyphs + pui16Offset[ui8Absent - ui8First]); + } + pcString++; + + // + // See if the entire character is to the left of the clipping region. + // + if((i32X + pui8Data[1]) < i16Con.sClipRegion.i16XMin) + { + // + // Increment the X coordinate by the width of the character. + // + i32X += pui8Data[1]; + + // + // Go to the next character in the string. + // + continue; + } + + // + // Loop through the bytes in the encoded data for this glyph. + // + for(i32Idx = 2, i32X0 = 0, i32Bit = 0, i32Y0 = 0; + i32Idx < pui8Data[0]; ) + { + // + // See if the bottom of the clipping region has been exceeded. + // + if((i32Y + i32Y0) > i16Con.sClipRegion.i16YMax) + { + // + // Stop drawing this character. + // + break; + } + + // + // See if the font is uncompressed. + // + if((i16Con.psFont->ui8Format & ~FONT_EX_MARKER) == + FONT_FMT_UNCOMPRESSED) + { + // + // Count the number of off pixels from this position in the + // glyph image. + // + for(i32Off = 0; i32Idx < pui8Data[0]; ) + { + // + // Get the number of zero pixels at this position. + // + i32Count = NumLeadingZeros(pui8Data[i32Idx] << + (24 + i32Bit)); + + // + // If there were more than 8, then it is a "false" result + // since it counted beyond the end of the current byte. + // Therefore, simply limit it to the number of pixels + // remaining in this byte. + // + if(i32Count > 8) + { + i32Count = 8 - i32Bit; + } + + // + // Increment the number of off pixels. + // + i32Off += i32Count; + + // + // Increment the bit position within the byte. + // + i32Bit += i32Count; + + // + // See if the end of the byte has been reached. + // + if(i32Bit == 8) + { + // + // Advance to the next byte and continue counting off + // pixels. + // + i32Bit = 0; + i32Idx++; + } + else + { + // + // Since the end of the byte was not reached, there + // must be an on pixel. Therefore, stop counting off + // pixels. + // + break; + } + } + + // + // Count the number of on pixels from this position in the + // glyph image. + // + for(i32On = 0; i32Idx < pui8Data[0]; ) + { + // + // Get the number of one pixels at this location (by + // inverting the data and counting the number of zeros). + // + i32Count = NumLeadingZeros(~(pui8Data[i32Idx] << + (24 + i32Bit))); + + // + // If there were more than 8, then it is a "false" result + // since it counted beyond the end of the current byte. + // Therefore, simply limit it to the number of pixels + // remaining in this byte. + // + if(i32Count > 8) + { + i32Count = 8 - i32Bit; + } + + // + // Increment the number of on pixels. + // + i32On += i32Count; + + // + // Increment the bit position within the byte. + // + i32Bit += i32Count; + + // + // See if the end of the byte has been reached. + // + if(i32Bit == 8) + { + // + // Advance to the next byte and continue counting on + // pixels. + // + i32Bit = 0; + i32Idx++; + } + else + { + // + // Since the end of the byte was not reached, there + // must be an off pixel. Therefore, stop counting on + // pixels. + // + break; + } + } + } + + // + // Otherwise, the font is compressed with a pixel RLE scheme. + // + else + { + // + // See if this is a byte that encodes some on and off pixels. + // + if(pui8Data[i32Idx]) + { + // + // Extract the number of off pixels. + // + i32Off = (pui8Data[i32Idx] >> 4) & 15; + + // + // Extract the number of on pixels. + // + i32On = pui8Data[i32Idx] & 15; + + // + // Skip past this encoded byte. + // + i32Idx++; + } + + // + // Otherwise, see if this is a repeated on pixel byte. + // + else if(pui8Data[i32Idx + 1] & 0x80) + { + // + // There are no off pixels in this encoding. + // + i32Off = 0; + + // + // Extract the number of on pixels. + // + i32On = (pui8Data[i32Idx + 1] & 0x7f) * 8; + + // + // Skip past these two encoded bytes. + // + i32Idx += 2; + } + + // + // Otherwise, this is a repeated off pixel byte. + // + else + { + // + // Extract the number of off pixels. + // + i32Off = pui8Data[i32Idx + 1] * 8; + + // + // There are no on pixels in this encoding. + // + i32On = 0; + + // + // Skip past these two encoded bytes. + // + i32Idx += 2; + } + } + + // + // Loop while there are any off pixels. + // + while(i32Off) + { + // + // See if the bottom of the clipping region has been exceeded. + // + if((i32Y + i32Y0) > i16Con.sClipRegion.i16YMax) + { + // + // Ignore the remainder of the on pixels. + // + break; + } + + // + // See if there is more than one on pixel that will fit onto + // the current row. + // + if((i32Off > 1) && ((i32X0 + 1) < pui8Data[1])) + { + // + // Determine the number of on pixels that will fit on this + // row. + // + i32Count = (((i32X0 + i32Off) > pui8Data[1]) ? + pui8Data[1] - i32X0 : i32Off); + + // + // If this row is within the clipping region, draw a + // horizontal line that corresponds to the sequence of on + // pixels. + // + if(((i32Y + i32Y0) >= i16Con.sClipRegion.i16YMin) && + bOpaque) + { + i16Con.ui32Foreground = pContext->ui32Background; + GrLineDrawH(&i16Con, i32X + i32X0, i32X + i32X0 + + i32Count - 1, i32Y + i32Y0); + } + + // + // Decrement the count of on pixels by the number on this + // row. + // + i32Off -= i32Count; + + // + // Increment the X offset by the number of on pixels. + // + i32X0 += i32Count; + } + + // + // Otherwise, there is only a single on pixel that can be + // drawn. + // + else + { + // + // If this pixel is within the clipping region, then draw + // it. + // + if(((i32X + i32X0) >= i16Con.sClipRegion.i16XMin) && + ((i32X + i32X0) <= i16Con.sClipRegion.i16XMax) && + ((i32Y + i32Y0) >= i16Con.sClipRegion.i16YMin) && + bOpaque) + { + DpyPixelDraw(pContext->psDisplay, i32X + i32X0, + i32Y + i32Y0, pContext->ui32Background); + } + + // + // Decrement the count of on pixels. + // + i32Off--; + + // + // Increment the X offset. + // + i32X0++; + } + + // + // See if the X offset has reached the right side of the + // character glyph. + // + if(i32X0 == pui8Data[1]) + { + // + // Increment the Y offset. + // + i32Y0++; + + // + // Reset the X offset to the left side of the character + // glyph. + // + i32X0 = 0; + } + } + + // + // Loop while there are any on pixels. + // + while(i32On) + { + // + // See if the bottom of the clipping region has been exceeded. + // + if((i32Y + i32Y0) > i16Con.sClipRegion.i16YMax) + { + // + // Ignore the remainder of the on pixels. + // + break; + } + + // + // See if there is more than one on pixel that will fit onto + // the current row. + // + if((i32On > 1) && ((i32X0 + 1) < pui8Data[1])) + { + // + // Determine the number of on pixels that will fit on this + // row. + // + i32Count = (((i32X0 + i32On) > pui8Data[1]) ? + pui8Data[1] - i32X0 : i32On); + + // + // If this row is within the clipping region, draw a + // horizontal line that corresponds to the sequence of on + // pixels. + // + if((i32Y + i32Y0) >= i16Con.sClipRegion.i16YMin) + { + i16Con.ui32Foreground = pContext->ui32Foreground; + GrLineDrawH(&i16Con, i32X + i32X0, i32X + i32X0 + + i32Count - 1, i32Y + i32Y0); + } + + // + // Decrement the count of on pixels by the number on this + // row. + // + i32On -= i32Count; + + // + // Increment the X offset by the number of on pixels. + // + i32X0 += i32Count; + } + + // + // Otherwise, there is only a single on pixel that can be + // drawn. + // + else + { + // + // If this pixel is within the clipping region, then draw + // it. + // + if(((i32X + i32X0) >= i16Con.sClipRegion.i16XMin) && + ((i32X + i32X0) <= i16Con.sClipRegion.i16XMax) && + ((i32Y + i32Y0) >= i16Con.sClipRegion.i16YMin)) + { + DpyPixelDraw(pContext->psDisplay, i32X + i32X0, + i32Y + i32Y0, pContext->ui32Foreground); + } + + // + // Decrement the count of on pixels. + // + i32On--; + + // + // Increment the X offset. + // + i32X0++; + } + + // + // See if the X offset has reached the right side of the + // character glyph. + // + if(i32X0 == pui8Data[1]) + { + // + // Increment the Y offset. + // + i32Y0++; + + // + // Reset the X offset to the left side of the character + // glyph. + // + i32X0 = 0; + } + } + } + + // + // Increment the X coordinate by the width of the character. + // + i32X += pui8Data[1]; + } +} +#else +// +// This version of GrStringDraw supports the original tFont and tFontEx ASCII +// and ISO8859 (8 bit) fonts along with new wide character set, relocatable +// fonts. Support for source and font codepages is also included. +// +void +GrStringDraw(const tContext *pContext, const char *pcString, int32_t i32Length, + int32_t i32X, int32_t i32Y, uint32_t bOpaque) +{ + ASSERT(pContext); + ASSERT(pContext->pfnStringRenderer); + + // + // Call the currently registered string rendering function. + // + pContext->pfnStringRenderer(pContext, pcString, i32Length, i32X, i32Y, + bOpaque); +} + +//***************************************************************************** +// +//! The default text string rendering function. +//! +//! \param pContext is a pointer to the drawing context to use. +//! \param pcString is a pointer to the string to be drawn. +//! \param i32Length is the number of characters from the string that should be +//! drawn on the screen. +//! \param i32X is the X coordinate of the upper left corner of the string +//! position on the screen. +//! \param i32Y is the Y coordinate of the upper left corner of the string +//! position on the screen. +//! \param bOpaque is true of the background of each character should be drawn +//! and false if it should not (leaving the background as is). +//! +//! This function acts as the default string rendering function called by +//! GrStringDraw() if no language-specific renderer is registered. It draws a +//! string of text on the screen using the text orientation currently set in +//! the graphics context. The \e i32Length parameter allows a portion of the +//! string to be examined without having to insert a NULL character at the +//! stopping point (which would not be possible if the string was located in +//! flash); specifying a length of -1 will cause the entire string to be +//! rendered (subject to clipping). +//! +//! Applications are not expected to call this function directly but should +//! call GrStringDraw() instead. This function is provided as an aid to +//! language-specific renders which may call it to render parts of a string +//! at particular positions after dealing with any language-specific layout +//! issues such as, for example, inserting left-to-right numbers within a +//! right-to-left Arabic string. +//! +//! \return None. +// +//***************************************************************************** +void +GrDefaultStringRenderer(const tContext *pContext, const char *pcString, + int32_t i32Length, int32_t i32X, int32_t i32Y, + bool bOpaque) +{ + uint8_t ui8Format, ui8Width, ui8MaxWidth, ui8Height, ui8Baseline; + uint32_t ui32Char, ui32Count, ui32Skip; + const uint8_t *pui8Data; + + // + // Check the arguments. + // + ASSERT(pContext); + ASSERT(pcString); + + // + // Get information on the font we are rendering the text in. + // + GrFontInfoGet(pContext->psFont, &ui8Format, &ui8MaxWidth, &ui8Height, + &ui8Baseline); + + // + // If the string is completely outside the clipping region, don't even + // start rendering it. + // + if((i32Y > pContext->sClipRegion.i16YMax) || + ((i32Y + ui8Height) < pContext->sClipRegion.i16YMin)) + { + return; + } + + // + // Set the maximum number of characters we should render. Note that the + // value -1 is used to indicate that the function should render until it + // hits the end of the string so casting it to an uint32_t here is + // fine since this says keep rendering for 2^32 characters. We are very + // unlikely to ever be passed a string this long. + // + ui32Count = (uint32_t)i32Length; + + // + // Loop through each character in the string. + // + while(ui32Count) + { + // + // Get the next character to render. + // + ui32Char = GrStringNextCharGet(pContext, pcString, ui32Count, + &ui32Skip); + + // + // If we ran out of characters to render, return immediately. + // + if(!ui32Char) + { + return; + } + + // + // If we are already outside the clipping region, exit early. + // + if(i32X >= pContext->sClipRegion.i16XMax) + { + return; + } + + // + // Get the glyph data pointer for this character. + // + pui8Data = GrFontGlyphDataGet(pContext->psFont, ui32Char, &ui8Width); + + // + // Does this glyph exist in the font? + // + if(!pui8Data) + { + // + // Look for the character we are supposed to use in place of absent + // glyphs. + // + pui8Data = GrFontGlyphDataGet(pContext->psFont, + ABSENT_CHAR_REPLACEMENT, &ui8Width); + + // + // Does this glyph exist in the font? + // + if(!pui8Data) + { + // + // Last chance - look for the space character. + // + pui8Data = GrFontGlyphDataGet(pContext->psFont, ' ', + &ui8Width); + } + } + + // + // Did we find something to render? + // + if(pui8Data) + { + GrFontGlyphRender(pContext, pui8Data, i32X, i32Y, + (ui8Format & FONT_FMT_PIXEL_RLE) ? true : false, + bOpaque); + i32X += ui8Width; + } + else + { + // + // Leave a space in place of the undefined glyph. + // + i32X += ui8MaxWidth; + } + + // + // Move on to the next character. + // + pcString += ui32Skip; + ui32Count -= ui32Skip; + } +} + +//***************************************************************************** +// +//! Returns the codepoint of the first character in a string. +//! +//! \param pContext points to the graphics context in use. +//! \param pcString points to the first byte of the string from which the +//! next character is to be parsed. +//! \param ui32Count provides the number of bytes in the pcString buffer. +//! \param pui32Skip points to storage which will be written with the number of +//! bytes that must be skipped in the string buffer to move past the +//! current character. +//! +//! This function is used to walk through a string extracting one character at +//! a time. The input string is assumed to be encoded using the currently- +//! selected string codepage (as set via a call to the GrStringCodepageSet() +//! function). The value returned is the codepoint of the first character in +//! the string as mapped into the current font's codepage. This may be passed +//! to the GrFontGlyphDataGet() function to retrieve the glyph data for the +//! character. +//! +//! Since variable length encoding schemes such as UTF-8 are supported, this +//! function also returns information on the size of the character that has +//! been parsed, allowing the caller to increment the string pointer by the +//! relevant amount before querying the next character in the string. +//! +//! \return Returns the font codepoint representing the first character in the +//! string or 0 if no valid character was found. +//! +//***************************************************************************** +uint32_t +GrStringNextCharGet(const tContext *pContext, const char *pcString, + uint32_t ui32Count, uint32_t *pui32Skip) +{ + ASSERT(pContext); + ASSERT(pcString); + ASSERT(pui32Skip); + + // + // If the string is empty, return immediately. + // + if(!ui32Count) + { + return(0); + } + + // + // Has a codepage mapping table been registered for this context? + // + if(pContext->pCodePointMapTable) + { + // + // Yes - use the relevant mapping function + // + return(pContext->pCodePointMapTable[pContext->ui8CodePointMap]. + pfnMapChar(pcString, ui32Count, pui32Skip)); + } + else + { + // + // No codepage mapping table has been registered so fall back on the + // assumption that we are using ASCII or ISO8859-1 for both the + // string and font codepages (i.e. the legacy case). + // + *pui32Skip = 1; + return((uint32_t)*pcString); + } +} + +//***************************************************************************** +// +//! Renders a single character glyph on the display at a given position. +//! +//! \param pContext points to the graphics context in use. +//! \param pui8Data points to the first byte of data for the glyph to be +//! rendered. +//! \param i32X is the X coordinate of the top left pixel of the glyph. +//! \param i32Y is the Y coordinate of the top left pixel of the glyph. +//! \param bCompressed is \b true if the data pointed to by \b pui8Data is in +//! compressed format or \b false if uncompressed. +//! \param bOpaque is \b true of background pixels are to be written or \b +//! false if only foreground pixels are drawn. +//! +//! This function is included as an aid to language-specific string rendering +//! functions. Applications are expected to render strings and characters +//! using calls to GrStringDraw or GrStringDrawCentered and should not call +//! this function directly. +//! +//! A string rendering function may call this low level API to place a single +//! character glyph on the display at a particular position. The rendered +//! glyph is subject to the clipping rectangle currently set in the passed +//! graphics context. Rendering colors are also taken from the context +//! structure. Glyph data pointed to by \b pui8Data should be retrieved using +//! a call to GrFontGlyphDataGet(). +//! +//! \return None. +// +//***************************************************************************** +void +GrFontGlyphRender(const tContext *pContext, const uint8_t *pui8Data, + int32_t i32X, int32_t i32Y, bool bCompressed, + bool bOpaque) +{ + int32_t i32Idx, i32X0, i32Y0, i32Count, i32Off, i32On, i32Bit; + int32_t i32ClipX1, i32ClipX2; + + // + // Check the arguments. + // + ASSERT(pContext); + ASSERT(pui8Data); + + // + // Stop drawing the string if the right edge of the clipping region has + // been exceeded. + // + if(i32X > pContext->sClipRegion.i16XMax) + { + return; + } + + // + // See if the entire character is to the left of the clipping region. + // + if((i32X + pui8Data[1]) < pContext->sClipRegion.i16XMin) + { + return; + } + + // + // Loop through the bytes in the encoded data for this glyph. + // + for(i32Idx = 2, i32X0 = 0, i32Bit = 0, i32Y0 = 0; i32Idx < pui8Data[0]; ) + { + // + // See if the bottom of the clipping region has been exceeded. + // + if((i32Y + i32Y0) > pContext->sClipRegion.i16YMax) + { + // + // Stop drawing this character. + // + break; + } + + // + // See if the font is uncompressed. + // + if(!bCompressed) + { + // + // Count the number of off pixels from this position in the + // glyph image. + // + for(i32Off = 0; i32Idx < pui8Data[0]; ) + { + // + // Get the number of zero pixels at this position. + // + i32Count = NumLeadingZeros(pui8Data[i32Idx] << (24 + i32Bit)); + + // + // If there were more than 8, then it is a "false" result + // since it counted beyond the end of the current byte. + // Therefore, simply limit it to the number of pixels + // remaining in this byte. + // + if(i32Count > 8) + { + i32Count = 8 - i32Bit; + } + + // + // Increment the number of off pixels. + // + i32Off += i32Count; + + // + // Increment the bit position within the byte. + // + i32Bit += i32Count; + + // + // See if the end of the byte has been reached. + // + if(i32Bit == 8) + { + // + // Advance to the next byte and continue counting off + // pixels. + // + i32Bit = 0; + i32Idx++; + } + else + { + // + // Since the end of the byte was not reached, there + // must be an on pixel. Therefore, stop counting off + // pixels. + // + break; + } + } + + // + // Count the number of on pixels from this position in the + // glyph image. + // + for(i32On = 0; i32Idx < pui8Data[0]; ) + { + // + // Get the number of one pixels at this location (by + // inverting the data and counting the number of zeros). + // + i32Count = NumLeadingZeros(~(pui8Data[i32Idx] << + (24 + i32Bit))); + + // + // If there were more than 8, then it is a "false" result + // since it counted beyond the end of the current byte. + // Therefore, simply limit it to the number of pixels + // remaining in this byte. + // + if(i32Count > 8) + { + i32Count = 8 - i32Bit; + } + + // + // Increment the number of on pixels. + // + i32On += i32Count; + + // + // Increment the bit position within the byte. + // + i32Bit += i32Count; + + // + // See if the end of the byte has been reached. + // + if(i32Bit == 8) + { + // + // Advance to the next byte and continue counting on + // pixels. + // + i32Bit = 0; + i32Idx++; + } + else + { + // + // Since the end of the byte was not reached, there + // must be an off pixel. Therefore, stop counting on + // pixels. + // + break; + } + } + } + + // + // Otherwise, the font is compressed with a pixel RLE scheme. + // + else + { + // + // See if this is a byte that encodes some on and off pixels. + // + if(pui8Data[i32Idx]) + { + // + // Extract the number of off pixels. + // + i32Off = (pui8Data[i32Idx] >> 4) & 15; + + // + // Extract the number of on pixels. + // + i32On = pui8Data[i32Idx] & 15; + + // + // Skip past this encoded byte. + // + i32Idx++; + } + + // + // Otherwise, see if this is a repeated on pixel byte. + // + else if(pui8Data[i32Idx + 1] & 0x80) + { + // + // There are no off pixels in this encoding. + // + i32Off = 0; + + // + // Extract the number of on pixels. + // + i32On = (pui8Data[i32Idx + 1] & 0x7f) * 8; + + // + // Skip past these two encoded bytes. + // + i32Idx += 2; + } + + // + // Otherwise, this is a repeated off pixel byte. + // + else + { + // + // Extract the number of off pixels. + // + i32Off = pui8Data[i32Idx + 1] * 8; + + // + // There are no on pixels in this encoding. + // + i32On = 0; + + // + // Skip past these two encoded bytes. + // + i32Idx += 2; + } + } + + // + // Loop while there are any off pixels. + // + while(i32Off) + { + // + // See if the bottom of the clipping region has been exceeded. + // + if((i32Y + i32Y0) > pContext->sClipRegion.i16YMax) + { + // + // Ignore the remainder of the on pixels. + // + break; + } + + // + // See if there is more than one on pixel that will fit onto + // the current row. + // + if((i32Off > 1) && ((i32X0 + 1) < pui8Data[1])) + { + // + // Determine the number of on pixels that will fit on this + // row. + // + i32Count = (((i32X0 + i32Off) > pui8Data[1]) ? + pui8Data[1] - i32X0 : i32Off); + + // + // If this row is within the clipping region, draw a + // horizontal line that corresponds to the sequence of on + // pixels. + // + if(((i32Y + i32Y0) >= pContext->sClipRegion.i16YMin) && + bOpaque) + { + if((i32X + i32X0) < pContext->sClipRegion.i16XMin) + { + i32ClipX1 = pContext->sClipRegion.i16XMin; + } + else + { + i32ClipX1 = i32X + i32X0; + } + + if((i32X + i32X0 + i32Count - 1) > + pContext->sClipRegion.i16XMax) + { + i32ClipX2 = pContext->sClipRegion.i16XMax; + } + else + { + i32ClipX2 = i32X + i32X0 + i32Count - 1; + } + + DpyLineDrawH(pContext->psDisplay, i32ClipX1, i32ClipX2, + i32Y + i32Y0, pContext->ui32Background); + } + + // + // Decrement the count of on pixels by the number on this + // row. + // + i32Off -= i32Count; + + // + // Increment the X offset by the number of on pixels. + // + i32X0 += i32Count; + } + + // + // Otherwise, there is only a single on pixel that can be + // drawn. + // + else + { + // + // If this pixel is within the clipping region, then draw + // it. + // + if(((i32X + i32X0) >= pContext->sClipRegion.i16XMin) && + ((i32X + i32X0) <= pContext->sClipRegion.i16XMax) && + ((i32Y + i32Y0) >= pContext->sClipRegion.i16YMin) && + bOpaque) + { + DpyPixelDraw(pContext->psDisplay, i32X + i32X0, + i32Y + i32Y0, pContext->ui32Background); + } + + // + // Decrement the count of on pixels. + // + i32Off--; + + // + // Increment the X offset. + // + i32X0++; + } + + // + // See if the X offset has reached the right side of the + // character glyph. + // + if(i32X0 == pui8Data[1]) + { + // + // Increment the Y offset. + // + i32Y0++; + + // + // Reset the X offset to the left side of the character + // glyph. + // + i32X0 = 0; + } + } + + // + // Loop while there are any on pixels. + // + while(i32On) + { + // + // See if the bottom of the clipping region has been exceeded. + // + if((i32Y + i32Y0) > pContext->sClipRegion.i16YMax) + { + // + // Ignore the remainder of the on pixels. + // + break; + } + + // + // See if there is more than one on pixel that will fit onto + // the current row. + // + if((i32On > 1) && ((i32X0 + 1) < pui8Data[1])) + { + // + // Determine the number of on pixels that will fit on this + // row. + // + i32Count = (((i32X0 + i32On) > pui8Data[1]) ? + pui8Data[1] - i32X0 : i32On); + + // + // If this row is within the clipping region, draw a + // horizontal line that corresponds to the sequence of on + // pixels. + // + if((i32Y + i32Y0) >= pContext->sClipRegion.i16YMin) + { + if((i32X + i32X0) >= pContext->sClipRegion.i16XMin) + { + i32ClipX1 = i32X + i32X0; + } + else + { + i32ClipX1 = pContext->sClipRegion.i16XMin; + } + + if((i32X + i32X0 + i32Count - 1) > + pContext->sClipRegion.i16XMax) + { + i32ClipX2 = pContext->sClipRegion.i16XMax; + } + else + { + i32ClipX2 = i32X + i32X0 + i32Count - 1; + } + + DpyLineDrawH(pContext->psDisplay, i32ClipX1, i32ClipX2, + i32Y + i32Y0, pContext->ui32Foreground); + } + + // + // Decrement the count of on pixels by the number on this + // row. + // + i32On -= i32Count; + + // + // Increment the X offset by the number of on pixels. + // + i32X0 += i32Count; + } + + // + // Otherwise, there is only a single on pixel that can be + // drawn. + // + else + { + // + // If this pixel is within the clipping region, then draw + // it. + // + if(((i32X + i32X0) >= pContext->sClipRegion.i16XMin) && + ((i32X + i32X0) <= pContext->sClipRegion.i16XMax) && + ((i32Y + i32Y0) >= pContext->sClipRegion.i16YMin)) + { + DpyPixelDraw(pContext->psDisplay, i32X + i32X0, + i32Y + i32Y0, pContext->ui32Foreground); + } + + // + // Decrement the count of on pixels. + // + i32On--; + + // + // Increment the X offset. + // + i32X0++; + } + + // + // See if the X offset has reached the right side of the + // character glyph. + // + if(i32X0 == pui8Data[1]) + { + // + // Increment the Y offset. + // + i32Y0++; + + // + // Reset the X offset to the left side of the character + // glyph. + // + i32X0 = 0; + } + } + } +} + +//***************************************************************************** +// +//! Retrieves header information from a font. +//! +//! \param psFont points to the font whose information is to be queried. +//! \param pui8Format points to storage which will be written with the font +//! format. +//! \param pui8MaxWidth points to storage which will be written with the +//! maximum character width for the font in pixels. +//! \param pui8Height points to storage which will be written with the height +//! of the font character cell in pixels. +//! \param pui8Baseline points to storage which will be written with the font +//! baseline offset in pixels. +//! +//! This function may be used to retrieve information about a given font. The +//! \e psFont parameter may point to any supported font format including wrapped +//! fonts described using a \e tFontWrapper structure (with the pointer cast +//! to a tFont pointer). +//! +//! \return None. +// +//***************************************************************************** +void +GrFontInfoGet(const tFont *psFont, uint8_t *pui8Format, uint8_t *pui8MaxWidth, + uint8_t *pui8Height, uint8_t *pui8Baseline) +{ + // + // Parameter sanity checks. + // + ASSERT(psFont); + ASSERT(pui8Format); + ASSERT(pui8MaxWidth); + ASSERT(pui8Height); + ASSERT(pui8Baseline); + + // + // Is this a wrapped font? + // + if(psFont->ui8Format & FONT_FMT_WRAPPED) + { + tFontWrapper *psFontWrapper; + + // + // Yes - get a pointer to the relevant header type and call the + // access function to retrieve the font information. + // + psFontWrapper = (tFontWrapper *)psFont; + psFontWrapper->pFuncs->pfnFontInfoGet(psFontWrapper->pui8FontId, + pui8Format, pui8MaxWidth, + pui8Height, pui8Baseline); + } + else + { + // + // This is not a wrapped font so we can read the information directly + // from the font structure passed. + // + *pui8Format = psFont->ui8Format; + *pui8MaxWidth = psFont->ui8MaxWidth; + *pui8Height = psFont->ui8Height; + *pui8Baseline = psFont->ui8Baseline; + } +} + +//***************************************************************************** +// +//! Gets the baseline of a font. +//! +//! \param psFont is a pointer to the font to query. +//! +//! This function determines the baseline position of a font. The baseline is +//! the offset between the top of the font and the bottom of the capital +//! letters. The only font data that exists below the baseline are the +//! descenders on some lower-case letters (such as ``y''). +//! +//! \return Returns the baseline of the font, in pixels. +// +//***************************************************************************** +uint32_t +GrFontBaselineGet(const tFont *psFont) +{ + uint8_t ui8Format, ui8Width, ui8Height, ui8Baseline; + + ASSERT(psFont); + + if(psFont->ui8Format != FONT_FMT_WRAPPED) + { + return((uint32_t)(psFont->ui8Baseline)); + } + else + { + tFontWrapper *pWrap; + + pWrap = (tFontWrapper *)psFont; + pWrap->pFuncs->pfnFontInfoGet(pWrap->pui8FontId, &ui8Format, &ui8Width, + &ui8Height, &ui8Baseline); + return((uint32_t)ui8Baseline); + } +} + +//***************************************************************************** +// +//! Gets the height of a font. +//! +//! \param psFont is a pointer to the font to query. +//! +//! This function determines the height of a font. The height is the offset +//! between the top of the font and the bottom of the font, including any +//! ascenders and descenders. +//! +//! \return Returns the height of the font, in pixels. +// +//***************************************************************************** +uint32_t +GrFontHeightGet(const tFont *psFont) +{ + uint8_t ui8Format, ui8Width, ui8Height, ui8Baseline; + + ASSERT(psFont); + + if(psFont->ui8Format != FONT_FMT_WRAPPED) + { + return(psFont->ui8Height); + } + else + { + tFontWrapper *pWrap; + + pWrap = (tFontWrapper *)psFont; + pWrap->pFuncs->pfnFontInfoGet(pWrap->pui8FontId, &ui8Format, &ui8Width, + &ui8Height, &ui8Baseline); + return((uint32_t)ui8Height); + } +} + +//***************************************************************************** +// +//! Gets the maximum width of a font. +//! +//! \param psFont is a pointer to the font to query. +//! +//! This function determines the maximum width of a font. The maximum width is +//! the width of the widest individual character in the font. +//! +//! \return Returns the maximum width of the font, in pixels. +// +//***************************************************************************** +uint32_t +GrFontMaxWidthGet(const tFont *psFont) +{ + uint8_t ui8Format, ui8Width, ui8Height, ui8Baseline; + + ASSERT(psFont); + + if(psFont->ui8Format != FONT_FMT_WRAPPED) + { + return(psFont->ui8MaxWidth); + } + else + { + tFontWrapper *pWrap; + + pWrap = (tFontWrapper *)psFont; + pWrap->pFuncs->pfnFontInfoGet(pWrap->pui8FontId, &ui8Format, &ui8Width, + &ui8Height, &ui8Baseline); + return((uint32_t)ui8Width); + } +} + +//***************************************************************************** +// +// Retrieves a pointer to the data for a specific glyph in a tFont or tFontEx +// font. +// +// \param psFont points to the font whose glyph is to be queried. +// \param ui32CodePoint idenfities the specific glyph whose data is being +// queried. +// \param pui8Width points to storage which will be written with the +// width of the requested glyph in pixels. +// +// This function may be used to retrieve the pixel data for a particular glyph +// in a font described using a tFont or tFontEx type. +// +// \return Returns a pointer to the data for the requested glyph or NULL if +// the glyph does not exist in the font. +// +//***************************************************************************** +static const uint8_t * +FontGlyphDataGet(const tFont *psFont, uint32_t ui32CodePoint, + uint8_t *pui8Width) +{ + const uint8_t *pui8Glyphs; + const uint16_t *pui16Offset; + uint8_t ui8First, ui8Last; + const tFontEx *psFontEx; + const uint8_t *pui8Data; + + // + // Extract various parameters from the font depending upon whether it's + // in the tFont or tFontEx format. + // + if(psFont->ui8Format & FONT_EX_MARKER) + { + psFontEx = (const tFontEx *)psFont; + + pui8Glyphs = psFontEx->pui8Data; + pui16Offset = psFontEx->pui16Offset; + ui8First = psFontEx->ui8First; + ui8Last = psFontEx->ui8Last; + } + else + { + pui8Glyphs = psFont->pui8Data; + pui16Offset = psFont->pui16Offset; + ui8First = 32; + ui8Last = 126; + } + + // + // Does the codepoint passed exist in the font? + // + if((ui32CodePoint >= ui8First) && (ui32CodePoint <= ui8Last)) + { + // + // Yes - return a pointer to the glyph data for the character. + // + pui8Data = pui8Glyphs + pui16Offset[ui32CodePoint - ui8First]; + *pui8Width = pui8Data[1]; + return(pui8Data); + } + else + { + // + // No - the glyph doesn't exist so return NULL to indicate this. + // + return(0); + } +} + +//***************************************************************************** +// +// Retrieves a pointer to the data for a specific glyph in a tFontWide font. +// +// \param psFont points to the font whose glyph is to be queried. +// \param ui32CodePoint idenfities the specific glyph whose data is being +// queried. +// \param pui8Width points to storage which will be written with the +// width of the requested glyph in pixels. +// +// This function may be used to retrieve the pixel data for a particular glyph +// in a font described using a tFontWide type. +// +// \return Returns a pointer to the data for the requested glyph or NULL if +// the glyph does not exist in the font. +// +//***************************************************************************** +static const uint8_t * +FontWideGlyphDataGet(const tFontWide *psFont, uint32_t ui32CodePoint, + uint8_t *pui8Width) +{ + const uint8_t *pui8Data; + tFontBlock *pBlock; + uint32_t *pui32OffsetTable; + uint32_t ui32Loop; + uint32_t ui32Offset; + + // + // Get a pointer to the first block description in the font. + // + pBlock = (tFontBlock *)(psFont + 1); + + // + // Run through the blocks of the font looking for the one that contains + // our codepoint. + // + for(ui32Loop = 0; ui32Loop < psFont->ui16NumBlocks; ui32Loop++) + { + // + // Does the codepoint lie within this block? + // + if((ui32CodePoint >= pBlock[ui32Loop].ui32StartCodepoint) && + (ui32CodePoint < (pBlock[ui32Loop].ui32StartCodepoint + + pBlock[ui32Loop].ui32NumCodepoints))) + { + // + // Yes - drop out of the loop early. + // + break; + } + } + + // + // Did we find the block? + // + if(ui32Loop == psFont->ui16NumBlocks) + { + // + // No - return NULL to indicate that the character wasn't found. + // + return(0); + } + + // + // Get the offset to the glyph data via the block's offset table. + // + pui32OffsetTable = (uint32_t *)((uint8_t *)psFont + + pBlock[ui32Loop].ui32GlyphTableOffset); + ui32Offset = pui32OffsetTable[ui32CodePoint - + pBlock[ui32Loop].ui32StartCodepoint]; + + // + // Is the offset non-zero? Zero offset indicates that the glyph is not + // encoded in the font. + // + if(ui32Offset) + { + // + // The offset is not 0 so this glyph does exist. Return a pointer to + // its data. + // + pui8Data = (const uint8_t *)pui32OffsetTable + ui32Offset; + *pui8Width = pui8Data[1]; + return(pui8Data); + } + else + { + // + // The glyph offset was 0 so this implies that the glyph does not + // exist. Return NULL to indicate this. + // + return(0); + } +} + +//***************************************************************************** +// +//! Retrieves a pointer to the data for a specific font glyph. +//! +//! \param psFont points to the font whose glyph is to be queried. +//! \param ui32CodePoint idenfities the specific glyph whose data is being +//! queried. +//! \param pui8Width points to storage which will be written with the +//! width of the requested glyph in pixels. +//! +//! This function may be used to retrieve the pixel data for a particular glyph +//! in a font. The pointer returned may be passed to GrFontGlyphRender to +//! draw the glyph on the display. The format of the data may be determined +//! from the font format returned via a call to GrFontInfoGet(). +//! +//! \return Returns a pointer to the data for the requested glyph or NULL if +//! the glyph does not exist in the font. +// +//***************************************************************************** +const uint8_t * +GrFontGlyphDataGet(const tFont *psFont, uint32_t ui32CodePoint, + uint8_t *pui8Width) +{ + ASSERT(psFont); + ASSERT(pui8Width); + + // + // What type of font are we dealing with here? + // + if(psFont->ui8Format == FONT_FMT_WRAPPED) + { + tFontWrapper *psFontWrapper; + + // + // This is a wrapped font so call the access function required to get + // the required information. + // + psFontWrapper = (tFontWrapper *)psFont; + return(psFontWrapper->pFuncs-> + pfnFontGlyphDataGet(psFontWrapper->pui8FontId, ui32CodePoint, + pui8Width)); + } + else if (psFont->ui8Format & FONT_WIDE_MARKER) + { + // + // This is a wide character set font so call the relevant function to + // retrieve the glyph data pointer. + // + return(FontWideGlyphDataGet((const tFontWide *)psFont, ui32CodePoint, + pui8Width)); + } + else + { + // + // This is an 8 bit font so call the relevant function to retrieve the + // glyph data pointer. + // + return(FontGlyphDataGet(psFont, ui32CodePoint, pui8Width)); + } +} + +//***************************************************************************** +// +//! Returns the codepage supported by the given font. +//! +//! \param psFont points to the font whose codepage is to be returned. +//! +//! This function returns the codepage supported by the font whose pointer is +//! passed. The codepage defines the mapping between a given character code +//! and the glyph that represents it. Standard codepages are identified by +//! labels of the form \b CODEPAGE_xxxx. Fonts may also be encoded using +//! application specific codepages with values of 0x8000 or higher. +//! +//! \return Returns the font codepage identifier. +//! +//***************************************************************************** +uint16_t +GrFontCodepageGet(const tFont *psFont) +{ + ASSERT(psFont); + + // + // Is this a wide character set font? + // + if(psFont->ui8Format & FONT_WIDE_MARKER) + { + // + // Yes - read the font codepage from the header. + // + return(((tFontWide *)psFont)->ui16Codepage); + } + else if(psFont->ui8Format & FONT_FMT_WRAPPED) + { + // + // This is a wrapper-based font so call the access function to get + // its codepage. + // + ASSERT(((tFontWrapper *)psFont)->pFuncs->pfnFontCodepageGet); + + return(((tFontWrapper *)psFont)->pFuncs-> + pfnFontCodepageGet(((tFontWrapper *)psFont)->pui8FontId)); + } + else + { + // + // No - this is an old format font so just return ISO8859-1. This is + // compatible with ASCII so should be benign. + // + return(CODEPAGE_ISO8859_1); + } +} + +//***************************************************************************** +// +// Determines which codepoint mapping function to use based on the current +// source codepage and font selection in the context. +// +//***************************************************************************** +static int32_t +UpdateContextCharMapping(tContext *pContext) +{ + uint32_t ui32Loop; + uint16_t ui16FontCodepage; + + // + // Make sure we have a font selected. + // + if(!pContext->psFont) + { + // + // No font is yet selected so we can't determine the codepage map to + // use. + // + return(-1); + } + + // + // Get the current font's codepage. + // + ui16FontCodepage = GrFontCodepageGet(pContext->psFont); + + // + // Look through the codepage mapping functions we have been given and + // find an appropriate one. + // + for(ui32Loop = 0; ui32Loop < pContext->ui8NumCodePointMaps; ui32Loop++) + { + if((pContext->pCodePointMapTable[ui32Loop].ui16SrcCodepage == + pContext->ui16Codepage) && + (pContext->pCodePointMapTable[ui32Loop].ui16FontCodepage == + ui16FontCodepage)) + { + // + // We found a suitable mapping function so remember it. + // + pContext->ui8CodePointMap = (uint8_t)ui32Loop; + return((int32_t)ui32Loop); + } + } + + // + // If we get here, no suitable mapping function could be found. Set things + // up to use the first mapping function (even though it's not right). + // + pContext->ui8CodePointMap = 0; + return(-1); +} +//***************************************************************************** +// +//! Returns the number of blocks of character encoded by a font. +//! +//! \param psFont is a pointer to the font which is to be queried. +//! +//! This function may be used to query the number of contiguous blocks of +//! codepoints (characters) encoded by a given font. This is primarily of use +//! to applications which wish to parse fonts directly to, for example, display +//! all glyphs in the font. It is unlikely that applications which wish to +//! display text strings would need to call this function. +//! +//! The \e psFont parameter may point to any supported font format including +//! wrapped fonts described using the \e tFontWrapper structure (assuming, of +//! course, that the structure pointer is cast to a \e tFont pointer). +//! +//! \return Returns the number of blocks of codepoints within the font. +// +//***************************************************************************** +uint16_t +GrFontNumBlocksGet(const tFont *psFont) +{ + ASSERT(psFont); + + // + // Is this a wide character set font? + // + if(psFont->ui8Format & FONT_WIDE_MARKER) + { + // + // Yes - read the number of blocks from the header. + // + return(((tFontWide *)psFont)->ui16NumBlocks); + } + else if(psFont->ui8Format & FONT_FMT_WRAPPED) + { + // + // This is a wrapper-based font so call the access function to get + // the information. + // + ASSERT(((tFontWrapper *)psFont)->pFuncs->pfnFontNumBlocksGet); + + return(((tFontWrapper *)psFont)->pFuncs-> + pfnFontNumBlocksGet(((tFontWrapper *)psFont)->pui8FontId)); + } + else + { + // + // No - this is an old format font so it only supports a single block + // of characters. + // + return(1); + } +} + +//***************************************************************************** +// +//! Returns the number of blocks of character encoded by a font. +//! +//! \param psFont is a pointer to the font which is to be queried. +//! \param ui16BlockIndex is the index of the codepoint block to be queried. +//! \param pui32Start points to storage which is written with the codepoint +//! number of the first glyph in the block. +//! +//! This function may be used to query the contents of a particular block of +//! codepoints (characters) encoded by a given font. This is primarily of use +//! to applications which wish to parse fonts directly to, for example, display +//! all glyphs in the font. It is unlikely that applications which wish to +//! display text strings would need to call this function. +//! +//! The number of blocks in the font may be queried by calling +//! GrFontNumBlocksGet(). The \e ui16BlockIndex selects a block and valid +//! values are from, 0 to the number of blocks in the font - 1. +//! +//! The \e pui32Start pointer is written with the codepoint number of the +//! first glyph in the given block. It is assumed that each block contains +//! a contiguous block of glyphs so the actual codepoints represented in the +//! block will be from \e *pui32Start to (\e *pui32Start + return value - 1). +//! +//! The \e psFont parameter may point to any supported font format including +//! wrapped fonts described using the \e tFontWrapper structure (assuming, of +//! course, that the structure pointer is cast to a \e tFont pointer). +//! +//! \return Returns the number of blocks of codepoints within the block. +// +//***************************************************************************** +uint32_t +GrFontBlockCodepointsGet(const tFont *psFont, uint16_t ui16BlockIndex, + uint32_t *pui32Start) +{ + ASSERT(psFont); + ASSERT(pui32Start); + + // + // Is this a wide character set font? + // + if(psFont->ui8Format & FONT_WIDE_MARKER) + { + tFontWide *psFontWide; + tFontBlock *pBlock; + + // + // This is a wide character set font. Is the block index valid? + // + psFontWide = (tFontWide *)psFont; + if(ui16BlockIndex >= psFontWide->ui16NumBlocks) + { + // + // The block number is invalid so return 0 to indicate the error. + // + return(0); + } + + // + // Yes - find the relevant block table and extract the required + // information from it. + // + pBlock = (tFontBlock *)(psFontWide + 1); + *pui32Start = pBlock[ui16BlockIndex].ui32StartCodepoint; + return(pBlock[ui16BlockIndex].ui32NumCodepoints); + } + else if(psFont->ui8Format & FONT_FMT_WRAPPED) + { + // + // This is a wrapper-based font so call the access function to get + // its codepage. + // + ASSERT(((tFontWrapper *)psFont)->pFuncs->pfnFontBlockCodepointsGet); + + return(((tFontWrapper *)psFont)->pFuncs-> + pfnFontBlockCodepointsGet(((tFontWrapper *)psFont)->pui8FontId, + ui16BlockIndex, pui32Start)); + } + else + { + // + // No - this is an old format font so it only supports a single block + // of + // + if(ui16BlockIndex != 0) + { + // + // An invalid block number was passed so return 0 to indicate an + // error. + // + return(0); + } + + // + // We were passed a valid block number (0) so return the start + // codepoint and number of characters. Is this an extended font or + // the original ASCII-only flavor? + // + if(psFont->ui8Format & FONT_EX_MARKER) + { + tFontEx *psFontEx; + + // + // It's an extended font so read the character range from the + // header. + // + psFontEx = (tFontEx *)psFont; + + *pui32Start = (uint32_t)psFontEx->ui8First; + return((uint32_t)(psFontEx->ui8Last - psFontEx->ui8First + 1)); + } + else + { + // + // This is an ASCII font so it supports a fixed set of characters. + // + *pui32Start = 0x20; + return(96); + } + } +} + +//***************************************************************************** +// +//! Provides GrLib with a table of source/font codepage mapping functions. +//! +//! \param pContext is a pointer to the context to modify. +//! \param pCodePointMapTable points to an array of structures each defining +//! the mapping from a source text codepage to a destination font codepage. +//! \param ui8NumMaps provides the number of entries in the \e +//! pCodePointMapTable array. +//! +//! This function provides GrLib with a set of functions that can be used to +//! map text encoded in a particular codepage to one other codepage. These +//! functions are used to allow GrLib to parse text strings and display the +//! correct glyphs from the font. The mapping function used by the library +//! will depend upon the source text codepage set using a call to +//! GrStringCodepageSet() and the context's font, set using GrContextFontSet(). +//! +//! If no conversion function is available to map from the selected source +//! codepage to the font's codepage, GrLib use the first conversion function +//! provided in the codepoint map table and the displayed text will likely be +//! incorrect. +//! +//! If this call is not made, GrLib assumes ISO8859-1 encoding for both the +//! source text and font to maintain backwards compatibility for applications +//! which were developed prior to the introduction of international character +//! set support. +//! +//! \return None. +// +//***************************************************************************** +void +GrCodepageMapTableSet(tContext *pContext, tCodePointMap *pCodePointMapTable, + uint8_t ui8NumMaps) +{ + ASSERT(pContext); + ASSERT(pCodePointMapTable); + ASSERT(ui8NumMaps); + + // + // Remember the table details. + // + pContext->pCodePointMapTable = pCodePointMapTable; + pContext->ui8NumCodePointMaps = ui8NumMaps; + + // + // Update the character mapping to ensure that we show the right glyphs. + // + UpdateContextCharMapping(pContext); +} + +//***************************************************************************** +// +//! Sets the source text codepage to be used. +//! +//! \param pContext is a pointer to the context to modify. +//! \param ui16Codepage is the identifier of the codepage for the text that the +//! application will pass on future calls to the GrStringDraw() and +//! GrStringDrawCentered() functions. +//! +//! This function sets the codepage that will be used when rendering text +//! via future calls to GrStringDraw() or GrStringDrawCentered(). The codepage +//! defines the mapping between specific numbers used to define characters and +//! the actual character glyphs displayed. By default, GrLib assumes text +//! passed is encoded using the ISO8859-1 which supports ASCII and western +//! European character sets. Applications wishing to use multi-byte character +//! sets or alphabets other than those supported by ISO8859-1 should set an +//! appropriate codepage such as UTF-8. +//! +//! It is important to ensure that your application makes use of fonts which +//! support the required codepage or that you have supplied GrLib with a +//! codepage mapping function that allows translation of your chosen text +//! codepage into the codepage supported by the fonts in use. Several +//! mapping functions for commonly-used codepages are provided and others can +//! be written easily to support different text and font codepage combinations. +//! Codepage mapping functions are provided to GrLib in a table passed as a +//! parameter to the function GrCodepageMapTableSet(). +//! +//! \return None. +// +//***************************************************************************** +int32_t +GrStringCodepageSet(tContext *pContext, uint16_t ui16Codepage) +{ + ASSERT(pContext); + + // + // Remember the codepage to be used. + // + pContext->ui16Codepage = ui16Codepage; + + // + // Update the character mapping to ensure that we show the right glyphs. + // + return(UpdateContextCharMapping(pContext)); +} + +//***************************************************************************** +// +//! Sets the font to be used. +//! +//! \param pContext is a pointer to the drawing context to modify. +//! \param psFont is a pointer to the font to be used. +//! +//! This function sets the font to be used for string drawing operations in the +//! specified drawing context. +//! +//! \return None. +// +//***************************************************************************** +void +GrContextFontSet(tContext *pContext, const tFont *psFont) +{ + ASSERT(pContext); + ASSERT(psFont); + + // + // Remember the font to be used. + // + pContext->psFont = psFont; + + // + // Update the character mapping to ensure that we show the right glyphs. + // + UpdateContextCharMapping(pContext); +} +#endif + +//***************************************************************************** +// +// Definitions and variables used by the decompression routine for the string +// table. +// +//***************************************************************************** +#define SC_MAX_INDEX 2047 +#define SC_IS_NULL 0x0000ffff +#define SC_GET_LEN(v) ((v) >> (32 - 5)) +#define SC_GET_INDEX(v) (((v) >> 16) & SC_MAX_INDEX) +#define SC_GET_OFF(v) ((v) & SC_IS_NULL) + +#define SC_FLAG_COMPRESSED 0x00008000 +#define SC_OFFSET_M 0x00007fff + +//***************************************************************************** +// +// The globals that hold the shortcuts to various locations and values in the +// table. +// +//***************************************************************************** +static const uint32_t *g_pui32StringTable; +static const uint16_t *g_pui16LanguageTable; +static const uint8_t *g_pui8StringData; + +static uint16_t g_ui16Language; +static uint16_t g_ui16NumLanguages; +static uint16_t g_ui16NumStrings; + +//***************************************************************************** +// +//! This function sets the location of the current string table. +//! +//! \param pvTable is a pointer to a string table that was generated by the +//! string compression utility. +//! +//! This function is used to set the string table to use for strings in an +//! application. This string table is created by the string compression +//! utility. This function is used to swap out multiple string tables if the +//! application requires more than one table. It does not allow using more +//! than one string table at a time. +//! +//! \return None. +// +//***************************************************************************** +void +GrStringTableSet(const void *pvTable) +{ + // + // Save the number of languages and number of strings. + // + g_ui16NumStrings = ((uint16_t *)pvTable)[0]; + g_ui16NumLanguages = ((uint16_t *)pvTable)[1]; + + // + // Save a pointer to the Language Identifier table. + // + g_pui16LanguageTable = (uint16_t *)pvTable + 2; + + // + // Save a pointer to the String Index table. + // + g_pui32StringTable = (uint32_t *)(g_pui16LanguageTable + + g_ui16NumLanguages); + + // + // Save a pointer to the String Data. + // + g_pui8StringData = (uint8_t *)(g_pui32StringTable + + (g_ui16NumStrings * g_ui16NumLanguages)); +} + +//***************************************************************************** +// +//! This function sets the current language for strings returned by the +//! GrStringGet() function. +//! +//! \param ui16LangID is one of the language identifiers provided in the string +//! table. +//! +//! This function is used to set the language identifier for the strings +//! returned by the GrStringGet() function. The \e ui16LangID parameter should +//! match one of the identifiers that was included in the string table. These +//! are provided in a header file in the graphics library and must match the +//! values that were passed through the sting compression utility. +//! +//! \return This function returns 0 if the language was not found and a +//! non-zero value if the laguage was found. +// +//***************************************************************************** +uint32_t +GrStringLanguageSet(uint16_t ui16LangID) +{ + int32_t i32Lang; + + // + // Search for the requested language. + // + for(i32Lang = 0; i32Lang < g_ui16NumLanguages; i32Lang++) + { + // + // Once found, break out and save the new language. + // + if(g_pui16LanguageTable[i32Lang] == ui16LangID) + { + break; + } + } + + // + // Only accept the language if it was found, otherwise continue using + // previous language. + // + if(i32Lang != g_ui16NumLanguages) + { + g_ui16Language = i32Lang; + return(1); + } + + return(0); +} + +//***************************************************************************** +// +//! This function returns a string from the current string table. +//! +//! \param i32Index is the index of the string to retrieve. +//! \param pcData is the pointer to the buffer to store the string into. +//! \param ui32Size is the size of the buffer provided by pcData. +//! +//! This function will return a string from the string table in the language +//! set by the GrStringLanguageSet() function. The value passed in \e iIndex +//! parameter is the string that is being requested and will be returned in +//! the buffer provided in the \e pcData parameter. The amount of data +//! returned will be limited by the ui32Size parameter. +//! +//! \return Returns the number of valid bytes returned in the \e pcData buffer. +// +//***************************************************************************** +uint32_t +GrStringGet(int32_t i32Index, char *pcData, uint32_t ui32Size) +{ + uint32_t ui32Len, ui32Offset, ui32SubCode[16]; + int32_t i32Pos, i32Idx, i32Bit, i32Skip, i32Buf; + uint8_t *pui8BufferOut; + const uint8_t *pui8String; + + ASSERT(i32Index < g_ui16NumStrings); + ASSERT(pcData != 0); + + // + // Initialize the output buffer state. + // + i32Pos = 0; + pui8BufferOut = 0; + + // + // if built up from another string, we need to process that + // this could nest multiple layers, so we follow in + // + ui32SubCode[i32Pos] = g_pui32StringTable[(g_ui16Language * + g_ui16NumStrings) + i32Index]; + + if(SC_GET_LEN(ui32SubCode[i32Pos])) + { + // + // recurse down + // + while(i32Pos < 16) + { + // + // Copy over the partial (if any) from a previous string. + // + i32Idx = SC_GET_INDEX(ui32SubCode[i32Pos++]); + + ui32SubCode[i32Pos] = g_pui32StringTable[(g_ui16Language * + g_ui16NumStrings) + + i32Idx]; + + if(!SC_GET_LEN(ui32SubCode[i32Pos])) + { + // + // not linked, just string + // + break; + } + } + } + + // + // Now work backwards out. + // + i32Idx = 0; + + // + // Build up the string in pieces. + // + while(i32Pos >= 0) + { + // + // Get the offset in string table. + // + ui32Offset = SC_GET_OFF(ui32SubCode[i32Pos]); + + if(ui32Offset == SC_IS_NULL) + { + // + // An empty string. + // + pcData[i32Idx] = 0; + } + else if(ui32Offset & SC_FLAG_COMPRESSED) + { + // + // This is a compressed string so initialize the pointer to the + // compressed data. + // + pui8String = g_pui8StringData + (ui32Offset & SC_OFFSET_M); + + // + // Initialize the bit variables. + // + i32Bit = 0; + i32Skip = 0; + + // + // Make a pointer to the current buffer out location. + // + pui8BufferOut = (uint8_t *)pcData + i32Idx; + + // + // If the out buffer is beyond the maximum size then just break + // out and return what we have so far. + // + if((char *)pui8BufferOut > (pcData + ui32Size)) + { + break; + } + + // + // Now build up real string by decompressing bits. + // + if(!SC_GET_LEN(ui32SubCode[i32Pos]) && + SC_GET_INDEX(ui32SubCode[i32Pos])) + { + i32Skip = SC_GET_INDEX(ui32SubCode[i32Pos]); + + if(i32Pos) + { + ui32Len = SC_GET_LEN(ui32SubCode[i32Pos - 1]); + } + else + { + ui32Len = (i32Skip & 0x3f); + } + + i32Skip >>= 6; + i32Idx += ui32Len; + ui32Len += i32Skip; + } + else if(i32Pos) + { + // + // Get the length of the partial string. + // + ui32Len = SC_GET_LEN(ui32SubCode[i32Pos - 1]) - i32Idx; + i32Idx += ui32Len; + } + else if(!SC_GET_LEN(ui32SubCode[0]) && + SC_GET_INDEX(ui32SubCode[0])) + { + ui32Len = SC_GET_INDEX(ui32SubCode[0]); + i32Skip = ui32Len >> 6; + ui32Len = (ui32Len & 0x3f) + i32Skip; + } + else + { + // + // Arbitrary as null character ends the string. + // + ui32Len = 1024; + } + + for(; ui32Len; ui32Len--) + { + // + // Packed 6 bits for each char + // + *pui8BufferOut = (*pui8String >> i32Bit) & 0x3f; + + if(i32Bit >= 2) + { + *pui8BufferOut |= (*++pui8String << (8 - i32Bit)) & 0x3f; + } + + i32Bit = (i32Bit + 6) & 0x7; + + if(!*pui8BufferOut) + { + // + // end of string + // + break; + } + + if(i32Skip) + { + i32Skip--; + continue; + } + + // + // Put back removed bit + // + *pui8BufferOut |= 0x40; + + // + // Now look for a few special chars we mapped up into other + // characters. + // + if(*pui8BufferOut == '`') + { + *pui8BufferOut = ' '; + } + else if(*pui8BufferOut == '~') + { + *pui8BufferOut = '-'; + } + else if(*pui8BufferOut == 0x7f) + { + *pui8BufferOut = '.'; + } + else if(*pui8BufferOut == '\\') + { + *pui8BufferOut = ':'; + } + + // + // Increment the pointer and break out if the pointer is now + // beyond the end of the buffer provided. + // + pui8BufferOut++; + + if((char *)pui8BufferOut >= (pcData + ui32Size)) + { + break; + } + } + } + else if(i32Pos) + { + // + // Part of another string + // + ui32Len = SC_GET_LEN(ui32SubCode[i32Pos - 1]) - i32Idx; + + // + // Prevent this copy from going beyond the end of the buffer + // provided. + // + if((i32Idx + ui32Len) > ui32Size) + { + ui32Len = ui32Size - i32Idx; + } + + // + // Copy this portion of the string to the output buffer. + // + for(i32Buf = 0; i32Buf < ui32Len; i32Buf++) + { + pcData[i32Idx + i32Buf] = g_pui8StringData[ui32Offset + + i32Buf]; + } + + i32Idx += ui32Len; + } + else if(SC_GET_INDEX(ui32SubCode[0]) && !SC_GET_LEN(ui32SubCode[0])) + { + // + // Copy this portion of the string to the output buffer. + // + for(i32Buf = 0; i32Buf < SC_GET_INDEX(ui32SubCode[0]); i32Buf++) + { + if((i32Idx + i32Buf) < ui32Size) + { + pcData[i32Idx + i32Buf] = g_pui8StringData[ui32Offset + + i32Buf]; + } + else + { + break; + } + } + } + else + { + // + // Now copy the last piece of the string. + // + for(i32Buf = 0; i32Buf < (ui32Size - i32Idx); i32Buf++) + { + // + // Copy the string to the output buffer. + // + pcData[i32Idx + i32Buf] = g_pui8StringData[ui32Offset + + i32Buf]; + + // + // If a null is hit then terminate the copy. + // + if(pcData[i32Idx + i32Buf] == 0) + { + break; + } + } + + // + // If we had not copied any characters before hitting this case, + // initialize the output pointer (this keeps the code at the end of + // the function that returns the length happy). This will be the + // case if we are using an uncompressed string table. + // + if(!pui8BufferOut) + { + pui8BufferOut = (uint8_t *)pcData + (i32Idx + i32Buf); + } + } + i32Pos--; + } + + // + // Return the number of bytes copied into the output buffer. + // + if(pui8BufferOut) + { + ui32Len = ((uint32_t)pui8BufferOut - (uint32_t)pcData); + + // + // Null terminate the string if there is room. + // + if(ui32Len < ui32Size) + { + pcData[ui32Len] = 0; + } + } + else + { + ui32Len = 0; + } + + return(ui32Len); +} + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** diff --git a/grlib/widget.c b/grlib/widget.c new file mode 100644 index 0000000..d09ac9e --- /dev/null +++ b/grlib/widget.c @@ -0,0 +1,1227 @@ +//***************************************************************************** +// +// widget.c - Generic widget tree handling code. +// +// Copyright (c) 2008-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#include +#include +#include "driverlib/debug.h" +#include "grlib/grlib.h" +#include "grlib/widget.h" + +//***************************************************************************** +// +//! \addtogroup widget_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +// Flags that indicate how messages from the message queue are processed. They +// can be sent via either a pre-order or post-order search, and can optionally +// be sent to no other widgets once one accepts the message. +// +//***************************************************************************** +#define MQ_FLAG_POST_ORDER 1 +#define MQ_FLAG_STOP_ON_SUCCESS 2 + +//***************************************************************************** +// +// The size of the message queue. In order to make the queue pointer +// arithmetic more efficient, this should be a power of two. +// +//***************************************************************************** +#define QUEUE_SIZE 16 + +#ifdef DEBUG_MSGQ +//***************************************************************************** +// +// In debug builds, keep track of the number of cases where a message was +// lost due to the queue being full. We count the following occurrences: +// +// 1. All messages discarded due to queue overflow (g_ui32MQOverflow) +// 2. Messages other than WIDGET_MSG_PTR_MOVE discarded due to queue +// overflow (g_ui32MQNonMouseOverflow). In this case, we also remember the +// last message that was discarded (g_ui32MQLastLostMsg). +// 3. The number of calls to WidgetMessageQueueAdd that fail due to the queue +// mutex already being held. +// 4. The number of cases where WidgetMessageQueueAdd reused an unread +// WIDGET_MSG_PTR_MOVE message when a second one arrived before the previous +// one had been processed. +// +//***************************************************************************** +uint32_t g_ui32MQOverflow = 0; +uint32_t g_ui32MQNonMouseOverflow = 0; +uint32_t g_ui32MQLastLostMsg = 0; +uint32_t g_ui32MQMutexClash = 0; +uint32_t g_ui32MQMoveOverwrite = 0; +#endif + +//***************************************************************************** +// +// This structure describes the message queue used to hold widget messages. +// +//***************************************************************************** +typedef struct +{ + // + // The flags that describe how this message should be processed; this is + // defined by the MQ_FLAG_xxx flags. + // + uint32_t ui32Flags; + + // + // The widget (or widget tree) to which the message should be sent. + // + tWidget *psWidget; + + // + // The message to be sent. + // + uint32_t ui32Message; + + // + // The first parameter to the message. + // + uint32_t ui32Param1; + + // + // The second parameter to the message. + // + uint32_t ui32Param2; +} +tWidgetMessageQueue; + +//***************************************************************************** +// +// The root of the widget tree. This is the widget used when no parent is +// specified when adding a widget, or when no widget is specified when sending +// a message. The parent and sibling of this widget are always zero. This +// should not be directly referenced by applications; WIDGET_ROOT should be +// used instead. +// +//***************************************************************************** +tWidget g_sRoot = +{ + sizeof(tWidget), + 0, + 0, + 0, + 0, + { + 0, + 0, + 0, + 0, + }, + WidgetDefaultMsgProc +}; + +//***************************************************************************** +// +// The widget that has captured pointer messages. When a pointer down message +// is accepted by a widget, that widget is saved in this variable and all +// subsequent pointer move and pointer up messages are sent directly to this +// widget. +// +//***************************************************************************** +static tWidget *g_psPointerWidget = 0; + +//***************************************************************************** +// +// The message queue that holds messages that are waiting to be processed. +// +//***************************************************************************** +static volatile tWidgetMessageQueue g_psMQ[QUEUE_SIZE]; + +//***************************************************************************** +// +// The offset to the next message to be read from the message queue. The +// message queue is empty when this has the same value as g_ui32MQWrite. +// +//***************************************************************************** +static uint32_t g_ui32MQRead = 0; + +//***************************************************************************** +// +// The offset to the next message to be written to the message queue. The +// message queue is full when this value is one less than g_ui32MQRead (modulo +// the queue size). +// +//***************************************************************************** +static volatile uint32_t g_ui32MQWrite = 0; + +//***************************************************************************** +// +// The mutex used to protect access to the message queue. +// +//***************************************************************************** +static uint8_t g_ui8MQMutex = 0; + +//***************************************************************************** +// +//! Initializes a mutex to the unowned state. +//! +//! \param pi8Mutex is a pointer to mutex that is to be initialized. +//! +//! This function initializes a mutual exclusion semaphore (mutex) to its +//! unowned state in preparation for use with WidgetMutexGet() and +//! WidgetMutexPut(). A mutex is a two state object typically used to +//! serialize access to a shared resource. An application will call +//! WidgetMutexGet() to request ownership of the mutex. If ownership is +//! granted, the caller may safely access the resource then release the mutex +//! using WidgetMutexPut() once it is finished. If ownership is not granted, +//! the caller knows that some other context is currently modifying the shared +//! resource and it must not access the resource at that time. +//! +//! Note that this function must not be called if the mutex passed in +//! \e pi8Mutex is already in use since this will have the effect of releasing +//! the lock even if some caller currently owns it. +//! +//! \return None. +// +//***************************************************************************** +void +WidgetMutexInit(uint8_t *pi8Mutex) +{ + // + // Catch NULL pointers in a debug build. + // + ASSERT(pi8Mutex); + + // + // Clear the mutex location to set it to the unowned state. + // + *pi8Mutex = 0; +} + +//***************************************************************************** +// +//! Attempts to acquire a mutex. +//! +//! \param pi8Mutex is a pointer to mutex that is to be acquired. +//! +//! This function attempts to acquire a mutual exclusion semaphore (mutex) on +//! behalf of the caller. If the mutex is not already held, 0 is returned to +//! indicate that the caller may safely access whichever resource the mutex is +//! protecting. If the mutex is already held, 1 is returned and the caller +//! must not access the shared resource. +//! +//! When access to the shared resource is complete, the mutex owner should call +//! WidgetMutexPut() to release the mutex and relinquish ownership of the +//! shared resource. +//! +//! \return Returns 0 if the mutex is acquired successfully or 1 if it is +//! already held by another caller. +// +//***************************************************************************** +#if defined(ewarm) || defined(DOXYGEN) +uint32_t +WidgetMutexGet(uint8_t *pi8Mutex) +{ + // + // Acquire the mutex if possible. + // + __asm(" mov r1, #1\n" + " ldrexb r2, [r0]\n" + " cmp r2, #0\n" + " it eq\n" + " strexb r2, r1, [r0]\n" + " mov r0, r2\n"); + + // + // "Warning[Pe940]: missing return statement at end of non-void function" + // is suppressed here to avoid putting a "bx lr" in the inline assembly + // above and a superfluous return statement here. + // +#pragma diag_suppress=Pe940 +} +#pragma diag_default=Pe940 +#endif +#if defined(codered) || defined(gcc) || defined(sourcerygxx) +uint32_t __attribute__((naked)) +WidgetMutexGet(uint8_t *pi8Mutex) +{ + uint32_t ui32Ret; + + // + // Acquire the mutex if possible. + // + __asm(" mov r1, #1\n" + " ldrexb r2, [r0]\n" + " cmp r2, #0\n" + " it eq\n" + " strexbeq r2, r1, [r0]\n" + " mov r0, r2\n" + " bx lr\n" + : "=r" (ui32Ret)); + + // + // The return is handled in the inline assembly, but the compiler will + // still complain if there is not an explicit return here (despite the fact + // that this does not result in any code being produced because of the + // naked attribute). + // + return(ui32Ret); +} +#endif +#if defined(rvmdk) || defined(__ARMCC_VERSION) +__asm uint32_t +WidgetMutexGet(uint8_t *pi8Mutex) +{ + mov r1, #1 + ldrexb r2, [r0] + cmp r2, #0 + it eq + strexbeq r2, r1, [r0] + mov r0, r2 + bx lr +} +#endif +// +// For CCS implement this function in pure assembly. This prevents the TI +// compiler from doing funny things with the optimizer. +// +#if defined(ccs) + __asm(" .sect \".text:WidgetMutexGet\"\n" + " .clink\n" + " .thumbfunc WidgetMutexGet\n" + " .thumb\n" + " .global WidgetMutexGet\n" + "WidgetMutexGet:\n" + " mov r1, #1\n" + " ldrexb r2, [r0]\n" + " cmp r2, #0\n" + " it EQ\n" // TI assembler requires upper case cond + " strexbeq r2, r1, [r0]\n" + " mov r0, r2\n" + " bx lr\n"); +#endif + + +//***************************************************************************** +// +//! Release a mutex. +//! +//! \param pi8Mutex is a pointer to mutex that is to be released. +//! +//! This function releases a mutual exclusion semaphore (mutex), leaving it in +//! the unowned state. +//! +//! \return None. +// +//***************************************************************************** +void +WidgetMutexPut(uint8_t *pi8Mutex) +{ + // + // Release the mutex. + // + *pi8Mutex = 0; +} + +//***************************************************************************** +// +// Determines if a widget exists in the tree below a given point. +// +// \param psWidget is a pointer to the widget tree. +// \param psFind is a pointer to the widget that is being searched for. +// +// This function searches the widget tree below psWidget to determine whether +// or not the widget pointed to by \e psFind exists in the subtree. +// +// \return Returns \b true if \e psFind exists in the subtree or \b false if it +// does not. +// +//***************************************************************************** +static bool +WidgetIsInTree(tWidget *psWidget, tWidget *psFind) +{ + tWidget *psTemp; + + // + // Check the arguments. + // + ASSERT(psWidget); + ASSERT(psFind); + + // + // Loop through the tree under the widget until every widget is searched. + // + for(psTemp = psWidget; psTemp != psWidget->psParent; ) + { + // + // See if this widget has a child. + // + if(psTemp->psChild) + { + // + // Go to this widget's child first. + // + psTemp = psTemp->psChild; + } + + // + // This widget does not have a child, so either a sibling or a parent + // must be checked. When moving back to the parent, another move must + // be performed as well to avoid getting stuck in a loop (since the + // parent's children have already been searched. + // + else + { + // + // Loop until returning to the parent of the starting widget. This + // loop will be explicitly broken out of if an intervening widget + // is encountered that has not been searched. + // + while(psTemp != psWidget->psParent) + { + if(psTemp == psFind) + { + return(true); + } + + // + // See if this widget has a sibling. + // + if(psTemp->psNext) + { + // + // Visit the sibling of this widget. + // + psTemp = psTemp->psNext; + + // + // Since this widget has not been searched yet, break out + // of the controlling loop. + // + break; + } + else + { + // + // This widget has no siblings, so go to its parent. Since + // the parent has already been searched, the same sibling + // vs. parent decision must be made on this widget as well. + // + psTemp = psTemp->psParent; + } + } + } + } + + // + // The widget could not be found. + // + return(false); +} + +//***************************************************************************** +// +//! Handles widget messages. +//! +//! \param psWidget is a pointer to the widget. +//! \param ui32Message is the message to be processed. +//! \param ui32Param1 is the first parameter to the message. +//! \param ui32Param2 is the second parameter to the message. +//! +//! This function is a default handler for widget messages; it simply ignores +//! all messages sent to it. This is used as the message handler for the root +//! widget, and should be called by the message handler for other widgets when +//! they do not explicitly handle the provided message (in case new messages +//! are added that require some default but override-able processing). +//! +//! \return Always returns 0. +// +//***************************************************************************** +int32_t +WidgetDefaultMsgProc(tWidget *psWidget, uint32_t ui32Message, + uint32_t ui32Param1, uint32_t ui32Param2) +{ + // + // Check the arguments. + // + ASSERT(psWidget); + + // + // Return zero for all messages. + // + return(0); +} + +//***************************************************************************** +// +//! Adds a widget to the widget tree. +//! +//! \param psParent is the parent for the widget. To add to the root of the tree +//! set this parameter to \b WIDGET_ROOT. +//! \param psWidget is the widget to add. +//! +//! This function adds a widget to the widget tree at the given position within +//! the tree. The widget will become the last child of its parent, and will +//! therefore be searched after the existing children. +//! +//! The added widget can be a full widget tree, allowing addition of an entire +//! heirarchy all at once (for example, adding an entire screen to the widget +//! tree all at once). In this case, it is the responsibility of the caller to +//! ensure that the psParent field of each widget in the added tree is correctly +//! set (in other words, only the widget pointed to by \e psWidget is updated to +//! properly reside in the tree). +//! +//! It is the responsibility of the caller to initialize the psNext and psChild +//! field of the added widget; either of these fields being non-zero results in +//! a pre-defined tree of widgets being added instead of a single one. +//! +//! \return None. +// +//***************************************************************************** +void +WidgetAdd(tWidget *psParent, tWidget *psWidget) +{ + // + // Check the arguments. + // + ASSERT(psParent); + ASSERT(psWidget); + + // + // Make this widget be a child of its parent. + // + psWidget->psParent = psParent; + + // + // See if this parent already has children. + // + if(psParent->psChild) + { + // + // Find the last child of this parent and also check that widget is not + // already present at this level of the tree. + // + for(psParent = psParent->psChild; psParent->psNext; + psParent = psParent->psNext) + { + // + // If we find this widget here already, just return. If we don't + // do this, we allow errant programs to add the same child twice + // resulting in looping on message processing. + // + if(psParent == psWidget) + { + return; + } + } + + // + // We perform one final check to see if we are about to add the widget + // twice. We need this to catch the case of a single child which + // causes the previous loop to exit before performing the widget check. + // + if(psParent == psWidget) + { + return; + } + + // + // Add this widget to the end of the list of children of this parent. + // + psParent->psNext = psWidget; + } + else + { + // + // Make this widget be the first (and only) child of this parent. + // + psParent->psChild = psWidget; + } +} + +//***************************************************************************** +// +//! Removes a widget from the widget tree. +//! +//! \param psWidget is the widget to be removed. +//! +//! This function removes a widget from the widget tree. The removed widget +//! can be a full widget tree, allowing removal of an entire heirarchy all at +//! once (for example, removing an entire screen from the widget tree). +//! +//! \return None. +// +//***************************************************************************** +void +WidgetRemove(tWidget *psWidget) +{ + tWidget *psTemp; + + // + // Check the argument. + // + ASSERT(psWidget); + + // + // Make sure that the supplied widget is actually in the tree section + // owned by its parent and, hence, removeable. + // + if(!psWidget->psParent || !WidgetIsInTree(psWidget->psParent, psWidget)) + { + return; + } + + // + // See if this widget is the first child of its parent. + // + if(psWidget->psParent->psChild == psWidget) + { + // + // Make the first child of this widgets parent be this widget's + // sibling. + // + psWidget->psParent->psChild = psWidget->psNext; + } + else + { + // + // Find the sibling directly before this widget. + // + for(psTemp = psWidget->psParent->psChild; psTemp->psNext != psWidget; + psTemp = psTemp->psNext) + { + } + + // + // Make the previous sibling point to the next sibling, removing this + // widget from the sibling chain. + // + psTemp->psNext = psWidget->psNext; + } + + // + // Check to see if the widget which currently owns the pointer has just + // been removed and, if so, clear the pointer focus. + // + if(g_psPointerWidget && !WidgetIsInTree(&g_sRoot, g_psPointerWidget)) + { + g_psPointerWidget = 0; + } + + // + // Clear the next pointer of the widget. + // + psWidget->psNext = 0; +} + +//***************************************************************************** +// +//! Sends a message to a widget tree via a pre-order, depth-first search. +//! +//! \param psWidget is a pointer to the widget tree. +//! \param ui32Message is the message to send. +//! \param ui32Param1 is the first parameter to the message. +//! \param ui32Param2 is the second parameter to the message. +//! \param bStopOnSuccess is \b true if the search should be stopped when the +//! first widget is found that returns success in response to the message. +//! +//! This function performs a pre-order, depth-first search of the widget tree, +//! sending a message to each widget encountered. In a depth-first search, the +//! children of a widget are searched before its siblings (preferring to go +//! deeper into the tree, hence the name depth-first). A pre-order search +//! means that the message is sent to a widget before any of its children are +//! searched. +//! +//! An example use of the pre-order search is for paint messages; the larger +//! enclosing widgets should be drawn on the screen before the smaller widgets +//! that reside within the parent widget (otherwise, the children would be +//! overwritten by the parent). +//! +//! \return Returns 0 if \e bStopOnSuccess is false or no widget returned +//! success in response to the message, or the value returned by the first +//! widget to successfully process the message. +// +//***************************************************************************** +uint32_t +WidgetMessageSendPreOrder(tWidget *psWidget, uint32_t ui32Message, + uint32_t ui32Param1, uint32_t ui32Param2, + bool bStopOnSuccess) +{ + uint32_t ui32Ret; + tWidget *psTemp; + + // + // Check the arguments. + // + ASSERT(psWidget); + + // + // Send the message to the initial widget and return if it succeeded and + // the search should stop on success. + // + ui32Ret = psWidget->pfnMsgProc(psWidget, ui32Message, ui32Param1, + ui32Param2); + if((ui32Ret != 0) && bStopOnSuccess) + { + return(ui32Ret); + } + + // + // Return if the widget does not have any children. + // + if(!psWidget->psChild) + { + return(0); + } + + // + // Loop through the tree under the widget until every widget is searched. + // + for(psTemp = psWidget->psChild; psTemp != psWidget; ) + { + // + // Send the message to this widget and return if it succeeded and the + // search should stop on success. + // + ui32Ret = psTemp->pfnMsgProc(psTemp, ui32Message, ui32Param1, + ui32Param2); + if((ui32Ret != 0) && bStopOnSuccess) + { + return(ui32Ret); + } + + // + // Find the next widget to examine. If this widget has a child, then + // that is the next widget to examine. + // + if(psTemp->psChild) + { + psTemp = psTemp->psChild; + } + + // + // This widget does not have a child, so either a sibling or a parent + // must be checked. When moving back to the parent, another move must + // be performed as well to avoid getting stuck in a loop (since the + // parent's children have already been searched). + // + else + { + // + // Loop until returning to the starting widget. This loop will be + // explicitly broken out of if an intervening widget is encountered + // that has not be searched. + // + while(psTemp != psWidget) + { + // + // See if this widget has a sibling. + // + if(psTemp->psNext) + { + // + // Visit the sibling of this widget. + // + psTemp = psTemp->psNext; + + // + // Since this widget has not been searched yet, break out + // of the controlling loop. + // + break; + } + else + { + // + // This widget has no siblings, so go to its parent. Since + // the parent has already been searched, the same sibling + // vs. parent decision must be made on this widget as well. + // + psTemp = psTemp->psParent; + } + } + } + } + + // + // No widget returned success for the message, or bStopOnSuccess was zero, + // so return zero. + // + return(0); +} + +//***************************************************************************** +// +//! Sends a message to a widget tree via a post-order, depth-first search. +//! +//! \param psWidget is a pointer to the widget tree; if this is zero then the +//! root of the widget tree willb e used. +//! \param ui32Message is the message to send. +//! \param ui32Param1 is the first parameter to the message. +//! \param ui32Param2 is the second parameter to the message. +//! \param bStopOnSuccess is \b true if the search should be stopped when the +//! first widget is found that returns success in response to the message. +//! +//! This function performs a post-order, depth-first search of the widget tree, +//! sending a message to each widget encountered. In a depth-first search, the +//! children of a widget are searched before its sibling (preferring to go +//! deeper into the tree, hence the name depth-first). A post-order search +//! means that the message is sent to a widget after all of its children are +//! searched. +//! +//! An example use of the post-order search is for pointer-related messages; +//! those messages should be delivered to the lowest widget in the tree before +//! its parents (in other words, the widget deepest in the tree that has a hit +//! should get the message, not the higher up widgets that also include the hit +//! location). +//! +//! Special handling is performed for pointer-related messages. The widget +//! that accepts \b #WIDGET_MSG_PTR_DOWN is remembered and subsequent +//! \b #WIDGET_MSG_PTR_MOVE and \b #WIDGET_MSG_PTR_UP messages are sent +//! directly to that widget. +//! +//! \return Returns 0 if \e bStopOnSuccess is \b false or no widget returned +//! success in response to the message, or the value returned by the first +//! widget to successfully process the message. +// +//***************************************************************************** +uint32_t +WidgetMessageSendPostOrder(tWidget *psWidget, uint32_t ui32Message, + uint32_t ui32Param1, uint32_t ui32Param2, + bool bStopOnSuccess) +{ + uint32_t ui32Ret; + tWidget *psTemp; + + // + // Check the arguments. + // + ASSERT(psWidget); + + // + // See if this is a pointer move or up message. + // + if((ui32Message == WIDGET_MSG_PTR_MOVE) || + (ui32Message == WIDGET_MSG_PTR_UP)) + { + // + // If there is not a widget that has captured pointer messages, then + // simply drop this message. + // + if(!g_psPointerWidget) + { + return(0); + } + + // + // Send the message directly to the widget that has captured pointer + // messages. + // + ui32Ret = g_psPointerWidget->pfnMsgProc(g_psPointerWidget, ui32Message, + ui32Param1, ui32Param2); + + // + // See if this is a pointer up message. + // + if(ui32Message == WIDGET_MSG_PTR_UP) + { + // + // Since this was a pointer up, the widget no longer has pointer + // messages captured. + // + g_psPointerWidget = 0; + } + + // + // Return the value returned by the pointer capture widget. + // + return(ui32Ret); + } + + // + // Loop through the tree under the widget until every widget is searched. + // + for(psTemp = psWidget; psTemp != psWidget->psParent; ) + { + // + // See if this widget has a child. + // + if(psTemp->psChild) + { + // + // Go to this widget's child first. + // + psTemp = psTemp->psChild; + } + + // + // This widget does not have a child, so either a sibling or a parent + // must be checked. When moving back to the parent, another move must + // be performed as well to avoid getting stuck in a loop (since the + // parent's children have already been searched. + // + else + { + // + // Loop until returning to the parent of the starting widget. This + // loop will be explicitly broken out of if an intervening widget + // is encountered that has not been searched. + // + while(psTemp != psWidget->psParent) + { + // + // Send the message to this widget. + // + ui32Ret = psTemp->pfnMsgProc(psTemp, ui32Message, ui32Param1, + ui32Param2); + + // + // If this is a pointer down message, the widget accepted the + // message and the handler didn't modify the tree such that + // this widget is no longer present, then save a pointer to the + // widget for subsequent pointer move or pointer up messages. + // + if((ui32Message == WIDGET_MSG_PTR_DOWN) && (ui32Ret != 0)) + { + // + // Is the current widget still in the tree? + // + if(WidgetIsInTree(&g_sRoot, psTemp)) + { + // + // The widget is still in the tree so save it for later + // use. + // + g_psPointerWidget = psTemp; + } + else + { + // + // Although this widget handled the PTR_DOWN message, + // it's message handler rearranged the widget tree and + // removed itself so we don't want to send any more + // messages directly to it after all. + // + g_psPointerWidget = 0; + } + } + + // + // If the widget returned success and the search should stop on + // success then return immediately. + // + if((ui32Ret != 0) && bStopOnSuccess) + { + return(ui32Ret); + } + + // + // See if this widget has a sibling. + // + if(psTemp->psNext) + { + // + // Visit the sibling of this widget. + // + psTemp = psTemp->psNext; + + // + // Since this widget has not been searched yet, break out + // of the controlling loop. + // + break; + } + else + { + // + // This widget has no siblings, so go to its parent. Since + // the parent has already been searched, the same sibling + // vs. parent decision must be made on this widget as well. + // + psTemp = psTemp->psParent; + } + } + } + } + + // + // No widget returned success for the message, or bStopOnSuccess was zero, + // so return zero. + // + return(0); +} + +//***************************************************************************** +// +//! Adds a message to the widget message queue. +//! +//! \param psWidget is the widget to which the message should be sent. +//! \param ui32Message is the message to be sent. +//! \param ui32Param1 is the first parameter to the message. +//! \param ui32Param2 is the second parameter to the message. +//! \param bPostOrder is \b true if the message should be sent via a post-order +//! search, and \b false if it should be sent via a pre-order search. +//! \param bStopOnSuccess is \b true if the message should be sent to widgets +//! until one returns success, and \b false if it should be sent to all +//! widgets. +//! +//! This function places a widget message into the message queue for later +//! processing. The messages are removed from the queue by +//! WidgetMessageQueueProcess() and sent to the appropriate place. +//! +//! It is safe for code which interrupts WidgetMessageQueueProcess() (or called +//! by it) to call this function to send a message. It is not safe for code +//! which interrupts this function to call this function as well; it is up to +//! the caller to guarantee that the later sequence never occurs. +//! +//! \return Returns 1 if the message was added to the queue, and 0 if it could +//! not be added since either the queue is full or another context is currently +//! adding a message to the queue. +// +//***************************************************************************** +int32_t +WidgetMessageQueueAdd(tWidget *psWidget, uint32_t ui32Message, + uint32_t ui32Param1, uint32_t ui32Param2, + bool bPostOrder, bool bStopOnSuccess) +{ + uint32_t ui32Next; + uint32_t ui32Owned; + + // + // Check the arguments. + // + ASSERT(psWidget); + + // + // Get the mutex we use to protect access to the message queue. + // + ui32Owned = WidgetMutexGet(&g_ui8MQMutex); + if(ui32Owned) + { + // + // The mutex is already being held by some other caller so return a + // failure. + // +#ifdef DEBUG_MSGQ + g_ui32MQMutexClash++; +#endif + return(0); + } + + // + // Compute the next value for the write pointer. + // + ui32Next = (g_ui32MQWrite + 1) % QUEUE_SIZE; + + // + // If the queue is not empty, and this is a pointer move message, see if + // the previous message was also a move and, if so, replace the + // coordinates. Without this, the message queue can very quickly overflow + // if the application is busy doing something while the user keeps pressing + // the display. + // + if(ui32Message == WIDGET_MSG_PTR_MOVE) + { + // + // Is the message queue empty? + // + if(g_ui32MQRead != g_ui32MQWrite) + { + // + // No - what is the index of the previous message? + // + ui32Owned = (g_ui32MQWrite == 0) ? (QUEUE_SIZE - 1) : + (g_ui32MQWrite - 1); + + // + // Was this a pointer move message? + // + if(g_psMQ[g_ui32MQWrite].ui32Message == WIDGET_MSG_PTR_MOVE) + { + // + // Yes - overwrite this message with the new + // coordinate information. + // + g_psMQ[ui32Owned].ui32Param1 = ui32Param1; + g_psMQ[ui32Owned].ui32Param2 = ui32Param2; +#ifdef DEBUG_MSGQ + g_ui32MQMoveOverwrite++; +#endif + + // + // Release the message queue mutex. + // + WidgetMutexPut(&g_ui8MQMutex); + + // + // Success. + // + return(1); + } + } + } + + // + // Return a failure if the message queue is full. + // + if(ui32Next == g_ui32MQRead) + { +#ifdef DEBUG_MSGQ + g_ui32MQOverflow++; + if(ui32Message != WIDGET_MSG_PTR_MOVE) + { + g_ui32MQNonMouseOverflow++; + g_ui32MQLastLostMsg = ui32Message; + } +#endif + // + // Release the message queue mutex. + // + WidgetMutexPut(&g_ui8MQMutex); + + return(0); + } + + // + // Write this message into the next location in the message queue. + // + g_psMQ[g_ui32MQWrite].ui32Flags = ((bPostOrder ? MQ_FLAG_POST_ORDER : 0) | + (bStopOnSuccess ? MQ_FLAG_STOP_ON_SUCCESS : + 0)); + g_psMQ[g_ui32MQWrite].psWidget = psWidget; + g_psMQ[g_ui32MQWrite].ui32Message = ui32Message; + g_psMQ[g_ui32MQWrite].ui32Param1 = ui32Param1; + g_psMQ[g_ui32MQWrite].ui32Param2 = ui32Param2; + + // + // Update the message queue write pointer. + // + g_ui32MQWrite = ui32Next; + + // + // Release the message queue mutex. + // + WidgetMutexPut(&g_ui8MQMutex); + + // + // Success. + // + return(1); +} + +//***************************************************************************** +// +//! Processes the messages in the widget message queue. +//! +//! This function extracts messages from the widget message queue one at a time +//! and processes them. If the processing of a widget message requires that a +//! new message be sent, it is acceptable to call WidgetMessageQueueAdd(). It +//! is also acceptable for code which interrupts this function to call +//! WidgetMessageQueueAdd() to send more messages. In both cases, the newly +//! added message will also be processed before this function returns. +//! +//! \return None. +// +//***************************************************************************** +void +WidgetMessageQueueProcess(void) +{ + tWidget *psWidget; + uint32_t ui32Flags, ui32Message, ui32Param1, ui32Param2; + + // + // Loop while there are more messages in the message queue. + // + while(g_ui32MQRead != g_ui32MQWrite) + { + // + // Copy the contents of this message into local variables. + // + psWidget = g_psMQ[g_ui32MQRead].psWidget; + ui32Flags = g_psMQ[g_ui32MQRead].ui32Flags; + ui32Message = g_psMQ[g_ui32MQRead].ui32Message; + ui32Param1 = g_psMQ[g_ui32MQRead].ui32Param1; + ui32Param2 = g_psMQ[g_ui32MQRead].ui32Param2; + + // + // Remove this message from the queue. + // + g_ui32MQRead = (g_ui32MQRead + 1) % QUEUE_SIZE; + + // + // See if this message should be sent via a post-order or pre-order + // search. + // + if(ui32Flags & MQ_FLAG_POST_ORDER) + { + // + // Send this message with a post-order search of the widget tree. + // + WidgetMessageSendPostOrder(psWidget, ui32Message, ui32Param1, + ui32Param2, + ((ui32Flags & MQ_FLAG_STOP_ON_SUCCESS) ? + true : false)); + } + else + { + // + // Send this message with a pre-order search of the widget tree. + // + WidgetMessageSendPreOrder(psWidget, ui32Message, ui32Param1, + ui32Param2, + ((ui32Flags & MQ_FLAG_STOP_ON_SUCCESS) ? + true : false)); + } + } +} + +//***************************************************************************** +// +//! Sends a pointer message. +//! +//! \param ui32Message is the pointer message to be sent. +//! \param i32X is the X coordinate associated with the message. +//! \param i32Y is the Y coordinate associated with the message. +//! +//! This function sends a pointer message to the root widget. A pointer driver +//! (such as a touch screen driver) can use this function to deliver pointer +//! activity to the widget tree without having to have direct knowledge of the +//! structure of the widget framework. +//! +//! \return Returns 1 if the message was added to the queue, and 0 if it could +//! not be added since the queue is full. +// +//***************************************************************************** +int32_t +WidgetPointerMessage(uint32_t ui32Message, int32_t i32X, int32_t i32Y) +{ + // + // Add the message to the widget message queue. + // + return(WidgetMessageQueueAdd(WIDGET_ROOT, ui32Message, i32X, i32Y, true, + true)); +} + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** diff --git a/grlib/widget.h b/grlib/widget.h new file mode 100644 index 0000000..2e755f7 --- /dev/null +++ b/grlib/widget.h @@ -0,0 +1,258 @@ +//***************************************************************************** +// +// widget.h - Prototypes for the widget base "class". +// +// Copyright (c) 2008-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the Tiva Graphics Library. +// +//***************************************************************************** + +#ifndef __WIDGET_H__ +#define __WIDGET_H__ + +//***************************************************************************** +// +//! \addtogroup widget_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +// If building with a C++ compiler, make all of the definitions in this header +// have a C binding. +// +//***************************************************************************** +#ifdef __cplusplus +extern "C" +{ +#endif + +//***************************************************************************** +// +//! The structure that describes a generic widget. This structure is the base +//! ``class'' for all other widgets. +// +//***************************************************************************** +typedef struct __Widget +{ + // + //! The size of this structure. This will be the size of the full + //! structure, not just the generic widget subset. + // + int32_t i32Size; + + // + //! A pointer to this widget's parent widget. + // + struct __Widget *psParent; + + // + //! A pointer to this widget's first sibling widget. + // + struct __Widget *psNext; + + // + //! A pointer to this widget's first child widget. + // + struct __Widget *psChild; + + // + //! A pointer to the display on which this widget resides. + // + const tDisplay *psDisplay; + + // + //! The rectangle that encloses this widget. + // + tRectangle sPosition; + + // + //! The procedure that handles messages sent to this widget. + // + int32_t (*pfnMsgProc)(struct __Widget *psWidget, uint32_t ui32Message, + uint32_t ui32Param1, uint32_t ui32Param2); +} +tWidget; + +//***************************************************************************** +// +//! The widget at the root of the widget tree. This can be used when +//! constructing a widget tree at compile time (used as the psParent argument to +//! a widget declaration) or as the psWidget argument to an API (such as +//! WidgetPaint() to paint the entire widget tree). +// +//***************************************************************************** +#define WIDGET_ROOT &g_sRoot + +//***************************************************************************** +// +//! This message is sent to indicate that the widget should draw itself on the +//! display. Neither \e ui32Param1 nor \e ui32Param2 are used by this message. +//! This message is delivered in top-down order. +// +//***************************************************************************** +#define WIDGET_MSG_PAINT 0x00000001 + +//***************************************************************************** +// +//! This message is sent to indicate that the pointer is now down. +//! \e ui32Param1 is the X coordinate of the location where the pointer down +//! event occurred, and \e ui32Param2 is the Y coordinate. This message is +//! delivered in bottom-up order. +// +//***************************************************************************** +#define WIDGET_MSG_PTR_DOWN 0x00000002 + +//***************************************************************************** +// +//! This message is sent to indicate that the pointer has moved while being +//! down. \e ui32Param1 is the X coordinate of the new pointer location, and +//! \e ui32Param2 is the Y coordinate. This message is delivered in bottom-up +//! order. +// +//***************************************************************************** +#define WIDGET_MSG_PTR_MOVE 0x00000003 + +//***************************************************************************** +// +//! This message is sent to indicate that the pointer is now up. \e ui32Param1 +//! is the X coordinate of the location where the pointer up event occurred, +//! and \e ui32Param2 is the Y coordinate. This message is delivered in +//! bottom-up order. +// +//***************************************************************************** +#define WIDGET_MSG_PTR_UP 0x00000004 + +//***************************************************************************** +// +//! This message is sent by the application to indicate that there has been a +//! key press or button press meaning "up". \e ui32Param1 by convention is a +//! pointer to the widget that is the intended recipient of the key press. +//! This is controlled by the application. +// +//***************************************************************************** +#define WIDGET_MSG_KEY_UP 0x00000005 + +//***************************************************************************** +// +//! This message is sent by the application to indicate that there has been a +//! key press or button press meaning "down". \e ui32Param1 by convention is a +//! pointer to the widget that is the intended recipient of the key press. +//! This is controlled by the application. +// +//***************************************************************************** +#define WIDGET_MSG_KEY_DOWN 0x00000006 + +//***************************************************************************** +// +//! This message is sent by the application to indicate that there has been a +//! key press or button press meaning "left". \e ui32Param1 by convention is a +//! pointer to the widget that is the intended recipient of the key press. +//! This is controlled by the application. +// +//***************************************************************************** +#define WIDGET_MSG_KEY_LEFT 0x00000007 + +//***************************************************************************** +// +//! This message is sent by the application to indicate that there has been a +//! key press or button press meaning "right". \e ui32Param1 by convention is a +//! pointer to the widget that is the intended recipient of the key press. +//! This is controlled by the application. +// +//***************************************************************************** +#define WIDGET_MSG_KEY_RIGHT 0x00000008 + +//***************************************************************************** +// +//! This message is sent by the application to indicate that there has been a +//! key press or button press meaning "select". \e ui32Param1 by convention is +//! a pointer to the widget that is the intended recipient of the key press. +//! This is controlled by the application. +// +//***************************************************************************** +#define WIDGET_MSG_KEY_SELECT 0x00000009 + +//***************************************************************************** +// +//! Requests a redraw of the widget tree. +//! +//! \param psWidget is a pointer to the widget tree to paint. +//! +//! This function sends a \b #WIDGET_MSG_PAINT message to the given widgets, +//! and all of the widget beneath it, so that they will draw or redraw +//! themselves on the display. The actual drawing will occur when this message +//! is retrieved from the message queue and processed. +//! +//! \return Returns 1 if the message was added to the message queue and 0 if it +//! cound not be added (due to the queue being full). +// +//***************************************************************************** +#define WidgetPaint(psWidget) \ + WidgetMessageQueueAdd(psWidget, WIDGET_MSG_PAINT, 0, 0, false, false) + +//***************************************************************************** +// +// Prototypes for the generic widget handling functions. +// +//***************************************************************************** +extern tWidget g_sRoot; +extern int32_t WidgetDefaultMsgProc(tWidget *psWidget, uint32_t ui32Message, + uint32_t ui32Param1, uint32_t ui32Param2); +extern void WidgetAdd(tWidget *psParent, tWidget *psWidget); +extern void WidgetRemove(tWidget *psWidget); +extern uint32_t WidgetMessageSendPreOrder(tWidget *psWidget, + uint32_t ui32Message, + uint32_t ui32Param1, + uint32_t ui32Param2, + bool bStopOnSuccess); +extern uint32_t WidgetMessageSendPostOrder(tWidget *psWidget, + uint32_t ui32Message, + uint32_t ui32Param1, + uint32_t ui32Param2, + bool bStopOnSuccess); +extern int32_t WidgetMessageQueueAdd(tWidget *psWidget, uint32_t ui32Message, + uint32_t ui32Param1, + uint32_t ui32Param2, + bool bPostOrder, + bool bStopOnSuccess); +extern void WidgetMessageQueueProcess(void); +extern int32_t WidgetPointerMessage(uint32_t ui32Message, int32_t i32X, + int32_t i32Y); +extern void WidgetMutexInit(uint8_t *pi8Mutex); +extern uint32_t WidgetMutexGet(uint8_t *pi8Mutex); +extern void WidgetMutexPut(uint8_t *pi8Mutex); + +//***************************************************************************** +// +// Mark the end of the C bindings section for C++ compilers. +// +//***************************************************************************** +#ifdef __cplusplus +} +#endif + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** + +#endif // __WIDGET_H__ -- cgit v1.3.1