summaryrefslogtreecommitdiffstats
path: root/wgpu/src/geometry.rs
diff options
context:
space:
mode:
Diffstat (limited to 'wgpu/src/geometry.rs')
-rw-r--r--wgpu/src/geometry.rs39
1 files changed, 22 insertions, 17 deletions
diff --git a/wgpu/src/geometry.rs b/wgpu/src/geometry.rs
index d153c764..611e81f1 100644
--- a/wgpu/src/geometry.rs
+++ b/wgpu/src/geometry.rs
@@ -106,23 +106,28 @@ impl Frame {
.buffers
.stack
.into_iter()
- .map(|buffer| match buffer {
- Buffer::Solid(buffer) => Mesh::Solid {
- buffers: mesh::Indexed {
- vertices: buffer.vertices,
- indices: buffer.indices,
- },
- transformation: Transformation::IDENTITY,
- size: self.size,
- },
- Buffer::Gradient(buffer) => Mesh::Gradient {
- buffers: mesh::Indexed {
- vertices: buffer.vertices,
- indices: buffer.indices,
- },
- transformation: Transformation::IDENTITY,
- size: self.size,
- },
+ .filter_map(|buffer| match buffer {
+ Buffer::Solid(buffer) if !buffer.indices.is_empty() => {
+ Some(Mesh::Solid {
+ buffers: mesh::Indexed {
+ vertices: buffer.vertices,
+ indices: buffer.indices,
+ },
+ transformation: Transformation::IDENTITY,
+ size: self.size,
+ })
+ }
+ Buffer::Gradient(buffer) if !buffer.indices.is_empty() => {
+ Some(Mesh::Gradient {
+ buffers: mesh::Indexed {
+ vertices: buffer.vertices,
+ indices: buffer.indices,
+ },
+ transformation: Transformation::IDENTITY,
+ size: self.size,
+ })
+ }
+ _ => None,
})
.collect();