Kanzi  3.9.7
Kanzi Engine API
kanzi::FrameTimeQueue Class Reference

Helper class for calculating the frame rate. More...

#include <kanzi/core.ui/util/frame_time_queue.hpp>

Public Member Functions

 FrameTimeQueue ()
 Constructor. More...
 
KZ_NO_DISCARD float getFPS () const
 Returns the current FPS. More...
 
void update (chrono::nanoseconds frameDuration)
 Updates the frame time queue with a new frame duration. More...
 

Static Public Attributes

static const size_t MeasurementBufferSize
 The maximum size of the measurement window. Oldest frame duration samples that don't fit to the buffer are not included in the reported FPS. More...
 
static const chrono::milliseconds MeasurementWindowWidth
 The maximum duration of the measurement window. Frame duration samples that are older than this are not included in the reported FPS. More...
 

Protected Attributes

size_t m_firstFrame
 Frame time queue front index. More...
 
float m_fps
 Frame rate cache. More...
 
size_t m_frameCount
 Frame time queue size. More...
 
array< chrono::nanoseconds, MeasurementBufferSizem_frames
 Frame time queue data. More...
 
chrono::nanoseconds m_totalTime
 Frame time queue content sum cache in nanoseconds. More...
 

Detailed Description

Helper class for calculating the frame rate.

Keeps track of the durations of frames over a short measurement window and calculates the average FPS.

Constructor & Destructor Documentation

kanzi::FrameTimeQueue::FrameTimeQueue ( )
explicit

Constructor.

Member Function Documentation

void kanzi::FrameTimeQueue::update ( chrono::nanoseconds  frameDuration)

Updates the frame time queue with a new frame duration.

Parameters
frameDurationDuration of the new frame in nanoseconds.
KZ_NO_DISCARD float kanzi::FrameTimeQueue::getFPS ( ) const
inline

Returns the current FPS.

Returns
Current frame rate in frames per second.

Member Data Documentation

const chrono::milliseconds kanzi::FrameTimeQueue::MeasurementWindowWidth
static

The maximum duration of the measurement window. Frame duration samples that are older than this are not included in the reported FPS.

const size_t kanzi::FrameTimeQueue::MeasurementBufferSize
static

The maximum size of the measurement window. Oldest frame duration samples that don't fit to the buffer are not included in the reported FPS.

array<chrono::nanoseconds, MeasurementBufferSize> kanzi::FrameTimeQueue::m_frames
protected

Frame time queue data.

size_t kanzi::FrameTimeQueue::m_firstFrame
protected

Frame time queue front index.

size_t kanzi::FrameTimeQueue::m_frameCount
protected

Frame time queue size.

chrono::nanoseconds kanzi::FrameTimeQueue::m_totalTime
protected

Frame time queue content sum cache in nanoseconds.

float kanzi::FrameTimeQueue::m_fps
protected

Frame rate cache.


The documentation for this class was generated from the following file: