2013-12-10 38 views
1

我一直在尝试使用OGL 3.2的某些功能(几何着色器和其他的东西),但我用的是框架返回它在这里引发的错误:英特尔高清显卡3000的Opengl 3.2

if(major == 3 && minor < 2) { //Graphics hardware does not support ENOUGH of OGL 3! Erk... 
    std::cout << "OGLRenderer::OGLRenderer(): Device does not support OpenGL 3.2!" << std::endl; 
    wglDeleteContext(tempContext); 
    return; 
} 

经过调查,我发现我的笔记本电脑拥有最新的英特尔HD Graphics 3000驱动程序,但它只支持OGL 3.1。我在Visual C++ 2010 Express和Windows 8.1上这样做。

有没有什么办法可以得到更高版本的支持?或者我是否需要切换到另一台机器?

+1

有时,即使驱动程序不完全支持所需的版本,它的某些功能仍可通过扩展使用。如果不是的话,那么在更新驱动程序之前你是不幸的。 – user2802841

回答

4

您的OpenGL版本取决于硬件。如果您无法创建OpenGL 3.2上下文,并且驱动程序是最新的,那么您将需要使用支持OpenGL 3.2的硬件。

或者,如果您无法升级硬件,则可以使用可用的OpenGL ARB扩展您的硬件实际上是核心在OpenGL 3.2

因此从技术上讲,你也许能够使用的OpenGL 3.2功能,即使你的硬件不支持它。在OSX Mavericks之前,我被困在OpenGL 3.2中,并且我想使用OpenGL 3.3的特性,所以我在那之前只使用了ARB扩展,而且他们工作得很好。

相关问题