From 9bbc4741aff7bfe5337ff2a350caac52b672a41e Mon Sep 17 00:00:00 2001 From: fvanroie <15969459+fvanroie@users.noreply.github.com> Date: Wed, 13 Jan 2021 00:12:05 +0100 Subject: [PATCH] Add invert_display runtime option --- src/drv/hasp_drv_display.cpp | 20 +++++++++++++++++--- src/drv/hasp_drv_display.h | 3 ++- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/drv/hasp_drv_display.cpp b/src/drv/hasp_drv_display.cpp index 3276c19e..9517a0f7 100644 --- a/src/drv/hasp_drv_display.cpp +++ b/src/drv/hasp_drv_display.cpp @@ -38,7 +38,7 @@ void m5stack_init() } #endif -void drv_display_init(uint8_t rotation) +void drv_display_init(lv_disp_drv_t * disp_drv, uint8_t rotation, bool invert_display) { #if defined(M5STACK) m5stack_init(); // Set LCD power first @@ -46,9 +46,23 @@ void drv_display_init(uint8_t rotation) /* TFT init */ #if defined(USE_FSMC) - fsmc_ili9341_init(rotation); + fsmc_ili9341_init(rotation, invert_display); + disp_drv->flush_cb = fsmc_ili9341_flush; // Normal callback when flushing // xpt2046_init(rotation); #else - tft_espi_init(rotation); + tft_espi_init(rotation, invert_display); + disp_drv->flush_cb = tft_espi_flush; // Normal callback when flushing #endif } + +/* Callback used for screenshots only: */ + +/* indirect callback to flush screenshot data to the screen */ +void drv_display_flush_cb(lv_disp_drv_t * disp, const lv_area_t * area, lv_color_t * color_p) +{ +#if defined(USE_FSMC) + fsmc_ili9341_flush(disp, area, color_p); +#else + tft_espi_flush(disp, area, color_p); +#endif +} \ No newline at end of file diff --git a/src/drv/hasp_drv_display.h b/src/drv/hasp_drv_display.h index 27951e5e..477cb762 100644 --- a/src/drv/hasp_drv_display.h +++ b/src/drv/hasp_drv_display.h @@ -11,6 +11,7 @@ #include "tft_espi_drv.h" #endif - void drv_display_init(uint8_t rotation); +void drv_display_init(lv_disp_drv_t * disp_drv, uint8_t rotation, bool invert_display); +void drv_display_flush_cb(lv_disp_drv_t * disp, const lv_area_t * area, lv_color_t * color_p); #endif \ No newline at end of file