diff options
author | Jaime van Kessel <nallath@gmail.com> | 2020-06-24 11:42:35 +0300 |
---|---|---|
committer | Jaime van Kessel <nallath@gmail.com> | 2020-06-24 11:42:35 +0300 |
commit | b1fe4793e43652abb8bdf60718f3b4bafe1a90e9 (patch) | |
tree | c0912b179237c18810529735fa81c3f1a1f145a9 /plugins/SolidView | |
parent | 03e66beafdfd538b55b65337843cce3f452d98fe (diff) |
Put all objects normal models in a single render batch
THis speeds things up a fair bit for build plates with multiple models
CURA-7106
Diffstat (limited to 'plugins/SolidView')
-rw-r--r-- | plugins/SolidView/SolidView.py | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/plugins/SolidView/SolidView.py b/plugins/SolidView/SolidView.py index e1789e34ed..b65c75aaa1 100644 --- a/plugins/SolidView/SolidView.py +++ b/plugins/SolidView/SolidView.py @@ -187,7 +187,9 @@ class SolidView(View): else: self._enabled_shader.setUniformValue("u_overhangAngle", math.cos(math.radians(0))) disabled_batch = renderer.createRenderBatch(shader = self._disabled_shader) + normal_object_batch = renderer.createRenderBatch(shader = self._enabled_shader) renderer.addRenderBatch(disabled_batch) + renderer.addRenderBatch(normal_object_batch) for node in DepthFirstIterator(scene.getRoot()): if node.render(renderer): continue @@ -246,7 +248,7 @@ class SolidView(View): ] renderer.queueNode(node, shader = self._support_mesh_shader, uniforms = uniforms) else: - renderer.queueNode(node, shader = self._enabled_shader, uniforms = uniforms) + normal_object_batch.addItem(node.getWorldTransformation(copy=False), node.getMeshData(), uniforms=uniforms) if node.callDecoration("isGroup") and Selection.isSelected(node): renderer.queueNode(scene.getRoot(), mesh = node.getBoundingBoxMesh(), mode = RenderBatch.RenderMode.LineLoop) |