static void Main(string[] args) { if (args == null || args.Length == 0) { return; } EngineNS.Rtti.VAssembly assm = null; var files = System.IO.Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory, "Game.Windows*.dll", System.IO.SearchOption.TopDirectoryOnly); if (files.Length > 0) { assm = EngineNS.Rtti.VAssemblyManager.Instance.LoadAssembly(files[0], EngineNS.ECSType.Client, false, false); EngineNS.Rtti.RttiHelper.RegisterAnalyseAssembly("Game", assm); } var cmdEngine = new CMDEngine(); EngineNS.CIPlatform.Instance.PlayMode = EngineNS.CIPlatform.enPlayMode.Editor; CMDEngine.Instance = cmdEngine; CMDEngine.Instance.Interval = 25; CMDEngine.Instance.PreInitEngine(); CMDEngine.Instance.InitEngine("Game", null); EngineNS.Thread.Async.ContextThreadManager.ImmidiateMode = true; var unused = RealMain(cmdEngine, args); while (cmdEngine.IsRun) { cmdEngine.MainTick(); } cmdEngine.Cleanup(); }
public virtual object CreateMacrossObject(RName name, EngineNS.Rtti.VAssembly assembly) { return(null); }
private void Form1_Load(object sender, EventArgs e) { AppDomain.CurrentDomain.AssemblyLoad += CurrentDomain_AssemblyLoad; AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve; System.Action action = async() => { #if FinalRelease var assm = EngineNS.Rtti.VAssemblyManager.Instance.LoadAssembly("Batman/Game.Windows.dll", EngineNS.ECSType.Client, false, false); #else EngineNS.Rtti.VAssembly assm = null; var files = System.IO.Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory, "Game.Windows*.dll", System.IO.SearchOption.TopDirectoryOnly); if (files.Length > 0) { assm = EngineNS.Rtti.VAssemblyManager.Instance.LoadAssembly(files[0], EngineNS.ECSType.Client, false, false); } else { return; } #endif EngineNS.Rtti.RttiHelper.RegisterAnalyseAssembly("Game", assm); var types = assm.GetTypes(); System.Type GameInstanceType = null; foreach (var i in types) { if (i.FullName == "Game.CGameEngine") { EngineNS.CEngine.Instance = System.Activator.CreateInstance(i) as EngineNS.CEngine; } if (i.FullName == "Game.CGameInstance") { GameInstanceType = i; } } //EngineNS.CEngine.Instance = new Game.CGameEngine(); EngineNS.CEngine.mGenerateShaderForMobilePlatform = true; EngineNS.CEngine.Instance.PreInitEngine(); var pak = new EngineNS.IO.CPakFile(); var mountPoint = EngineNS.CEngine.Instance.FileManager.ProjectRoot; var pakFile = mountPoint + "../a.tpak"; if (pak.LoadPak(pakFile)) { pak.MountPak(mountPoint, 100); } EngineNS.CEngine.Instance.InitEngine("Game", null); EngineNS.CEngine.Instance.Interval = 20; EngineNS.CIPlatform.Instance.GameWindowHwnd = this.Handle; Application.Idle += (object sender1, EventArgs e1) => { EngineNS.CEngine.Instance.MainTick(); }; this.ClientSizeChanged += (object sender2, EventArgs e2) => { EngineNS.CEngine.Instance.GameInstance?.OnWindowsSizeChanged((UInt32)this.ClientSize.Width, (UInt32)this.ClientSize.Height); }; var rhiType = EngineNS.ERHIType.RHT_OGL; if (EngineNS.IO.FileManager.UseCooked == "windows") { rhiType = EngineNS.ERHIType.RHT_D3D11; } await EngineNS.CEngine.Instance.InitSystem(this.Handle, (UInt32)this.Width, (UInt32)this.Height, rhiType, CreateDebugLayer); MobileGPUSimulator.Instance.SimulateGPU(MobileGPUSimulator.Instance.Gpu); //EngineNS.CEngine.Instance.MetaClassManager.CheckNewMetaClass(); var desc = new EngineNS.GamePlay.GGameInstanceDesc(); desc.SceneName = desc.DefaultMapName; await EngineNS.CEngine.Instance.OnEngineInited(); EngineNS.CEngine.Instance.McEngineGetter?.Get()?.OnStartGame(EngineNS.CEngine.Instance); await EngineNS.CEngine.Instance.StartGame(GameInstanceType, this.Handle, (UInt32)this.ClientSize.Width, (UInt32)this.ClientSize.Height, desc, null, EngineNS.CEngine.Instance.Desc.GameMacross); this.Text = $"TitanGame({rhiType})"; }; action(); }