PerformanceCounters.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #ifndef _PerformanceCounters_h_
  2. #define _PerformanceCounters_h_
  3. #include "CoreBase.h"
  4. class PerformanceCounters
  5. {
  6. struct Element
  7. {
  8. dword hash;
  9. long next;
  10. string name;
  11. float current;
  12. float counter;
  13. };
  14. public:
  15. PerformanceCounters();
  16. ~PerformanceCounters();
  17. public:
  18. //Добавить значение к счётчику, который сбросится с конце кадра
  19. void AddPerformanceCounter(const char * name, float value);
  20. //Установить счётчик, который сбросится с конце кадра
  21. void SetPerformanceCounter(const char * name, float value);
  22. //Получить количество счётчиков
  23. dword GetNumberOfPerformanceCounters();
  24. //Получить имя счётчика
  25. const char * GetPerformanceName(long index);
  26. //Получить значение счётчика с предыдущего кадра
  27. float GetPerformanceCounter(long index);
  28. //Получить значение счётчика с предыдущего кадра
  29. float GetPerformanceCounter(const char * name);
  30. //Момент следующего отсчёта
  31. void NextFrame();
  32. private:
  33. //Найти или добавить счётчик
  34. Element & GetCounter(const char * name);
  35. private:
  36. long entryTable[4096];
  37. array<Element> counters;
  38. };
  39. #endif