self.offsetY = 0\r
self.view3D = True\r
self.gcodeDisplayList = None\r
+ self.gcodeDisplayListMade = None\r
self.gcodeDisplayListCount = 0\r
self.objColor = [[1.0, 0.8, 0.6, 1.0], [0.2, 1.0, 0.1, 1.0], [1.0, 0.2, 0.1, 1.0], [0.1, 0.2, 1.0, 1.0]]\r
\r
self.gcodeDisplayList = glGenLists(len(self.parent.gcode.layerList));\r
self.gcodeDisplayListCount = len(self.parent.gcode.layerList)\r
self.parent.gcodeDirty = False\r
- \r
+ self.gcodeDisplayListMade = []\r
+ for idx in xrange(0, len(self.parent.gcode.layerList)):\r
+ self.gcodeDisplayListMade.append(False)\r
+ \r
+ if self.gcodeDisplayListMade != None:\r
curLayerNum = 0\r
for layer in self.parent.gcode.layerList:\r
- glNewList(self.gcodeDisplayList + curLayerNum, GL_COMPILE)\r
- opengl.DrawGCodeLayer(layer)\r
- glEndList()\r
+ if not self.gcodeDisplayListMade[curLayerNum]:\r
+ glNewList(self.gcodeDisplayList + curLayerNum, GL_COMPILE)\r
+ opengl.DrawGCodeLayer(layer)\r
+ glEndList()\r
+ self.gcodeDisplayListMade[curLayerNum] = True\r
+ self.Refresh()\r
+ break\r
curLayerNum += 1\r
+ if curLayerNum == len(self.parent.gcode.layerList):\r
+ self.gcodeDisplayListMade = None\r
\r
if self.parent.gcode != None and (self.viewMode == "GCode" or self.viewMode == "Mixed"):\r
glEnable(GL_COLOR_MATERIAL)\r
c = 0.1\r
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 self.gcodeDisplayListMade == None or self.gcodeDisplayListMade[i]:\r
+ glCallList(self.gcodeDisplayList + i)\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