Part One

You probably want to know what eyeGT is all about as it is going to be mentioned quite often in this blog; I have to deal with eyeGT on a daily basis and I can tell you one thing: it is fun!

eyeGT is the first display and rendering system and application platform for embedded hardware that has been designed from the ground up to deliver superior display quality and interaction. It provides a high level and intuitive API to control and customize all aspects of the final rendering as well as being totally independent from the underlying hardware and software layer. Finally, it is very, very small and very, very fast.

eyeGT’s revolutionary approach to graphics for embedded systems allows engineers to treat the display as an advanced and sophisticated canvas where graphical data is arranged in independent and/or correlated shapes and organized into prioritized layers. eyeGT allows total control over the way shapes and layers are transformed (rotation, translation, skewing and scaling) and displayed (normal, translucent, alpha channels etc).

IntelliShape™ technology allows shapes to decide for themselves how they are to be displayed on the canvas depending on user defined parameters like zoom factor, position, user selection etc. It is possible to create, delete and rearrange the contents of a particular layer, its properties, display priority and even the ability to temporary hide layers at any time are also definable thus providing full control of how the application is presented.

A three fold super sampling aliasing reduction algorithm finally allows for the highest display quality achievable. This all comes with the smallest memory footprint knowingly achieved to date - only184KB for the basic modules compiled for a 32 bit processor and just 280KB for the full library including all multimedia support.

eyeGT’s modular design provides the ability to decide which components have to be included i.e. sound (raw and ADCMP compression), editable text, bitmaps, multiple scalable fonts, stroked fonts, automatic animation sequence and much more.

 

eyeGT Functional Block Diagram 
A functional diagram of eyeGT

 

eyeGT was originally conceived to run on very small embedded hardware like the ones that power in-car navigation systems or boat’s chart plotters, so the hardware capabilities were basic: a 56 MHz processor, 256 KB (kilobytes…) of ram and a 8 bit paletizzed screen of 160 x 120 pixels. It is easy to imagine that when ported to currently available hardware the performances of eyeGT literally skyrocketed.

eyeGT uses the concept of a canvas (a rectangular zone of the screen of a given width, height and color depth) in a similar way to some CAD programs: the canvas is basically a container where shapes, containers and other objects, called ‘Particles’ in eyeGT, are positioned and displayed. The application has no direct access to the canvas which is the first big difference with the bitmapped mode of other graphical toolkits. The application places visual particles on the canvas and eyeGT renders them; the application can’t draw directly on the canvas.

In order to visualize something on the screen the application needs to create a shape, place some drawing commands on it and finally place the shape on the screen. eyeGT uses a dictionary based system (Particle Dictionary) to keep track of every particle (shape, sound, container, button etc) created by the user application. When a method to place a particle is invoked (i.e. egtPlaceParticleInstance), eyeGT puts an instance of the selected particle in the Display List. The Display List then gets executed when the user application invokes the egtProcessDisplayList method. At this point eyeGT will process all the particles and render to the canvas the anything that has been modified since the last invocation. It is best to think about the dictionary as a storage place for the particles templates and the Display List as a list of particles templates instances. The application can place the same particle multiple times by invoking multiple egtPlaceParticleInstance and give to each instance of the particle its own specific properties.

eyeGT Display List 
eyeGT Particle Dictionary and Display List

 

eyeGT allows the user to modify the Display List at any time as well as altering the particle’s appearance (position, rotation, shear, scale) and properties (alpha, colorization, brightness, visibility) at any time.

End of part one