diff options
Diffstat (limited to 'graphics/src/lib.rs')
| -rw-r--r-- | graphics/src/lib.rs | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/graphics/src/lib.rs b/graphics/src/lib.rs new file mode 100644 index 0000000..c0b0019 --- /dev/null +++ b/graphics/src/lib.rs @@ -0,0 +1,31 @@ +use dungeon::Dungeon; +use raylib::prelude::*; + +pub struct Window { + handle: RaylibHandle, + thread: RaylibThread, +} +impl Window { + /// Instantiates a new window provided with the default + /// window `width`, `height`, and `title`. + pub fn new(width: i32, height: i32, title: &str) -> Self { + let (handle, thread) = raylib::init() + .size(width, height) + .title(title) + .resizable() + .log_level(TraceLogLevel::LOG_WARNING) + .build(); + Self { handle, thread } + } + + /// Returns if the window should be closed. + /// This usually means the 'x' button has been pressed. + pub fn is_open(&self) -> bool { + !self.handle.window_should_close() + } + + /// Draws a frame provided with the game state `Dungeon` + pub fn draw(&mut self, _dungeon: &Dungeon) { + let _draw = self.handle.begin_drawing(&self.thread); + } +} |