字体和文本 (OpenGL)

Microsoft在 Windows 中实现 OpenGL 支持单缓冲 OpenGL 窗口中的 GDI 图形。 它不支持双缓冲 OpenGL 窗口中的 GDI 图形。 因此,只能调用标准 GDI 字体和文本函数,以在单缓冲的 OpenGL 窗口中绘制文本;不能调用这些函数在双缓冲的 OpenGL 窗口中绘制文本。

对于双缓冲窗口中的文本存在此限制的解决方法:为字符的位图图像生成 OpenGL 显示列表,然后执行这些显示列表来绘制字符。 此过程有三个主要步骤:

  1. 为设备上下文选择字体,根据需要设置字体的属性。
  2. 根据设备上下文字体中的字形创建一组位图显示列表,为应用程序绘制的每个字形创建一个显示列表。
  3. 使用这些位图显示列表绘制字符串中的每个字形。

若要创建显示列表,请调用 wglUseFontBitmapswglUseFontOutlines 函数。 若要使用这些显示列表在字符串中绘制字符,请调用 glCallLists

若要创建易于本地化和使用资源的应用程序,必须谨慎管理这些字形图像显示列表的创建和存储。 许多语言(与英语不同)具有字母表,其字符代码范围在相对较大的值集中。

字体和文本功能