Supported targets
This page lists the various targets (backends) on which GGI is able to run; these may be subdivided into display targets and input targets, for handling visual output and user input respectively. Display and input targets are considered components of libGGI and libGII respectively, and are distributed as such.
Note that the targets are related, but not tied intimately, with the platforms (operating systems) on which GGI is actively developed,
[need to add dependencies of each target; in comments column or other column?]
Display Targets
Output targets
As may be seen by the supported targets in the following table, these type of display targets could be considered the only 'true' display targets, leading to output on some visual device (nowithstanding the file and memory targets).
Target | Renderer | Comments |
---|---|---|
aa | AA-lib, an ASCII-art library | Handles input internally |
directx | DirectX, part of the MS Windows API | Requires input-directx, DirectX 7 minimum |
fbdev | Linux kernel framebuffer devices | Requires access to framebuffer device |
file | Standard file output, saving an image or movie to a file | |
glide | Glide library, displaying full-screen on a 3DFX graphics card | |
kgi (suidkgi/libkgi) | Kernel Graphics Interface (KGI) | kgi is the current preferred target, [suidkgi/libkgi are deprecated?] |
lcd823 | The LCD display built in to the Motorola MPC823 | Uses the /dev/lcd823 linux kernel device [manpage needed] |
memory | Standard operations, into a user-supplied buffer in main memory | |
quartz | Quartz2D (carbon), part of the MacOS X API | Requires input-quartz, minimum OS X 10.2.8, appeared first in GGI 2.2 |
svga/svgalib | SVGAlib, displaying full-screen on a VGA-compatible graphics card | Likely to require root priveliges to access VGA device |
terminfo | NCurses library | Handles input internally, only accepts text modes |
vcsa | Linux virtual console text devices | Only accepts text modes |
vgl | VGL, FreeBSD/i386 console display | |
vnc | TCP socket to a VNC viewer of your choice | CVS head (-current) only, requires input-vnc |
wsfb | wscons, OpenBSD/NetBSD console interface | CVS head (-current) only, alpha/beta quality |
x | Xlib, onto any X11 server | Requires input-xwin |
dga | Xlib, fullscreen onto an X11 server, where support for the XFree86-style DGA extension is avilable | Can require root priveliges |
Note: output display targets have a prefix of 'display-' when used in applications or on the command-line.
Transformation targets
The following special targets may be used to transform the output from a GGI application before it is rendered onto one of the above output targets. These are also known as pseudo display targets, since they do not output anything on their own.
Target | Transformation | Comments |
---|---|---|
monotext | Emulate a palette-based mode on a textual display | |
multi | Duplicates output operations onto multiple targets | |
palemu | Emulate a palette-based mode on a graphical display | |
sub | Make a child visual that is a subset of the space of the parent | The child visual is contained within the bounds ('window') or the parent |
tele | Forward the display over a network | ggiteleserver is used to view the forwarded results |
tile | Divide display into tiles, such as on a video-wall | |
trueemu | Emulate a true-color mode on a non-true-color target | Graphics modes only |
Note: transformative display targets have a prefix of 'display-' when used in applications or on the command-line.
Target helpers
Target helpers are automatically loaded by some targets, when certain features are found to be present on the running system.
[most of these need documenting]
Target | Features added | Comments |
---|---|---|
linux-vtswitch | Switching of linux virtual consoles | Loaded by various linux targets (eg. fbdev, glide, svgalib) |
mansync | Synchronous output on targets which have no built-in support for it | Loaded by various targets [documented under display-mansync?] |
vgagl | Extra drawing operations provided by the SVGAlib 'vgagl' library | Loaded by svga/svgalib targets |
x-evi | [documentation needed] | Loaded by X target; requires Extended Visual Information (EVI) extension in X-server |
x-dbe | [documentation needed] | [under development] |
x-dga | Provides clean full-screen support [other features?] | Loaded by X target; requires DGA extension in X-server [under development] |
x-shm | [documentation needed] | |
x-vidmode | Provides clean full-screen support | Loaded by X target; requires vidmode extension in X-server [under development] |
Note: helper targets generally have a prefix of 'helper-', but are not directly accessible by applications or on the command-line. However targets may have options to toggle certain features, that affect whether helpers are loaded.
Input targets
True input targets
Certain display targets have a specific input target which they automatically load, and these input targets are generally not usable on their own (eg. directx, quartz, xwin).
Target | Input source | Comments |
---|---|---|
cocoa | [documentation needed] | CVS head (-current) only |
directx | DirectX, part of the MS Windows API | Only usable with display-directx by default, DirectX 7 minimum |
file | File | Format of events in file follows that as output by filter-save |
ipaq-touchscreen | Touch-screen on Compaq Ipaq PDA | Ipaq must be running Linux |
kii | KII, input layer from KGI | |
linux-evdev | Linux event interface | |
linux-joy | [documentation needed] | |
linux-kbd | Linux console keyboard | |
linux-mouse | Direct mouse input | NOTE: linux prefix is misleading; data often read from device/pipe |
lk201 | DEC LK201/LK401 keyboards | |
mouse | mouse events from a file | |
null | [documentation needed] | |
pcjoy | Joystick, where direct hardware access is possible via a PC 'game port' | Direct hardware access implies systems such as DOS or an embedded platform |
quartz | Quartz (carbon), part of the MacOS X API | Only usable with display-quartz by default, minimum OS X 10.2.8, CVS head (-current) only |
spaceorb | [documentation needed] | |
stdin | Standard input, ie. the computer console | May be the keyboard on PCs, or a serial connection on embedded platforms |
tcp | TCP socket | Other end of TCP connection is expected to be the filter-tcp target |
vnc | TCP socket to a VNC viewer of your choice | CVS head (-current) only, requires input-vnc |
x | Xlib, via any X11 server | May be used without display-x |
xwin | Xlib, via any X11 server | Requires display-x |
zaurus-touchscreen | Touch-screen on Sharp Zaurus PDA | Zaurus must be running Linux |
Note: true input targets have a prefix of 'input-' when used in applications or on the command-line.
Input-filter targets
Input filters may be used to translate real input into that of a different form, record it for later replaying or to send events over a network. They may be considered as pseudo input targets, since they do not accept any user input on their own.
Target | Filter | Comments |
---|---|---|
mouse | Mouse event translator | Generates mouse events from other events, eg. to simulate a mouse with numeric keypad without modifying applications |
key/keytrans | Key event translator | Generates key(board) events from other events, eg. to remap keys without modifying applications |
save | Saves events to a file | Events may be played back later using input-file |
tcp | TCP/IP event repeater | Other end of TCP connection is expected to be the input-tcp target |
Note: input-filter targets have a prefix of 'filter-' when used in applications or on the command-line.
Other Targets
The following are prototype targets, which are not currently part of the main GGI distribution
- display-sun-fb - Display [only?] target to enable use of Solaris framebuffer devices, in very early stage of development; present on our list of GGI software
If you develop, or wish to develop, a target which enables GGI to run on additional systems, then please contact us such that we can help you with it, link to it or consider including it as part of our distribution (depending on your licensing requirements).