Что вы подразумеваете под "контекстом 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 или выше.