LCDGFX LCD display driver
1.1.5
This library is developed to control SSD1306/SSD1325/SSD1327/SSD1331/SSD1351/IL9163/PCD8554 RGB i2c/spi LED displays
|
#include <nano_engine_v2.h>
Additional Inherited Members | |
![]() | |
typedef NanoEngineTiler< C, D > | TilerT |
![]() | |
NanoEngine (D &display) | |
void | display () |
refreshes content on oled display. Refreshes content on oled display. Call it, if you want to update the screen. Engine will update only those areas, which are marked by refresh() methods. | |
void | begin () |
void | notify (const char *str) |
shows notification to a user for 1 seconds Shows notification to a user for 1 seconds More... | |
![]() | |
void | setFrameRate (uint8_t fps) |
uint8_t | getFrameRate () |
uint8_t | getCpuLoad () |
bool | nextFrame () |
void | loopCallback (TLoopCallback callback) |
![]() | |
void | refresh () |
void | refresh (const NanoRect &rect) |
void | refresh (const NanoPoint &point) __attribute__((noinline)) |
void | refresh (lcdint_t x1, lcdint_t y1, lcdint_t x2, lcdint_t y2) __attribute__((noinline)) |
void | refreshWorld (const NanoRect &rect) |
void | refreshWorld (lcdint_t x1, lcdint_t y1, lcdint_t x2, lcdint_t y2) __attribute__((noinline)) |
void | refreshWorld (const NanoPoint &point) |
void | localCoordinates () |
void | worldCoordinates () |
void | moveTo (const NanoPoint &position) |
void | moveToAndRefresh (const NanoPoint &position) |
const NanoPoint & | getPosition () const |
void | drawCallback (TNanoEngineOnDraw callback) |
bool | collision (const NanoPoint &p, const NanoRect &rect) |
Returns true if point is inside the rectangle area. Returns true if point is inside the rectangle area. More... | |
void | insert (NanoEngineObject< TilerT > &object) __attribute__((noinline)) |
void | remove (NanoEngineObject< TilerT > &object) __attribute__((noinline)) |
void | update () __attribute__((noinline)) |
C & | getCanvas () |
D & | getDisplay () |
![]() | |
static bool | pressed (uint8_t buttons) |
Returns true if button or specific combination of buttons is pressed. Returns true if button or specific combination of buttons is pressed. More... | |
static bool | notPressed (uint8_t buttons) |
Returns true if button or specific combination of buttons is not pressed. Returns true if button or specific combination of buttons is not pressed. More... | |
static bool | clicked (uint8_t buttons) |
Returns true if button was clicked and released. Returns true if button was clicked and released. More... | |
static uint8_t | buttonsState () |
Returns bits of all pressed buttons. More... | |
static void | connectCustomKeys (TNanoEngineGetButtons handler) |
static void | connectZKeypad (uint8_t analogPin) |
Enables engine to use Z-Keypad. Enables engine to use Z-Keypad. Please refer to arkanoid example for schematics. More... | |
static void | connectArduboyKeys () |
Configures NanoEngine8 to use Arduboy keys layout. Configures NanoEngine8 to use Arduboy keys layout. | |
static void | connectKY40encoder (uint8_t pina_clk, uint8_t pinb_dt, int8_t pinc_sw=-1) |
Configures NanoEngine to use KY40 Rotary Encoder. Configures NanoEngine to use KY40 Rotary Encoder. More... | |
static void | connectGpioKeypad (const uint8_t *gpioKeys) |
Enables engine to use GPIO keys. More... | |
static void | connectWioKeypad () |
Connects Wio keys to NanoEngine. More... | |
![]() | |
void | beginCore () |
![]() | |
NanoEngineInputs () | |
![]() | |
NanoEngineTiler (D &display) | |
void | displayBuffer () __attribute__((noinline)) |
refreshes content on oled display. Refreshes content on oled display. Call it, if you want to update the screen. Engine will update only those areas, which are marked by refresh() methods. | |
void | displayPopup (const char *msg) |
prints popup message over display content prints popup message over display content More... | |
![]() | |
static void | resetButtonsCache () |
![]() | |
uint16_t | m_frameDurationMs = 1000 / ENGINE_DEFAULT_FPS |
uint8_t | m_fps = ENGINE_DEFAULT_FPS |
uint8_t | m_cpuLoad = 0 |
uint32_t | m_lastFrameTs = 0 |
TLoopCallback | m_loop = {nullptr} |
![]() | |
D & | m_display |
TNanoEngineOnDraw | m_onDraw |
uint16_t | m_refreshFlags [NE_MAX_TILE_ROWS] |
![]() | |
static TNanoEngineGetButtons | m_onButtons |
static uint8_t | m_lastButtons |
static uint8_t | m_newButtons |
NanoEngine1 is simple graphics engine, that implements double buffering work for the systems with very low resources. That is, memory buffer for SSD1306 oled display needs at least 128x64/8 bytes (1024 bytes), and this is inacceptable for microcontrollers like attiny85 (it has only 512B of RAM). So, to workaround issue with low resources, NanoEngine1 uses small tile buffer (NE_TILE_SIZE x NE_TILE_SIZE) and updates only part of oled screen at once. It makes system slow, but it is possible to run NanoEngine1 on simple controllers. If tile size is 32x32, then 128x64 oled display is devided into 8 tiles:
[0,0] [1,0] [2,0], [3,0]
[0,1] [1,1] [2,1], [3,1]
In your application you can choose, if you want to refresh whole screen (refresh()), or you need to refresh only part of oled display.
Definition at line 116 of file nano_engine_v2.h.