pub struct SimpleBuffer { /* private fields */ }Expand description
wrapper for Buffer which stores count of elements
Implementations§
Source§impl SimpleBuffer
impl SimpleBuffer
Sourcepub fn size(&self) -> u32
pub fn size(&self) -> u32
Examples found in repository?
examples/display_rect.rs (line 67)
31fn render(app_data: &AppData, _: &mut (), mut encoder: CommandEncoder, view: TextureView) {
32 let vertex_buffer = BufferCreator::vertex(&app_data.device)
33 .data(vec![
34 ColoredVertex {
35 position: [-0.5, 0.5, 0.0],
36 color: [0.2, 0.0, 0.3],
37 },
38 ColoredVertex {
39 position: [-0.5, -0.5, 0.0],
40 color: [0.2, 0.0, 0.3],
41 },
42 ColoredVertex {
43 position: [0.5, 0.5, 0.0],
44 color: [0.2, 0.0, 0.3],
45 },
46 ColoredVertex {
47 position: [0.5, -0.5, 0.0],
48 color: [0.2, 0.0, 0.3],
49 },
50 ])
51 .build();
52
53 let indices_buffer = BufferCreator::indices(&app_data.device)
54 .data(vec![0, 1, 2, 2, 1, 3])
55 .build();
56
57 {
58 let mut render_pass: RenderPass = RenderPassCreator::new(&view)
59 .clear_color(Color::BLACK)
60 .build(&mut encoder);
61
62 render_pass.set_pipeline(app_data.render_pipelines.get(0).unwrap());
63
64 render_pass.set_vertex_buffer(0, vertex_buffer.slice());
65 render_pass.set_index_buffer(indices_buffer.slice(), wgpu::IndexFormat::Uint32);
66
67 render_pass.draw_indexed(0..indices_buffer.size(), 0, 0..1);
68 }
69
70 app_data.queue.submit(once(encoder.finish()));
71}Sourcepub fn slice(&self) -> BufferSlice<'_>
pub fn slice(&self) -> BufferSlice<'_>
Examples found in repository?
examples/moving_triangle.rs (line 71)
43fn render(app_data: &AppData, state: &mut State, mut encoder: CommandEncoder, view: TextureView) {
44 let vertex_buffer = BufferCreator::vertex(&app_data.device)
45 .data(vec![
46 ColoredPosVertex {
47 position: [
48 (0.0 + state.pos.0) * state.x_scale,
49 TRIANGLE_SIZE + state.pos.1,
50 ],
51 },
52 ColoredPosVertex {
53 position: [
54 (-TRIANGLE_SIZE + state.pos.0) * state.x_scale,
55 -TRIANGLE_SIZE + state.pos.1,
56 ],
57 },
58 ColoredPosVertex {
59 position: [
60 (TRIANGLE_SIZE + state.pos.0) * state.x_scale,
61 -TRIANGLE_SIZE + state.pos.1,
62 ],
63 },
64 ])
65 .build();
66
67 {
68 let mut render_pass = RenderPassCreator::new(&view).build(&mut encoder);
69
70 render_pass.set_pipeline(app_data.render_pipelines.get(0).unwrap());
71 render_pass.set_vertex_buffer(0, vertex_buffer.slice());
72
73 render_pass.draw(0..3, 0..1);
74 }
75
76 app_data.queue.submit(once(encoder.finish()));
77}More examples
examples/display_rect.rs (line 64)
31fn render(app_data: &AppData, _: &mut (), mut encoder: CommandEncoder, view: TextureView) {
32 let vertex_buffer = BufferCreator::vertex(&app_data.device)
33 .data(vec![
34 ColoredVertex {
35 position: [-0.5, 0.5, 0.0],
36 color: [0.2, 0.0, 0.3],
37 },
38 ColoredVertex {
39 position: [-0.5, -0.5, 0.0],
40 color: [0.2, 0.0, 0.3],
41 },
42 ColoredVertex {
43 position: [0.5, 0.5, 0.0],
44 color: [0.2, 0.0, 0.3],
45 },
46 ColoredVertex {
47 position: [0.5, -0.5, 0.0],
48 color: [0.2, 0.0, 0.3],
49 },
50 ])
51 .build();
52
53 let indices_buffer = BufferCreator::indices(&app_data.device)
54 .data(vec![0, 1, 2, 2, 1, 3])
55 .build();
56
57 {
58 let mut render_pass: RenderPass = RenderPassCreator::new(&view)
59 .clear_color(Color::BLACK)
60 .build(&mut encoder);
61
62 render_pass.set_pipeline(app_data.render_pipelines.get(0).unwrap());
63
64 render_pass.set_vertex_buffer(0, vertex_buffer.slice());
65 render_pass.set_index_buffer(indices_buffer.slice(), wgpu::IndexFormat::Uint32);
66
67 render_pass.draw_indexed(0..indices_buffer.size(), 0, 0..1);
68 }
69
70 app_data.queue.submit(once(encoder.finish()));
71}Auto Trait Implementations§
impl !Freeze for SimpleBuffer
impl !RefUnwindSafe for SimpleBuffer
impl Send for SimpleBuffer
impl Sync for SimpleBuffer
impl Unpin for SimpleBuffer
impl !UnwindSafe for SimpleBuffer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more