Skip to main content.

Graphic User Interface

In most embedded designs, real time visualization is needed. Graphic information can be displayed to allow users to know the system state or can be used to manage streaming visualization in a deterministic way.

Requirements:

Microwindows project and TinyGL has been integrated to provide both a graphic windows manager and a OpenGL software engine to display 2D and 3D graphics.

MicroWindows

Microwindows is an open source project aimed at producing desktop-quality graphics functionality for small devices. The architecture allows for ease in adding different display, mouse, touchscreen and keyboard devices. Designing another graphics API would steepen the learning curve. For this reason MIcrowindows implements two popular graphics programming interfaces: The Microsoft Windows Win32/WinCE graphics display interface (GDI), and an Xlib-like interface, known as Nano-X, used at the lowest level by all Linux X11 widget sets.

Microwindows rungs in 50-250k of memory.This is primarily the result of using a single routine for each of the drawing functions in the engine layer. Microwindows ia work in progress, and new features are being added regularly. I invite you to check out the web site at http://microwindows.org. The microwindows project is licensed under the MPL (Netscape license). wich means that it can be used with designs under non-disclosure, without having to release proprietary source code.

Nowadays, sa-RTL provides Posix-IO drivers to Microwindows to get mouse information or keyboard, and also provides 4 basic primitives to send Microwindows Framebuffer information which must be initialized by sa-RTL. (GetFrameBufferAddr,GetBitsPerPixel,GetXResolution,GetYResolution).

TinyGL

TinyGL is intended to be a very small implementation of a subset of OpenGL((http://www.opengl.org)for embedded systems or games. It is a software only implementation. Only the main OpenGL calls are implemented. The main strength of TinyGL is that is fast and simple because it has not to be exactly compatible with OpenGL. IN particular, the texture mapping and the geometrical transformations are very fast. TinyGL is a lot faster than Mesa or the software Solaris OpenWin OpenGL implementation for the VReng Virtual Reality engine for example.

The main features of TinyGL are: