Advertisement
Guest User

Untitled

a guest
Sep 17th, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.30 KB | None | 0 0
  1. pub struct Engine {
  2. events: EventPump,
  3. canvas: Canvas<Window>,
  4. texture_creator: TextureCreator<WindowContext>,
  5. ttf_context: Sdl2TtfContext,
  6. }
  7.  
  8. pub fn run(&mut self) -> Result<(), Box<dyn Error>> {
  9. self.canvas.set_draw_color(Color::RGB(127, 197, 255));
  10. self.canvas.clear();
  11. self.canvas.present();
  12.  
  13. let mut current_time = Instant::now();
  14. let mut dt = 0.0;
  15.  
  16. let mut font = self.ttf_context.load_font(r#"fonts/carlito/Carlito-Regular.ttf"#, 128)?;
  17.  
  18. 'running: loop {
  19. let new_time = Instant::now();
  20. let frame_time = (new_time.duration_since(current_time).subsec_nanos()) as f32 / 1_000_000_000.0;
  21. current_time = new_time;
  22. dt += frame_time;
  23.  
  24. if !self.handle_input() { break 'running; }
  25.  
  26. self.canvas.set_draw_color(Color::RGB(0, 0, 0));
  27. self.canvas.clear();
  28.  
  29. let surface = font.render("Hello Rust!")
  30. .blended(Color::RGBA(255, 0, 0, 255)).map_err(|e| e.to_string())?;
  31. let texture = self.texture_creator.create_texture_from_surface(&surface)
  32. .map_err(|e| e.to_string())?;
  33.  
  34. let TextureQuery { width, height, .. } = texture.query();
  35. let target = Rect::new(0, 0, width, height);
  36. self.canvas.copy(&texture, None, Some(target))?;
  37.  
  38. self.canvas.present();
  39. }
  40.  
  41. Ok(())
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement