Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
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
|
Link
То что вы используете, возвращает только для GL ES 2 В paintGL происходит перерисовка, там не нужно каждый раз создавать контекст. Все как то в кучу свалено, почитайте например Link Сообщение отредактировал 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.12.2025, 0:05 |