From: Justin Nesselrotte Date: Wed, 7 Jan 2015 07:29:20 +0000 (-0600) Subject: Improves #78: Shaders properly released X-Git-Tag: 14.09-1.19~1^2~4 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=928ab06745d1a58f28c5d83f28d60f61e3bd0287;p=cura.git Improves #78: Shaders properly released --- diff --git a/Cura/gui/mainWindow.py b/Cura/gui/mainWindow.py index c4bbe4cb..c81edbf7 100644 --- a/Cura/gui/mainWindow.py +++ b/Cura/gui/mainWindow.py @@ -598,7 +598,7 @@ class mainWindow(wx.Frame): #HACK: Set the paint function of the glCanvas to nothing so it won't keep refreshing. Which can keep wxWidgets from quiting. print "Closing down" self.scene.OnPaint = lambda e : e - self.scene._engine.cleanup() + self.scene.cleanup() self.Destroy() def OnQuit(self, e): diff --git a/Cura/gui/sceneView.py b/Cura/gui/sceneView.py index 447b5838..1fd4b06a 100644 --- a/Cura/gui/sceneView.py +++ b/Cura/gui/sceneView.py @@ -120,6 +120,15 @@ class SceneView(openglGui.glGuiPanel): self.updateToolButtons() self.updateProfileToControls() + def cleanup(self): + self._engine.cleanup() + if self._objectShader is not None: + self._objectShader.release() + if self._objectLoadShader is not None: + self._objectLoadShader.release() + if self._objectOverhangShader is not None: + self._objectOverhangShader.release() + def loadGCodeFile(self, filename): self.OnDeleteAll(None) #Cheat the engine results to load a GCode file into it.