Add and record Skinning phase
This commit is contained in:
parent
3e0a15079d
commit
0360873dc4
12
src/lib.rs
12
src/lib.rs
|
@ -224,6 +224,18 @@ impl Renderer {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if let Some(skinning) = phase_passes.get_vec(&Phase::Skinning) {
|
||||||
|
let mut cmds = encoder.begin_compute_pass(&wgpu::ComputePassDescriptor {
|
||||||
|
label: Some("Skinning Phase"),
|
||||||
|
});
|
||||||
|
|
||||||
|
skinning.iter().for_each(|pass_index| {
|
||||||
|
let phase_data = frame_data.make_phase_data(Phase::Skinning, &viewport);
|
||||||
|
let pass = &self.render_passes[*pass_index];
|
||||||
|
pass.record_compute(phase_data, &mut cmds);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
let record_render = |phase| {
|
let record_render = |phase| {
|
||||||
let cmds = Mutex::new(Vec::new());
|
let cmds = Mutex::new(Vec::new());
|
||||||
if let Some(passes) = phase_passes.get_vec(&phase) {
|
if let Some(passes) = phase_passes.get_vec(&phase) {
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
#[derive(Copy, Clone, Debug, Hash, Eq, Ord, PartialEq, PartialOrd, strum::EnumIter)]
|
#[derive(Copy, Clone, Debug, Hash, Eq, Ord, PartialEq, PartialOrd, strum::EnumIter)]
|
||||||
pub enum Phase {
|
pub enum Phase {
|
||||||
Upload,
|
Upload,
|
||||||
|
Skinning,
|
||||||
Depth,
|
Depth,
|
||||||
Opaque,
|
Opaque,
|
||||||
Transparent,
|
Transparent,
|
||||||
|
@ -17,6 +18,7 @@ impl Phase {
|
||||||
use Phase::*;
|
use Phase::*;
|
||||||
match self {
|
match self {
|
||||||
Upload => PhaseKind::Command,
|
Upload => PhaseKind::Command,
|
||||||
|
Skinning => PhaseKind::Compute,
|
||||||
Depth | Opaque | Transparent | Overlay => PhaseKind::Render,
|
Depth | Opaque | Transparent | Overlay => PhaseKind::Render,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue