//============================================================================ // bool CLuaVirtualMachine::InitialiseVM //--------------------------------------------------------------------------- // Initialises the VM, open lua, makes sure things are OK // // Parameter Dir Description // --------- --- ----------- // None. // // Return // ------ // Success. // //============================================================================ bool CLuaVirtualMachine::InitialiseVM (void) { // Open Lua! if (Ok ()) DestroyVM (); m_pState = lua_open (); if (m_pState) { m_fIsOk = true; // Load util libs into lua luaopen_base (m_pState); luaopen_table (m_pState); luaopen_string (m_pState); luaopen_math (m_pState); luaopen_debug (m_pState); //luaopen_io (m_pState); //luaopen_loadlib (m_pState); // setup global printing (trace) lua_pushcclosure (m_pState, printMessage, 0); lua_setglobal (m_pState, "trace"); lua_atpanic (m_pState, (lua_CFunction) CLuaVirtualMachine::Panic); return true; } return false; }
void CPS2VM::Destroy() { m_mailBox.SendCall(std::bind(&CPS2VM::DestroyImpl, this)); m_thread.join(); DestroyVM(); }