Я не могу рисовать на QOpenGLWidget

Я новичок в Qt и делаю приложение, которое генерирует 3D-объект с некоторыми точками, которые пользователь предоставляет в графическом интерфейсе. Пользователь определяет точки, а затем в том же окне QOpenGLWidget рисует окончательный объект. Но тогда QOpenGLWindow не рисует модель (только GlCLearColor). Я пробовал те же функции, но вызывал перед app.exec() в main, и он отлично работает.

Я не знаю, что происходит. Я пробовал вызывать makeCurrent() перед работой с vao и vbo, но это не сработало.

Я не создавал ни темы, ни fbo.

Когда я попробовал makeCurrent до работы с vao и vbo, я получил: «QOpenGLBuffer::bind: буфер недействителен в текущем контексте» «QOpenGLShaderProgram::bind: программа недействительна в текущем контексте».

РЕДАКТИРОВАТЬ Я повторил попытку сделать текущий до привязки vao, vbo и шейдера, и сообщения исчезли, но виджет не рисует объект.

Я также пробовал QOPenGLWidget::update() после рисования. Он не рисует с изменением размера. Я использую профиль ядра OpenGL 4.1 и Qt 5.12.3.


person mpb    schedule 18.07.2019    source источник


Ответы (1)


Я уже решил это! Я просто забыл сделать ток перед установкой единых значений в шейдерах.

person mpb    schedule 20.07.2019