cyborg/src/pass/mesh.rs

54 lines
1.3 KiB
Rust

use super::*;
use crate::mesh::*;
pub struct FrameData {}
pub struct MeshPass {
attr_store: Arc<AttrStore>,
mesh_pool: Arc<MeshPool>,
}
impl MeshPass {
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,
}
}
}
impl RenderPass for MeshPass {
type FrameData = FrameData;
fn create_frame_data(&mut self) -> FrameData {
FrameData {}
}
fn begin_frame(&mut self, data: &mut FrameData, phases: &mut PhaseList) {
println!("MeshPass::begin_frame()");
phases.insert_pre(PrePhase::VertexSkinning);
phases.insert_viewport(ViewportPhase::Depth);
phases.insert_viewport(ViewportPhase::Opaque);
phases.insert_viewport(ViewportPhase::Transparent);
}
fn render_pre(&self, phase: PrePhase, data: &FrameData, cmds: &mut gpu::RenderBundleEncoder) {
println!("MeshPass::render_pre(phase: {:?})", phase);
}
fn render_viewport(
&self,
phase: ViewportPhase,
data: &FrameData,
viewport: &ViewportData,
cmds: &mut gpu::RenderBundleEncoder,
) {
println!("MeshPass::render_viewport(phase: {:?})", phase);
}
}