I'm using emWin with a ILI9341-based TFT connected to the MCU through a 16-bits parallel bus.
I don't have too much RAM, so I can't use a display data cache. Moreover, I usually don't use memory devices for windows (the library wouldn't be able to find sufficient memory space for memory device, so enabling this functionality for all windows isn't useful).
But I have some small transparent images and I'd like to use memory devices when redrawing them. I specify WM_CF_MEMDEV_ON_REDRAW in IMAGE_CreateEx().
Only for test, I call IMAGE_SetBitmap() every 1 second, same IMAGE handle, same transparent bitmap. I noticed some flickering on this image on the display.
I understood that the library, for transparent image, must redraw firstly the background and after the transparent image. I think this is the cause of the flicker.
But these two-steps drawing should be done in a memory device in RAM. Only the result should be written to the framebuffer on the external controller.
So the question is: why I see flickering during redrawing a transparent IMAGE widget that is created with WM_CF_MEMDEV_ON_REDRAW flag?
How could I be sure a memory device is really used during redrawing operations on that widget?
I don't have too much RAM, so I can't use a display data cache. Moreover, I usually don't use memory devices for windows (the library wouldn't be able to find sufficient memory space for memory device, so enabling this functionality for all windows isn't useful).
But I have some small transparent images and I'd like to use memory devices when redrawing them. I specify WM_CF_MEMDEV_ON_REDRAW in IMAGE_CreateEx().
Only for test, I call IMAGE_SetBitmap() every 1 second, same IMAGE handle, same transparent bitmap. I noticed some flickering on this image on the display.
I understood that the library, for transparent image, must redraw firstly the background and after the transparent image. I think this is the cause of the flicker.
But these two-steps drawing should be done in a memory device in RAM. Only the result should be written to the framebuffer on the external controller.
So the question is: why I see flickering during redrawing a transparent IMAGE widget that is created with WM_CF_MEMDEV_ON_REDRAW flag?
How could I be sure a memory device is really used during redrawing operations on that widget?