yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
yaze::core::TimingManager Class Reference

Provides accurate timing for animations and frame pacing. More...

#include <timing.h>

Public Member Functions

float Update ()
 Update the timing manager (call once per frame)
 
float GetDeltaTime () const
 Get the last frame's delta time in seconds.
 
float GetFPS () const
 Get current FPS.
 
float GetElapsedTime () const
 Get total elapsed time since first update.
 
void Reset ()
 Reset the timing state.
 

Static Public Member Functions

static TimingManagerGet ()
 

Private Member Functions

 TimingManager ()
 
 TimingManager (const TimingManager &)=delete
 
TimingManageroperator= (const TimingManager &)=delete
 

Private Attributes

uint64_t frequency_
 
uint64_t first_time_
 
uint64_t last_time_
 
float accumulated_time_
 
uint32_t frame_count_
 
float fps_
 
float last_delta_time_
 

Detailed Description

Provides accurate timing for animations and frame pacing.

This class solves the issue where ImGui::GetIO().DeltaTime only updates when events are processed (mouse movement, etc). It uses SDL's performance counter to provide accurate timing regardless of input events.

Definition at line 18 of file timing.h.

Constructor & Destructor Documentation

◆ TimingManager() [1/2]

yaze::core::TimingManager::TimingManager ( )
inlineprivate

Definition at line 93 of file timing.h.

References accumulated_time_, first_time_, fps_, frame_count_, frequency_, last_delta_time_, and last_time_.

◆ TimingManager() [2/2]

yaze::core::TimingManager::TimingManager ( const TimingManager )
privatedelete

Member Function Documentation

◆ Get()

◆ Update()

float yaze::core::TimingManager::Update ( )
inline

Update the timing manager (call once per frame)

Returns
The delta time since last update in seconds

Definition at line 29 of file timing.h.

References accumulated_time_, fps_, frame_count_, frequency_, last_delta_time_, and last_time_.

Referenced by yaze::core::Controller::DoRender(), and yaze::editor::EditorManager::Update().

◆ GetDeltaTime()

float yaze::core::TimingManager::GetDeltaTime ( ) const
inline

Get the last frame's delta time in seconds.

Definition at line 60 of file timing.h.

References last_delta_time_.

Referenced by yaze::editor::WelcomeScreen::Show().

◆ GetFPS()

float yaze::core::TimingManager::GetFPS ( ) const
inline

Get current FPS.

Definition at line 67 of file timing.h.

References fps_.

◆ GetElapsedTime()

float yaze::core::TimingManager::GetElapsedTime ( ) const
inline

Get total elapsed time since first update.

Definition at line 74 of file timing.h.

References first_time_, frequency_, and last_time_.

◆ Reset()

void yaze::core::TimingManager::Reset ( )
inline

Reset the timing state.

Definition at line 83 of file timing.h.

References accumulated_time_, first_time_, fps_, frame_count_, last_delta_time_, and last_time_.

◆ operator=()

TimingManager & yaze::core::TimingManager::operator= ( const TimingManager )
privatedelete

Member Data Documentation

◆ frequency_

uint64_t yaze::core::TimingManager::frequency_
private

Definition at line 103 of file timing.h.

Referenced by GetElapsedTime(), TimingManager(), and Update().

◆ first_time_

uint64_t yaze::core::TimingManager::first_time_
private

Definition at line 104 of file timing.h.

Referenced by GetElapsedTime(), Reset(), and TimingManager().

◆ last_time_

uint64_t yaze::core::TimingManager::last_time_
private

Definition at line 105 of file timing.h.

Referenced by GetElapsedTime(), Reset(), TimingManager(), and Update().

◆ accumulated_time_

float yaze::core::TimingManager::accumulated_time_
private

Definition at line 106 of file timing.h.

Referenced by Reset(), TimingManager(), and Update().

◆ frame_count_

uint32_t yaze::core::TimingManager::frame_count_
private

Definition at line 107 of file timing.h.

Referenced by Reset(), TimingManager(), and Update().

◆ fps_

float yaze::core::TimingManager::fps_
private

Definition at line 108 of file timing.h.

Referenced by GetFPS(), Reset(), TimingManager(), and Update().

◆ last_delta_time_

float yaze::core::TimingManager::last_delta_time_
private

Definition at line 109 of file timing.h.

Referenced by GetDeltaTime(), Reset(), TimingManager(), and Update().


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