FancyPants uses an intelligent compositing engine, together with a layering system, to draw the screen. What that means is that the screen is "composed" before being displayed. Each on-screen element (image, video, button) is on a layer, or stack. The layers are composed into a single output image to be put onto the physical display. This allows sophisticated effects, such as true transparency, to created.
Full screen compositing with multiple layers, and alpha blending between the layers. Note the alpha blending between the multiple videos.
The graphics engine works in what is known as "Non Immediate Mode" or "Scene Graph Mode". Unlike traditional graphics engines, that redraw the screen whenever anything changes, the FANCYPANTSTM engine redraws the screen at regular intervals (not immediately). This means that only those parts of the screen that have changed and will be noticeable will be drawn. Consider an on-screen element (say an image) that is behind some other element; With a traditional engine, the entire screen will be re-drawn, element-by-element, if that image moves. However, if the result to someone viewing the screen is that they would not notice the image moving, because it is obscured, this redraw is wasteful.
FancyPants considers such situations and does not unnecessarily waste precious embedded system resources.
To make it simple for programmers to develop great looking applications, FancyPants provides methods that allow videos and images to be placed on-screen, moved around, scaled, made semi-transparent, etc. in the same way as all the other on-screen elements like buttons and scrollbars. This means the the programmer does not need to learn special techniques for different types of visuals.
The programming interface itself is Object Oriented and high level, providing a logical, well thought out set of methods. Furthermore, the FancyPants programming interface is designed to allow complex on-screen elements (or widgets) to be assembled from existing components with relative ease, speeding development time. For example it would be simple to create a new widget that contained a video, some buttons and a title. Adding a clock to that widget later on would, again, be an easy operation.
The FancyPants Canvas Server provides a way to have multiple applications displaying on-screen at once. Each application can be a separate process, which means it will not interfere with any other running application (think "no blue-screen crashing").
A unique feature of the FancyPants Canvas Server is to allow applications from multiple operating systems to display on the same screen at the same time. Most high-end mobile phones run two operating system stacks, one for applications and another for real-time radio hardware response.
FancyPants can display applications from both of these operating systems on the same screen at the same time. This is a unique FancyPants feature.
The FancyPants theming capability is a comprehensive subsystem allowing applications to change not only their look and feel, but also their layout . The theming system also covers media, allowing different media to be used for different situations all in the context of the well defined FancyPants theming system.
For example a satellite navigation application developed by FST used the theme subsystem to allow different voice prompts to be used for different languages and regions.
Script Objects, available in FancyPants version 2.0, is a way to let actions and dynamics of the screen be updated outside of the program via an XML file.