wip
This commit is contained in:
parent
cc7921a5fe
commit
3692736a61
22 changed files with 447 additions and 44 deletions
|
|
@ -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();
|
||||
}
|
||||
_ => {},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue