i mean, it runs again,.. thats something

This commit is contained in:
LunarAkai 2025-07-27 20:22:17 +02:00
commit 26d357f169
3 changed files with 14 additions and 9 deletions

View file

@ -1,6 +1,6 @@
use std::{ops::DerefMut, sync::Mutex}; use std::{ops::{ControlFlow, DerefMut}, sync::Mutex};
use glium::{glutin::surface::WindowSurface, winit::{self, event::WindowEvent, event_loop::{self, EventLoop}, window::Window}}; use glium::{glutin::surface::WindowSurface, winit::{self, event::{self, WindowEvent}, event_loop::{self, EventLoop}, window::Window}};
use crate::{game, game_plugin::GamePlugin, winit::winit_window::WinitWindow, ENGINE_NAME}; use crate::{game, game_plugin::GamePlugin, winit::winit_window::WinitWindow, ENGINE_NAME};
@ -67,7 +67,6 @@ impl Game {
pub fn run(&mut self) { pub fn run(&mut self) {
while self.running { while self.running {
self.update(); self.update();
self.handle_events( self);
self.render(); self.render();
} }
@ -82,13 +81,17 @@ impl Game {
self.window self.window
} }
fn handle_events(self, game: &mut Game) { pub fn handle_events(&mut self, event: winit::event::Event<()>) {
let _ = Box::new(self.event_loop).run(move |event, window_target| { if let Some(ref mut game_plugin) = self.game_plugin {
game_plugin.handle_events();
}
match event { match event {
glium::winit::event::Event::WindowEvent { event, .. } => match event { glium::winit::event::Event::WindowEvent { event, .. } => match event {
glium::winit::event::WindowEvent::CloseRequested => window_target.exit(), glium::winit::event::WindowEvent::CloseRequested => {
},
glium::winit::event::WindowEvent::Resized(window_size) => { glium::winit::event::WindowEvent::Resized(window_size) => {
game.get_display().resize(window_size.into());
}, },
glium::winit::event::WindowEvent::RedrawRequested => { glium::winit::event::WindowEvent::RedrawRequested => {
@ -100,7 +103,5 @@ impl Game {
}, },
_ => (), _ => (),
} }
});
} }
} }

View file

@ -6,4 +6,5 @@ pub trait GamePlugin {
fn update(&mut self); fn update(&mut self);
fn render(&mut self, target: &mut Frame); fn render(&mut self, target: &mut Frame);
fn cleanup(&mut self); fn cleanup(&mut self);
fn handle_events(&mut self);
} }

View file

@ -56,6 +56,9 @@ impl GamePlugin for PlaygroundGame {
} }
fn cleanup(&mut self) { fn cleanup(&mut self) {
}
fn handle_events(&mut self) {
} }
} }