private bool ExecuteTick() { float TotalFrameDeltaTime = GameThreadTickManager.ExecuteSingleTick(); FPS = (1 / TotalFrameDeltaTime) * 1000; return(Running); }
public void Run() { //TODO: Render Thread this Renderer.CreateRenderer(); Renderer.CreateWindow(); Running = true; GameThreadTickManager.Init(); while (ExecuteTick()) { } }
public void Init() { ConfigureLogger(); Logger.Info("Starting Up Watertight Engine! Game {0}, Version {1}", Name, Version); //Init the Filesystem System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor(typeof(FileSystem).TypeHandle); //TODO: Configure Engine from a config file TickFunction EngineTick = new TickFunction { TickFunc = Tick, TickPriority = TickFunction.HighPriority, CanTick = true, }; GameThreadTickManager.AddTick(EngineTick); Renderer = (Renderer)Activator.CreateInstance(RendererType); //TODO: Thread This. For now, we just tick it GameThreadTickManager.AddTick(Renderer.RenderTickFunction); MaxFPS = 250; foreach (ResourcePtr resourcePtr in PreloadResources) { Logger.Info("Preloading Asset: {0}", resourcePtr.ToString()); resourcePtr.Load(); } OnInit(); Logger.Info("Finished Loading Engine. Ready to Begin"); }
protected internal void RemoveTickfunc(TickFunction TickFunc) { GameThreadTickManager.RemoveTick(TickFunc); }
protected internal void AddTickfunc(TickFunction TickFunc) { GameThreadTickManager.AddTick(TickFunc); }