如何检查Windows 7kl上的OpenGL版本

Yon*_*ing 4 opengl 3d

我正在使用Windows 7.我正在使用OpenGL进行编程.但我发现我可以使用一些功能.所以我想检查一下我系统上OpenGL的版本.我使用下面的代码来检查它

const char* version = (const char*)glGetString(GL_VERSION); 
Run Code Online (Sandbox Code Playgroud)

但我得到一个空指针.如果我想升级我的OpenGL,我该怎么办?

Bah*_*bar 6

在询问您拥有哪个版本之前,您需要GL上下文当前.

首先,创建一个上下文,在其上调用wglMakeCurrent,之后你应该能够调用glGetString.

报告的版本来自您已安装的驱动程序.您的硬件可以支持的OpenGL版本本身并不"可升级"(因为缺少某些硬件功能以支持最新和最好的).

因此,您可以做的最好的事情就是升级您的驱动程序,但不要让您的希望高,这将导致更新的OpenGL.


Kos*_*Kos 5

最简单快捷的方法是使用像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.