1extern crate est_render;
2
3use est_render::prelude::*;
4
5#[cfg(feature = "software")]
6fn main() {
7 let mut runner = est_render::runner::new().expect("Failed to create runner");
8 let mut window = runner
9 .create_window("Engine Example", Point2::new(800, 600))
10 .build()
11 .expect("Failed to create window");
12
13 let mut sw = est_render::software::new(Some(&mut window))
14 .build()
15 .expect("Failed to create pixel buffer");
16
17 let mut pixels = vec![128u32; (800 * 600) as usize];
18 let mut size_px = Point2::new(800.0, 600.0);
19
20 while runner.pool_events(None) {
21 for event in runner.get_events() {
22 match event {
23 Event::WindowClosed { .. } => {
24 return;
25 }
26 Event::WindowResized { size, .. } => {
27 pixels.resize((size.x * size.y) as usize, 128);
28 size_px = Point2::new(size.x as f32, size.y as f32);
29 }
30 _ => {}
31 }
32 }
33
34 if let Err(e) = sw.write_buffers(&pixels, size_px) {
35 eprintln!("Error writing buffers: {}", e);
36 }
37 }
38}
39
40#[cfg(not(feature = "software"))]
41fn main() {
42 eprintln!(
43 "Software rendering is not enabled. Please enable the 'software' feature to run this example."
44 );
45}