QT OpenGL, объект буфера вершин и GLEW? - PullRequest
0 голосов
/ 29 августа 2011

Я нахожусь в процессе переноса моего старого кода openGL (непосредственный режим) в Vertext-Buffer-Objects.Я понял, что для этого мне нужно использовать вызовы API OpenGL3 (GL_ARB_vertex_buffer_object).Поэтому я собирался использовать GLEW в качестве библиотеки загрузки расширений.

У меня вопрос, есть ли специальный способ инициализации QGLWidget для OpenGL3 contexT?

1 Ответ

2 голосов
/ 29 августа 2011

Что вы подразумеваете под "контекстом OpenGL 3"?

Вы можете получить поддержку OpenGL для версии 3.1 или выше при обычном создании контекста. Теперь, если вам нужен базовый контекст OpenGL , который реализует спецификацию ядра, тогда вам нужно немного поработать.

Обратите внимание, что контекст совместимости в порядке. Это все еще делает все, что делает основной контекст; у вас нет для выполнения каких-либо следующих действий для использования объектов буфера.

О, и буферные объекты больше не являются расширением. Используйте основные функции, а не функции расширения, которые вы видите в GL_ARB_vertex_buffer_object.

Примечание: следующее для QT 4.7 или выше:

Вы должны быть хотя бы немного знакомы с QGLFormat; вам нужен один для того, чтобы создать QGLWidget. Просто позвоните QGLFormat::setProfile на этот объект с QGLFormat::CoreProfile.

К сожалению, QT не позволяет вам указывать конкретную версию. Но этого должно быть достаточно, чтобы получить основной профиль OpenGL, при условии, что ваше аппаратное обеспечение реализует OpenGL 3.2 или выше.

...