use ggez::{Context, GameError, event::EventHandler}; struct State { board: carpet::Board, } impl EventHandler for State { fn draw(&mut self, ctx: &mut Context) -> Result<(), GameError> { ggez::graphics::clear(ctx, ggez::graphics::BLACK); self.board.draw(ctx)?; ggez::graphics::present(ctx) } fn update(&mut self, _ctx: &mut Context) -> Result<(), GameError> { Ok(()) } } fn main() -> Result<(), GameError> { let (mut ctx, mut evloop) = ggez::ContextBuilder::new("game", "me") .add_resource_path({ let base = std::env::var("CARGO_MANIFEST_DIR").unwrap(); let mut path = std::path::PathBuf::from(base); path.push("resources"); path }) .window_mode(ggez::conf::WindowMode { width: 80.0 * 8.0, height: 50.0 * 8.0, ..ggez::conf::WindowMode::default() }) .build()?; let tileset = carpet::Tileset::from_file(&mut ctx, [8,8], "/terminal8x8.jpg")?; let mut board = carpet::Board::new([80,50], tileset); board.print([1, 1], "Hello, world!"); let mut state = State { board }; ggez::event::run(&mut ctx, &mut evloop, &mut state) }