chiark / gitweb /
Improves #78: Shaders properly released
authorJustin Nesselrotte <jnesselr@harding.edu>
Wed, 7 Jan 2015 07:29:20 +0000 (01:29 -0600)
committerJustin Nesselrotte <jnesselr@harding.edu>
Wed, 7 Jan 2015 07:29:20 +0000 (01:29 -0600)
Cura/gui/mainWindow.py
Cura/gui/sceneView.py

index c4bbe4cbae599c5536c0fcbda6be8e9f7179da7a..c81edbf71429bf7b0a4a1ce594a0b5256de2515a 100644 (file)
@@ -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):
index 447b5838f5bb5829a165dac9a64763c8f5918db2..1fd4b06aa6a019f905f149d8baf8747ce19275ef 100644 (file)
@@ -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.