Skip to main content

rectangles/
rectangles.rs

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