1use std::f64::consts::TAU;
2
3use ab_glyph::FontArc;
4use glam::DVec2;
5use macroquad::{time::get_time, window::next_frame};
6use palette::Srgba;
7use render_agnostic::{
8 Renderer,
9 renderers::{image::ImageRenderer, macroquad::MacroquadRenderer},
10};
11
12#[macroquad::main("test")]
13async fn main() {
14 let mut image_renderer = ImageRenderer::new(
15 128,
16 128,
17 1.0,
18 DVec2::ZERO,
19 1,
20 FontArc::try_from_slice(include_bytes!("roboto.ttf")).unwrap(),
21 );
22
23 image_renderer.render_rectangle_lines(
24 DVec2::splat(100.0),
25 15.0,
26 15.0,
27 DVec2::splat(0.5),
28 0.0,
29 2.0,
30 Srgba::new(1.0, 0.0, 0.0, 1.0),
31 );
32
33 image_renderer.render_rectangle_lines(
34 DVec2::splat(100.0),
35 15.0,
36 15.0,
37 DVec2::splat(0.5),
38 TAU / 8.0,
39 2.0,
40 Srgba::new(0.0, 0.0, 1.0, 1.0),
41 );
42
43 image_renderer.render_rectangle(
44 DVec2::splat(500.0),
45 1.0,
46 1.0,
47 DVec2::splat(0.5),
48 TAU / 8.0,
49 Srgba::new(0.0, 0.0, 1.0, 1.0),
50 );
51
52 image_renderer.render_circle_lines(DVec2::splat(100.0), 4.0, 1.0, Srgba::new(0.0, 1.0, 0.0, 1.0));
73
74 image_renderer
75 .render_image_onto(image_renderer.black())
76 .save("rectangles.png")
77 .unwrap();
78
79 let mut macroquad_renderer = MacroquadRenderer::new(None);
80
81 {
82 for i in 1..=100 {
83 macroquad_renderer.render_rectangle(
84 DVec2::splat(100.0),
85 101.0 - i as f64,
86 101.0 - i as f64,
87 DVec2::splat(0.5),
88 0.0,
89 Srgba::new((i % 2) as f32, ((i + 1) % 2) as f32, ((i + 1) % 2) as f32, 1.0),
90 );
91 }
92
93 next_frame().await;
94 }
95}