字体和文本 (OpenGL)
Microsoft在 Windows 中实现 OpenGL 支持单缓冲 OpenGL 窗口中的 GDI 图形。 它不支持双缓冲 OpenGL 窗口中的 GDI 图形。 因此,只能调用标准 GDI 字体和文本函数,以在单缓冲的 OpenGL 窗口中绘制文本;不能调用这些函数在双缓冲的 OpenGL 窗口中绘制文本。
对于双缓冲窗口中的文本存在此限制的解决方法:为字符的位图图像生成 OpenGL 显示列表,然后执行这些显示列表来绘制字符。 此过程有三个主要步骤:
- 为设备上下文选择字体,根据需要设置字体的属性。
- 根据设备上下文字体中的字形创建一组位图显示列表,为应用程序绘制的每个字形创建一个显示列表。
- 使用这些位图显示列表绘制字符串中的每个字形。
若要创建显示列表,请调用 wglUseFontBitmaps 和 wglUseFontOutlines 函数。 若要使用这些显示列表在字符串中绘制字符,请调用 glCallLists。
若要创建易于本地化和使用资源的应用程序,必须谨慎管理这些字形图像显示列表的创建和存储。 许多语言(与英语不同)具有字母表,其字符代码范围在相对较大的值集中。
相关主题