diff --git a/cura/LayerDataBuilder.py b/cura/LayerDataBuilder.py index 2051d3a761..a5da57d42b 100755 --- a/cura/LayerDataBuilder.py +++ b/cura/LayerDataBuilder.py @@ -69,7 +69,7 @@ class LayerDataBuilder(MeshBuilder): vertex_offset = 0 index_offset = 0 - for layer, data in self._layers.items(): + for layer, data in sorted(self._layers.items()): ( vertex_offset, index_offset ) = data.build( vertex_offset, index_offset, vertices, colors, line_dimensions, extruders, line_types, indices) self._element_counts[layer] = data.elementCount diff --git a/plugins/LayerView/LayerPass.py b/plugins/LayerView/LayerPass.py index b706f21877..51a35fb48a 100755 --- a/plugins/LayerView/LayerPass.py +++ b/plugins/LayerView/LayerPass.py @@ -82,12 +82,12 @@ class LayerPass(RenderPass): start = 0 end = 0 element_counts = layer_data.getElementCounts() - for layer, counts in element_counts.items(): + for layer in sorted(element_counts.keys()): if layer > self._layer_view._current_layer_num: break if self._layer_view._minimum_layer_num > layer: - start += counts - end += counts + start += element_counts[layer] + end += element_counts[layer] # This uses glDrawRangeElements internally to only draw a certain range of lines. batch = RenderBatch(self._layer_shader, type = RenderBatch.RenderType.Solid, mode = RenderBatch.RenderMode.Lines, range = (start, end))