mirror of https://github.com/arendst/Tasmota.git
parent
102428f768
commit
d525200a11
|
@ -36,7 +36,7 @@ typedef struct LVGL_PARAMS {
|
|||
uint8_t swap_color : 1;
|
||||
uint8_t async_dma : 1; // force DMA completion before returning, avoid conflict with other devices on same bus. If set you should make sure the display is the only device on the bus
|
||||
uint8_t busy_invert : 1;
|
||||
uint8_t resvd_2 : 1;
|
||||
uint8_t invert_bw : 1;
|
||||
uint8_t resvd_3 : 1;
|
||||
uint8_t resvd_4 : 1;
|
||||
uint8_t resvd_5 : 1;
|
||||
|
|
|
@ -2197,6 +2197,15 @@ void uDisplay::pushColorsMono(uint16_t *data, uint16_t len, bool rgb16_swap) {
|
|||
|
||||
for (uint32_t y = seta_yp1; y < seta_yp2; y++) {
|
||||
seta_yp1++;
|
||||
if (lvgl_param.invert_bw) {
|
||||
for (uint32_t x = seta_xp1; x < seta_xp2; x++) {
|
||||
uint16_t color = *data++;
|
||||
if (bpp == 1) color = (color & rgb16_to_mono_mask) ? 0 : 1;
|
||||
drawPixel(x, y, color); // todo - inline the method to save speed
|
||||
len--;
|
||||
if (!len) return; // failsafe - exist if len (pixel number) is exhausted
|
||||
}
|
||||
} else {
|
||||
for (uint32_t x = seta_xp1; x < seta_xp2; x++) {
|
||||
uint16_t color = *data++;
|
||||
if (bpp == 1) color = (color & rgb16_to_mono_mask) ? 1 : 0;
|
||||
|
@ -2206,6 +2215,7 @@ void uDisplay::pushColorsMono(uint16_t *data, uint16_t len, bool rgb16_swap) {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// swap high low byte
|
||||
static inline void lvgl_color_swap(uint16_t *data, uint16_t len) { for (uint32_t i = 0; i < len; i++) (data[i] = data[i] << 8 | data[i] >> 8); }
|
||||
|
|
Loading…
Reference in New Issue