summaryrefslogtreecommitdiff
path: root/graphics/src/lib.rs
blob: c0b00196676db65a02135dc9567dd69b95d62342 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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);
	}
}