Su descripción de usar freetype para crear un atlas de textura junto con toda la información de glifos es exactamente lo que estoy haciendo en mi proyecto actual de iPhone.
Realizo todo el análisis sintáctico de la fuente en un paso previo al proceso (Todo en C# en Windows como ocurre). El atlas en sí mismo se genera y contiene solo los caracteres necesarios: para reducir el espacio, también a veces termino generando más de un atlas para mantener las texturas en tamaños pow2 y de una resolución sensata.
Puede extraer fácilmente la información de glifos del tipo de freetype. Transfiere eso a tu aplicación junto con las texturas en tiempo de ejecución y luego es bastante trivial simplemente alterar los coords UV de la textura según sea necesario.
Por lo que vale la pena, esto es cómo definir un carácter glifo dentro de mi pequeño motor:
struct FontGlyph
{
u32 char_code;
u32 m_x; // base x position on tpage
u32 m_y; // base y position on tpage
u32 m_width; // glyph width
u32 m_height; // glyph height
i32 m_horiBearingX; // Distance to X shift
i32 m_horiBearingY; // Distance to Y shift
u32 m_horiAdvance; // Total Horizontal advance this character requires
u32 m__tpage_index; // Which tpage does this glyph use?
};
entonces tengo un objeto 'SpriteString', que se comporta más o menos como cualquier otra cadena, además de lo puede dibujarlo usando sprites ....
Estoy de acuerdo en que todo esto puede parecer un gran trabajo para un problema bastante trivial, pero he descubierto que me ha dado mucha flexibilidad y realmente no tardé mucho en implementar cuando llegué a eso.
No dude en responder o comentar si necesita más información. (Y buena suerte :)
respuesta a su comentario como me quedé sin espacio en la sección de comentarios ...
Mira la documentación freetype, que básicamente le da los datos de glifo y sin perder el tiempo , simplemente lo saca de la fuente. En cuanto a las texturas en sí, obtienes el tipo de freet para representar cada glifo, y luego lo administras para construir la textura. Esto lo hago como un proceso previo completamente separado de mi aplicación principal.
He aquí un extracto de mi código de la herramienta que hace esto: http://pastebin.com/md1c6354
Tenga en cuenta, sin embargo, esto fue sólo ha dirigido a los ojos y no para el consumo público, por lo que excusa el hecho de que es desordenado como el infierno :)
[Esto se ve muy bien] (http: // código .google.com/p/freetype-gl /) – bobobobo