在osx 10.9上获得glsl 330上下文(Mavericks)

Phi*_*ldo 3 opengl macos glew glsl glfw

我在这里看到了一个类似的问题:Mavericks下的OpenGL 4.1(?),但似乎这个人依赖过剩,所以解决方案不适用.

我在OSX 10.9 (Mavericks)上,使用GLEWGLFW,使用C++开发的NVidia GeForce 650.

没有使用xcode-使用非常基本的makefile保持简单.

无论如何 - 我有这5行代码:

window = glfwCreateWindow(640,480,"hello world",NULL,NULL);
glfwMakeContextCurrent(window);
glewExperimental = GL_TRUE;
glewInit();

printf("shader lang: %s\n",glGetString(GL_SHADING_LANGUAGE_VERSION));
Run Code Online (Sandbox Code Playgroud)

它打印出来

shader lang: 1.2
Run Code Online (Sandbox Code Playgroud)

我假设设置glewExperimental应该正确处理核心上下文?(/另一个人在另一个话题中谈论的东西)

我还需要做些什么来启用最新的着色器版本?

Ps-我的完整代码在这里,包括makefile:https://github.com/Phildo/openglexp,但我不确定它会有多大用处.

And*_*man 7

我之前从未使用过GLFW,但根据API文档和我对低级OS X GL上下文管理的全面体验,以下代码应该可以解决您的问题:

glfwInit       ();

glfwWindowHint (GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint (GLFW_CONTEXT_VERSION_MINOR, 2);
glfwWindowHint (GLFW_OPENGL_PROFILE,        GLFW_OPENGL_CORE_PROFILE);
Run Code Online (Sandbox Code Playgroud)

确保你之前打电话给这些东西 glfwCreateWindow (...)