c++ - 英特尔核芯显卡 3000 Opengl 3.2

标签 c++ opengl

我一直在尝试使用 OGL 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;
}

经过调查,我发现我的笔记本电脑有最新的 Intel HD Graphics 3000 驱动程序,但它只支持最高 OGL 3.1。我在 Visual C++ 2010 Express 和 Windows 8.1 上执行此操作。

有什么方法可以获得对更高版本的支持吗?或者我需要切换到另一台机器吗?

最佳答案

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

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

因此,从技术上讲,即使您的硬件不支持,您也可以使用 OpenGL 3.2 功能。在 OSX Mavericks 之前,我一直停留在 OpenGL 3.2 上,我想使用 OpenGL 3.3 的功能,所以在那之前我只是使用 ARB 扩展,它们工作得很好。

关于c++ - 英特尔核芯显卡 3000 Opengl 3.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20483750/

相关文章:

c++ - 代码运行时 OpenGL 白色窗口 glew/glfw3

windows - SFML 窗口调整事件阻塞主线程

c++ - (C++) 在没有递归的情况下实现指数函数求值器?

python - 如何从 Cython 中的另一个线程设置 future\add 到队列的结果?

c++ - OpenGL、C++ -> 如何在屏幕上布置对象?

c++ - 围绕原点旋转多边形

c++ - 迭代器在最后一个元素上返回 "Junk"

c++ - std::bind 与类型别名

c++ - 根据 CPlusPlus.com 使用 std::regex_iterator<std::string::iterator>

opengl - gl_FragColor 是否做了 gl_FragData 不做的事情?