⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 asl_timer.h

📁 泡泡堂单机版(含ASL游戏引擎源码 泡泡堂单机版(含ASL游戏引擎源码
💻 H
字号:
//-----------------------------------------------------------------------------
//
//    ____ Azure Star Game Engine 蓝星游戏引擎 ____
//
//    Copyright (c) 2006, 蓝星工作室
//    All rights reserved.
//
//    文件名称: asl_timer.h
//    摘    要: 高精度计时器类定义
//
//    当前版本: 1.0
//    作    者: 汤  祺
//    创建日期: 2006-7-26
//
//-----------------------------------------------------------------------------

#ifndef ASL_TIMER_INCLUDE
#define ASL_TIMER_INCLUDE

#pragma once

#include "asl_utils.h"

//-----------------------------------------------------------------------------
namespace ASL
{

//-----------------------------------------------------------------------------
// 类名: ASLTimer
// 功能: 高精度计时器类
//       本类为高精度计时器, 需要硬件支持, 在某些配置过低的机器上可能无法运行.
//       本类的使用方式完全类似一个标准秒表, 支持开始/停止/暂停/读数等操作.
//-----------------------------------------------------------------------------
class ASLTimer
{

// 计时器状态枚举定义
private:
	enum TimerStatus { tsRun, tsStop, tsPause };

// 构造/析构函数定义
public:
	ASLTimer(int nPrecision = 10000, bool bPlay = true) throw(ASLSimpleException);
	~ASLTimer(void);


	
// 公有函数
public:
	//设置计时器精度
	void SetPrecision(int nPrecision = 10000)
	{ ASSERT(nPrecision > 0); m_nPrecision = nPrecision; }
	
	// 取计时器精度
	int GetPrecision(void) const { return m_nPrecision; }
	
	// 取当前计时器读数
	DWORD GetTime(void);
	
	// 开始计时
	void Play(void);
	
	// 停止计时
	void Stop(void);
	
	// 暂停计时
	void Pause(void);



// 私有函数
private:
	// 取系统计时器的计数值
	__int64 GetCurrentCount(void);



// 成员变量
private:
	static __int64 m_n64Freq;		// 计时器频率
	__int64 m_n64TimeBegin;			// 开始时刻
	__int64 m_n64TimeEnd;			// 停止时刻
	int m_nPrecision;				// 计时器精度
	TimerStatus m_TimerStatus;		// 计时器状态

}; // ASLTimer类定义结束

} // namespace ASL

#endif // ASL_TIMER_INCLUDE

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -