chiark / gitweb /
Only draw layers up to the point where it takes less then 100ms to draw them. To...
authordaid <daid303@gmail.com>
Fri, 6 Jul 2012 12:59:03 +0000 (14:59 +0200)
committerdaid <daid303@gmail.com>
Fri, 6 Jul 2012 12:59:03 +0000 (14:59 +0200)
Cura/gui/preview3d.py

index 846017acf247f8a8b3313b06cb21964a344d8154..abe34f516ad9e6bd22a23f7230b0b9bcea3018ee 100644 (file)
@@ -446,7 +446,8 @@ class PreviewGLCanvas(glcanvas.GLCanvas):
                        glEnable(GL_COLOR_MATERIAL)\r
                        glEnable(GL_LIGHTING)\r
                        drawUpToLayer = min(self.gcodeDisplayListMade, self.parent.layerSpin.GetValue() + 1)\r
-                       for i in xrange(0, drawUpToLayer):\r
+                       starttime = time.time()\r
+                       for i in xrange(drawUpToLayer - 1, -1, -1):\r
                                c = 1.0\r
                                if i < self.parent.layerSpin.GetValue():\r
                                        c = 0.9 - (drawUpToLayer - i) * 0.1\r
@@ -457,6 +458,8 @@ class PreviewGLCanvas(glcanvas.GLCanvas):
                                glLightfv(GL_LIGHT0, GL_DIFFUSE, [0,0,0,0])\r
                                glLightfv(GL_LIGHT0, GL_AMBIENT, [c,c,c,c])\r
                                glCallList(self.gcodeDisplayList + i)\r
+                               if time.time() - starttime > 0.1:\r
+                                       break\r
                        glDisable(GL_LIGHTING)\r
                        glDisable(GL_COLOR_MATERIAL)\r
                        glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, [0.2, 0.2, 0.2, 1.0]);\r