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