2016-07-02 3 views
2

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

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 и имею новейшую версию операционной системы. У вас, ребята, какие-то другие предложения или я понял что-то ужасное? Заранее спасибо ...

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

+0

Вы уверены, что ваш GPU поддерживает ядро ​​OpenGL? – Shiro

+0

Какую версию OS X вы используете? Более ранние версии поддерживают OpenGL до 2.1. – javac

+0

Как я уже сказал, я использую довольно новый MacBook Pro 13 «Retina» с середины 2014 года с последним обновлением OSX El Capitan. Согласно Apple, он должен поддерживать OpenGL до версии 4.1, но я не могу понять, как ... – PrudiiArca

ответ

3

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

GLFW documentation Из:

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, этот совет игнорируется.

+0

Well вы можете исправить меня, но в LWJGL нет флага GLFW_OPENGL_PROFILE ... Это то, что я имел в виду, когда я не могу скопировать документацию GLFW 1: 1 – PrudiiArca

+0

Странно, он включен в [JavaDoc] (http: //javadoc.lwjgl. org/org/lwjgl/glfw/GLFW.html # GLFW_OPENGL_PROFILE). Используете ли вы официальный выпуск LWJGL 3.0.0? – javac

+0

Попробуйте установить обратный вызов ошибки GLFW, как описано в [Руководстве по миграции LWJGL 3] (https: // github .com/LWJGL/lwjgl3-wiki/wiki/2.6.6-LWJGL3-migration). – javac

Смежные вопросы