rectangles/
rectangles.rs

1use std::f64::consts::{PI, TAU};
2
3use ab_glyph::FontArc;
4use glam::{dvec2, DVec2};
5use palette::Srgba;
6use render_agnostic::{Renderer, renderers::image::ImageRenderer};
7
8fn main() {
9    let mut image_renderer = ImageRenderer::new(
10        64,
11        64,
12        2.0,
13        DVec2::splat(0.5),
14        1,
15        FontArc::try_from_slice(include_bytes!("roboto.ttf")).unwrap(),
16    );
17
18    image_renderer.render_rectangle(
19        DVec2::splat(8.0),
20        16.0,
21        16.0,
22        DVec2::splat(0.0),
23        0.0,
24        Srgba::new(1.0, 1.0, 1.0, 1.0),
25    );
26
27    image_renderer.render_rectangle(
28        dvec2(32.0, 32.0),
29        16.0,
30        16.0,
31        DVec2::splat(0.5),
32        -PI / 2.0,
33        Srgba::new(1.0, 0.0, 1.0, 1.0),
34    );
35
36    image_renderer.render_rectangle_lines(
37        DVec2::splat(40.0),
38        8.0,
39        16.0,
40        DVec2::splat(0.5),
41        0.0,
42        1.0,
43        Srgba::new(0.0, 0.0, 1.0, 1.0),
44    );
45
46    image_renderer.render_rectangle_lines(
47        DVec2::splat(40.0),
48        16.0,
49        16.0,
50        DVec2::splat(0.0),
51        0.0,
52        1.0,
53        Srgba::new(1.0, 0.0, 0.0, 1.0),
54    );
55
56    image_renderer.render_rectangle_lines(
57        DVec2::splat(40.0),
58        8.0,
59        16.0,
60        DVec2::splat(0.5),
61        TAU / 8.0,
62        1.0,
63        Srgba::new(0.0, 1.0, 0.0, 1.0),
64    );
65
66    image_renderer
67        .render_image_onto(image_renderer.black())
68        .save("rectangles.png")
69        .unwrap();
70}