pub struct Window {
pub graphics: Graphics,
pub audio: Audio,
pub resource_manager: Arc<Mutex<ResourceManager>>,
}Expand description
Main window struct
Holds basic metadata and a reference to the graphics subsystem.
User must create a Window in order to feed it to the EventHandler
Fields§
§graphics: GraphicsGraphics subsystem used to render frames.
audio: AudioAudio subsystem
resource_manager: Arc<Mutex<ResourceManager>>Resource manager
Implementations§
Source§impl Window
impl Window
Sourcepub fn new(
graphics: Graphics,
resource_manager: Arc<Mutex<ResourceManager>>,
) -> Window
pub fn new( graphics: Graphics, resource_manager: Arc<Mutex<ResourceManager>>, ) -> Window
Create a new Window instance.
§Parameters
name: title of the windowgraphics: initialized graphics subsystem
§Returns
A Window instance ready to be used by an [EventHandler].
Examples found in repository?
examples/hello.rs (line 73)
59async fn main() {
60 let resource_manager = Arc::new(Mutex::new(ResourceManager::new()));
61 let graphics = graphics::GraphicsBuilder::new()
62 .window_name(String::from("game"))
63 .dimensions((500, 500))
64 .resource_manager(resource_manager.clone())
65 // we bulk load resources here because either we'll have to deal with
66 // ownership of `graphics` (the actual `let graphics`, not the closure
67 // argument)
68 // you may think of it like about just some initialization func
69 .initializer(|graphics| {
70 resource_manager.lock().unwrap().load_dir(PathBuf::from("assets"), graphics).unwrap();
71 })
72 .build();
73 let mut window = Window::new(graphics.unwrap(), resource_manager);
74
75 // because events::run takes a `&'static mut dyn WindowEventHandler` as a second argument we
76 // need to do this seemingly weird thing (while `app.rs` in fennel-engine has an ass solution
77 // with raw pointers lmfao)
78 let handler: &'static mut dyn WindowEventHandler = {
79 let boxed = Box::new(State);
80 Box::leak(boxed) as &'static mut dyn WindowEventHandler
81 };
82 events::run(&mut window, handler).await;
83}Trait Implementations§
Auto Trait Implementations§
impl Freeze for Window
impl RefUnwindSafe for Window
impl Unpin for Window
impl UnwindSafe for Window
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more