summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-02-28 19:38:17 +0100
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-02-28 19:38:17 +0100
commit96f75eae4d4d19eeff8e55201822388d34445ec6 (patch)
tree1a4f429782bc5d10d07aa79612caf4e0329a1985
parentbab7dbcaef5d637e6452ef814b78595d9004971c (diff)
downloadiced-96f75eae4d4d19eeff8e55201822388d34445ec6.tar.gz
iced-96f75eae4d4d19eeff8e55201822388d34445ec6.tar.bz2
iced-96f75eae4d4d19eeff8e55201822388d34445ec6.zip
Fix offsets of buffer uploads in triangle pipeline
Diffstat (limited to '')
-rw-r--r--wgpu/src/triangle.rs23
1 files changed, 13 insertions, 10 deletions
diff --git a/wgpu/src/triangle.rs b/wgpu/src/triangle.rs
index fe34040e..0a118bd2 100644
--- a/wgpu/src/triangle.rs
+++ b/wgpu/src/triangle.rs
@@ -248,7 +248,7 @@ impl Pipeline {
&vertex_buffer,
0,
&self.vertex_buffer.raw,
- last_vertex as u64,
+ (std::mem::size_of::<Vertex2D>() * last_vertex) as u64,
(std::mem::size_of::<Vertex2D>() * mesh.vertices.len()) as u64,
);
@@ -256,7 +256,7 @@ impl Pipeline {
&index_buffer,
0,
&self.index_buffer.raw,
- last_index as u64,
+ (std::mem::size_of::<u32>() * last_index) as u64,
(std::mem::size_of::<u32>() * mesh.indices.len()) as u64,
);
@@ -313,27 +313,30 @@ impl Pipeline {
depth_stencil_attachment: None,
});
+ render_pass.set_pipeline(&self.pipeline);
+ render_pass.set_scissor_rect(
+ bounds.x,
+ bounds.y,
+ bounds.width,
+ bounds.height,
+ );
+
for (i, (vertex_offset, index_offset, indices)) in
- offsets.drain(..).enumerate()
+ offsets.into_iter().enumerate()
{
- render_pass.set_pipeline(&self.pipeline);
render_pass.set_bind_group(
0,
&self.constants,
&[(std::mem::size_of::<Uniforms>() * i) as u64],
);
+
render_pass
.set_index_buffer(&self.index_buffer.raw, index_offset);
+
render_pass.set_vertex_buffers(
0,
&[(&self.vertex_buffer.raw, vertex_offset)],
);
- render_pass.set_scissor_rect(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- );
render_pass.draw_indexed(0..indices as u32, 0, 0..1);
}