Merge pull request #11899 from gemu2015/lvgl_update

fix lvgl pushcolors
This commit is contained in:
Theo Arends 2021-04-26 15:37:44 +02:00 committed by GitHub
commit 301ff373a8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 9 deletions

View File

@ -66,6 +66,9 @@ uDisplay::uDisplay(char *lp) : Renderer(800, 600) {
lutftime = 350;
lut3time = 10;
ep_mode = 0;
fg_col = 1;
bg_col = 0;
splash_font = -1;
allcmd_mode = 0;
startline = 0xA1;
uint8_t section = 0;
@ -527,7 +530,7 @@ Renderer *uDisplay::Init(void) {
Serial.printf("delay %d ms\n", delay_ms);
#endif
}
}
if (index >= dsp_ncmds) break;
}
@ -575,8 +578,10 @@ void uDisplay::DisplayInit(int8_t p, int8_t size, int8_t rot, int8_t font) {
setTextSize(size);
setTextColor(fg_col, bg_col);
setCursor(0,0);
fillScreen(bg_col);
Updateframe();
if (splash_font >= 0) {
fillScreen(bg_col);
Updateframe();
}
#ifdef UDSP_DEBUG
Serial.printf("Dsp Init complete \n");
@ -1036,11 +1041,18 @@ static inline uint8_t ulv_color_to1(uint16_t color) {
return 0;
}
}
void uDisplay::pushColors(uint16_t *data, uint16_t len, boolean first) {
void uDisplay::pushColors(uint16_t *data, uint16_t len, boolean not_inverted) {
uint16_t color;
//Serial.printf("push %x - %d\n", (uint32_t)data, len);
#ifdef ESP32
// reversed order for DMA, so non-DMA needs to get back to normal order
if (!not_inverted && !lvgl_param.use_dma) {
for (uint32_t i = 0; i < len; i++) (data[i] = data[i] << 8 | data[i] >> 8);
}
#endif
if (bpp != 16) {
// stupid monchrome version
for (uint32_t y = seta_yp1; y < seta_yp2; y++) {
@ -1064,8 +1076,6 @@ void uDisplay::pushColors(uint16_t *data, uint16_t len, boolean first) {
if (lvgl_param.use_dma) {
pushPixelsDMA(data, len );
} else {
// reversed order for DMA, so non-DMA needs to get back to normal order
for (uint32_t i = 0; i < len; i++) (data[i] = data[i] << 8 | data[i] >> 8);
uspi->writePixels(data, len * 2);
}
#endif

View File

@ -163,8 +163,8 @@ class uDisplay : public Renderer {
uint8_t dsp_on;
uint8_t dsp_off;
uint8_t allcmd_mode;
uint16_t splash_font;
uint16_t splash_size;
int8_t splash_font;
uint8_t splash_size;
uint16_t splash_xp;
uint16_t splash_yp;
uint16_t fg_col;

View File

@ -162,7 +162,7 @@ void lv_flush_callback(lv_disp_drv_t *disp, const lv_area_t *area, lv_color_t *c
uint32_t pixels_len = width * height;
uint32_t chrono_start = millis();
display->setAddrWindow(area->x1, area->y1, area->x1+width, area->y1+height);
display->pushColors((uint16_t *)color_p, pixels_len, true);
display->pushColors((uint16_t *)color_p, pixels_len, false);
display->setAddrWindow(0,0,0,0);
uint32_t chrono_time = millis() - chrono_start;