======
LibGGI
======


General Graphics Interface
==========================


LibGGI is the central library in the GGI project, hence the name.


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.


Branch 2.0
==========

`Browse CVS`__

__ http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/ggi/ggi-core/libggi/?only_with_tag=branch_2_0


The branch tag for 2.0.x is `branch_2_0`.
See the `CVS documentation <../documentation/topic-cvs.html>`__ on how to getting it.


User visible changes since libggi 2.0.4:

- X-target: Fix over-allocation of win y dimension.
- X-target: Forward expose events to the application when -nobuffer is used.
- X-target: Fix "strange colored pixels when re-exposing backbuffer"-Bug.
- build system: It checks for buildable demos. Fixes compiling breakage
  on some platforms.
- libtool update. Fixes Debian bug #208288.

If you have any fixes, don't hesitate to `send <contact.html>`__  them us.
If you have problems, don't `hesitate <contact.html>`__ to report them us.


Development tree
================

`Browse CVS`__

__ http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/ggi/ggi-core/libggi/

User visible changes since libggi 2.0.x:

- Bugfixes (see stable tree)
- removed obseleted Xlib target
- added quartz target (requires MacOS X 10.2 or newer)
- added wsfb target (special to OpenBSD/NetBSD), currently unuseable, help is wanted
- added new GGIFLAG_TIDYBUF flag. It is intended for applications
  using directbuffer and having their own dirty-region
  management. Currently only supported by the X-target.
- KGI target improvements
    - added Matrox Gx00 accelerator sublib
    - added devfs support
    - added multiple frame support
    - merged improvements from the FreeBSD ports tree
- fbdev gammamap support
- added the -fullscreen option to the X-target
- added the -physz option to the ipc-target
- Major DirectX target improvements
	- added -noinput and -physz options by Christoph Egger. Tested by Albert Graef.
	- fix cursor stuff, added -keepcursor and -nocursor options (patch from Albert Graef)
	- disable maximize button on GGI-on-DX window (patch from Albert Graef)
	- remove stuff in WindowProc made obselete by the above two items (patch from Albert Graef)
	- move the globals in ddinit.c into private data structure (patch from Albert Graef)
	- merge the two targets into one (directxnt has been renamed to directx and is now the *one* directx target) (patch from Albert Graef)
	- fix a couple of bugs and race conditions (patch from Albert Graef)
	- added -inwin option (patch from Albert Graef)
- display-auto has been added. It replaces the 5 years old linux specific target autodetection and handles it OS dependend.
- works on Windows (both cygwin and mingw) w/o requiring special Makefiles.
