This commit is contained in:
reo 2025-08-30 12:55:42 +03:00
parent cc7921a5fe
commit 3692736a61
22 changed files with 447 additions and 44 deletions

View file

@ -2,7 +2,7 @@ use std::cell::RefCell;
use std::rc::Rc;
use std::str::FromStr;
use std::sync::{Arc, RwLock};
use raidillon_platform::Platform;
use raidillon_platform::{Platform, PlatformContext};
use glium::winit::event_loop::EventLoop;
use glium::winit::window::Window;
use glium::backend::glutin::Display;
@ -40,7 +40,6 @@ impl Platform for GliumPlatform {
let asset_manager: ModelManagerRef = Rc::new(RefCell::new(Box::new(GliumAssetManager::new(Box::new(display.clone())))));
let mut rendering_system_manager = RenderingSystemManager::new();
engine.set_model_manager(asset_manager.clone());
// Install rendering systems
rendering_system_manager.add_system(
@ -59,7 +58,14 @@ impl Platform for GliumPlatform {
}
fn run(mut self) {
self.engine.initialize();
let (w, h): (u32, u32) = self.window.inner_size().into();
let ctx = PlatformContext {
current_event: Event::AboutToWait,
asset_manager: self.asset_manager.clone(),
frame_width: w as f32,
frame_height: h as f32,
};
self.engine.initialize(ctx);
let _ = &self.event_loop.run(move |event, el| {
match event {
Event::WindowEvent { event, .. } => match event {
@ -69,7 +75,7 @@ impl Platform for GliumPlatform {
},
WindowEvent::RedrawRequested => {
let mut target = self.display.draw();
target.clear_color(0.0, 0.0, 0.0, 1.0);
target.clear_color_and_depth((0.1, 0.1, 0.15, 1.0), 1.0);
// TODO: let mut context;
let mut context = RenderingContext {
scene: self.engine.scene_manager.current_mut(),
@ -85,8 +91,13 @@ impl Platform for GliumPlatform {
_ => {},
},
Event::AboutToWait => {
self.engine.set_winit_event(event.clone());
self.engine.update();
let ctx = PlatformContext {
current_event: event.clone(),
asset_manager: self.asset_manager.clone(),
frame_width: w as f32,
frame_height: h as f32,
};
self.engine.update(ctx);
self.window.request_redraw();
}
_ => {},