diff --git a/src/meshlab/glarea.cpp b/src/meshlab/glarea.cpp index 1d37261b4..176a5b23c 100644 --- a/src/meshlab/glarea.cpp +++ b/src/meshlab/glarea.cpp @@ -105,12 +105,8 @@ GLArea::GLArea(MultiViewer_Container *mvcont, RichParameterSet *current) GLArea::~GLArea() { - if (iRenderer) - iRenderer->Finalize(currentShader, this->md(), this); - if(targetTex) glDeleteTextures(1, &targetTex); } - /* This member returns the information of the Mesh in terms of VC,VQ,FC,FQ,WT where: @@ -724,6 +720,9 @@ bool GLArea::readyToClose() } if(getCurrentEditAction()) endEdit(); + if (iRenderer) + iRenderer->Finalize(currentShader, this->md(), this); + if(targetTex) glDeleteTextures(1, &targetTex); emit glareaClosed(); return true; } diff --git a/src/meshlab/glarea.h b/src/meshlab/glarea.h index 443d26653..88073ddb3 100644 --- a/src/meshlab/glarea.h +++ b/src/meshlab/glarea.h @@ -81,6 +81,7 @@ public: GLArea(MultiViewer_Container *mvcont, RichParameterSet *current); ~GLArea(); static void initGlobalParameterSet( RichParameterSet * /*globalparam*/); + private: int id; //the very important unique id of each subwindow. diff --git a/src/meshlab/multiViewer_Container.cpp b/src/meshlab/multiViewer_Container.cpp index de8166b2e..2c49c8311 100644 --- a/src/meshlab/multiViewer_Container.cpp +++ b/src/meshlab/multiViewer_Container.cpp @@ -73,10 +73,6 @@ MultiViewer_Container::MultiViewer_Container(QWidget *parent) MultiViewer_Container::~MultiViewer_Container() { - //foreach(GLArea* viewer, viewerList) - //{ - //delete viewer; - //} } int MultiViewer_Container::getNextViewerId(){ diff --git a/src/meshlab/multiViewer_Container.h b/src/meshlab/multiViewer_Container.h index fd74027f4..2eaa18775 100644 --- a/src/meshlab/multiViewer_Container.h +++ b/src/meshlab/multiViewer_Container.h @@ -84,8 +84,10 @@ public: int getViewerByPicking(QPoint); void updateTrackballInViewers(); - void closeEvent(QCloseEvent *event); +protected: + void closeEvent(QCloseEvent *event); +public: MeshDocument meshDoc; int currentId; @@ -98,7 +100,6 @@ public slots: // Called when we change viewer, set the current viewer void updateCurrent(int current); - private: QList viewerList; /// widgets for the OpenGL contexts and images };