diff options
| author | sanine <sanine.not@pm.me> | 2022-06-16 23:14:18 -0500 | 
|---|---|---|
| committer | sanine <sanine.not@pm.me> | 2022-06-16 23:14:18 -0500 | 
| commit | 2b264dccaccbf33016ce65f1dfa6889795cfa2e4 (patch) | |
| tree | 7d701345e0d2ef5149ac56c70fe68f5781bec981 /src/gl | |
| parent | 98a9551d2e47bb53d0069d71297924cf697f03c3 (diff) | |
begin adding window creation hints
Diffstat (limited to 'src/gl')
| -rw-r--r-- | src/gl/window.c | 8 | ||||
| -rw-r--r-- | src/gl/window.test.c | 29 | 
2 files changed, 37 insertions, 0 deletions
diff --git a/src/gl/window.c b/src/gl/window.c index 834d6ce..24f21be 100644 --- a/src/gl/window.c +++ b/src/gl/window.c @@ -1,8 +1,16 @@  #include "gl/glad/glad.h"  #include <GLFW/glfw3.h>  #include <lua.h> +#include <honeysuckle.h> +void create_glfw_window_hints_table(lua_State *L) +{ +	hs_create_table(L, +		hs_str_int("resizable", GLFW_RESIZABLE) +	); +} +  int gl_init(lua_State *L)  {  	if (glfwInit() != GLFW_TRUE) { diff --git a/src/gl/window.test.c b/src/gl/window.test.c index 1403221..8ba8a58 100644 --- a/src/gl/window.test.c +++ b/src/gl/window.test.c @@ -57,11 +57,13 @@ int mock_hs_throw_error(lua_State *L, const char *format_string, ...)  /* ~~~~~~~~ TESTS ~~~~~~~~ */  void gl_init_succeeds();  void gl_init_fail_glfwInit(); +void glfw_window_hints_table();  void suite_window()  {  	lily_run_test(gl_init_succeeds);  	lily_run_test(gl_init_fail_glfwInit); +	lily_run_test(glfw_window_hints_table);  	CLEAN_MOCK(mock_glfwInit);  } @@ -105,3 +107,30 @@ void gl_init_fail_glfwInit()  	lily_assert_string_equal((char*) fmt, "failed to initialize GLFW");  } + + +int get_int(lua_State *L, int table_index, const char *key) +{ +	lua_getfield(L, table_index, key); +	lily_assert_true(lua_isnumber(L, -1)); +	int n = lua_tointeger(L, -1); +	lua_pop(L, 1); +	return n; +} + +void glfw_window_hints_table() +{ +	lua_State *L = luaL_newstate(); + +	lily_assert_int_equal(lua_gettop(L), 0); +	create_glfw_window_hints_table(L); +	lily_assert_int_equal(lua_gettop(L), 1); +	lily_assert_true(lua_istable(L, -1)); + +	lily_assert_int_equal( +		get_int(L, 1, "resizable"), +		GLFW_RESIZABLE +	); + +	lua_close(L); +}  | 
