mod common;
use {
anyhow::{Error, Result},
fna3d::Color,
sdl2::{event::Event, EventPump},
std::time::Duration,
};
pub fn main() -> Result<()> {
env_logger::init();
let title = "Rust-FNA3D triangle example";
let size = (640, 360);
let init = common::init(title, size)?;
let pump = init.sdl.event_pump().map_err(Error::msg)?;
self::run(pump, init)
}
fn run(mut pump: EventPump, init: common::Init) -> Result<()> {
let device = init.device.clone();
'running: loop {
for ev in pump.poll_iter() {
match ev {
Event::Quit { .. } => break 'running,
_ => {}
}
}
std::thread::sleep(Duration::from_nanos(1_000_000_000 / 30));
device.clear(
fna3d::ClearOptions::TARGET,
Color::cornflower_blue().to_vec4(),
0.0,
0,
);
device.swap_buffers(None, None, init.raw_window() as *mut _);
}
Ok(())
}