|This article does not cite any sources. (May 2009) (Learn how and when to remove this template message)|
|License||GNU General Public License|
XFast is a lightweight desktop environment that incorporates a display manager and a window manager within the same process. It is portable and works on many devices (embedded devices, handhelds, set-top boxes,...). Here the communication between server layer and desktop layer can be made in classical way via TCP/IP but depending on the configuration and target system it can be done via shared memory too.
The goal of project XFast is to have a very slim and fast graphical environment that contains both within the same project: a replacement for an X-server to give access to the graphics hardware and a WindowManager-like layer that offers user interface elements for applications and desktop management.
Target systems for XFast are (not only) embedded systems with low resources where it is important to have a UI available with short loading times and low memory consumption. It currently runs at Linux, Windows, PlayStation, GP2X and others.
Within the XFast windowing system environment GTK and Simple DirectMedia Layer applications are supported, so there is no need to re-write them. To use them special patched GTK and SDL versions are required, the related patch and build scripts are part of the XFast package. Beside of that XFast offers an own GUI widget library that can be used to write native applications for that windowing system.
XFast is a fork and further development of the Xynth windowing system. It was branched from the original project in order to add some far reaching modifications to the environment that are not compatible with the idea behind the original project. The goal of this fork is to have a more compatible source base for both: low level embedded systems and desktop systems with bigger hardware resources.
Like Xynth, it is not an implementation of the X11 protocol.
- UDS (Unix Domain Sockets) for IPC
- DMA (Direct Memory Access) for each client window surface
- overlapped client window - server management
- 8-way move, resize
- runtime theme plugging support
- image renderer for xpm, png and gif
- antialiased fonts with freetype Library.
- device independent basic low-level graphics library
- rgbcolor, colorrgb, setpixel, getpixel, hline, vline, fillbox, putbox, putboxmask, getbox, putboxpart,
- putboxpartmask, copybox, getsurface, setsurfacevirtual, setsurface
- overlay drawing ability
- rgbcolor_o, colorrgb_o, setpixel_o, getpixel_o, hline_o, vline_o, fillbox_o, putbox_o, putboxmask_o,
- getbox_o, putboxpart_o, putboxpartmask_o, copybox_o, getsurface_o, setsurfacevirtual_o, setsurface_o
- anti flicker double buffer rendering
- keyboard, mouse, touchscreen drivers
- remote desktop support
- built-in window manager
- low memory and CPU usage and footprint
- in 1024x768 32 bits mode with 253 clients memory usage is ~2,5M
- static linked binary is <125K