|
LCDGFX LCD display driver
1.2.0
Lightweight graphics library for SSD1306, SSD1325, SSD1327, SSD1331, SSD1351, SH1106, SH1107, IL9163, ST7735, ST7789, ILI9341, PCD8544 displays over I2C/SPI
|
NanoCanvasOps provides operations for drawing in memory buffer. More...
#include <display.h>


Public Types | |
| typedef NanoDisplayOps< O, I > | T |
| Base type for display operations class. | |
Public Member Functions | |
| void | putPixel (const NanoPoint &p) |
| Draws pixel on specified position. More... | |
| void | drawLine (lcdint_t x1, lcdint_t y1, lcdint_t x2, lcdint_t y2) |
| Draws line. More... | |
| void | drawLine (const NanoRect &rect) |
| Draws line. More... | |
| void | drawRect (lcdint_t x1, lcdint_t y1, lcdint_t x2, lcdint_t y2) |
| Draws rectangle. More... | |
| void | drawRect (const NanoRect &rect) |
| Draws rectangle. More... | |
| void | fillRect (const NanoRect &rect) |
| Fills rectangle area. More... | |
| void | clearRect (lcdint_t x1, lcdint_t y1, lcdint_t x2, lcdint_t y2) |
| Clears rectangle area (fills with black/zero color). More... | |
| void | clearRect (const NanoRect &rect) |
| Clears rectangle area (fills with black/zero color). More... | |
| void | drawCircle (lcdint_t xc, lcdint_t yc, lcdint_t r, uint8_t options=0x0F) |
| Draws circle. More... | |
| void | drawCanvas (lcdint_t x, lcdint_t y, NanoCanvasOps< 1 > &canvas) __attribute__((noinline)) |
| Draws 1-bit canvas on lcd display. More... | |
| void | drawCanvas (lcdint_t x, lcdint_t y, NanoCanvasOps< 4 > &canvas) __attribute__((noinline)) |
| Draws 4-bit canvas on lcd display. More... | |
| void | drawCanvas (lcdint_t x, lcdint_t y, NanoCanvasOps< 8 > &canvas) __attribute__((noinline)) |
| Draws 8-bit canvas on lcd display. More... | |
| void | drawCanvas (lcdint_t x, lcdint_t y, NanoCanvasOps< 16 > &canvas) __attribute__((noinline)) |
| Draws 16-bit canvas on lcd display. More... | |
| void | printFixedPgm (lcdint_t xpos, lcdint_t y, const char *ch, EFontStyle style=STYLE_NORMAL) __attribute__((noinline)) |
| Print text at specified position to canvas. More... | |
| void | write (const char *str) |
| Prints text at current cursor position. More... | |
| void | print (int number) |
| Prints number at current cursor position To specify cursor position using setTextCursor() method. More... | |
| void | print (float number) |
| Prints number at current cursor position To specify cursor position using setTextCursor() method. More... | |
| void | print (char c) |
| Prints single character at current cursor position To specify cursor position using setTextCursor() method. More... | |
| void | createMenu (SAppMenu *menu, const char **items, uint8_t count, const NanoRect &rect={}) |
| Creates menu object with the provided list of menu items. More... | |
| void | showMenu (SAppMenu *menu) |
| Shows menu items on the display. More... | |
| void | showMenuSmooth (SAppMenu *menu) |
| Shows menu items on the display. More... | |
| void | updateMenu (SAppMenu *menu) |
| Updates menu items on the display. More... | |
| void | updateMenuSmooth (SAppMenu *menu) |
| Updates menu items on the display. More... | |
| uint8_t | menuSelection (const SAppMenu *menu) |
| Returns currently selected menu item. More... | |
| void | menuDown (SAppMenu *menu) |
| Moves selection pointer down by 1 item. More... | |
| void | menuUp (SAppMenu *menu) |
| Moves selection pointer up by 1 item. More... | |
| void | drawProgressBar (int8_t progress) |
| Displays progress bar in the middle of the display. More... | |
| void | drawWindow (lcdint_t x, lcdint_t y, lcduint_t width, lcduint_t height, const char *caption, bool blank) |
| Displays window at specified position and of specified size. More... | |
Protected Member Functions | |
| virtual void | begin ()=0 |
| Initializes interface and display. | |
| virtual void | end ()=0 |
| closes interface to lcd display | |
NanoCanvasOps provides operations for drawing in memory buffer.
Depending on BPP argument, this class can work with 1,8,16-bit canvas areas.
| void NanoDisplayOps< O, I >::clearRect | ( | lcdint_t | x1, |
| lcdint_t | y1, | ||
| lcdint_t | x2, | ||
| lcdint_t | y2 | ||
| ) |
Clears rectangle area (fills with black/zero color).
Saves and restores the current drawing color.
| x1 | - position X |
| y1 | - position Y |
| x2 | - position X |
| y2 | - position Y |
Definition at line 594 of file ssd1306_common.inl.
| void NanoDisplayOps< O, I >::clearRect | ( | const NanoRect & | rect | ) |
Clears rectangle area (fills with black/zero color).
Saves and restores the current drawing color.
| rect | - structure, describing rectangle area |
Definition at line 602 of file ssd1306_common.inl.
| void NanoDisplayOps< O, I >::createMenu | ( | SAppMenu * | menu, |
| const char ** | items, | ||
| uint8_t | count, | ||
| const NanoRect & | rect = {} |
||
| ) |
Creates menu object with the provided list of menu items.
List of menu items (strings) must exist all until menu object is no longer needed. Selection is set to the first item by default.
| menu | pointer to SAppMenu structure |
| items | array of null-termintated strings (located in SRAM) |
| count | count of menu items in the array |
| rect | screen area to use for menu |
Definition at line 741 of file ssd1306_common.inl.
| void NanoDisplayOps< O, I >::drawCanvas | ( | lcdint_t | x, |
| lcdint_t | y, | ||
| NanoCanvasOps< 1 > & | canvas | ||
| ) |
Draws 1-bit canvas on lcd display.
| x | x position in pixels |
| y | y position in pixels |
| canvas | 1-bit canvas to draw on the screen. |
Definition at line 844 of file ssd1306_common.inl.
| void NanoDisplayOps< O, I >::drawCanvas | ( | lcdint_t | x, |
| lcdint_t | y, | ||
| NanoCanvasOps< 4 > & | canvas | ||
| ) |
Draws 4-bit canvas on lcd display.
| x | x position in pixels |
| y | y position in pixels |
| canvas | 4-bit canvas to draw on the screen. |
Definition at line 849 of file ssd1306_common.inl.
| void NanoDisplayOps< O, I >::drawCanvas | ( | lcdint_t | x, |
| lcdint_t | y, | ||
| NanoCanvasOps< 8 > & | canvas | ||
| ) |
Draws 8-bit canvas on lcd display.
| x | x position in pixels |
| y | y position in pixels |
| canvas | 8-bit canvas to draw on the screen. |
Definition at line 854 of file ssd1306_common.inl.
| void NanoDisplayOps< O, I >::drawCanvas | ( | lcdint_t | x, |
| lcdint_t | y, | ||
| NanoCanvasOps< 16 > & | canvas | ||
| ) |
Draws 16-bit canvas on lcd display.
| x | x position in pixels |
| y | y position in pixels |
| canvas | 16-bit canvas to draw on the screen. |
Definition at line 859 of file ssd1306_common.inl.
| void NanoDisplayOps< O, I >::drawCircle | ( | lcdint_t | xc, |
| lcdint_t | yc, | ||
| lcdint_t | r, | ||
| uint8_t | options = 0x0F |
||
| ) |
Draws circle.
| xc | horizontal position of circle center in pixels |
| yc | vertical position of circle center in pixels |
| r | radius of circle in pixels |
| options | draw specific sections: each bit corresponds to 90 degree section |
Definition at line 607 of file ssd1306_common.inl.
| void NanoDisplayOps< O, I >::drawLine | ( | lcdint_t | x1, |
| lcdint_t | y1, | ||
| lcdint_t | x2, | ||
| lcdint_t | y2 | ||
| ) |
Draws line.
| x1 | - position X |
| y1 | - position Y |
| x2 | - position X |
| y2 | - position Y |
Definition at line 538 of file ssd1306_common.inl.
| void NanoDisplayOps< O, I >::drawLine | ( | const NanoRect & | rect | ) |
Draws line.
| rect | - structure, describing rectangle area |
Definition at line 584 of file ssd1306_common.inl.
| void NanoDisplayOps< O, I >::drawProgressBar | ( | int8_t | progress | ) |
Displays progress bar in the middle of the display.
| progress | progress in range 0 - 100. |
Definition at line 864 of file ssd1306_common.inl.
| void NanoDisplayOps< O, I >::drawRect | ( | lcdint_t | x1, |
| lcdint_t | y1, | ||
| lcdint_t | x2, | ||
| lcdint_t | y2 | ||
| ) |
Draws rectangle.
| x1 | - position X |
| y1 | - position Y |
| x2 | - position X |
| y2 | - position Y |
Definition at line 525 of file ssd1306_common.inl.
| void NanoDisplayOps< O, I >::drawRect | ( | const NanoRect & | rect | ) |
Draws rectangle.
| rect | - structure, describing rectangle area |
Definition at line 533 of file ssd1306_common.inl.
| void NanoDisplayOps< O, I >::drawWindow | ( | lcdint_t | x, |
| lcdint_t | y, | ||
| lcduint_t | width, | ||
| lcduint_t | height, | ||
| const char * | caption, | ||
| bool | blank | ||
| ) |
Displays window at specified position and of specified size.
| x | x position in pixels from top-lef corner |
| y | y position in pixels from top-lef corner |
| width | width of window to draw. Can be 0. |
| height | height of windows to draw. Can be 0. |
| caption | text to display as caption |
| blank | true if content inside window should be blanked |
Definition at line 895 of file ssd1306_common.inl.
| void NanoDisplayOps< O, I >::fillRect | ( | const NanoRect & | rect | ) |
Fills rectangle area.
| rect | - structure, describing rectangle area |
Definition at line 589 of file ssd1306_common.inl.
| void NanoDisplayOps< O, I >::menuDown | ( | SAppMenu * | menu | ) |
Moves selection pointer down by 1 item.
If there are no items below, it will set selection pointer to the first item. Use updateMenu() to refresh menu state on the display.
| menu | pointer to SAppMenu structure |
Definition at line 820 of file ssd1306_common.inl.
| uint8_t NanoDisplayOps< O, I >::menuSelection | ( | const SAppMenu * | menu | ) |
Returns currently selected menu item.
First item has zero-index.
| menu | pointer to SAppMenu structure |
Definition at line 815 of file ssd1306_common.inl.
| void NanoDisplayOps< O, I >::menuUp | ( | SAppMenu * | menu | ) |
Moves selection pointer up by 1 item.
If selected item is the first one, then selection pointer will set to the last item in menu list. Use updateMenu() to refresh menu state on the display.
| menu | pointer to SAppMenu structure |
Definition at line 832 of file ssd1306_common.inl.
| void NanoDisplayOps< O, I >::print | ( | int | number | ) |
Prints number at current cursor position To specify cursor position using setTextCursor() method.
| number | integer number to print |
Definition at line 661 of file ssd1306_common.inl.
| void NanoDisplayOps< O, I >::print | ( | float | number | ) |
Prints number at current cursor position To specify cursor position using setTextCursor() method.
| number | float number to print |
Definition at line 668 of file ssd1306_common.inl.
| void NanoDisplayOps< O, I >::print | ( | char | c | ) |
Prints single character at current cursor position To specify cursor position using setTextCursor() method.
| c | character to print |
Definition at line 675 of file ssd1306_common.inl.
| void NanoDisplayOps< O, I >::printFixedPgm | ( | lcdint_t | xpos, |
| lcdint_t | y, | ||
| const char * | ch, | ||
| EFontStyle | style = STYLE_NORMAL |
||
| ) |
Print text at specified position to canvas.
| xpos | position in pixels |
| y | position in pixels |
| ch | pointer to NULL-terminated string, located in flash |
| style | specific font style to use |
Definition at line 637 of file ssd1306_common.inl.
| void NanoDisplayOps< O, I >::putPixel | ( | const NanoPoint & | p | ) |
Draws pixel on specified position.
| p | - NanoPoint |
Definition at line 520 of file ssd1306_common.inl.
| void NanoDisplayOps< O, I >::showMenu | ( | SAppMenu * | menu | ) |
Shows menu items on the display.
If menu items cannot fit the display, the function provides scrolling.
| menu | pointer to SAppMenu structure |
Definition at line 754 of file ssd1306_common.inl.
| void NanoDisplayOps< O, I >::showMenuSmooth | ( | SAppMenu * | menu | ) |
Shows menu items on the display.
If menu items cannot fit the display, the function provides scrolling. Unlike showMenu() this implementation uses more graph functions and requires more flash, but result looks better.
| menu | pointer to SAppMenu structure |
Definition at line 766 of file ssd1306_common.inl.
| void NanoDisplayOps< O, I >::updateMenu | ( | SAppMenu * | menu | ) |
Updates menu items on the display.
That is if selection is changed, the function will update only those areas, affected by the change.
| menu | Pointer to SAppMenu structure |
Definition at line 778 of file ssd1306_common.inl.
| void NanoDisplayOps< O, I >::updateMenuSmooth | ( | SAppMenu * | menu | ) |
Updates menu items on the display.
That is if selection is changed, the function will update only those areas, affected by the change. Unlike showMenu() this implementation uses more graph functions and requires more flash, but result looks better.
| menu | Pointer to SAppMenu structure |
Definition at line 797 of file ssd1306_common.inl.
| void NanoDisplayOps< O, I >::write | ( | const char * | str | ) |
Prints text at current cursor position.
To specify cursor position using setTextCursor() method.
| str | text to print (null-terminated string) |
Definition at line 652 of file ssd1306_common.inl.