1use ::glam::{DVec2, dvec2};
2use ab_glyph::FontArc;
3use image::ImageReader;
4use palette::Srgba;
5use render_agnostic::{
6 ImageRenderer, Renderer, image_registries::image_image_registry::ImageImageRegistry,
7};
8
9fn main() {
10 let mut image_image_registry = ImageImageRegistry::default();
11
12 image_image_registry.register_image(
13 String::from("beebo"),
14 ImageReader::open("BeeboBall.png")
15 .unwrap()
16 .decode()
17 .unwrap()
18 .into_rgba8(),
19 );
20
21 let mut image_renderer = ImageRenderer::new(
22 400,
23 400,
24 0.8,
25 DVec2::splat(0.5),
26 2,
27 FontArc::try_from_slice(include_bytes!("roboto.ttf")).unwrap(),
28 ImageImageRegistry::default(),
29 );
30
31 image_renderer.render_rectangle(
32 dvec2(0.0, 0.0),
33 100.0,
34 100.0,
35 dvec2(0.0, 0.0),
36 0.0,
37 Srgba::new(1.0, 0.0, 0.0, 1.0),
38 );
39
40 image_renderer.render_image("beebo", dvec2(0.0, 0.0), 100.0, 100.0, dvec2(0.0, 0.0), 0.0);
41
42 image_renderer.render_rectangle(
43 dvec2(100.0, 100.0),
44 100.0,
45 100.0,
46 dvec2(0.0, 0.0),
47 45.0f64.to_radians(),
48 Srgba::new(1.0, 0.0, 0.0, 1.0),
49 );
50
51 image_renderer.render_image(
52 "beebo",
53 dvec2(100.0, 100.0),
54 100.0,
55 100.0,
56 dvec2(0.0, 0.0),
57 45.0f64.to_radians(),
58 );
59
60 image_renderer.render_rectangle(
61 dvec2(200.0, 200.0),
62 100.0,
63 100.0,
64 dvec2(0.5, 0.5),
65 -45.0f64.to_radians(),
66 Srgba::new(1.0, 0.0, 0.0, 1.0),
67 );
68
69 image_renderer.render_image(
70 "beebo",
71 dvec2(200.0, 200.0),
72 100.0,
73 100.0,
74 dvec2(0.5, 0.5),
75 -45.0f64.to_radians(),
76 );
77
78 image_renderer.render_rectangle(
79 dvec2(300.0, 300.0),
80 100.0,
81 100.0,
82 dvec2(1.0, 1.0),
83 -90.0f64.to_radians(),
84 Srgba::new(1.0, 0.0, 0.0, 1.0),
85 );
86
87 image_renderer.render_image(
88 "beebo",
89 dvec2(300.0, 300.0),
90 100.0,
91 100.0,
92 dvec2(1.0, 1.0),
93 -90.0f64.to_radians(),
94 );
95
96 image_renderer.render_circle(dvec2(100.0, 100.0), 10.0, Srgba::new(1.0, 1.0, 0.0, 1.0));
97 image_renderer.render_circle(dvec2(200.0, 200.0), 10.0, Srgba::new(1.0, 1.0, 0.0, 1.0));
98 image_renderer.render_circle(dvec2(300.0, 300.0), 10.0, Srgba::new(1.0, 1.0, 0.0, 1.0));
99
100 image_renderer
101 .render_image_onto(image_renderer.black())
102 .save("images.png")
103 .unwrap();
104}