Skip to main content

macroquad_images/
macroquad_images.rs

1use ::glam::dvec2;
2use macroquad::{
3    prelude::*,
4    texture::{Texture2D, load_image},
5};
6use palette::Srgba;
7use render_agnostic::{
8    MacroquadRenderer, Renderer, image_registries::macroquad_image_registry::MacroquadImageRegistry,
9};
10
11#[macroquad::main("Images")]
12async fn main() {
13    let mut macroquad_image_registry = MacroquadImageRegistry::default();
14
15    macroquad_image_registry.register_image(
16        String::from("beebo"),
17        Texture2D::from_image(&load_image("BeeboBall.png").await.unwrap()),
18    );
19
20    let mut macroquad_renderer = MacroquadRenderer::new(None, macroquad_image_registry, false);
21
22    loop {
23        clear_background(BLACK);
24
25        macroquad_renderer.render_rectangle(
26            dvec2(0.0, 0.0),
27            100.0,
28            100.0,
29            dvec2(0.0, 0.0),
30            0.0,
31            Srgba::new(1.0, 0.0, 0.0, 1.0),
32        );
33
34        macroquad_renderer.render_image(
35            "beebo",
36            dvec2(0.0, 0.0),
37            100.0,
38            100.0,
39            dvec2(0.0, 0.0),
40            0.0,
41        );
42
43        macroquad_renderer.render_rectangle(
44            dvec2(100.0, 100.0),
45            100.0,
46            100.0,
47            dvec2(0.0, 0.0),
48            45.0f64.to_radians(),
49            Srgba::new(1.0, 0.0, 0.0, 1.0),
50        );
51
52        macroquad_renderer.render_image(
53            "beebo",
54            dvec2(100.0, 100.0),
55            100.0,
56            100.0,
57            dvec2(0.0, 0.0),
58            45.0f64.to_radians(),
59        );
60
61        macroquad_renderer.render_rectangle(
62            dvec2(200.0, 200.0),
63            100.0,
64            100.0,
65            dvec2(0.5, 0.5),
66            -45.0f64.to_radians(),
67            Srgba::new(1.0, 0.0, 0.0, 1.0),
68        );
69
70        macroquad_renderer.render_image(
71            "beebo",
72            dvec2(200.0, 200.0),
73            100.0,
74            100.0,
75            dvec2(0.5, 0.5),
76            -45.0f64.to_radians(),
77        );
78
79        macroquad_renderer.render_rectangle(
80            dvec2(300.0, 300.0),
81            100.0,
82            100.0,
83            dvec2(1.0, 1.0),
84            -90.0f64.to_radians(),
85            Srgba::new(1.0, 0.0, 0.0, 1.0),
86        );
87
88        macroquad_renderer.render_image(
89            "beebo",
90            dvec2(300.0, 300.0),
91            100.0,
92            100.0,
93            dvec2(1.0, 1.0),
94            -90.0f64.to_radians(),
95        );
96
97        macroquad_renderer.render_circle(dvec2(100.0, 100.0), 10.0, Srgba::new(1.0, 1.0, 0.0, 1.0));
98        macroquad_renderer.render_circle(dvec2(200.0, 200.0), 10.0, Srgba::new(1.0, 1.0, 0.0, 1.0));
99        macroquad_renderer.render_circle(dvec2(300.0, 300.0), 10.0, Srgba::new(1.0, 1.0, 0.0, 1.0));
100
101        next_frame().await
102    }
103}