From 489f9e48946e27e4ac917fefe0545815a1686371 Mon Sep 17 00:00:00 2001 From: daid Date: Thu, 20 Feb 2014 08:12:49 +0100 Subject: [PATCH] Fix fallback if VBOs are not supported, for the case where indices are used. --- Cura/gui/util/openglHelpers.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Cura/gui/util/openglHelpers.py b/Cura/gui/util/openglHelpers.py index ebf4c241..20d2abd4 100644 --- a/Cura/gui/util/openglHelpers.py +++ b/Cura/gui/util/openglHelpers.py @@ -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. -- 2.30.2