Description
I want to use lvgl as OSD on my video frame buffer. when I try to full refresh the OSD the video buffer get a lot of delay and when I try to disable full_refresh
flag the place of refreshing changed and look like below image
What MCU/Processor/Board and compiler are you using?
Rockchip SoC
What LVGL version are you using?
8.3.11
What do you want to achieve?
want to refresh the OSD buffer properly
What have you tried so far?
I tried this solution but doesn’t work for me Framebuffer Refresh Problem
the direct_mode
also delayed my video
Code to reproduce
My display driver configuration code
static void dummy_flush_cb(lv_disp_drv_t * disp_drv, const lv_area_t * area, lv_color_t * color_p);
lv_color_t test_fb[LCD_PANEL_HEIGHT][LCD_PANEL_WIDTH];
static lv_color_t disp_buf1[LCD_PANEL_HEIGHT][LCD_PANEL_WIDTH];
static lv_disp_draw_buf_t draw_buf;
lv_disp_draw_buf_init(&draw_buf, disp_buf1, NULL, LCD_PANEL_HEIGHT * LCD_PANEL_WIDTH);
static lv_disp_drv_t disp_drv;
lv_disp_drv_init(&disp_drv);
disp_drv.draw_buf = &draw_buf;
disp_drv.flush_cb = dummy_flush_cb;
disp_drv.hor_res = LCD_PANEL_WIDTH;
disp_drv.ver_res = LCD_PANEL_HEIGHT;
disp_drv.full_refresh = 0;
disp_drv.screen_transp = 1;
lv_disp_drv_register(&disp_drv);