OpenGLEAN gleanfonts development
Summary
|
CVS
|
(discussion via home page)
|
(contact via home page)
|
(suggestion box)
|
License
|
Todo
|
Bugs
OpenGLEAN gleanfonts Project
0.7 development
gleanfonts - GLUTted glyphs gleaned.
OpenGLEAN's gleanfonts in action
OpenGLEAN is an open source project to enhance the GLUT API. gleanfonts is the isolation of the OpenGLEAN font support into an independent module. The codebase is inherited from:
- GLUT defined a handful of usable, easy-to-use fonts as part of its original core.
- The font API was not well thought out; in fact, there are two traditioanl GLUT APIs for fonts: One for bitmapped fonts and one for stroked fonts. Rethinking and redesigning the font API is desirable, but in the meantime we neither want to burden OpenGLEAN with the old font APIs nor to do without fonts.
- There is nothing in the font handling that has anything to do with the rest of GLUT. There is a conceptual link between window systems and fonts, but as GLUT does not permit you to use window system fonts, this link is not significant here.
- The font data is relatively large and unweildly. Rebuilding the fonts from source when the core library needs to change seems a bit like the tail wagging the dog.
- GLUT by Mark Kilgard, originally implemented on SGI systems, later ported to Win32 by Nate Robins. If you have old GLUT programs and they work for you, there's no reason to uninstall GLUT.
- freeglut by Pawel W. Olszta and others, a compatible open source implementation of GLUT. Best installed as "freeglut", but defaults to installing as "glut"---i.e., it defaults to overwriting the original GLUT. Useful if you want to run old GLUT programs and Mark Kilgard's GLUT has bugs that you are unable or unwilling to solve. Even freeglut's current project administrator has said he discourages the use of freeglut for new code.
- OpenGLUT, a fork of freeglut. Useful if you want new features but want to minimize the amount of old features lost.
- OpenGLEAN, an enhanced and slimmed down version of OpenGLUT. Willing to break with tradition to make a better library, OpenGLEAN is the least likely member of the GLUT family to support your old, traditional GLUT applications. It is also hoped to be most likely to support your future needs and to be the least afflicted with old cruft that new applications will never need. But OpenGLEAN is definitely not ABI compatible with old GLUT, and has significant source-level changes planned.
- glean Regrettably, I have found that there is an old project called "glean". It has no relation to OpenGLEAN. glean is a benchmarking suite for graphics cards, it seems. glean seems to be mostly dead; it hasn't had much/any activity in 3 years, with a number of files most recently modified 5 years ago, as of this writing. Given that glean does not seem to be an API and seems to be dead/obscure, and that I've set up OpenGLEAN already...I simply note that there is an unfortunate near-miss in the name-space.
There are two users we are bearing in mind: Those who use OpenGLEAN and those who do not use any GLUT family member. Those who use OpenGLEAN may require some kind of font handling.
Those who use OpenGLEAN may require some kind of fonts, and may want something on the order as simple and portable as the GLUT fonts. As OpenGLEAN's core has deprecated the GLUT font API, some way of preserving the old API in amber, outside of the library core, is sought. gleanfonts fills that role.
Those who do not use any GLUT family member may want to add some kind of simplistic font support to their software, perhaps for a game. A heavy-handed font library may not be desirable, and something portable between various target platforms may be very desirable. gleanfonts is relatively lightweight (if you ignore the compiled in data), easy, and portable.
Because of the clean separation from unrelated code, all users should appreciate that they can remove font data that they don't want, add data for fonts that they think should be present, change the ranges of some of the character sets, readily add Unicode if that's their bag, and then static-link the whole thing. Distributed this way it is much closer to being a way for clients to supply/modify font data.
All users should also appreciate that the font support is deemed less than ideal by the OpenGLEAN project. The gleanfonts library may provide a newer font API. Basing such an API on model-space coordinates and textures (for bitmapped fonts) and on filled polygons (for stroked fonts) with a unified API for all fonts seems plausible. As does a means for clients to supply custom font data, or to retrieve "system" fonts (whether those are PostScript Type 1 fonts, True Type fonts, TeX/Metafont fonts, or X bitmapped fonts...). Such growth is in the future at this point, but is not likely to happen in GLUT or freeglut.
The code started as an isolation of the traditional GLUT font APIs, as implemented in OpenGLEAN 0.5. This means that it is easy to learn and use the gleanfonts library, and if you know GLUT already, you need only use the gleanfonts header and library to use the familiar functions and fonts. From there, some enhancement has begun:
- More bitmapped typefaces (Courier and Symbol were added)
- More bitmapped sizes (Adobe fonts are all in 8, 10, 12, 14, 18, and 24 pixel sizes).
- More bitmapped varieties (except for Symbol, all have a _BOLD variant; except for Symbol and the Fixed fonts, all have an _ITALIC as well).
- Bugfixes for font-sets with other than 256 glyphs.
- Tightened GNU auto* warnings.
- Restored proper Adobe/DEC copyrights and license to the Adobe bitmapped fonts.
- Documentation enhancements.
Counting sizes and variations as well as typefaces, there are approximately 90 fonts in gleanfonts, now.
The isolation of the fonts opens up room for clients to modify the fonts more freely than if the fonts are integrated into a monolithic "GLUT" library.
Some possible areas of expansion:
- "System" fonts.
- Client-supplied fonts.
- Unified, model-space API for all fonts.
- Solid-filled "stroked" fonts.
- Textured "bitmapped" fonts.
In addition, the OpenGLUT API proposals are still on the table and some relate to gleanfonts : gleanfonts API Proposals.
Examples and detailed API documentation are available from the SourceForge project interface for OpenGLEAN.
Currently, development releases are made from time to time. See the OpenGLEAN file download section, e.g., at the OpenGLEAN SourceForge interface.
The current API of gleanfonts is source-compatible with the GLUT font API, but not binary-compatible.
The motivation for the OpenGLEAN project group API is to make OpenGL based development easy, productive and reliable. We would welcome feedback in relation to API proposals, results with using OpenGLEAN in applications, and feature requests or proposals. There may well be functionality in your own application that could serve a broader long-term purpose.
gleanfonts is maintained in the OpenGLEAN CVS repository on SourceForge.
Supported in part by SourceForge.net.
Generated on Sun Sep 18 12:47:04 2005 for gleanfonts by
doxygen 1.4.3
The OpenGLEAN Fonts project is hosted by
SourceForge.