LibGGI README
=============

LibGGI, the dynamic GGI (General Graphics Interface) library is a flexible
drawing library.

It provides an opaque interface to the display's acceleration functions. It
was originally intended to allow user programs to interface with KGI, the
GGI Kernel Graphics Interface, but other display types can be easily used by
loading the appropriate "display target" (e.g. X, memory).

LibGGI consists of a main library (libggi.so) and a multitude of
dynamic drivers. The library then loads the necessary "drivers" for the
requested mode, taking hints from the graphics device if necessary. LibGGI
can also load extension libraries, e.g. to provide enhanced 2D and 3D
functions.

Targets
=======

Targets are devices which LibGGI can render to.  See doc/targets.txt for more
details.

	+ fbdev: fbcon framebuffer devices, and kgicon
	+ vcsa: Linux text console

	+ X: X Window System
	+ Xlib: X Window alternate method; uses X for primitives
	+ XF86DGA: XFree86 server Direct Graphics Access

	+ AA: AAlib, an ASCII-Art renderer
	+ GLIDE: 3Dfx
	+ SVGAlib: SUID root console graphics library
	+ Terminfo: GGI textmodes on terminals

	+ MonoText: emulate 8-bit visual on text-only visual (like AAlib)
	+ TrueEmu: emulate true-color (24-bit) on visual of any other depth
	+ PalEmu: emulate indexed-color on true-color visuals.

	+ file: write to a file
	+ memory: off-screen memory

	+ multi: display on multiple targets at once
	+ Tile: display in multiple visuals each showing a component part
	+ Sub-target: Visual-within-a-visual

	+ Tele: remote LibGGI
	+ suidkgi: use KGI drivers in userspace, setuid root


Requirements
============

* Most likely GNU Make.
* dlopen() function in -lc or -ldl
* GGI Linux kernel if using display-fbdev target.
* X Window System if using display-X/Xlib target.
* XFree86 if using display-DGA target.
* and other libraries for other targets such as aalib and SVGAlib.


How to install and use
======================

See the files INSTALL and INSTALL.autoconf for installation instructions.

Demos are found in the programs/demos sub directory.  They are built
automatically.

LibGGI will automatically default to the most suitable display target (the
method through which LibGGI displays on). However, this can be overridden
using the GGI_DISPLAY environment variable, set to the name of the display
target, plus any additional arguments.  Please see doc/env.txt for more
details on environment variables.


The GGI mailing list
====================

To subscribe to the GGI mailing list, send a message with the word
"subscribe" in the Subject: field to ggi-develop-request@eskimo.com
To unsubscribe from the GGI mailing list, send a message with the word
"unsubscribe" in the Subject: field to ggi-develop-request@eskimo.com

This is a high volume mailing list with well over 1000 messages a month!
So be prepared.


GGI resources
=============

Web site: http://www.ggi-project.org/
FTP site: ftp://ftp.ggi-project.org/pub/ggi

XGGI home: http://www.stacken.kth.se/~mackan/ggi/xggi/
(XGGI is an X server which runs on LibGGI)
