diff --git a/Polyhedron/demo/Polyhedron/Scene.cpp b/Polyhedron/demo/Polyhedron/Scene.cpp index 3334f38390d..2db70e638ed 100644 --- a/Polyhedron/demo/Polyhedron/Scene.cpp +++ b/Polyhedron/demo/Polyhedron/Scene.cpp @@ -276,6 +276,11 @@ void Scene::remove_item_from_groups(Scene_item* item) } Scene::~Scene() { + Q_FOREACH(QOpenGLVertexArrayObject* vao, vaos.values()) + { + vao->destroy(); + delete vao; + } Q_FOREACH(CGAL::QGLViewer* viewer, CGAL::QGLViewer::QGLViewerPool()) { removeViewer(static_cast(viewer)); diff --git a/Polyhedron/demo/Polyhedron/Viewer.cpp b/Polyhedron/demo/Polyhedron/Viewer.cpp index 44918b4cc97..a9ea81209a6 100644 --- a/Polyhedron/demo/Polyhedron/Viewer.cpp +++ b/Polyhedron/demo/Polyhedron/Viewer.cpp @@ -361,7 +361,14 @@ Viewer::~Viewer() .arg(d->specular.z())); viewer_settings.setValue("spec_power", d->spec_power); + if(d->_recentFunctions) + delete d->_recentFunctions; + if(d->painter) + delete d->painter; + if(d->textRenderer) + d->textRenderer->deleteLater(); delete d; + } void Viewer::setScene(CGAL::Three::Scene_draw_interface* scene) @@ -1044,6 +1051,7 @@ void Viewer::drawVisualHints() if (d->_displayMessage) d->textRenderer->removeText(message_text); + delete message_text; } QOpenGLShaderProgram* Viewer::declare_program(int name,