OpenGL 3.3 на Mac OSX El Capitan с LWJGL

В настоящее время я пытаюсь создать контекст OpenGL 3.3 в LWJGL 3 на моем Macbook Pro в середине 2014 года. Мой исходный код для инициализации окна выглядит следующим образом:

if (!glfwInit()) {
    Logger.addError("GLFW", "init failed");
}

glfwDefaultWindowHints();

glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);           
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_CORE_PROFILE, GL_TRUE);
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);

// glfwWindowHint(GLFW_SAMPLES, 2);

ID = glfwCreateWindow(width, height, title, 0, 0);
if (ID == 0) {
    Logger.addError("GLFW", "window creation failed");
}

К сожалению, GLFW не может создать окно для любой версии выше 2.1, версии glGetString(GL_VERSION) возвращает при выходе из окна подсказки...
Я прочитал все "дублирующие" вопросы, но, как вы можете видеть, я уже запрашиваю основной профиль и пересылаю совместимость. Более того, я установил XCode и установил новейшую версию операционной системы. Ребята, у вас есть другие предложения или я что-то ужасно понял? Заранее спасибо...

Обратите внимание, что нет "GLFW_OPENGL_PROFILE" пометьте в LWJGL 3 afaik, поэтому я не могу скопировать код с официальной страницы начала работы GLFW 1:1. Настройка "GLFW_OPENGL_CORE_PROFILE" флаг true работал на Windows, хотя, таким образом, это не может быть ошибка, создающая проблемы...

1 ответ

Решение

Способ установки подсказки окна основного профиля неверен. Вместо этого используйте:

glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);

Из документации GLFW:

GLFW_OPENGL_PROFILE указывает, для какого профиля OpenGL создать контекст. Возможные значения являются одним из GLFW_OPENGL_CORE_PROFILE или же GLFW_OPENGL_COMPAT_PROFILE, или же GLFW_OPENGL_ANY_PROFILE не запрашивать конкретный профиль. Если запрашивается версия OpenGL ниже 3.2, GLFW_OPENGL_ANY_PROFILE должен быть использован. Если запрашивается OpenGL ES, эта подсказка игнорируется.

Другие вопросы по тегам