wglUseFontBitmapsA 函数 (wingdi.h)

wglUseFontBitmaps 函数创建一组位图显示列表,以便在当前 OpenGL 呈现上下文中使用。 位图显示列表集基于设备上下文中当前所选字体中的字形。 然后,可以使用位图在 OpenGL 图像中绘制字符。

wglUseFontBitmaps 函数创建 计数 显示列表,每个列表针对 计数 字形的运行,该字形以 hdc 参数所选字体中的第一个字形开头。

语法

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

参数

unnamedParam1

指定当前所选字体将用于在当前 OpenGL 呈现上下文中形成字形位图显示列表的设备上下文。

unnamedParam2

指定运行字形中的第一个字形,该字形将用于形成字形位图显示列表。

unnamedParam3

指定用于形成字形位图显示列表的字形运行中的字形数。 该函数创建 计数 显示列表,其中一个用于运行中的每个字形。

unnamedParam4

指定起始显示列表。

返回值

如果函数成功,则返回值 TRUE

如果函数失败,则返回值 FALSE。 若要获取扩展的错误信息,请调用 GetLastError

言论

wglUseFontBitmaps 函数定义当前 OpenGL 呈现上下文中的 计数 显示列表。 每个显示列表都有一个标识号,从 listBase开始。 每个显示列表都包含对 glBitmap调用。 位图 listBasei 的定义取自 hdc指定的设备上下文中当前所选字体的第一个ii。 如果未定义字形,则该函数将为其定义空显示列表。

wglUseFontBitmaps 函数在屏幕平面中创建位图文本。 它支持在 OpenGL 中标记对象。

在 Microsoft OpenGL 实现的当前版本中,无法对具有双缓冲像素格式的设备上下文进行 GDI 调用。 因此,不能将 GDI 字体和文本功能用于此类设备上下文。 可以使用 wglUseFontBitmaps 函数来规避此限制,并在双缓冲设备上下文中绘制文本。

该函数确定每次调用 glBitmap 的参数,如下所示。

glBitmap 参数 意义
宽度 字形位图的宽度,如 gmBlackBoxX 字形 GLYPHMETRICS 结构的成员中返回的。
高度 字形位图的高度,如 gmBlackBoxY 字形 GLYPHMETRICS 结构的成员中返回的。
xorig 标志符号原点的 x 偏移量,如标志符号 GLYPHMETRICS 结构 gmptGlyphOrigin.x 成员中返回的。
yorig 标志符号原点的 y 偏移量,如字形 gmptGlyphOrigin.y 标志符号 GLYPHMETRICS 结构的成员中返回的。
xmove gmCellIncX 字形 GLYPHMETRICS 结构的成员中返回的下一个字符单元格的原点的水平距离。
ymove 在标志符号 GLYPHMETRICS 结构 gmCellIncY 成员中返回的下一个字符单元格的原点的垂直距离。
位图 字形的位图,由 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 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows 2000 Professional [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 窗户
标头 wingdi.h
Opengl32.lib
DLL Opengl32.dll

另请参阅

GLYPHMETRICS

GetGlyphOutline

在 Windows 上 OpenGL

WGL 函数

glBitmap

glCallLists

glListBase

wglUseFontOutlines