Is there any way to get a callback when screen is competely drawn?

It will be useful to have a callback when screen is completely ready to be presented for user. For example, when backlight is enabled during boot it is visible (for a couple hundred milliseconds, maybe) that screen is populated with random noise, then lvgl redraws screen in a couple of steps. This effect is a bit undesirable and it can be avoided by disabling backlight during initialization and enabling it a couple of milliseconds after initialization. So my question is: is there any way to reliably know when screen is completely drawn and ready?

monitor_cb is called every time the display finishes refreshing, so you should be able to use that and turn on the backlight the first time it’s called.

Wow, thanks, that is exactly what I wanted.

In display driver initialization…

disp_drv.monitor_cb = ui_ll_redraw_cb;

And later…

static void ui_ll_redraw_cb(lv_disp_drv_t *disp_drv, uint32_t time, uint32_t px)
    disp_drv->monitor_cb = NULL;

Does the trick.