FPSCounter.cpp 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // Copyright 2012 Dolphin Emulator Project
  2. // Licensed under GPLv2+
  3. // Refer to the license.txt file included.
  4. #include <fstream>
  5. #include "Common/FileUtil.h"
  6. #include "Common/StringUtil.h"
  7. #include "Common/Timer.h"
  8. #include "VideoCommon/FPSCounter.h"
  9. #include "VideoCommon/VideoConfig.h"
  10. #define FPS_REFRESH_INTERVAL 1000
  11. FPSCounter::FPSCounter()
  12. : m_fps(0)
  13. , m_counter(0)
  14. , m_fps_last_counter(0)
  15. {
  16. m_update_time.Update();
  17. m_render_time.Update();
  18. }
  19. void FPSCounter::LogRenderTimeToFile(u64 val)
  20. {
  21. if (!m_bench_file.is_open())
  22. m_bench_file.open(File::GetUserPath(D_LOGS_IDX) + "render_time.txt");
  23. m_bench_file << val << std::endl;
  24. }
  25. int FPSCounter::Update()
  26. {
  27. if (m_update_time.GetTimeDifference() >= FPS_REFRESH_INTERVAL)
  28. {
  29. m_update_time.Update();
  30. m_fps = m_counter - m_fps_last_counter;
  31. m_fps_last_counter = m_counter;
  32. m_bench_file.flush();
  33. }
  34. if (g_ActiveConfig.bLogRenderTimeToFile)
  35. {
  36. LogRenderTimeToFile(m_render_time.GetTimeDifference());
  37. m_render_time.Update();
  38. }
  39. m_counter++;
  40. return m_fps;
  41. }