Advertisement
Guest User

Untitled

a guest
Jul 13th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rust 2.12 KB | None | 0 0
  1.     extern crate sdl2;
  2.  
  3. use sdl2::pixels::Color;
  4. use sdl2::event::Event;
  5. use sdl2::rect::Rect;
  6. use sdl2::keyboard::Keycode;
  7. use sdl2::render::Renderer;
  8.  
  9. use std::time::Duration;
  10.  
  11. const SCR_WIDTH: u32 = 800;
  12. const SCR_HEIGHT: u32 = 800;
  13.  
  14. const BLACK: Color = Color::RGB(0, 0, 0);
  15. const WHITE: Color = Color::RGB(255, 255, 255);
  16.  
  17. const SQR_SIZE: u32 = SCR_WIDTH / 8;
  18.  
  19. fn main() {
  20.     let context = sdl2::init().unwrap();
  21.     let video = context.video().unwrap();
  22.  
  23.     let window  = match video
  24.         .window("Chess", SCR_WIDTH, SCR_HEIGHT)
  25.         .position_centered()
  26.         .opengl()
  27.         .build() {
  28.             Ok(window) => window,
  29.             Err(err)   => panic!("failed to create window: {}", err)
  30.         };
  31.  
  32.     let mut renderer = match window
  33.         .renderer()
  34.         .build() {
  35.             Ok(renderer) => renderer,
  36.             Err(err) => panic!("failed to create renderer: {}", err)
  37.         };
  38.  
  39.     let mut event_pump = context.event_pump().unwrap();
  40.    
  41.     'main_loop: loop {
  42.        draw_grid(&mut renderer);
  43.  
  44.        for event in event_pump.poll_iter() {
  45.            // if esc or q pressed, exit main loop
  46.            // (consequently ending the program)
  47.            match event {
  48.                Event::Quit {..} |
  49.                    Event::KeyDown { keycode: Some(Keycode::Q), .. } => {
  50.                        break 'main_loop
  51.                     },
  52.                 _ => {}
  53.             }
  54.  
  55.             // draw frames (swap buffers & company)
  56.             renderer.present();
  57.             // ::std::thread::sleep(Duration::new(0, 1_000_000_000u32 / 60));
  58.         }
  59.     }
  60. }
  61.  
  62.  
  63. fn draw_grid(renderer: &mut Renderer) {
  64.     renderer.set_draw_color(BLACK);
  65.     renderer.clear();
  66.  
  67.     // draw squares (only the white ones since the black ones are part of background)
  68.     renderer.set_draw_color(WHITE);
  69.     let a = Rect::new(10, 10, 10, 10);
  70.     let _ = renderer.fill_rect(a);
  71.     for i in (0..=(SCR_WIDTH - SQR_SIZE)).step_by(SQR_SIZE as usize) {
  72.  
  73.         let sqr = Rect::new(i as i32, i as i32, i + SQR_SIZE, i + SQR_SIZE);
  74.         let _    = renderer.fill_rect(sqr);
  75.    }
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement