mirror of
https://github.com/minetest/irrlicht.git
synced 2024-11-18 08:10:32 +01:00
9954667c45
The exact commands to make this commit were: git reset --hard origin/master find -type f | # list all regular files grep -E '\.(h|cpp|fsh|vsh|mm)|LICENSE$' | # filter for text files xargs -n 1 -P $(nproc) sed -i 's:\s*$::' # for each file, trim trailing whitespace including the CR git commit -a
77 lines
1.4 KiB
C++
77 lines
1.4 KiB
C++
// Copyright (C) 2002-2012 Nikolaus Gebhardt
|
|
// This file is part of the "Irrlicht Engine".
|
|
// For conditions of distribution and use, see copyright notice in irrlicht.h
|
|
|
|
#include "CFPSCounter.h"
|
|
#include "irrMath.h"
|
|
|
|
namespace irr
|
|
{
|
|
namespace video
|
|
{
|
|
|
|
|
|
CFPSCounter::CFPSCounter()
|
|
: FPS(60), Primitive(0), StartTime(0), FramesCounted(0),
|
|
PrimitivesCounted(0), PrimitiveAverage(0), PrimitiveTotal(0)
|
|
{
|
|
|
|
}
|
|
|
|
|
|
//! returns current fps
|
|
s32 CFPSCounter::getFPS() const
|
|
{
|
|
return FPS;
|
|
}
|
|
|
|
|
|
//! returns current primitive count
|
|
u32 CFPSCounter::getPrimitive() const
|
|
{
|
|
return Primitive;
|
|
}
|
|
|
|
|
|
//! returns average primitive count of last period
|
|
u32 CFPSCounter::getPrimitiveAverage() const
|
|
{
|
|
return PrimitiveAverage;
|
|
}
|
|
|
|
|
|
//! returns accumulated primitive count since start
|
|
u32 CFPSCounter::getPrimitiveTotal() const
|
|
{
|
|
return PrimitiveTotal;
|
|
}
|
|
|
|
|
|
//! to be called every frame
|
|
void CFPSCounter::registerFrame(u32 now, u32 primitivesDrawn)
|
|
{
|
|
++FramesCounted;
|
|
PrimitiveTotal += primitivesDrawn;
|
|
PrimitivesCounted += primitivesDrawn;
|
|
Primitive = primitivesDrawn;
|
|
|
|
const u32 milliseconds = now - StartTime;
|
|
|
|
if (milliseconds >= 1500 )
|
|
{
|
|
const f32 invMilli = core::reciprocal ( (f32) milliseconds );
|
|
|
|
FPS = core::ceil32 ( ( 1000 * FramesCounted ) * invMilli );
|
|
PrimitiveAverage = core::ceil32 ( ( 1000 * PrimitivesCounted ) * invMilli );
|
|
|
|
FramesCounted = 0;
|
|
PrimitivesCounted = 0;
|
|
StartTime = now;
|
|
}
|
|
}
|
|
|
|
|
|
} // end namespace video
|
|
} // end namespace irr
|
|
|