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


функция wglUseFontBitmapsW (wingdi.h)

Функция wglUseFontBitmaps создает набор списков отображения растровых карт для использования в текущем контексте отрисовки OpenGL. Набор списков отображения растровых изображений основан на глифах в выбранном шрифте в контексте устройства. Затем можно использовать растровые изображения для рисования символов на изображении OpenGL.

Функция wglUseFontBitmaps создает списки отображения счетчиков по одному для каждого запуска счетчика глифов, начинающихся с первого глифа в выбранном шрифте hdc.

Синтаксис

BOOL wglUseFontBitmapsW(
  HDC   unnamedParam1,
  DWORD unnamedParam2,
  DWORD unnamedParam3,
  DWORD unnamedParam4
);

Параметры

unnamedParam1

Указывает контекст устройства, выбранный в данный момент шрифт которого будет использоваться для формирования списков отображения растрового изображения глифа в текущем контексте отрисовки OpenGL.

unnamedParam2

Указывает первый глиф в выполнении глифов, которые будут использоваться для формирования списков отображения глифов.

unnamedParam3

Указывает количество глифов в выполнении глифов, которые будут использоваться для формирования списков отображения глифов. Функция создает число отображаемых списков, по одному для каждого глифа в выполнении.

unnamedParam4

Задает начальный список отображения.

Возвращаемое значение

Если функция выполнена успешно, возвращаемое значение TRUE.

Если функция завершается ошибкой, возвращаемое значение FALSE. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.

Замечания

Функция wglUseFontBitmaps определяет счетчика отображаемых списков в текущем контексте отрисовки OpenGL. Каждый список отображения имеет идентификационный номер, начиная с listBase. Каждый список отображения состоит из одного вызова glBitmap. Определение растрового рисунка listBase + i берется из глифа первого + i шрифта, выбранного в контексте устройства, заданном hdc. Если глиф не определен, функция определяет пустой список отображения для него.

Функция wglUseFontBitmaps создает растровый текст в плоскости экрана. Он включает маркировку объектов в OpenGL.

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

Функция определяет параметры каждого вызова glBitmap следующим образом.

Параметр glBitmap Значение
ширины Ширина растрового изображения глифа, как возвращено в gmBlackBoxX член глифа структуры GLYPHMETRICS.
высоты Высота растрового изображения глифа, как возвращается в gmBlackBoxY член глифа GLYPHMETRICS структуры.
xorig Смещение x происхождения глифа, как возвращено в gmptGlyphOrigin.x член GLYPHMETRICS структуры глифа.
yorig Смещение происхождения глифа, как возвращено в gmptGlyphOrigin.y член ГЛИФМЕТРИИ структуры глифа.
xmove Горизонтальное расстояние к источнику следующей ячейки символов, как было возвращено в gmCellIncX член глифа структуры глифа.
ymove Вертикальное расстояние к источнику следующей ячейки символов, как возвращено в gmCellIncY член глифа структуры GLYPHMETRICS.
растровое изображение Растровое изображение для глифа, возвращаемое GetGlyphOutline с uFormat равно 1.
 

Примеры

В следующем примере кода показано, как использовать wglUseFontBitmaps для рисования текста.

HDC    hdc; 
HGLRC  hglrc; 
 
// create a rendering context  
hglrc = wglCreateContext (hdc); 
 
// make it the calling thread's current rendering context  
wglMakeCurrent (hdc, hglrc); 
 
// now we can call OpenGL API  
 
// make the system font the device context's selected font  
SelectObject (hdc, GetStockObject (SYSTEM_FONT)); 
 
// create the bitmap display lists  
// we're making images of glyphs 0 thru 254  
// the display list numbering starts at 1000, an arbitrary choice  
wglUseFontBitmaps (hdc, 0, 255, 1000); 
 
// display a string:  
// indicate start of glyph display lists  
glListBase (1000); 
// now draw the characters in a string  
glCallLists (24, GL_UNSIGNED_BYTE, "Hello Windows OpenGL World");

Заметка

Заголовок wingdi.h определяет wglUseFontBitmaps в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка wingdi.h
библиотеки Opengl32.lib
DLL Opengl32.dll

См. также

ГЛИФМЕТРИИ

GetGlyphOutline

OpenGL в Windows

Функции WGL

glBitmap

glCallLists

glListBase

wglUseFontOutlines