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}