aboutsummaryrefslogtreecommitdiff
path: root/cmd/demo/main.ha
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2021-12-09 13:06:45 +0100
committerDrew DeVault <sir@cmpwn.com>2021-12-09 13:07:36 +0100
commit01bb53f01d5d8b732bd80a84f25b661e1452faeb (patch)
tree822f1c568ce60ca68dd8a1f65b1828a60fb554e4 /cmd/demo/main.ha
parentInitial commit (diff)
downloadhare-chip8-01bb53f01d5d8b732bd80a84f25b661e1452faeb.tar.gz
Rig up events, partially rig up video
Diffstat (limited to 'cmd/demo/main.ha')
-rw-r--r--cmd/demo/main.ha29
1 files changed, 27 insertions, 2 deletions
diff --git a/cmd/demo/main.ha b/cmd/demo/main.ha
index 1a8e362..1c780fd 100644
--- a/cmd/demo/main.ha
+++ b/cmd/demo/main.ha
@@ -1,8 +1,33 @@
-use sdl2;
+use fmt;
use os;
+use sdl2::{event_type, window_flags};
+use sdl2;
+use strings;
export fn main() void = {
sdl2::init(sdl2::init_flags::VIDEO);
defer sdl2::quit();
- os::exit(0);
+
+ const title = strings::to_c("Hare SDL2 demo");
+ defer free(title);
+ const win = match (sdl2::create_window(title,
+ sdl2::WINDOWPOS_UNDEFINED, sdl2::WINDOWPOS_UNDEFINED,
+ 640, 480, window_flags::NONE)) {
+ case let win: *sdl2::window =>
+ yield win;
+ case null =>
+ fmt::fatal("sdl2::create_window failed");
+ };
+ defer sdl2::destroy_window(win);
+
+ let ev = sdl2::event { ... };
+ for (sdl2::wait_event(&ev) == 1) {
+ switch (ev.event_type) {
+ case event_type::QUIT =>
+ break;
+ case => void;
+ };
+ };
+
+ os::exit(0); // https://todo.sr.ht/~sircmpwn/hare/525
};