我正在尝试在Macbook Pro上用C语言编写OpenGL 3。
我的显卡是NVIDIA GeForce 320M 256 MB
,但我有OpenGL 2.1根据wikipedia,我应该可以使用OpenGL 3.3:
然而,当我运行glxinfo | grep -i opengl
时,我得到OpenGL version string: 2.1 NVIDIA-8.24.16 310.90.9.05f01
我该如何升级呢?我在竞选小牛队。
答案 0 :(得分:10)
从技术上讲,你无法在OS X上的C语言中获得(窗口化)OpenGL 3.2上下文编程。
你必须使用一部分名为NSOpenGL的Cocoa(一个Objective-C框架); AGL(不推荐使用的基于C的API)以及真正旧的X服务器实现(XQuartz)永远受限于OpenGL 2.1。
Apple自己的GLUT实现包装NSOpenGL(FreeGLUT没有),GLFW,SDL等也是如此。它们有一小部分是用Objective-C编写的,用于与NSOpenGL接口,这允许它们创建基于窗口的OpenGL 3.2甚至在C软件中渲染上下文。
现在,问题实际上是glxinfo
使用XQuartz,它不支持OpenGL 3.2+。如果您想了解有关OpenGL功能的详细信息,我建议您使用Mac App Store上的OpenGL Extension Viewer。
由于您刚刚开始在OS X上进行OpenGL开发,我还建议您查看here以快速了解各种API。
答案 1 :(得分:2)
您无法升级图形驱动程序,因为它们是Apple提供的。但是你的系统应该支持OpenGL 3.3(https://developer.apple.com/opengl/capabilities/)。创建OpenGL上下文时,您必须请求CoreProfile模式。如果您正在使用GLUT,可以这样做: