pub struct EventHandler { /* private fields */ }Implementations§
Source§impl EventHandler
impl EventHandler
Sourcepub fn new(window: &Window) -> EventHandler
pub fn new(window: &Window) -> EventHandler
Examples found in repository?
examples/threads.rs (line 15)
13fn main() {
14 let mut window = Window::new(gust::WIDTH, gust::HEIGHT, "Hello");
15 let event_handler = EventHandler::new(&window);
16 let mut shared = SharedWindow::new(&mut window);
17 let (send, recv) = mpsc::channel();
18
19 let renderer = thread::spawn(move || {
20 render(&mut shared, recv);
21 });
22
23 window.poll(None);
24 while window.is_open() {
25 window.poll_events();
26
27 for event in event_handler.fetch() {
28 match event.1 {
29 pressed!(Escape) => window.close(),
30 _ => {}
31 }
32 }
33 }
34 send.send(()).ok().expect("Failed to send ()");
35
36 renderer.join().unwrap();
37}More examples
examples/event.rs (line 18)
15fn main() {
16 let mut window = Window::new(gust::WIDTH, gust::HEIGHT, "Hello");
17 let tex_dirt = Rc::new(Texture::from_path("examples/texture/Dirt.png").unwrap());
18 let event_handler = EventHandler::new(&window);
19 let mut sprites = HashMap::new();
20 sprites.insert("dirt_1", Sprite::from(&tex_dirt));
21 sprites.insert("dirt_2", Sprite::from(&tex_dirt));
22
23 window.set_clear_color(Color::new(0.0, 0.0, 1.0));
24 window.enable_cursor();
25 window.poll(None);
26 while window.is_open() {
27 window.poll_events();
28
29 for event in event_handler.fetch() {
30 event_process(event, &mut window, &mut sprites);
31 }
32
33 draw(&mut window, &mut sprites);
34 }
35}examples/batch.rs (line 26)
15fn main() -> Result<(), Box<Error>> {
16 let mut window = Window::new(gust::WIDTH, gust::HEIGHT, "Hello");
17
18 let texture = Rc::new(Texture::from_path("examples/texture/Dirt.png").unwrap());
19 let mut batch = SpriteBatch::from(&texture);
20 for i in 0..1_000_000 {
21 let mut data = SpriteData::new(Vector::new(i as f32 * 1.0, i as f32 * 10.0));
22 data.set_texture_raw([Vector::new(0.0, 0.0), Vector::new(1.0, 1.0)]);
23 batch.push_sprite(data);
24 }
25
26 let event_handler = EventHandler::new(&window);
27
28 window.set_clear_color(Color::new(0.45, 0.0, 1.0));
29 window.enable_cursor();
30 window.poll(None);
31 while window.is_open() {
32 window.poll_events();
33 for event in event_handler.fetch() {
34 event_process(event, &mut window, &mut batch);
35 }
36 window.clear();
37 window.draw_mut(&mut batch);
38 window.display();
39 }
40
41 Ok(())
42}examples/multi_window.rs (line 20)
9fn window1() -> Result<(), Box<Error>> {
10 let mut window = Window::new(600, 600, "Hello1");
11 let tex_leave = Rc::new(Texture::from_path("examples/texture/Z.png").unwrap());
12 let tex_dirt = Rc::new(Texture::from_path("examples/texture/Dirt.png").unwrap());
13 let mut sprite = Sprite::from(&tex_dirt);
14 let mut leave = Sprite::from(&tex_leave);
15 leave.set_position(Point::new(500.0, 500.0));
16 sprite.set_position(Point::new(10.0, 10.0));
17 leave.set_scale(Vector::new(0.5, 0.5));
18 leave.set_origin_to_center()?;
19
20 let event_handler = EventHandler::new(&window);
21
22 window.set_clear_color(Color::new(0.45, 0.0, 1.0));
23 window.enable_cursor();
24 window.poll(None);
25
26 while window.is_open() {
27 window.poll_events();
28 leave.rotate(1.0);
29 leave.update();
30 sprite.update();
31
32 for event in event_handler.fetch() {
33 event_process(event, &mut window);
34 }
35
36 window.clear();
37 window.draw(&mut sprite);
38 window.draw(&mut leave);
39 window.display();
40 }
41 Ok(())
42}
43
44fn window2() -> Result<(), Box<Error>> {
45 let mut window = Window::new(500, 500, "Hello2");
46 let font = Rc::new(RefCell::new(
47 Font::from_path("examples/font/terminus.ttf").unwrap(),
48 ));
49 let mut text = Text::from_str(&font, "I've been looking forward to this.");
50 text.set_position(Vector::new(5.0, 40.0));
51 let event_handler = EventHandler::new(&window);
52
53 window.set_clear_color(Color::new(1.0, 0.0, 1.0));
54 window.enable_cursor();
55 window.poll(None);
56
57 while window.is_open() {
58 text.update();
59 window.poll_events();
60
61 for event in event_handler.fetch() {
62 event_process(event, &mut window);
63 }
64
65 window.clear();
66 window.draw(&mut text);
67 window.display();
68 }
69 Ok(())
70}examples/basic.rs (line 20)
8fn main() -> Result<(), Box<Error>> {
9 let mut window = Window::new(gust::WIDTH, gust::HEIGHT, "Hello");
10
11 let tex_leave = Rc::new(Texture::from_path("examples/texture/Z.png").unwrap());
12 let tex_dirt = Rc::new(Texture::from_path("examples/texture/Dirt.png").unwrap());
13 let mut sprite = Sprite::from(&tex_dirt);
14 let mut leave = Sprite::from(&tex_leave);
15 leave.set_position(Point::new(500.0, 500.0));
16 sprite.set_position(Point::new(10.0, 10.0));
17 leave.set_scale(Vector::new(0.5, 0.5));
18 leave.set_origin_to_center()?;
19
20 let event_handler = EventHandler::new(&window);
21
22 window.set_clear_color(Color::new(0.45, 0.0, 1.0));
23 window.enable_cursor();
24 window.poll(None);
25
26 while window.is_open() {
27 window.poll_events();
28 leave.rotate(1.0);
29 leave.update();
30 sprite.update();
31
32 for event in event_handler.fetch() {
33 event_process(event, &mut window);
34 }
35
36 window.clear();
37 window.draw(&sprite);
38 window.draw(&leave);
39 window.display();
40 }
41
42 Ok(())
43}examples/view.rs (line 11)
7fn main() {
8 let mut window = Window::new(gust::WIDTH, gust::HEIGHT, "Hello");
9 let tex_leave = Rc::new(Texture::from_path("examples/texture/Z.png").unwrap());
10 let tex_dirt = Rc::new(Texture::from_path("examples/texture/Dirt.png").unwrap());
11 let event_handler = EventHandler::new(&window);
12 let mut sprite = Sprite::from(&tex_dirt);
13 let mut leave = Sprite::from(&tex_leave);
14
15 leave.set_position(Point::new(300.0, 300.0));
16 window.set_clear_color(Color::new(0.0, 0.0, 1.0));
17 window.enable_cursor();
18 window.poll(None);
19 leave.set_scale(Vector::new(0.5, 0.5));
20 leave
21 .set_origin_to_center()
22 .unwrap_or_else(|e| println!("{}", e));
23 while window.is_open() {
24 window.poll_events();
25 leave.rotate(1.0);
26 leave.update();
27 sprite.update();
28 window.view_mut().update();
29
30 for event in event_handler.fetch() {
31 event_process(event, &mut window);
32 }
33
34 window.clear();
35 window.draw(&mut sprite);
36 window.draw(&mut leave);
37 window.display();
38 }
39}Additional examples can be found in:
Sourcepub fn fetch(&self) -> EventIterator<'_> ⓘ
pub fn fetch(&self) -> EventIterator<'_> ⓘ
Examples found in repository?
examples/threads.rs (line 27)
13fn main() {
14 let mut window = Window::new(gust::WIDTH, gust::HEIGHT, "Hello");
15 let event_handler = EventHandler::new(&window);
16 let mut shared = SharedWindow::new(&mut window);
17 let (send, recv) = mpsc::channel();
18
19 let renderer = thread::spawn(move || {
20 render(&mut shared, recv);
21 });
22
23 window.poll(None);
24 while window.is_open() {
25 window.poll_events();
26
27 for event in event_handler.fetch() {
28 match event.1 {
29 pressed!(Escape) => window.close(),
30 _ => {}
31 }
32 }
33 }
34 send.send(()).ok().expect("Failed to send ()");
35
36 renderer.join().unwrap();
37}More examples
examples/event.rs (line 29)
15fn main() {
16 let mut window = Window::new(gust::WIDTH, gust::HEIGHT, "Hello");
17 let tex_dirt = Rc::new(Texture::from_path("examples/texture/Dirt.png").unwrap());
18 let event_handler = EventHandler::new(&window);
19 let mut sprites = HashMap::new();
20 sprites.insert("dirt_1", Sprite::from(&tex_dirt));
21 sprites.insert("dirt_2", Sprite::from(&tex_dirt));
22
23 window.set_clear_color(Color::new(0.0, 0.0, 1.0));
24 window.enable_cursor();
25 window.poll(None);
26 while window.is_open() {
27 window.poll_events();
28
29 for event in event_handler.fetch() {
30 event_process(event, &mut window, &mut sprites);
31 }
32
33 draw(&mut window, &mut sprites);
34 }
35}examples/batch.rs (line 33)
15fn main() -> Result<(), Box<Error>> {
16 let mut window = Window::new(gust::WIDTH, gust::HEIGHT, "Hello");
17
18 let texture = Rc::new(Texture::from_path("examples/texture/Dirt.png").unwrap());
19 let mut batch = SpriteBatch::from(&texture);
20 for i in 0..1_000_000 {
21 let mut data = SpriteData::new(Vector::new(i as f32 * 1.0, i as f32 * 10.0));
22 data.set_texture_raw([Vector::new(0.0, 0.0), Vector::new(1.0, 1.0)]);
23 batch.push_sprite(data);
24 }
25
26 let event_handler = EventHandler::new(&window);
27
28 window.set_clear_color(Color::new(0.45, 0.0, 1.0));
29 window.enable_cursor();
30 window.poll(None);
31 while window.is_open() {
32 window.poll_events();
33 for event in event_handler.fetch() {
34 event_process(event, &mut window, &mut batch);
35 }
36 window.clear();
37 window.draw_mut(&mut batch);
38 window.display();
39 }
40
41 Ok(())
42}examples/multi_window.rs (line 32)
9fn window1() -> Result<(), Box<Error>> {
10 let mut window = Window::new(600, 600, "Hello1");
11 let tex_leave = Rc::new(Texture::from_path("examples/texture/Z.png").unwrap());
12 let tex_dirt = Rc::new(Texture::from_path("examples/texture/Dirt.png").unwrap());
13 let mut sprite = Sprite::from(&tex_dirt);
14 let mut leave = Sprite::from(&tex_leave);
15 leave.set_position(Point::new(500.0, 500.0));
16 sprite.set_position(Point::new(10.0, 10.0));
17 leave.set_scale(Vector::new(0.5, 0.5));
18 leave.set_origin_to_center()?;
19
20 let event_handler = EventHandler::new(&window);
21
22 window.set_clear_color(Color::new(0.45, 0.0, 1.0));
23 window.enable_cursor();
24 window.poll(None);
25
26 while window.is_open() {
27 window.poll_events();
28 leave.rotate(1.0);
29 leave.update();
30 sprite.update();
31
32 for event in event_handler.fetch() {
33 event_process(event, &mut window);
34 }
35
36 window.clear();
37 window.draw(&mut sprite);
38 window.draw(&mut leave);
39 window.display();
40 }
41 Ok(())
42}
43
44fn window2() -> Result<(), Box<Error>> {
45 let mut window = Window::new(500, 500, "Hello2");
46 let font = Rc::new(RefCell::new(
47 Font::from_path("examples/font/terminus.ttf").unwrap(),
48 ));
49 let mut text = Text::from_str(&font, "I've been looking forward to this.");
50 text.set_position(Vector::new(5.0, 40.0));
51 let event_handler = EventHandler::new(&window);
52
53 window.set_clear_color(Color::new(1.0, 0.0, 1.0));
54 window.enable_cursor();
55 window.poll(None);
56
57 while window.is_open() {
58 text.update();
59 window.poll_events();
60
61 for event in event_handler.fetch() {
62 event_process(event, &mut window);
63 }
64
65 window.clear();
66 window.draw(&mut text);
67 window.display();
68 }
69 Ok(())
70}examples/basic.rs (line 32)
8fn main() -> Result<(), Box<Error>> {
9 let mut window = Window::new(gust::WIDTH, gust::HEIGHT, "Hello");
10
11 let tex_leave = Rc::new(Texture::from_path("examples/texture/Z.png").unwrap());
12 let tex_dirt = Rc::new(Texture::from_path("examples/texture/Dirt.png").unwrap());
13 let mut sprite = Sprite::from(&tex_dirt);
14 let mut leave = Sprite::from(&tex_leave);
15 leave.set_position(Point::new(500.0, 500.0));
16 sprite.set_position(Point::new(10.0, 10.0));
17 leave.set_scale(Vector::new(0.5, 0.5));
18 leave.set_origin_to_center()?;
19
20 let event_handler = EventHandler::new(&window);
21
22 window.set_clear_color(Color::new(0.45, 0.0, 1.0));
23 window.enable_cursor();
24 window.poll(None);
25
26 while window.is_open() {
27 window.poll_events();
28 leave.rotate(1.0);
29 leave.update();
30 sprite.update();
31
32 for event in event_handler.fetch() {
33 event_process(event, &mut window);
34 }
35
36 window.clear();
37 window.draw(&sprite);
38 window.draw(&leave);
39 window.display();
40 }
41
42 Ok(())
43}examples/view.rs (line 30)
7fn main() {
8 let mut window = Window::new(gust::WIDTH, gust::HEIGHT, "Hello");
9 let tex_leave = Rc::new(Texture::from_path("examples/texture/Z.png").unwrap());
10 let tex_dirt = Rc::new(Texture::from_path("examples/texture/Dirt.png").unwrap());
11 let event_handler = EventHandler::new(&window);
12 let mut sprite = Sprite::from(&tex_dirt);
13 let mut leave = Sprite::from(&tex_leave);
14
15 leave.set_position(Point::new(300.0, 300.0));
16 window.set_clear_color(Color::new(0.0, 0.0, 1.0));
17 window.enable_cursor();
18 window.poll(None);
19 leave.set_scale(Vector::new(0.5, 0.5));
20 leave
21 .set_origin_to_center()
22 .unwrap_or_else(|e| println!("{}", e));
23 while window.is_open() {
24 window.poll_events();
25 leave.rotate(1.0);
26 leave.update();
27 sprite.update();
28 window.view_mut().update();
29
30 for event in event_handler.fetch() {
31 event_process(event, &mut window);
32 }
33
34 window.clear();
35 window.draw(&mut sprite);
36 window.draw(&mut leave);
37 window.display();
38 }
39}Additional examples can be found in:
Trait Implementations§
Source§impl<'a> From<&'a EventHandler> for EventIterator<'a>
impl<'a> From<&'a EventHandler> for EventIterator<'a>
Source§fn from(var: &'a EventHandler) -> EventIterator<'a> ⓘ
fn from(var: &'a EventHandler) -> EventIterator<'a> ⓘ
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for EventHandler
impl RefUnwindSafe for EventHandler
impl !Send for EventHandler
impl !Sync for EventHandler
impl Unpin for EventHandler
impl UnwindSafe for EventHandler
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<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<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> SetParameter for T
impl<T> SetParameter for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§unsafe fn to_subset_unchecked(&self) -> SS
unsafe fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.