use std::cell::RefCell; use std::rc::Rc; use crate::context::PlatformContext; use crate::DebugUIBuffer; use crate::scene::Scene; pub trait EngineTrait { fn new() -> Self; fn initialize(&mut self, platform_context: PlatformContext); fn update(&mut self, platform_context: PlatformContext); fn current_scene_mut(&mut self) -> &mut Scene; fn get_debug_ui_buffer(&self) -> Rc>; fn reset_debug_ui_buffer(&mut self); fn scene_and_debug_ui_buffer_mut(&mut self) -> (&mut Scene, Rc>); }