@@ -159,7 +159,7 @@ static void ili9xxx_send_data_dma(void *disp_drv, void *data, size_t size, int d
159
159
void ili9xxx_post_cb_isr (spi_transaction_t * trans )
160
160
{
161
161
if (trans -> user )
162
- lv_disp_flush_ready (trans -> user );
162
+ lv_display_flush_ready (trans -> user );
163
163
}
164
164
165
165
@@ -177,13 +177,13 @@ typedef struct {
177
177
178
178
void ili9xxx_flush (void * _disp_drv , const void * _area , void * _color_p )
179
179
{
180
- lv_disp_t * disp_drv = _disp_drv ;
180
+ lv_display_t * disp_drv = _disp_drv ;
181
181
const lv_area_t * area = _area ;
182
182
lv_color_t * color_p = _color_p ;
183
183
int start_x = 0 ;
184
184
int start_y = 0 ;
185
185
186
- void * driver_data = lv_disp_get_driver_data (disp_drv );
186
+ void * driver_data = lv_display_get_driver_data (disp_drv );
187
187
188
188
// We use disp_drv->driver_data to pass data from MP to C
189
189
// The following lines extract dc and spi
@@ -232,6 +232,11 @@ void ili9xxx_flush(void *_disp_drv, const void *_area, void *_color_p)
232
232
size_t size = (area -> x2 - area -> x1 + 1 ) * (area -> y2 - area -> y1 + 1 );
233
233
uint8_t color_size = 2 ;
234
234
235
+ bool swap_rgb565_bytes = mp_obj_get_int (mp_obj_dict_get (driver_data , MP_OBJ_NEW_QSTR (MP_QSTR_swap_rgb565_bytes )));
236
+ if ( swap_rgb565_bytes == true ) {
237
+ lv_draw_sw_rgb565_swap (color_p , size );
238
+ }
239
+
235
240
if ( dt == DISPLAY_TYPE_ILI9488 ) {
236
241
color_size = 3 ;
237
242
/*Convert ARGB to RGB is required (cut off A-byte)*/
0 commit comments