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(
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_rectangle_lines(
53    //     DVec2::splat(10.0),
54    //     9.0,
55    //     9.0,
56    //     DVec2::splat(0.0),
57    //     TAU / 8.0,
58    //     1.0,
59    //     Srgba::new(1.0, 1.0, 1.0, 1.0),
60    // );
61
62    // image_renderer.render_rectangle_lines(
63    //     DVec2::splat(2.0),
64    //     5.0,
65    //     5.0,
66    //     DVec2::splat(0.5),
67    //     TAU / 16.0,
68    //     4.0,
69    //     Srgba::new(0.5, 0.5, 0.5, 1.0),
70    // );
71
72    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}