emWin Memory Devices
Memory Devices can be used in a variety of situations, mainly to prevent flickering but also as a container for drawings or to modify or measure a drawing before being displayed.
Image Container
Memory devices could be used to increase the performance of drawing image files. Images like JPEG, PNG, GIF need no be decoded during the process of drawing. The decoding requires the most CPU load. That could lead into slower performance. To be able to draw such kind of images with the best possible performance, MemoryDevices could be used as image container.
Scaling and Rotating Images
Rotating and scaling of images could be achieved with MemoryDevice functions. A bunch of functions exist, each optimized for its specific requirement like fast performance, best quality or managing large areas of transparency.
Prevent Flickering
Systems with very little memory could use memory devices to minimize flickering effects. If not enough RAM is available either to use a display driver cache (driver with indirect interface) or multiple buffering (direct interface) memory devices could be used to reduce flickering effects. When displaying a changing text above a bitmap the text might appear to flicker since each time the text gets updated the bitmap gets drawn first and afterwards the text. To prevent this flickering all drawing operations can be done into a memory device. Once all operations are finished the memory device will be displayed. If not enough memory for a complete window is available, 'Banding' will be used automatically.