//Executed vsync times per second.
        protected override void OnRenderFrame(FrameEventArgs e)
        {
            time += e.Time;
            framesPerSecond++;

            if (time >= 1)
            {
                Title = $"{framesPerSecond}FPS - {1000 / (double)framesPerSecond}ms/f";

                framesPerSecond = 0;
                time            = 0;
            }

            EngineManager.OnUpdate((float)e.Time);

            GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);

            foreach (RenderBuffer buffer in RenderBufferManager.GetBuffers())
            {
                buffer.Render();
            }

            GL.Flush();
            SwapBuffers();

            base.OnRenderFrame(e);
        }
        protected override void OnUpdateFrame(FrameEventArgs e)
        {
            //TODO Move into game
            Vector2 delta = lastMousePos - new Vector2(MouseState.X, MouseState.Y);

            lastMousePos = new Vector2(MouseState.X, MouseState.Y);
            Player.Instance.AddRotation(delta.X, delta.Y);
            DebugCamera.Instance.AddRotation(delta.X, delta.Y);

            InputManager.HandleInput();
            EngineManager.OnTick((float)e.Time);

            base.OnUpdateFrame(e);
        }