1 min read

Optimizing low end UI's

Topics:

When building a product with a user interface the trade off is always to get the best graphics performance with the lowest processor power.  Most of these processors have no graphics acceleration and possibly limited instruction sets.  Over the years I have come up with a list of simple things that can be done when designing the target user interface which will improve performance.  These are guidelines for designing the UI with should not really limit the designer very much.

Alpha blending is a killer on these systems.  If you have images which are not blended make sure you do not save them with an alpha channel in them.  Many times Photoshop and other tools will put an alpha channel into a PNG even if the image is fully opaque.  At runtime this can still slow some systems down as they have to check each pixels value.

Try to create opaque image images so that the color format matches your destination color format.  If the target framebuffer is in 16Bit color then create opaque images in a 16Bit format so that color conversion does not have to take place.

Scaling image data can be very costly on low end systems especially when filtering is used to make the images look better.  Try and scale the images on the host machine and put these scaled images on the target.

True Type fonts are generally drawn using alpha blending similar to images.  Bitmap fonts are generally simpler to draw and use much less CPU so if performance is key a nice bitmap font can be very helpful.  Also try and reuse fonts in the system as most UI packages can cache font metrics and image data.

Brian