2013-12-10 82 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擴展,而且他們工作得很好。

相關問題