demo/
demo.rs

1extern crate sdl2;
2
3use sdl2::pixels::Color;
4use sdl2::event::Event;
5use sdl2::keyboard::Keycode;
6use std::time::Duration;
7
8pub fn main() -> Result<(), String> {
9    let sdl_context = sdl2::init()?;
10    let video_subsystem = sdl_context.video()?;
11
12    let window = video_subsystem.window("rust-sdl2 demo: Video", 800, 600)
13        .position_centered()
14        .opengl()
15        .build()
16        .map_err(|e| e.to_string())?;
17
18    let mut canvas = window.into_canvas().build().map_err(|e| e.to_string())?;
19
20    canvas.set_draw_color(Color::RGB(255, 0, 0));
21    canvas.clear();
22    canvas.present();
23    let mut event_pump = sdl_context.event_pump()?;
24
25    'running: loop {
26        for event in event_pump.poll_iter() {
27            match event {
28                Event::Quit {..} | Event::KeyDown { keycode: Some(Keycode::Escape), .. } => {
29                    break 'running
30                },
31                _ => {}
32            }
33        }
34        ::std::thread::sleep(Duration::new(0, 1_000_000_000u32 / 60));
35        // The rest of the game loop goes here...
36    }
37
38    Ok(())
39}