📄 asl_timer.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 + -