Pioneer
Loading...
Searching...
No Matches
Stats.h
Go to the documentation of this file.
1// Copyright © 2008-2023 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
13namespace Graphics {
14
19 class Stats : protected Perf::Stats {
20 public:
21 static const Uint32 MAX_FRAMES_STORE = 30U;
22 enum StatType {
23 // renderer entries
28
29 // buffers
37
41
42 // objects
53
54 // scenegraph entries
56
57 // resource utilization stats
64
66 };
67
68 struct TFrameData {
69 uint32_t m_stats[MAX_STAT];
70 };
71
72 Stats();
73 ~Stats() {}
74
75 void AddToStatCount(const StatType type, const uint32_t count) const
76 {
77 CounterAdd(m_counterRefs.at(type), count);
78 }
79
80 void DecStatCount(const StatType type, const uint32_t count) const
81 {
82 CounterDec(m_counterRefs.at(type), count);
83 }
84
85 void SetStatCount(const StatType type, const uint32_t count) const
86 {
87 CounterSet(m_counterRefs.at(type), count);
88 }
89
90 void NextFrame();
91
92 const TFrameData &FrameStatsPrevious() const;
93 const FrameInfo &GetFullStats() const { return GetFrameStats(); }
94
95 private:
96 TFrameData m_frameStats[MAX_FRAMES_STORE];
97 Uint32 m_currentFrame;
98
99 std::vector<Perf::Stats::CounterRef> m_counterRefs;
100 };
101
102} // namespace Graphics
103
104#endif
Definition Stats.h:19
StatType
Definition Stats.h:22
@ STAT_DRAW_UNIFORM_BUFFER_ALLOCS
Definition Stats.h:34
@ STAT_NUM_SHADER_PROGRAMS
Definition Stats.h:39
@ STAT_DESTROY_BUFFER
Definition Stats.h:31
@ MAX_STAT
Definition Stats.h:65
@ STAT_NUM_POINTS
Definition Stats.h:25
@ STAT_NUM_RENDER_STATES
Definition Stats.h:38
@ STAT_NUM_TRIS
Definition Stats.h:27
@ STAT_NUM_TEXTURECUBE
Definition Stats.h:60
@ STAT_DYNAMIC_DRAW_BUFFER_CREATED
Definition Stats.h:36
@ STAT_MEM_TEXTUREARRAY2D
Definition Stats.h:63
@ STAT_BUILDINGS
Definition Stats.h:43
@ STAT_SHIPS
Definition Stats.h:52
@ STAT_BUFFER_INUSE
Definition Stats.h:32
@ STAT_PLANETS
Definition Stats.h:49
@ STAT_CREATE_BUFFER
Definition Stats.h:30
@ STAT_NUM_TEXTUREARRAY2D
Definition Stats.h:62
@ STAT_MEM_TEXTURE2D
Definition Stats.h:59
@ STAT_DYNAMIC_DRAW_BUFFER_INUSE
Definition Stats.h:35
@ STAT_BILLBOARD
Definition Stats.h:55
@ STAT_SPACESTATIONS
Definition Stats.h:46
@ STAT_CITIES
Definition Stats.h:44
@ STAT_STARS
Definition Stats.h:51
@ STAT_DRAW_UNIFORM_BUFFER_INUSE
Definition Stats.h:33
@ STAT_GASGIANTS
Definition Stats.h:50
@ STAT_PATCHES
Definition Stats.h:48
@ STAT_NUM_LINES
Definition Stats.h:26
@ STAT_MEM_TEXTURECUBE
Definition Stats.h:61
@ STAT_DRAWCALL
Definition Stats.h:24
@ STAT_NUM_CMDLIST_FLUSHES
Definition Stats.h:40
@ STAT_NUM_TEXTURE2D
Definition Stats.h:58
@ STAT_GROUNDSTATIONS
Definition Stats.h:45
@ STAT_ATMOSPHERES
Definition Stats.h:47
~Stats()
Definition Stats.h:73
void NextFrame()
Definition Stats.cpp:56
void SetStatCount(const StatType type, const uint32_t count) const
Definition Stats.h:85
void AddToStatCount(const StatType type, const uint32_t count) const
Definition Stats.h:75
void DecStatCount(const StatType type, const uint32_t count) const
Definition Stats.h:80
Stats()
Definition Stats.cpp:10
const TFrameData & FrameStatsPrevious() const
Definition Stats.cpp:71
const FrameInfo & GetFullStats() const
Definition Stats.h:93
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
const FrameInfo & GetFrameStats() const
Definition PerfStats.h:69
void CounterSet(CounterRef ref, uint32_t value) const
Definition PerfStats.h:55
std::map< std::string, uint32_t > FrameInfo
Definition PerfStats.h:26
Definition Background.h:14
Definition Stats.h:68
uint32_t m_stats[MAX_STAT]
Definition Stats.h:69