#pragma once

#include "Core/Core.h"

class Application {
public:
    Application();
    virtual ~Application();

    static Application* Get();

    virtual bool Initialize();
    virtual int RunLoop();
    virtual void Uninitialize();
    virtual void UpdateScene();

    float GeltaSeconds() const {
        return m_deltaSeconds;
    }

protected:
    double m_timeStamp{ 0.0 };
    float m_deltaSeconds{ 0.0f };

    class Mesh* mesh_{ nullptr };
    class MeshRender* meshRender_{ nullptr };
};
