LINUX.ORG.RU

[OpenGLES][C] Рендеринг текста


0

1

на устройстве есть GLES 2.0, EGL, KD и FreeType; ничего более высокоуровневого нет. как в таких условиях принято рендерить текст?

беглый осмотр интернетов показал наличие готовых велосипедов для iOS и Android (в основном - генераторы атласов), но ничего чисто сишного кроме монстрообразного PVR Tools не видно

у кого-нибудь есть позитивный опыт, или от велосипедостроения мне не отвертеться?

★★★★★

Смотря, какой сложности текст. В первом приближении — ручками через FreeType в пиксмап, а пиксмап через OpenGL на экран шлёп. Да, про спецблоки Unicode (вроде диакритических знаков) и всякие OpenType вкусности можно забыть. Для всего этого требуются более мощные обёртки для text layouting. Таковые есть в составе всяческих Qt или Gtk (Pango). Pango, насколько я помню, можно без всякого Gtk использовать для рендеринга в пиксмап (требуется Cairo). Или делать с нуля какой-то костыль на голом HarfBuzz. Или, как говорил в начале, забить и использовать голый FreeType (к нему примеры хорошие есть и документация неплохая).

AsphyX ★★★ ()

а чем libfreetype не устраивает? он простой достаточно, и примеров на него куча, в своё время когда разбирался проблем не возникло

shty ★★★★★ ()
Ответ на: комментарий от shty

а чем libfreetype не устраивает? он простой достаточно, и примеров на него куча, в своё время когда разбирался проблем не возникло

на нём уже и делаю :)

jtootf ★★★★★ ()

Я у себя в движке динамически генерю нужный глиф и кладу его на текстуру. При необходимости текстура рисайзится, что бы на ней вместились затребованные символы.

Из недостатков: если текст длинный и символ сложный (иероглиф, к примеру), то в первый генерация занимает много времени (до пары секунд).

Плюсы: пользователь может ввести любой юникодный символ.

andreyu ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.