The GLCDlib library for the Graphics Board has been extended to support multiple fonts!
If you look closely, you’ll see that even kerning has been implemented – making italics much nicer.
The main use I see for this is not so much about going overboard with all sort of “roman”, “italic”, or “bold” mixes (although now you can), but to mix different font sizes on the same screen (large values, small labels, etc).
Here’s the new font_demo.pde sketch which produces the above display:
That’s just 7 of the 250+ fonts and variations now present in the GLCD library :)
To use a font, include the proper header in your sketch, and call glcd.setFont() to activate it. The thing to keep in mind is that fonts use up flash memory space. I’ve come up with a fairly compact way to store them, but larger fonts obviously need more memory than tiny ones, especially if they include all ASCII character codes. Also, proportional fonts need more space than mono-spaced fonts, due to extra per-character width / offset info.
Here is an overview of the amount of memory needed for each font, sorted by size:
246 micro
294 4x6
294 clR4x6
366 clR5x6
426 5x7
438 clR6x6
486 5x8
486 clR5x8
582 clR6x8
606 clR5x10
...
7099 helvBO24
7165 charB24
7240 ncenI24
7376 lubB24
7478 lubI24
7529 charBI24
7595 ncenBI24
7762 luBS24
8148 lubBI24
8627 luBIS24
The above sketch compiles to 12572 bytes, of which about 8 Kb are fonts.
One last note: these changes mean that you now always have to set up some font before calling drawChar() or drawString(), there is no default (it might not be the one you want, or you might not need any fonts at all).
Superb work there Mr W!
Just one thing… It’s a quick brown fox, not a big one :-)
Who says so? Can’t big foxes jump?
Thx, I’ll take a new picture tomorrow and replace it :)
nice work ,even 4×6 is good readable.
And while we are at it: s/jumped/jumps/ ;)
Ok, ok. Another round tomorrow!
\o/