extern crate sdl2; mod font; pub mod generated; use font::BakedFont; use generated::fonts::{FONT_CHERRY_BOMB_ONE, FONT_GALMURI}; use sdl2::event::Event; use sdl2::keyboard::Keycode; use sdl2::pixels::Color; use std::time::Duration; pub fn main() { let sdl_context = sdl2::init().unwrap(); let video_subsystem = sdl_context.video().unwrap(); let window = video_subsystem .window("Cosin25 Invite", 320, 256) .position_centered() //.fullscreen() .build() .unwrap(); let mut canvas = window.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(); let mut i = 0; 'running: loop { i = (i + 1) % 255; canvas.set_draw_color(Color::RGB(255, 255, 255)); canvas.clear(); let mut offset: f32 = 0.0; for c in "UwU-Space".chars() { let char = FONT_CHERRY_BOMB_ONE.get_char(c); canvas .copy( &char .to_texture(&texture_creator, Color::RGB(i, 64, 255 - i)) .unwrap(), None, char.to_rect(offset as i32, 0), ) .unwrap(); offset += char.advance_width; } offset = 0.0; for c in "All hail Blahaj".chars() { let char = FONT_GALMURI.get_char(c); canvas .copy( &char .to_texture(&texture_creator, Color::RGB(i, 64, 255 - i)) .unwrap(), None, char.to_rect(offset as i32, 40), ) .unwrap(); offset += char.advance_width; } 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 / 60)); } }