我已经构建了一个 OpenGL 查看器控件,它可以简单地拖放到 Windows 窗体上(在设计时)并分配一个 OpenGL 显示列表(在运行时)。
查看器控件处理导航、显示选项(例如背景颜色)等。它还负责根据需要创建和销毁渲染和设备上下文。
显然,每个查看器控件实例都有自己的设备上下文,即绘制图像的“窗口”。
问题:
- 每个查看器控件实例应该如何管理渲染上下文?
- 每个实例应该有它自己的上下文还是共享一个全局渲染上下文?
我特别关心这会如何影响 WGL 字体创建(wglUseFontBitmaps 和 wglUseFontOutlines),这需要渲染上下文(无论当前上下文是什么)和设备上下文。
- 我是否需要为每个渲染/设备上下文组合创建每个 WGL 字体?
也许我的方法有缺陷。