FpsCounter.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. // Copyright (c) 2008-2023 the Urho3D project
  2. // License: MIT
  3. #pragma once
  4. #include <Urho3D/Base/PrimitiveTypes.h>
  5. using namespace Urho3D::PrimitiveTypes;
  6. class FpsCounter
  7. {
  8. private:
  9. // Results
  10. int resultMinFps_;
  11. int resultMaxFps_;
  12. int resultFps_;
  13. int resultNumFrames_; // Number of frames after warm-up
  14. float resultTime_; // Time after warm-up
  15. float totalTime_; // Time with warm-up
  16. // Current FPS updated every half second
  17. int currentFps_;
  18. int frameCounter_;
  19. float timeCounter_;
  20. public:
  21. void Clear()
  22. {
  23. resultMinFps_ = -1;
  24. resultMaxFps_ = -1;
  25. resultFps_ = -1;
  26. resultNumFrames_ = 0;
  27. resultTime_ = 0.f;
  28. totalTime_ = 0.f;
  29. currentFps_ = -1;
  30. frameCounter_ = 0;
  31. timeCounter_ = 0.f;
  32. }
  33. FpsCounter()
  34. {
  35. Clear();
  36. }
  37. int GetResultMinFps() const { return resultMinFps_; }
  38. int GetResultMaxFps() const { return resultMaxFps_; }
  39. int GetResultFps() const { return resultFps_; }
  40. float GetTotalTime() const { return totalTime_; }
  41. int GetCurrentFps() const { return currentFps_; }
  42. void Update(float timeStep);
  43. };