From 07221181ea8c47989efcc6eb3dfafff2b9ffb9c2 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Thu, 16 Jun 2022 15:38:38 -0700 Subject: [PATCH] Qt: Fix VAO reinitialization --- src/platform/qt/DisplayGL.cpp | 7 +++++++ src/platform/qt/DisplayGL.h | 1 + 2 files changed, 8 insertions(+) diff --git a/src/platform/qt/DisplayGL.cpp b/src/platform/qt/DisplayGL.cpp index 4691726bc..27183899d 100644 --- a/src/platform/qt/DisplayGL.cpp +++ b/src/platform/qt/DisplayGL.cpp @@ -82,6 +82,8 @@ void mGLWidget::initializeGL() { m_program->setUniformValue("tex", 0); m_positionLocation = m_program->attributeLocation("position"); + m_vaoDone = false; + connect(&m_refresh, &QTimer::timeout, this, static_cast(&QWidget::update)); } @@ -98,6 +100,10 @@ void mGLWidget::finalizeVAO() { } } +void mGLWidget::reset() { + m_vaoDone = false; +} + void mGLWidget::paintGL() { if (!m_vaoDone) { finalizeVAO(); @@ -210,6 +216,7 @@ void DisplayGL::startDrawing(std::shared_ptr controller) { } } else { show(); + m_gl->reset(); } } diff --git a/src/platform/qt/DisplayGL.h b/src/platform/qt/DisplayGL.h index a75f1a8dd..007cf6165 100644 --- a/src/platform/qt/DisplayGL.h +++ b/src/platform/qt/DisplayGL.h @@ -53,6 +53,7 @@ public: void setTex(GLuint tex) { m_tex = tex; } void setVBO(GLuint vbo) { m_vbo = vbo; } void finalizeVAO(); + void reset(); protected: void initializeGL() override;