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_OPENGL_PROFILE
указывает, для какого профиля OpenGL создать контекст. Возможные значения являются одним изGLFW_OPENGL_CORE_PROFILE
или жеGLFW_OPENGL_COMPAT_PROFILE
, или жеGLFW_OPENGL_ANY_PROFILE
не запрашивать конкретный профиль. Если запрашивается версия OpenGL ниже 3.2,GLFW_OPENGL_ANY_PROFILE
должен быть использован. Если запрашивается OpenGL ES, эта подсказка игнорируется.