网站大量收购闲置独家精品文档,联系QQ:2885784924

DirectX10教程15FPSCPU使用率和计时器.DOCVIP

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DirectX10教程15FPSCPU使用率和计时器

PAGE1 / NUMPAGES23 DirectX 10 教程15:FPS,CPU使用率和计时器 原文地址: HYPERLINK /dx10tut15.html Tutorial 15: FPS, CPU Usage, and Timers。 本教程将会介绍三个新类,它们封装了帧频率计数器,CPU使用率计数器和一个高精度的计时器。本教程的代码基于教程12:字体引擎。 第一个新类是FpsClass。FpsClass记录程序运行时每秒的帧数。知道帧频可以让我们对程序的性能有一个直观的认识,它也是衡量显卡渲染速度的一个工业标准度量值。当我们实现了一个新功能时,可以通过帧频看出这个功能对程序速度的影响。如果这个新功能将帧速降低了一半,你就会立即意识到出了大问题。计算机标准的帧频为60fps,低于60fps就被认为性能下降,而低于30fps时能被人眼明显地感觉到。 第二个新类是CpuClass。这个类记录cpu使用率,这样我们就可以在屏幕上显示这个信息。知道cpu使用率就可以帮助我们调试代码的效率,它提供了一个简单而快速的方法衡量我们的代码或算法的优劣。 最后一个类是TimerClass。它是一个高精度的计时器。用于记时事件,确保所有组件能在一个通用的时间系统中同步。 框架 本教程中包含三个新类的框架如下图所示: 首先依次来看一下三个新类。 Fpsclass.h FpsClass只是个包含时钟的计数器,它记录了一秒中内会绘制几帧,并进行持续更新。 //////////////////////////////////////////////////////////////////////////////// // Filename: fpsclass.h //////////////////////////////////////////////////////////////////////////////// #ifndef _FPSCLASS_H_ #define _FPSCLASS_H_ ///////////// // LINKING // ///////////// #pragma comment(lib, winmm.lib) ////////////// // INCLUDES // ////////////// #include windows.h #include mmsystem.h //////////////////////////////////////////////////////////////////////////////// // Class name: FpsClass //////////////////////////////////////////////////////////////////////////////// class FpsClass { public: FpsClass(); FpsClass(const FpsClass); ~FpsClass(); void Initialize(); void Frame(); int GetFps(); private: int m_fps, m_count; unsigned long m_startTime; }; #endif Fpsclass.cpp /////////////////////////////////////////////////////////////////////////////// // Filename: fpsclass.cpp /////////////////////////////////////////////////////////////////////////////// #include fpsclass.h FpsClass::FpsClass() { } FpsClass::FpsClass(const FpsClass other) { } FpsClass::~FpsClass() { } Initialize方法将计数器设置为0并开启一个计时器。 void FpsClass::Initialize() { m_fps = 0; m_count = 0; m_startTime = timeGetTime(); return; } Frame方法在每一帧调用,这样能每一帧加1,如果时间已经流逝了1秒,则将帧数保存在m_fps变量中,然后重新将计数器归0并重新开启计时器。 void FpsClass::Frame() { m_count++; if(timeGetTime() = (m_startTime + 1000)) { m_f

文档评论(0)

zhaoxiaoj + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档