rectangles/
rectangles.rs

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_lines(
44    //     DVec2::splat(10.0),
45    //     9.0,
46    //     9.0,
47    //     DVec2::splat(0.0),
48    //     TAU / 8.0,
49    //     1.0,
50    //     Srgba::new(1.0, 1.0, 1.0, 1.0),
51    // );
52
53    // image_renderer.render_rectangle_lines(
54    //     DVec2::splat(2.0),
55    //     5.0,
56    //     5.0,
57    //     DVec2::splat(0.5),
58    //     TAU / 16.0,
59    //     4.0,
60    //     Srgba::new(0.5, 0.5, 0.5, 1.0),
61    // );
62
63    image_renderer.render_circle_lines(DVec2::splat(100.0), 4.0, 1.0, Srgba::new(0.0, 1.0, 0.0, 1.0));
64
65    image_renderer
66        .render_image_onto(image_renderer.black())
67        .save("rectangles.png")
68        .unwrap();
69
70    let mut macroquad_renderer = MacroquadRenderer::new(None);
71
72    {
73        for i in 1..=100 {
74            macroquad_renderer.render_rectangle(
75                DVec2::splat(100.0),
76                101.0 - i as f64,
77                101.0 - i as f64,
78                DVec2::splat(0.5),
79                0.0,
80                Srgba::new((i % 2) as f32, ((i + 1) % 2) as f32, ((i + 1) % 2) as f32, 1.0),
81            );
82        }
83
84        next_frame().await;
85    }
86}