void LuaManager::Initialize() { if (c_State == nullptr) { // Initialize Lua c_State = luaL_newstate(); luaL_openlibs(c_State); // Register custom types and functions RegisterGlobal(c_State); RegisterMeasure(c_State); RegisterMeter(c_State); RegisterMeterWindow(c_State); } ++c_RefCount; }
void LuaManager::Initialize() { if (c_State == NULL) { // Initialize Lua c_State = luaL_newstate(); // Initialize standard libraries except debug, modified from linit.c const luaL_Reg lualibs[] = { { "", luaopen_base }, { LUA_LOADLIBNAME, luaopen_package }, { LUA_TABLIBNAME, luaopen_table }, { LUA_IOLIBNAME, luaopen_io }, { LUA_OSLIBNAME, luaopen_os }, { LUA_STRLIBNAME, luaopen_string }, { LUA_MATHLIBNAME, luaopen_math }, { NULL, NULL } }; for (const luaL_Reg* lib = lualibs; lib->func; ++lib) { lua_pushcfunction(c_State, lib->func); lua_pushstring(c_State, lib->name); lua_call(c_State, 1, 0); } // Register custom types and functions RegisterGlobal(c_State); RegisterMeasure(c_State); RegisterMeter(c_State); RegisterMeterWindow(c_State); } ++c_RefCount; }