est-render 0.2.52

Easy to use winit, softbuffer & wgpu abstractions
Documentation
extern crate est_render;

use est_render::prelude::*;

#[cfg(feature = "software")]
fn main() {
    let mut runner = est_render::runner::new().expect("Failed to create runner");
    let mut window = runner
        .create_window("Engine Example", Point2::new(800, 600))
        .build()
        .expect("Failed to create window");

    let mut sw = est_render::software::new(Some(&mut window))
        .build()
        .expect("Failed to create pixel buffer");

    let mut pixels = vec![128u32; (800 * 600) as usize];
    let mut size_px = Point2::new(800.0, 600.0);

    while runner.pump_events(None) {
        for event in runner.get_events() {
            match event {
                Event::WindowClosed { .. } => {
                    return;
                }
                Event::WindowResized { size, .. } => {
                    pixels.resize((size.x * size.y) as usize, 128);
                    size_px = Point2::new(size.x as f32, size.y as f32);
                }
                _ => {}
            }
        }

        if let Err(e) = sw.write_buffers(&pixels, size_px) {
            eprintln!("Error writing buffers: {}", e);
        }
    }
}

#[cfg(not(feature = "software"))]
fn main() {
    eprintln!(
        "Software rendering is not enabled. Please enable the 'software' feature to run this example."
    );
}