debug_triangle/
debug_triangle.rs

1use bottomless_pit::colour::Colour;
2use bottomless_pit::engine_handle::{Engine, EngineBuilder};
3use bottomless_pit::material::{Material, MaterialBuilder};
4use bottomless_pit::render::RenderHandle;
5use bottomless_pit::vec2;
6use bottomless_pit::vectors::Vec2;
7use bottomless_pit::Game;
8
9fn main() {
10    let mut engine = EngineBuilder::new()
11        .with_resolution((400, 400))
12        .build()
13        .unwrap();
14
15    let material = MaterialBuilder::new().build(&mut engine);
16
17    let pos = DebugTriangle { material };
18
19    engine.run(pos);
20}
21
22struct DebugTriangle {
23    material: Material<()>,
24}
25
26impl Game for DebugTriangle {
27    fn render<'o>(&'o mut self, mut render: RenderHandle<'o>) {
28        let mut render_handle = render.begin_pass(Colour::BLACK);
29
30        self.material.add_triangle_with_coloured_verticies(
31            [
32                vec2! { 200.0, 0.0 },
33                // supplying one value to the macro will
34                // make x and y the same value
35                vec2! { 400.0 },
36                vec2! { 0.0, 400.0 },
37            ],
38            [Colour::RED, Colour::GREEN, Colour::BLUE],
39            &render_handle,
40        );
41        self.material
42            .add_rectangle(vec2! { 0.0 }, vec2! { 100.0 }, Colour::RED, &render_handle);
43        self.material.draw(&mut render_handle);
44    }
45
46    fn update(&mut self, _engine_handle: &mut Engine) {}
47}