use crate::asset_bridge::AssetBridge; use crate::audio_bridge::AudioBridge; use crate::gfx_bridge::GfxBridge; use crate::pad_bridge::PadBridge; use crate::sprite::Sprite; use crate::touch_bridge::TouchBridge; pub trait HardwareBridge { fn begin_frame(&mut self); fn bind_scene(&mut self, scene_bank_id: usize) -> bool; fn unbind_scene(&mut self); fn set_camera(&mut self, x: i32, y: i32); fn emit_sprite(&mut self, sprite: Sprite) -> bool; fn render_frame(&mut self); fn has_glyph_bank(&self, bank_id: usize) -> bool; fn gfx(&self) -> &dyn GfxBridge; fn gfx_mut(&mut self) -> &mut dyn GfxBridge; fn audio(&self) -> &dyn AudioBridge; fn audio_mut(&mut self) -> &mut dyn AudioBridge; fn pad(&self) -> &dyn PadBridge; fn pad_mut(&mut self) -> &mut dyn PadBridge; fn touch(&self) -> &dyn TouchBridge; fn touch_mut(&mut self) -> &mut dyn TouchBridge; fn assets(&self) -> &dyn AssetBridge; fn assets_mut(&mut self) -> &mut dyn AssetBridge; }