我已经构建了一个OpenGL Viewer控件,可以简单地将其拖放到Windows窗体上(在设计时)并分配一个OpenGL显示列表(在运行时)。
查看器控件处理导航,显示选项(例如背景颜色)等。它还负责根据需要创建和销毁渲染和设备上下文。
显然,每个查看器控件实例都有自己的设备上下文,即绘制图像的“窗口”。
问题:
我特别关注这会影响WGL字体创建(wglUseFontBitmaps and wglUseFontOutlines),这需要渲染上下文(无论当前上下文是什么)和设备上下文。
也许我的方法存在缺陷。
答案 0 :(得分:1)
我会采用每种控制方法的上下文。你必须记住扩展是基于上下文的,所以你必须为你制作的每个扩展绑定它们(我使用glew_MX来处理它)。
此外,您可以跨上下文共享显示列表(只要它们位于相同的gpu上),并且wgl字体创建会创建显示列表,因此您应该没问题。