функция wglUseFontOutlinesW (wingdi.h)
Функция wglUseFontOutlines создает набор списков отображения, по одному для каждого глифа выбранного шрифта структуры контекста устройства для использования с текущим контекстом отрисовки. Списки отображения используются для рисования 3-D символов шрифтов TrueType. Каждый список отображения описывает контур глифа в координатах с плавающей запятой.
Запуск глифов начинается с шрифта указанного контекста устройства. Квадратный размер шрифта, размер исходной сетки исходного контура шрифта, из которого установлен шрифт, сопоставляется с 1,0 в координатах x и y в списках отображения. Параметр экструзии задает глубину шрифта в направлении z.
Thelpgmfparameter возвращает структуру GLYPHMETRICSFLOAT, содержащую сведения о размещении и ориентации каждого глифа в ячейке символов.
Синтаксис
BOOL wglUseFontOutlinesW(
HDC unnamedParam1,
DWORD unnamedParam2,
DWORD unnamedParam3,
DWORD unnamedParam4,
FLOAT unnamedParam5,
FLOAT unnamedParam6,
int unnamedParam7,
LPGLYPHMETRICSFLOAT unnamedParam8
);
Параметры
unnamedParam1
Указывает контекст устройства с нужным шрифтом структуры. Шрифт структуры hdc используется для создания списков отображения в текущем контексте отрисовки.
unnamedParam2
Указывает первый из набора глифов, которые образуют списки отображения структуры шрифта.
unnamedParam3
Указывает количество глифов в наборе глифов, используемых для формирования списков отображения структуры шрифта. Функция
unnamedParam4
Задает начальный список отображения.
unnamedParam5
Задает максимальное отклонение хорда от исходных контуров. Если отклонение равно нулю, то аккордное отклонение эквивалентно одной единице конструктора исходного шрифта. Значение отклонения должно быть равно или больше 0.
unnamedParam6
Указывает, сколько шрифта вычислено в отрицательном z направлении. Значение должно быть равно или больше 0. Если экструзии равно 0, отображаемые списки не выводятся.
unnamedParam7
Задает формат, WGL_FONT_LINES или WGL_FONT_POLYGONS, используемый в списках отображения. Если формата
unnamedParam8
Указывает на массив счетчиков GLYPHMETRICSFLOAT структуры, которые должны получать метрики глифов. Если lpgmfNULL, метрики глифа не возвращаются.
Возвращаемое значение
После успешного выполнения функции возвращаемое значение TRUE.
Если функция завершается ошибкой, возвращаемое значение FALSE, и списки отображения не создаются. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.
Замечания
Функция wglUseFontOutlines определяет глифы шрифта структуры со списками отображения в текущем контексте отрисовки. Функция wglUseFontOutlines работает только с шрифтами TrueType; Шрифты росчерка и растра не поддерживаются.
Каждый список отображения состоит из сегментов строк или многоугольников и имеет уникальный номер идентификации, начиная с номера listBase.
Функция wglUseFontOutlines приближает контуры глифов путем деления квадратной кривой B-spline контура на сегменты линий, пока расстояние между контуром и интерполированной средней точкой находится в пределах значения, указанного отклонением. Это окончательный формат, используемый при формата
glCullFace(GL_BACK);
glEnable(GL_CULL_FACE);
Структура GLYPHMETRICSFLOAT содержит сведения о размещении и ориентации каждого глифа в ячейке символов. Параметр lpgmf представляет собой массив структур GLYPHMETRICSFLOAT, содержащих весь набор глифов для шрифта. Каждый список отображения заканчивается переводом, указанным с gmfCellIncX и gmfCellIncY членов соответствующей структуры GLYPHMETRICSFLOAT. Перевод позволяет рисованию последовательных символов в естественном направлении с одним вызовом glCallLists.
Примеры
В следующем примере кода показано, как нарисовать текст с помощью wglUseFontOutlines.
HDC hdc; // A TrueType font has already been selected
HGLRC hglrc;
GLYPHMETRICSFLOAT agmf[256];
// Make hglrc the calling thread's current rendering context
wglMakeCurrent(hdc, hglrc);
// create display lists for glyphs 0 through 255 with 0.1 extrusion
// and default deviation. The display list numbering starts at 1000
// (it could be any number)
wglUseFontOutlines(hdc, 0, 255, 1000, 0.0f, 0.1f,
WGL_FONT_POLYGONS, &agmf);
// Set up transformation to draw the string
glLoadIdentity();
glTranslate(0.0f, 0.0f, -5.0f)
glScalef(2.0f, 2.0f, 2.0f);
// Display a string
glListBase(1000); // Indicates the start of display lists for the glyphs
// Draw the characters in a string
glCallLists(24, GL_UNSIGNED_BYTE, "Hello Windows OpenGL World.");
Заметка
Заголовок wingdi.h определяет wglUseFontOutlines в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 2000 Профессиональный [только классические приложения] |
минимальный поддерживаемый сервер | Windows 2000 Server [только классические приложения] |
целевая платформа | Виндоус |
заголовка | wingdi.h |
библиотеки |
Opengl32.lib |
DLL | Opengl32.dll |
См. также
Функции WGL