use bevy::app::{App, First, Last, PostUpdate, PreUpdate, RunFixedMainLoop, SpawnScene, Update};
use bevy::ecs::schedule::{Schedule, SingleThreadedExecutor};
pub fn tune_schedules_for_gui(app: &mut App) {
fn st(s: &mut Schedule) {
s.set_executor(SingleThreadedExecutor::new());
}
app.edit_schedule(First, st);
app.edit_schedule(PreUpdate, st);
app.edit_schedule(Update, st);
app.edit_schedule(PostUpdate, st);
app.edit_schedule(Last, st);
app.edit_schedule(SpawnScene, st);
app.edit_schedule(RunFixedMainLoop, st);
}
pub fn tune_schedules_for_gui_headless(app: &mut App) {
fn st(s: &mut Schedule) {
s.set_executor(SingleThreadedExecutor::new());
}
tune_schedules_for_gui(app);
if let Some(render_app) = app.get_sub_app_mut(bevy::render::RenderApp) {
render_app.edit_schedule(bevy::render::Render, st);
render_app.edit_schedule(bevy::render::ExtractSchedule, st);
}
}