SWMMVis  6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
qsg2drenderstats.h
Go to the documentation of this file.
1
24#ifndef OPENSWMM_RENDER_QSG2DRENDERSTATS_H
25#define OPENSWMM_RENDER_QSG2DRENDERSTATS_H
26
27#include <QString>
28#include <QVector>
29#include <QtGlobal>
30
31#include <functional>
32
33namespace OpenSWMM::Render
34{
35
37{
38public:
40 enum DirtyReason : quint32 {
42 DirtyPan = 1u << 0,
43 DirtyZoom = 1u << 1,
44 DirtyTime = 1u << 2,
45 DirtyStyle = 1u << 3,
46 DirtySelection = 1u << 4,
47 DirtyGeometry = 1u << 5,
48 DirtyLayer = 1u << 6,
49 DirtyVisibility = 1u << 7,
53 DirtyLod = 1u << 8,
54 };
55
57 struct PassStats
58 {
59 QString pass;
60 qint64 builtVertices = 0;
61 qint64 uploadedBytes = 0;
62 };
63
64 QString rendererName;
66 qint64 visibleCells = -1;
67 qint64 visibleEdges = -1;
68 qint64 visibleVertices = -1;
69 double repaintMs = -1.0;
70 double grabMs = -1.0;
71 QVector<PassStats> passes;
72
73 void reset();
74 void addPass(const QString &pass, qint64 builtVertices, qint64 uploadedBytes);
75
76 [[nodiscard]] qint64 totalBuiltVertices() const;
77 [[nodiscard]] qint64 totalUploadedBytes() const;
78
82 [[nodiscard]] static QString dirtyReasonsToString(quint32 bits);
83
85 [[nodiscard]] QString toLogLine() const;
86
89 [[nodiscard]] static bool loggingEnabled();
90
92 static void overrideLoggingForTest(int forced);
93
97 void logIfEnabled(const std::function<void(const QString &)> &sink = {}) const;
98};
99
100} // namespace OpenSWMM::Render
101
102#endif // OPENSWMM_RENDER_QSG2DRENDERSTATS_H
Definition qsg2drenderstats.h:37
QString rendererName
"mesh2d" or "results2d"
Definition qsg2drenderstats.h:64
double repaintMs
QSG repaint time, -1 = not measured.
Definition qsg2drenderstats.h:69
qint64 totalBuiltVertices() const
Definition qsg2drenderstats.cpp:37
static void overrideLoggingForTest(int forced)
Definition qsg2drenderstats.cpp:107
QVector< PassStats > passes
Definition qsg2drenderstats.h:71
static bool loggingEnabled()
Definition qsg2drenderstats.cpp:100
void addPass(const QString &pass, qint64 builtVertices, qint64 uploadedBytes)
Definition qsg2drenderstats.cpp:31
static QString dirtyReasonsToString(quint32 bits)
Definition qsg2drenderstats.cpp:51
qint64 visibleCells
-1 = not measured this sync
Definition qsg2drenderstats.h:66
qint64 visibleVertices
Definition qsg2drenderstats.h:68
DirtyReason
Definition qsg2drenderstats.h:40
@ DirtyGeometry
Definition qsg2drenderstats.h:47
@ DirtyVisibility
Definition qsg2drenderstats.h:49
@ DirtyPan
Definition qsg2drenderstats.h:42
@ DirtyLayer
Definition qsg2drenderstats.h:48
@ DirtyNone
Definition qsg2drenderstats.h:41
@ DirtyLod
Definition qsg2drenderstats.h:53
@ DirtyStyle
Definition qsg2drenderstats.h:45
@ DirtyZoom
Definition qsg2drenderstats.h:43
@ DirtySelection
Definition qsg2drenderstats.h:46
@ DirtyTime
Definition qsg2drenderstats.h:44
double grabMs
framebuffer grab time, -1 = not measured
Definition qsg2drenderstats.h:70
qint64 totalUploadedBytes() const
Definition qsg2drenderstats.cpp:44
quint32 dirtyReasons
Definition qsg2drenderstats.h:65
QString toLogLine() const
Definition qsg2drenderstats.cpp:75
void logIfEnabled(const std::function< void(const QString &)> &sink={}) const
Definition qsg2drenderstats.cpp:112
void reset()
Definition qsg2drenderstats.cpp:26
qint64 visibleEdges
Definition qsg2drenderstats.h:67
Definition gisrasterlayer.h:40
Definition qsg2drenderstats.h:58
QString pass
e.g. "fill", "edges", "selection"
Definition qsg2drenderstats.h:59
qint64 uploadedBytes
bytes copied into QSG geometry
Definition qsg2drenderstats.h:61
qint64 builtVertices
vertices assembled CPU-side this sync
Definition qsg2drenderstats.h:60