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).

aaAA-lib, an ASCII-art libraryHandles input internally
directxDirectX, part of the MS Windows APIRequires input-directx, DirectX 7 minimum
fbdevLinux kernel framebuffer devicesRequires access to framebuffer device
fileStandard file output, saving an image or movie to a file
glideGlide 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?]
lcd823The LCD display built in to the Motorola MPC823Uses the /dev/lcd823 linux kernel device [manpage needed]
memoryStandard operations, into a user-supplied buffer in main memory
quartzQuartz2D (carbon), part of the MacOS X APIRequires input-quartz, minimum OS X 10.2.8, appeared first in GGI 2.2
svga/svgalibSVGAlib, displaying full-screen on a VGA-compatible graphics cardLikely to require root priveliges to access VGA device
terminfoNCurses libraryHandles input internally, only accepts text modes
vcsaLinux virtual console text devicesOnly accepts text modes
vglVGL, FreeBSD/i386 console display
vncTCP socket to a VNC viewer of your choiceCVS head (-current) only, requires input-vnc
wsfbwscons, OpenBSD/NetBSD console interfaceCVS head (-current) only, alpha/beta quality
xXlib, onto any X11 serverRequires input-xwin
dgaXlib, fullscreen onto an X11 server, where support for the XFree86-style DGA extension is avilableCan 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.

monotextEmulate a palette-based mode on a textual display
multiDuplicates output operations onto multiple targets
palemuEmulate a palette-based mode on a graphical display
subMake a child visual that is a subset of the space of the parentThe child visual is contained within the bounds ('window') or the parent
teleForward the display over a networkggiteleserver is used to view the forwarded results
tileDivide display into tiles, such as on a video-wall
trueemuEmulate a true-color mode on a non-true-color targetGraphics 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]

TargetFeatures addedComments
linux-vtswitchSwitching of linux virtual consolesLoaded by various linux targets (eg. fbdev, glide, svgalib)
mansyncSynchronous output on targets which have no built-in support for itLoaded by various targets [documented under display-mansync?]
vgaglExtra drawing operations provided by the SVGAlib 'vgagl' libraryLoaded 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-dgaProvides clean full-screen support [other features?]Loaded by X target; requires DGA extension in X-server [under development]
x-shm[documentation needed]
x-vidmodeProvides clean full-screen supportLoaded 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).

TargetInput sourceComments
cocoa[documentation needed]CVS head (-current) only
directxDirectX, part of the MS Windows APIOnly usable with display-directx by default, DirectX 7 minimum
fileFileFormat of events in file follows that as output by filter-save
ipaq-touchscreenTouch-screen on Compaq Ipaq PDAIpaq must be running Linux
kiiKII, input layer from KGI
linux-evdevLinux event interface
linux-joy[documentation needed]
linux-kbdLinux console keyboard
linux-mouseDirect mouse inputNOTE: linux prefix is misleading; data often read from device/pipe
lk201DEC LK201/LK401 keyboards
mousemouse events from a file
null[documentation needed]
pcjoyJoystick, where direct hardware access is possible via a PC 'game port'Direct hardware access implies systems such as DOS or an embedded platform
quartzQuartz (carbon), part of the MacOS X APIOnly usable with display-quartz by default, minimum OS X 10.2.8, CVS head (-current) only
spaceorb[documentation needed]
stdinStandard input, ie. the computer consoleMay be the keyboard on PCs, or a serial connection on embedded platforms
tcpTCP socketOther end of TCP connection is expected to be the filter-tcp target
vncTCP socket to a VNC viewer of your choiceCVS head (-current) only, requires input-vnc
xXlib, via any X11 serverMay be used without display-x
xwinXlib, via any X11 serverRequires display-x
zaurus-touchscreenTouch-screen on Sharp Zaurus PDAZaurus 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.

mouseMouse event translatorGenerates mouse events from other events, eg. to simulate a mouse with numeric keypad without modifying applications
key/keytransKey event translatorGenerates key(board) events from other events, eg. to remap keys without modifying applications
saveSaves events to a fileEvents may be played back later using input-file
tcpTCP/IP event repeaterOther 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).