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
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 |
另请参阅
在 Windows 上