From de62a3c0feaf1672bf68bef1cc421d9c8a8ff642 Mon Sep 17 00:00:00 2001 From: sheinz Date: Tue, 6 Jun 2017 23:47:40 +0300 Subject: [PATCH] Fix displaying layers with python3.6 --- cura/LayerDataBuilder.py | 2 +- plugins/LayerView/LayerPass.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) 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))