fps_counter.hpp 730 B

123456789101112131415161718192021222324252627282930313233
  1. //
  2. // fps_counter.hpp
  3. // engine
  4. //
  5. // Created by Sam Jaffe on 5/24/19.
  6. // Copyright © 2019 Sam Jaffe. All rights reserved.
  7. //
  8. #pragma once
  9. #include <vector>
  10. #include "game/graphics/graphics_fwd.h"
  11. #include "game/util/time.hpp"
  12. namespace engine {
  13. class fps_counter {
  14. public:
  15. fps_counter(env::clock::duration const & fpscap,
  16. graphics::manager const & mgr, std::size_t precision = 3);
  17. ~fps_counter();
  18. void set_frame_step(env::clock::duration const & since);
  19. std::vector<graphics::object> const & glyphs() const { return glyphs_; }
  20. private:
  21. int counter_{0}, change_after_{10};
  22. std::size_t digits_;
  23. std::size_t magnitude_;
  24. std::vector<graphics::object> glyphs_;
  25. };
  26. }