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

时间:2013-11-14 05:01:47

标签: macos opengl glsl glew glfw

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

我正在 OSX 10.9 (Mavericks) NVidia GeForce 650 ,在 C ++中开发 ,使用 GLEW GLFW

使用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));

并打印出来

shader lang: 1.2

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

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

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

2 个答案:

答案 0 :(得分: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);

请确保在 glfwCreateWindow (...)之前将这些内容称为

答案 1 :(得分:0)

对于其他任何试图让它工作的人 - 以上答案都是正确的。您需要添加上述所有glfwWindowHints。然而,这并没有立即为我工作直到我调用glfwInit()之前和之后的glfwCreateWindow()之前的提示。谢谢大家的帮助。