			========================	Updated:
			GGI Development Snapshot	981027
			========================

Introduction
============

Hi!

This is a development snapshot of GGI.
Currently there are three parts of this tree that may be of interest
to an end user:

* kgicon - kernel hardware drivers for the fbcon-system, included
	in Linux kernel 2.1.107 and higher. Please read the file
	kgicon/README.install for installation instructions.
	(Note that you need a 2.1.125 or higher kernel to use kgicon)

* LibGGI - A fast, highly portable, extensible and easy to use graphics
	library for direct framebuffer access and simple 2D operations.
	An application that uses LibGGI can WITHOUT RECOMPILATION
	of LibGGI or the application display itself on the following
	targets:
		+ The /dev/fb* device that fbcon (and thereby kgicon) uses
		+ X using MITSHM extension
		+ X using raw xlib calls
		+ X using the XFree86 DGA extension
		+ An ascii terminal using libaa
		+ A 3DFX card using glide
		+ Linux console, using the SVGAlib library
		+ An area in main memory - for debugging or offscreen
		  images.
		+ Any combination of more than one of the above targets
		  simultaneously using the "multi" or "tile" targets.

	LibGGI is currently under a redesign, so some things in the API
	may still change. But most are already done, so it should only
	be minor things. We expect that the final API should be set in
	stone sometime around September.
	
	To install LibGGI, cd into the lib/libggi directory and type
	'./configure'. When the configuration is done you should just
	have to type 'make install' to build and install LibGGI.

* LibGII - Is to input what LibGGI is to graphics. This is also used by
	LibGGI, so you should build LibGII first.
	
	To build and install LibGII, cd into the lib/libgii directory
	and type './configure ; make ; make install'.

* The SVGAlib wrapper - A drop-in replacement for SVGAlib that uses
	LibGGI instead of hitting the hardware directly.
	The primary goal of the SVGAlib wrapper is to allow binary-
	only SVGAlib applications, (such as Quake and Executor) to run 
	on any target supported	by LibGGI.

	Both Zoid (of Id Software) and Ardi has declared interest in
	doing a GGI port in the future, but the wrapper can be used for
	other stuff too. For example compiling SVGAlib applications on
	non-VGA/Intel/Linux machines. I have successfully compiled SVGAlib
	applications on an Alpha running Digital Unix, and run them using
	LibGGI's X-target.

	To install the SVGAlib wrapper, cd into lib/svgalib and simply
	type 'make install'. If you have previously done a 'make config'
	in the lib/libggi directory the svgalib wrapper will be installed
	in the same directory as LibGGI. If not it will be installed in
	/usr/local/lib
	
	The svgalib wrapper will not overwrite any existing SVGAlib
	installation, it will just disable it by installing libs with
	higher version numbers than any current SVGAlib distribution.
	If you wish to remove the svgalib wrapper you can just cd into
	the directory where it was installed and type:
	rm libvga*.ggi ; ldconfig
	
	Note that if you don't have SVGAlib previously installed on your
	system and want to compile SVGAlib applications using the wrapper
	you'll have to manually copy the files vga.h, vgakeyboard.h and
	vgamouse.h, found in lib/svgalib/include/, to a place where your
	compiler will find them (/usr/local/include might not be a bad
	choice...)

There are also some other stuff in this tree, which are not yet ready for
use. These are:

LibGGI2D - Extends LibGGI with functions for advanced 2D graphics.

LibGGI3D - Extends LibGGI with functions for 3D graphics. This will be
	used for lowlevel access to GGI's accelerated 3D kernel-drivers
	(currently there're no such drivers, if you're interested in
	developing one, or just want to test one that is under development,
	join the GGI mailing-list (see below for info)) For higher level
	3D access Mesa (hardware accelerated ofcourse) will be used.

libgwt - Region and window management library for LibGGI


Want to help us?
================

There's plenty of stuff you can help us with:
* Write a KGI driver for a card currently not supported by kgicon.
* Test the existing KGI drivers.
* Improve the existing KGI drivers.
* Integrate kgicon's Makefile system with the Linux kernel Makefile system
  so we have a chance of getting it into the mainstream kernel.
* LibGGI needs testing, as well as more applications written for it.
* Optimize drawing functions in LibGGI.
* Port LibGGI to non-Unix platforms, like win32 DirectX, DOS, Mac, Amiga
  etc...
* Test the svgalib wrapper with different applications.
* LibGGI2D, LibGGI3D and libgwt all needs much work.
* Write 3D hardware drivers.
* Documentation! Most of us are good coders but not-so-good writers. We
  really need more documentation writers.
* Anything else you feel like doing that is related to any of our projects.
  Just join the mailing list!


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 very high volume mailing list with well over 1000+ messages
a month! So be prepared.


Other GGI resources
===================

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

At the FTP site you'll always find an up-to-date development snapshot in
the ggi-snapshots directory.


//Marcus Sundberg 	[marcus@ggi-project.org]
