Если вы не хотите использовать расширения GL, вам нужно создать шрифт как растровое изображение, а затем создать класс для преобразования этой строки в квадраты, которые вы можете нарисовать.
Я использую этот метод с двумя шрифтами в моей игре. У меня есть класс, который принимает широкую текстуру со всеми буквами, расположенными равномерно, и строку, соответствующую изображению, а затем использует поиск по буквам, чтобы выяснить, как далеко в растровом изображении он должен идти.
Другой вариант - визуализировать текст в закадровом растровом изображении с помощью Android, а затем связать текст как текстуру. Это позволит вам использовать встроенную обработку и рендеринг шрифтов в android для создания текстурных шрифтов.
Второй метод, который я еще не использовал, но я рендерил карты Google на внеэкранный холст, а затем привязал растровое изображение как текстуру GL, поэтому делать это для текста должно быть намного проще.
Если вы планируете модифицировать строковые данные в цикле gl, вам нужно действительно позаботиться о StringBuilder, поскольку он вызывает проблемы с сборкой мусора и производительностью. Я жестко кодирую все свои строки, чтобы они не распределялись, и все мои быстрые числа выполняются с помощью второй функции рисования, предназначенной для рисования меняющихся чисел без использования строителя строк.