Continue new platform/glium implementations

- Assets, asset manager system
- Rendering system trait
- Kick off glium platform implementation
- And more
This commit is contained in:
reo 2025-08-07 17:56:35 +03:00 committed by Emre
parent f7d5c14caf
commit e817abf8ab
18 changed files with 2557 additions and 32 deletions

View file

@ -0,0 +1,2 @@
mod scene;
pub use scene::{Scene, SceneManager};

View file

@ -0,0 +1,30 @@
pub struct Scene {
title: String,
world: hecs::World,
skybox_texture_path: String,
}
pub struct SceneManager {
scenes: Vec<Option<Scene>>,
active_index: usize,
}
impl SceneManager {
pub fn current(&self) -> &Scene {
self.scenes[self.active_index].as_ref().unwrap()
}
pub fn current_mut(&mut self) -> &mut Scene {
self.scenes[self.active_index].as_mut().unwrap()
}
pub fn add_scene(&mut self, scene: Scene) -> usize {
let idx = self.scenes.len();
self.scenes.push(Some(scene));
idx
}
pub fn remove_scene(&mut self, idx: usize) {
self.scenes[idx] = None;
}
}