@@ -48,6 +48,7 @@ typedef struct {
4848 lv_color_t * trans_buf ; /* Buffer send to driver */
4949 uint32_t trans_size ; /* Maximum size for one transport */
5050 SemaphoreHandle_t trans_sem ; /* Idle transfer mutex */
51+ lvgl_port_rounder_cb_t rounder_cb ; /* Rounder callback for display area */
5152} lvgl_port_display_ctx_t ;
5253
5354/*******************************************************************************
@@ -66,6 +67,7 @@ static bool lvgl_port_flush_dpi_vsync_ready_callback(esp_lcd_panel_handle_t pane
6667#endif
6768#endif
6869static void lvgl_port_flush_callback (lv_disp_drv_t * drv , const lv_area_t * area , lv_color_t * color_map );
70+ static void lvgl_port_rounder_callback (lv_disp_drv_t * drv , lv_area_t * area );
6971static void lvgl_port_update_callback (lv_disp_drv_t * drv );
7072static void lvgl_port_pix_monochrome_callback (lv_disp_drv_t * drv , uint8_t * buf , lv_coord_t buf_w , lv_coord_t x , lv_coord_t y , lv_color_t color , lv_opa_t opa );
7173
@@ -309,6 +311,12 @@ static lv_disp_t *lvgl_port_add_disp_priv(const lvgl_port_display_cfg_t *disp_cf
309311 disp_ctx -> disp_drv .draw_buf = disp_buf ;
310312 disp_ctx -> disp_drv .user_data = disp_ctx ;
311313
314+ /* Add rounder_cb */
315+ if (disp_cfg -> rounder_cb ) {
316+ disp_ctx -> rounder_cb = disp_cfg -> rounder_cb ;
317+ disp_ctx -> disp_drv .rounder_cb = lvgl_port_rounder_callback ;
318+ }
319+
312320 disp_ctx -> disp_drv .sw_rotate = disp_cfg -> flags .sw_rotate ;
313321 if (disp_ctx -> disp_drv .sw_rotate == false) {
314322 disp_ctx -> disp_drv .drv_update_cb = lvgl_port_update_callback ;
@@ -504,6 +512,17 @@ static void lvgl_port_flush_callback(lv_disp_drv_t *drv, const lv_area_t *area,
504512 }
505513}
506514
515+ static void lvgl_port_rounder_callback (lv_disp_drv_t * drv , lv_area_t * area )
516+ {
517+ assert (drv != NULL );
518+ lvgl_port_display_ctx_t * disp_ctx = (lvgl_port_display_ctx_t * )drv -> user_data ;
519+ assert (disp_ctx != NULL );
520+
521+ if (disp_ctx -> rounder_cb ) {
522+ disp_ctx -> rounder_cb (area );
523+ }
524+ }
525+
507526static void lvgl_port_update_callback (lv_disp_drv_t * drv )
508527{
509528 assert (drv );
0 commit comments