1

我已经构建了一个 OpenGL 查看器控件,它可以简单地拖放到 Windows 窗体上(在设计时)并分配一个 OpenGL 显示列表(在运行时)。

查看器控件处理导航、显示选项(例如背景颜色)等。它还负责根据需要创建和销毁渲染和设备上下文。

显然,每个查看器控件实例都有自己的设备上下文,即绘制图像的“窗口”。

问题:

  • 每个查看器控件实例应该如何管理渲染上下文?
  • 每个实例应该有它自己的上下文还是共享一个全局渲染上下文?

我特别关心这会如何影响 WGL 字体创建(wglUseFontBitmaps 和 wglUseFontOutlines),这需要渲染上下文(无论当前上下文是什么)和设备上下文。

  • 我是否需要为每个渲染/设备上下文组合创建每个 WGL 字体?

也许我的方法有缺陷。

4

1 回答 1

1

我会使用每个控制方法的上下文。你必须记住扩展是基于上下文的,所以你必须为你所做的每一个绑定它们(我使用 glew_MX 来处理这个)。

此外,您可以跨上下文共享显示列表(只要它们在同一个 gpu 上),并且 wgl 字体创建会创建显示列表,所以您应该没问题。

于 2010-04-14T15:55:49.933 回答