#include #include #include #include "util/util.h" #include "setup.h" #define X(str, mt) const char *glfw_ ## mt ## _tname = str; H_GLFW_METATABLES #undef X void setup_glfw(lua_State *L, int honey_tbl) { /* create metatables */ #define X(str, mt) luaL_newmetatable(L, glfw_ ## mt ## _tname); lua_pop(L, 1); H_GLFW_METATABLES #undef X struct honey_tbl_t tbl[] = { #define X(name, val) H_INT(name, val), H_GLFW_ENUM #undef X #define X(name, func) H_FUNC(name, func), H_GLFW_FUNCTIONS #undef X H_END }; create_table(L, tbl); int t = lua_gettop(L); GLFWwindow ** window_null = create_window(L); *window_null = NULL; lua_setfield(L, t, "window_NULL"); GLFWmonitor ** monitor_null = create_monitor(L); *monitor_null = NULL; lua_setfield(L, t, "monitor_NULL"); lua_setfield(L, honey_tbl, "glfw"); }