VisuTwin Canvas
C++ 3D Engine — Metal Backend
Loading...
Searching...
No Matches
applicationStats.h
Go to the documentation of this file.
1
// SPDX-License-Identifier: Apache-2.0
2
// Copyright 2025-2026 Arnis Lektauers
3
//
4
// Created by Arnis Lektauers on 11.10.2025.
5
//
6
#pragma once
7
8
#include "
platform/graphics/graphicsDevice.h
"
9
10
namespace
visutwin::canvas
11
{
15
struct
FrameStats
{
16
float
fps
= 0.0f;
17
float
ms
= 0.0f;
18
float
dt
= 0.0f;
19
20
double
updateStart
= 0.0;
21
double
updateTime
= 0.0;
22
double
fixedUpdateTime
= 0.0;
23
double
renderStart
= 0.0;
24
double
renderTime
= 0.0;
25
double
physicsStart
= 0.0;
26
double
physicsTime
= 0.0;
27
double
cullTime
= 0.0;
28
double
sortTime
= 0.0;
29
double
skinTime
= 0.0;
30
double
morphTime
= 0.0;
31
double
instancingTime
= 0.0;
// deprecated
32
33
int
triangles
= 0;
34
int
gsplats
= 0;
35
int
otherPrimitives
= 0;
36
int
shaders
= 0;
37
int
materials
= 0;
38
int
cameras
= 0;
39
int
shadowMapUpdates
= 0;
40
double
shadowMapTime
= 0.0;
41
double
depthMapTime
= 0.0;
// deprecated
42
double
forwardTime
= 0.0;
43
44
double
lightClustersTime
= 0.0;
45
int
lightClusters
= 0;
46
47
double
timeToCountFrames
= 0.0;
48
int
fpsAccum
= 0;
49
};
50
54
struct
DrawCallStats
{
55
int
forward
= 0;
56
int
depth
= 0;
// deprecated
57
int
shadow
= 0;
58
int
immediate
= 0;
// deprecated
59
int
misc
= 0;
// everything that is not forward/depth/shadow (post effect quads etc)
60
int
total
= 0;
// total = forward + depth + shadow + misc
61
62
// Some of the forward/depth/shadow/misc draw calls:
63
int
skinned
= 0;
64
int
instanced
= 0;
// deprecated
65
66
int
removedByInstancing
= 0;
// deprecated
67
};
68
72
struct
ParticleStats
{
73
int
updatesPerFrame
= 0;
74
int
_updatesPerFrame
= 0;
75
double
frameTime
= 0.0;
76
double
_frameTime
= 0.0;
77
};
78
79
struct
MiscStats
{
80
double
renderTargetCreationTime
= 0.0;
81
};
82
86
class
ApplicationStats
87
{
88
public
:
89
ApplicationStats
(std::shared_ptr<GraphicsDevice> _graphicsDevice) {}
90
91
DrawCallStats
&
drawCalls
() {
return
_drawCalls; }
92
93
FrameStats
&
frame
() {
return
_frame; }
94
95
ParticleStats
&
particles
() {
return
_particles; }
96
97
MiscStats
&
misc
() {
return
_misc; }
98
99
void
setFrameStats
(
double
now,
float
dt,
float
ms);
100
101
private
:
102
DrawCallStats
_drawCalls;
103
104
ParticleStats
_particles;
105
106
FrameStats
_frame;
107
108
MiscStats
_misc;
109
};
110
}
visutwin::canvas::ApplicationStats::drawCalls
DrawCallStats & drawCalls()
Definition
applicationStats.h:91
visutwin::canvas::ApplicationStats::setFrameStats
void setFrameStats(double now, float dt, float ms)
Definition
applicationStats.cpp:10
visutwin::canvas::ApplicationStats::frame
FrameStats & frame()
Definition
applicationStats.h:93
visutwin::canvas::ApplicationStats::ApplicationStats
ApplicationStats(std::shared_ptr< GraphicsDevice > _graphicsDevice)
Definition
applicationStats.h:89
visutwin::canvas::ApplicationStats::particles
ParticleStats & particles()
Definition
applicationStats.h:95
visutwin::canvas::ApplicationStats::misc
MiscStats & misc()
Definition
applicationStats.h:97
graphicsDevice.h
visutwin::canvas
Definition
eventHandler.cpp:9
visutwin::canvas::DrawCallStats
Definition
applicationStats.h:54
visutwin::canvas::DrawCallStats::immediate
int immediate
Definition
applicationStats.h:58
visutwin::canvas::DrawCallStats::depth
int depth
Definition
applicationStats.h:56
visutwin::canvas::DrawCallStats::removedByInstancing
int removedByInstancing
Definition
applicationStats.h:66
visutwin::canvas::DrawCallStats::misc
int misc
Definition
applicationStats.h:59
visutwin::canvas::DrawCallStats::instanced
int instanced
Definition
applicationStats.h:64
visutwin::canvas::DrawCallStats::skinned
int skinned
Definition
applicationStats.h:63
visutwin::canvas::DrawCallStats::forward
int forward
Definition
applicationStats.h:55
visutwin::canvas::DrawCallStats::total
int total
Definition
applicationStats.h:60
visutwin::canvas::DrawCallStats::shadow
int shadow
Definition
applicationStats.h:57
visutwin::canvas::FrameStats
Definition
applicationStats.h:15
visutwin::canvas::FrameStats::fps
float fps
Definition
applicationStats.h:16
visutwin::canvas::FrameStats::shaders
int shaders
Definition
applicationStats.h:36
visutwin::canvas::FrameStats::cullTime
double cullTime
Definition
applicationStats.h:27
visutwin::canvas::FrameStats::fpsAccum
int fpsAccum
Definition
applicationStats.h:48
visutwin::canvas::FrameStats::skinTime
double skinTime
Definition
applicationStats.h:29
visutwin::canvas::FrameStats::lightClustersTime
double lightClustersTime
Definition
applicationStats.h:44
visutwin::canvas::FrameStats::cameras
int cameras
Definition
applicationStats.h:38
visutwin::canvas::FrameStats::materials
int materials
Definition
applicationStats.h:37
visutwin::canvas::FrameStats::depthMapTime
double depthMapTime
Definition
applicationStats.h:41
visutwin::canvas::FrameStats::updateStart
double updateStart
Definition
applicationStats.h:20
visutwin::canvas::FrameStats::dt
float dt
Definition
applicationStats.h:18
visutwin::canvas::FrameStats::fixedUpdateTime
double fixedUpdateTime
Definition
applicationStats.h:22
visutwin::canvas::FrameStats::morphTime
double morphTime
Definition
applicationStats.h:30
visutwin::canvas::FrameStats::shadowMapTime
double shadowMapTime
Definition
applicationStats.h:40
visutwin::canvas::FrameStats::triangles
int triangles
Definition
applicationStats.h:33
visutwin::canvas::FrameStats::instancingTime
double instancingTime
Definition
applicationStats.h:31
visutwin::canvas::FrameStats::otherPrimitives
int otherPrimitives
Definition
applicationStats.h:35
visutwin::canvas::FrameStats::gsplats
int gsplats
Definition
applicationStats.h:34
visutwin::canvas::FrameStats::lightClusters
int lightClusters
Definition
applicationStats.h:45
visutwin::canvas::FrameStats::physicsTime
double physicsTime
Definition
applicationStats.h:26
visutwin::canvas::FrameStats::ms
float ms
Definition
applicationStats.h:17
visutwin::canvas::FrameStats::timeToCountFrames
double timeToCountFrames
Definition
applicationStats.h:47
visutwin::canvas::FrameStats::physicsStart
double physicsStart
Definition
applicationStats.h:25
visutwin::canvas::FrameStats::renderStart
double renderStart
Definition
applicationStats.h:23
visutwin::canvas::FrameStats::shadowMapUpdates
int shadowMapUpdates
Definition
applicationStats.h:39
visutwin::canvas::FrameStats::renderTime
double renderTime
Definition
applicationStats.h:24
visutwin::canvas::FrameStats::updateTime
double updateTime
Definition
applicationStats.h:21
visutwin::canvas::FrameStats::forwardTime
double forwardTime
Definition
applicationStats.h:42
visutwin::canvas::FrameStats::sortTime
double sortTime
Definition
applicationStats.h:28
visutwin::canvas::MiscStats
Definition
applicationStats.h:79
visutwin::canvas::MiscStats::renderTargetCreationTime
double renderTargetCreationTime
Definition
applicationStats.h:80
visutwin::canvas::ParticleStats
Definition
applicationStats.h:72
visutwin::canvas::ParticleStats::frameTime
double frameTime
Definition
applicationStats.h:75
visutwin::canvas::ParticleStats::_frameTime
double _frameTime
Definition
applicationStats.h:76
visutwin::canvas::ParticleStats::updatesPerFrame
int updatesPerFrame
Definition
applicationStats.h:73
visutwin::canvas::ParticleStats::_updatesPerFrame
int _updatesPerFrame
Definition
applicationStats.h:74
framework
applicationStats.h
Generated by
1.16.1