added window_set_title
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Tue, 23 Nov 2021 20:08:44 +0000 (14:08 -0600)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Tue, 23 Nov 2021 20:08:44 +0000 (14:08 -0600)
misc/onyx/heartbreak_window.onyx
src/heartbreak_window.c
tests/snake.onyx

index 94414c741a801c1f1aec9bc10f6466bd6e4a982a..c66b83990ad26c1ceb78f936774c0bc09d113ef1 100644 (file)
@@ -4,5 +4,6 @@ getWidth       :: () -> i32 #foreign "heartbreak" "window_get_width" ---
 getHeight      :: () -> i32 #foreign "heartbreak" "window_get_height" ---
 setDimensions  :: (width, height: i32) -> void #foreign "heartbreak" "window_set_dimensions" ---
 setShouldClose :: (close: bool) -> void #foreign "heartbreak" "window_set_should_close" ---
+setTitle       :: (title: str) -> void #foreign "heartbreak" "window_set_title" ---
 
 getDimensions :: () => getWidth(), getHeight();
index 722c08f87ab0a4d8daf542a381226d7f84be17de..bb50fbdbdb41916dce8e0db2b1a756036596fb5f 100644 (file)
@@ -26,6 +26,18 @@ HEARTBREAK_DEF(set_should_close, (WASM_I32), ()) {
     return NULL;
 }
 
+HEARTBREAK_DEF(set_title, (WASM_I32, WASM_I32), ()) {
+    char* str_data = wasm_memory_data(wasm_memory) + params->data[0].of.i32;
+    u32   str_size = params->data[1].of.i32;
+
+    char *title = alloca(str_size + 1);
+    strncpy(title, str_data, str_size);
+    title[str_size] = '\0';
+
+    glfwSetWindowTitle(glfw_window, title);
+    return NULL;
+}
+
 HEARTBREAK_DEF(get_property, (WASM_I32), (WASM_I32)) {
     return NULL;
 }
@@ -39,6 +51,7 @@ HEARTBREAK_MODULE {
     HEARTBREAK_FUNC(get_height)
     HEARTBREAK_FUNC(set_dimensions)
     HEARTBREAK_FUNC(set_should_close)
+    HEARTBREAK_FUNC(set_title)
 
     HEARTBREAK_FUNC(get_property)
     HEARTBREAK_FUNC(set_property)
index db26970e7f4913adb2da5d710268be8de0ca710c..64471d511aba4d806616d884d9f83116eb3b43f9 100644 (file)
@@ -71,6 +71,8 @@ the_snake: Snake;
 the_food: Vec2i;
 
 load :: () {
+    hb.window.setTitle("Snake 🐍");
+
     the_snake = snake_make(.{ 0, 0 });
     the_food = .{ 10, 10 };
 }