2018-02-17 17:18:08 +00:00
|
|
|
#include "api.h"
|
|
|
|
#include "lovr.h"
|
|
|
|
#include "resources/logo.png.h"
|
|
|
|
#include "lib/lua-cjson/lua_cjson.h"
|
|
|
|
#include "lib/lua-enet/enet.h"
|
|
|
|
|
|
|
|
int l_lovrInit(lua_State* L) {
|
|
|
|
lua_newtable(L);
|
|
|
|
luaL_register(L, NULL, lovr);
|
|
|
|
|
|
|
|
lua_pushlstring(L, (const char*) logo_png, logo_png_len);
|
|
|
|
lua_setfield(L, -2, "_logo");
|
|
|
|
|
2018-09-19 07:03:04 +00:00
|
|
|
#ifdef LOVR_ENABLE_AUDIO
|
2018-02-17 17:18:08 +00:00
|
|
|
luax_preloadmodule(L, "lovr.audio", l_lovrAudioInit);
|
2018-09-19 07:03:04 +00:00
|
|
|
#endif
|
|
|
|
#ifdef LOVR_ENABLE_DATA
|
2018-02-17 17:18:08 +00:00
|
|
|
luax_preloadmodule(L, "lovr.data", l_lovrDataInit);
|
2018-09-19 07:03:04 +00:00
|
|
|
#endif
|
|
|
|
#ifdef LOVR_ENABLE_EVENT
|
2018-02-17 17:18:08 +00:00
|
|
|
luax_preloadmodule(L, "lovr.event", l_lovrEventInit);
|
2018-09-19 07:03:04 +00:00
|
|
|
#endif
|
|
|
|
#ifdef LOVR_ENABLE_FILESYSTEM
|
2018-02-17 17:18:08 +00:00
|
|
|
luax_preloadmodule(L, "lovr.filesystem", l_lovrFilesystemInit);
|
2018-09-19 07:03:04 +00:00
|
|
|
#endif
|
|
|
|
#ifdef LOVR_ENABLE_GRAPHICS
|
2018-02-17 17:18:08 +00:00
|
|
|
luax_preloadmodule(L, "lovr.graphics", l_lovrGraphicsInit);
|
2018-09-19 07:03:04 +00:00
|
|
|
#endif
|
|
|
|
#ifdef LOVR_ENABLE_HEADSET
|
2018-02-17 17:18:08 +00:00
|
|
|
luax_preloadmodule(L, "lovr.headset", l_lovrHeadsetInit);
|
2018-09-19 07:03:04 +00:00
|
|
|
#endif
|
|
|
|
#ifdef LOVR_ENABLE_MATH
|
2018-02-17 17:18:08 +00:00
|
|
|
luax_preloadmodule(L, "lovr.math", l_lovrMathInit);
|
2018-09-19 07:03:04 +00:00
|
|
|
#endif
|
|
|
|
#ifdef LOVR_ENABLE_PHYSICS
|
2018-02-17 17:18:08 +00:00
|
|
|
luax_preloadmodule(L, "lovr.physics", l_lovrPhysicsInit);
|
2018-09-19 07:03:04 +00:00
|
|
|
#endif
|
|
|
|
#ifdef LOVR_ENABLE_THREAD
|
2018-02-17 17:18:08 +00:00
|
|
|
luax_preloadmodule(L, "lovr.thread", l_lovrThreadInit);
|
2018-09-19 07:03:04 +00:00
|
|
|
#endif
|
|
|
|
#ifdef LOVR_ENABLE_TIMER
|
2018-02-17 17:18:08 +00:00
|
|
|
luax_preloadmodule(L, "lovr.timer", l_lovrTimerInit);
|
2018-09-19 07:03:04 +00:00
|
|
|
#endif
|
|
|
|
#ifdef LOVR_ENABLE_ENET
|
2018-02-17 17:18:08 +00:00
|
|
|
luax_preloadmodule(L, "enet", luaopen_enet);
|
2018-09-19 07:03:04 +00:00
|
|
|
#endif
|
|
|
|
#ifdef LOVR_ENABLE_JSON
|
|
|
|
luax_preloadmodule(L, "json", luaopen_cjson);
|
|
|
|
#endif
|
2018-02-17 17:18:08 +00:00
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
int l_lovrGetOS(lua_State* L) {
|
|
|
|
const char* os = lovrGetOS();
|
|
|
|
if (os) {
|
|
|
|
lua_pushstring(L, os);
|
|
|
|
} else {
|
|
|
|
lua_pushnil(L);
|
|
|
|
}
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
int l_lovrGetVersion(lua_State* L) {
|
|
|
|
int major, minor, patch;
|
|
|
|
lovrGetVersion(&major, &minor, &patch);
|
|
|
|
lua_pushinteger(L, major);
|
|
|
|
lua_pushinteger(L, minor);
|
|
|
|
lua_pushinteger(L, patch);
|
|
|
|
return 3;
|
|
|
|
}
|
|
|
|
|
|
|
|
const luaL_Reg lovr[] = {
|
|
|
|
{ "_setConf", luax_setconf },
|
|
|
|
{ "getOS", l_lovrGetOS },
|
|
|
|
{ "getVersion", l_lovrGetVersion },
|
|
|
|
{ NULL, NULL }
|
|
|
|
};
|