chiark / gitweb /
Fix fallback if VBOs are not supported, for the case where indices are used.
authordaid <daid303@gmail.com>
Thu, 20 Feb 2014 07:12:49 +0000 (08:12 +0100)
committerdaid <daid303@gmail.com>
Thu, 20 Feb 2014 07:12:49 +0000 (08:12 +0100)
Cura/gui/util/openglHelpers.py

index ebf4c241ae2cd650ac3f7a253c7543a073c7b462..20d2abd4b22e7a9a03939e2323af4edcbdf80c1c 100644 (file)
@@ -142,6 +142,8 @@ class GLVBO(GLReferenceCounter):
                        self._buffer = None
                        self._hasNormals = self._normalArray is not None
                        self._hasIndices = self._indicesArray is not None
+                       if self._hasIndices:
+                               self._size = len(indicesArray)
                else:
                        self._buffer = glGenBuffers(1)
                        self._size = len(vertexArray)
@@ -178,7 +180,10 @@ class GLVBO(GLReferenceCounter):
                                glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, self._bufferIndices)
 
                if self._hasIndices:
-                       glDrawElements(self._renderType, self._size, GL_UNSIGNED_INT, c_void_p(0))
+                       if self._buffer is None:
+                               glDrawElements(self._renderType, self._size, GL_UNSIGNED_INT, self._indicesArray)
+                       else:
+                               glDrawElements(self._renderType, self._size, GL_UNSIGNED_INT, c_void_p(0))
                else:
                        batchSize = 996    #Warning, batchSize needs to be dividable by 4 (quads), 3 (triangles) and 2 (lines). Current value is magic.
                        extraStartPos = int(self._size / batchSize) * batchSize #leftovers.