The GGI project is pleased to announce that new versions of LibGGI and LibGII have been released. LibGGI is a graphics API which focuses on portability between operating systems and graphics back-ends. LibGII is a stand-alone system for handling input devices which follows the same general design principles as LibGGI.
Through a run-time modular system, a single application binary can be run on many different display systems. In addition, LibGGI and it's interchangeable run-time binary "targets" can be compiled on many architectures (like ia-32, ppc32, sparc, sparc64,
arm, s390, etc.) and operating systems (like Linux, *BSD, Darwin, Solaris, etc.) and environments (like X11, fbdev, svgalib, aalib, etc.)
The LibGGI core itself is a basic API meant for low level programming abstracting the simplest of primitives common to most display systems.
When properly written, LibGGI applications can be made to work well in various bit-depths and to function on display systems that differ quite drastically in their implementations (e.g. backbuffered client/server systems like X11 versus direct hardware systems like linux framebuffer.)
LibGGI includes an extension system which allows API sets to be added to the core LibGGI API. For example, two popular extensions are LibGGIWMH, allowing manipulation of parent window properties when a LibGGI program is running under a window based display system, and LibGGIMISC which
supplements the LibGGI API with a few features like raytrace
syncronization and VGA-style splitline which are familair to demo coders.
Our team is working on future extensions which aim to bring the GGI philosphy of generic abstraction to graphics systems features such as Z/Alpha buffers, overlays, and ROP/BITBLT, allowing such features to be used by application developers without falling into the trap of writing code that is inextricably entangled to the display system used for development and testing. Like every Open Source project, we are always
glad to receive help and new team members.
This release represents a step forward not only in that several
enhancements have been made but also in our release process. We now have a stable and developemnt tree system such that experimental features will no longer butt heads with bugfix releases. We expect this to improve our release interval for both development and stable projects.
More detailed news, project contact information, online documentation, and much more is available at http://www.ggi-project.org/