1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
use sdl2::{surface::SurfaceRef, rect::Rect, video::Window, render::Canvas}; pub trait RenderSurface { fn render_surface(&mut self, dest: Rect, src: &SurfaceRef, src_box: Rect) -> Result<(),String>; } impl RenderSurface for Canvas<Window> { fn render_surface(&mut self, dest: Rect, src: &SurfaceRef, src_box: Rect) -> Result<(),String> { let t = self.texture_creator(); let t = t .create_texture_from_surface(src) .map_err(|e| e.to_string() )?; self.copy(&t,src_box,dest) } }