drawing/
drawing.rs

1extern crate est_render;
2
3use est_render::prelude::*;
4
5fn main() {
6    let mut runner = est_render::runner::new().expect("Failed to create runner");
7
8    let mut window = runner
9        .create_window("Drawing Example", Point2::new(800, 600))
10        .build()
11        .expect("Failed to create window");
12
13    let mut gpu = est_render::gpu::new(Some(&mut window))
14        .build()
15        .expect("Failed to create GPU");
16
17    while runner.pool_events(None) {
18        for event in runner.get_events() {
19            match event {
20                Event::WindowClosed { .. } => {
21                    return;
22                }
23                _ => {}
24            }
25        }
26
27        if let Ok(mut cmd) = gpu.begin_command() {
28            if let Ok(mut gp) = cmd.begin_renderpass() {
29                gp.set_clear_color(Color::BLUE); // Set the clear color to blue
30
31                gp.set_blend(0, Some(&BlendState::ALPHA_BLEND));
32                if let Some(mut drawing) = gp.begin_drawing() {
33                    drawing.draw_rect_filled(
34                        Vector2::new(100.0, 100.0),
35                        Vector2::new(200.0, 200.0),
36                        Color::RED,
37                    );
38
39                    drawing.draw_circle_filled(Vector2::new(400.0, 300.0), 50.0, 25, Color::GREEN);
40                }
41
42                gp.set_blend(0, Some(&BlendState::ADDITIVE_BLEND));
43                if let Some(mut drawing) = gp.begin_drawing() {
44                    drawing.draw_text(
45                        "Hello, World!",
46                        Vector2::new(300.0, 500.0),
47                        Color::WHITE,
48                    );
49                }
50            }
51        }
52    }
53}