Runners explicitly call App.initialize() (#690)
This commit is contained in:
parent
a80469bd13
commit
149c39950a
@ -63,7 +63,7 @@ impl App {
|
|||||||
.run(&mut self.schedule, &mut self.world, &mut self.resources);
|
.run(&mut self.schedule, &mut self.world, &mut self.resources);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn run(mut self) {
|
pub fn initialize(&mut self) {
|
||||||
self.startup_schedule
|
self.startup_schedule
|
||||||
.initialize(&mut self.world, &mut self.resources);
|
.initialize(&mut self.world, &mut self.resources);
|
||||||
self.startup_executor.initialize(&mut self.resources);
|
self.startup_executor.initialize(&mut self.resources);
|
||||||
@ -72,7 +72,9 @@ impl App {
|
|||||||
&mut self.world,
|
&mut self.world,
|
||||||
&mut self.resources,
|
&mut self.resources,
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn run(mut self) {
|
||||||
self.executor.initialize(&mut self.resources);
|
self.executor.initialize(&mut self.resources);
|
||||||
let runner = std::mem::replace(&mut self.runner, Box::new(run_once));
|
let runner = std::mem::replace(&mut self.runner, Box::new(run_once));
|
||||||
(runner)(self);
|
(runner)(self);
|
||||||
|
|||||||
@ -55,6 +55,8 @@ impl Plugin for ScheduleRunnerPlugin {
|
|||||||
fn build(&self, app: &mut AppBuilder) {
|
fn build(&self, app: &mut AppBuilder) {
|
||||||
let run_mode = self.run_mode;
|
let run_mode = self.run_mode;
|
||||||
app.set_runner(move |mut app: App| {
|
app.set_runner(move |mut app: App| {
|
||||||
|
app.initialize();
|
||||||
|
|
||||||
let mut app_exit_event_reader = EventReader::<AppExit>::default();
|
let mut app_exit_event_reader = EventReader::<AppExit>::default();
|
||||||
match run_mode {
|
match run_mode {
|
||||||
RunMode::Once => {
|
RunMode::Once => {
|
||||||
|
|||||||
@ -157,6 +157,8 @@ pub fn winit_runner(mut app: App) {
|
|||||||
&mut create_window_event_reader,
|
&mut create_window_event_reader,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
app.initialize();
|
||||||
|
|
||||||
log::debug!("Entering winit event loop");
|
log::debug!("Entering winit event loop");
|
||||||
|
|
||||||
let should_return_from_run = app
|
let should_return_from_run = app
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user