The OpenGL Character Renderer (GLC) is a state machine that provides OpenGL programs with character rendering services via an application programming interface (API).
The character rendering services provided by GLC has some significant advantages over platform specific interface such as GLX or WGL :
- The GLC API is platform independent. Since most nontrivial GL applications render characters, GLC is an important step toward the goal of truly portable GL applications.
- The GLC is simpler to use. Only two lines of GLC commands are required to prepare for rendering characters.
- GLC provides more ways to exploit the rendering power of OpenGL. For example, a glyph can be drawn as a bitmap, a set of lines, a set of triangles, or a textured rectangle.
- GLC provides better support for glyph transformations. For example, GLC supports rotated text, which is unavailable in GLX.
- GLC provides better support for the large coded character set defined by the standards ISO/IEC 10646:2003 and Unicode 4.0.1
GLC is a library that has been designed by SGI and that was only available on SGI workstations under IRIX 6.2 and later. The draft of the GLC specifications can be downloaded here. As far as I know, SGI dropped the development of GLC and the draft of its specifications has not evolved since late 1996.
QuesoGLC is a free (as in free speech) implementation of the OpenGL Character Renderer (GLC). QuesoGLC is based on the FreeType library, provides Unicode support and is designed to be easily ported to any platform that supports both FreeType and the OpenGL API.
QuesoGLC is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
QuesoGLC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
Its development platform is Linux.
QuesoGLC is written in ANSI C and should compile with any C compiler that is compliant with ANSI C standards. QuesoGLC has been successfully compiled and used under Linux, Windows and Mac OSX.
OpenGL, FreeType 2 and Fontconfig are the only external dependencies.
So far, Fontconfig is mandatory in order to build and run the QuesoGLC library. However, it is expected that the Fontconfig dependency will be removed in the future for Windows and Mac OSX platforms.
QuesoGLC users are :
- Chromium B.S.U. is a fast paced, arcade-style, top-scrolling space shooter.
- The Warzone Resurrection Project which aims to make Warzone 2100 one of the top free software games available. Warzone 2100 was one of the first 3D RTS games ever. It was released commercially by Pumpkin Studios in 1999, and released in 2004 under the GPL.
- Navit a modular, touch screen friendly car navigation system with GPS tracking, realtime routing engine and support for various vector map formats. There's a GTK+ and a SDL user interface and also a GL accelerated 3d view.
- Yogur an add-on to the OpenGL Character renderer. It provides additional GLC measurement metrics, convertion between string encodings and generic selection of font properties.
- GlGuiA a set of packages for Ada 2006 that can be used to create Graphical User Interfaces, relaying (almost) only on OpenGL. Hence should be rather platform-independant.
If you know other projects that use QuesoGLC please let me know.