public static void RunApplication(SpreadApplication app)
        {
            startTime = DateTime.Now;

            float lastFrameTime = GetTime();


            while (WindowLayer.ShouldRender(app.ctx))
            {
                WindowLayer.EnterRenderLoop(app.ctx);

                InternalRunners <HookUpdateAttribute>(app);
                app.Update();

                UILayer.EnterUIFrame();
                app.DrawUI();
                UILayer.ExitUIFrame();

                WindowLayer.ExitRenderLoop(app.ctx);

                app.time      = GetTime();
                app.deltaTime = GetTime() - lastFrameTime;
                lastFrameTime = GetTime();
            }
        }