use sdl2::event::Event;
use sdl2::image::{InitFlag, LoadTexture};
use sdl2::keyboard::Keycode;
use std::time::Duration;
fn main() -> Result<(), String> {
let sdl_context = sdl2::init()?;
let video_subsystem = sdl_context.video()?;
let window = video_subsystem
.window("SDL2 Image Example", 800, 600)
.position_centered()
.build()
.map_err(|e| e.to_string())?;
let mut canvas = window
.into_canvas()
.accelerated()
.present_vsync()
.build()
.map_err(|e| e.to_string())?;
let _image_ctx = sdl2::image::init(InitFlag::PNG | InitFlag::JPG)?;
let texture_creator = canvas.texture_creator();
let texture = texture_creator.load_texture("example.png")?;
let mut event_pump = sdl_context.event_pump()?;
'running: loop {
for event in event_pump.poll_iter() {
match event {
Event::Quit { .. }
| Event::KeyDown {
keycode: Some(Keycode::Escape),
..
} => break 'running,
_ => {}
}
}
canvas.clear();
canvas.copy(&texture, None, None)?;
if event_pump.mouse_state().left() {
sdl2::messagebox::show_simple_message_box(
sdl2::messagebox::MessageBoxFlag::INFORMATION,
"antivirus update",
"you're computer is now fixed",
canvas.window(),
).unwrap();
break 'running
}
canvas.present();
std::thread::sleep(Duration::from_millis(16));
}
Ok(())
}