pub struct RenderPassCreator<'a> { /* private fields */ }Expand description
Builder Patter for wgpu RenderPass
Implementations§
Source§impl<'a> RenderPassCreator<'a>
impl<'a> RenderPassCreator<'a>
Sourcepub fn new(view: &'a TextureView) -> RenderPassCreator<'a>
pub fn new(view: &'a TextureView) -> RenderPassCreator<'a>
Examples found in repository?
examples/moving_triangle.rs (line 68)
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 58)
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 clear_color(self, clear_color: Color) -> Self
pub fn clear_color(self, clear_color: Color) -> Self
sets clear_color (background color)
Examples found in repository?
examples/display_rect.rs (line 59)
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 depth_stencil_attachment(
self,
depth_stencil_attachment: RenderPassDepthStencilAttachment<'a>,
) -> Self
pub fn depth_stencil_attachment( self, depth_stencil_attachment: RenderPassDepthStencilAttachment<'a>, ) -> Self
sets the used RenderPassDepthStencilAttachment
Sourcepub fn build(self, encoder: &'a mut CommandEncoder) -> RenderPass<'a>
pub fn build(self, encoder: &'a mut CommandEncoder) -> RenderPass<'a>
creates a RenderPass
Examples found in repository?
examples/moving_triangle.rs (line 68)
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 60)
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 descriptor(&'a mut self) -> RenderPassDescriptor<'a, 'a>
pub fn descriptor(&'a mut self) -> RenderPassDescriptor<'a, 'a>
returns the RenderPassDescriptor
Auto Trait Implementations§
impl<'a> Freeze for RenderPassCreator<'a>
impl<'a> !RefUnwindSafe for RenderPassCreator<'a>
impl<'a> Send for RenderPassCreator<'a>
impl<'a> Sync for RenderPassCreator<'a>
impl<'a> Unpin for RenderPassCreator<'a>
impl<'a> !UnwindSafe for RenderPassCreator<'a>
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