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 let mut rotation = 0.0f32;
18 while runner.pump_events(None) {
19 for event in runner.get_events() {
20 match event {
21 Event::WindowClosed { .. } => {
22 return;
23 }
24 _ => {}
25 }
26 }
27
28 rotation += runner.get_frame_time() as f32 * 60.0f32; if rotation >= 360.0 {
30 rotation -= 360.0; }
32
33 if let Ok(mut cmd) = gpu.begin_command() {
34 if let Ok(mut gp) = cmd.begin_renderpass() {
35 gp.set_clear_color(Color::BLUE); if let Some(mut drawing) = gp.begin_drawing() {
38 drawing.set_rotation(rotation); gp.set_blend(0, Some(&BlendState::ALPHA_BLEND));
40 drawing.draw_rect_filled(
41 Vector2::new(100.0, 100.0),
42 Vector2::new(200.0, 200.0),
43 Color::RED,
44 );
45
46 drawing.draw_circle_filled(Vector2::new(400.0, 300.0), 50.0, 25, Color::GREEN);
47
48 gp.set_blend(0, Some(&BlendState::ADDITIVE_BLEND));
49
50 drawing.draw_text(
51 "Hello, World!",
52 Vector2::new(300.0, 500.0),
53 Color::WHITE,
54 );
55 }
56 }
57 }
58 }
59}