Ну, относительно шрифтов ситуация такая, в OpenGL текст можно отобразить как набор полигонов с текстурой, текстура растровая, получить текстуру можно из битмапа Freetype, FreeType получает битмапы с изображением символа конкретного размера со сглаживанием из векторных образов глифов, эти образы он читает напрямую из файла шрифта. Плюс, есть такая либа libfontconfig, помогает искать системные шрифты для freetype.