afTime.h
上传用户:kaiguan
上传日期:2007-10-28
资源大小:1074k
文件大小:1k
源码类别:

其他游戏

开发平台:

Visual C++

  1. #ifndef AF_TIME
  2. #define AF_TIME
  3. #include <windows.h>
  4. /// this class represents a specific instance in time (a distinct point on the timeline)
  5. class  afTimeInstance
  6. {
  7. public:
  8. afTimeInstance()  {}
  9. afTimeInstance(LARGE_INTEGER nTime)  {  time = nTime;  }
  10. LONGLONG getQuadPart() const  {  return time.QuadPart;  }
  11. private:
  12. LARGE_INTEGER time;
  13. };
  14. /// afTime provides precise timing methods
  15. /**
  16.  *  afTime uses the processors VERY HIGH PRECISSION
  17.  *  timer functions, which are precise enough to bench
  18.  *  even single assembler commands...
  19.  */
  20. class afTime
  21. {
  22. public:
  23. /// Update must only be called once per frame (before any other afTime method is used)
  24. static void update();
  25. /// Returns in seconds, how long the last frame took
  26. /**
  27.  *  The time difference between the last two
  28.  *  calls to update() is returned.
  29.  */
  30. static float getLastFrameTime();
  31. /// returns the current frames per second based on the last frame time
  32. static float getFPS();
  33.     static float getAverageFPS();
  34. /// returns the current time in very high precision as afTimeInstance object
  35. static afTimeInstance getCurrentTime();
  36. /// returns the time if seconds since which have passed since nInst
  37. static float getTimeSince(const afTimeInstance& nInst);
  38. static float lastFrameTime, totalFrameTime,fps;
  39. static bool firstUpdate;
  40. static int  NumOfFrames;
  41. static LARGE_INTEGER time0, time1, freq;
  42. };
  43. #endif