public static LuaProto LoadBinary(ILuaState lua, ILoadInfo loadinfo, string name) { try { var reader = new BinaryBytesReader(loadinfo); var undump = new Undump(reader); undump.LoadHeader(); return(undump.LoadFunction()); } catch (UndumpException e) { var Lua = (LuaState)lua; Lua.O_PushString(string.Format( "{0}: {1} precompiled chunk", name, e.Why)); Lua.D_Throw(ThreadStatus.LUA_ERRSYNTAX); return(null); } }
ThreadStatus ILuaAPI.Load(ILoadInfo loadinfo, string name, string mode) { var param = new LoadParameter(this, loadinfo, name, mode); var status = D_PCall(DG_F_Load, ref param, Top.Index, ErrFunc); if (status == ThreadStatus.LUA_OK) { var below = Stack[Top.Index - 1]; Utl.Assert(below.V.TtIsFunction() && below.V.ClIsLuaClosure()); var cl = below.V.ClLValue(); if (cl.Upvals.Length == 1) { var gt = G.Registry.V.HValue().GetInt(LuaDef.LUA_RIDX_GLOBALS); cl.Upvals[0].V.V.SetObj(ref gt.V); } } return(status); }
private void CheckLoad() { if (IsLoading) { return; } if (m_LoadingInfos.Count == 0) { return; } IsLoading = true; ILoadInfo info = m_LoadingInfos.First.Value; if (info is LoadAssetBundleInfo) { LoadAssetBundleInfo loadAssetBundleInfo = (LoadAssetBundleInfo)info; m_Loader.LoadAssetBundleBytesAsync(loadAssetBundleInfo.AssetBundlePath, loadAssetBundleInfo.Mode); } else if (info is LoadAssetInfo) { LoadAssetInfo loadAssetInfo = (LoadAssetInfo)info; if (loadAssetInfo.IsAssetBundle) { if (m_Holder.HasAssetBundle(loadAssetInfo.AssetPath)) { m_Loader.LoadAssetFromAssetBundleAsync(m_Holder.GetAssetBundle(loadAssetInfo.AssetPath), loadAssetInfo.AssetName, loadAssetInfo.Mode); } else { //加载assetbundle失败 OnResourceLoaderLoadAssetComplete(new LoadAssetCompleteEventArgs(loadAssetInfo.AssetName, null, string.Format("asset bundle '{0}' not exists", loadAssetInfo.AssetPath), loadAssetInfo.UserData)); } } else { m_Loader.LoadAssetAsync(loadAssetInfo.AssetPath, loadAssetInfo.Mode); } } }
public BinaryBytesReader( ILoadInfo loadinfo ) { LoadInfo = loadinfo; }
public static LuaProto LoadBinary( ILuaState lua, ILoadInfo loadinfo, string name ) { try { var reader = new BinaryBytesReader( loadinfo ); var undump = new Undump( reader ); undump.LoadHeader(); return undump.LoadFunction(); } catch( UndumpException e ) { var Lua = (LuaState)lua; Lua.O_PushString( string.Format( "{0}: {1} precompiled chunk", name, e.Why ) ); Lua.D_Throw( ThreadStatus.LUA_ERRSYNTAX ); return null; } }
public BinaryBytesReader(ILoadInfo loadinfo) { LoadInfo = loadinfo; SizeOfSizeT = 0; }
public static LuaProto Parse( ILuaState lua, ILoadInfo loadinfo, string name ) { var parser = new Parser(); parser.Lua = (LuaState)lua; parser.Lexer = new LLex( lua, loadinfo, name ); var topFuncState = new FuncState(); parser.MainFunc( topFuncState ); return topFuncState.Proto; }
ThreadStatus ILuaAPI.Load( ILoadInfo loadinfo, string name, string mode ) { var param = new LoadParameter(this, loadinfo, name, mode); var status = D_PCall( DG_F_Load, ref param, Top.Index, ErrFunc ); if( status == ThreadStatus.LUA_OK ) { var below = Stack[Top.Index-1]; Utl.Assert(below.V.TtIsFunction() && below.V.ClIsLuaClosure()); var cl = below.V.ClLValue(); if(cl.Upvals.Length == 1) { var gt = G.Registry.V.HValue().GetInt(LuaDef.LUA_RIDX_GLOBALS); cl.Upvals[0].V.V.SetObj(ref gt.V); } } return status; }
public LoadParameter(LuaState l, ILoadInfo loadinfo, string name, string mode) { L = l; LoadInfo = loadinfo; Name = name; Mode = mode; }
public BinaryBytesReader( ILoadInfo loadinfo ) { LoadInfo = loadinfo; SizeOfSizeT = 0; }
public LLex( ILuaState lua, ILoadInfo loadinfo, string name ) { Lua = (LuaState)lua; LoadInfo = loadinfo; LineNumber = 1; LastLine = 1; Token = null; LookAhead = null; _Saved = null; Source = name; _Next(); }
public BinaryBytesReader(ILoadInfo loadinfo) { LoadInfo = loadinfo; }
ThreadStatus ILuaAPI.Load( ILoadInfo loadinfo, string name, string mode ) { var param = new LoadParameter( loadinfo, name, mode ); var status = D_PCall( F_Load, param, Top, ErrFunc ); if( status == ThreadStatus.LUA_OK ) { var cl = (Top-1).Value as LuaLClosure; if( cl.Upvals.Count == 1 ) { cl.Upvals[0].V.Value = G.Registry.GetInt( LuaDef.LUA_RIDX_GLOBALS ); } } return status; }
public LoadParameter( ILoadInfo loadinfo, string name, string mode ) { LoadInfo = loadinfo; Name = name; Mode = mode; }