Hi all,
I am working on NXP based IMXRT1064 MCU board.
In the Flush time (Inside lv_refr_vdb_flush() API) how can I get the complete display UI buffer using LVGL code?
Regards,
Prashanth Kumar K
Hi all,
I am working on NXP based IMXRT1064 MCU board.
In the Flush time (Inside lv_refr_vdb_flush() API) how can I get the complete display UI buffer using LVGL code?
Regards,
Prashanth Kumar K
Hi,
Anybody please reply…
Hi,
Kindly reply for above query.
Regards,
Prashanth Kumar K
I assume you want to create a file from the display image?
I’ve used this blog post to take snapshots of current screen and write the VDB contents to a file on flash…
The article is written for LVGL 6, but the same principles still apply.
Hi Fvanroie,
I am not using VDB support in LVGL code. Instead using Double LVGL Display buffer to refresh the UI.
I have got the display refreshing API as below from ‘littlevgl_support.c’ file,
/*Used to copy the buffer's content to the display*/ disp_drv.flush_cb = DEMO_FlushDisplay;
static void DEMO_FlushDisplay(lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p)
{
DCACHE_CleanInvalidateByRange((uint32_t)color_p, DEMO_FB_SIZE);ELCDIF_SetNextBufferAddr(LCDIF, (uint32_t)color_p); s_framePending = true;
#if defined(FSL_RTOS_FREE_RTOS)
if (xSemaphoreTake(s_frameSema, portMAX_DELAY) == pdTRUE)
{
/* IMPORTANT!!!
* Inform the graphics library that you are ready with the flushing*/
lv_disp_flush_ready(disp_drv);} else { PRINTF("Display flush failed\r\n"); assert(0); }
#else
while (s_framePending)
{
}/* IMPORTANT!!! * Inform the graphics library that you are ready with the flushing*/ lv_disp_flush_ready(disp_drv);
#endif
}
So, using above how to get full Display buffer and alter the content of UI using it?
Regards,
Prashanth Kumar K
As far as I understand
ELCDIF_SetNextBufferAddr(LCDIF, (uint32_t)color_p);
just tells to eLCDif-module address of frame bufer which should be driven to LCD. In your case - color_p. Also, this function waits until data is sent.