bevy/crates/bevy_render/src/render_graph/system.rs
Carter Anderson ebcdc9fb8c
Flexible ECS System Params (#798)
system params can be in any order, faster compiles, remove foreach
2020-11-08 12:34:05 -08:00

25 lines
866 B
Rust

use super::RenderGraph;
use bevy_ecs::{Resources, World};
pub fn render_graph_schedule_executor_system(world: &mut World, resources: &mut Resources) {
// run render graph systems
let (mut system_schedule, mut commands) = {
let mut render_graph = resources.get_mut::<RenderGraph>().unwrap();
(render_graph.take_schedule(), render_graph.take_commands())
};
commands.apply(world, resources);
if let Some(schedule) = system_schedule.as_mut() {
schedule.run_on_systems(|system| {
if !system.is_initialized() {
system.initialize(world, resources);
}
});
schedule.run(world, resources);
}
let mut render_graph = resources.get_mut::<RenderGraph>().unwrap();
if let Some(schedule) = system_schedule.take() {
render_graph.set_schedule(schedule);
}
}