wip: engine enhancements and fixes
This commit is contained in:
parent
9816f14f53
commit
cc7921a5fe
27 changed files with 347 additions and 32 deletions
|
|
@ -1,5 +1,6 @@
|
|||
use std::cell::RefCell;
|
||||
use std::rc::Rc;
|
||||
use std::str::FromStr;
|
||||
use std::sync::{Arc, RwLock};
|
||||
use raidillon_platform::Platform;
|
||||
use glium::winit::event_loop::EventLoop;
|
||||
|
|
@ -8,12 +9,14 @@ use glium::backend::glutin::Display;
|
|||
use glium::glutin::surface::WindowSurface;
|
||||
use glium::backend::glutin::SimpleWindowBuilder;
|
||||
use glium::Surface;
|
||||
use crate::system::{RenderingSystemManager, RenderingSystem, RenderingContext};
|
||||
use crate::system::{RenderingSystemManager, RenderingSystem, RenderingContext, SystemID};
|
||||
use winit::event::{Event, WindowEvent};
|
||||
use raidillon_assets::{ModelManager, ModelManagerRef};
|
||||
use raidillon_core::Engine;
|
||||
use crate::GliumAssetManager;
|
||||
use crate::render::BasicRenderingSystem;
|
||||
use crate::{GliumAssetManager};
|
||||
use crate::render::BasicMeshRenderingSystem;
|
||||
|
||||
pub const MESH_RENDERER: &str = "mesh_renderer";
|
||||
|
||||
pub struct GliumPlatform {
|
||||
event_loop: EventLoop<()>,
|
||||
|
|
@ -36,8 +39,15 @@ impl Platform for GliumPlatform {
|
|||
.build(&event_loop);
|
||||
|
||||
let asset_manager: ModelManagerRef = Rc::new(RefCell::new(Box::new(GliumAssetManager::new(Box::new(display.clone())))));
|
||||
let rendering_system_manager = RenderingSystemManager::new();
|
||||
let mut rendering_system_manager = RenderingSystemManager::new();
|
||||
engine.set_model_manager(asset_manager.clone());
|
||||
|
||||
// Install rendering systems
|
||||
rendering_system_manager.add_system(
|
||||
MESH_RENDERER,
|
||||
Box::new(BasicMeshRenderingSystem::initialize(&display))
|
||||
);
|
||||
|
||||
Self {
|
||||
event_loop,
|
||||
window,
|
||||
|
|
@ -49,6 +59,7 @@ impl Platform for GliumPlatform {
|
|||
}
|
||||
|
||||
fn run(mut self) {
|
||||
self.engine.initialize();
|
||||
let _ = &self.event_loop.run(move |event, el| {
|
||||
match event {
|
||||
Event::WindowEvent { event, .. } => match event {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue