Create mesh pass pool + redraw loop

This commit is contained in:
mars 2022-04-18 02:21:19 -06:00
parent bbc6cf5c07
commit 1e54c54407
2 changed files with 22 additions and 6 deletions

View File

@ -41,12 +41,18 @@ fn main() {
let window = WindowBuilder::new().build(&event_loop).unwrap();
let mut renderer = pollster::block_on(make_window_renderer(&window));
let mesh_pass = pass::mesh::MeshPass::new();
let device = renderer.get_device();
let mesh_pass = pass::mesh::MeshPass::new(device.to_owned());
renderer.add_pass(mesh_pass);
renderer.render();
event_loop.run(move |event, _, control_flow| match event {
Event::RedrawRequested(_) => {
renderer.render();
}
Event::MainEventsCleared => {
std::thread::sleep(std::time::Duration::from_secs_f32( 1.0 / 60.0 ));
window.request_redraw();
}
Event::WindowEvent {
ref event,
window_id,

View File

@ -1,12 +1,22 @@
use super::*;
use crate::mesh::*;
pub struct FrameData {}
pub struct MeshPass {}
pub struct MeshPass {
attr_store: Arc<AttrStore>,
mesh_pool: Arc<MeshPool>,
}
impl MeshPass {
pub fn new() -> Self {
Self {}
pub fn new(device: Arc<wgpu::Device>) -> Self {
let attr_store = AttrStore::new();
let mesh_pool = MeshPool::new(device, attr_store.to_owned());
Self {
attr_store,
mesh_pool,
}
}
}