Поделиться через


Шрифты и текст (OpenGL)

Реализация OpenGL в Windows поддерживает графические элементы GDI в одном буферизованном окне OpenGL. Он не поддерживает графику GDI в двух буферизованном окне OpenGL. Таким образом, можно вызывать только стандартные функции шрифта GDI и текста для рисования текста в одном буферизованном окне OpenGL; Вы не можете вызвать эти функции для рисования текста в двух буферизованном окне OpenGL.

Существует обходное решение для этого ограничения текста в двух буферных окнах: создание списков отображения OpenGL для растровых изображений символов, а затем выполнение этих списков отображения для рисования символов. В этом процессе есть три основных шага.

  1. Выберите шрифт для контекста устройства, задав свойства шрифта в нужном виде.
  2. Создайте набор списков отображения растровых изображений на основе глифов в шрифте контекста устройства, по одному списку отображения для каждого глифа, нарисуемого приложением.
  3. Нарисуйте каждый глиф в строке, используя эти списки отображения растрового изображения.

Чтобы создать списки отображения, вызовите функции wglUseFontBitmaps и wglUseFontOutlines. Чтобы нарисовать символы в строке с помощью этих списков отображения, вызовите glCallLists.

Чтобы создать приложения, которые легко локализовать и использовать ресурсы, необходимо тщательно управлять созданием и хранением этих списков отображения глифов. Многие языки, в отличие от английского, имеют алфавиты, коды символов которых имеют диапазон относительно большого набора значений.

функции шрифта и текста