Again I have not used their library in awhile and never used their canvas stuff. But for example with a really simple fillScreen test like:
Code:
#define USE_ADAFRUIT
#ifdef USE_ADAFRUIT
#include <Adafruit_GFX.h> // Core graphics library
#include <Adafruit_ST7735.h> // Hardware-specific library for ST7735
#include <Adafruit_ST7789.h> // Hardware-specific library for ST7789
#else
#include <Adafruit_GFX.h> // Core graphics library
#include <ST7789_t3.h> // Hardware-specific library
#include <ST7735_t3.h> // Hardware-specific library
#endif
#include <SPI.h>
// T4.0
#define TFT_SCLK 13
#define TFT_DATA 11
#define TFT_CS 10
#define TFT_DC 9
#define TFT_RST 28
#ifdef USE_ADAFRUIT
Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_RST);
#else
ST7789_t3 tft = ST7789_t3(TFT_CS, TFT_DC, TFT_DATA, TFT_SCLK, TFT_RST);
#endif
void setup() {
while (!Serial && millis() < 5000) ;
Serial.begin(115200);
tft.init(240, 320);
}
void loop() {
elapsedMillis em = 0;
tft.fillScreen(ST77XX_RED);
tft.fillScreen(ST77XX_GREEN);
tft.fillScreen(ST77XX_BLUE);
tft.fillScreen(ST77XX_BLACK);
tft.fillScreen(ST77XX_WHITE);
Serial.println((uint32_t)em, DEC);
delay(1000);
}
Note this is the ST7789 240x320 as that is what I had easily setup...
Running with our library the elapsed millis is printing about 256 and the Adafruit is printing about 317...
And I don't know how much different it would be using their draw function versus our writeRect...
But again probably not hard to setup a test to see.
Edit: as for worst case timing... again all of that may be controlled, like you only start the next update after some period has elapsed from the previous update...
But again I don't know your setup.