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 = &mut video_subsystem .window("Cosin25 Invite", 320, 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(); let mut i = 0; 'running: loop { i = (i + 1) % 255; canvas.set_draw_color(Color::RGB(12, 12, 12)); 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 + 16, 16), ) .unwrap(); offset += char.advance_width; } offset = 0.0; for c in "Cum 2 Cosin25 :3".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 + 18, 16 + 36), ) .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)); } }