Нарисуйте текст в OpenGL ES

Возможно, необходимо сделать своего рода строковую замену для превращения одного разделителя в другой разделитель, таким образом, у Вас тогда только есть один разделитель для контакта с в разделении.

125
задан Peter O. 22 November 2016 в 13:18
поделиться

4 ответа

Android SDK не имеет простого способа рисовать текст в представлениях OpenGL. Остались следующие варианты.

  1. Поместите TextView поверх SurfaceView. Это медленный и плохой, но наиболее прямой подход.
  2. Рендеринг обычных строк в текстуры и просто рисование этих текстур. Это, безусловно, самый простой и быстрый, но наименее гибкий.
  3. Создайте собственный код визуализации текста на основе спрайта. Вероятно, второй лучший выбор, если 2 не вариант. Хороший способ намочить ноги, но обратите внимание, что, хотя он кажется простым (и основные функции таковы), он становится все сложнее и сложнее по мере добавления дополнительных функций (выравнивание текстуры, работа с разрывами строк, шрифты переменной ширины и т. д.) - если вы выберете этот путь, сделайте его максимально простым!
  4. Используйте готовую библиотеку / библиотеку с открытым исходным кодом. Есть несколько вариантов, если вы охотитесь в Google, сложнее всего их интегрировать и запустить. Но, по крайней мере, как только вы это сделаете, вы получите всю гибкость и зрелость, которые они обеспечивают.
101
ответ дан 24 November 2019 в 00:56
поделиться

Я посмотрел на пример текста спрайта, и он выглядит ужасно сложным для такой задачи, я тоже подумал о рендеринге в текстуру, но меня беспокоит снижение производительности, которое может вызвать. Мне, возможно, придется вместо этого пойти с обзором и побеспокоиться о портировании, когда придет время перейти этот мост :)

6
ответ дан 24 November 2019 в 00:56
поделиться

Взгляните на образец «Sprite Text» в Примеры GLSurfaceView .

4
ответ дан 24 November 2019 в 00:56
поделиться

Если вы настаиваете на использовании GL, вы можете визуализировать текст на текстурах. Если предположить, что большая часть HUD относительно статична, вам не придется слишком часто загружать текстуры в память текстур.

3
ответ дан 24 November 2019 в 00:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: