Kanzi 4.0.0-beta2
kanzi::FrameTimeQueue::ErrorTermCalculator Class Reference

Error term calculator. More...

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

Public Member Functions

 ErrorTermCalculator ()
 Default constructor.
 
 ErrorTermCalculator (const ErrorTermCalculator &)=default
 Default copy constructor.
 
 ErrorTermCalculator (ErrorTermCalculator &&)=default
 Default move constructor.
 
 ErrorTermCalculator (size_t desiredFrameRate)
 Constructor.
 
size_t getDesiredFrameRate () const
 Gets the desired frame rate.
 
chrono::nanoseconds getDesiredFrameTime () const
 Gets the desired frame time.
 
chrono::nanoseconds getErrorTerm () const
 Gets the frame time error term.
 
ErrorTermCalculatoroperator= (const ErrorTermCalculator &)=default
 Default copy operator.
 
ErrorTermCalculatoroperator= (ErrorTermCalculator &&)=default
 Default move operator.
 
void update (chrono::nanoseconds frameTime)
 Update error term calculation with given frame time.
 

Protected Attributes

chrono::nanoseconds m_cumulativeErrorTerm
 Cumulative error time within the frame time window.
 
size_t m_desiredFrameRate
 Desired frame rate.
 
chrono::nanoseconds m_desiredFrameTime
 Desired frame time.
 
chrono::nanoseconds m_errorTerm
 Error term calculated from cumulative error.
 
chrono::nanoseconds m_maximumErrorIncrement
 Maximum error increment per frame.
 

Detailed Description

Error term calculator.

Since
Kanzi 4.0.0

Constructor & Destructor Documentation

◆ ErrorTermCalculator() [1/4]

kanzi::FrameTimeQueue::ErrorTermCalculator::ErrorTermCalculator ( size_t desiredFrameRate)
inlineexplicit

Constructor.

◆ ErrorTermCalculator() [2/4]

kanzi::FrameTimeQueue::ErrorTermCalculator::ErrorTermCalculator ( )
inlineexplicit

Default constructor.

◆ ErrorTermCalculator() [3/4]

kanzi::FrameTimeQueue::ErrorTermCalculator::ErrorTermCalculator ( const ErrorTermCalculator & )
default

Default copy constructor.

◆ ErrorTermCalculator() [4/4]

kanzi::FrameTimeQueue::ErrorTermCalculator::ErrorTermCalculator ( ErrorTermCalculator && )
default

Default move constructor.

Member Function Documentation

◆ operator=() [1/2]

ErrorTermCalculator & kanzi::FrameTimeQueue::ErrorTermCalculator::operator= ( const ErrorTermCalculator & )
default

Default copy operator.

◆ operator=() [2/2]

ErrorTermCalculator & kanzi::FrameTimeQueue::ErrorTermCalculator::operator= ( ErrorTermCalculator && )
default

Default move operator.

◆ update()

void kanzi::FrameTimeQueue::ErrorTermCalculator::update ( chrono::nanoseconds frameTime)

Update error term calculation with given frame time.

Parameters
frameTimeFrame time found.

◆ getErrorTerm()

chrono::nanoseconds kanzi::FrameTimeQueue::ErrorTermCalculator::getErrorTerm ( ) const
inline

Gets the frame time error term.

Returns
Frame time error term.

◆ getDesiredFrameRate()

size_t kanzi::FrameTimeQueue::ErrorTermCalculator::getDesiredFrameRate ( ) const
inline

Gets the desired frame rate.

Returns
Targeted frame rate.

◆ getDesiredFrameTime()

chrono::nanoseconds kanzi::FrameTimeQueue::ErrorTermCalculator::getDesiredFrameTime ( ) const
inline

Gets the desired frame time.

Returns
Frame time from the targeted frame rate.

Member Data Documentation

◆ m_desiredFrameRate

size_t kanzi::FrameTimeQueue::ErrorTermCalculator::m_desiredFrameRate
protected

Desired frame rate.

◆ m_desiredFrameTime

chrono::nanoseconds kanzi::FrameTimeQueue::ErrorTermCalculator::m_desiredFrameTime
protected

Desired frame time.

◆ m_cumulativeErrorTerm

chrono::nanoseconds kanzi::FrameTimeQueue::ErrorTermCalculator::m_cumulativeErrorTerm
protected

Cumulative error time within the frame time window.

This number is positive when frame times have been too long and negative when they have been too short.

◆ m_errorTerm

chrono::nanoseconds kanzi::FrameTimeQueue::ErrorTermCalculator::m_errorTerm
protected

Error term calculated from cumulative error.

Should be smaller than cumulative error to prevent knee-jerk reactions.

◆ m_maximumErrorIncrement

chrono::nanoseconds kanzi::FrameTimeQueue::ErrorTermCalculator::m_maximumErrorIncrement
protected

Maximum error increment per frame.

This number is intended to prevent excessively long frames from skewing the error.


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