public void OnRenderFrame(FrameEventArgs e) { double time = (DateTime.UtcNow - engineStartTime).TotalSeconds; windowHandler.SetWindowTitle($"Vector Engine"); RenderEngine.BufferFlush(); RenderEngine.SetTimeData(time); entryPoint.OnRender(e.Time); RenderEngine.RenderAll(); windowHandler.SwapBuffers(); if (entryPoint.UseVSync && e.Time < 1000d / entryPoint.TargetFrameRate) { Thread.Sleep((int)Math.Round(1000 / entryPoint.TargetFrameRate - e.Time)); } else if (!entryPoint.UseVSync && e.Time < 1000d / entryPoint.MaxFrameRate) { Thread.Sleep((int)Math.Round(1000 / entryPoint.MaxFrameRate - e.Time)); } }