From b87d5ad31527c27e6eead2147393c8af68cb6464 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Tue, 23 Nov 2021 14:08:44 -0600 Subject: [PATCH] added window_set_title --- misc/onyx/heartbreak_window.onyx | 1 + src/heartbreak_window.c | 13 +++++++++++++ tests/snake.onyx | 2 ++ 3 files changed, 16 insertions(+) diff --git a/misc/onyx/heartbreak_window.onyx b/misc/onyx/heartbreak_window.onyx index 94414c7..c66b839 100644 --- a/misc/onyx/heartbreak_window.onyx +++ b/misc/onyx/heartbreak_window.onyx @@ -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(); diff --git a/src/heartbreak_window.c b/src/heartbreak_window.c index 722c08f..bb50fbd 100644 --- a/src/heartbreak_window.c +++ b/src/heartbreak_window.c @@ -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) diff --git a/tests/snake.onyx b/tests/snake.onyx index db26970..64471d5 100644 --- a/tests/snake.onyx +++ b/tests/snake.onyx @@ -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 }; } -- 2.25.1