【发布时间】:2023-03-18 07:03:01
【问题描述】:
考虑一个场景,其中 2 个渲染上下文(每个属于自己的不同窗口)存在于 2 个单独的执行线程中。 OpenGL函数指针是否需要分别加载和使用?或者 gl* 函数指针可以是全局的,对于给定的应用程序实例只加载一次,并由窗口或上下文使用?
我问的原因是因为OpenGL Function Loading Docs 在谈到加载 wgl 函数时指出:
此函数仅在存在有效 OpenGL 上下文的情况下有效。 确实,它返回的函数指针本身就是特定于上下文的。此函数的 Windows 文档指出,返回的函数可能适用于另一个上下文,具体取决于该上下文的供应商和该上下文的像素格式。
实际上,如果两个上下文来自同一个供应商并引用同一个 GPU,那么从一个上下文中提取的函数指针将在另一个上下文中工作。在 Windows 中创建 OpenGL 上下文时这一点很重要,因为您需要创建一个“虚拟”上下文来获取 WGL 扩展函数来创建真正的上下文。
强调我的。
我想知道OpenGL函数是否也存在这样的要求?
【问题讨论】:
标签: c++ c windows winapi opengl