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