LVGL supports sending only changed pixels to a smart display(with remote framebuffer). Usually, SquareLineStudio generates code in a way to take advantage of this, but sometimes with complex components like the keyboard, the entire keyboard is always sent to the display. I’d like to suggest that when one part of a component is updated, only the necessary pixels are rendered and sent.
I’m open to alternatives, but I do not see any. Once the draw information reaches LVGL, LVGL is doing its best.
This isn’t a direct user-facing use-case or feature, but reduces DMA transfer time and improves UI responsiveness.
In this attached video I’ve hooked our display transfer function to draw a randomly colored box around each display transfer. When I press backspace-key, the entire keyboard area is drawn and sent.