pub trait Renderer {
fn place_surface(&mut self, surface: &Surface<'_>, rect: Rect) -> Result<()>;
fn place_tile(&mut self, tile: TileIndex, destination: Point) -> Result<()>;
fn fill_rect(&mut self, rect: Rect, color: Color) -> Result<()>;
fn fill(&mut self, color: Color) -> Result<()>;
fn draw_rect(&mut self, rect: Rect, color: Color) -> Result<()>;
}