예제 #1
0
        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);
        }
예제 #2
0
        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);
        }