[oden] Extract DrawCall::call

This commit is contained in:
John Doty 2023-08-07 10:10:06 -07:00
parent f9648d88cd
commit 0cb5944d0a

View file

@ -511,24 +511,22 @@ impl DrawCall {
} }
} }
// pub fn draw<'a>(&'a self, pass: &'a mut wgpu::RenderPass, state: &'a State) { pub fn draw<'a>(&self, state: &'a State, pass: &mut wgpu::RenderPass<'a>) {
// if self.draw_start == self.draw_end { if self.draw_end > self.draw_start {
// return; let texture_id = match self.texture_id {
// } Some(id) => id,
None => return,
};
// let texture_id = match self.texture_id { let bind_group = state.sprite_textures.get(&texture_id).unwrap();
// Some(id) => id, pass.set_bind_group(0, bind_group, &[]);
// None => return,
// };
// let bind_group = state.sprite_textures.get(&texture_id).unwrap(); let vb = state.get_vertex_buffer(&self.vertex_buffer);
// pass.set_bind_group(0, bind_group, &[]); pass.set_bind_group(1, &state.screen_uniform_bind_group, &[]);
pass.set_vertex_buffer(0, vb.buffer.slice(..));
// let vb = self.vertex_buffer.borrow(); pass.draw(self.draw_start..self.draw_end, 0..1);
// pass.set_bind_group(1, &state.screen_uniform_bind_group, &[]); }
// pass.set_vertex_buffer(0, vb.buffer.slice(..)); }
// pass.draw(self.draw_start..self.draw_end, 0..1);
// }
} }
struct FrameBuilder<'a> { struct FrameBuilder<'a> {
@ -743,24 +741,7 @@ impl<'a> FrameBuilder<'a> {
pass.set_pipeline(&self.state.render_pipeline); pass.set_pipeline(&self.state.render_pipeline);
for call in &self.draw_calls { for call in &self.draw_calls {
if call.draw_start == call.draw_end { call.draw(&self.state, &mut pass);
continue;
}
let texture_id = match call.texture_id {
Some(id) => id,
None => return,
};
let bind_group = self.state.sprite_textures.get(&texture_id).unwrap();
pass.set_bind_group(0, bind_group, &[]);
let vb = self.state.get_vertex_buffer(&call.vertex_buffer);
pass.set_bind_group(1, &self.state.screen_uniform_bind_group, &[]);
pass.set_vertex_buffer(0, vb.buffer.slice(..));
pass.draw(call.draw_start..call.draw_end, 0..1);
// call.draw(&mut pass, &self.state);
} }
} }