В зависимости от того, как именно работает TextRenderer - вы можете использовать списки отображения для пакетирования ваших команд рисования текста.
Если TextRenderer работает, имея текстуру отдельных глифов символов и соединяя вместе строку глифа за раз: это будет хорошо. просто добавьте код для рисования текста с помощью glNewList и glEndList . Как только список определен, просто используйте glCallList , чтобы использовать его.
Если, однако, TextRenderer работает, рисуя полные строки в текстуру и используя один квадрат на строку - списки отображения могут не работать. Если строки в одном пакете не все помещаются в кэш TextRenderer, он удалит наименее недавно использованную, чтобы освободить место. Списки отображения воссоздают только выполненные вызовы OpenGL, поэтому работа, выполненная TextRenderer по обновлению текстуры строкового кэша, будет потеряна, и вы получите неправильный вывод. Из-за быстрого сканирования источника, я подозреваю, что TextRenderer работает таким образом.
Подводя итог: списки отображения значительно ускорят рендеринг, но только в том случае, если вы не переполните текстовую структуру кэша TextRenderer и не используете TextRenderer после того, как список отображения был определен.
Если вы не можете встретить эти ограничения, вам придется пойти немного жестче и написать свой собственный текстовый рендерер, который отображает глиф за глифом - тогда это будет тривиально кешировать выходную геометрию и очень быстро перерисовать. Вот пример такой системы здесь , с инструментом для создания шрифта здесь . Он использует LWJGL, а не JOGL, но перевод между ними будет меньше всего беспокоить вас, если вы захотите интегрировать его - он связан с управлением текстурами и т. Д.