osg.ElapsedTime类用于计算程序从开始执行到指定时间之间的时间差。
class ElapsedTime : public osg::Referenced
返回程序从开始执行到当前时间的时间差,单位为秒。
返回程序从时间t到当前时间的时间差,单位为秒。
设置起始时间为当前时间。
设置起始时间为指定时间。
获取起始时间。
重置计时器,将起始时间设置为当前时间。
// 创建计时器
osg::ref_ptr<osg::ElapsedTime> timer = new osg::ElapsedTime;
// 设置起始时间
timer->setStartTickTime();
// 执行一些代码
// 输出程序执行时间
std::cout << "程序执行时间:" << timer->elapsedTime() << "秒。" << std::endl;
// 执行一些代码
// 输出执行第二部分代码的时间
std::cout << "第二部分代码执行时间:" << timer->elapsedTimeSince(0.0) << "秒。" << std::endl;
以上代码将输出类似下面的信息:
程序执行时间:1.2345秒。
第二部分代码执行时间:0.5678秒。
osg::ElapsedTime
类重载了 operator double()
,可以将计时器对象直接转换为从开始执行到当前时间的时间差,单位为秒。例如,double time = *timer;
。osg::ElapsedTime
类还提供了一个全局实例 osg::Timer_t osg::currentTime()
,可以返回当前时间戳(纳秒级别)。osg::Timer
,可用于比较不同代码段之间的时间差。