如何在Mac OSX上将OpenGL从2.1升级到3.3?

时间:2014-11-17 20:16:14

标签: macos opengl

我正在尝试在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 我该如何升级呢?我在竞选小牛队。

2 个答案:

答案 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,可以这样做:

GLUT on OS X with OpenGL 3.2 Core Profile