Developer(s) | GGI developers |
---|---|
Stable release |
2.2.2 / January 27, 2007
|
Type | Application programming interface |
License | MIT license |
Website | www |
General Graphics Interface (GGI) is a project that aims to develop a reliable, stable and fast computer graphics system that works everywhere. The intent is to allow for any program using GGI to run on any computing platform supported by it, requiring at most a recompilation. GGI is free and open-source software, subject to the requirements of the MIT License.
The project was originally started to make switching back and forth between virtual consoles, svgalib, and the X display server subsystems on Linux more reliable. The goals are:
The GGI framework is implemented by a set of portable user-space libraries, with an array of different backends or targets (e.g. framebuffer, X11, Quartz, DirectX), of which the two most fundamental are LibGII (for input-handling) and LibGGI (for graphical output). All other packages add features to these core libraries, and so depend on one or both of them.
Some targets talk to other targets. These are called pseudo targets. Pseudo targets can be combined and work like a pipeline.
One example: display-palemu, for example, emulates palette mode on truecolor modes. This allows users to run applications in palette mode even on machines where no palette mode would be available otherwise. display-tile splits large virtual display into many smaller pieces. You can spread them on multiple monitors or even forward them over a network.
Andreas Beck and Steffen Seeger founded The GGI Project in 1994 after some experimental precursors that were called "scrdrv".
Development of scrdrv was motivated by the problems caused by coexisting but not very well cooperating graphics environments (mainly X and SVGAlib) under the Linux operating system at this time which frequently lead to lockups requiring a reboot. The first scrdrv design was heavily influenced by the graphics subsystem of the DJ DOS extender and some concepts from the SANE project. The basic problem that scrdrv solved was that it provided a kernel mode driver that knew enough of the video hardware to set up modes, thus allowing to get into a sane state even from a messed-up or crashed graphics application.