#ifndef _FPSCLASS_H_
#define _FPSCLASS_H_


/////////////
// LINKING //
/////////////
#pragma comment(lib, "winmm.lib")


//////////////
// INCLUDES //
//////////////
#include <windows.h>
#include <mmsystem.h>

////////////////////////////////////////////////////////////////////////////////
// Class name: fps_class
////////////////////////////////////////////////////////////////////////////////
class fps_class
{
public:
    fps_class();
    fps_class(const fps_class&);
    ~fps_class();

    void Initialize();
    void Frame();
    int GetFps();

    int GetMinFps() const;
    int GetMaxFps() const;
    float GetFrameTime() const;
    void ResetStats();

private:
    int m_fps, m_count;
    unsigned long m_startTime;

    int m_minFps;
    int m_maxFps;
    float m_frameTime;
    unsigned long m_previousTime;
};

#endif