Skip to content

Commit

Permalink
make iced_wgpu::mesh::Indexed use Arc<[_]> instead of Vec<_>
Browse files Browse the repository at this point in the history
  • Loading branch information
edwloef committed Dec 19, 2024
1 parent a687a83 commit e5a8ac6
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 8 deletions.
6 changes: 4 additions & 2 deletions examples/geometry/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,8 @@ mod rainbow {
position: posn_l,
color: color::pack(color_v),
},
],
]
.into(),
indices: vec![
0, 1, 2, // TL
0, 2, 3, // T
Expand All @@ -130,7 +131,8 @@ mod rainbow {
0, 6, 7, // B
0, 7, 8, // BL
0, 8, 1, // L
],
]
.into(),
},
transformation: Transformation::IDENTITY,
clip_bounds: Rectangle::INFINITE,
Expand Down
5 changes: 3 additions & 2 deletions graphics/src/mesh.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ use crate::core::{Rectangle, Transformation};
use crate::gradient;

use bytemuck::{Pod, Zeroable};
use std::sync::Arc;

/// A low-level primitive to render a mesh of triangles.
#[derive(Debug, Clone, PartialEq)]
Expand Down Expand Up @@ -70,12 +71,12 @@ impl Mesh {
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct Indexed<T> {
/// The vertices of the mesh
pub vertices: Vec<T>,
pub vertices: Arc<[T]>,

/// The list of vertex indices that defines the triangles of the mesh.
///
/// Therefore, this list should always have a length that is a multiple of 3.
pub indices: Vec<u32>,
pub indices: Arc<[u32]>,
}

/// A two-dimensional vertex with a color.
Expand Down
8 changes: 4 additions & 4 deletions wgpu/src/geometry.rs
Original file line number Diff line number Diff line change
Expand Up @@ -527,8 +527,8 @@ impl BufferStack {
Buffer::Solid(buffer) if !buffer.indices.is_empty() => {
Some(Mesh::Solid {
buffers: mesh::Indexed {
vertices: buffer.vertices,
indices: buffer.indices,
vertices: Arc::from(buffer.vertices),
indices: Arc::from(buffer.indices),
},
clip_bounds,
transformation: Transformation::IDENTITY,
Expand All @@ -537,8 +537,8 @@ impl BufferStack {
Buffer::Gradient(buffer) if !buffer.indices.is_empty() => {
Some(Mesh::Gradient {
buffers: mesh::Indexed {
vertices: buffer.vertices,
indices: buffer.indices,
vertices: Arc::from(buffer.vertices),
indices: Arc::from(buffer.indices),
},
clip_bounds,
transformation: Transformation::IDENTITY,
Expand Down

0 comments on commit e5a8ac6

Please sign in to comment.