我正在使用Windows 7.我正在使用OpenGL进行编程.但我发现我可以使用一些功能.所以我想检查一下我系统上OpenGL的版本.我使用下面的代码来检查它
const char* version = (const char*)glGetString(GL_VERSION);
Run Code Online (Sandbox Code Playgroud)
但我得到一个空指针.如果我想升级我的OpenGL,我该怎么办?
在询问您拥有哪个版本之前,您需要GL上下文当前.
首先,创建一个上下文,在其上调用wglMakeCurrent,之后你应该能够调用glGetString.
报告的版本来自您已安装的驱动程序.您的硬件可以支持的OpenGL版本本身并不"可升级"(因为缺少某些硬件功能以支持最新和最好的).
因此,您可以做的最好的事情就是升级您的驱动程序,但不要让您的希望高,这将导致更新的OpenGL.
最简单快捷的方法是使用像GPU Caps Viewer这样的诊断工具.
您也可以使用glGetString(GL_VERSION)但请记住,您将显示的版本是给定OpenGL上下文的版本 - 这不一定是GPU可以执行的最高版本.但是,如果使用默认设置创建上下文,您可能会在兼容性配置文件中获得尽可能高的OpenGL上下文,所以是的,这种方法很有用.
此外,当glGetString(GL_VERSION)引用给定的OpenGL上下文时,您需要事先创建它.实际上,需要GL上下文来调用任何 gl*函数.
实际上,升级驱动程序可能会给你一个更高的GL版本,但主要版本不太可能改变.例如,如果你发现自己支持GL 3.1,那么最新的驱动程序很可能会给你GL 3.3,而不是GL 4.0.