Pioneer
Stats.h
Go to the documentation of this file.
1 // Copyright © 2008-2021 Pioneer Developers. See AUTHORS.txt for details
2 // Licensed under the terms of the GPL v3. See licenses/GPL-3.txt
3 
4 #ifndef _STATS_H
5 #define _STATS_H
6 
7 #include "PerfStats.h"
8 
9 #include "SDL_stdinc.h"
10 #include <utility>
11 #include <vector>
12 
13 namespace Graphics {
14 
19  class Stats : protected Perf::Stats {
20  public:
21  static const Uint32 MAX_FRAMES_STORE = 30U;
22  enum StatType {
23  // renderer entries
27 
28  // buffers
32 
33  // objects
44 
45  // scenegraph entries
47 
48  // resource utilization stats
55 
56  MAX_STAT
57  };
58 
59  struct TFrameData {
60  uint32_t m_stats[MAX_STAT];
61  };
62 
63  Stats();
64  ~Stats() {}
65 
66  void AddToStatCount(const StatType type, const uint32_t count) const
67  {
68  CounterAdd(m_counterRefs.at(type), count);
69  }
70 
71  void DecStatCount(const StatType type, const uint32_t count) const
72  {
73  CounterDec(m_counterRefs.at(type), count);
74  }
75 
76  void SetStatCount(const StatType type, const uint32_t count) const
77  {
78  CounterSet(m_counterRefs.at(type), count);
79  }
80 
81  void NextFrame();
82 
83  const TFrameData &FrameStatsPrevious() const;
84  const FrameInfo &GetFullStats() const { return GetFrameStats(); }
85 
86  private:
87  TFrameData m_frameStats[MAX_FRAMES_STORE];
88  Uint32 m_currentFrame;
89 
90  std::vector<Perf::Stats::CounterRef> m_counterRefs;
91  };
92 
93 } // namespace Graphics
94 
95 #endif
Definition: Stats.h:19
StatType
Definition: Stats.h:22
@ STAT_DESTROY_BUFFER
Definition: Stats.h:30
@ MAX_STAT
Definition: Stats.h:56
@ STAT_NUM_TEXTURECUBE
Definition: Stats.h:51
@ STAT_MEM_TEXTUREARRAY2D
Definition: Stats.h:54
@ STAT_BUILDINGS
Definition: Stats.h:34
@ STAT_SHIPS
Definition: Stats.h:43
@ STAT_BUFFER_INUSE
Definition: Stats.h:31
@ STAT_PLANETS
Definition: Stats.h:40
@ STAT_CREATE_BUFFER
Definition: Stats.h:29
@ STAT_NUM_TEXTUREARRAY2D
Definition: Stats.h:53
@ STAT_MEM_TEXTURE2D
Definition: Stats.h:50
@ STAT_DRAWPOINTSPRITES
Definition: Stats.h:26
@ STAT_BILLBOARD
Definition: Stats.h:46
@ STAT_SPACESTATIONS
Definition: Stats.h:37
@ STAT_CITIES
Definition: Stats.h:35
@ STAT_STARS
Definition: Stats.h:42
@ STAT_GASGIANTS
Definition: Stats.h:41
@ STAT_PATCHES
Definition: Stats.h:39
@ STAT_MEM_TEXTURECUBE
Definition: Stats.h:52
@ STAT_DRAWCALL
Definition: Stats.h:24
@ STAT_NUM_TEXTURE2D
Definition: Stats.h:49
@ STAT_GROUNDSTATIONS
Definition: Stats.h:36
@ STAT_DRAWTRIS
Definition: Stats.h:25
@ STAT_ATMOSPHERES
Definition: Stats.h:38
~Stats()
Definition: Stats.h:64
const FrameInfo & GetFullStats() const
Definition: Stats.h:84
void NextFrame()
Definition: Stats.cpp:47
void SetStatCount(const StatType type, const uint32_t count) const
Definition: Stats.h:76
void AddToStatCount(const StatType type, const uint32_t count) const
Definition: Stats.h:66
void DecStatCount(const StatType type, const uint32_t count) const
Definition: Stats.h:71
Stats()
Definition: Stats.cpp:10
const TFrameData & FrameStatsPrevious() const
Definition: Stats.cpp:62
static const Uint32 MAX_FRAMES_STORE
Definition: Stats.h:21
Definition: PerfStats.h:24
void CounterAdd(CounterRef ref, uint32_t amount=1) const
Definition: PerfStats.h:43
void CounterDec(CounterRef ref, uint32_t amount=1) const
Definition: PerfStats.h:49
void CounterSet(CounterRef ref, uint32_t value) const
Definition: PerfStats.h:55
std::map< std::string, uint32_t > FrameInfo
Definition: PerfStats.h:26
const FrameInfo & GetFrameStats() const
Definition: PerfStats.h:69
Definition: Background.h:13
Definition: Stats.h:59
uint32_t m_stats[MAX_STAT]
Definition: Stats.h:60