ВУЗ:
Составители:
Рубрика:
26
void glDeleteLists (GLuint list, GLsizei range)
где list – целое число, являющееся именем первого удаляемого списка изображений, range – коли-
чество удаляемых списков.
Для приведенного выше примера, оформление команды glDeleteLists выглядит следующим обра-
зом: glDeleteLists(4,3).
9 ВЫВОД ТЕКСТА
Текст в OpenGL выводится на экран посимвольно и каждый символ представляется как обычный
графический образ. Для этого, предварительно, каждый символ, выбранного шрифта, готовится в виде
BitMap (битового массива) в своем индивидуальном дисплейном списке. Так как дисплейный список
имеет числовое имя, то зная код выводимого символа и соответствующее базовое смещение по отноше-
нию названий (номеров) дисплейных списком мы можем активизировать соответствующий список изо-
бражения. Рассмотрим эту концептуальную схему вывода текста на экран подробно.
Графическая библиотека имеет готовую команду, строящую набор дисплейных списков для симво-
лов заданного шрифта типа TrueType – команду
BOOL wglUseFontBitmaps (HDC hdc, DWORD first,
DWORD count,DWORD listBase)
Параметр hdc – ссылка на контекст устройства, шрифт которого будет использоваться, параметр
first – первый код символа, count- количество символов и listBase – стартовый дисплейный список. В
итоге после отработки этой команды будут сформированы count битовых образов символов шрифта
устройства hdc , начиная с кода first. И каждый битовый образ будет размещен в своем дисплейном спи-
ске, начиная с номера listBase. Для указания конкретного места вывода на экране используется команда
glRasterPos2i(). Цвет будущего текста настраивается командой glColor*(). И так, пример вывода текста –
"Привет OpenGL !!!" :
…
// Выбираем текущий шрифт системы
SelectObject (hDC, GetStockObject (SYSTEM_FONT));
// Форм. 255 дисплейных списков изображений символов, начиная с
// кода 1 и размещая с базового имени дисплейного списка – 1
wglUseFontBitmaps (hDC, 1, 255, 1);
glRasterPos2i(20,10); // С позиции экрана (20,10)
glColor3f(1.0,1.0,0.0);// Желтым цветом
// Выводим 17 дисплейных списков (17 символов текста)
glCallLists (17, GL_UNSIGNED_BYTE, "Привет OpenGL !!!");
…
Рассмотрим еще один пример, в котором мы попробуем выбирать любой шрифт из системы Win-
dows и изменять размер выводимых символов текста. Для этого нам придется использовать функцию
GDI CreateFont(), которая создает логический шрифт с соответствующими атрибутами. Рассмотрим на-
значение ее параметров:
HFONT CreateFont (
int nHeight, // Высота фонта (ячейки символа)
int nWidth, // Средняя ширина символа
int nEscapement, // Угол отношения
int nOrientation, // Угол наклона к оси х
int fnWeight, // Ширина шрифта
DWORD fdwItalic, // Курсив
DWORD fdwUnderline, // Подчеркивание
DWORD fdwStrikeOut, // Перечеркивание
DWORD fdwCharSet, // Идентификатор набора символов
DWORD fdwOutputPrecision, // Точность вывода
DWORD fdwClipPrecision, // Точность отсечения
DWORD fdwQuality, // Качество вывода
DWORD fdwPitchAndFamily, // Настройка шага и семейства
LPCTSTR lpszFace); // Название шрифта (!)
Страницы
- « первая
- ‹ предыдущая
- …
- 22
- 23
- 24
- 25
- 26
- …
- следующая ›
- последняя »
