extern crate sdl2; mod font; pub mod generated; mod render; use std::time::{Duration, SystemTime}; use sdl2::{event::Event, keyboard::Keycode}; pub fn main() { let sdl_context = sdl2::init().unwrap(); let video_subsystem = sdl_context.video().unwrap(); let window = &mut video_subsystem .window("Cosin25 Invite", 512, 256) .position_centered() .build() .unwrap(); let mut canvas = window.clone().into_canvas().build().unwrap(); let texture_creator = canvas.texture_creator(); // let uwu_font = font::UwUFont::new(&texture_creator); canvas.clear(); canvas.present(); let mut event_pump = sdl_context.event_pump().unwrap(); // amount to incr sin_offset by per frame let start_time = SystemTime::now(); 'running: loop { let time = SystemTime::now() .duration_since(start_time) .expect("Time went back between frames"); let time = f64::from(time.as_millis() as u32) / 1000.0; render::render(&mut canvas, &texture_creator, time); for event in event_pump.poll_iter() { match event { Event::Quit { .. } | Event::KeyDown { keycode: Some(Keycode::Escape), .. } => break 'running, _ => {} } } // The rest of the game loop goes here... canvas.present(); ::std::thread::sleep(Duration::new(0, 1_000_000_000u32 / 12000)); } }