|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
wglUseFontOutlines
The wglUseFontOutlines function creates a set of display lists based on the glyphs of the currently selected outline font of a device context for use with the current rendering context. The display lists are used to draw 3D characters of True Type fonts.
wglUseFontOutlines creates count display lists, one for each glyph of a run of count glyphs The run of glyphs begins with the first glyph of the font of the specified device context, hdc. Each display list describes a glyph outline in floating point coordinates. The em square size of the font, the notional grid size of the original font outline from which the font is fitted, is mapped to 1.0 in the x and y directions in the display lists. The extrusion parameter sets how much depth the font has in the z direction.
The parameter lpgmf returns a GLYPHMETRICSFLOAT structure that contains information about the placement and orientation of each glyph in a character cell.
BOOL wglUseFontOutlines(
HDC hdc, //Device context of the outline font DWORD first, //First glyph to be turned into a display list DWORD count, //Number of glyphs to be turned into display lists DWORD listBase, //Specifies the starting display list FLOAT deviation, //Specifies the maximum chordal deviation from the true outlines FLOAT extrusion, //Extrusion value in the negative z direction int format, //Specifies line segments or polygons in display lists LPGLYPHMETRICSFLOAT lpgmf //Address of buffer to receive glyphs metric data );
Parameters
hdc
Specifies the device context with the desired outline font. The outline font of hdc is used to create the display lists in the current rendering context.
first
Specifies the glyph of the font that is the first element of the set of glyphs that form the font outline display lists.
count
Specifies the number of glyphs in the set of glyphs used to form the font outline display lists. wglUseFontOutlines creates count display lists, one display list for each glyph in a set of glyphs.
listBase
Specifies a starting display list.
deviation
Specifies the maximum chordal deviation from the original outlines. When deviation is 0, the chordal deviation is equivalent to one design unit of the original font. The value of deviation must be equal to or greater than 0
extrusion
Specifies the amount a font is extruded in the negative z direction. The value must be equal to or greater than 0. When extrusion is 0, the display lists are not extruded.
format
Specifies the format, either WGL_FONT_LINES or WGL_FONT_POLYGONS, to use in the display lists. When format is WGL_FONT_LINES, wglUseFontOutlines creates fonts with line segments and when format is WGL_FONT_POLYGONS, wglUseFontOutlines creates fonts with polygons.
lpgmf
Points to an array of count GLYPHMETRICSFLOAT structures that is to receive the metrics of the glyphs. When lpgmf is NULL, no glyph metrics are returned.
Return Value
When the function succeeds, the return value is TRUE. When the function fails, the return value is FALSE and no display lists are generated. Call GetLastError for extended error information.
Remarks
The wglUseFontOutlines function defines the glyphs of an outline font with display lists in the current rendering context. The outline font of the currently selected device context, hdc, is the model wglUseFontOutlines uses to define glyphs. wglUseFontOutlines works with True Type fonts only; stroke and raster fonts are not supported. The parameter count specifies the total number of glyphs generated, each with its own display list. Each display list consists of either line segments or polygons; format specifies which method is used. Each display list has a unique identifying number starting with the number listBase. The first glyph in the set of glyphs is specified with the first parameter.
wglUseFontOutlines approximates glyph outlines by subdividing the quadratic B-spline curves of the outline into line segments until the distance between the outline and the interpolated midpoint is within the value specified by deviation. This is the final format used when format is WGL_FONT_LINES. When you specify format as WGL_FONT_POLYGONS the outlines are further tessellated into separate triangles, triangle fans, triangle strips, or quadrilateral strips to create the surface of each glyph.
A GLYPHMETRICSFLOAT structure contains information about the placement and orientation of each glyph in a character cell. The parameter lpgmf is an array of GLYPHMETRICSFLOAT structures holding the entire set of glyphs for a font. Each display list ends with a translation specified with the gmfCellIncX and gmfCellIncY fields of the corresponding GLYPHMETRICSFLOAT structure. The translation enables the drawing of successive characters in their natural direction with a single call to glCallLists.
Note The current release of OpenGL for Windows NT does not permit you to make GDI calls to a device context when a pixel format is double-buffered. You can get around this limitation using wglUseFontOutlines and wglUseFontBitmaps, when using double-buffered device contexts.
The following sample code shows how to draw text using 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); // indicate the start of display lists for the glyphs. // Draw the characters in a string. glCallLists(24, GL_UNSIGNED_BYTE, "Hello Win32 OpenGL World.");
See Also
GLYPHMETRICSFLOAT, wglUseFontBitmaps, glListBase, glCallLists, glTexGen
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
wglUseFontOutlines
Функция wglUseFontOutlines создает набор дисплейных списков основанных в glyphs к настоящему времени выбранного структурированного шрифта контекста устройства для использования с течением, предоставляющим контекст. Дисплейные списки использованы, чтобы делать типами 3D шрифтов Типа Истины.
wglUseFontOutlines СОЗДАЕТ дисплейные списки счета, за каждого glyph прогона счета glyphs прогон glyphs начинает с первого glyph шрифта определенного контекста устройства, hdc. Каждый дисплейный список описывает схему glyph плавающими координатами точки. em Квадратный размер шрифта, размер сетки notional оригинальной шрифтовой схемы из которых шрифт установлен, отображен на 1.0 в x и y направлениях в дисплейных списках. Параметр выдавливания устанавливает скольким глубине шрифт имеет в z направлении.
Параметр lpgmf возвращает структуру GLYPHMETRICSFLOAT, которая содержит информации о размещении и ориентации каждого glyph в символьной ячейке.
BOOL wglUseFontOutlines(
HDC hdc, //КОНТЕКСТ Устройства структурированного шрифта DWORD сначала, //Первый glyph, чтобы быть ставш на дисплейный счет списка DWORD, //Числа glyphs, чтобы быть ставш в дисплейные списки DWORD listBase, //Определяет ФУНКЦИЯ ПРЕОБРАЗОВАНИЯ дисплейного списка запуска отклонения, //Определяет максимальному chordal отклонению из выдавливания ФУНКЦИЯ ПРЕОБРАЗОВАНИЯ схем истины, //величины Выдавливания в отрицательном z направлении формата int, //Определяет сегменты строки или многоугольников в дисплейных списках LPGLYPHMETRICSFLOAT lpgmf //Адрес буфера, чтобы получать glyphs метрические данные );
Параметры
hdc
Определяет контекст устройства с желаемым структурированным шрифтом. Структурированный шрифт hdc использован, чтобы создавать дисплейные списки в течении, предоставляющем контекст.
сначала
Определяет glyph шрифта, который - первый элемент установки glyphs, которая формирует шрифтовые структурированные дисплейные списки.
счет
Определяет число glyphs в установке glyphs использованной, чтобы формировать шрифтовой структурированный дисплей lists. wglUseFontOutlines создает дисплейные списки счета, один дисплейный список для каждого glyph в установке glyphs.
listBase
Определяет дисплейный список запуска.
отклонение
Определяет максимальное chordal отклонение из оригинальных схем. Когда отклонение - 0, отклонение chordal является эквивалентом, чтобы один проектое устройство оригинального шрифта. Величина отклонения должна поравняться или больше, чем 0
выдавливание
Определяет сумму, что шрифт выдавлен в отрицательном z направлении. Величина должна поравняться или больше, чем 0. Когда выдавливание - 0, дисплейные списки не выдавлены.
формат
Определяет формат, или WGL_FONT_LINES или WGL_FONT_POLYGONS, чтобы использоваться в дисплейных списках. Когда формат - WGL_FONT_LINES, wglUseFontOutlines создает шрифты с сегментами строки и когда формат - WGL_FONT_POLYGONS, wglUseFontOutlines создает шрифты со многоугольниками.
lpgmf
Точки на массив структур счета GLYPHMETRICSFLOAT, которые должны получать метрику glyphs. Когда lpgmf НЕДЕЙСТВИТЕЛЬНО, никакая glyph метрика не возвращана.
Обратная Величина
Когда функция добивается успеха, обратная величина является ИСТИНОЙ. Когда функция терпит неудачу, обратная величина является ЛОЖЬЮ и никакие дисплейные списки не сгенерированы. Призовите GetLastError к расширенной информации ошибки.
Замечания
Функция wglUseFontOutlines определяет glyphs структурированного шрифта с дисплейными списками в течении, предоставляющем контекст. Структурированный шрифт к настоящему времени выбранного контекста устройства, hdc, - модель wglUseFontOutlines используется, чтобы определять работы glyphs. wglUseFontOutlines с шрифтами Типа Истины только; штриховые и растровые шрифты не поддерживаны. Счет параметра определяет общее число glyphs сгенерированное, каждый со своим собственным дисплейным списком. Каждый дисплейный список состоит из или сегменты строки или многоугольников; формат определяется, какой метод использован. Каждый дисплейный список имеет уникальное установление номера, начинающего с числа listBase. Первый glyph в установке glyphs определен первым параметром.
wglUseFontOutlines АППРОКСИМИРУЕТ glyph схемы подразделяя квадратные кривые B-spline схемы в сегменты строки до расстояния между схемой и интерполировать midpoint - в пределах величины определенной отклонением. Это - конечный формат использованный когда формат - WGL_FONT_LINES. Когда Вы определяете формат как WGL_FONT_POLYGONS схемы дальше сложены мозаику в отдельные треугольники, вентиляторы треугольника, полос треугольника, или четырехсторонние полосы, чтобы создавать поверхность каждого glyph.
Структура GLYPHMETRICSFLOAT содержит информации о размещении и ориентации каждого glyph в символьной ячейке. Параметр lpgmf является массивом структур GLYPHMETRICSFLOAT, удерживающих целую установку glyphs для шрифта. Каждый дисплейный список заканчивается с переводом определенным gmfCellIncX и областями gmfCellIncY соответствующей структуры GLYPHMETRICSFLOAT. Перевод приспосабливается чертеж последующих символов в их естественном направлении с единственным вызовом на glCallLists.
Отметьте текущую версию OpenGL для Windows NT не разрешает Вам, чтобы делать вызовами GDI в контекст устройства когда формат пикселя буферизован двойное количество. Вы можете обойти это ограничение, использовавшее wglUseFontOutlines и wglUseFontBitmaps, при использовании буферных двойных контекстов устройства.
Следующий код образца показывает как, чтобы делать текстом, использовавшим wglUseFontOutlines:
hdc HDC; // Шрифт A TrueType уже выбран. HGLRC hglrc; GLYPHMETRICSFLOAT agmf[256];
// Сделайте hglrc течением резьбы вызова, предоставляющим контекст. wglMakeCurrent(hdc, hglrc);
//создайте дисплей оцениваются в glyphs 0 по 255 с 0.1 выдавливаниями // и по умолчанию отклонение. Дисплейная нумерация списка начинается в 1000 // (это могло быть любым числом). wglUseFontOutlines(hdc, 0, 255, 1000, 0.0f, 0.1f, WGL_FONT_POLYGONS, &agmf);
// Установленное преобразование, чтобы делать строкой.
glLoadIdentity(); glTranslate(0.0f, 0.0f, -5.0f) glScalef(2.0f, 2.0f, 2.0f);
// Отобразите строку: glListBase(1000); // укажите начало дисплея оцениваются в glyphs. // Сделайте символами в строке. glCallLists(24, GL_UNSIGNED_BYTE, "МИР Hello Win32 OpenGL.");
Смотри Также
GLYPHMETRICSFLOAT, wglUseFontBitmaps, glListBase, glCallLists, glTexGen
| |
|
|
| |