Ich mache es so:
http://zfx.info/viewtopic.php?f=11&t=3557
FreetypeGL besteht nur aus einer handvoll Dateien, die du einfach deinem Projekt hinzufügen kannst. Wenn du es so machst wie ich, und das Rendern selber schreibst, sind es sogar nur noch halb so viele.
An FTGL mag ich, dass es meiner Meinung nach sehr schöne und sehr effiziente Glyphen-Atlanten erzeugt. Wenn du darauf verzichten willst, wirst du eine Menge Arbeit darein investieren müssen um ähnlich gute Ergebnisse zu bekommen.
Von der Geschwindigkeit würde ich meine Lösung auch recht weit oben einstufen. Ich erstelle halt pro Text den ich anzeige einen Vertex-Buffer, dadurch dass die einzelnen Vierecke für die Glyphen nur exakt so groß sind wie sie sein müssen, wird auch die Anzahl der gerenderten Pixel minimiert. Außerdem bietet es sich natürlich an, alle Texte zentral zu verwalten, denn so muss man nur einmal den Shader setzen und auch nur eine einzige Textur (solange man nicht sehr viele verschiedene Schriftarten in sehr vielen verschiedenen Größen benutzt kommt man nämlich locker mit einem einzigen Atlas fürs gesamte Programm aus). Dazu noch so Mini-Optimierungen wie "leere Texte überhaupt nicht zeichnen" und "Vertexbuffer nur aktualisieren, wenn sich der Text wirklich verändert hat" und man sollte schon ziemlich gut dastehen. Ich habe es jetzt nicht gemessen, aber mir fällt auf anhieb nicht ein, wie man es noch sehr viel effizienter machen könnte.
Der gepostete Code ist halt noch nicht wirklich etabliert, es fehlen noch ein paar Kleinigkeiten wie Text-Farbe ändern, die ich irgendwann noch einbauen will. Aber er ist ja auch nur zum lernen gedacht. Oh und ich benutze noch keine Indexbuffer, das will ich noch irgendwann einbauen - halte ich aber ehrlich gesagt für nicht sooo wichtig, die Dreiecke die ich für Text brauche sind um Größenordnungen weniger als die für den Rest der Szene.
Was ich nicht einschätzen kann, ist wieso du keine externe Bibliothek benutzen willst. Wenn du alles selber machen willst, ok, aber wenn du nur keine Lust auf weitere Abhängigkeiten oder Einarbeitungszeit hast würde ich FreeTypeGl trotzdem benutzen, da beides minimal ist (siehe verlinkten Text).