OpenGL4.3 в Qt5.1 - подключение функций |
Здравствуйте, гость ( Вход | Регистрация )
OpenGL4.3 в Qt5.1 - подключение функций |
wf778899 |
12.3.2015, 0:05
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 13 Регистрация: 20.7.2014 Пользователь №: 4191 Спасибо сказали: 0 раз(а) Репутация: 0 |
Привет всем.
Решил разобраться с OpenGL на QT. У меня Qt5.1, Windows7x64. Копаться в старом GL (который без шейдеров) смысла больше не вижу. Как я понял, в QTе для всех функций, начиная с OpenGL 1.1, надо прописывать точки входа. Стал читать, как это делается. Как я понял - с помощью классов формата и контекста. Толком так ничего и не получилось. Короче, что я сделал (код ниже):
Простой класс, который ничего не делает (только окно выводит). В его рисовальщике я создал формат, которому прописал только одну настройку - использовать OpenGL4.3 (проверял, поддерживается). Потом этот формат я задаю контексту и делаю его текущим. Потом получаю объект функций QOpenGLFunctions_4_3_Core и назначаю ему все точки входа. Вот здесь (m_funcs = cont.functions() компилятор встаёт на дыбы и пишет "cannot convert 'QGLFunctions*' to 'QOpenGLFunctions_4_3_Core*' in assignment". Понятно, что типы не стыкуются. Объясните, пожалуйста, как правильно назначать точки входа - как я успел понять, без этого OpenGL теряет смысл... |
|
|
lanz |
12.3.2015, 1:37
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
http://doc.qt.io/qt-5/qopenglcontext.html#versionFunctions
То что вы используете, возвращает только для GL ES 2 В paintGL происходит перерисовка, там не нужно каждый раз создавать контекст. Все как то в кучу свалено, почитайте например http://doc.qt.io/qt-5/qtgui-openglwindow-example.html Сообщение отредактировал lanz - 12.3.2015, 1:43 |
|
|
wf778899 |
12.3.2015, 22:00
Сообщение
#3
|
Студент Группа: Новичок Сообщений: 13 Регистрация: 20.7.2014 Пользователь №: 4191 Спасибо сказали: 0 раз(а) Репутация: 0 |
Прочитал <QOpenGLContext> и <QSurfaceFormat>. lanz, вот что у меня получилось. Даже запускается. Посмотрите, пожалуйста, правильно я всё сделал? Проверить просто больше не кому
|
|
|
lanz |
13.3.2015, 15:03
Сообщение
#4
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Шейдеры тоже не надо перекомпилировать каждый кадр. А так чего проверять, нарисуйте треугольник и сами все увидите.
|
|
|
Текстовая версия | Сейчас: 22.11.2024, 0:22 |