Почему моя версия OpenGL всегда 2.1 на Mac OS X?

Я использую GLFW 3.0 на Mac OS X 10.8, графическая карта - Intel HD Graphics 5000

И моя версия OpenGL API - 2.1, которую вы используете

glfwGetWindowAttrib(window, GLFW_CONTEXT_VERSION_MAJOR);
glfwGetWindowAttrib(window, GLFW_CONTEXT_VERSION_MINOR);

Параметры компиляции:

g++ ... -framework OpenGL -framework Cocoa -framework IOKit ...

Headers:

#include <GLFW/glfw3.h>
#include <GL/glu.h>

Версия всегда 2.1, в отличие от сообщенного 3.2.

https://developer.apple.com/graphicsimaging/opengl/capabilities/GLInfo_1085_Core.html

...

И теперь моя ОС была обновлена ​​до 10.9, а версия OpenGL - 2.1.

Он по-прежнему не может скомпилировать GLSL 3.3, в то время как Apple говорит, что поддерживает 4.1.

https://developer.apple.com/graphicsimaging/opengl/capabilities/index.html

Как я могу заставить его работать?

Ответ 1

Перед созданием окна вам нужно добавить подсказки "forward_compat" и "core_profile".

glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
glfwCreateWindow(640, 480, "Hello World", NULL, NULL );