Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- pub struct Engine {
- events: EventPump,
- canvas: Canvas<Window>,
- texture_creator: TextureCreator<WindowContext>,
- ttf_context: Sdl2TtfContext,
- }
- pub fn run(&mut self) -> Result<(), Box<dyn Error>> {
- self.canvas.set_draw_color(Color::RGB(127, 197, 255));
- self.canvas.clear();
- self.canvas.present();
- let mut current_time = Instant::now();
- let mut dt = 0.0;
- let mut font = self.ttf_context.load_font(r#"fonts/carlito/Carlito-Regular.ttf"#, 128)?;
- 'running: loop {
- let new_time = Instant::now();
- let frame_time = (new_time.duration_since(current_time).subsec_nanos()) as f32 / 1_000_000_000.0;
- current_time = new_time;
- dt += frame_time;
- if !self.handle_input() { break 'running; }
- self.canvas.set_draw_color(Color::RGB(0, 0, 0));
- self.canvas.clear();
- let surface = font.render("Hello Rust!")
- .blended(Color::RGBA(255, 0, 0, 255)).map_err(|e| e.to_string())?;
- let texture = self.texture_creator.create_texture_from_surface(&surface)
- .map_err(|e| e.to_string())?;
- let TextureQuery { width, height, .. } = texture.query();
- let target = Rect::new(0, 0, width, height);
- self.canvas.copy(&texture, None, Some(target))?;
- self.canvas.present();
- }
- Ok(())
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement