pub struct GraphicsBuilder<F>{ /* private fields */ }Expand description
Builder for creating a Graphics instance.
Implementations§
Source§impl<F> GraphicsBuilder<F>
impl<F> GraphicsBuilder<F>
Sourcepub fn new() -> GraphicsBuilder<F>
pub fn new() -> GraphicsBuilder<F>
Create a new empty GraphicsBuilder By default there is no resource manager or resource initializer, dimensions are 0, 0, name is empty
Examples found in repository?
examples/hello.rs (line 61)
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}Sourcepub fn resource_manager(
self,
resource_manager: Arc<Mutex<ResourceManager>>,
) -> GraphicsBuilder<F>
pub fn resource_manager( self, resource_manager: Arc<Mutex<ResourceManager>>, ) -> GraphicsBuilder<F>
Set the resource manager
Examples found in repository?
examples/hello.rs (line 64)
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}Sourcepub fn dimensions(self, dimensions: (u32, u32)) -> GraphicsBuilder<F>
pub fn dimensions(self, dimensions: (u32, u32)) -> GraphicsBuilder<F>
Set the window dimensions
Examples found in repository?
examples/hello.rs (line 63)
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}Sourcepub fn window_name(self, name: String) -> GraphicsBuilder<F>
pub fn window_name(self, name: String) -> GraphicsBuilder<F>
Set the window name
Examples found in repository?
examples/hello.rs (line 62)
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}Sourcepub fn initializer(self, initializer: F) -> GraphicsBuilder<F>
pub fn initializer(self, initializer: F) -> GraphicsBuilder<F>
Set the resource initializer (closure)
Examples found in repository?
examples/hello.rs (lines 69-71)
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}Sourcepub fn resizable(self, resizable: bool) -> GraphicsBuilder<F>
pub fn resizable(self, resizable: bool) -> GraphicsBuilder<F>
Will the window be resizable?
Sourcepub fn fullscreen(self, fullscreen: bool) -> GraphicsBuilder<F>
pub fn fullscreen(self, fullscreen: bool) -> GraphicsBuilder<F>
Will the window be fullscreen?
Sourcepub fn centered(self, centered: bool) -> GraphicsBuilder<F>
pub fn centered(self, centered: bool) -> GraphicsBuilder<F>
Will the window be centered?
Sourcepub fn build(self) -> Result<Graphics>
pub fn build(self) -> Result<Graphics>
Examples found in repository?
examples/hello.rs (line 72)
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<F> Freeze for GraphicsBuilder<F>where
F: Freeze,
impl<F> RefUnwindSafe for GraphicsBuilder<F>where
F: RefUnwindSafe,
impl<F> Send for GraphicsBuilder<F>where
F: Send,
impl<F> Sync for GraphicsBuilder<F>where
F: Sync,
impl<F> Unpin for GraphicsBuilder<F>where
F: Unpin,
impl<F> UnwindSafe for GraphicsBuilder<F>where
F: UnwindSafe,
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 moreSource§impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
fn into_sample(self) -> T
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().