aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/others/irrlicht-1.8.1/source/Irrlicht/CFPSCounter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/others/irrlicht-1.8.1/source/Irrlicht/CFPSCounter.cpp')
-rw-r--r--src/others/irrlicht-1.8.1/source/Irrlicht/CFPSCounter.cpp76
1 files changed, 76 insertions, 0 deletions
diff --git a/src/others/irrlicht-1.8.1/source/Irrlicht/CFPSCounter.cpp b/src/others/irrlicht-1.8.1/source/Irrlicht/CFPSCounter.cpp
new file mode 100644
index 0000000..3bbf3af
--- /dev/null
+++ b/src/others/irrlicht-1.8.1/source/Irrlicht/CFPSCounter.cpp
@@ -0,0 +1,76 @@
1// Copyright (C) 2002-2012 Nikolaus Gebhardt
2// This file is part of the "Irrlicht Engine".
3// For conditions of distribution and use, see copyright notice in irrlicht.h
4
5#include "CFPSCounter.h"
6#include "irrMath.h"
7
8namespace irr
9{
10namespace video
11{
12
13
14CFPSCounter::CFPSCounter()
15: FPS(60), Primitive(0), StartTime(0), FramesCounted(0),
16 PrimitivesCounted(0), PrimitiveAverage(0), PrimitiveTotal(0)
17{
18
19}
20
21
22//! returns current fps
23s32 CFPSCounter::getFPS() const
24{
25 return FPS;
26}
27
28
29//! returns current primitive count
30u32 CFPSCounter::getPrimitive() const
31{
32 return Primitive;
33}
34
35
36//! returns average primitive count of last period
37u32 CFPSCounter::getPrimitiveAverage() const
38{
39 return PrimitiveAverage;
40}
41
42
43//! returns accumulated primitive count since start
44u32 CFPSCounter::getPrimitiveTotal() const
45{
46 return PrimitiveTotal;
47}
48
49
50//! to be called every frame
51void CFPSCounter::registerFrame(u32 now, u32 primitivesDrawn)
52{
53 ++FramesCounted;
54 PrimitiveTotal += primitivesDrawn;
55 PrimitivesCounted += primitivesDrawn;
56 Primitive = primitivesDrawn;
57
58 const u32 milliseconds = now - StartTime;
59
60 if (milliseconds >= 1500 )
61 {
62 const f32 invMilli = core::reciprocal ( (f32) milliseconds );
63
64 FPS = core::ceil32 ( ( 1000 * FramesCounted ) * invMilli );
65 PrimitiveAverage = core::ceil32 ( ( 1000 * PrimitivesCounted ) * invMilli );
66
67 FramesCounted = 0;
68 PrimitivesCounted = 0;
69 StartTime = now;
70 }
71}
72
73
74} // end namespace video
75} // end namespace irr
76