diff options
| author | Freya Murphy <freya@freyacat.org> | 2025-10-07 11:01:19 -0400 |
|---|---|---|
| committer | Freya Murphy <freya@freyacat.org> | 2025-10-08 19:37:15 -0400 |
| commit | b11f074ceba10af62b35b414ecaa51a8f13c6550 (patch) | |
| tree | d12979f7eeb384f94b145ea763a97dcde353745b /graphics | |
| parent | Initial commit (diff) | |
| download | DungeonCrawl-b11f074ceba10af62b35b414ecaa51a8f13c6550.tar.gz DungeonCrawl-b11f074ceba10af62b35b414ecaa51a8f13c6550.tar.bz2 DungeonCrawl-b11f074ceba10af62b35b414ecaa51a8f13c6550.zip | |
initial baseline
Diffstat (limited to 'graphics')
| -rw-r--r-- | graphics/Cargo.toml | 15 | ||||
| -rw-r--r-- | graphics/src/lib.rs | 31 |
2 files changed, 46 insertions, 0 deletions
diff --git a/graphics/Cargo.toml b/graphics/Cargo.toml new file mode 100644 index 0000000..0842f90 --- /dev/null +++ b/graphics/Cargo.toml @@ -0,0 +1,15 @@ +[package] +name = "graphics" +version = "0.1.0" +edition = "2024" + +[dependencies] +anyhow = "1" +dungeon = { path = "../dungeon" } +raylib = "5.5" + +[target.'cfg(target_os = "linux")'.dependencies] +raylib = { version = "5.5", features = ["wayland"] } + +[lints] +workspace = true 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); + } +} |