我正在编写一个mac应用程序,它使用OpenGL和传统配置文件在NSOpenGLView上绘制一些UI。
我的应用针对的是OS X 10.7及更高版本。
如果我迁移到OpenGL 3.2,是否会阻止一些Lion用户运行它,或者每个支持Lion的Mac都支持OpenGL 3.2?
答案 0 :(得分:5)
OS X 10.7的SDK包含OpenGL 3.2的Core配置文件,但实际的运行时支持需要存在符合OpenGL 3.2标准的GPU和驱动程序。
OpenGL 3.2于2008年发布,OS X 10.7 Lion支持某些Mac机型可追溯至2006年。2006年末Core 2 Duo MacBook Pro运行Lion,并拥有ATI Mobility Radeon X1600,这是一款OpenGL 2.0 GPU。
通过该单个示例显示,能够运行10.7 Lion的计算机集是能够运行OpenGL 3.2程序的计算机集的超集。
请注意,我既不是Mac专家也不是OpenGL程序员,我不知道OpenGL向后兼容的程度。我想编译OpenGL 3.2库是好的,但如果你尝试使用任何硬件加速3.2功能,那么你会得到一个运行时错误。但是在使用它之前你应该测试一下是否支持某个功能,所以如果你做了一些小修改,你的程序应该可以在较旧的Mac上正常运行。
答案 1 :(得分:5)
OSX有一个软件回退渲染器,只要硬件中没有OpenGL功能,就会自动使用该渲染器。运行Lion的每台OSX机器都通过此软件后备渲染器支持完整的OpenGL 3.2 Core规范。如果您请求硬件中没有的功能,那么OpenGL框架将无声地回退到图形管道的该阶段的软件渲染。
这意味着每台运行Lion的Mac都将运行您的OpenGL 3.2应用程序,无论硬件如何。您不会遇到运行时错误,但您可能会或可能不会获得可接受的性能 - 具体取决于GPU在硬件中支持的功能以及渲染任务的复杂程度。
答案 2 :(得分:0)
如果你禁用软件渲染器后备选项,那么它的答案是正确的,该选项可用于运行Lion的每台Mac,但不是硬件加速。
以下是不同GPU和系统软件渲染器支持的OpenGL功能的详细列表:https://developer.apple.com/graphicsimaging/opengl/capabilities/GLInfo_1075_Core.html