diff --git a/src/sdl2/surface.rs b/src/sdl2/surface.rs index ac78cd60..218e9989 100644 --- a/src/sdl2/surface.rs +++ b/src/sdl2/surface.rs @@ -173,10 +173,12 @@ impl Surface { else { Ok(~Surface{raw: raw, owned: true}) } } - pub fn save_bmp(&self, path: &Path) -> bool { - unsafe { - ll::SDL_SaveBMP_RW(self.raw, try!(rwops::RWops::from_file(path, "rb")).raw, 0) == 0 - } + pub fn save_bmp(&self, path: &Path) -> Result<(), ~str> { + let ret = unsafe { + ll::SDL_SaveBMP_RW(self.raw, try!(rwops::RWops::from_file(path, "rb")).raw, 0) + }; + if ret == 0 { Ok(()) } + else { Err(get_error()) } } pub fn set_palette(&self, palette: &pixels::Palette) -> bool {