#pragma once

//! @file Mix/Timer.h
//! @brief タイマークラス

namespace Mix
{
	//! @class Timer
	//! @brief タイマークラス
	class _MIX_DLL_API Timer
	{
	private:
		LARGE_INTEGER m_Before;

	public:
		//! @brief コンストラクタ
		Timer( void );
		//! @brief デストラクタ
		~Timer( void );

	public:
		//! @brief 経過時間をリセットします
		void Reset( void );
		//! @brief 経過時間を取得します
		//! @param[in] resolution 分解能
		//! @return 経過時間を返します
		UInt32 GetUI32( UInt64 resolution );
		//! @brief 経過時間を取得します
		//! @param[in] resolution 分解能
		//! @return 経過時間を返します
		UInt64 GetUI64( UInt64 resolution );
		//! @brief 経過時間を取得します
		//! @return 経過時間を返します
		Float32 GetF32( void );
		//! @brief 経過時間を取得します
		//! @return 経過時間を返します
		Float64 GetF64( void );
	};
}
