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