mac os10.7 之后就开始支持opengl 3.2的语法,但opengl3.3+在10.9才开始支持,当然具体支持的扩展是何显卡有关的,可以参考Apple官方说明
最近在mac和windows两边写opengl代码,但由于mac原本只支持2.1,所以两边写不同的语法,让我很苦恼,而且在mac上无法学习一些较新的教程,在搜索了和踩了一些坑之后,终于实现在mac上编写opengl 3+ 程序.
正文
安装glfw
OSX对于GL 2.1以上只支持Core Profile.
GLFW支持创建Core Profile Context.
glfw 建议通过brew安装,在命令行界面:
执行以下命令:
brew update
brew tap homebrew/versions
brew install glfw3
安装成功后,头文件和库文件会分别在/usr/local/include 和/usr/local/lib
在xcode中使用
build setting的配置
在头文件路径中增加 /usr/local/include
在库路径中增加 /usr/local/Cellar/glfw3/3.1.1/lib
build pharse中使用glfw3动态链接库
opengl样例
如果仅仅按glfw官网教程框架是无法编写opengl3+的程序的,我们必须在创建glfw窗口之前加上以下4行:
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
而且