-fn load_sprites(texture_creator: &TextureCreator<WindowContext>) -> SpriteManager {
- let mut texman = SpriteManager::new(texture_creator);
- texman.load("block", "res/block.bmp");
- texman.load("mario", "res/mario-trans.png");
- texman
+impl App {
+ fn new() -> App {
+ let context = sdl2::init().unwrap();
+ sdl2::image::init(sdl2::image::InitFlag::PNG).unwrap();
+ let window = context.video().unwrap().window("SDL test", SCREEN_WIDTH, SCREEN_HEIGHT)
+ .position_centered()
+ .opengl()
+ .build()
+ .unwrap();
+ context.mouse().show_cursor(false);
+ let mut canvas = window.into_canvas().build().unwrap();
+ canvas.set_blend_mode(BlendMode::Add);
+ canvas.set_draw_color(Color::RGB(0, 0, 0));
+ canvas.clear();
+ canvas.present();
+ let event_pump = context.event_pump().unwrap();
+ let sprites = SpriteManager::new(canvas.texture_creator());
+ App {
+ canvas,
+ event_pump,
+ sprites,
+ }
+ }
+
+ fn load_sprites(&mut self, sprites: &[(&'static str, &str)]) {
+ for (name, file) in sprites {
+ self.sprites.load(name, file);
+ }
+ }