作为Can I make opengl extension pointers global?的后续内容,我在其中询问了如何使opengl函数指针成为全局变量。
有人向我指出,在Windows上,函数指针仅对一个单一的opengl上下文有效。我决定只使用加载程序库为我做这件事。
我已经查看了glew和gl3w中的实现,这些实现都是在opengl网站上推荐的,而且这两者似乎只是将函数指针转储到全局变量中,因此赢得了&如果你在这个过程中有多个窗口/ opengl上下文,那就行了。
我在这里遗漏了什么,或者如果在一个进程中有多个窗口可能使用opengl,那么这些库是否可以不被使用?
答案 0 :(得分:1)
不保证这些库可以使用多个上下文。
这并不意味着他们不会。仅仅是他们没有做必要的事情以确保它在多种情境中发挥作用。
如果两个上下文不与同一个OpenGL实现交谈,它们通常会失败。例如,如果你的英特尔嵌入式GPU有一个上下文而另一个是独立显卡。但是,OpenGL ICD驱动程序模型有点不太可能(尽管并非不可能)。