private void UF_DebugEvent() { GLuaState lua = GLuaState.Get(System.IntPtr.Zero); int oldtop = lua.LuaGetTop(); try{ lua.LuaGetGlobal("Lua"); if (lua.LuaIsNil(-1) || !lua.lua_istable(-1)) { return; } lua.LuaGetField(-1, "global"); if (lua.LuaIsNil(-1) || !lua.lua_istable(-1)) { return; } lua.LuaGetField(-1, "event"); if (lua.LuaIsNil(-1) || !lua.lua_istable(-1)) { return; } lua.LuaGetField(-1, "debug_event"); if (lua.LuaIsNil(-1) || !lua.lua_isfunction(-1)) { return; } lua.Push(true); lua.LuaCall(1, 0); }catch (System.Exception ex) { Debugger.UF_Exception(ex); } lua.LuaSetTop(oldtop); }
private string UF_GetLuaGInfo() { GLuaState lua = GLuaState.Get(System.IntPtr.Zero); int oldtop = lua.LuaGetTop(); lua.LuaGetGlobal("TraceGlobal"); string info = string.Empty; if (!lua.LuaIsNil(-1) && lua.lua_isfunction(-1)) { lua.LuaCall(0, 1); info = lua.LuaToString(-1); } lua.LuaSetTop(oldtop); return(info); }