我在这里看到了一个类似的问题: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,但我不确定它会有多大用处。
答案 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()之前的提示。谢谢大家的帮助。