OpenGL. Компьютерная графика. Васильев С.А. - 25 стр.

UptoLike

Составители: 

27
Если значение параметра nHeight установить со знаком минус, то мы сообщаем Windows, что надо
найти нам шрифт, основанный на высоте символов. Если мы используем положительное число, мы вы-
бираем шрифт, основанный на высоте ячейки.
Среднюю ширину символа (nWidth) обычно задают по умолчанию, для этого достаточно указать в
этом поле значение 0.
Параметры nEscapement и nOrientation задают нулями. Если кому требуется изменять угол наклона
символов – экспериментируйте, используя документацию MSDN.
Ширина шрифта (fnWeight) может принимать значения из диапазона 0-1000. Но на практике поль-
зуются только некоторыми значениями, которые и ведены символьные константы: FW_DONTCARE
0, FW_NORMAL – 400, FW_BOLD – 700, и FW_BLACK – 900. Чем выше значение , тем более жир-
ный шрифт.
Значение TRUE параметра fdwItalic разрешает делать курсив.
Значение TRUE параметра fdwUnderline разрешает делать подчеркивание.
Значение TRUE параметра fdwStrikeOut разрешает делать перечеркивание.
Тип набора символов определяет параметр fdwCharSet, напри-
мер, RUSSIAN_CHARSET, ANSI_CHARSET, DEFAULT_CHARSET, OEM_CHARSET,
SYMBOL_CHARSET и т.д.
Параметр fdwOutputPrecision сообщает Windows какой из наборов символов использовать, если их
доступно больше чем один. Если – OUT_TT_PRECIS, то система должна выбрать Truetype версию
шрифта. Truetype шрифты всегда смотрят лучше, особенно когда масштабируются символы. При ис-
пользовании константы OUT_TT_ONLY_PRECIS система должна использовать только Truetype
шрифт.
Точность отсечения (fdwClipPrecision) обычно ставится по умолчанию –
CLIP_DEFAULT_PRECIS.
Качество вывода (fdwQuality) управляет алгоритмом реалистичности при формировании символов и
может принимать значения: PROOF_QUALITY, DRAFT_QUALITY, NONANTIALIASED_QUALITY,
DEFAULT_QUALITY или ANTIALIASED_QUALITY. Из контекста названий констант можно опре-
делиться с выбором. В нашей программе будем использовать значение ANTIALIASED_QUALITY.
Предпоследний параметр (fdwPitchAndFamily) отвечает за шаг и семейство шрифтов. Возможные
значения: FF_SWISS, FF_DECORATIVE, FF_DONTCARE, FF_MODERN, FF_ROMAN и
FF_SCRIPT.
Для нашего примера можно воспользоваться комбинацией: FF_DONTCARE|DEFAULT_PITCH.
Последний параметр (lpszFace) определяет используемый шрифт.
В данном случае – " Times New Roman Cyr ".
HFONT hFont; // Windows шрифт
GLuint base; //Базовый номер дисплейного списка
void glPrintText(unsigned int base, char *string)
{
if((base == 0 || string == NULL))
return;
glPushAttrib(GL_LIST_BIT);
glListBase(base – 32);
glCallLists(strlen(string),GL_UNSIGNED_BYTE, string);
glPopAttrib();
}
GLvoid CFont(char *fontName, int Size)
{
base = glGenLists(224); // Выделяем место под 224 символа
// Создаем шрифт
hFont = CreateFont(Size, 0, 0, 0, FW_BOLD,
FALSE, FALSE, FALSE,
ANSI_CHARSET,
OUT_TT_PRECIS,