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 }
37
38 Ok(())
39}