Text Renderer Module
This module provides functions for drawing chars and text on ssd1306 displays
1. Importing
#include "pico-ssd1306/textRenderer/TextRenderer.h"
note that core library and hardware_i2c library's need to be imported to use this library so follow steps from section 1 of readme.md
2. Differences from core library
Calling functions from modules is different from core lib. You can't just do object.drawText(... since modules don't
actually extend the SSD1306 class. You need to provide module functions with a pointer to a display object. So the first
argument of every module draw function is a pointer to a display.
To see this more clearly here is an example:
// Create a new display object
pico_ssd1306::SSD1306 display = pico_ssd1306::SSD1306(I2C_PORT, 0x3D, pico_ssd1306::Size::W128xH64);
// Draw some text
// Notice how we first pass the address of display object to the function
drawText(&display, font_12x16, "TEST text", 0 ,0);
3. Available fonts
This module comes with 4 fonts to choose from
- font_5x8 - 5px wide, 8px high font
- font_8x8 - 8px wide, 8px high font
- font_12x16 - 12px wide, 16px high font
- font_16x32 - 16px wide, 32px high font
Basic fonts support basic ASCII set chars (32-127), if you want to extended ASCII define
#define SSD1306_ASCII_FULL
at the top of your file
Note that using extended ASCII range increases project size
Creating your own fonts
doing so is not that hard a font is just a large array of bytes
const unsigned char font_16x32[] = {
...
};
the first 2 bytes are font's width and height
const unsigned char font_16x32[] = {
0x10, 0x20, // font width, height
...
};
then followed by char data for ascii characters 32 - 126
Unlike bitmap images in the core library, fonts are scanned right to left, top to bottom