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 4,
20 FontArc::try_from_slice(include_bytes!("roboto.ttf")).unwrap(),
21 );
22
23 image_renderer.render_rectangle(
24 DVec2::splat(100.0),
25 15.0,
26 15.0,
27 DVec2::splat(0.5),
28 0.0,
29 Srgba::new(1.0, 0.0, 0.0, 1.0),
30 );
31
32 image_renderer.render_rectangle_lines(
33 DVec2::splat(100.0),
34 15.0,
35 15.0,
36 DVec2::splat(0.5),
37 TAU / 8.0,
38 2.0,
39 Srgba::new(0.0, 0.0, 1.0, 1.0),
40 );
41
42 image_renderer.render_rectangle(
43 DVec2::splat(500.0),
44 1.0,
45 1.0,
46 DVec2::splat(0.5),
47 TAU / 8.0,
48 Srgba::new(0.0, 0.0, 1.0, 1.0),
49 );
50
51 image_renderer.render_circle_lines(DVec2::splat(100.0), 4.0, 1.0, Srgba::new(0.0, 1.0, 0.0, 1.0));
72
73 image_renderer
74 .render_image_onto(image_renderer.black())
75 .save("rectangles.png")
76 .unwrap();
77
78 let mut macroquad_renderer = MacroquadRenderer::new(None);
79
80 {
81 for i in 1..=100 {
82 macroquad_renderer.render_rectangle(
83 DVec2::splat(100.0),
84 101.0 - i as f64,
85 101.0 - i as f64,
86 DVec2::splat(0.5),
87 0.0,
88 Srgba::new((i % 2) as f32, ((i + 1) % 2) as f32, ((i + 1) % 2) as f32, 1.0),
89 );
90 }
91
92 next_frame().await;
93 }
94}